From 90ab2febf3fb704b3879770a370d99a8fd99f6c1 Mon Sep 17 00:00:00 2001 From: yeqingbo <xiaodong@seaskysh.com> Date: Mon, 18 Apr 2022 17:45:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E6=A1=86=E6=9E=B6?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/.browserslistrc | 3 + WebSite/.editorconfig | 14 - WebSite/.env | 0 WebSite/.env.development | 16 +- WebSite/.env.mock | 3 + WebSite/.env.production | 8 +- WebSite/.env.staging | 8 - WebSite/.env.test | 8 - WebSite/.eslintignore | 1 + WebSite/.eslintrc.js | 20 +- WebSite/.gitignore | 22 +- WebSite/.prettierrc.js | 16 +- WebSite/.travis.yml | 5 - WebSite/CHANGELOG.md | 220 + WebSite/Dockerfile | 9 +- WebSite/LICENSE | 2 +- WebSite/README.md | 385 +- WebSite/babel.config.js | 6 +- WebSite/conf/init.sh | 12 +- WebSite/conf/nginx.conf | 3 +- WebSite/docs/guards_er.png | Bin 0 -> 70131 bytes WebSite/docs/logo_s.png | Bin 0 -> 10880 bytes WebSite/docs/noctua.png | Bin 0 -> 21546 bytes WebSite/docs/version_alpha.png | Bin 0 -> 2387 bytes WebSite/docs/version_beta.png | Bin 0 -> 2481 bytes WebSite/jest.config.js | 24 - WebSite/mock/account.js | 473 +- WebSite/mock/application.js | 169 - WebSite/mock/article.js | 128 - WebSite/mock/index.js | 38 +- WebSite/mock/mock-server.js | 32 +- WebSite/mock/remote-search.js | 51 - WebSite/mock/role/index.js | 101 - WebSite/mock/role/routes.js | 525 - WebSite/mock/user.js | 85 - WebSite/mock/utils.js | 55 + WebSite/package-lock.json | 17586 ++++++-------- WebSite/package.json | 152 +- WebSite/plop-templates/component/index.hbs | 26 - WebSite/plop-templates/component/prompt.js | 55 - WebSite/plop-templates/store/index.hbs | 16 - WebSite/plop-templates/store/prompt.js | 62 - WebSite/plop-templates/utils.js | 9 - WebSite/plop-templates/view/index.hbs | 26 - WebSite/plop-templates/view/prompt.js | 55 - WebSite/plopfile.js | 9 - WebSite/postcss.config.js | 5 - WebSite/public/favicon.ico | Bin 67646 -> 4286 bytes WebSite/public/index.html | 21 +- WebSite/src/App.vue | 21 +- WebSite/src/api/Account.js | 17 + WebSite/src/api/article.js | 41 - WebSite/src/api/qiniu.js | 8 - WebSite/src/api/remote-search.js | 17 - WebSite/src/api/role.js | 38 - WebSite/src/api/user.js | 38 +- WebSite/src/assets/configs/default.json | 4 - WebSite/src/assets/configs/staging.json | 4 - WebSite/src/assets/configs/test.json | 4 - WebSite/src/assets/custom-theme/index.css | 19863 +++++++++++++++- WebSite/src/assets/logo.png | Bin 0 -> 6849 bytes WebSite/src/components/BackToTop/index.vue | 128 - WebSite/src/components/Breadcrumb/index.vue | 142 - WebSite/src/components/Charts/Keyboard.vue | 169 - WebSite/src/components/Charts/LineMarker.vue | 276 - WebSite/src/components/Charts/MixChart.vue | 277 - .../src/components/Charts/mixins/resize.js | 66 - WebSite/src/components/DeptGroup/index.vue | 105 - WebSite/src/components/DndList/index.vue | 182 - WebSite/src/components/DragSelect/index.vue | 70 - WebSite/src/components/Dropzone/index.vue | 312 - WebSite/src/components/ErrorLog/index.vue | 92 - WebSite/src/components/GithubCorner/index.vue | 59 - WebSite/src/components/Hamburger/index.vue | 46 - WebSite/src/components/HeaderSearch/index.vue | 198 - WebSite/src/components/HelloWorld.vue | 130 + WebSite/src/components/ImageCropper/index.vue | 1816 -- .../ImageCropper/utils/data2blob.js | 19 - .../ImageCropper/utils/effectRipple.js | 53 - .../components/ImageCropper/utils/language.js | 240 - .../components/ImageCropper/utils/mimes.js | 7 - WebSite/src/components/JcRange/index.vue | 170 - WebSite/src/components/JsonEditor/index.vue | 72 - .../JumpDialog/components/JumpDialogItem.vue | 39 - .../src/components/JumpDialog/event-bus.js | 9 - WebSite/src/components/JumpDialog/index.vue | 103 - WebSite/src/components/Kanban/index.vue | 98 - WebSite/src/components/LayoutCard/index.vue | 103 - WebSite/src/components/MDinput/index.vue | 364 - .../MarkdownEditor/default-options.js | 31 - .../src/components/MarkdownEditor/index.vue | 122 - .../src/components/ModifyPassword/index.vue | 132 - .../OrganizationSelectTree/index.vue | 55 - WebSite/src/components/Pagination/index.vue | 101 - WebSite/src/components/PanThumb/index.vue | 146 - WebSite/src/components/RightPanel/index.vue | 149 - WebSite/src/components/Screenfull/index.vue | 63 - WebSite/src/components/SelectTree/index.vue | 201 - WebSite/src/components/SelectUser/index.vue | 97 - WebSite/src/components/Share/DropdownMenu.vue | 111 - WebSite/src/components/SizeSelect/index.vue | 60 - WebSite/src/components/Sticky/index.vue | 97 - WebSite/src/components/SvgIcon/index.vue | 25 +- WebSite/src/components/TextField/index.vue | 31 - .../src/components/TextHoverEffect/Mallki.vue | 113 - WebSite/src/components/ThemePicker/index.vue | 198 - .../Tinymce/components/EditorImage.vue | 126 - .../components/Tinymce/dynamicLoadScript.js | 61 - WebSite/src/components/Tinymce/index.vue | 254 - WebSite/src/components/Tinymce/plugins.js | 9 - WebSite/src/components/Tinymce/toolbar.js | 9 - WebSite/src/components/UnionUser/index.vue | 285 - WebSite/src/components/Upload/SingleImage.vue | 133 - .../src/components/Upload/SingleImage2.vue | 130 - .../src/components/Upload/SingleImage3.vue | 157 - WebSite/src/components/UploadExcel/index.vue | 158 - WebSite/src/config/index.js | 100 + WebSite/src/config/theme.js | 99 + WebSite/src/core/base/Realm.js | 66 + WebSite/src/core/base/request.js | 48 + WebSite/src/core/model/Account.js | 18 + WebSite/src/core/model/App.js | 214 + WebSite/src/core/model/AuthenticationInfo.js | 16 + WebSite/src/core/model/AuthenticationToken.js | 16 + WebSite/src/core/model/AuthorizationInfo.js | 16 + WebSite/src/core/model/Menu.js | 31 + WebSite/src/core/model/Subject.js | 32 + WebSite/src/core/model/TagView.js | 21 + WebSite/src/core/model/User.js | 18 + WebSite/src/directive/clipboard/clipboard.js | 57 - WebSite/src/directive/clipboard/index.js | 13 - WebSite/src/directive/el-drag-dialog/drag.js | 77 - WebSite/src/directive/el-drag-dialog/index.js | 13 - WebSite/src/directive/el-table/adaptive.js | 45 - WebSite/src/directive/el-table/index.js | 13 - WebSite/src/directive/permission/index.js | 13 - .../src/directive/permission/permission.js | 22 - WebSite/src/directive/sticky.js | 90 - WebSite/src/directive/waves/index.js | 13 - WebSite/src/directive/waves/waves.css | 26 - WebSite/src/directive/waves/waves.js | 80 - WebSite/src/filters/index.js | 124 - WebSite/src/icons/index.js | 14 +- WebSite/src/icons/svg/001-adwords.svg | 40 + WebSite/src/icons/svg/002-rgb-1.svg | 1 + WebSite/src/icons/svg/002-rgb.svg | 11 + WebSite/src/icons/svg/003-color-1.svg | 73 + WebSite/src/icons/svg/003-color-2.svg | 69 + WebSite/src/icons/svg/003-color-palette.svg | 60 + WebSite/src/icons/svg/003-color-wheel.svg | 1 + WebSite/src/icons/svg/003-color.svg | 1 + WebSite/src/icons/svg/004-venn-diagram.svg | 54 + WebSite/src/icons/svg/005-photos-1.svg | 135 + WebSite/src/icons/svg/005-photos.svg | 45 + WebSite/src/icons/svg/006-google-chrome.svg | 58 + WebSite/src/icons/svg/006-google-drive.svg | 38 + WebSite/src/icons/svg/006-google-maps.svg | 1 + WebSite/src/icons/svg/007-paint-brush.svg | 1 + WebSite/src/icons/svg/element.svg | 1 + WebSite/src/icons/svg/gitlab.svg | 15 + WebSite/src/icons/svg/noctua.svg | 1 + WebSite/src/icons/svg/noctua_s.svg | 1 + WebSite/src/icons/svg/vant.svg | 94 + WebSite/src/icons/svg/vue.svg | 87 + WebSite/src/layout/MicroLayout.vue | 147 + WebSite/src/layout/components/AppMain.vue | 66 - .../AppMain/components/MicroApp.vue | 16 + .../components/AppMain/components/Normal.vue | 38 + .../src/layout/components/AppMain/index.vue | 112 + WebSite/src/layout/components/Navbar.vue | 250 - .../src/layout/components/Navbar/index.vue | 48 + .../Navigation/components/Breadcrumb.vue | 105 + .../Navigation/components/Hamburger.vue | 79 + .../layout/components/Navigation/index.vue | 307 + .../ScrollPane.vue => ScrollPane/index.vue} | 24 +- .../src/layout/components/Settings/index.vue | 581 +- .../layout/components/Sidebar/FixiOSBug.js | 26 - .../src/layout/components/Sidebar/Item.vue | 29 - .../src/layout/components/Sidebar/Link.vue | 35 - .../layout/components/Sidebar/SidebarItem.vue | 69 - .../components/Sidebar/components/AppLink.vue | 52 + .../Sidebar/{ => components}/Logo.vue | 52 +- .../Sidebar/components/SidebarItem.vue | 81 + .../components/Sidebar/components/Unit.vue | 48 + .../src/layout/components/Sidebar/index.vue | 83 +- .../src/layout/components/TagsView/index.vue | 509 +- WebSite/src/layout/components/index.js | 20 +- WebSite/src/layout/index.vue | 134 +- WebSite/src/layout/mixin/ResizeHandler.js | 29 +- WebSite/src/main.js | 134 +- WebSite/src/permission.js | 74 - WebSite/src/public-path.js | 10 + WebSite/src/router/guards.js | 103 + WebSite/src/router/index.js | 200 +- WebSite/src/router/micro-app.js | 34 + WebSite/src/router/modules/demo.js | 55 - WebSite/src/router/modules/hello.js | 32 + WebSite/src/router/modules/workplace.js | 17 + WebSite/src/service/base/base.js | 34 - WebSite/src/service/index.js | 56 - WebSite/src/service/modules/account.js | 21 - WebSite/src/service/modules/user.js | 21 - WebSite/src/settings.js | 48 - WebSite/src/store/getters.js | 33 +- WebSite/src/store/index.js | 22 +- WebSite/src/store/modules/app.js | 289 +- WebSite/src/store/modules/errorLog.js | 28 - WebSite/src/store/modules/permission.js | 97 - WebSite/src/store/modules/settings.js | 33 - WebSite/src/store/modules/subject.js | 263 + WebSite/src/store/modules/tagsView.js | 160 - WebSite/src/store/modules/user.js | 142 - WebSite/src/styles/element-ui.scss | 26 +- WebSite/src/styles/element-variables.scss | 6 +- WebSite/src/styles/index.scss | 4 +- WebSite/src/styles/mixin-theme.scss | 181 + WebSite/src/styles/navbar.scss | 41 + WebSite/src/styles/reset.scss | 67 - WebSite/src/styles/sidebar.scss | 110 +- WebSite/src/styles/transition.scss | 81 +- WebSite/src/styles/var-theme.scss | 149 + WebSite/src/styles/variables.scss | 22 +- WebSite/src/utils/Common.js | 26 + WebSite/src/utils/Storage.js | 233 + WebSite/src/utils/auth.js | 34 - WebSite/src/utils/clipboard.js | 23 +- WebSite/src/utils/config.js | 21 - WebSite/src/utils/enum.js | 19 - WebSite/src/utils/error-log.js | 35 - WebSite/src/utils/formatter.js | 54 + WebSite/src/utils/get-page-title.js | 10 - WebSite/src/utils/index.js | 362 - WebSite/src/utils/loading.js | 33 - WebSite/src/utils/open-window.js | 45 - WebSite/src/utils/permission.js | 25 - WebSite/src/utils/request.js | 130 - WebSite/src/utils/scroll-to.js | 69 - WebSite/src/utils/validate.js | 17 +- WebSite/src/vendor/Export2Excel.js | 220 - WebSite/src/vendor/Export2Zip.js | 24 - WebSite/src/views/auth-redirect/index.vue | 57 + WebSite/src/views/charts/keyboard.vue | 22 - WebSite/src/views/charts/line.vue | 22 - WebSite/src/views/charts/mix-chart.vue | 22 - WebSite/src/views/clipboard/index.vue | 65 - .../views/components-demo/avatar-upload.vue | 69 - .../src/views/components-demo/back-to-top.vue | 162 - .../src/views/components-demo/count-to.vue | 244 - .../src/views/components-demo/dnd-list.vue | 46 - .../src/views/components-demo/drag-dialog.vue | 76 - .../src/views/components-demo/drag-kanban.vue | 83 - .../src/views/components-demo/drag-select.vue | 59 - .../src/views/components-demo/dropzone.vue | 39 - .../src/views/components-demo/json-editor.vue | 42 - .../src/views/components-demo/markdown.vue | 124 - WebSite/src/views/components-demo/mixin.vue | 200 - .../src/views/components-demo/split-pane.vue | 71 - WebSite/src/views/components-demo/sticky.vue | 149 - WebSite/src/views/components-demo/tinymce.vue | 43 - .../dashboard/admin/components/BarChart.vue | 111 - .../dashboard/admin/components/BoxCard.vue | 116 - .../dashboard/admin/components/LineChart.vue | 138 - .../dashboard/admin/components/PanelGroup.vue | 201 - .../dashboard/admin/components/PieChart.vue | 79 - .../admin/components/RaddarChart.vue | 119 - .../admin/components/TodoList/Todo.vue | 81 - .../admin/components/TodoList/index.scss | 320 - .../admin/components/TodoList/index.vue | 142 - .../admin/components/TransactionTable.vue | 55 - .../admin/components/mixins/resize.js | 65 - WebSite/src/views/dashboard/admin/index.vue | 145 - WebSite/src/views/dashboard/editor/index.vue | 77 - WebSite/src/views/dashboard/index.vue | 36 - WebSite/src/views/documentation/index.vue | 103 - .../views/error-log/components/ErrorTestA.vue | 13 - .../views/error-log/components/ErrorTestB.vue | 11 - WebSite/src/views/error-log/index.vue | 42 - WebSite/src/views/error-page/401.vue | 54 +- WebSite/src/views/error-page/404.vue | 11 +- WebSite/src/views/example/button/index.vue | 160 - .../example/dialog/components/Detail.vue | 39 - WebSite/src/views/example/dialog/index.vue | 116 - WebSite/src/views/example/form.vue | 205 - WebSite/src/views/example/icon.vue | 61 - WebSite/src/views/example/index.vue | 350 - WebSite/src/views/example/layout.vue | 187 - WebSite/src/views/example/table.vue | 169 - .../excel/components/AutoWidthOption.vue | 34 - .../views/excel/components/BookTypeOption.vue | 39 - .../views/excel/components/FilenameOption.vue | 32 - WebSite/src/views/excel/export-excel.vue | 142 - WebSite/src/views/excel/merge-header.vue | 116 - WebSite/src/views/excel/select-excel.vue | 128 - WebSite/src/views/excel/upload-excel.vue | 55 - WebSite/src/views/frame/index.vue | 69 + WebSite/src/views/guide/index.vue | 43 - WebSite/src/views/guide/steps.js | 53 - WebSite/src/views/hello/HelloA.vue | 16 + WebSite/src/views/hello/HelloB.vue | 16 + WebSite/src/views/hello/HelloC.vue | 16 + WebSite/src/views/home/index.vue | 644 +- WebSite/src/views/icons/element-icons.js | 284 - WebSite/src/views/icons/index.vue | 112 - WebSite/src/views/icons/svg-icons.js | 10 - WebSite/src/views/login/auth-redirect.vue | 15 - .../src/views/login/components/SelectUser.vue | 137 + .../views/login/components/SocialSignin.vue | 76 - WebSite/src/views/login/index.vue | 686 +- WebSite/src/views/nested/menu1/index.vue | 7 - .../src/views/nested/menu1/menu1-1/index.vue | 7 - .../src/views/nested/menu1/menu1-2/index.vue | 7 - .../nested/menu1/menu1-2/menu1-2-1/index.vue | 5 - .../nested/menu1/menu1-2/menu1-2-2/index.vue | 5 - .../src/views/nested/menu1/menu1-3/index.vue | 5 - WebSite/src/views/nested/menu2/index.vue | 5 - WebSite/src/views/outer/index.vue | 63 - WebSite/src/views/pdf/content.js | 58 - WebSite/src/views/pdf/download.vue | 214 - WebSite/src/views/pdf/index.vue | 12 - .../permission/components/SwitchRoles.vue | 33 - WebSite/src/views/permission/directive.vue | 131 - WebSite/src/views/permission/page.vue | 19 - WebSite/src/views/permission/role.vue | 302 - .../src/views/profile/components/Account.vue | 38 - .../src/views/profile/components/Activity.vue | 202 - .../src/views/profile/components/Timeline.vue | 48 - .../src/views/profile/components/UserCard.vue | 145 - WebSite/src/views/profile/index.vue | 62 - WebSite/src/views/qiniu/upload.vue | 47 - WebSite/src/views/redirect/index.vue | 12 - WebSite/src/views/tab/components/TabPane.vue | 108 - WebSite/src/views/tab/index.vue | 71 - WebSite/src/views/table/complex-table.vue | 567 - WebSite/src/views/table/drag-table.vue | 167 - .../dynamic-table/components/FixedThead.vue | 70 - .../dynamic-table/components/UnfixedThead.vue | 56 - .../src/views/table/dynamic-table/index.vue | 23 - WebSite/src/views/table/inline-edit-table.vue | 161 - WebSite/src/views/theme/index.vue | 131 - WebSite/src/views/workplace/index.vue | 457 + WebSite/src/views/zip/index.vue | 101 - WebSite/tests/unit/.eslintrc.js | 5 - .../tests/unit/components/Hamburger.spec.js | 18 - WebSite/tests/unit/components/SvgIcon.spec.js | 22 - WebSite/tests/unit/utils/formatTime.spec.js | 29 - WebSite/tests/unit/utils/parseTime.spec.js | 27 - WebSite/tests/unit/utils/validate.spec.js | 28 - WebSite/vue.config.js | 200 +- 348 files changed, 35406 insertions(+), 33699 deletions(-) create mode 100644 WebSite/.browserslistrc delete mode 100644 WebSite/.editorconfig create mode 100644 WebSite/.env create mode 100644 WebSite/.env.mock delete mode 100644 WebSite/.env.staging delete mode 100644 WebSite/.env.test delete mode 100644 WebSite/.travis.yml create mode 100644 WebSite/CHANGELOG.md create mode 100644 WebSite/docs/guards_er.png create mode 100644 WebSite/docs/logo_s.png create mode 100644 WebSite/docs/noctua.png create mode 100644 WebSite/docs/version_alpha.png create mode 100644 WebSite/docs/version_beta.png delete mode 100644 WebSite/jest.config.js delete mode 100644 WebSite/mock/application.js delete mode 100644 WebSite/mock/article.js delete mode 100644 WebSite/mock/remote-search.js delete mode 100644 WebSite/mock/role/index.js delete mode 100644 WebSite/mock/role/routes.js delete mode 100644 WebSite/mock/user.js create mode 100644 WebSite/mock/utils.js delete mode 100644 WebSite/plop-templates/component/index.hbs delete mode 100644 WebSite/plop-templates/component/prompt.js delete mode 100644 WebSite/plop-templates/store/index.hbs delete mode 100644 WebSite/plop-templates/store/prompt.js delete mode 100644 WebSite/plop-templates/utils.js delete mode 100644 WebSite/plop-templates/view/index.hbs delete mode 100644 WebSite/plop-templates/view/prompt.js delete mode 100644 WebSite/plopfile.js delete mode 100644 WebSite/postcss.config.js create mode 100644 WebSite/src/api/Account.js delete mode 100644 WebSite/src/api/article.js delete mode 100644 WebSite/src/api/qiniu.js delete mode 100644 WebSite/src/api/remote-search.js delete mode 100644 WebSite/src/api/role.js delete mode 100644 WebSite/src/assets/configs/default.json delete mode 100644 WebSite/src/assets/configs/staging.json delete mode 100644 WebSite/src/assets/configs/test.json create mode 100644 WebSite/src/assets/logo.png delete mode 100644 WebSite/src/components/BackToTop/index.vue delete mode 100644 WebSite/src/components/Breadcrumb/index.vue delete mode 100644 WebSite/src/components/Charts/Keyboard.vue delete mode 100644 WebSite/src/components/Charts/LineMarker.vue delete mode 100644 WebSite/src/components/Charts/MixChart.vue delete mode 100644 WebSite/src/components/Charts/mixins/resize.js delete mode 100644 WebSite/src/components/DeptGroup/index.vue delete mode 100644 WebSite/src/components/DndList/index.vue delete mode 100644 WebSite/src/components/DragSelect/index.vue delete mode 100644 WebSite/src/components/Dropzone/index.vue delete mode 100644 WebSite/src/components/ErrorLog/index.vue delete mode 100644 WebSite/src/components/GithubCorner/index.vue delete mode 100644 WebSite/src/components/Hamburger/index.vue delete mode 100644 WebSite/src/components/HeaderSearch/index.vue create mode 100644 WebSite/src/components/HelloWorld.vue delete mode 100644 WebSite/src/components/ImageCropper/index.vue delete mode 100644 WebSite/src/components/ImageCropper/utils/data2blob.js delete mode 100644 WebSite/src/components/ImageCropper/utils/effectRipple.js delete mode 100644 WebSite/src/components/ImageCropper/utils/language.js delete mode 100644 WebSite/src/components/ImageCropper/utils/mimes.js delete mode 100644 WebSite/src/components/JcRange/index.vue delete mode 100644 WebSite/src/components/JsonEditor/index.vue delete mode 100644 WebSite/src/components/JumpDialog/components/JumpDialogItem.vue delete mode 100644 WebSite/src/components/JumpDialog/event-bus.js delete mode 100644 WebSite/src/components/JumpDialog/index.vue delete mode 100644 WebSite/src/components/Kanban/index.vue delete mode 100644 WebSite/src/components/LayoutCard/index.vue delete mode 100644 WebSite/src/components/MDinput/index.vue delete mode 100644 WebSite/src/components/MarkdownEditor/default-options.js delete mode 100644 WebSite/src/components/MarkdownEditor/index.vue delete mode 100644 WebSite/src/components/ModifyPassword/index.vue delete mode 100644 WebSite/src/components/OrganizationSelectTree/index.vue delete mode 100644 WebSite/src/components/Pagination/index.vue delete mode 100644 WebSite/src/components/PanThumb/index.vue delete mode 100644 WebSite/src/components/RightPanel/index.vue delete mode 100644 WebSite/src/components/Screenfull/index.vue delete mode 100644 WebSite/src/components/SelectTree/index.vue delete mode 100644 WebSite/src/components/SelectUser/index.vue delete mode 100644 WebSite/src/components/Share/DropdownMenu.vue delete mode 100644 WebSite/src/components/SizeSelect/index.vue delete mode 100644 WebSite/src/components/Sticky/index.vue delete mode 100644 WebSite/src/components/TextField/index.vue delete mode 100644 WebSite/src/components/TextHoverEffect/Mallki.vue delete mode 100644 WebSite/src/components/ThemePicker/index.vue delete mode 100644 WebSite/src/components/Tinymce/components/EditorImage.vue delete mode 100644 WebSite/src/components/Tinymce/dynamicLoadScript.js delete mode 100644 WebSite/src/components/Tinymce/index.vue delete mode 100644 WebSite/src/components/Tinymce/plugins.js delete mode 100644 WebSite/src/components/Tinymce/toolbar.js delete mode 100644 WebSite/src/components/UnionUser/index.vue delete mode 100644 WebSite/src/components/Upload/SingleImage.vue delete mode 100644 WebSite/src/components/Upload/SingleImage2.vue delete mode 100644 WebSite/src/components/Upload/SingleImage3.vue delete mode 100644 WebSite/src/components/UploadExcel/index.vue create mode 100644 WebSite/src/config/index.js create mode 100644 WebSite/src/config/theme.js create mode 100644 WebSite/src/core/base/Realm.js create mode 100644 WebSite/src/core/base/request.js create mode 100644 WebSite/src/core/model/Account.js create mode 100644 WebSite/src/core/model/App.js create mode 100644 WebSite/src/core/model/AuthenticationInfo.js create mode 100644 WebSite/src/core/model/AuthenticationToken.js create mode 100644 WebSite/src/core/model/AuthorizationInfo.js create mode 100644 WebSite/src/core/model/Menu.js create mode 100644 WebSite/src/core/model/Subject.js create mode 100644 WebSite/src/core/model/TagView.js create mode 100644 WebSite/src/core/model/User.js delete mode 100644 WebSite/src/directive/clipboard/clipboard.js delete mode 100644 WebSite/src/directive/clipboard/index.js delete mode 100644 WebSite/src/directive/el-drag-dialog/drag.js delete mode 100644 WebSite/src/directive/el-drag-dialog/index.js delete mode 100644 WebSite/src/directive/el-table/adaptive.js delete mode 100644 WebSite/src/directive/el-table/index.js delete mode 100644 WebSite/src/directive/permission/index.js delete mode 100644 WebSite/src/directive/permission/permission.js delete mode 100644 WebSite/src/directive/sticky.js delete mode 100644 WebSite/src/directive/waves/index.js delete mode 100644 WebSite/src/directive/waves/waves.css delete mode 100644 WebSite/src/directive/waves/waves.js delete mode 100644 WebSite/src/filters/index.js create mode 100644 WebSite/src/icons/svg/001-adwords.svg create mode 100644 WebSite/src/icons/svg/002-rgb-1.svg create mode 100644 WebSite/src/icons/svg/002-rgb.svg create mode 100644 WebSite/src/icons/svg/003-color-1.svg create mode 100644 WebSite/src/icons/svg/003-color-2.svg create mode 100644 WebSite/src/icons/svg/003-color-palette.svg create mode 100644 WebSite/src/icons/svg/003-color-wheel.svg create mode 100644 WebSite/src/icons/svg/003-color.svg create mode 100644 WebSite/src/icons/svg/004-venn-diagram.svg create mode 100644 WebSite/src/icons/svg/005-photos-1.svg create mode 100644 WebSite/src/icons/svg/005-photos.svg create mode 100644 WebSite/src/icons/svg/006-google-chrome.svg create mode 100644 WebSite/src/icons/svg/006-google-drive.svg create mode 100644 WebSite/src/icons/svg/006-google-maps.svg create mode 100644 WebSite/src/icons/svg/007-paint-brush.svg create mode 100644 WebSite/src/icons/svg/element.svg create mode 100644 WebSite/src/icons/svg/gitlab.svg create mode 100644 WebSite/src/icons/svg/noctua.svg create mode 100644 WebSite/src/icons/svg/noctua_s.svg create mode 100644 WebSite/src/icons/svg/vant.svg create mode 100644 WebSite/src/icons/svg/vue.svg create mode 100644 WebSite/src/layout/MicroLayout.vue delete mode 100644 WebSite/src/layout/components/AppMain.vue create mode 100644 WebSite/src/layout/components/AppMain/components/MicroApp.vue create mode 100644 WebSite/src/layout/components/AppMain/components/Normal.vue create mode 100644 WebSite/src/layout/components/AppMain/index.vue delete mode 100644 WebSite/src/layout/components/Navbar.vue create mode 100644 WebSite/src/layout/components/Navbar/index.vue create mode 100644 WebSite/src/layout/components/Navigation/components/Breadcrumb.vue create mode 100644 WebSite/src/layout/components/Navigation/components/Hamburger.vue create mode 100644 WebSite/src/layout/components/Navigation/index.vue rename WebSite/src/layout/components/{TagsView/ScrollPane.vue => ScrollPane/index.vue} (89%) delete mode 100644 WebSite/src/layout/components/Sidebar/FixiOSBug.js delete mode 100644 WebSite/src/layout/components/Sidebar/Item.vue delete mode 100644 WebSite/src/layout/components/Sidebar/Link.vue delete mode 100644 WebSite/src/layout/components/Sidebar/SidebarItem.vue create mode 100644 WebSite/src/layout/components/Sidebar/components/AppLink.vue rename WebSite/src/layout/components/Sidebar/{ => components}/Logo.vue (58%) create mode 100644 WebSite/src/layout/components/Sidebar/components/SidebarItem.vue create mode 100644 WebSite/src/layout/components/Sidebar/components/Unit.vue delete mode 100644 WebSite/src/permission.js create mode 100644 WebSite/src/public-path.js create mode 100644 WebSite/src/router/guards.js create mode 100644 WebSite/src/router/micro-app.js delete mode 100644 WebSite/src/router/modules/demo.js create mode 100644 WebSite/src/router/modules/hello.js create mode 100644 WebSite/src/router/modules/workplace.js delete mode 100644 WebSite/src/service/base/base.js delete mode 100644 WebSite/src/service/index.js delete mode 100644 WebSite/src/service/modules/account.js delete mode 100644 WebSite/src/service/modules/user.js delete mode 100644 WebSite/src/settings.js delete mode 100644 WebSite/src/store/modules/errorLog.js delete mode 100644 WebSite/src/store/modules/permission.js delete mode 100644 WebSite/src/store/modules/settings.js create mode 100644 WebSite/src/store/modules/subject.js delete mode 100644 WebSite/src/store/modules/tagsView.js delete mode 100644 WebSite/src/store/modules/user.js create mode 100644 WebSite/src/styles/mixin-theme.scss create mode 100644 WebSite/src/styles/navbar.scss delete mode 100644 WebSite/src/styles/reset.scss create mode 100644 WebSite/src/styles/var-theme.scss create mode 100644 WebSite/src/utils/Common.js create mode 100644 WebSite/src/utils/Storage.js delete mode 100644 WebSite/src/utils/auth.js delete mode 100644 WebSite/src/utils/config.js delete mode 100644 WebSite/src/utils/enum.js delete mode 100644 WebSite/src/utils/error-log.js create mode 100644 WebSite/src/utils/formatter.js delete mode 100644 WebSite/src/utils/get-page-title.js delete mode 100644 WebSite/src/utils/index.js delete mode 100644 WebSite/src/utils/loading.js delete mode 100644 WebSite/src/utils/open-window.js delete mode 100644 WebSite/src/utils/permission.js delete mode 100644 WebSite/src/utils/request.js delete mode 100644 WebSite/src/utils/scroll-to.js delete mode 100644 WebSite/src/vendor/Export2Excel.js delete mode 100644 WebSite/src/vendor/Export2Zip.js create mode 100644 WebSite/src/views/auth-redirect/index.vue delete mode 100644 WebSite/src/views/charts/keyboard.vue delete mode 100644 WebSite/src/views/charts/line.vue delete mode 100644 WebSite/src/views/charts/mix-chart.vue delete mode 100644 WebSite/src/views/clipboard/index.vue delete mode 100644 WebSite/src/views/components-demo/avatar-upload.vue delete mode 100644 WebSite/src/views/components-demo/back-to-top.vue delete mode 100644 WebSite/src/views/components-demo/count-to.vue delete mode 100644 WebSite/src/views/components-demo/dnd-list.vue delete mode 100644 WebSite/src/views/components-demo/drag-dialog.vue delete mode 100644 WebSite/src/views/components-demo/drag-kanban.vue delete mode 100644 WebSite/src/views/components-demo/drag-select.vue delete mode 100644 WebSite/src/views/components-demo/dropzone.vue delete mode 100644 WebSite/src/views/components-demo/json-editor.vue delete mode 100644 WebSite/src/views/components-demo/markdown.vue delete mode 100644 WebSite/src/views/components-demo/mixin.vue delete mode 100644 WebSite/src/views/components-demo/split-pane.vue delete mode 100644 WebSite/src/views/components-demo/sticky.vue delete mode 100644 WebSite/src/views/components-demo/tinymce.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/BarChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/BoxCard.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/LineChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/PanelGroup.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/PieChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/RaddarChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/TodoList/index.scss delete mode 100644 WebSite/src/views/dashboard/admin/components/TodoList/index.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/TransactionTable.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/mixins/resize.js delete mode 100644 WebSite/src/views/dashboard/admin/index.vue delete mode 100644 WebSite/src/views/dashboard/editor/index.vue delete mode 100644 WebSite/src/views/dashboard/index.vue delete mode 100644 WebSite/src/views/documentation/index.vue delete mode 100644 WebSite/src/views/error-log/components/ErrorTestA.vue delete mode 100644 WebSite/src/views/error-log/components/ErrorTestB.vue delete mode 100644 WebSite/src/views/error-log/index.vue delete mode 100644 WebSite/src/views/example/button/index.vue delete mode 100644 WebSite/src/views/example/dialog/components/Detail.vue delete mode 100644 WebSite/src/views/example/dialog/index.vue delete mode 100644 WebSite/src/views/example/form.vue delete mode 100644 WebSite/src/views/example/icon.vue delete mode 100644 WebSite/src/views/example/index.vue delete mode 100644 WebSite/src/views/example/layout.vue delete mode 100644 WebSite/src/views/example/table.vue delete mode 100644 WebSite/src/views/excel/components/AutoWidthOption.vue delete mode 100644 WebSite/src/views/excel/components/BookTypeOption.vue delete mode 100644 WebSite/src/views/excel/components/FilenameOption.vue delete mode 100644 WebSite/src/views/excel/export-excel.vue delete mode 100644 WebSite/src/views/excel/merge-header.vue delete mode 100644 WebSite/src/views/excel/select-excel.vue delete mode 100644 WebSite/src/views/excel/upload-excel.vue create mode 100644 WebSite/src/views/frame/index.vue delete mode 100644 WebSite/src/views/guide/index.vue delete mode 100644 WebSite/src/views/guide/steps.js create mode 100644 WebSite/src/views/hello/HelloA.vue create mode 100644 WebSite/src/views/hello/HelloB.vue create mode 100644 WebSite/src/views/hello/HelloC.vue delete mode 100644 WebSite/src/views/icons/element-icons.js delete mode 100644 WebSite/src/views/icons/index.vue delete mode 100644 WebSite/src/views/icons/svg-icons.js delete mode 100644 WebSite/src/views/login/auth-redirect.vue create mode 100644 WebSite/src/views/login/components/SelectUser.vue delete mode 100644 WebSite/src/views/login/components/SocialSignin.vue delete mode 100644 WebSite/src/views/nested/menu1/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-1/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-2/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-3/index.vue delete mode 100644 WebSite/src/views/nested/menu2/index.vue delete mode 100644 WebSite/src/views/outer/index.vue delete mode 100644 WebSite/src/views/pdf/content.js delete mode 100644 WebSite/src/views/pdf/download.vue delete mode 100644 WebSite/src/views/pdf/index.vue delete mode 100644 WebSite/src/views/permission/components/SwitchRoles.vue delete mode 100644 WebSite/src/views/permission/directive.vue delete mode 100644 WebSite/src/views/permission/page.vue delete mode 100644 WebSite/src/views/permission/role.vue delete mode 100644 WebSite/src/views/profile/components/Account.vue delete mode 100644 WebSite/src/views/profile/components/Activity.vue delete mode 100644 WebSite/src/views/profile/components/Timeline.vue delete mode 100644 WebSite/src/views/profile/components/UserCard.vue delete mode 100644 WebSite/src/views/profile/index.vue delete mode 100644 WebSite/src/views/qiniu/upload.vue delete mode 100644 WebSite/src/views/redirect/index.vue delete mode 100644 WebSite/src/views/tab/components/TabPane.vue delete mode 100644 WebSite/src/views/tab/index.vue delete mode 100644 WebSite/src/views/table/complex-table.vue delete mode 100644 WebSite/src/views/table/drag-table.vue delete mode 100644 WebSite/src/views/table/dynamic-table/components/FixedThead.vue delete mode 100644 WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue delete mode 100644 WebSite/src/views/table/dynamic-table/index.vue delete mode 100644 WebSite/src/views/table/inline-edit-table.vue delete mode 100644 WebSite/src/views/theme/index.vue create mode 100644 WebSite/src/views/workplace/index.vue delete mode 100644 WebSite/src/views/zip/index.vue delete mode 100644 WebSite/tests/unit/.eslintrc.js delete mode 100644 WebSite/tests/unit/components/Hamburger.spec.js delete mode 100644 WebSite/tests/unit/components/SvgIcon.spec.js delete mode 100644 WebSite/tests/unit/utils/formatTime.spec.js delete mode 100644 WebSite/tests/unit/utils/parseTime.spec.js delete mode 100644 WebSite/tests/unit/utils/validate.spec.js diff --git a/WebSite/.browserslistrc b/WebSite/.browserslistrc new file mode 100644 index 00000000..214388fe --- /dev/null +++ b/WebSite/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +last 2 versions +not dead diff --git a/WebSite/.editorconfig b/WebSite/.editorconfig deleted file mode 100644 index 3454886e..00000000 --- a/WebSite/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# https://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -insert_final_newline = false -trim_trailing_whitespace = false diff --git a/WebSite/.env b/WebSite/.env new file mode 100644 index 00000000..e69de29b diff --git a/WebSite/.env.development b/WebSite/.env.development index 8f5856db..deb2d351 100644 --- a/WebSite/.env.development +++ b/WebSite/.env.development @@ -1,14 +1,2 @@ -# just a flag -ENV = 'development' - -# base api -VUE_APP_BASE_API = '/dev-api' - -# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, -# to control whether the babel-plugin-dynamic-import-node plugin is enabled. -# It only does one thing by converting all import() to require(). -# This configuration can significantly increase the speed of hot updates, -# when you have a large number of pages. -# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js - -VUE_CLI_BABEL_TRANSPILE_MODULES = true +VUE_APP_BASE_URI = '/' +VUE_APP_BASE_API = '/api' \ No newline at end of file diff --git a/WebSite/.env.mock b/WebSite/.env.mock new file mode 100644 index 00000000..7bfeed82 --- /dev/null +++ b/WebSite/.env.mock @@ -0,0 +1,3 @@ +NODE_ENV = mock +VUE_APP_BASE_URI = '/' +VUE_APP_BASE_API = '/api' \ No newline at end of file diff --git a/WebSite/.env.production b/WebSite/.env.production index 07d391ea..0c872bbd 100644 --- a/WebSite/.env.production +++ b/WebSite/.env.production @@ -1,6 +1,2 @@ -# just a flag -ENV = 'production' - -# base api -VUE_APP_BASE_API = '/api' - +VUE_APP_BASE_URI = '/noctua-admin-micro/' +VUE_APP_BASE_API = '/api' \ No newline at end of file diff --git a/WebSite/.env.staging b/WebSite/.env.staging deleted file mode 100644 index d69f6634..00000000 --- a/WebSite/.env.staging +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV = production - -# just a flag -ENV = 'staging' - -# base api -VUE_APP_BASE_API = '/api' - diff --git a/WebSite/.env.test b/WebSite/.env.test deleted file mode 100644 index 49eb66d5..00000000 --- a/WebSite/.env.test +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV = production - -# just a flag -ENV = 'test' - -# base api -VUE_APP_BASE_API = '/api' - diff --git a/WebSite/.eslintignore b/WebSite/.eslintignore index e6529fc0..1019b386 100644 --- a/WebSite/.eslintignore +++ b/WebSite/.eslintignore @@ -1,4 +1,5 @@ build/*.js src/assets +src/public-path.js public dist diff --git a/WebSite/.eslintrc.js b/WebSite/.eslintrc.js index c5ce0efe..ea36cfea 100644 --- a/WebSite/.eslintrc.js +++ b/WebSite/.eslintrc.js @@ -1,15 +1,21 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 09:49:30 + */ module.exports = { root: true, env: { node: true }, - extends: ["plugin:vue/essential", "@vue/prettier"], - rules: { - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'no-unused-vars': "off", - 'no-console': "off" - }, + extends: ['plugin:vue/vue3-essential', 'eslint:recommended', '@vue/prettier'], parserOptions: { - parser: "babel-eslint" + parser: 'babel-eslint' + }, + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' } }; diff --git a/WebSite/.gitignore b/WebSite/.gitignore index eec53479..403adbc1 100644 --- a/WebSite/.gitignore +++ b/WebSite/.gitignore @@ -1,14 +1,17 @@ .DS_Store -node_modules/ -dist/ +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files npm-debug.log* yarn-debug.log* yarn-error.log* -**/*.log - -tests/**/coverage/ -tests/e2e/reports -selenium-debug.log +pnpm-debug.log* # Editor directories and files .idea @@ -17,7 +20,4 @@ selenium-debug.log *.ntvs* *.njsproj *.sln -*.local - -# package-lock.json -yarn.lock +*.sw? diff --git a/WebSite/.prettierrc.js b/WebSite/.prettierrc.js index 6294ecf9..f9373276 100644 --- a/WebSite/.prettierrc.js +++ b/WebSite/.prettierrc.js @@ -1,12 +1,12 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:07 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-08 12:47:32 - */ + * @Autor: dongjunhua + * @Date: 2020-12-18 09:43:18 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 09:49:08 + */ module.exports = { semi: true, - printWidth: 80, - endOfLine: "auto" -}; + singleQuote: true, + bracketSpacing: true +} \ No newline at end of file diff --git a/WebSite/.travis.yml b/WebSite/.travis.yml deleted file mode 100644 index f4be7a08..00000000 --- a/WebSite/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: 10 -script: npm run test -notifications: - email: false diff --git a/WebSite/CHANGELOG.md b/WebSite/CHANGELOG.md new file mode 100644 index 00000000..781a64d5 --- /dev/null +++ b/WebSite/CHANGELOG.md @@ -0,0 +1,220 @@ +# 1.0.6 (2022-4-14) <img src="docs/version_beta.png" style="zoom:80%;" /> + +#### 新增 + +- 引入qiankunå¾®å‰ç«¯ç»„ä»¶ + +#### å˜æ›´ + +- 优化部分外层框架代ç + + + +# 1.0.5 (2021-9-3) <img src="docs/version_beta.png" style="zoom:80%;" /> + +#### 新增 + +- æ ‡ç¾é¡µå¯é€‰æ ·å¼ +- é¦–é¡µæ·»åŠ dashboard +- æ·»åŠ ç”¨æˆ·ä¸å¿ƒ + +#### ä¿®å¤ + +- ä¿®å¤iframe组件问题 + +#### å˜æ›´ + +- Vue版本å‡çº§åˆ°3.2.8 +- Vue Router版本å‡çº§åˆ°4.0.11 +- Element Plus版本å‡çº§åˆ°1.1.0-beta.8 +- è°ƒæ•´éƒ¨åˆ†æ ·å¼ + +(**特别æç¤º**:本次更新对较多ä¾èµ–项进行了å‡çº§ï¼Œè¯·åˆ 除node_modulesåŽé‡æ–°å®‰è£…ä¾èµ–项) + + + +# 1.0.4 (2021-8-25) <img src="docs/version_beta.png" style="zoom:80%;" /> + +#### 新增 + +- 新增é…ç½®ä¸å¿ƒï¼Œå¯å¯¹ä»¥ä¸‹å†…容进行é…置: + 1. èœå•布局 + 2. èœå•é…色(预置é…色ã€è‡ªå®šä¹‰é…色) + 3. ä¾§è¾¹æ Logoã€æ ‡ç¾é¡µå¯åЍæ€å¼€å…³ + +#### å˜æ›´ + +- store/appé‡å†™ + +#### ä¿®å¤ + +- ä¿®å¤äº†æ–°ç‰ˆæ‹–拽的一些问题 + + + +# 1.0.3 (2021-8-16) <img src="docs/version_beta.png" style="zoom:80%;" /> + +#### ä¿®å¤ + +- ä¿®å¤æ ‡ç¾é¡µæ‹–æ‹½åŽæ–°å¢žæ ‡ç¾æ’å…¥ä½ç½®é—®é¢˜ + +#### å˜æ›´ + +- Element Plus版本å‡çº§åˆ°1.0.2-beta.70 +- 引入`vuedraggable`拖拽组件 + + + +# 1.0.2 (2021-7-15) <img src="docs/version_beta.png" style="zoom:80%;" /> + +#### ä¿®å¤ + +- ä¿®å¤æ ‡ç¾é¡µå…³é—时对应页é¢ä»»ç„¶è¢«ç¼“å˜çš„问题 + +#### å˜æ›´ + +- Element Plus版本å‡çº§åˆ°1.0.2-beta.55 +- Vant版本å‡çº§åˆ°3.1.3 + + + +# 1.0.1 (2021-6-24) <img src="docs/version_beta.png" style="zoom:80%;" /> + +#### 新增 + +- subject.logoutæ–¹æ³•æ–°å¢žå‚æ•°ï¼Œå¯é…ç½®æ˜¯å¦æ‰§è¡Œè·³è½¬ + +#### å˜æ›´ + +- Element Plus版本å‡çº§åˆ°1.0.2-beta.51 +- Vant版本å‡çº§åˆ°3.1.0 +- 优化路由守å«ä¸æœªç™»å½•时的跳转逻辑 + + + +# 1.0.0-Peppermint (2021-6-23) <img src="docs/version_beta.png" style="zoom:80%;" /> + +#### å˜æ›´ + +- Vue版本å‡çº§åˆ°3.1.1 +- Vue Router版本å‡çº§åˆ°4.0.10 +- Vuex版本å‡çº§åˆ°4.0.2 +- Element Plus版本å‡çº§åˆ°1.0.2-beta.48 +- Vant版本å‡çº§åˆ°3.1.0-beta.0 +- 若干其他ä¾èµ–æ›´æ–° +- è°ƒæ•´éƒ¨åˆ†æ ·å¼ + +(**特别æç¤º**:本次更新对较多ä¾èµ–项进行了å‡çº§ï¼Œè¯·åˆ 除node_modulesåŽé‡æ–°å®‰è£…ä¾èµ–项) + + + +# 0.9.1 (2021-6-15) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### 新增 + +- æ ‡ç¾é¡µæ·»åŠ æ‹–æ‹½åŠŸèƒ½ + + + +# 0.9.0 (2021-6-9) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### 新增 + +- æ·»åŠ Vant组件库(3.0.18) + +(**特别æç¤º**ï¼šä¸ºäº†åœ¨ç§»åŠ¨ç«¯èŽ·å¾—æ›´å¥½çš„è¡¨çŽ°å’Œå…¼å®¹æ€§ï¼Œæœ¬æ¬¡æ›´æ–°æ·»åŠ äº†Vant组件库,推è移动端项目使用) + +#### ä¿®å¤ + +- ä¿®å¤iframe组件被销æ¯åŽå¯¼è‡´çš„æŽ§åˆ¶å°æŠ¥é”™ + + + +# 0.8.5 (2021-6-9) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### 新增 + +- æ·»åŠ keep-aliveç»„ä»¶æ”¯æŒ + +#### å˜æ›´ + +- Element Plus版本å‡çº§åˆ°1.0.2-beta.46 + +#### ä¿®å¤ + +- ä¿®å¤çƒé‡è½½å¤±æ•ˆé—®é¢˜ï¼ˆæ¤é—®é¢˜ç³»Element Plus 1.0.2-beta.45ç‰ˆæœ¬é€ æˆï¼‰ + + + +# 0.8.4 (2021-6-4) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### 新增 + +- æ·»åŠ iframeç»„ä»¶æ”¯æŒ + + + +# 0.8.3 (2021-6-3) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### 新增 + +- æ·»åŠ é¡µé¢æ ‡é¢˜éšèœå•åç§°åˆ‡æ¢ + +#### å˜æ›´ + +- Vue版本å‡çº§åˆ°3.0.11 +- Vue Router版本å‡çº§åˆ°4.0.8 +- Vuex版本å‡çº§åˆ°4.0.1 +- Element Plus版本å‡çº§åˆ°1.0.2-beta.45 +- mock.js版本å‡çº§åˆ°1.1.0 +- 若干其他ä¾èµ–æ›´æ–° + +#### ä¿®å¤ + +- ä¿®å¤é¡¶éƒ¨èœå•高亮问题 + +(**特别æç¤º**:本次更新对较多ä¾èµ–项进行了å‡çº§ï¼Œè¯·åˆ 除node_modulesåŽé‡æ–°å®‰è£…ä¾èµ–项) + + + +# 0.8.2 (2021-5-20) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### å˜æ›´ + +- éƒ¨åˆ†æ ·å¼è°ƒæ•´ +- Element Plus组件默认é…ç½®ä¸ºä¸æ–‡ +- Element Plus版本å‡çº§åˆ°1.0.2-beta.44 + +#### ä¿®å¤ + +- ä¿®å¤ä¾§è¾¹èœå•LogoåŒºåŸŸæ ·å¼ +- ä¿®å¤ä¾§è¾¹èœå•åŠé¡¶éƒ¨èœå•在仅有一级èœå•æ—¶çš„æ ·å¼é—®é¢˜ + + + +# 0.8.1 (2021-2-26) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### å˜æ›´ + +- éƒ¨åˆ†æ ·å¼è°ƒæ•´ +- 部分css代ç 优化 + +#### ä¿®å¤ + +- 主区域滚动æ¡é—®é¢˜ + + + +# 0.8.0 (2021-2-25) <img src="docs/version_alpha.png" style="zoom:80%;" /> + +#### 新增 + +- æ·»åŠ é¡¶éƒ¨èœå•(当å‰èœå•激活项高亮å˜åœ¨é—®é¢˜ï¼Œå°šä¸èƒ½ç¡®å®šé—®é¢˜åŽŸå› ï¼Œå¯èƒ½ä¸ºElement组件自身bug) + +#### å˜æ›´ + +- Element Plus版本å‡çº§åˆ°1.0.2-beta.32 + +#### ä¿®å¤ + +- ä¸€äº›æ ·å¼é—®é¢˜ \ No newline at end of file diff --git a/WebSite/Dockerfile b/WebSite/Dockerfile index 86f2bc70..fe0e354e 100644 --- a/WebSite/Dockerfile +++ b/WebSite/Dockerfile @@ -1,9 +1,8 @@ -From nginx:latest -#COPY ./dist /usr/share/nginx/html -#COPY ./conf/nginx.conf /etc/nginx/nginx.conf +FROM nginx:latest COPY ./dist /app/html COPY ./conf/nginx.conf /app/nginx.conf COPY ./conf/init.sh /app/run.sh +COPY ./noctua-admin.zip /app/noctua-admin.zip +ENV nginxURL="" ENTRYPOINT ["nohup","/app/run.sh","&"] -CMD [ "" ] -#ENTRYPOINT ["nginx","-g","daemon off"] \ No newline at end of file +CMD [ "" ] \ No newline at end of file diff --git a/WebSite/LICENSE b/WebSite/LICENSE index 61515750..1b81e7c4 100644 --- a/WebSite/LICENSE +++ b/WebSite/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-present PanJiaChen +Copyright (c) 2021 DongJunHua Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/WebSite/README.md b/WebSite/README.md index 33d03e3c..fbfdf55d 100644 --- a/WebSite/README.md +++ b/WebSite/README.md @@ -1,27 +1,372 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-04-21 18:54:20 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 15:41:52 ---> -# Vue Element Admin + -å‰ç«¯åŸºç¡€æ¨¡æ¿ï¼ŒåŸºäºŽ Vue 2.x åŠ element-ui -模æ¿åŽç»å†…容仅在 develop 分支更新,请勿使用 master 分支 -**更新历å²** +:star:基于 Vue 3 的新版å‰ç«¯æ¡†æž¶æ¨¡æ¿:star: -2020/9/18 -version: 1.1.0 -å†…å®¹ï¼šæ·»åŠ å‰ç«¯UIè§„èŒƒï¼Œè°ƒæ•´éƒ¨åˆ†ç•Œé¢ +**※ 项目æ£å¼å‘½å为 Noctua Admin** -2020/8/20 -version: 1.0.0 -内容:第一个æ£å¼ç‰ˆæœ¬ +※ 最新版本:v1.0.6(328) ,详情查看:[更新日志](CHANGELOG.md) -**注æ„事项** +※ 下一版本:待定 -如需在打包时使用特定的é…置(例如åŽç«¯åœ°å€ï¼‰ï¼Œè¯·åœ¨æ ¹ç›®å½•æ·»åŠ å¯¹åº”çš„ .env.xxx 文件(xxx 为自定义的环境å称),并在 /src/assets/configs ç›®å½•ä¸‹æ·»åŠ xxx.json 文件, -最åŽåœ¨ package.json ä¸çš„ scripts å—æ®µä¸æ·»åŠ å¯¹åº”çš„å‘½ä»¤ï¼š"build:xxx": "vue-cli-service build --mode xxx" +※ 在线demo:http://47.110.127.118:8222/noctua-admin + +※ 项目仓库:http://git.seaskysh.com.cn:8800/dongjunhua/vue-element-next + +※ Vue 3 相关文档请å‚考:https://v3.cn.vuejs.org/ + +※ Element Plus ç»„ä»¶åº“ç¤ºä¾‹åŠæ–‡æ¡£è¯·å‚考:https://element-plus.gitee.io/#/zh-CN + +※ Vant ç»„ä»¶åº“ç¤ºä¾‹åŠæ–‡æ¡£è¯·å‚考:https://vant-contrib.gitee.io/vant/v3/#/zh-CN + +※ Font Awesome å›¾æ ‡åº“ä½¿ç”¨ç¤ºä¾‹åŠæ–‡æ¡£è¯·å‚考:https://fa5.dashgame.com/#/ + +※ 如å‘çŽ°ä»»ä½•é—®é¢˜ï¼Œæ¬¢è¿Žéšæ—¶æäº¤é—®é¢˜æŠ¥å‘Šæˆ–åˆå¹¶è¯·æ±‚,以便快速修å¤å’Œè¿ä»£ + + + +## 如何è¿è¡Œé¡¹ç›® + +##### 下载项目ä¾èµ– + +``` +npm install +``` + +##### å¼€å‘环境编译并è¿è¡Œ + +``` +npm run serve:dev +``` + +##### å¼€å‘环境编译并è¿è¡Œï¼ˆåŒæ—¶å¯åЍ mock æœåŠ¡ï¼‰ + +``` +npm run serve:mock +``` + +##### 生产环境打包项目 + +``` +npm run build:prod +``` + +##### æ ¼å¼åŒ–代ç + +``` +npm run lint +``` + +##### 导出 webpack é…置(开å‘环境) + +``` +npm run config:dev +``` + +##### 导出 webpack é…置(生产环境) + +``` +npm run config:prod +``` + + + +## 说明文档 + +#### 一ã€é¡¹ç›®ç»“æž„åŠä¸»è¦ç›®å½• + +| ä½ç½® | 说明 | +| --------------- | -------------------------------------------------------------------------- | +| /mock | mock.js 目录,mock 的作用是为项目æä¾›æ¨¡æ‹Ÿæ•°æ®ï¼Œæ–¹ä¾¿è„±ç¦»åŽç«¯è¿›è¡Œå¼€å‘ | +| /src | 主目录 | +| /src/api | api æŽ¥å£æ–¹æ³•目录,按业务功能划分 | +| /src/components | 公共组件目录 | +| /src/core | æ ¸å¿ƒä»£ç åŠç±»åº“目录 | +| /src/layout | 布局结构代ç 目录,包括边æ (èœå•)ã€é¡¶æ (é¢åŒ…屑ç‰ï¼‰ã€æ ‡ç¾æ 以åŠä¸»æ˜¾ç¤ºåŒºåŸŸ | +| /src/router | 路由模å—目录 | +| /src/config | é¡¹ç›®å‚æ•°é…置目录 | +| /src/store | vuex 全局状æ€ç®¡ç†æ¨¡å—目录 | +| /src/style | æ ·å¼ç›®å½• | +| /src/utils | 工具类目录 | +| /src/views | 业务功能页é¢ç»„件目录 | + +#### 二ã€ç‹¬ç«‹ä¼šè¯æ¨¡å—(ISM) + +ç‹¬ç«‹ä¼šè¯æ¨¡å—是模æ¿é¡¹ç›®çš„æ ¸å¿ƒæ¨¡å—,æä¾›äº†å®Œæ•´çš„会è¯ç›¸å…³åŠŸèƒ½ï¼ŒåŒ…æ‹¬è®¤è¯ã€æŽˆæƒã€åŠ å¯†å’Œä¼šè¯ç®¡ç†ç‰ï¼Œå…¶ç›®çš„在于解决以往å‰ç«¯å¼€å‘äººå‘˜å› ä¸ºç»éªŒå’Œå¯¹å…¬å¸åŸºç¡€æ•°æ®ä¸šåŠ¡æµç¨‹ã€é€»è¾‘的认识ä¸å¤Ÿï¼Œæ‰€å¯¼è‡´çš„å½±å“开呿•ˆçŽ‡æˆ–å…¶ä»–ç›¸å…³é—®é¢˜ã€‚ + +主è¦ç”±ä»¥ä¸‹å模å—组æˆï¼š + +##### ※ Subject + +###### 目录:/src/store/modules/subject.js + +ç‹¬ç«‹ä¼šè¯æ¨¡å—çš„æ ¸å¿ƒåæ¨¡å—,æ„为主体,会è¯çš„管ç†è€…,借由 vuex å®žçŽ°ï¼Œç»´æŠ¤ä¼šè¯æ•°æ®å¹¶è°ƒåº¦å…¶ä»–模å—诸如路由æ¥å®žçް坹æƒé™çš„æŽ§åˆ¶ï¼Œæ³¨æ„,Subject 内部ä¸ä¼šç›´æŽ¥è°ƒç”¨ä»»ä½•åŽç«¯æŽ¥å£æ¥èŽ·å¾—è®¤è¯æˆ–æŽˆæƒæ•°æ®ï¼Œè¿™äº›æ•°æ®éœ€è¦é€šè¿‡ Realm æ¥æä¾›ã€‚ + +以下是 Subject æä¾›çš„æ–¹æ³• + +| 方法 | 傿•° | 傿•°ç±»åž‹ | 功能 | +| --------------- | ------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| login | token | String/AuthenticationToken | 登录并生æˆå‰ç«¯ä¼šè¯ï¼Œåœ¨é»˜è®¤æ¨¡å¼ä¸‹ï¼Œè°ƒç”¨æ¤æ–¹æ³•éœ€è¦æä¾›ä¸€ä¸ª AuthenticationToken 实例,在å•点登录模å¼ä¸‹ï¼Œåˆ™é€šå¸¸éœ€è¦æä¾›å•点登录端返回的令牌ç ,login 会调用 Realm.doGetAuthenticationInfo()æ–¹æ³•å¹¶ä¼ å…¥ tokenï¼Œé€šå¸¸æˆ‘ä»¬åº”è¯¥åœ¨æ¤æ–¹æ³•ä¸è°ƒç”¨åŽç«¯ç™»å½•æŽ¥å£æˆ–通过令牌获å–登录用户信æ¯ï¼Œå¹¶è¿”回一个 AuthenticationInfo 实例作为认è¯ç»“果。AuthenticationToken 实例对象包å«ä¸¤ä¸ªå—段:<br />**principals**(String/必须):身份,通常为用户åï¼›<br />**credentials**(String/å¿…é¡»ï¼‰ï¼šè¯æ˜Žï¼Œé€šå¸¸ä¸ºå¯†ç 。 | +| permit | payload | Object | 授æƒï¼Œåœ¨ç™»å½•完æˆåŽè°ƒç”¨ï¼Œpermit 会调用 Realm.doGetAuthorizationInfo()æ–¹æ³•ï¼Œé€šå¸¸æˆ‘ä»¬åº”è¯¥åœ¨æ¤æ–¹æ³•ä¸è°ƒç”¨åŽç«¯æŽ¥å£èŽ·å–当å‰ç™»å½•用户的æƒé™ç›¸å…³ä¿¡æ¯ï¼Œå¹¶è¿”回一个 AuthorizationInfo 实例。<br />è¯¥æ–¹æ³•æŽ¥æ”¶ä¸€ä¸ªå¯¹è±¡ä½œä¸ºå‚æ•°ï¼ŒåŒ…æ‹¬ä¸¤ä¸ªå—æ®µï¼š<br />**authorizationToken**(String/å¯é€‰ï¼‰ï¼šè¯¥å‚数会作为 Realm.doGetAuthorizationInfo()æ–¹æ³•çš„å‚æ•°ï¼›<br />**afterPermitted**(Function/å¯é€‰ï¼‰ï¼šè¯¥å‡½æ•°å°†ä¼šåœ¨æŽˆæƒå®ŒæˆåŽè¢«æ‰§è¡Œï¼ˆä¾‹å¦‚:å•点登录端完æˆç™»å½•åŽéœ€è¦è·³è½¬å›žä¸šåŠ¡ç³»ç»Ÿï¼‰ï¼Œé»˜è®¤æƒ…å†µä¸‹ï¼Œsubject 将会调度 router 跳转到首页。 | +| checkPermission | payload | Object | 用于对路由进行æƒé™æ ¡éªŒï¼Œè¯¥æ–¹æ³•在路由守å«ä¸è¢«è°ƒç”¨å¹¶è¿”å›žæ ¡éªŒç»“æžœã€‚<br />è¯¥æ–¹æ³•æŽ¥æ”¶ä¸€ä¸ªå¯¹è±¡ä½œä¸ºå‚æ•°ï¼ŒåŒ…æ‹¬ä¸¤ä¸ªå—æ®µï¼š<br />**path**(String/必须):需è¦è¢«æ ¡éªŒçš„路由;<br />**whiteList**(Array/å¯é€‰ï¼‰ï¼šç™½åå•,用于è±å…æƒé™æ ¡éªŒã€‚ | +| recovery | - | - | 用于在 vuex é‡ç½®åŽä»Ž storage æ¢å¤ä¼šè¯ä¿¡æ¯ï¼Œåœ¨è·¯ç”±å®ˆå«ä¸è¢«è°ƒç”¨ã€‚ | +| logout | payload | Object | 注销当å‰ä¼šè¯ï¼Œæ³¨é”€å‰å°†ä¼šè°ƒç”¨ Realm.beforeLogout(),通常用于调用åŽç«¯æ³¨é”€æŽ¥å£ï¼Œæ³¨é”€åŽé»˜è®¤å°†è°ƒåº¦ router 跳转到登录页é¢ï¼Œå•点登录模å¼ä¸‹å°†è·³è½¬åˆ°å“应的å•点登录地å€ã€‚<br />è¯¥æ–¹æ³•æŽ¥æ”¶ä¸€ä¸ªå¯¹è±¡ä½œä¸ºå‚æ•°ï¼ŒåŒ…æ‹¬äº”ä¸ªå—æ®µï¼š<br />**beforeLogout**(Function/å¯é€‰ï¼‰ï¼šç”¨äºŽæ›¿æ¢é»˜è®¤çš„ Realm.beforeLogout(),在å•点登录模å¼ä¸‹ï¼Œå¯åœ¨è¯¥å‡½æ•°è¿”回å•点登录的地å€ï¼›<br />**ssoAddress**(String/å¯é€‰ï¼‰ï¼šå•点登录模å¼ä¸‹ä½¿ç”¨ï¼Œè¡¨ç¤ºå•点登录地å€ï¼Œæ³¨æ„,共有三个入å£å¯æä¾›å•点登录地å€ï¼Œä¼˜å…ˆçº§ä¸ºï¼šæ¤å—段æä¾›çš„åœ°å€ > beforeLogout()è¿”å›žçš„åœ°å€ > config ä¸å®šä¹‰çš„地å€ï¼›<br />**ssoLogout**(Boolean/å¯é€‰ï¼‰ï¼šå•点登录模å¼ä¸‹ä½¿ç”¨ï¼Œç”¨äºŽæ³¨é”€å•点登录端的会è¯<br />**query**(Object/å¯é€‰ï¼‰ï¼šè·³è½¬ç™»å½•页颿—¶é™„åŠ çš„å‚æ•°<br />**doRouterPush**(Boolean/å¯é€‰ï¼‰ï¼šlogout æ‰§è¡Œå®Œæ¯•åŽæ˜¯å¦è°ƒåº¦ router è¿›è¡Œè·³è½¬ï¼Œå¦‚ä¸æ‰§è¡Œå°†è¿”回一个跳转é…置对象。 | + +##### ※ Realm + +###### 目录:/src/core/base/Realm.js + +å®‰å…¨æ•°æ®æºï¼Œç”¨äºŽä¸º Subject æä¾›ä¼šè¯æ‰€å¿…须的数æ®ï¼ˆè´¦å·ã€ç”¨æˆ·ã€æƒé™ç‰ï¼‰ï¼Œé€šå¸¸æˆ‘们需è¦åœ¨ Realm 的方法ä¸è°ƒç”¨ç›¸åº”çš„åŽç«¯ api 接å£èŽ·å–å¿…è¦çš„æ•°æ®ï¼Œå¹¶è¿”回给 Subject。 + +ä¸»è¦æ–¹æ³•如下: + +``` + /** + * @method 获å–身份认è¯ä¿¡æ¯ + * @for Realm + * @param {*} authenticationToken + * @return {Promise} + */ + static async doGetAuthenticationInfo(authenticationToken) { + const { principals, credentials } = authenticationToken; + // 调用åŽç«¯api + // 必须返回一个AuthenticationInfo实例 + return new AuthenticationInfo(); + } + + /** + * @method 获å–用户æƒé™ä¿¡æ¯ + * @for Realm + * @param {*} authorizationToken + * @return {Promise} + */ + static async doGetAuthorizationInfo(authorizationToken) { + // 调用åŽç«¯api + // 必须返回一个AuthorizationInfo实例 + return new AuthorizationInfo(); + } + + /** + * @method 注销å‰çš„行为 + * @for Realm + * @return {String} ssoAddress + */ + static async beforeLogout() { + // 调用åŽç«¯api,通常是注销 + // å¯è¿”回一个å•ç‚¹ç™»å½•åœ°å€ + return; + } +``` + +##### ※ Guards + +###### 目录:/src/router/guards.js + +全局路由守å«ï¼Œç”¨äºŽä¸Ž subject é…åˆæ¥å®Œæˆæƒé™æ ¡éªŒå’Œè·¯ç”±è·³è½¬ã€‚ + +æµç¨‹å›¾å¦‚下: + + + +##### ※ Storage + +###### 目录:/src/utils/Storage.js + +Storage 工具类,用于é…åˆ subject 完æˆå¯¹å‰ç«¯ä¼šè¯çš„æŒä¹…åŒ–æ•°æ®ç»´æŠ¤ï¼ˆåŒ…括部分 app 傿•°ï¼‰ï¼Œæä¾›æ–°å¢žï¼Œæ›´æ–°å’Œåˆ é™¤ï¼ŒåŠ è§£å¯†ç‰æ–¹æ³•,å¯é…置过期时间。 + +ä¸»è¦æ–¹æ³•如下: + +``` + /** + * @method 设置localStorage + * @for Storage + * @param {string} key + * @param {*} value + * @param {number} expired + */ + static setLocal(key, value, expired) + + /** + * @method 获å–localStorage + * @for Storage + * @param {string} key + * @return {*} + */ + static getLocal(key) + + /** + * @method åˆ é™¤localStorage + * @for Storage + * @param {string} key + */ + static delLocal(key) + + /** + * @method 设置sessionStorage + * @for Storage + * @param {string} key + * @param {*} value + * @param {number} expired + */ + static setSession(key, value, expired) + + /** + * @method 获å–sessionStorage + * @for Storage + * @param {string} key + * @return {*} + */ + static getSession(key) + + /** + * @method åˆ é™¤sessionStorage + * @for Storage + * @param {string} key + */ + static delSession(key) + + /** + * @method æ·»åŠ å¯¹Storageçš„ç›‘å¬ + * @for Storage + * @param {function} callback + */ + static addListener(callback) + + /** + * @method åˆ é™¤å¯¹Storageçš„ç›‘å¬ + * @for Storage + * @param {function} callback + */ + static removeListener(callback) +``` + +#### 三ã€ä¸»é¢˜æ¨¡å— + +ä¸»é¢˜æ¨¡å—æä¾›æ›´æ¢ä¸»é¢˜é…色的功能,å¯é€šè¿‡ç®€å•çš„é…置实现主题的新增和修改。 + +##### ※ 主题列表é…ç½® + +###### 目录:/src/config/theme.js + +用于为界é¢ä¸Šçš„é…ç½®ä¸å¿ƒé¢„置主题选择æä¾›é€‰é¡¹ï¼Œé…置如下: + +``` +{ + name: 'classic', // 主题åç§° + default: true, // 是å¦é»˜è®¤ä¸»é¢˜ï¼ˆå¯é€‰ï¼‰ + styleColor: { + menuBg: '#303a4b', // 主色调(一级èœå•背景色,登录界é¢èƒŒæ™¯è‰²ï¼‰ + menuHover: '#263445', // 一级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + subMenuBg: '#1f2d3d', // 二级èœå•背景色 + subMenuHover: '#001528', // 二级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + menuText: '#bfcbd9', // èœå•æ–‡å—颜色 + menuActiveText: '#508aff', // èœå•激活时文å—颜色 + subMenuActiveText: '#f4f4f5', // èœå•激活时父级文å—颜色 + activeColor: '#508aff' // æ¿€æ´»æ ‡å¿—é¢œè‰² + } +} +``` + +自定义主题é…置方法: +- 在`é…ç½®ä¸å¿ƒ-自定义é…色`ä¸è°ƒè¯•好èœå•é…色,点击`å¤åˆ¶é…色`,将é…色粘贴至`/src/config/theme.js`文件`themeConfigs`数组ä¸ï¼Œéœ€æ³¨æ„`name`ä¸èƒ½ä¸Žå·²é¢„置的é…色é‡å¤ + +#### å››ã€å‚æ•°é…ç½® + +###### 目录:/src/config/index.js + +项目属性和è¿è¡Œå‚æ•°çš„é…ç½® + +``` +module.exports = { + /** + * 应用识别id + */ + recognizeId: 'noctua_admin', + /** + * 应用åç§° + */ + applicationName: 'Noctua Admin' || npmConfig.name, + /** + * 版本 + */ + releaseCycle: 'beta', + /** + * ç‰ˆæœ¬å· + */ + version: npmConfig.version, + /** + * Vueç‰ˆæœ¬å· + */ + coreVersion: npmConfig.dependencies.vue.replace(/\./g, ''), + /** + * çŽ¯å¢ƒæ ‡è¯† + */ + device: 'desktop', + /** + * 是å¦å¼€å¯ç™»å½•页é¢åЍæ€èƒŒæ™¯ + */ + enableDynamicBg: true, + /** + * ä¾§è¾¹æ é…置(侧边èœå•) + * 开坿—¶è¯·å…³é—导航æ + */ + sidebar: { + enabled: true, + showLogo: false + }, + /** + * 导航æ é…置(顶部èœå•) + * 开坿—¶è¯·å…³é—ä¾§è¾¹æ + */ + navbar: { + enabled: false + }, + /** + * å¯¼èˆªä¿¡æ¯æ é…ç½® + */ + navigation: { + enabled: true + }, + /** + * æ ‡ç¾é¡µé…ç½® + */ + tagsView: { + enabled: true, + type: 'default' // é£Žæ ¼ default / type-1 + }, + /** + * é…ç½®ä¸å¿ƒé…ç½® + */ + settings: { + enabled: true + }, + /** + * 登录模å¼ï¼ˆdefault: 默认/sso: å•点登录) + */ + loginType: 'default', + /** + * å•ç‚¹ç™»å½•åœ°å€ + */ + ssoAddress: '', + /** + * ä¼šè¯æœ‰æ•ˆæ—¶é—´ï¼ˆå•ä½ï¼šms,设为0时永久有效) + */ + loginValidDuration: 0, + /** + * 缓å˜åР坆 + */ + storageEncrypt: false, + /** + * ElementUI全局é…ç½® + */ + element: { + size: 'mini', + zIndex: 3000 + }, + /** + * 生产环境是å¦å¼€å¯mock + */ + useMock: true +}; +``` diff --git a/WebSite/babel.config.js b/WebSite/babel.config.js index ba179669..916db641 100644 --- a/WebSite/babel.config.js +++ b/WebSite/babel.config.js @@ -1,5 +1,3 @@ module.exports = { - presets: [ - '@vue/app' - ] -} + presets: ['@vue/cli-plugin-babel/preset'] +}; diff --git a/WebSite/conf/init.sh b/WebSite/conf/init.sh index 06552299..1092c8af 100644 --- a/WebSite/conf/init.sh +++ b/WebSite/conf/init.sh @@ -4,4 +4,14 @@ cp -r /app/html/. /usr/share/nginx/html cp /app/nginx.conf /etc/nginx/nginx.conf #echo "cp finish" nginx -tail -f /dev/null \ No newline at end of file + +if [ ! ${nginxURL} ]; then + echo "no param" +else + echo ${nginxURL} + curl ${nginxURL}/nginxWebUI/adminPage/www/delByName -F "name=html/noctua-admin" -v + curl ${nginxURL}/nginxWebUI/adminPage/main/upload -F "file=@/app/noctua-admin.zip" -v + curl ${nginxURL}/nginxWebUI/adminPage/www/update -F "id=1611282956" -F "name=html/noctua-admin" -F "dir=/home/nginxWebUI/cert/noctua-admin.zip" -v +fi + +tail -f /dev/null diff --git a/WebSite/conf/nginx.conf b/WebSite/conf/nginx.conf index 59cb2ea2..1fcde00c 100644 --- a/WebSite/conf/nginx.conf +++ b/WebSite/conf/nginx.conf @@ -1,4 +1,4 @@ - +#nginx.conf user nginx; worker_processes 1; @@ -32,6 +32,7 @@ http { #gzip压缩开关 #gzip on; + gzip_static on; include /etc/nginx/conf.d/*.conf; diff --git a/WebSite/docs/guards_er.png b/WebSite/docs/guards_er.png new file mode 100644 index 0000000000000000000000000000000000000000..814f67027c4f48622c593665b531e4e7b1dfeb97 GIT binary patch literal 70131 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 YLU4#PNhMt8?|_Gx(09RNer=!s0X5=hApigX literal 0 HcmV?d00001 diff --git a/WebSite/docs/logo_s.png b/WebSite/docs/logo_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ddca8a1fd985356373253f0cc7380c4638119591 GIT binary patch literal 10880 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 JB}x_{{|B7EnnnNs literal 0 HcmV?d00001 diff --git a/WebSite/docs/noctua.png b/WebSite/docs/noctua.png new file mode 100644 index 0000000000000000000000000000000000000000..9aaf7a4dfc748b2d0aabe55bd2152e11c8c4791d GIT binary patch literal 21546 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¨!;Q# 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 TAcm3s$;4!4Vg;`>a*6v7^L?sR literal 0 HcmV?d00001 diff --git a/WebSite/docs/version_alpha.png b/WebSite/docs/version_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbbfd5601be450905b5bbebd483f38fd7442fef GIT binary patch literal 2387 zcmcImX;2eq7>?*5YP~P4V%J6OVK;kZldvl>0zqIjcx4o?!X973)+8Hu7f96BqQzsT zgE~56r7GjCt<`q=quyqaYMqK!bZRdz9JOj&tG0@Gq~C@B+EIr;&CF(x@A;nhd7t<F zzTG9`a<e*je6^#&VCbBa?U(@1sqh$>5C{Jw4L1_usY4)pifS-)>Zu=X3>9nO!}wK_ zD^JUFj$sAaXXHeg2gaZ;0MU@Z9t?28OrRk=@JN0edTZYy6p=(5I@#<boPi8bC}q!9 zz{J_PE@Adefe}&r2qZPgLINMqI3(!v`c*b)L!-Pbyw)G%C=!KeGi_*^9uUcMjzcnJ z1t4al1rtcxj93{XX))0Z^EN^eWC~8C;G_v7Ei6s26otfoD2%3vZgzrWR4f*}v!R8W z7GQC_q@=`HVlv8#2PYYZ!3hedC=4PnHRRX0Am&$-n;0BG6%;9;NwOc&8981q(rhSH z+L(eb&`j%BV>Us<@E{k!Nh6`B)C6=oUk>&8n$fD3Sq!7Z^gfqZb%g=|p8!<3ND)A0 zG4N~2O~C?%vL>sA@(Z*z4?m+&6q*ADiWG0u9#O!77x*Bz3bABVUx3X}0H?`{OP0M& zg&Nls5y{BV3&S99OqTqjT%x|Ii;B$w4o(9$lp-h+BP<wYauEzmF|5fvj7VV#q7mwZ ztsrt5*E+B)O72i=piU>7<5xA#FMu3}4TYkNk|eS;#alRrv0?&ETQRqrW-#7NkeFa0 zc(cgC-X*xGE;!#I3q`sa`uxVu6=eZ(G#koVNs1QTW*#$9z=XL4n#8yip1`bT3j;_K zW1<DJiEXSR!NtRQpJvrniI6cxBngVKaF~@5M2sY99^)-09wSpYnzsO}#m(?2(h@gA z_R5M=7NNT)6cGj1Eh|0_wvgoGJOB^)J$ge!c9=!Bq{8ZjVoPKqm=(M7N=UTtSWeK} z-G&N!oq>qP9!t-0uXQ>bX-f(LBz;No8)2&K)=D@9q<Nszt?4iPMfz2)_~q(bSNs20 zeau{;kn?*0+(B_v&j;7{n#R)L|E*d})m<Q{jp0H-QDYXQbDkD6T5wTJF6V>Y!NbM% zbmK&abe`DIQ)WJQKIaV-zKEc4tXY1e7`%n%8M)C6pW0oUl7?Hhe%bu4fH%!=8{mfq zDezsg{uk%Z216X5<4AMml?lE6coHVg7*3BI{=op^M&azz@mZ%ky^@pl)v~RhANdeF zS=zJ8_)etg_Bs1*S4Ah%ms?l%#p_A+=as8{Ll$(wrNr8+>0?5De&0FO+wIRKa}Igd zJ=*in^?Vw9+s1x9T#}z;$?Sghq5R~kuVLYik1E&B${+l7IsM(ulM(jb+(p%6cTl4@ z^xIcXpBZxVM8s>qclXl$NN{=?zUd0n?^>C1c*gN?xL|!XJ7n>+bt}3r-I>}xH?zAt zK0Y4OzT3WwxIH+!%i_z9(CUi)yAu-=_itW3r|q6gMt4C$0wq?y7A`wFH?I5y$@jbh z_=1A^hP(6X?%>_h{Kcc}VD9aS`=8u=Z2f-QMK0_1`Mr1TXV*qLSQnL+4m!6csmeC% z*8Qr>cEp<`^?7tD-Bt1A-pxq=P4#ux!XC73+rwuoe@woA?C8A8dB~>YWglNW*zo9b zBx~@D9xI1el$NHoJJ##{;<)mmU6KBu4PAVat4H_#{oBdfjrIeZSHEY@yOwolTuo7S zSb8uyK7Qf!q)C&_KLoKZ^KT3?RBqIhZy!igj-9QH?2)>K&(|KGF=F~(Yce+VZbzZ1 z`Dc9(7iJCl34t=}>L8}33^?Y0u#JA)aQD!(Tao3r=wA)%y5p%wrflWoHVmlwX4KRw zBze&79&asQ)@Hn~tH1b2?^D(8>Y=!C_eS|Z`mW)p!hQ2d&-&_5hdI3&3HjNp20jke zotG0nsi$rC>$_%OQ6e=L9$f1{FP++TWbYL#xAfay`{j^>r?PqzgQtbgbdcBugZkBO kEZ@>Mv4}npUZ&B8UEw{`j$W9Qqks0~Wac_{rWefr7r?P$Bme*a literal 0 HcmV?d00001 diff --git a/WebSite/docs/version_beta.png b/WebSite/docs/version_beta.png new file mode 100644 index 0000000000000000000000000000000000000000..903369dc462f20c930c5bf2152db4ca720bee699 GIT binary patch literal 2481 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 C1c&wj literal 0 HcmV?d00001 diff --git a/WebSite/jest.config.js b/WebSite/jest.config.js deleted file mode 100644 index 143cdc86..00000000 --- a/WebSite/jest.config.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], - transform: { - '^.+\\.vue$': 'vue-jest', - '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': - 'jest-transform-stub', - '^.+\\.jsx?$': 'babel-jest' - }, - moduleNameMapper: { - '^@/(.*)$': '<rootDir>/src/$1' - }, - snapshotSerializers: ['jest-serializer-vue'], - testMatch: [ - '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' - ], - collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], - coverageDirectory: '<rootDir>/tests/unit/coverage', - // 'collectCoverage': true, - 'coverageReporters': [ - 'lcov', - 'text-summary' - ], - testURL: 'http://localhost/' -} diff --git a/WebSite/mock/account.js b/WebSite/mock/account.js index bad54c09..87cc7cc5 100644 --- a/WebSite/mock/account.js +++ b/WebSite/mock/account.js @@ -1,169 +1,280 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-11 19:09:10 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:57:07 + * @Autor: dongjunhua + * @Date: 2021-01-28 10:12:07 + * @LastEditors: dongjunhua + * @LastEditTime: 2022-04-14 10:19:41 */ -import { deepClone } from "../src/utils/index"; + +const { deepClone } = require('./utils'); const userList = [ { - id: "1", - available: "YES", - versionDate: "2020-07-01 01:34:33.767", - updator: "1", - creator: "1", - remark: "test", - name: "角色1", - code: "0001", - userType: "ADMIN", - mobilePhone: "15911111111", - email: "test@seasky.com", - enabled: "YES" + id: '1', + available: 'YES', + versionDate: '2020-07-01 01:34:33.767', + updator: '1', + creator: '1', + remark: '', + name: 'Admin', + code: 'admin', + userType: 'ADMIN', + mobilePhone: '15911111111', + email: 'test@seasky.com', + enabled: 'YES' + }, + { + id: '2', + available: 'YES', + versionDate: '2020-07-01 01:34:33.767', + updator: '1', + creator: '1', + remark: '', + name: 'Guest1', + code: '0001', + userType: 'ADMIN', + mobilePhone: '15911111111', + email: 'test@seasky.com', + enabled: 'YES' }, { - id: "2", - available: "YES", - versionDate: "2020-07-01 01:34:33.767", - updator: "1", - creator: "1", - remark: "test", - name: "角色2", - code: "0002", - userType: "ADMIN", - mobilePhone: "15911111111", - email: "test@seasky.com", - enabled: "YES" + id: '3', + available: 'YES', + versionDate: '2020-07-01 01:34:33.767', + updator: '1', + creator: '1', + remark: '', + name: 'Guest2', + code: '0002', + userType: 'ADMIN', + mobilePhone: '15911111111', + email: 'test@seasky.com', + enabled: 'YES' } ]; const menuList = [ { - id: "1", - available: "YES", - versionDate: "2020-07-10 02:31:46.962", - creator: "1", - applicationId: "1", - menuNo: "0000", - name: "演示", - icon: "list", - parentId: "0", - routingUrl: "", - isNewWindow: "NO", - isSystem: "YES", - withUserId: "NO", - enabled: "YES", - authUser: ["1", "2"], + id: '5', + available: 'YES', + menuNo: '0001', + name: '官方文档', + icon: 'fas fa-file-alt', + routingUrl: '', + isNewWindow: 'NO', + isSystem: 'YES', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], children: [ { - id: "2", - available: "YES", - versionDate: "2020-07-10 05:53:01.597", - updator: "1", - creator: "1", - applicationId: "1", - menuNo: "SBD_001", - name: "驾驶舱", - icon: "dashboard", - parentId: "1", - routingUrl: "dashboard", - redirectUrl: "", - urlParameter: "", - isNewWindow: "NO", - isSystem: "NO", - withUserId: "NO", - enabled: "YES", - authUser: ["1"], + id: '6', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_005', + name: 'Vue.js', + icon: 'fab fa-vuejs', + parentId: '1', + routingUrl: 'frame/vue', + redirectUrl: 'https://v3.cn.vuejs.org/', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], children: [] }, { - id: "3", - available: "YES", - versionDate: "2020-07-10 05:53:08.334", - updator: "1", - creator: "1", - applicationId: "1", - menuNo: "SBD_003", - name: "UI规范", - icon: "example", - parentId: "1", - routingUrl: "", - redirectUrl: "", - urlParameter: "", - isNewWindow: "NO", - isSystem: "NO", - withUserId: "NO", - enabled: "YES", - authUser: ["1"], - children: [ - { - id: "301", - menuNo: "301", - name: "概述", - icon: "", - routingUrl: "example/index", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "302", - menuNo: "302", - name: "布局", - icon: "", - routingUrl: "example/layout", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "303", - menuNo: "303", - name: "å›¾æ ‡", - icon: "", - routingUrl: "example/icon", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "304", - menuNo: "304", - name: "按钮", - icon: "", - routingUrl: "example/button", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "305", - menuNo: "305", - name: "è¡¨æ ¼", - icon: "", - routingUrl: "example/table", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "306", - menuNo: "306", - name: "表å•", - icon: "", - routingUrl: "example/form", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "307", - menuNo: "307", - name: "å¯¹è¯æ¡†", - icon: "", - routingUrl: "example/dialog", - redirectUrl: "", - authUser: ["1"] - } - ] + id: '8', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_008', + name: 'Element Plus', + icon: 'fab el-icon-platform-eleme', + parentId: '1', + routingUrl: 'frame/element-ui', + redirectUrl: 'https://element-plus.gitee.io/#/zh-CN/', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], + children: [] + }, + { + id: '7', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_008', + name: 'Font Awesome', + icon: 'fab fa-font-awesome-flag', + parentId: '1', + routingUrl: 'frame/font-awesome', + redirectUrl: 'https://fa5.dashgame.com/#/', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], + children: [] + } + ] + }, + { + id: '1', + available: 'YES', + versionDate: '2020-07-10 02:31:46.962', + creator: '1', + applicationId: '1', + menuNo: '0000', + name: 'ä½ å¥½ä¸–ç•Œ', + icon: 'fas fa-globe-asia', + parentId: '0', + routingUrl: '', + isNewWindow: 'NO', + isSystem: 'YES', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [ + { + id: '2', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: 'Hello A', + icon: 'fas fa-cube', + parentId: '1', + routingUrl: 'hello/helloa', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [] + }, + { + id: '3', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_002', + name: 'Hello B', + icon: 'fas fa-feather-alt', + parentId: '1', + routingUrl: 'hello/hellob', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], + children: [] + }, + { + id: '4', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_003', + name: 'Hello C', + icon: 'fas fa-layer-group', + parentId: '1', + routingUrl: 'hello/helloc', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], + children: [] + } + ] + }, + { + id: '11', + available: 'YES', + versionDate: '2020-07-10 02:31:46.962', + creator: '1', + applicationId: '1', + menuNo: '0000', + name: '微应用', + icon: 'fab fa-codepen', + parentId: '0', + routingUrl: '', + isNewWindow: 'NO', + isSystem: 'YES', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [ + { + id: '12', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_012', + name: '微应用demo', + icon: 'fab fa-codepen', + parentId: '1', + routingUrl: 'micro1', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], + children: [] } ] } + // { + // id: '6', + // available: 'YES', + // versionDate: '2020-07-10 05:53:01.597', + // updator: '1', + // creator: '1', + // applicationId: '1', + // menuNo: 'SBD_004', + // name: 'Hello D', + // icon: 'fas fa-fire-alt', + // parentId: '1', + // routingUrl: 'hello/hellod', + // redirectUrl: '', + // urlParameter: '', + // isNewWindow: 'NO', + // isSystem: 'NO', + // withUserId: 'NO', + // enabled: 'YES', + // authUser: ['1'], + // children: [] + // }, ]; let currentUser = {}; @@ -186,53 +297,53 @@ function getMenuListByUser() { return menus; } -export default [ +module.exports = [ // login { - url: "/account/pc/v1/login", - type: "post", - response: _ => { + url: '/account/pc/v1/login', + type: 'post', + response: () => { return { data: [ { - id: "1", - available: "YES", - versionDate: "2020-07-08 02:30:50.390", - updator: "1", - username: "admin", - enabled: "YES", - isInitial: "NO", + id: '1', + available: 'YES', + versionDate: '2020-07-08 02:30:50.390', + updator: '1', + username: 'admin', + enabled: 'YES', + isInitial: 'NO', users: userList, - token: "d79ba79c-0561-43ed-afa4-d94a9ef2b5ff" + token: 'd79ba79c-0561-43ed-afa4-d94a9ef2b5ff' } ], - code: "00000", - description: "æˆåŠŸ", - currentTime: "1594465972765", - rid: "pyAn4K2g" + code: '00000', + description: 'æˆåŠŸ', + currentTime: '1594465972765', + rid: 'pyAn4K2g' }; } }, // setCurrent { - url: "/user/pc/v1/setCurrent", - type: "post", + url: '/user/pc/v1/setCurrent', + type: 'post', response: config => { const { id } = config.body; currentUser = userList.find(u => u.id === id); return { - code: "00000", - currentTime: "1594466609898", - description: "æˆåŠŸ", - rid: "79HgNrDI" + code: '00000', + currentTime: '1594466609898', + description: 'æˆåŠŸ', + rid: '79HgNrDI' }; } }, // getCurrent { - url: "/user/pc/v1/getCurrent", - type: "post", - response: _ => { + url: '/user/pc/v1/getCurrent', + type: 'post', + response: () => { return { data: [ { @@ -241,23 +352,23 @@ export default [ functionList: [] } ], - code: "00000", - description: "æˆåŠŸ", - currentTime: "1594466793502", - rid: "YBi5A0sJ" + code: '00000', + description: 'æˆåŠŸ', + currentTime: '1594466793502', + rid: 'YBi5A0sJ' }; } }, // modifyPassword { - url: "/account/pc/v1/modifyPassword", - type: "post", - response: _ => { + url: '/account/pc/v1/modifyPassword', + type: 'post', + response: () => { return { - code: "00000", - description: "æˆåŠŸ", - currentTime: "1594466793502", - rid: "YBi5A0sJ" + code: '00000', + description: 'æˆåŠŸ', + currentTime: '1594466793502', + rid: 'YBi5A0sJ' }; } } diff --git a/WebSite/mock/application.js b/WebSite/mock/application.js deleted file mode 100644 index d632ae7c..00000000 --- a/WebSite/mock/application.js +++ /dev/null @@ -1,169 +0,0 @@ -export default [ - // application listApplication - { - url: "/application/pc/v1/listApplication", - type: "post", - response: config => { - return { - data: [ - { - id: 1268442997780377601, - available: "YES", - versionDate: "2020-06-04 07:22:33.393", - recognizeId: "20756ac0-a858-4d3f-9989-f5418dc3866a", - name: "内部应用1", - applicationType: "INNER", - enabled: "YES" - }, - { - id: 1268443025580224514, - available: "YES", - versionDate: "2020-06-04 07:22:39.890", - recognizeId: "0e010dfd-f48b-44b0-8f19-2157083d9a30", - name: "内部应用2", - applicationType: "INNER", - enabled: "YES" - } - ], - pageIndex: 1, - pageSize: 10, - pageCount: 1, - total: 2, - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591602092687, - rid: "AynrJyfn" - }; - } - }, - - { - url: "/application/pc/v1/get", - type: "post", - response: config => { - return { - data: [ - { - id: 1268442997780377601, - available: "YES", - versionDate: "2020-06-04 07:22:33.393", - recognizeId: "20756ac0-a858-4d3f-9989-f5418dc3866a", - name: "内部应用1", - applicationType: "INNER", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591602092687, - rid: "AynrJyfn" - }; - } - }, - - { - url: "/application/pc/v1/createApplication", - type: "post", - response: config => { - return { - data: [ - { - id: 1270152614558253057, - recognizeId: "470eb8c0-07b9-45d5-903c-2cb3911c2e7a", - name: "内部应用11", - applicationType: "INNER", - secret: "QzBCMjhEMTlDNjNFRTM1RUNDQ0NCNEFCMUMyMjZDNEI=", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - }, - - { - url: "/application/pc/v1/modifyApplication", - type: "post", - response: config => { - return { - data: [ - { - id: 1270152614558253057, - recognizeId: "470eb8c0-07b9-45d5-903c-2cb3911c2e7a", - name: "内部应用11", - applicationType: "INNER", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - }, - - { - url: "/application/pc/v1/removeApplication", - type: "get", - response: config => { - return { - data: [true], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - }, - - { - url: "/application/pc/v1/resetApplicationSecret", - type: "get", - response: config => { - return { - data: [ - { - id: 1267367522282737666, - available: "YES", - versionDate: "2020-06-02T18:26:32.916+0000", - updator: 1267339697195388929, - creator: 1267339697195388929, - recognizeId: "48adee8b-a3b5-11ea-be76-00163e142fbd", - name: "基础数æ®", - applicationType: "INNER", - secret: "QzBCMjhEMTlDNjNFRTM1RUNDQ0NCNEFCMUMyMjZDNEI=", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591151192578, - rid: "pasRnum3" - }; - } - }, - - { - url: "/application/pc/v1/exportApplication", - type: "get", - response: "@paragraph(2)" - }, - - { - url: "/application/pc/v1/importApplication", - type: "post", - response: config => { - return { - data: [true], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - } -]; diff --git a/WebSite/mock/article.js b/WebSite/mock/article.js deleted file mode 100644 index 4955578f..00000000 --- a/WebSite/mock/article.js +++ /dev/null @@ -1,128 +0,0 @@ -import Mock from "mockjs"; - -const List = []; -const count = 100; - -const baseContent = - '<p>I am testing data, I am testing data.</p><p><img src="https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943"></p>'; -const image_uri = - "https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3"; - -for (let i = 0; i < count; i++) { - List.push( - Mock.mock({ - id: "@increment", - timestamp: +Mock.Random.date("T"), - author: "@first", - reviewer: "@first", - title: "@title(5, 10)", - content_short: "mock data", - content: baseContent, - forecast: "@float(0, 100, 2, 2)", - importance: "@integer(1, 3)", - "type|1": ["CN", "US", "JP", "EU"], - "status|1": ["published", "draft"], - display_time: "@datetime", - comment_disabled: true, - pageviews: "@integer(300, 5000)", - image_uri, - platforms: ["a-platform"] - }) - ); -} - -export default [ - { - url: "/vue-element-admin/article/list", - type: "get", - response: config => { - const { - importance, - type, - title, - page = 1, - limit = 20, - sort - } = config.query; - - let mockList = List.filter(item => { - if (importance && item.importance !== +importance) return false; - if (type && item.type !== type) return false; - if (title && item.title.indexOf(title) < 0) return false; - return true; - }); - - if (sort === "-id") { - mockList = mockList.reverse(); - } - - const pageList = mockList.filter( - (item, index) => index < limit * page && index >= limit * (page - 1) - ); - - return { - code: 20000, - data: { - total: mockList.length, - items: pageList - } - }; - } - }, - - { - url: "/vue-element-admin/article/detail", - type: "get", - response: config => { - const { id } = config.query; - for (const article of List) { - if (article.id === +id) { - return { - code: 20000, - data: article - }; - } - } - } - }, - - { - url: "/vue-element-admin/article/pv", - type: "get", - response: _ => { - return { - code: 20000, - data: { - pvData: [ - { key: "PC", pv: 1024 }, - { key: "mobile", pv: 1024 }, - { key: "ios", pv: 1024 }, - { key: "android", pv: 1024 } - ] - } - }; - } - }, - - { - url: "/vue-element-admin/article/create", - type: "post", - response: _ => { - return { - code: 20000, - data: "success" - }; - } - }, - - { - url: "/vue-element-admin/article/update", - type: "post", - response: _ => { - return { - code: 20000, - data: "success" - }; - } - } -]; diff --git a/WebSite/mock/index.js b/WebSite/mock/index.js index 94723e60..055270b0 100644 --- a/WebSite/mock/index.js +++ b/WebSite/mock/index.js @@ -1,34 +1,21 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-11 18:39:03 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-11 19:32:46 + * @Autor: dongjunhua + * @Date: 2021-01-28 10:08:10 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-28 10:16:30 */ +const Mock = require('mockjs'); +const { param2Obj } = require('./utils'); -import Mock from "mockjs"; -import { param2Obj } from "../src/utils"; +const account = require('./account'); -import user from "./user"; -import role from "./role"; -import article from "./article"; -import search from "./remote-search"; -import application from "./application"; -import account from "./account"; - -const mocks = [ - ...user, - ...role, - ...article, - ...search, - ...application, - ...account -]; +const mocks = [...account]; // for front mock // please use it cautiously, it will redefine XMLHttpRequest, // which will cause many of your third-party libraries to be invalidated(like progress event). -export function mockXHR() { +function mockXHR() { // mock patch // https://github.com/nuysoft/Mock/issues/300 Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send; @@ -64,10 +51,13 @@ export function mockXHR() { for (const i of mocks) { Mock.mock( new RegExp(i.url), - i.type || "get", + i.type || 'get', XHR2ExpressReqWrap(i.response) ); } } -export default mocks; +module.exports = { + mocks, + mockXHR +}; diff --git a/WebSite/mock/mock-server.js b/WebSite/mock/mock-server.js index 8a458518..f08fb62e 100644 --- a/WebSite/mock/mock-server.js +++ b/WebSite/mock/mock-server.js @@ -1,14 +1,21 @@ -const chokidar = require("chokidar"); -const bodyParser = require("body-parser"); -const chalk = require("chalk"); -const path = require("path"); -const Mock = require("mockjs"); +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-28 10:07:16 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-17 14:22:24 + */ +const chokidar = require('chokidar'); +const bodyParser = require('body-parser'); +const chalk = require('chalk'); +const path = require('path'); +const Mock = require('mockjs'); -const mockDir = path.join(process.cwd(), "mock"); +const mockDir = path.join(process.cwd(), 'mock'); function registerRoutes(app) { let mockLastIndex; - const { default: mocks } = require("./index.js"); + const { mocks } = require('./index.js'); const mocksForServer = mocks.map(route => { return responseFake(route.url, route.type, route.response); }); @@ -35,9 +42,9 @@ function unregisterRoutes() { const responseFake = (url, type, respond) => { return { url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`), - type: type || "get", + type: type || 'get', response(req, res) { - console.log("request invoke:" + req.path); + console.log('request invoke:' + req.path); res.json( Mock.mock(respond instanceof Function ? respond(req, res) : respond) ); @@ -46,9 +53,6 @@ const responseFake = (url, type, respond) => { }; module.exports = app => { - // es6 polyfill - require("@babel/register"); - // parse app.body // https://expressjs.com/en/4x/api.html#req.body app.use(bodyParser.json()); @@ -68,8 +72,8 @@ module.exports = app => { ignored: /mock-server/, ignoreInitial: true }) - .on("all", (event, path) => { - if (event === "change" || event === "add") { + .on('all', (event, path) => { + if (event === 'change' || event === 'add') { try { // remove mock routes stack app._router.stack.splice(mockStartIndex, mockRoutesLength); diff --git a/WebSite/mock/remote-search.js b/WebSite/mock/remote-search.js deleted file mode 100644 index 60809cb8..00000000 --- a/WebSite/mock/remote-search.js +++ /dev/null @@ -1,51 +0,0 @@ -import Mock from 'mockjs' - -const NameList = [] -const count = 100 - -for (let i = 0; i < count; i++) { - NameList.push(Mock.mock({ - name: '@first' - })) -} -NameList.push({ name: 'mock-Pan' }) - -export default [ - // username search - { - url: '/vue-element-admin/search/user', - type: 'get', - response: config => { - const { name } = config.query - const mockNameList = NameList.filter(item => { - const lowerCaseName = item.name.toLowerCase() - return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0) - }) - return { - code: 20000, - data: { items: mockNameList } - } - } - }, - - // transaction list - { - url: '/vue-element-admin/transaction/list', - type: 'get', - response: _ => { - return { - code: 20000, - data: { - total: 20, - 'items|20': [{ - order_no: '@guid()', - timestamp: +Mock.Random.date('T'), - username: '@name()', - price: '@float(1000, 15000, 0, 2)', - 'status|1': ['success', 'pending'] - }] - } - } - } - } -] diff --git a/WebSite/mock/role/index.js b/WebSite/mock/role/index.js deleted file mode 100644 index 6f74be8b..00000000 --- a/WebSite/mock/role/index.js +++ /dev/null @@ -1,101 +0,0 @@ -import Mock from "mockjs"; -import { deepClone } from "../../src/utils/index.js"; -import { asyncRoutes, constantRoutes } from "./routes.js"; - -const routes = deepClone([...constantRoutes, ...asyncRoutes]); - -const roles = [ - { - key: "admin", - name: "admin", - description: "Super Administrator. Have access to view all pages.", - routes: routes - }, - { - key: "editor", - name: "editor", - description: "Normal Editor. Can see all pages except permission page", - routes: routes.filter(i => i.path !== "/permission") // just a mock - }, - { - key: "visitor", - name: "visitor", - description: - "Just a visitor. Can only see the home page and the document page", - routes: [ - { - path: "", - redirect: "dashboard", - children: [ - { - path: "dashboard", - name: "Dashboard", - meta: { title: "dashboard", icon: "dashboard" } - } - ] - } - ] - } -]; - -export default [ - // mock get all routes form server - { - url: "/vue-element-admin/routes", - type: "get", - response: _ => { - return { - code: 20000, - data: routes - }; - } - }, - - // mock get all roles form server - { - url: "/vue-element-admin/roles", - type: "get", - response: _ => { - return { - code: 20000, - data: roles - }; - } - }, - - // add role - { - url: "/vue-element-admin/role", - type: "post", - response: { - code: 20000, - data: { - key: Mock.mock("@integer(300, 5000)") - } - } - }, - - // update role - { - url: "/vue-element-admin/role/[A-Za-z0-9]", - type: "put", - response: { - code: 20000, - data: { - status: "success" - } - } - }, - - // delete role - { - url: "/vue-element-admin/role/[A-Za-z0-9]", - type: "delete", - response: { - code: 20000, - data: { - status: "success" - } - } - } -]; diff --git a/WebSite/mock/role/routes.js b/WebSite/mock/role/routes.js deleted file mode 100644 index 2eec336f..00000000 --- a/WebSite/mock/role/routes.js +++ /dev/null @@ -1,525 +0,0 @@ -// Just a mock data - -export const constantRoutes = [ - { - path: "/redirect", - component: "layout/Layout", - hidden: true, - children: [ - { - path: "/redirect/:path*", - component: "views/redirect/index" - } - ] - }, - { - path: "/login", - component: "views/login/index", - hidden: true - }, - { - path: "/auth-redirect", - component: "views/login/auth-redirect", - hidden: true - }, - { - path: "/404", - component: "views/error-page/404", - hidden: true - }, - { - path: "/401", - component: "views/error-page/401", - hidden: true - }, - { - path: "", - component: "layout/Layout", - redirect: "dashboard", - children: [ - { - path: "dashboard", - component: "views/dashboard/index", - name: "Dashboard", - meta: { title: "Dashboard", icon: "dashboard", affix: true } - } - ] - }, - { - path: "/documentation", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/documentation/index", - name: "Documentation", - meta: { title: "Documentation", icon: "documentation", affix: true } - } - ] - }, - { - path: "/guide", - component: "layout/Layout", - redirect: "/guide/index", - children: [ - { - path: "index", - component: "views/guide/index", - name: "Guide", - meta: { title: "Guide", icon: "guide", noCache: true } - } - ] - } -]; - -export const asyncRoutes = [ - { - path: "/permission", - component: "layout/Layout", - redirect: "/permission/index", - alwaysShow: true, - meta: { - title: "Permission", - icon: "lock", - roles: ["admin", "editor"] - }, - children: [ - { - path: "page", - component: "views/permission/page", - name: "PagePermission", - meta: { - title: "Page Permission", - roles: ["admin"] - } - }, - { - path: "directive", - component: "views/permission/directive", - name: "DirectivePermission", - meta: { - title: "Directive Permission" - } - }, - { - path: "role", - component: "views/permission/role", - name: "RolePermission", - meta: { - title: "Role Permission", - roles: ["admin"] - } - } - ] - }, - - { - path: "/icon", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/icons/index", - name: "Icons", - meta: { title: "Icons", icon: "icon", noCache: true } - } - ] - }, - - { - path: "/components", - component: "layout/Layout", - redirect: "noRedirect", - name: "ComponentDemo", - meta: { - title: "Components", - icon: "component" - }, - children: [ - { - path: "tinymce", - component: "views/components-demo/tinymce", - name: "TinymceDemo", - meta: { title: "Tinymce" } - }, - { - path: "markdown", - component: "views/components-demo/markdown", - name: "MarkdownDemo", - meta: { title: "Markdown" } - }, - { - path: "json-editor", - component: "views/components-demo/json-editor", - name: "JsonEditorDemo", - meta: { title: "Json Editor" } - }, - { - path: "split-pane", - component: "views/components-demo/split-pane", - name: "SplitpaneDemo", - meta: { title: "SplitPane" } - }, - { - path: "avatar-upload", - component: "views/components-demo/avatar-upload", - name: "AvatarUploadDemo", - meta: { title: "Avatar Upload" } - }, - { - path: "dropzone", - component: "views/components-demo/dropzone", - name: "DropzoneDemo", - meta: { title: "Dropzone" } - }, - { - path: "sticky", - component: "views/components-demo/sticky", - name: "StickyDemo", - meta: { title: "Sticky" } - }, - { - path: "count-to", - component: "views/components-demo/count-to", - name: "CountToDemo", - meta: { title: "Count To" } - }, - { - path: "mixin", - component: "views/components-demo/mixin", - name: "ComponentMixinDemo", - meta: { title: "componentMixin" } - }, - { - path: "back-to-top", - component: "views/components-demo/back-to-top", - name: "BackToTopDemo", - meta: { title: "Back To Top" } - }, - { - path: "drag-dialog", - component: "views/components-demo/drag-dialog", - name: "DragDialogDemo", - meta: { title: "Drag Dialog" } - }, - { - path: "drag-select", - component: "views/components-demo/drag-select", - name: "DragSelectDemo", - meta: { title: "Drag Select" } - }, - { - path: "dnd-list", - component: "views/components-demo/dnd-list", - name: "DndListDemo", - meta: { title: "Dnd List" } - }, - { - path: "drag-kanban", - component: "views/components-demo/drag-kanban", - name: "DragKanbanDemo", - meta: { title: "Drag Kanban" } - } - ] - }, - { - path: "/charts", - component: "layout/Layout", - redirect: "noRedirect", - name: "Charts", - meta: { - title: "Charts", - icon: "chart" - }, - children: [ - { - path: "keyboard", - component: "views/charts/keyboard", - name: "KeyboardChart", - meta: { title: "Keyboard Chart", noCache: true } - }, - { - path: "line", - component: "views/charts/line", - name: "LineChart", - meta: { title: "Line Chart", noCache: true } - }, - { - path: "mixchart", - component: "views/charts/mixChart", - name: "MixChart", - meta: { title: "Mix Chart", noCache: true } - } - ] - }, - { - path: "/nested", - component: "layout/Layout", - redirect: "/nested/menu1/menu1-1", - name: "Nested", - meta: { - title: "Nested", - icon: "nested" - }, - children: [ - { - path: "menu1", - component: "views/nested/menu1/index", - name: "Menu1", - meta: { title: "Menu1" }, - redirect: "/nested/menu1/menu1-1", - children: [ - { - path: "menu1-1", - component: "views/nested/menu1/menu1-1", - name: "Menu1-1", - meta: { title: "Menu1-1" } - }, - { - path: "menu1-2", - component: "views/nested/menu1/menu1-2", - name: "Menu1-2", - redirect: "/nested/menu1/menu1-2/menu1-2-1", - meta: { title: "Menu1-2" }, - children: [ - { - path: "menu1-2-1", - component: "views/nested/menu1/menu1-2/menu1-2-1", - name: "Menu1-2-1", - meta: { title: "Menu1-2-1" } - }, - { - path: "menu1-2-2", - component: "views/nested/menu1/menu1-2/menu1-2-2", - name: "Menu1-2-2", - meta: { title: "Menu1-2-2" } - } - ] - }, - { - path: "menu1-3", - component: "views/nested/menu1/menu1-3", - name: "Menu1-3", - meta: { title: "Menu1-3" } - } - ] - }, - { - path: "menu2", - name: "Menu2", - component: "views/nested/menu2/index", - meta: { title: "Menu2" } - } - ] - }, - - { - path: "/example", - component: "layout/Layout", - redirect: "/example/list", - name: "Example", - meta: { - title: "Example", - icon: "example" - }, - children: [ - { - path: "create", - component: "views/example/create", - name: "CreateArticle", - meta: { title: "Create Article", icon: "edit" } - }, - { - path: "edit/:id(\\d+)", - component: "views/example/edit", - name: "EditArticle", - meta: { title: "Edit Article", noCache: true }, - hidden: true - }, - { - path: "list", - component: "views/example/list", - name: "ArticleList", - meta: { title: "Article List", icon: "list" } - } - ] - }, - - { - path: "/tab", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/tab/index", - name: "Tab", - meta: { title: "Tab", icon: "tab" } - } - ] - }, - - { - path: "/error", - component: "layout/Layout", - redirect: "noRedirect", - name: "ErrorPages", - meta: { - title: "Error Pages", - icon: "404" - }, - children: [ - { - path: "401", - component: "views/error-page/401", - name: "Page401", - meta: { title: "Page 401", noCache: true } - }, - { - path: "404", - component: "views/error-page/404", - name: "Page404", - meta: { title: "Page 404", noCache: true } - } - ] - }, - - { - path: "/error-log", - component: "layout/Layout", - redirect: "noRedirect", - children: [ - { - path: "log", - component: "views/error-log/index", - name: "ErrorLog", - meta: { title: "Error Log", icon: "bug" } - } - ] - }, - - { - path: "/excel", - component: "layout/Layout", - redirect: "/excel/export-excel", - name: "Excel", - meta: { - title: "Excel", - icon: "excel" - }, - children: [ - { - path: "export-excel", - component: "views/excel/export-excel", - name: "ExportExcel", - meta: { title: "Export Excel" } - }, - { - path: "export-selected-excel", - component: "views/excel/select-excel", - name: "SelectExcel", - meta: { title: "Select Excel" } - }, - { - path: "export-merge-header", - component: "views/excel/merge-header", - name: "MergeHeader", - meta: { title: "Merge Header" } - }, - { - path: "upload-excel", - component: "views/excel/upload-excel", - name: "UploadExcel", - meta: { title: "Upload Excel" } - } - ] - }, - - { - path: "/zip", - component: "layout/Layout", - redirect: "/zip/download", - alwaysShow: true, - meta: { title: "Zip", icon: "zip" }, - children: [ - { - path: "download", - component: "views/zip/index", - name: "ExportZip", - meta: { title: "Export Zip" } - } - ] - }, - - { - path: "/pdf", - component: "layout/Layout", - redirect: "/pdf/index", - children: [ - { - path: "index", - component: "views/pdf/index", - name: "PDF", - meta: { title: "PDF", icon: "pdf" } - } - ] - }, - { - path: "/pdf/download", - component: "views/pdf/download", - hidden: true - }, - - { - path: "/theme", - component: "layout/Layout", - redirect: "noRedirect", - children: [ - { - path: "index", - component: "views/theme/index", - name: "Theme", - meta: { title: "Theme", icon: "theme" } - } - ] - }, - - { - path: "/clipboard", - component: "layout/Layout", - redirect: "noRedirect", - children: [ - { - path: "index", - component: "views/clipboard/index", - name: "ClipboardDemo", - meta: { title: "Clipboard Demo", icon: "clipboard" } - } - ] - }, - - { - path: "/i18n", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/i18n-demo/index", - name: "I18n", - meta: { title: "I18n", icon: "international" } - } - ] - }, - - { - path: "external-link", - component: "layout/Layout", - children: [ - { - path: "https://github.com/PanJiaChen/vue-element-admin", - meta: { title: "External Link", icon: "link" } - } - ] - }, - - { path: "*", redirect: "/404", hidden: true } -]; diff --git a/WebSite/mock/user.js b/WebSite/mock/user.js deleted file mode 100644 index a544b5c6..00000000 --- a/WebSite/mock/user.js +++ /dev/null @@ -1,85 +0,0 @@ -const tokens = { - admin: { - token: "admin-token" - }, - editor: { - token: "editor-token" - } -}; - -const users = { - "admin-token": { - roles: ["admin"], - introduction: "I am a super administrator", - avatar: - "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif", - name: "Super Admin" - }, - "editor-token": { - roles: ["editor"], - introduction: "I am an editor", - avatar: - "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif", - name: "Normal Editor" - } -}; - -export default [ - // user login - { - url: "/vue-element-admin/user/login", - type: "post", - response: config => { - const { username } = config.body; - const token = tokens[username]; - - // mock error - if (!token) { - return { - code: 60204, - message: "Account and password are incorrect." - }; - } - - return { - code: 20000, - data: token - }; - } - }, - - // get user info - { - url: "/vue-element-admin/user/info.*", - type: "get", - response: config => { - const { token } = config.query; - const info = users[token]; - - // mock error - if (!info) { - return { - code: 50008, - message: "Login failed, unable to get user details." - }; - } - - return { - code: 20000, - data: info - }; - } - }, - - // user logout - { - url: "/vue-element-admin/user/logout", - type: "post", - response: _ => { - return { - code: 20000, - data: "success" - }; - } - } -]; diff --git a/WebSite/mock/utils.js b/WebSite/mock/utils.js new file mode 100644 index 00000000..071d6d30 --- /dev/null +++ b/WebSite/mock/utils.js @@ -0,0 +1,55 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-28 10:09:44 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-28 10:09:51 + */ +/** + * @param {string} url + * @returns {Object} + */ +function param2Obj(url) { + const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' '); + if (!search) { + return {}; + } + const obj = {}; + const searchArr = search.split('&'); + searchArr.forEach(v => { + const index = v.indexOf('='); + if (index !== -1) { + const name = v.substring(0, index); + const val = v.substring(index + 1, v.length); + obj[name] = val; + } + }); + return obj; +} + +/** + * This is just a simple version of deep copy + * Has a lot of edge cases bug + * If you want to use a perfect deep copy, use lodash's _.cloneDeep + * @param {Object} source + * @returns {Object} + */ +function deepClone(source) { + if (!source && typeof source !== 'object') { + throw new Error('error arguments', 'deepClone'); + } + const targetObj = source.constructor === Array ? [] : {}; + Object.keys(source).forEach(keys => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = deepClone(source[keys]); + } else { + targetObj[keys] = source[keys]; + } + }); + return targetObj; +} + +module.exports = { + param2Obj, + deepClone +}; diff --git a/WebSite/package-lock.json b/WebSite/package-lock.json index a7cd0ff8..bad3594f 100644 --- a/WebSite/package-lock.json +++ b/WebSite/package-lock.json @@ -1,368 +1,455 @@ { - "name": "vue-element-admin", - "version": "4.2.1", + "name": "noctua-admin", + "version": "1.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz", - "integrity": "sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz", + "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.4" } }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.7.tgz", + "integrity": "sha1-kym0eCp9a71+71fhGt35HuPvHkE=", + "dev": true + }, "@babel/core": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.0.0.tgz?cache=0&sync_timestamp=1583373395226&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.0.0.tgz", - "integrity": "sha1-DLDA/S54oKK+yXaY9UmunOC5lRU=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.0.0", - "@babel/helpers": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "convert-source-map": "^1.1.0", - "debug": "^3.1.0", - "json5": "^0.5.0", - "lodash": "^4.17.10", - "resolve": "^1.3.2", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.10.tgz?cache=0&sync_timestamp=1607569002613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.10.tgz", + "integrity": "sha1-t5ouG59w7T2Eu/ttjE74JfYGvM0=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", "semver": "^5.4.1", "source-map": "^0.5.0" } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.8.7.tgz", - "integrity": "sha1-hws895hPUpeZgVKvYlxPPjQUAPc=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.11.tgz?cache=0&sync_timestamp=1608076804367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.11.tgz", + "integrity": "sha1-mKffe4w1jJo3qweiQFaFMBaro68=", "dev": true, "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.12.11", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha1-YLwLxlf2Ogkk/5pLSgskoTz03u4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.10.tgz?cache=0&sync_timestamp=1607583990559&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha1-VKubAA5gqTZEzhez830xOq8dEV0=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.10" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha1-yECXpCegYaxWocMOv1S3si0kFQM=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/helper-call-delegate": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.8.7.tgz", - "integrity": "sha1-KKJ5wubGIqYjPaVIEn+YB1EyTKs=", + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha1-y0cMdhmNtqJOnbyJhydWMeXSmDE=", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.7" + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.8.6.tgz", - "integrity": "sha1-JDpbRuL48PZ03BOHYx62souFHeA=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha1-PEWZj0Me3UqSFMXx060USKYTf24=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.8.6.tgz?cache=0&sync_timestamp=1582806206622&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.8.6.tgz", - "integrity": "sha1-f6BAyX+4rr4SR6XGRTMMMtCDBms=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha1-IIQXLpVEP6CgkhS6G7Mo+a6hJ48=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" } }, "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz", - "integrity": "sha1-oGVcrVRRw3YLcm66h18c2PqgLBU=", + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz", + "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha1-pyjcW06J4w/C38fQT6KKkwZT+YI=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha1-gAakZmlcSthqKl8vsVtfLDGtVjM=", "dev": true, "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.1" } }, "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz?cache=0&sync_timestamp=1578980714632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.8.3.tgz", - "integrity": "sha1-7utmWgGx8RBo6fuGrVahyxqCTMo=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.11.tgz?cache=0&sync_timestamp=1608076808489&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.11.tgz", + "integrity": "sha1-H9dziu5dz1PD7P8k8dqcUR7Ee0I=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" } }, "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz?cache=0&sync_timestamp=1578980710093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.8.3.tgz", - "integrity": "sha1-uJS5R70AQ4HOY+odufCFR+kgq9U=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584582871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.10" } }, "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha1-Hb6ba1XXjJtBg/yM3G4wzrg7cTQ=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha1-qne9A5bsgRTl4weH76eFmdh0qFU=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.7" } }, "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz", - "integrity": "sha1-f+OVibOcAWMxtrjD9EHo8LFBlJg=", + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604441102741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz", + "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.8.6.tgz", - "integrity": "sha1-ahO17srcNWkgRwc6ZOQpd7l2VKQ=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.1.tgz", + "integrity": "sha1-eVT+xx9bMsSOSzA7Q3w0RT/XJHw=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.8.6", - "lodash": "^4.17.13" + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.10.tgz?cache=0&sync_timestamp=1607576932268&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha1-lMpOMG7hGn3W6fQoI+Ksa0mIHi0=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.10" } }, "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", "dev": true }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.8.3.tgz", - "integrity": "sha1-E5dyYH1RuT8j7/5yEFsxnSpMaWU=", + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha1-jE27+RYxT2BH3AXmoiFwdCODR/0=", "dev": true, "requires": { - "lodash": "^4.17.13" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha1-JzxgDYub9QBhQsHjWIfVVcEu3YY=", + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.11.tgz?cache=0&sync_timestamp=1608076803456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.12.11.tgz", + "integrity": "sha1-6lEWWPxmx5CPkjEG3YjgjRmX1g0=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" } }, - "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.6.tgz?cache=0&sync_timestamp=1582807511441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.8.6.tgz", - "integrity": "sha1-Wtp0T9WtcyA78dZ0WaJ9y6Z+/8g=", + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.1.tgz?cache=0&sync_timestamp=1602802634851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.12.1.tgz", + "integrity": "sha1-MkJ+WqYVR9OOsebq9f0UJv2tkTY=", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/types": "^7.12.1" } }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz", - "integrity": "sha1-f4EJkotNq0ZUB2mGr1dSMd62Oa4=", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz?cache=0&sync_timestamp=1578980712591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.8.3.tgz", - "integrity": "sha1-ManzAHD5E2inGCzwX4MXgQZfx6k=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.11.tgz?cache=0&sync_timestamp=1608076804774&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.11.tgz", + "integrity": "sha1-G0zEJEWGQ8R9NwIiI9oz126kYDo=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.11" } }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.11.tgz", + "integrity": "sha1-1my4t6Pn/kxpYrMgIKEx7PCEf08=", + "dev": true + }, "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz", - "integrity": "sha1-nb2yu1XvFKqgH+jJm2Kb1TUthhA=", + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.12.3.tgz", + "integrity": "sha1-MzIzn8TR+78cJ9eVjCfTRwjpkNk=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.8.4.tgz", - "integrity": "sha1-dU6z7nJ8Fl4KJA1sIH3nxFXzb3M=", + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.5.tgz", + "integrity": "sha1-Ghukp2jZtYMQ7aUWxEmRP+ZHEW4=", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.8.3.tgz", - "integrity": "sha1-KPFz0EIj6qpZvB1Dmjg25tEmV5c=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz", + "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.7.tgz", - "integrity": "sha1-e4+s+V0l/vlTSq1RxP/s3hph4mo=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.11.tgz?cache=0&sync_timestamp=1608076801657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.11.tgz", + "integrity": "sha1-nONZW810vFxGaQXobFNbiyUBHnk=", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha1-utMpxnCzgliXIbJ1QMfSiGAcbm8=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.12.1.tgz?cache=0&sync_timestamp=1602802638761&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha1-3GwRcOJ9isqZ/2X0klvQaxyQVQ4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha1-XgZlSvXNBLYIkVqtqbKmeIAERk4=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802520476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.8.3.tgz", - "integrity": "sha1-IVaGCrZcWr8GjD9nBCGEBBBmVD4=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz", + "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.1.tgz?cache=0&sync_timestamp=1602802624550&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha1-Q+tcKjSH7NmMXI6otf22midJstw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.1.tgz?cache=0&sync_timestamp=1602802622582&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha1-i5uPN2stiPXdd05NJKXMLjZ5ttQ=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-decorators": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha1-2lIWsjipi1ih4F1oUhBLEPmnDWs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha1-1FQjtRdxTu3VYhqd/cA/qfTrJBw=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.1.tgz?cache=0&sync_timestamp=1602802623336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha1-8sSQ024bPJZZJBA0pdLNUCY6J1E=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz?cache=0&sync_timestamp=1602802623075&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha1-i/JT3oE5CZ/qGTspfSOp1AbvBWs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-61rjZhGN3KZ77Vg7U9dVTK2ZUbs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.12.1.tgz?cache=0&sync_timestamp=1602802329071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha1-3vm9A86g+bcig9rA7CLSicdpEGk=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-ne6WqxZQ7tiGRq6XNMoWesSpxck=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.1.tgz?cache=0&sync_timestamp=1602802625025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha1-zMJCGvZNOq5QtVinHO3pKaWrKUI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha1-4C8OobXcWdQB7Bb7gkZ59oPTMDw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha1-hoFPbnohN0yYDBDTi0ST5wP0o4k=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha1-tkbDrepfmIAMmrRRBaw00GzUpH8=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802514976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha1-Khg5WNQXdluerjNPR3WOXWqC4HI=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-async-generators": { @@ -374,13 +461,22 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802624701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha1-vLKXxTZueb663vUJVJzZOwTxmXg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.8.3.tgz", - "integrity": "sha1-jSwVqfGvYksAJflhaCqdU9MAG9o=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.1.tgz?cache=0&sync_timestamp=1602802624858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.12.1.tgz", + "integrity": "sha1-gai1NbKER2xBvm3gaFOogCuYxd0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-dynamic-import": { @@ -392,6 +488,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", @@ -402,12 +507,39 @@ } }, "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha1-nZ01fMgYqnrnk1kXwSV/Z2d6CSY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.8.3.tgz", - "integrity": "sha1-UhsGyDxASA8eWLT9M7kuzrHW6pQ=", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -428,458 +560,502 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-transform-arrow-functions": { + "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha1-gndsLtDNnhpJlW2uuJYCTJRzuLY=", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.1.tgz?cache=0&sync_timestamp=1602802626493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha1-3WwLNXrBuxQtmFN0UKMZYl0T0qA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha1-gIP/yGrI53f74ktZZ8SyUh88srM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha1-Qwj60NlAnXHq+5sabuNfnWS2QIY=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha1-OEmknMKiLpdDy9a1KSbTAzcimvE=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha1-Q37sW3mbWFIHIISzrl72boNJ6KM=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha1-8qGjZb3itxEuCm3tkGf918B5Bdk=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha1-l9Ndq2aFekN8FmNYuR0JBQyGjzo=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.11.tgz?cache=0&sync_timestamp=1608074943321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.11.tgz", + "integrity": "sha1-g66SoQTbuTp9bG3RhE81EIPEa08=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.8.6.tgz?cache=0&sync_timestamp=1582806192447&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.8.6.tgz", - "integrity": "sha1-d1NER6R3y+WZWuSu4+OfvICQxG0=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.12.1.tgz?cache=0&sync_timestamp=1602802519287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.12.1.tgz", + "integrity": "sha1-ZeZQ/K3dPYjdzmfA+DSj1DajLbY=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha1-ltDSi3985OtbEguy4OlDNDyG+Bs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802627593&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha1-1oz2ybf4OKikFEutvpdUHqCQSFI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha1-IN372eRnaQaxBW7mCviFkMx6qgs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha1-uaVw/g0KjUYBFkE8tPl+jgiy+Ec=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha1-w8bsXuYSXGmTxcvKINyGIanqem4=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802515252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha1-odFsFIYoF7ZAnApnjW+Tc8qc2XU=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha1-jRLfMJqlN/JyiZxWXqF2jihuIfE=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha1-dFZhuropWsBuaGgieXpp+6osoig=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha1-WBptf1aXDga/UVYM1k9elHtw17c=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha1-sPLtNWuhvhQo7K8Sj/iiTwKDCuA=", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.8.6.tgz?cache=0&sync_timestamp=1582807505906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.8.6.tgz", - "integrity": "sha1-oFG9G0AsYa+Xon/1G0aDIcfCoIU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha1-B2QPKIZ+0W+VEcmciIKR9WCSHPo=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha1-J5NzyycyKqrWfCaD53bfxHGW7Ys=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha1-LsdiWMcP4IxtfaFUADpIBiDrpmc=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha1-rvI5gj2RmU7Hto5VGTUl1229XcE=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha1-1zuAOiazcBfd+dO7j03Fi/uAb1c=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.1.tgz?cache=0&sync_timestamp=1602802629539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha1-SWA4YC2vFRSmTUPY4Xy7J1Xgw60=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha1-ZWBtRGFrUCJedvVXjzPFaKC4dqU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha1-MVQwCwJhhWZu67DA7X+EFf789vk=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha1-3yUXBuwzG9BYo0vdcmE5FfgpKKU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.12.1.tgz?cache=0&sync_timestamp=1602802521057&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha1-+kAxJFQmNseGz5tGCg/7tIqG5kg=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha1-2LvyIsHb42YfRA8vAMFum7fQ1CA=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.1.tgz?cache=0&sync_timestamp=1602802350800&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha1-Zj/qYg1ZPJPyFKRkzTmb9txoMIY=", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha1-WS1XjOBsUvW5iwL5E9ZT/+lyZho=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha1-61ohjWscaPPWIXuPosyC/sZUeQI=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha1-oqcr/6ICrA4tBQav0JOcXsvEjGw=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha1-tAf1yWvg2fX4hGdJf6grMKw+h1M=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.12.1" } }, "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha1-YMwq5m2FyVq1QOs0urtkNNTHDEM=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.1.tgz?cache=0&sync_timestamp=1602802505443&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.1.tgz", + "integrity": "sha1-gAc/Au4bstNlw0FkkOCFyVdZ3sA=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha1-67ah56hv+paFi9asAQLWWUQmFyU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.1.tgz?cache=0&sync_timestamp=1602802640327&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.1.tgz", + "integrity": "sha1-TqCGlrjS5lhB0MdwZIKwSL7RBm4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.8.7.tgz", - "integrity": "sha1-ZvovHeQSm04ER1CSI6xxvaSVU5U=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha1-0uljsDh3FlDJIu/1k3mclthTJV0=", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.8.7", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha1-QbyBIA1zCrtEVquLP71VN7Wa3s0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha1-Xkag3KK+4a2ChesFJ+arycN2cvg=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha1-Xwoo2EL2RiKB8GqWToi6jXq0l1M=", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha1-b9/IzH7cxCs2p8EhiMZ4fIc63Ng=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-transform-runtime": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.8.3.tgz", - "integrity": "sha1-wBU7wKU3XrwfFZHLfuoiOt6p8Wk=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.10.tgz?cache=0&sync_timestamp=1607569369088&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.12.10.tgz", + "integrity": "sha1-rw/e1OhGxLNweOjl0G3qxs2EhWI=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "resolve": "^1.8.1", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", "semver": "^5.5.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha1-KFRSFuAjqDLU06EYXtSSvP6sCMg=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha1-C/nKxVUPzgz98ENCD2YdZF/cdeM=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha1-nI/+gXD9+4ixFOy5ILgvtulf5eg=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.12.1.tgz?cache=0&sync_timestamp=1602802639374&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.12.1.tgz", + "integrity": "sha1-Un+fMRvk7H/cK3m7ife/iEs+Hh4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha1-vnoSkPgdrnZ0dUUhmeH3bWF1sQA=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha1-VgIkYTqyOYdFOUjtIdCwsZP6f60=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha1-e/pHMrRV6mpDEwrcC6dn7A5AKoA=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha1-tD7ObtmnnAxxEZ9XbSme8J2UKEM=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha1-7eQGIxXOCq+KZXqSCFjxovNfxBI=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.10.tgz?cache=0&sync_timestamp=1607569558495&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha1-3gHEyPllgL0A8YMHKw0Ozc8N7Es=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha1-DO8247pz5cVyc+/7GC9GuRoeyq0=", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha1-UjK5+BzLBwcLfDw2xnobePGEVwk=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/preset-env": { - "version": "7.3.4", - "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.3.4.tgz?cache=0&sync_timestamp=1583373395373&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.3.4.tgz", - "integrity": "sha1-iHzzi20jyC8ZtRNSmL2xYAYuM+E=", + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802516121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha1-zJZh9hOQ21xl4/66zO/Vxqw/rss=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.3.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.3.4", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.3.4", - "@babel/plugin-transform-classes": "^7.3.4", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.2.0", - "@babel/plugin-transform-dotall-regex": "^7.2.0", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.2.0", - "@babel/plugin-transform-function-name": "^7.2.0", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/plugin-transform-modules-systemjs": "^7.3.4", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", - "@babel/plugin-transform-new-target": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.2.0", - "@babel/plugin-transform-parameters": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.3.4", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.2.0", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.2.0", - "browserslist": "^4.3.4", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.3.0" - } - }, - "@babel/register": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/@babel/register/download/@babel/register-7.0.0.tgz", - "integrity": "sha1-+mNLrhv6Qp9gYVt1T8Hx10Xt2Cc=", - "dev": true, - "requires": { - "core-js": "^2.5.7", - "find-cache-dir": "^1.0.0", - "home-or-tmp": "^3.0.0", - "lodash": "^4.17.10", - "mkdirp": "^0.5.1", - "pirates": "^4.0.0", - "source-map-support": "^0.5.9" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/runtime": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.8.7.tgz?cache=0&sync_timestamp=1583373757080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.8.7.tgz", - "integrity": "sha1-j+/OmALbVIgbpZ+Quyhxm0mWMk0=", + "@babel/preset-env": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.11.tgz?cache=0&sync_timestamp=1608076805354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.11.tgz", + "integrity": "sha1-VdX3mBSHNlyT27yEUHscchXoV/k=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.11", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.11", + "core-js-compat": "^3.8.0", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz", + "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", "dev": true, "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.4.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.4.tgz", - "integrity": "sha1-6Wv2EqM2LRK7affo90/+qyXHrJE=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, - "@babel/runtime-corejs2": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.8.7.tgz?cache=0&sync_timestamp=1583373407579&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs2%2Fdownload%2F%40babel%2Fruntime-corejs2-7.8.7.tgz", - "integrity": "sha1-XGr8sz7xL6H422uRX/a17K9q+xE=", - "dev": true, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.5.tgz?cache=0&sync_timestamp=1604443606981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.5.tgz", + "integrity": "sha1-QQ5+SHRB4bNgwpvnFdhw2bmFiC4=", "requires": { - "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.4.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.4.tgz", - "integrity": "sha1-6Wv2EqM2LRK7affo90/+qyXHrJE=", - "dev": true - } } }, "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz", - "integrity": "sha1-hrIq8V+CjfsIZHT5ZNzD45xDzis=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.8.6.tgz", - "integrity": "sha1-rP4MZOHNmRs+MuroE6brVklUtf8=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.10.tgz?cache=0&sync_timestamp=1607569332108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.10.tgz", + "integrity": "sha1-LR9AQei/QuoJnlstxI1qWUwAAXo=", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.8.7.tgz?cache=0&sync_timestamp=1583373407005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.8.7.tgz", - "integrity": "sha1-H8lynhrLsjN9W2l3pjl5tIGfXR0=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.11.tgz", + "integrity": "sha1-qG5NceMKm27hAlkERsmGYliSg84=", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, + "@element-plus/icons": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@element-plus/icons/-/icons-0.0.11.tgz", + "integrity": "sha512-iKQXSxXu131Ai+I9Ymtcof9WId7kaXvB1+WRfAfpQCW7UiAMYgdNDqb/u0hgTo2Yq3MwC4MWJnNuTBEpG8r7+A==" + }, + "@fortawesome/fontawesome-free": { + "version": "5.15.3", + "resolved": "https://registry.nlark.com/@fortawesome/fontawesome-free/download/@fortawesome/fontawesome-free-5.15.3.tgz?cache=0&sync_timestamp=1628106915241&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40fortawesome%2Ffontawesome-free%2Fdownload%2F%40fortawesome%2Ffontawesome-free-5.15.3.tgz", + "integrity": "sha1-w2/6ZKKiOb+UhUGpe2ro1yngmpo=", + "dev": true + }, + "@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==", + "dev": true + }, "@hapi/address": { "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz", "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", "dev": true }, @@ -891,13 +1067,13 @@ }, "@hapi/hoek": { "version": "8.5.1", - "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz", + "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1599008863490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", "dev": true }, "@hapi/joi": { "version": "15.1.1", - "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1603524515155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz", "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", "dev": true, "requires": { @@ -925,6 +1101,34 @@ "cssnano": "^4.0.0", "cssnano-preset-default": "^4.0.0", "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@mrmlnc/readdir-enhanced": { @@ -943,249 +1147,552 @@ "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", "dev": true }, - "@samverschueren/stream-to-observable": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/@samverschueren/stream-to-observable/download/@samverschueren/stream-to-observable-0.3.0.tgz", - "integrity": "sha1-7N9I1TLFjqR3rPyrgDSEJPjQZi8=", - "dev": true, - "requires": { - "any-observable": "^0.3.0" - } - }, - "@soda/friendly-errors-webpack-plugin": { - "version": "1.7.1", - "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", - "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", + "@npmcli/fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", "dev": true, "requires": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "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" + "lru-cache": "^6.0.0" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "glob": "^7.1.3" } + } + } + }, + "@popperjs/core": { + "version": "2.9.2", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/@popperjs/core/-/core-2.9.2.tgz", + "integrity": "sha1-rep7aVPLs0ZRdmsFSEaOdDxqI1M=" + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.8.0.tgz?cache=0&sync_timestamp=1607927399532&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40soda%2Ffriendly-errors-webpack-plugin%2Fdownload%2F%40soda%2Ffriendly-errors-webpack-plugin-1.8.0.tgz", + "integrity": "sha1-hHUdgqkwGdXJLAzw5FrFkIfNIkA=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "error-stack-parser": "^2.0.2", + "string-width": "^2.0.0", + "strip-ansi": "^5" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, - "supports-color": { + "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + } + } } } }, - "@types/codemirror": { - "version": "0.0.71", - "resolved": "https://registry.npm.taobao.org/@types/codemirror/download/@types/codemirror-0.0.71.tgz", - "integrity": "sha1-hh8byzEAwKBkVnxUAPKYHPSujKc=", + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz", + "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=", + "dev": true + }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz?cache=0&sync_timestamp=1605052639708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz", + "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz", + "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=", + "dev": true, "requires": { - "@types/tern": "*" + "@types/connect": "*", + "@types/node": "*" } }, - "@types/estree": { - "version": "0.0.42", - "resolved": "https://registry.npm.taobao.org/@types/estree/download/@types/estree-0.0.42.tgz", - "integrity": "sha1-jQwfSAM57+2z5GBw4i3WPgQw3RE=" + "@types/connect": { + "version": "3.4.34", + "resolved": "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.34.tgz?cache=0&sync_timestamp=1607458904874&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.34.tgz", + "integrity": "sha1-FwpAIjptZmAG2TyhKK8r6x2bGQE=", + "dev": true, + "requires": { + "@types/node": "*" + } }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz?cache=0&sync_timestamp=1580841990603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fevents%2Fdownload%2F%40types%2Fevents-3.0.0.tgz", - "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=", + "@types/connect-history-api-fallback": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.3.tgz", + "integrity": "sha1-R3K3m4tTGF8PTJ3qsJI2uvdu47Q=", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/estree": { + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz", + "integrity": "sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==", "dev": true }, + "@types/express": { + "version": "4.17.9", + "resolved": "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.9.tgz?cache=0&sync_timestamp=1605057477768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.9.tgz", + "integrity": "sha1-9fLfat1wP/KEKK3VK97IoQkbCng=", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.17", + "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.17.tgz?cache=0&sync_timestamp=1608052291315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.17.tgz", + "integrity": "sha1-a6AkZRZbbJw9jbOije9rFvybcPU=", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz", - "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=", + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&sync_timestamp=1605053345113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", "dev": true, "requires": { - "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, - "@types/jquery": { - "version": "3.3.33", - "resolved": "https://registry.npm.taobao.org/@types/jquery/download/@types/jquery-3.3.33.tgz", - "integrity": "sha1-YdnL1ABP/N9s9+NHIKh6ViWn2Ok=", + "@types/http-proxy": { + "version": "1.17.4", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.4.tgz?cache=0&sync_timestamp=1605053586725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.4.tgz", + "integrity": "sha1-58kuPb4+E6p5lED/QubToXqdBFs=", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/http-proxy-middleware": { + "version": "0.19.3", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy-middleware/download/@types/http-proxy-middleware-0.19.3.tgz?cache=0&sync_timestamp=1605053586886&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy-middleware%2Fdownload%2F%40types%2Fhttp-proxy-middleware-0.19.3.tgz", + "integrity": "sha1-suuW+8D5rHJQtdnExTqt4ElJfQM=", + "dev": true, "requires": { - "@types/sizzle": "*" + "@types/connect": "*", + "@types/http-proxy": "*", + "@types/node": "*" } }, "@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&sync_timestamp=1591720889158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz", - "integrity": "sha1-3M5EMOZLRDuolF8CkPtWStW6xt0=" - }, - "@types/linkify-it": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/@types/linkify-it/download/@types/linkify-it-2.1.0.tgz", - "integrity": "sha1-6j3WTEgFWXMReQth6HLL0e0s2AY=" + "version": "7.0.6", + "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1605053861867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz", + "integrity": "sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA=", + "dev": true }, - "@types/markdown-it": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/@types/markdown-it/download/@types/markdown-it-0.0.7.tgz", - "integrity": "sha1-dQcEhaPYrRHn3rgof0QwvhW/TTk=", - "requires": { - "@types/linkify-it": "*" - } + "@types/mime": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/@types/mime/download/@types/mime-2.0.3.tgz", + "integrity": "sha1-yJO3NyHbc2mZQ7/DZTsd63+qSjo=", + "dev": true }, "@types/minimatch": { "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz", "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", "dev": true }, + "@types/minimist": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.1.tgz?cache=0&sync_timestamp=1604943486106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimist%2Fdownload%2F%40types%2Fminimist-1.2.1.tgz", + "integrity": "sha1-KD9mn/dte4Jg34q3pCYsyD2YglY=", + "dev": true + }, "@types/node": { - "version": "13.9.0", - "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-13.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.9.0.tgz", - "integrity": "sha1-W27np3+qzd195xkBfQvBL1L4FYk=", + "version": "14.14.14", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.14.tgz?cache=0&sync_timestamp=1608047832709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.14.tgz", + "integrity": "sha1-9/1fPMhSEwERn2ORDw+5ZcfXYa4=", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1605054783883&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", "dev": true }, "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz?cache=0&sync_timestamp=1580864548163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.2.tgz", - "integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=", + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz?cache=0&sync_timestamp=1605055096527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz", + "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", "dev": true }, - "@types/sizzle": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/@types/sizzle/download/@types/sizzle-2.3.2.tgz", - "integrity": "sha1-qBG4wY4rq6t9VCszZYh64uTZ3kc=" + "@types/qs": { + "version": "6.9.5", + "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz?cache=0&sync_timestamp=1605055106687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fqs%2Fdownload%2F%40types%2Fqs-6.9.5.tgz", + "integrity": "sha1-Q0cRvdSete5p2QwdZ8NUqajssYs=", + "dev": true }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/@types/strip-bom/download/@types/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz", + "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=", + "dev": true + }, + "@types/serve-static": { + "version": "1.13.8", + "resolved": "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.8.tgz?cache=0&sync_timestamp=1605657862811&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.8.tgz", + "integrity": "sha1-hREp1DRDPHCCFIV0/+wmPVgwnEY=", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", + "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", "dev": true }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npm.taobao.org/@types/strip-json-comments/download/@types/strip-json-comments-0.0.30.tgz", - "integrity": "sha1-mqMMBNshKpoGSdaub9UKzMQHSKE=", + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz?cache=0&sync_timestamp=1605057449125&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz", + "integrity": "sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ=", "dev": true }, - "@types/tern": { - "version": "0.23.3", - "resolved": "https://registry.npm.taobao.org/@types/tern/download/@types/tern-0.23.3.tgz", - "integrity": "sha1-S1RTjwSojJ/3neH2+U9XWn8zlGA=", + "@types/uglify-js": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.11.1.tgz?cache=0&sync_timestamp=1605057452755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.11.1.tgz", + "integrity": "sha1-l/8w5hoKpodsJwtfU4c34tarjOs=", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "@types/webpack": { + "version": "4.41.25", + "resolved": "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.25.tgz", + "integrity": "sha1-TTta7MTkQRezdigPv9LcNml5aMQ=", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "@types/webpack-dev-server": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.1.tgz", + "integrity": "sha1-+PTawdoibVML0VodXcNLI7p2bMs=", + "dev": true, + "requires": { + "@types/connect-history-api-fallback": "*", + "@types/express": "*", + "@types/http-proxy-middleware": "*", + "@types/serve-static": "*", + "@types/webpack": "*" + } + }, + "@types/webpack-sources": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.1.0.tgz", + "integrity": "sha1-iIKwvWLR4M5i8YPQ0Bty5ugujBA=", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, + "@vant/icons": { + "version": "1.6.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/@vant/icons/-/icons-1.6.0.tgz", + "integrity": "sha1-Pbfrf5Y/UaKghnZyDVr5xMNRL+s=" + }, + "@vant/lazyload": { + "version": "1.2.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/@vant/lazyload/-/lazyload-1.2.0.tgz", + "integrity": "sha1-Yul3m9eEStj3HCyiv4UuYUfHqG0=" + }, + "@vant/popperjs": { + "version": "1.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/@vant/popperjs/-/popperjs-1.1.0.tgz", + "integrity": "sha1-tO3uW7+m+xhwWYbjE9T9XxeUKg8=", "requires": { - "@types/estree": "*" + "@popperjs/core": "^2.9.2" } }, + "@vant/use": { + "version": "1.2.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/@vant/use/-/use-1.2.0.tgz", + "integrity": "sha1-x2LIWqW+2o6EftVTeTrK17/eLQc=" + }, "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz", - "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=", + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz?cache=0&sync_timestamp=1602851174430&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE=", "dev": true }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.0-rc.2.tgz", + "integrity": "sha1-ckY0H2ZufG5lsT2kIOLOhXFPu8o=", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.0.0-rc.5", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.0-rc.5.tgz?cache=0&sync_timestamp=1607773057378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-jsx-1.0.0-rc.5.tgz", + "integrity": "sha1-5EC+LQd17jgoy6LDigOxmpIXSGU=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.0-rc.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.1.2.tgz", - "integrity": "sha1-wKPm78Ai515CR7RIqPxrhvA+kcA=", + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851113524&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "html-tags": "^2.0.0", "lodash.kebabcase": "^4.1.1", "svg-tags": "^1.0.0" + }, + "dependencies": { + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + } } }, "@vue/babel-preset-app": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-3.12.1.tgz", - "integrity": "sha1-JMR3BS8HjzD9t3NRA7FN0fosv+E=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.9.tgz?cache=0&sync_timestamp=1607995430964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-app%2Fdownload%2F%40vue%2Fbabel-preset-app-4.5.9.tgz", + "integrity": "sha1-pO8YMKITAeT3fXzUoEVV2KAerzM=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-decorators": "^7.1.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.4.0", - "@babel/preset-env": "^7.0.0 < 7.4.0", - "@babel/runtime": "^7.0.0", - "@babel/runtime-corejs2": "^7.2.0", - "@vue/babel-preset-jsx": "^1.0.0", - "babel-plugin-dynamic-import-node": "^2.2.0", - "babel-plugin-module-resolver": "3.2.0", - "core-js": "^2.6.5" + "@babel/core": "^7.11.0", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.11.0", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.0", + "@vue/babel-plugin-jsx": "^1.0.0-0", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.6.5", + "core-js-compat": "^3.6.5", + "semver": "^6.1.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, "@vue/babel-preset-jsx": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.2.tgz", - "integrity": "sha1-LhaetMIE6jfKZsLqhaiAv8mdTyA=", + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz?cache=0&sync_timestamp=1603806927648&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.2.4.tgz", + "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz?cache=0&sync_timestamp=1602851113182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=", "dev": true, "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", - "@vue/babel-sugar-functional-vue": "^1.1.2", - "@vue/babel-sugar-inject-h": "^1.1.2", - "@vue/babel-sugar-v-model": "^1.1.2", - "@vue/babel-sugar-v-on": "^1.1.2" + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz?cache=0&sync_timestamp=1603806850559&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-render-instance%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-functional-vue": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.1.2.tgz", - "integrity": "sha1-9+JPugnm8e5wEEVgqICAV1VfGpo=", + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929973472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-inject-h": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.1.2.tgz", - "integrity": "sha1-ilJ2ttji7Rb/yAeKrZQjYnTm7fA=", + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929885089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-v-model": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.1.2.tgz", - "integrity": "sha1-H/b9G4ACI/ycsehNzrXlLXN6gZI=", + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz", + "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "camelcase": "^5.0.0", "html-tags": "^2.0.0", "svg-tags": "^1.0.0" @@ -1196,17 +1703,23 @@ "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true } } }, "@vue/babel-sugar-v-on": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.1.2.tgz", - "integrity": "sha1-su+ZuPL6sJ++rSWq1w70Lhz1sTs=", + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz", + "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "camelcase": "^5.0.0" }, "dependencies": { @@ -1219,364 +1732,503 @@ } }, "@vue/cli-overlay": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-3.12.1.tgz", - "integrity": "sha1-vf3o9xI1YasG5OTGC4VMxQkvWrE=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.5.9.tgz?cache=0&sync_timestamp=1607995708025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.5.9.tgz", + "integrity": "sha1-OTQYttXq+GOPWZyTnLQlg4JX03w=", "dev": true }, "@vue/cli-plugin-babel": { - "version": "3.5.3", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-3.5.3.tgz", - "integrity": "sha1-bo3o9gkEvMGITb4Q7g1hfd2TrwQ=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.9.tgz?cache=0&sync_timestamp=1607993492631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.9.tgz", + "integrity": "sha1-oJmHVL3QjthAKnvvSU7LFs7hfpI=", "dev": true, "requires": { - "@babel/core": "^7.0.0", - "@vue/babel-preset-app": "^3.5.3", - "@vue/cli-shared-utils": "^3.5.1", - "babel-loader": "^8.0.5", - "webpack": ">=4 < 4.29" + "@babel/core": "^7.11.0", + "@vue/babel-preset-app": "^4.5.9", + "@vue/cli-shared-utils": "^4.5.9", + "babel-loader": "^8.1.0", + "cache-loader": "^4.1.0", + "thread-loader": "^2.1.3", + "webpack": "^4.0.0" } }, "@vue/cli-plugin-eslint": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-3.12.1.tgz", - "integrity": "sha1-MCxGOGfzjnkLuZbq/fcVnHgtyM8=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.5.9.tgz?cache=0&sync_timestamp=1607995816126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-eslint%2Fdownload%2F%40vue%2Fcli-plugin-eslint-4.5.9.tgz", + "integrity": "sha1-fX+KSLjnPmsZ/i9Us5x4hQqasz0=", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.12.1", - "babel-eslint": "^10.0.1", - "eslint": "^4.19.1", - "eslint-loader": "^2.1.2", - "eslint-plugin-vue": "^4.7.1", + "@vue/cli-shared-utils": "^4.5.9", + "eslint-loader": "^2.2.1", "globby": "^9.2.0", + "inquirer": "^7.1.0", "webpack": "^4.0.0", "yorkie": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz?cache=0&sync_timestamp=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-4.19.1.tgz", - "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - } - }, - "eslint-plugin-vue": { - "version": "4.7.1", - "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-4.7.1.tgz?cache=0&sync_timestamp=1583662392429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-4.7.1.tgz", - "integrity": "sha1-yCm5/GJYLBiXtaC5Sv1E7MpRHmM=", - "dev": true, - "optional": true, - "requires": { - "vue-eslint-parser": "^2.0.3" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.3.tgz", - "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", - "dev": true, - "optional": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true, - "optional": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, - "@vue/cli-plugin-unit-jest": { - "version": "3.5.3", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-unit-jest/download/@vue/cli-plugin-unit-jest-3.5.3.tgz", - "integrity": "sha1-0R8Iedc/brcS30UHLZRw2Kh9CeU=", + "@vue/cli-plugin-router": { + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.9.tgz?cache=0&sync_timestamp=1607994046816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-router%2Fdownload%2F%40vue%2Fcli-plugin-router-4.5.9.tgz", + "integrity": "sha1-s9I6gIPSaoG9Cb+cjQEKPk5LE9A=", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.5.1", - "babel-jest": "^23.6.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", - "jest": "^23.6.0", - "jest-serializer-vue": "^2.0.2", - "jest-transform-stub": "^2.0.0", - "vue-jest": "^3.0.3" + "@vue/cli-shared-utils": "^4.5.9" } }, + "@vue/cli-plugin-vuex": { + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.9.tgz", + "integrity": "sha1-WujxUAx+KUBrAvrILM6uq4bB6Do=", + "dev": true + }, "@vue/cli-service": { - "version": "3.5.3", - "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-3.5.3.tgz", - "integrity": "sha1-B5sJBlrWWXIRkGxlwStYYgkmN/I=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.9.tgz?cache=0&sync_timestamp=1607994273937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.9.tgz", + "integrity": "sha1-PKMRKkQYPKrOQR1R0LamFuLhl7E=", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", "@soda/friendly-errors-webpack-plugin": "^1.7.1", - "@vue/cli-overlay": "^3.5.1", - "@vue/cli-shared-utils": "^3.5.1", - "@vue/component-compiler-utils": "^2.6.0", + "@soda/get-current-script": "^1.0.0", + "@types/minimist": "^1.2.0", + "@types/webpack": "^4.0.0", + "@types/webpack-dev-server": "^3.11.0", + "@vue/cli-overlay": "^4.5.9", + "@vue/cli-plugin-router": "^4.5.9", + "@vue/cli-plugin-vuex": "^4.5.9", + "@vue/cli-shared-utils": "^4.5.9", + "@vue/component-compiler-utils": "^3.1.2", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", - "acorn": "^6.1.0", - "acorn-walk": "^6.1.1", - "address": "^1.0.3", - "autoprefixer": "^9.4.8", - "cache-loader": "^2.0.1", - "case-sensitive-paths-webpack-plugin": "^2.2.0", - "chalk": "^2.4.2", - "clipboardy": "^1.2.3", - "cliui": "^4.1.0", - "copy-webpack-plugin": "^4.6.0", + "acorn": "^7.4.0", + "acorn-walk": "^7.1.1", + "address": "^1.1.2", + "autoprefixer": "^9.8.6", + "browserslist": "^4.12.0", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.3.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.5.3", "cssnano": "^4.1.10", "debug": "^4.1.1", - "dotenv": "^6.2.0", - "dotenv-expand": "^4.2.0", - "escape-string-regexp": "^1.0.5", - "file-loader": "^3.0.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", "fs-extra": "^7.0.1", - "globby": "^9.0.0", - "hash-sum": "^1.0.2", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", "html-webpack-plugin": "^3.2.0", "launch-editor-middleware": "^2.2.1", - "lodash.defaultsdeep": "^4.6.0", + "lodash.defaultsdeep": "^4.6.1", "lodash.mapvalues": "^4.6.0", "lodash.transform": "^4.6.0", - "mini-css-extract-plugin": "^0.5.0", - "minimist": "^1.2.0", - "ora": "^3.1.0", - "portfinder": "^1.0.20", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.5", + "pnp-webpack-plugin": "^1.6.4", + "portfinder": "^1.0.26", "postcss-loader": "^3.0.0", - "read-pkg": "^4.0.1", - "semver": "^5.6.0", - "slash": "^2.0.0", - "source-map-url": "^0.4.0", - "ssri": "^6.0.1", - "string.prototype.padend": "^3.0.0", - "terser-webpack-plugin": "^1.2.2", - "thread-loader": "^2.1.2", - "url-loader": "^1.1.2", - "vue-loader": "^15.6.4", - "webpack": ">=4 < 4.29", - "webpack-bundle-analyzer": "^3.0.4", - "webpack-chain": "^4.11.0", - "webpack-dev-server": "^3.2.0", - "webpack-merge": "^4.2.1", - "yorkie": "^2.0.0" + "ssri": "^7.1.0", + "terser-webpack-plugin": "^2.3.6", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.9.2", + "vue-loader-v16": "npm:vue-loader@^16.0.0-beta.7", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.8.0", + "webpack-chain": "^6.4.0", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2" }, "dependencies": { "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, "requires": { - "ms": "^2.1.1" + "color-convert": "^2.0.1" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428108619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "parse-json": { + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1613744691795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" } }, - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "terser-webpack-plugin": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881839307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz", + "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159858516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", "dev": true, + "optional": true, "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "optional": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "optional": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } } } } }, "@vue/cli-shared-utils": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-3.12.1.tgz", - "integrity": "sha1-vPB2KH3a3uu7l8anSN/p/1DsjfA=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.9.tgz?cache=0&sync_timestamp=1607992019644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.9.tgz", + "integrity": "sha1-SHzqS0KC9N/5B+59iruo3Q3QPM0=", "dev": true, "requires": { "@hapi/joi": "^15.0.1", - "chalk": "^2.4.1", + "chalk": "^2.4.2", "execa": "^1.0.0", "launch-editor": "^2.2.1", "lru-cache": "^5.1.1", "node-ipc": "^9.1.1", "open": "^6.3.0", "ora": "^3.4.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.7", - "semver": "^6.0.0", - "string.prototype.padstart": "^3.0.0" + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "@vue/compiler-core": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.8.tgz", + "integrity": "sha512-Sx8qJ030+QM/NakUrkQuUGCeDEb+0d0AgFOl5W4qRvR6e+YgLnW2ew0jREf4T1hak9Fdk8Edl67StECHrhEuew==", + "dev": true, + "requires": { + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "@vue/shared": "3.2.8", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "@babel/parser": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.4.tgz", + "integrity": "sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w==", + "dev": true + }, + "@babel/types": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz", + "integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@vue/compiler-dom": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.8.tgz", + "integrity": "sha512-nxBW6k8FMWQ74294CRbqR+iEJRO5vIjx85I3YCOyZFD6FsDHyFL60g76TcJzucp+F2XXIDaYz+A+F4gQlDatjw==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.2.8", + "@vue/shared": "3.2.8" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.8.tgz", + "integrity": "sha512-XClueQAXoWtN2EToKgfYH9FCL70Ac4bxx6OZFZzxYSg1bei8IB9srJP1UOfnJb2IpnM1heikAz1dp1HI1wHcyQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "@types/estree": "^0.0.48", + "@vue/compiler-core": "3.2.8", + "@vue/compiler-dom": "3.2.8", + "@vue/compiler-ssr": "3.2.8", + "@vue/ref-transform": "3.2.8", + "@vue/shared": "3.2.8", + "consolidate": "^0.16.0", + "estree-walker": "^2.0.2", + "hash-sum": "^2.0.0", + "lru-cache": "^5.1.1", + "magic-string": "^0.25.7", + "merge-source-map": "^1.1.0", + "postcss": "^8.1.10", + "postcss-modules": "^4.0.0", + "postcss-selector-parser": "^6.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/parser": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.4.tgz", + "integrity": "sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w==", + "dev": true + }, + "@babel/types": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz", + "integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==", "dev": true, "requires": { - "pump": "^3.0.0" + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" } }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "consolidate": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz", + "integrity": "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==", "dev": true, "requires": { - "yallist": "^3.0.2" + "bluebird": "^3.7.2" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, + "@vue/compiler-ssr": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.8.tgz", + "integrity": "sha512-QqyiFRiIl55W0abDNQ6cNG/7iIfBHmbXVtssUAjX3IlI87ELeT0xackmrCyTSnfIX12ixljg9AN0COIZwlvt5A==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.8", + "@vue/shared": "3.2.8" + } + }, "@vue/component-compiler-utils": { - "version": "2.6.0", - "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-2.6.0.tgz", - "integrity": "sha1-qkbSpvdkdECwuJMkNNIvEjceVDs=", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz", + "integrity": "sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0=", "dev": true, "requires": { "consolidate": "^0.15.1", @@ -1584,68 +2236,157 @@ "lru-cache": "^4.1.2", "merge-source-map": "^1.1.0", "postcss": "^7.0.14", - "postcss-selector-parser": "^5.0.0", - "prettier": "1.16.3", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", "source-map": "~0.6.1", "vue-template-es2015-compiler": "^1.9.0" }, "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "dev": true }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "dev": true, "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "prettier": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", - "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", - "dev": true + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true - } - } - }, - "@vue/eslint-config-prettier": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz", - "integrity": "sha512-wFQmv45c3ige5EA+ngijq40YpVcIkAy0Lihupnsnd1Dao5CBbPyfCzqtejFLZX1EwH/kCJdpz3t6s+5wd3+KxQ==", - "dev": true, - "requires": { - "eslint-config-prettier": "^6.0.0" - } - }, + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@vue/devtools-api": { + "version": "6.0.0-beta.14", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/@vue/devtools-api/-/devtools-api-6.0.0-beta.14.tgz", + "integrity": "sha1-btLW+NZqklbJrQS//wgwm6h7lyM=" + }, + "@vue/eslint-config-prettier": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/@vue/eslint-config-prettier/download/@vue/eslint-config-prettier-6.0.0.tgz", + "integrity": "sha1-rVkSswj0rkaEWOAqKwXbC50kZwA=", + "dev": true, + "requires": { + "eslint-config-prettier": "^6.0.0" + } + }, "@vue/preload-webpack-plugin": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.1.tgz", - "integrity": "sha1-GHI1MNME9EMCHaIpLW7JUCgmEEo=", + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz", + "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=", "dev": true }, - "@vue/test-utils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npm.taobao.org/@vue/test-utils/download/@vue/test-utils-1.0.0-beta.29.tgz?cache=0&sync_timestamp=1583751388817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Ftest-utils%2Fdownload%2F%40vue%2Ftest-utils-1.0.0-beta.29.tgz", - "integrity": "sha1-yULPJeiRzwgbagMzK0rh70MHJvA=", + "@vue/reactivity": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.8.tgz", + "integrity": "sha512-/Hj3Uz28SG+xB5SDWPOXUs0emvHkq82EmTgk44/plTVFeswCZ3i3Hd7WmsrPT4rGajlDKd5uqMmW0ith1ED0FA==", + "requires": { + "@vue/shared": "3.2.8" + }, + "dependencies": { + "@vue/shared": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.8.tgz", + "integrity": "sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==" + } + } + }, + "@vue/ref-transform": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.8.tgz", + "integrity": "sha512-9LdADd4JM3klt+b2qNT8a7b7JvBETNBy2Btv5rDzyPrAVS4Vrw+1WWay6gZBgnxfJ9TPSvG8f/9zu6gNGHmJLA==", "dev": true, "requires": { - "dom-event-types": "^1.0.0", - "lodash": "^4.17.4" + "@babel/parser": "^7.15.0", + "@vue/compiler-core": "3.2.8", + "@vue/shared": "3.2.8", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + }, + "dependencies": { + "@babel/parser": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.4.tgz", + "integrity": "sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w==", + "dev": true + } + } + }, + "@vue/runtime-core": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.8.tgz", + "integrity": "sha512-hwzXLGw1njBEY5JSyRXIIdCtzMFFF6F38WcKMmoIE3p7da30jEbWt8EwwrBomjT8ZbqzElOGlewBcnXNOiiIUg==", + "requires": { + "@vue/reactivity": "3.2.8", + "@vue/shared": "3.2.8" + }, + "dependencies": { + "@vue/shared": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.8.tgz", + "integrity": "sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==" + } + } + }, + "@vue/runtime-dom": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.8.tgz", + "integrity": "sha512-A/aRrlGLJ5y4Z7eNbnO/xHwx2RiPijQo7D3OIwESroG3HNP+dpuoqamajo5TXS9ZGjbMOih82COoe7xb9P4BZw==", + "requires": { + "@vue/runtime-core": "3.2.8", + "@vue/shared": "3.2.8", + "csstype": "^2.6.8" + }, + "dependencies": { + "@vue/shared": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.8.tgz", + "integrity": "sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==" + } } }, + "@vue/shared": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.8.tgz", + "integrity": "sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==", + "dev": true + }, "@vue/web-component-wrapper": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", @@ -1653,175 +2394,178 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.7.11.tgz?cache=0&sync_timestamp=1580600103531&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.7.11.tgz", - "integrity": "sha1-uYhYLK+7Kwlei1VlJvMMkNBXys4=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz", + "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.7.11.tgz?cache=0&sync_timestamp=1580600093212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.7.11.tgz", - "integrity": "sha1-pp8K9lAuuaPARVVbGmEp09Py4xM=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.7.11.tgz?cache=0&sync_timestamp=1580600095518&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.7.11.tgz", - "integrity": "sha1-x7a7gQX4QDlRGis5zklPGTgYoyo=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", + "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.7.11.tgz?cache=0&sync_timestamp=1580600094393&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.7.11.tgz", - "integrity": "sha1-MSLUjcxslFbtmC3r4WyPNxAd85s=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz", + "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.7.11.tgz?cache=0&sync_timestamp=1580600150532&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.7.11.tgz", - "integrity": "sha1-z48QbnRmYqDaKb3vY1/NPRJINks=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz", + "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.11" + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.7.11.tgz?cache=0&sync_timestamp=1580600091792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.7.11.tgz", - "integrity": "sha1-3ziIKmJAgNA/dQP5Pj8XrFrAEYE=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz", + "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.7.11.tgz?cache=0&sync_timestamp=1580600151060&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.7.11.tgz", - "integrity": "sha1-2HTXIuUeYqwgJHaTXWScgC+g4gk=", - "dev": true + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", + "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.7.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha1-3ZoegX8cLrEFtM8QEwk8ufPJywY=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.7.11.tgz", - "integrity": "sha1-nJrEHs+fvP/8lvbSZ14t4zgR5oo=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", + "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.7.11.tgz", - "integrity": "sha1-yVg562N1ejGICq7HtlEtQZGsZAs=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz", + "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.7.11.tgz?cache=0&sync_timestamp=1580600096686&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.7.11.tgz", - "integrity": "sha1-1yZ6HunEWU/T9+NymIGOxlaH22M=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz", + "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", "dev": true, "requires": { - "@xtuc/long": "4.2.1" + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.7.11.tgz?cache=0&sync_timestamp=1580600100063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.7.11.tgz", - "integrity": "sha1-Btchjqn9yUpnk6qSIIFg2z0m7oI=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", + "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.7.11.tgz?cache=0&sync_timestamp=1580600102353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.7.11.tgz", - "integrity": "sha1-jHTKR01PlR0B266b1wgU7iKoIAU=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", + "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.7.11.tgz?cache=0&sync_timestamp=1580600104620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.7.11.tgz", - "integrity": "sha1-m7upQvIjdWhqb7dZr816ycRdoag=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", + "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.7.11.tgz?cache=0&sync_timestamp=1580600101082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.7.11.tgz", - "integrity": "sha1-szHo5874+OLwB9QsOjagWAp9bKc=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", + "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.7.11.tgz?cache=0&sync_timestamp=1580600149379&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.7.11.tgz", - "integrity": "sha1-bj0g+mo1GfawhO+Tka1YIR77Cho=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz", + "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.7.11.tgz?cache=0&sync_timestamp=1580600149981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.7.11.tgz", - "integrity": "sha1-Jb0RdWLKjAAnIP+BFu+QctnKhpw=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", + "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.7.11.tgz?cache=0&sync_timestamp=1580600105652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.7.11.tgz", - "integrity": "sha1-xCRbbeJCy1CizJUBdP2/ZceNeBM=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", + "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, "@xtuc/ieee754": { @@ -1831,26 +2575,9 @@ "dev": true }, "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.1.tgz", - "integrity": "sha1-XIXWYvdvodNFdXZsXc1mFavNMNg=", - "dev": true - }, - "JSV": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/JSV/download/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" - }, - "abab": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.3.tgz", - "integrity": "sha1-Yj4gdeAustPyR15J+ZyRhGRnkHo=", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", "dev": true }, "accepts": { @@ -1864,61 +2591,21 @@ } }, "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", - "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "version": "6.4.2", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.2.tgz", + "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=", "dev": true }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha1-kBzu5Mf6rvfgetKkfokGddpQong=", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-globals%2Fdownload%2Facorn-globals-4.3.4.tgz", - "integrity": "sha1-n6GSat3BHJcwjE5m163Q1Awycuc=", - "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - } - } - }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "optional": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true, - "optional": true - } - } + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz", + "integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=", + "dev": true }, "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz", - "integrity": "sha1-Ejy487hMIXHx9/slJhWxx4prGow=", + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz", + "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", "dev": true }, "address": { @@ -1927,19 +2614,20 @@ "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", "dev": true }, - "adler-32": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/adler-32/download/adler-32-1.2.0.tgz", - "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "dev": true, "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.0.tgz?cache=0&sync_timestamp=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.0.tgz", - "integrity": "sha1-BtYLlth7hFSlrauobnhU2mKdtLc=", + "version": "6.12.6", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1608145983865&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1950,14 +2638,15 @@ }, "ajv-errors": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz?cache=0&sync_timestamp=1608064310528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz", "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", "dev": true }, "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.4.1.tgz", - "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=" + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1608059810829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "dev": true }, "alphanum-sort": { "version": "1.0.2", @@ -1965,12 +2654,6 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", @@ -1978,10 +2661,21 @@ "dev": true }, "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", - "dev": true + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz", + "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz?cache=0&sync_timestamp=1606468796224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.11.0.tgz", + "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", + "dev": true + } + } }, "ansi-html": { "version": "0.0.7", @@ -1990,49 +2684,34 @@ "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" - }, - "any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/any-observable/download/any-observable-0.3.0.tgz", - "integrity": "sha1-r5M0deWAamfQ198JDdXovvZdEZs=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "color-convert": "^1.9.0" } }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fappend-transform%2Fdownload%2Fappend-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "aproba": { @@ -2042,25 +2721,16 @@ "dev": true }, "arch": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.1.1.tgz", - "integrity": "sha1-j1wnMao1owkpIhuwZA7tZRdeyE4=", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.2.0.tgz", + "integrity": "sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE=", "dev": true }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", - "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -2083,36 +2753,12 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/array-each/download/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/array-slice/download/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=", - "dev": true - }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", @@ -2134,12 +2780,6 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", @@ -2150,14 +2790,23 @@ } }, "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", - "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", + "version": "5.4.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", + "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "assert": { @@ -2178,7 +2827,7 @@ }, "util": { "version": "0.10.3", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1588238435623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -2220,12 +2869,6 @@ "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", "dev": true }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", @@ -2233,12 +2876,9 @@ "dev": true }, "async-validator": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1575620599372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz", - "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", - "requires": { - "babel-runtime": "6.x" - } + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.2.tgz", + "integrity": "sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==" }, "asynckit": { "version": "0.4.0", @@ -2253,18 +2893,46 @@ "dev": true }, "autoprefixer": { - "version": "9.7.4", - "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.7.4.tgz", - "integrity": "sha1-+L8+BnB9BH8GQdh67oz7F0sqU3g=", + "version": "9.8.6", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz?cache=0&sync_timestamp=1607413393711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz", + "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=", "dev": true, "requires": { - "browserslist": "^4.8.3", - "caniuse-lite": "^1.0.30001020", - "chalk": "^2.4.2", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.26", - "postcss-value-parser": "^4.0.2" + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "aws-sign2": { @@ -2274,675 +2942,227 @@ "dev": true }, "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz?cache=0&sync_timestamp=1578959055063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.9.1.tgz", - "integrity": "sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4=", + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101647749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz", + "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", "dev": true }, "axios": { - "version": "0.18.1", - "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.18.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.18.1.tgz", - "integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=", + "version": "0.21.1", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.1.tgz?cache=0&sync_timestamp=1608611162952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.21.1.tgz", + "integrity": "sha1-IlY0gZYvTWvemnbVFu8OXTwJsrg=", "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" + "follow-redirects": "^1.10.0" } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1600349064486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz", + "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz", + "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587495874530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha1-laSS3dkPm06aSh2hTrM1uHtjTs4=", - "dev": true - }, - "babel-eslint": { - "version": "10.0.1", - "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.0.1.tgz", - "integrity": "sha1-kZaB3AmWFM19MdRciQhpUJKh+u0=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "^1.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } - } - }, - "babel-helper-vue-jsx-merge-props": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=" - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-jest": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/babel-jest/download/babel-jest-23.6.0.tgz?cache=0&sync_timestamp=1579654876842&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-jest%2Fdownload%2Fbabel-jest-23.6.0.tgz", - "integrity": "sha1-pkQjI2ZVeiJAoMCD2msleGGFovE=", - "dev": true, - "requires": { - "babel-plugin-istanbul": "^4.1.6", - "babel-preset-jest": "^23.2.0" - } - }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz", - "integrity": "sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs=", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1581538411621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "is-descriptor": "^1.0.0" } }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { - "p-try": "^2.0.0" + "kind-of": "^6.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { - "p-limit": "^2.0.0" + "kind-of": "^6.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { - "find-up": "^3.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz", + "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", + "dev": true }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha1-8A9Qe9qjw+P/bn5emNkKesq5b38=", + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "object.assign": "^4.1.0" + "tweetnacl": "^0.14.3" } }, - "babel-plugin-istanbul": { - "version": "4.1.6", - "resolved": "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha1-NsWbIZLvzoHFs3gyG3QXWt0cmkU=", + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", "dev": true, "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "find-up": "^2.1.0", - "istanbul-lib-instrument": "^1.10.1", - "test-exclude": "^4.2.1" + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" } }, - "babel-plugin-jest-hoist": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-jest-hoist%2Fdownload%2Fbabel-plugin-jest-hoist-23.2.0.tgz", - "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", "dev": true }, - "babel-plugin-module-resolver": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-3.2.0.tgz", - "integrity": "sha1-3fpeMB47mqEthSqZefGLN4gf9ac=", - "dev": true, - "requires": { - "find-babel-config": "^1.1.0", - "glob": "^7.1.2", - "pkg-up": "^2.0.0", - "reselect": "^3.0.1", - "resolve": "^1.4.0" - } - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299514499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", + "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", "dev": true }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", "dev": true, + "optional": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "file-uri-to-path": "1.0.0" } }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", + "dev": true }, - "babel-preset-jest": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-23.2.0.tgz", - "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^23.2.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0" - } + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.3.tgz", + "integrity": "sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms=", + "dev": true }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "dependencies": { - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } }, - "home-or-tmp": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.4.18.tgz", - "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true } } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", - "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bfj": { - "version": "6.1.2", - "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", - "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", - "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", - "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { "array-flatten": "^2.1.0", @@ -2969,7 +3189,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz?cache=0&sync_timestamp=1601898189928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, "requires": { @@ -3012,29 +3232,6 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz", - "integrity": "sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY=", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz?cache=0&sync_timestamp=1580943346382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", @@ -3073,28 +3270,49 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz", + "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", "dev": true, "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz", + "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", "dev": true, "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + } } }, "browserify-zlib": { @@ -3107,28 +3325,21 @@ } }, "browserslist": { - "version": "4.9.1", - "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.9.1.tgz", - "integrity": "sha1-Af+5yjGhrvdngSj8aiJTMWqnKHw=", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001030", - "electron-to-chromium": "^1.3.363", - "node-releases": "^1.1.50" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/bser/download/bser-2.1.1.tgz?cache=0&sync_timestamp=1571761384718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbser%2Fdownload%2Fbser-2.1.1.tgz", - "integrity": "sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=", + "version": "4.16.0", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.0.tgz?cache=0&sync_timestamp=1607665649211&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.0.tgz", + "integrity": "sha1-QQJ3YnUAvjyyihv+A3WG++35SIs=", "dev": true, "requires": { - "node-int64": "^0.4.0" + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" } }, "buffer": { "version": "4.9.2", - "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1606098100352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", "dev": true, "requires": { @@ -3137,28 +3348,6 @@ "isarray": "^1.0.0" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz", - "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", @@ -3171,6 +3360,12 @@ "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", "dev": true }, + "buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz", + "integrity": "sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM=", + "dev": true + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", @@ -3190,9 +3385,9 @@ "dev": true }, "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.3.tgz", - "integrity": "sha1-vpmruk4b9d9GHNWiwQcfxDJXM5A=", + "version": "12.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594428108619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", + "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", "dev": true, "requires": { "bluebird": "^3.5.5", @@ -3210,29 +3405,6 @@ "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", - "dev": true - } } }, "cache-base": { @@ -3253,29 +3425,27 @@ } }, "cache-loader": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-2.0.1.tgz", - "integrity": "sha1-V1j0GmLXwjlB48PHAW5vrrA6ywc=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz", + "integrity": "sha1-mUjK41OuwKH8ser9ojAIFuyFOH4=", "dev": true, "requires": { - "loader-utils": "^1.1.0", + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", "mkdirp": "^0.5.1", - "neo-async": "^2.6.0", - "normalize-path": "^3.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.0.tgz?cache=0&sync_timestamp=1604117087261&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.0.tgz", + "integrity": "sha1-JBJwVLs/m9y0sfuCQYGGBy93uM4=", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" } }, "call-me-maybe": { @@ -3291,65 +3461,28 @@ "dev": true, "requires": { "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } } }, "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, - "optional": true, "requires": { - "callsites": "^0.2.0" + "caller-callsite": "^2.0.0" } }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true, - "optional": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz", + "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", + "dev": true }, "caniuse-api": { "version": "3.0.0", @@ -3364,20 +3497,11 @@ } }, "caniuse-lite": { - "version": "1.0.30001033", - "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001033.tgz", - "integrity": "sha1-YMMo+1aGDeYPmiy0GcMfuAWHy6A=", + "version": "1.0.30001255", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz", + "integrity": "sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==", "dev": true }, - "capture-exit": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/capture-exit/download/capture-exit-1.2.0.tgz", - "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", - "dev": true, - "requires": { - "rsvp": "^3.3.3" - } - }, "case-sensitive-paths-webpack-plugin": { "version": "2.3.0", "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz", @@ -3390,69 +3514,22 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "cfb": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/cfb/download/cfb-1.1.3.tgz", - "integrity": "sha1-Bd5oFiWcjovDJxOrqQVgjuOF32Y=", - "requires": { - "adler-32": "~1.2.0", - "commander": "^2.16.0", - "crc-32": "~1.2.0", - "printj": "~1.1.2" - } - }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - } - } - }, - "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/change-case/download/change-case-3.1.0.tgz", - "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" } }, "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz?cache=0&sync_timestamp=1562888139305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true, - "optional": true + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "dev": true }, "check-types": { "version": "8.0.3", @@ -3461,23 +3538,54 @@ "dev": true }, "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.5.tgz", - "integrity": "sha1-CuhDTZYigaX1bHKGnnnLbZ2GrU0=", + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", + "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "chownr": { @@ -3511,13 +3619,6 @@ "safe-buffer": "^5.0.1" } }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", - "dev": true, - "optional": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", @@ -3558,6 +3659,12 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1605702369164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "dev": true + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-cursor%2Fdownload%2Fcli-cursor-2.1.0.tgz", @@ -3567,75 +3674,87 @@ "restore-cursor": "^2.0.0" } }, - "cli-spinners": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.2.0.tgz", - "integrity": "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=", - "dev": true - }, - "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-truncate%2Fdownload%2Fcli-truncate-0.2.1.tgz", - "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "cli-highlight": { + "version": "2.1.9", + "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.9.tgz?cache=0&sync_timestamp=1606814157980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.9.tgz", + "integrity": "sha1-T07LBTJtcNVtS0JJ+r+acPsAJJc=", "dev": true, "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" + "chalk": "^4.0.0", + "highlight.js": "^10.0.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^15.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "color-convert": "^2.0.1" } }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "has-flag": "^4.0.0" } } } }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.5.0.tgz?cache=0&sync_timestamp=1602505897921&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.5.0.tgz", + "integrity": "sha1-EnY+RyUb+VHLdcIB36WP8byy0Ec=", + "dev": true + }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", "dev": true }, "clipboard": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.4.tgz?cache=0&sync_timestamp=1583389652647&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.4.tgz", - "integrity": "sha1-g22v1mzw/qXXHOXVsL9ulYAJES0=", + "version": "2.0.8", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/clipboard/-/clipboard-2.0.8.tgz", + "integrity": "sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=", "requires": { "good-listener": "^1.2.2", "select": "^1.1.2", @@ -3643,50 +3762,36 @@ } }, "clipboardy": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-1.2.3.tgz", - "integrity": "sha1-BSY2G/eHJMHyC+JI1CjjZUM8B+8=", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz", + "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=", "dev": true, "requires": { - "arch": "^2.1.0", - "execa": "^0.8.0" + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" }, "dependencies": { - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "is-docker": "^2.0.0" } } } }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, "clone": { @@ -3706,12 +3811,6 @@ "shallow-clone": "^3.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, "coa": { "version": "2.0.2", "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", @@ -3723,32 +3822,6 @@ "q": "^1.1.2" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "codemirror": { - "version": "5.45.0", - "resolved": "https://registry.npm.taobao.org/codemirror/download/codemirror-5.45.0.tgz", - "integrity": "sha1-2167s79EAoxoQFPzlU0BHvzsJ60=" - }, - "codepage": { - "version": "1.14.0", - "resolved": "https://registry.npm.taobao.org/codepage/download/codepage-1.14.0.tgz", - "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", - "requires": { - "commander": "~2.14.1", - "exit-on-epipe": "~1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.14.1", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.14.1.tgz", - "integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao=" - } - } - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", @@ -3760,19 +3833,20 @@ } }, "color": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.2.tgz", - "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=", + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz", + "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", "dev": true, "requires": { "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "color-string": "^1.5.4" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -3780,18 +3854,25 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz", - "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=", + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz", + "integrity": "sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY=", "dev": true, "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz", + "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", @@ -3802,9 +3883,10 @@ } }, "commander": { - "version": "2.17.1", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz", - "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=" + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1607933281807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true }, "commondir": { "version": "1.0.1", @@ -3850,12 +3932,113 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "compression-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-Wcb99O4UkdDZiM+blEw6h+cUfJYCn2kgK0l3fjLOm72Stso9DVMieQpBD4PVpyI7DLL6+zNh0iJV3p4HDwTinQ==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -3877,97 +4060,6 @@ "typedarray": "^0.0.6" } }, - "condense-newlines": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz", - "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-whitespace": "^0.3.0", - "kind-of": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz", - "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "connect": { - "version": "3.6.6", - "resolved": "https://registry.npm.taobao.org/connect/download/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - } - } - }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", @@ -3980,31 +4072,15 @@ "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "consolidate": { "version": "0.15.1", - "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599596863404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz", "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", "dev": true, "requires": { "bluebird": "^3.1.1" } }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/constant-case/download/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "dev": true, - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", @@ -4037,7 +4113,7 @@ }, "cookie": { "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz?cache=0&sync_timestamp=1587525873712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz", "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", "dev": true }, @@ -4068,40 +4144,64 @@ "dev": true }, "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=", + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz?cache=0&sync_timestamp=1608126698047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.2.tgz", + "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=", "dev": true, "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "webpack-log": "^2.0.0" }, "dependencies": { - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz", - "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", "dev": true, "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "globby": { @@ -4116,78 +4216,117 @@ "ignore": "^3.3.5", "pify": "^3.0.0", "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", - "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1581887711256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz", - "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", - "dev": true + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-5.3.0.tgz", - "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", "dev": true, "requires": { - "safe-buffer": "^5.1.1" + "find-up": "^3.0.0" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true } } }, "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=" + "version": "3.15.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/core-js/-/core-js-3.15.0.tgz", + "integrity": "sha1-25VU684Lb9kNybHyRlyEHS0FUEQ=" + }, + "core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.8.1.tgz?cache=0&sync_timestamp=1607215923501&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.8.1.tgz", + "integrity": "sha1-jR3dNB1mC6YZTL4M5g9MeUyHo24=", + "dev": true, + "requires": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", + "dev": true + } + } }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cosmiconfig": { "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1572710769619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", "dev": true, "requires": { @@ -4209,23 +4348,22 @@ } } }, - "crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/crc-32/download/crc-32-1.2.0.tgz", - "integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=", - "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - } - }, "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", - "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", + "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", "dev": true, "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "create-hash": { @@ -4256,11 +4394,14 @@ } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } @@ -4284,25 +4425,10 @@ "randomfill": "^1.0.3" } }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz", - "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/crypto-js/download/crypto-js-4.0.0.tgz", + "integrity": "sha1-KQSrJnep0EKFai6i74DekuSjbcw=" }, "css-color-names": { "version": "0.0.4", @@ -4312,18 +4438,47 @@ }, "css-declaration-sorter": { "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1582155815799&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1604519271783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", "dev": true, "requires": { "postcss": "^7.0.1", "timsort": "^0.3.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "css-loader": { "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1592056820460&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1604507120816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz", "integrity": "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=", + "dev": true, "requires": { "camelcase": "^5.3.1", "cssesc": "^3.0.0", @@ -4340,61 +4495,40 @@ "semver": "^6.3.0" }, "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz?cache=0&sync_timestamp=1593878551850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz", - "integrity": "sha1-GMWvOKER3etPJpe9eNaKvByr1wY=", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true }, "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.32.tgz", - "integrity": "sha1-QxDW7jRwU9o0M9sr5JKIPWLOxZ0=", + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", - "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=" - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz", - "integrity": "sha1-FxUfdtjq5n+793lgwzxnatn078c=", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -4403,7 +4537,7 @@ }, "css-select": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1607468308878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", "dev": true, "requires": { @@ -4420,31 +4554,34 @@ "dev": true }, "css-tree": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.28.tgz?cache=0&sync_timestamp=1575583542748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.28.tgz", - "integrity": "sha1-joloGQ2IbJR3vI1h6W9hrz9/+n8=", + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1606404040784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", "dev": true, "requires": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" - } - }, - "css-url-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/css-url-regex/download/css-url-regex-1.1.0.tgz", - "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", - "dev": true - }, - "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.2.1.tgz", - "integrity": "sha1-9KjxJCEGRiG0VnVeNKA6LCLfXaE=", + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1602570970779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", + "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", "dev": true }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=" + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true }, "cssnano": { "version": "4.1.10", @@ -4456,11 +4593,39 @@ "cssnano-preset-default": "^4.0.7", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "cssnano-preset-default": { "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz?cache=0&sync_timestamp=1603212703768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.7.tgz", "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", "dev": true, "requires": { @@ -4494,6 +4659,34 @@ "postcss-reduce-transforms": "^4.0.2", "postcss-svgo": "^4.0.2", "postcss-unique-selectors": "^4.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "cssnano-util-get-arguments": { @@ -4515,6 +4708,34 @@ "dev": true, "requires": { "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "cssnano-util-same-parent": { @@ -4524,49 +4745,42 @@ "dev": true }, "csso": { - "version": "3.5.1", - "resolved": "https://registry.npm.taobao.org/csso/download/csso-3.5.1.tgz", - "integrity": "sha1-e564vmFiiXPBsmHhadLwJACOdYs=", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408790645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz", + "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.29" + "css-tree": "^1.1.2" }, "dependencies": { "css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.29.tgz?cache=0&sync_timestamp=1575583542748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.29.tgz", - "integrity": "sha1-P6nU7zFCy9HDAedmTB81K9gvWjk=", + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.2.tgz?cache=0&sync_timestamp=1606404040784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.1.2.tgz", + "integrity": "sha1-muOTtdr9fa6KYiR1yux409j717U=", "dev": true, "requires": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" + "mdn-data": "2.0.14", + "source-map": "^0.6.1" } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.14.tgz", + "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true } } }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npm.taobao.org/cssom/download/cssom-0.3.8.tgz?cache=0&sync_timestamp=1573719337707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssom%2Fdownload%2Fcssom-0.3.8.tgz", - "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", - "dev": true - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/cssstyle/download/cssstyle-1.4.0.tgz", - "integrity": "sha1-nTEyginTxWXGHlhrAgQaKPzNzPE=", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } + "csstype": { + "version": "2.6.17", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz", + "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A==" }, "cyclist": { "version": "1.0.1", @@ -4576,61 +4790,32 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073333186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { "assert-plus": "^1.0.0" } }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/data-urls/download/data-urls-1.1.0.tgz?cache=0&sync_timestamp=1577997348324&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdata-urls%2Fdownload%2Fdata-urls-1.1.0.tgz", - "integrity": "sha1-Fe4Fgrql4iu1nHcUDaj5x2lju/4=", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-7.1.0.tgz?cache=0&sync_timestamp=1578023109671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-7.1.0.tgz", - "integrity": "sha1-wsSS8eymEpiO/T0iZr4bn8YXDQY=", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-1.30.1.tgz", - "integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=", - "dev": true - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true + "dayjs": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz", + "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==" }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decode-uri-component": { "version": "0.2.0", @@ -4638,15 +4823,9 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, "deep-equal": { "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1606859943631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", "dev": true, "requires": { @@ -4667,66 +4846,124 @@ "deepmerge": { "version": "1.5.2", "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", - "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=" + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "dev": true }, "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "version": "5.0.5", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz", + "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", "dev": true, "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "execa": "^3.3.0" }, "dependencies": { "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", + "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" } }, "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", "dev": true, "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz?cache=0&sync_timestamp=1560955759606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1574441322626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - } - }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", @@ -4788,7 +5025,7 @@ }, "del": { "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076741536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", "dev": true, "requires": { @@ -4822,10 +5059,10 @@ } } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", "dev": true } } @@ -4838,15 +5075,9 @@ }, "delegate": { "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/delegate/-/delegate-3.2.0.tgz", "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", @@ -4869,39 +5100,12 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/detect-file/download/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, "detect-node": { "version": "2.0.4", "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", "dev": true }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", - "dev": true - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", @@ -4911,6 +5115,14 @@ "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "dir-glob": { @@ -4948,11 +5160,10 @@ } }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", "dev": true, - "optional": true, "requires": { "esutils": "^2.0.2" } @@ -4966,15 +5177,9 @@ "utila": "~0.4" } }, - "dom-event-types": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/dom-event-types/download/dom-event-types-1.0.0.tgz", - "integrity": "sha1-WDCgop4b+Df+UKcM2ApZcjKBPK4=", - "dev": true - }, "dom-serializer": { "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1573447907918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1607193111136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", "dev": true, "requires": { @@ -4983,43 +5188,28 @@ }, "dependencies": { "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz", - "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=", - "dev": true - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz", - "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.1.0.tgz?cache=0&sync_timestamp=1606865969598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.1.0.tgz", + "integrity": "sha1-qFHAgKbRw9lDRK7RUdmfZp7fWF4=", "dev": true } } }, "domain-browser": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1575879334171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", "dev": true }, "domelementtype": { "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1606865969598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", "dev": true }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz", - "integrity": "sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA=", - "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, "domhandler": { "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz?cache=0&sync_timestamp=1606872259940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz", "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", "dev": true, "requires": { @@ -5028,7 +5218,7 @@ }, "domready": { "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/domready/download/domready-1.0.8.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/domready/-/domready-1.0.8.tgz", "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=", "dev": true }, @@ -5042,50 +5232,31 @@ "domelementtype": "1" } }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/dot-case/download/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz?cache=0&sync_timestamp=1572620518450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.2.0.tgz", - "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&sync_timestamp=1605778245141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz", + "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", "dev": true, "requires": { "is-obj": "^2.0.0" } }, "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-6.2.0.tgz?cache=0&sync_timestamp=1571190685588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdotenv%2Fdownload%2Fdotenv-6.2.0.tgz", - "integrity": "sha1-lBwEEFNdlCyL7PKNPzV9vZ1HYGQ=", + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz?cache=0&sync_timestamp=1571190685588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdotenv%2Fdownload%2Fdotenv-8.2.0.tgz", + "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", "dev": true }, "dotenv-expand": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-4.2.0.tgz", - "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", "dev": true }, - "driver.js": { - "version": "0.9.5", - "resolved": "https://registry.npm.taobao.org/driver.js/download/driver.js-0.9.5.tgz", - "integrity": "sha1-7oqLan06Sbq29Vy14lBVg322zaQ=" - }, - "dropzone": { - "version": "5.5.1", - "resolved": "https://registry.npm.taobao.org/dropzone/download/dropzone-5.5.1.tgz", - "integrity": "sha1-BuL1E+YdaqNj1LVW8YV09Hz3uiY=" - }, "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", "dev": true }, "duplexify": { @@ -5101,9 +5272,9 @@ } }, "easy-stack": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz", - "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.1.tgz", + "integrity": "sha1-iv5CZGJpiMq7EfPHBMzQyDVBEGY=", "dev": true }, "ecc-jsbn": { @@ -5117,30 +5288,18 @@ } }, "echarts": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.2.1.tgz", - "integrity": "sha1-mo6jsDNU+G+CTZdiXDNM8Wll7wM=", - "requires": { - "zrender": "4.0.7" - } - }, - "editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npm.taobao.org/editorconfig/download/editorconfig-0.15.3.tgz", - "integrity": "sha1-vvhMTnX7jcsM5c7o79UcFZmb78U=", - "dev": true, + "version": "5.1.2", + "resolved": "https://registry.nlark.com/echarts/download/echarts-5.1.2.tgz?cache=0&sync_timestamp=1623167264935&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fecharts%2Fdownload%2Fecharts-5.1.2.tgz", + "integrity": "sha1-qhqwzvW3T6L3xiAmGl8oaJPTD9E=", "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" + "tslib": "2.0.3", + "zrender": "5.1.1" }, "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.nlark.com/tslib/download/tslib-2.0.3.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.0.3.tgz", + "integrity": "sha1-jgdBrEX8DCJuWKF7/D5kubxsphw=" } } }, @@ -5157,34 +5316,30 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.373", - "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.373.tgz?cache=0&sync_timestamp=1583812992693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.373.tgz", - "integrity": "sha1-ZF3nocCTy2FOJxZzg0eBj5MJI/8=", - "dev": true - }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", - "dev": true - }, - "element-ui": { - "version": "2.13.0", - "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.0.tgz", - "integrity": "sha1-9rsE5bCnbqX2JGYES3dEB7pOvS0=", - "requires": { - "async-validator": "~1.8.1", - "babel-helper-vue-jsx-merge-props": "^2.0.0", - "deepmerge": "^1.2.0", + "version": "1.3.628", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.628.tgz?cache=0&sync_timestamp=1608143621573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.628.tgz", + "integrity": "sha1-vloU3fOkVd6HYnTITeCSZDmih6c=", + "dev": true + }, + "element-plus": { + "version": "1.1.0-beta.7", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-1.1.0-beta.7.tgz", + "integrity": "sha512-+HcIwJsd0/kXl5roqgPhWhpbxL+s8cWMVD6+Lg0HS1gI9dnBZ3dN238UMYmerk+fCpN7l4V0ShuqM1gq1a7nNw==", + "requires": { + "@element-plus/icons": "^0.0.11", + "@popperjs/core": "^2.4.4", + "async-validator": "^3.4.0", + "dayjs": "1.x", + "lodash": "^4.17.20", + "mitt": "^2.1.0", "normalize-wheel": "^1.0.1", - "resize-observer-polyfill": "^1.5.0", - "throttle-debounce": "^1.0.1" + "resize-observer-polyfill": "^1.5.1" } }, "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz", - "integrity": "sha1-BcVnjXFzwEnYykM1UiJKSV0ON2I=", + "version": "6.5.3", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492754083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz", + "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -5194,18 +5349,27 @@ "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" - } + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", "dev": true }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=" + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -5223,9 +5387,9 @@ } }, "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz?cache=0&sync_timestamp=1572993058578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.1.tgz", - "integrity": "sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1606945778512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz", + "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -5246,14 +5410,15 @@ } }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz", - "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=" + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.1.0.tgz?cache=0&sync_timestamp=1602898797807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.1.0.tgz", + "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU=", + "dev": true }, "errno": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz", + "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", "dev": true, "requires": { "prr": "~1.0.1" @@ -5278,22 +5443,23 @@ } }, "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.4.tgz", - "integrity": "sha1-467fGXBrIOfCWUw1/A1XYFp54YQ=", + "version": "1.18.0-next.1", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -5307,6 +5473,12 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567230854&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", @@ -5315,333 +5487,117 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.1.tgz?cache=0&sync_timestamp=1580954812183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.1.tgz", - "integrity": "sha1-ugHQyCeLXpWppFNQFCAmZZAnpFc=", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "optional": true - } - } + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "eslint": { - "version": "5.15.3", - "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-5.15.3.tgz", - "integrity": "sha1-x5w5CdyKf6NxT7NAwR4w/SUmuLU=", + "version": "6.8.0", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1607153145204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-6.8.0.tgz", + "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", + "ajv": "^6.10.0", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.12.0", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.11", + "lodash": "^4.17.14", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", + "optionator": "^0.8.3", "progress": "^2.0.0", "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", "table": "^5.2.3", - "text-table": "^0.2.0" + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz", - "integrity": "sha1-TGYGkXPW/daO2FI5/CViJhgrLr4=", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1562888139305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-5.0.1.tgz?cache=0&sync_timestamp=1583168748616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-5.0.1.tgz", - "integrity": "sha1-XWUm+k/H8HiKXPdbFfMDI+L4H3o=", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", - "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", - "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz?cache=0&sync_timestamp=1607413619483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz", + "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "type-fest": "^0.8.1" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "dev": true - }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz", - "integrity": "sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY=", + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.2.tgz?cache=0&sync_timestamp=1604255567620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.2.tgz", + "integrity": "sha1-/BKcFgxdaCNVB/QzGmuq0Ya9vD4=", "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz?cache=0&sync_timestamp=1583819607980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-6.5.2.tgz", - "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz?cache=0&sync_timestamp=1567160849322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-2.0.1.tgz", - "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", - "dev": true - }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz", - "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz", - "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "ansi-regex": "^4.1.0" } }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz", - "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1606468796224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", + "dev": true } } }, "eslint-config-prettier": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz", - "integrity": "sha512-AtndijGte1rPILInUdHjvKEGbIV06NuvPrqlIEaEaWtbtvJh464mDeyGMdZEQMsGvC0ZVkiex1fSNcC4HAbRGg==", + "version": "6.15.0", + "resolved": "https://registry.npm.taobao.org/eslint-config-prettier/download/eslint-config-prettier-6.15.0.tgz?cache=0&sync_timestamp=1607205673337&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-prettier%2Fdownload%2Feslint-config-prettier-6.15.0.tgz", + "integrity": "sha1-f5P2y31FqS8VN6cOzAY2bhrG/tk=", "dev": true, "requires": { "get-stdin": "^6.0.0" @@ -5661,80 +5617,64 @@ } }, "eslint-plugin-prettier": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz", - "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==", + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-prettier/download/eslint-plugin-prettier-3.3.0.tgz?cache=0&sync_timestamp=1607910777157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.3.0.tgz", + "integrity": "sha1-YeKVNJplaI/6wLeAjvCoJEvdjUA=", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" } }, "eslint-plugin-vue": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-5.2.2.tgz?cache=0&sync_timestamp=1583662392429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-5.2.2.tgz", - "integrity": "sha1-hmAYI7dyG3C8ktVPFyjPwDs2KDw=", + "version": "7.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-7.3.0.tgz?cache=0&sync_timestamp=1608096201611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-7.3.0.tgz", + "integrity": "sha1-D68Pzw4bEFK/gA1N7kLWT1BnnLA=", "dev": true, "requires": { - "vue-eslint-parser": "^5.0.0" + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^7.3.2", + "vue-eslint-parser": "^7.3.0" }, "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz", - "integrity": "sha1-TGYGkXPW/daO2FI5/CViJhgrLr4=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-2.1.0.tgz", + "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", "dev": true, "requires": { - "ms": "^2.1.1" + "eslint-visitor-keys": "^1.1.0" } }, - "espree": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-4.1.0.tgz?cache=0&sync_timestamp=1583168748616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-4.1.0.tgz", - "integrity": "sha1-co1UUeD9FWwEOEp62J7VH/VOsl8=", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "yallist": "^4.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "vue-eslint-parser": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-5.0.0.tgz", - "integrity": "sha1-APTk2pTsl0uCGib/DtD3p4QCuKE=", + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz", + "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=", "dev": true, "requires": { - "debug": "^4.1.0", - "eslint-scope": "^4.0.0", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.1.0", - "esquery": "^1.0.1", - "lodash": "^4.17.11" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true } } }, "eslint-scope": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", "dev": true, "requires": { @@ -5744,7 +5684,7 @@ }, "eslint-utils": { "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-1.4.3.tgz", + "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz", "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", "dev": true, "requires": { @@ -5752,20 +5692,28 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz?cache=0&sync_timestamp=1565705523991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.1.0.tgz", - "integrity": "sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI=", + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1599829544231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", "dev": true }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz?cache=0&sync_timestamp=1583168748616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-3.5.4.tgz", - "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz?cache=0&sync_timestamp=1607144055171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.2.1.tgz", + "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", "dev": true, - "optional": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true + } } }, "esprima": { @@ -5775,21 +5723,37 @@ "dev": true }, "esquery": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.1.0.tgz", - "integrity": "sha1-xcC2bzg+dlZAT4azEzTXJSTt20g=", + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.3.1.tgz?cache=0&sync_timestamp=1587061209806&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz", + "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true + } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true + } } }, "estraverse": { @@ -5798,6 +5762,11 @@ "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", "dev": true }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", @@ -5810,26 +5779,22 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, - "eve": { - "version": "git://github.com/adobe-webplatform/eve.git#eef80ed8d188423c2272746fb8ae5cc8dad84cb1", - "from": "git://github.com/adobe-webplatform/eve.git#eef80ed" - }, "event-pubsub": { "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz?cache=0&sync_timestamp=1606361501216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevent-pubsub%2Fdownload%2Fevent-pubsub-4.3.0.tgz", "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", "dev": true }, "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz?cache=0&sync_timestamp=1560950873670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.0.tgz", - "integrity": "sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs=", + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz", + "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", "dev": true }, "events": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz", - "integrity": "sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk=", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.2.0.tgz", + "integrity": "sha1-k7h8GPjvzUICpGGuxN/AVWtjk3k=", "dev": true }, "eventsource": { @@ -5851,22 +5816,14 @@ "safe-buffer": "^5.1.1" } }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.2.tgz", - "integrity": "sha1-Kl5//L19C6J1W97LFuWkJ9+97DY=", - "dev": true, - "requires": { - "merge": "^1.2.0" - } - }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", @@ -5874,17 +5831,6 @@ "strip-eof": "^1.0.0" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz", - "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI=" - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", @@ -5902,7 +5848,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -5926,104 +5872,19 @@ "requires": { "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz", - "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/expand-tilde/download/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/expect/download/expect-23.6.0.tgz?cache=0&sync_timestamp=1579654879185&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpect%2Fdownload%2Fexpect-23.6.0.tgz", - "integrity": "sha1-HgyNO6mlgch71x+5vIhi1ENCX5g=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "jest-diff": "^23.6.0", - "jest-get-type": "^22.1.0", - "jest-matcher-utils": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-regex-util": "^23.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz", - "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", "dev": true, "requires": { "accepts": "~1.3.7", @@ -6060,17 +5921,17 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "qs": { @@ -6109,14 +5970,13 @@ } }, "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz", - "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", "dev": true, - "optional": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, @@ -6185,15 +6045,6 @@ } } }, - "extract-from-css": { - "version": "0.4.4", - "resolved": "https://registry.npm.taobao.org/extract-from-css/download/extract-from-css-0.4.4.tgz", - "integrity": "sha1-HqffLnx8brmSL6COitrqSG9vj5I=", - "dev": true, - "requires": { - "css": "^2.1.0" - } - }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", @@ -6201,19 +6052,20 @@ "dev": true }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.1.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.1.tgz", - "integrity": "sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ=" + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599651635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true }, "fast-diff": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "resolved": "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.2.0.tgz", + "integrity": "sha1-c+4RmC2Gyq95WYKNUZz+kn+sXwM=", "dev": true }, "fast-glob": { "version": "2.2.7", - "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1592290365180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz", "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", "dev": true, "requires": { @@ -6223,12 +6075,36 @@ "is-glob": "^4.0.0", "merge2": "^1.2.3", "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } } }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -6245,69 +6121,40 @@ "websocket-driver": ">=0.5.1" } }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.1.tgz", - "integrity": "sha1-/IT7OdJwnPP/bXQ3BhV7tXCKioU=", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz", - "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", + "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", "dev": true }, "figures": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz?cache=0&sync_timestamp=1581865437156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz?cache=0&sync_timestamp=1581865437156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", "dev": true, - "optional": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "^2.0.1" } }, "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-3.0.1.tgz?cache=0&sync_timestamp=1582135550059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-3.0.1.tgz", - "integrity": "sha1-+OC6C1mZGLUa3+RdZtHnca1WD6o=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816990383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz", + "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" } }, - "file-saver": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.1.tgz", - "integrity": "sha1-f+IkKvHLxVminYF2B4qLVteB+nk=" - }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz?cache=0&sync_timestamp=1570825475173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz", @@ -6315,22 +6162,6 @@ "dev": true, "optional": true }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, "filesize": { "version": "3.6.1", "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", @@ -6377,103 +6208,51 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "find-babel-config": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz", - "integrity": "sha1-qbezF+tbmGDNqdVHQKjIM3oig6I=", - "dev": true, - "requires": { - "json5": "^0.5.1", - "path-exists": "^3.0.0" - } - }, "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "find-parent-dir": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/find-parent-dir/download/find-parent-dir-0.3.0.tgz", - "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", - "dev": true - }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/findup-sync/download/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/fined/download/fined-1.2.0.tgz", - "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "dev": true, "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/flagged-respawn/download/flagged-respawn-1.0.1.tgz", - "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=", - "dev": true - }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.4.tgz", - "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", + "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", "dev": true, - "optional": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "dependencies": { "rimraf": { @@ -6481,7 +6260,6 @@ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "dev": true, - "optional": true, "requires": { "glob": "^7.1.3" } @@ -6489,9 +6267,9 @@ } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.1.tgz", - "integrity": "sha1-aeV8qo8OrLwoHS4stFjUb9tEngg=", + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz", + "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", "dev": true }, "flush-write-stream": { @@ -6504,19 +6282,10 @@ "readable-stream": "^2.3.6" } }, - "fn-name": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/fn-name/download/fn-name-2.0.1.tgz", - "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", - "dev": true - }, "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz", - "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", - "requires": { - "debug": "=3.1.0" - } + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.1.tgz?cache=0&sync_timestamp=1607916833378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.1.tgz", + "integrity": "sha1-X2m4Ezds7k/QR0o6uoNd8Eq3Y7c=" }, "for-in": { "version": "1.0.2", @@ -6524,15 +6293,6 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", @@ -6556,11 +6316,6 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, - "frac": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/frac/download/frac-1.1.2.tgz", - "integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs=" - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", @@ -6597,6 +6352,15 @@ "universalify": "^0.1.0" } }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", @@ -6616,3324 +6380,1148 @@ "dev": true }, "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.11.tgz?cache=0&sync_timestamp=1580708699417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.11.tgz", - "integrity": "sha1-Z79X9HWPAu3oj7KhcS/vTRU1i+M=", + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.1.tgz", + "integrity": "sha1-sgmrFMYQEmNsiGNQft9/tozFTp8=", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", + "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", "dev": true, - "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz", - "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "fuse.js": { - "version": "3.4.4", - "resolved": "https://registry.npm.taobao.org/fuse.js/download/fuse.js-3.4.4.tgz", - "integrity": "sha1-+Y9V/LO1lc9qPmKcX/rxCYIQPpU=" - }, - "g-status": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/g-status/download/g-status-2.0.2.tgz", - "integrity": "sha1-Jw/TIRno/JSW8Gb+X+iOCmvHi5c=", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "matcher": "^1.0.0", - "simple-git": "^1.85.0" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz", - "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", - "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=" - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-6.0.0.tgz", - "integrity": "sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", - "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/global-modules/download/global-modules-1.0.0.tgz", - "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/global-prefix/download/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz", - "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - } - } - }, - "globule": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.1.tgz", - "integrity": "sha1-kKJTOPIrf761J87mPGKa6nVNM7k=", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.12", - "minimatch": "~3.0.2" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "requires": { - "delegate": "^3.1.2" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz", - "integrity": "sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM=", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", - "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - } - } - }, - "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz", - "integrity": "sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q=", - "dev": true - }, - "handlebars": { - "version": "4.7.3", - "resolved": "https://registry.npm.taobao.org/handlebars/download/handlebars-4.7.3.tgz", - "integrity": "sha1-js4nl4Johs+AgtFyb/IdKgIlUO4=", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", - "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-color": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", - "dev": true - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/header-case/download/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", - "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", - "dev": true - }, - "highlight.js": { - "version": "9.18.1", - "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz", - "integrity": "sha1-7SGqAB/mJSuxCj121HVzxlOf4Tw=" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-3.0.0.tgz", - "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=", - "dev": true - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz", - "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", - "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1583017354488&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", - "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", - "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", - "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1582036112063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", - "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", - "dev": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz", - "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", - "dev": true - } - } - } - } - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1573491310172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "dev": true, - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1582422905208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", - "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz?cache=0&sync_timestamp=1572714277347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, - "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz?cache=0&sync_timestamp=1568770896103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.0.tgz", - "integrity": "sha1-2+VfY+daNH2389mZdPJpKjFKajo=", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1582586910479&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "husky": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/husky/download/husky-1.3.1.tgz", - "integrity": "sha1-JoI+OZMAOIyir/8Rz6ioawAz+uA=", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.7", - "execa": "^1.0.0", - "find-up": "^3.0.0", - "get-stdin": "^6.0.0", - "is-ci": "^2.0.0", - "pkg-dir": "^3.0.0", - "please-upgrade-node": "^3.1.1", - "read-pkg": "^4.0.1", - "run-node": "^1.0.0", - "slash": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz", - "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz", - "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1579333981154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz", - "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", - "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1569841504754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-1.0.0.tgz", - "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", - "dev": true, - "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", - "dev": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-3.3.0.tgz?cache=0&sync_timestamp=1583819607980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-3.3.0.tgz", - "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", - "dev": true, - "optional": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz", - "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz", - "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", - "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-absolute/download/is-absolute-1.0.0.tgz", - "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "loader-utils": "^1.1.0" } }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", - "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz?cache=0&sync_timestamp=1603830155677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", "dev": true }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", "dev": true }, - "is-binary-path": { + "get-intrinsic": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz", - "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=" - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz", - "integrity": "sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs=", - "dev": true - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", - "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", - "dev": true, - "requires": { - "ci-info": "^1.5.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", - "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.0.1.tgz?cache=0&sync_timestamp=1604120586779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.0.1.tgz", + "integrity": "sha1-lKl2j8vdBZWhySc6rPTInQdWMb4=", "dev": true, "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz?cache=0&sync_timestamp=1581061044831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-finite%2Fdownload%2Fis-finite-1.1.0.tgz", - "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/is-lower-case/download/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "dev": true, - "requires": { - "lower-case": "^1.1.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-6.0.0.tgz", + "integrity": "sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs=", "dev": true }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-observable/download/is-observable-1.1.0.tgz", - "integrity": "sha1-s+mGyPRN6VCGfKtUA/WjRlAFl14=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", "dev": true, "requires": { - "symbol-observable": "^1.1.0" + "pump": "^3.0.0" } }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", - "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "is-path-inside": "^2.1.0" + "assert-plus": "^1.0.0" } }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", "dev": true, "requires": { - "path-is-inside": "^1.0.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", "dev": true, "requires": { - "isobject": "^3.0.1" + "is-glob": "^4.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1607413619483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", "dev": true }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", - "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", "dev": true, "requires": { - "has": "^1.0.3" + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "good-listener": { + "version": "1.2.2", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz?cache=0&sync_timestamp=1588086876757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz", + "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=", "dev": true }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-relative/download/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz?cache=0&sync_timestamp=1605523115814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", "dev": true, "requires": { - "is-unc-path": "^1.0.0" + "duplexer": "^0.1.1", + "pify": "^4.0.1" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", "dev": true }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", - "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", "dev": true, "requires": { - "html-comment-regex": "^1.1.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" } }, - "is-symbol": { + "has": { "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296409833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", - "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "function-bind": "^1.1.1" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "has-ansi": { + "version": "2.0.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", "dev": true }, - "is-unc-path": { + "has-value": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-unc-path/download/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "unc-path-regex": "^0.1.2" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/is-upper-case/download/is-upper-case-1.1.2.tgz?cache=0&sync_timestamp=1575601779106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-upper-case%2Fdownload%2Fis-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "upper-case": "^1.1.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-whitespace": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz", - "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "dev": true + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + } + } }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz?cache=0&sync_timestamp=1569219566107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz", + "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.3.tgz?cache=0&sync_timestamp=1578829407263&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisbinaryfile%2Fdownload%2Fisbinaryfile-3.0.3.tgz", - "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", "dev": true, "requires": { - "buffer-alloc": "^1.2.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "highlight.js": { + "version": "10.4.1", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.4.1.tgz", + "integrity": "sha1-1I+89KmXHENhs/lfMCdHr+GdutA=", "dev": true }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.3.7.tgz", - "integrity": "sha1-qGx3DSsD4R4/d4zXrt2C0nIgkqo=", - "dev": true, - "requires": { - "async": "^2.1.4", - "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.1", - "istanbul-lib-hook": "^1.2.2", - "istanbul-lib-instrument": "^1.10.2", - "istanbul-lib-report": "^1.1.5", - "istanbul-lib-source-maps": "^1.2.6", - "istanbul-reports": "^1.5.1", - "js-yaml": "^3.7.0", - "mkdirp": "^0.5.1", - "once": "^1.4.0" + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz?cache=0&sync_timestamp=1577062400885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=", + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", "dev": true }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha1-vGvwfxKmQfvxyFOR0Nqo8K6mv4Y=", - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", + "dev": true }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.2.tgz?cache=0&sync_timestamp=1580741110293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-instrument%2Fdownload%2Fistanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha1-H1XtEKw8R/K93dUweTUSZ1TQqco=", + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.5.tgz?cache=0&sync_timestamp=1577062405578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-report%2Fdownload%2Fistanbul-lib-report-1.1.5.tgz", - "integrity": "sha1-8qZX/GKC+WFwqvKB6zCkWPf0Fww=", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true }, - "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.6.tgz?cache=0&sync_timestamp=1577062405633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-source-maps%2Fdownload%2Fistanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha1-N7n/ZhWA+PyhEjJ1LuQuCMZnXY8=", - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - } + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true }, - "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.5.1.tgz", - "integrity": "sha1-l+Tb87UV6MSEyuoV1lJO69P/Tho=", - "dev": true, - "requires": { - "handlebars": "^4.0.3" - } + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true }, - "javascript-stringify": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-1.6.0.tgz?cache=0&sync_timestamp=1572948916758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-1.6.0.tgz", - "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=", + "html-entities": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.3.tgz?cache=0&sync_timestamp=1607916471106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.3.tgz", + "integrity": "sha1-PcpjikPufeMW/CMGc5hJEVKtRzY=", "dev": true }, - "jest": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest/download/jest-23.6.0.tgz", - "integrity": "sha1-rVg16SPr9uGeeh11KaQy7f7ngT0=", + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", "dev": true, "requires": { - "import-local": "^1.0.0", - "jest-cli": "^23.6.0" + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1606867359182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "pump": "^3.0.0" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1607933281807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", + "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", "dev": true }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867304538&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "jest-cli": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-cli/download/jest-cli-23.6.0.tgz?cache=0&sync_timestamp=1579655155387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-cli%2Fdownload%2Fjest-cli-23.6.0.tgz", - "integrity": "sha1-YauRd0Qzj0Q+8rqigt3/3WWKXaQ=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "import-local": "^1.0.0", - "is-ci": "^1.0.10", - "istanbul-api": "^1.3.1", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-instrument": "^1.10.1", - "istanbul-lib-source-maps": "^1.2.4", - "jest-changed-files": "^23.4.2", - "jest-config": "^23.6.0", - "jest-environment-jsdom": "^23.4.0", - "jest-get-type": "^22.1.0", - "jest-haste-map": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-regex-util": "^23.3.0", - "jest-resolve-dependencies": "^23.6.0", - "jest-runner": "^23.6.0", - "jest-runtime": "^23.6.0", - "jest-snapshot": "^23.6.0", - "jest-util": "^23.4.0", - "jest-validate": "^23.6.0", - "jest-watcher": "^23.4.0", - "jest-worker": "^23.2.0", - "micromatch": "^2.3.11", - "node-notifier": "^5.2.1", - "prompts": "^0.1.9", - "realpath-native": "^1.0.0", - "rimraf": "^2.5.4", - "slash": "^1.0.0", - "string-length": "^2.0.0", - "strip-ansi": "^4.0.0", - "which": "^1.2.12", - "yargs": "^11.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "lower-case": "^1.1.1" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "normalize-path": { + "param-case": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "yargs": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-11.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-11.1.1.tgz", - "integrity": "sha1-UFLv40RqTfXtZpyZWIbMDxNwJ2Y=", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "no-case": "^2.2.0" } } } }, - "jest-changed-files": { - "version": "23.4.2", - "resolved": "https://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-23.4.2.tgz", - "integrity": "sha1-Hu1og3DNXuuv5K6T00uztklo/oM=", - "dev": true, - "requires": { - "throat": "^4.0.0" - } + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz", + "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", + "dev": true }, - "jest-config": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-config/download/jest-config-23.6.0.tgz?cache=0&sync_timestamp=1579655052078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-config%2Fdownload%2Fjest-config-23.6.0.tgz", - "integrity": "sha1-+CVGqQreLYxwJvv2rFIH/CL46x0=", + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1613744691795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { - "babel-core": "^6.0.0", - "babel-jest": "^23.6.0", - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^23.4.0", - "jest-environment-node": "^23.4.0", - "jest-get-type": "^22.1.0", - "jest-jasmine2": "^23.6.0", - "jest-regex-util": "^23.3.0", - "jest-resolve": "^23.6.0", - "jest-util": "^23.4.0", - "jest-validate": "^23.6.0", - "micromatch": "^2.3.11", - "pretty-format": "^23.6.0" + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", "dev": true }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159858516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", "dev": true, "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1607394302039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1602898797807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true } } }, - "jest-diff": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-diff/download/jest-diff-23.6.0.tgz?cache=0&sync_timestamp=1579655156028&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-diff%2Fdownload%2Fjest-diff-23.6.0.tgz", - "integrity": "sha1-FQDz8W6FC7PXEjNAgIm+CZ9hDH0=", + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "dev": true, "requires": { - "chalk": "^2.0.1", - "diff": "^3.2.0", - "jest-get-type": "^22.1.0", - "pretty-format": "^23.6.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, - "jest-docblock": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/jest-docblock/download/jest-docblock-23.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-docblock%2Fdownload%2Fjest-docblock-23.2.0.tgz", - "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz?cache=0&sync_timestamp=1589778321455&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz", + "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", "dev": true, "requires": { - "detect-newline": "^2.1.0" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "jest-each": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-each/download/jest-each-23.6.0.tgz", - "integrity": "sha1-ugw6gqgFQ4cBYTnHM6BSQtPXFXU=", + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", "dev": true, "requires": { - "chalk": "^2.0.1", - "pretty-format": "^23.6.0" + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" } }, - "jest-environment-jsdom": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-23.4.0.tgz?cache=0&sync_timestamp=1579655041281&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-environment-jsdom%2Fdownload%2Fjest-environment-jsdom-23.4.0.tgz", - "integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868613104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "jest-mock": "^23.2.0", - "jest-util": "^23.4.0", - "jsdom": "^11.5.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "jest-environment-node": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-23.4.0.tgz", - "integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=", + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "dev": true, "requires": { - "jest-mock": "^23.2.0", - "jest-util": "^23.4.0" + "safer-buffer": ">= 2.1.2 < 3" } }, - "jest-get-type": { - "version": "22.4.3", - "resolved": "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-22.4.3.tgz", - "integrity": "sha1-46hQTYR5NC3UQgI2syKGnxiQDOQ=", + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", "dev": true }, - "jest-haste-map": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-23.6.0.tgz?cache=0&sync_timestamp=1579654873769&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-23.6.0.tgz", - "integrity": "sha1-Lj65l4FMppbWKv2z8lKfW7yTXhY=", + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1605801267950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz", + "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", "dev": true, "requires": { - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.11", - "invariant": "^2.2.4", - "jest-docblock": "^23.2.0", - "jest-serializer": "^23.0.1", - "jest-worker": "^23.2.0", - "micromatch": "^2.3.11", - "sane": "^2.0.0" + "postcss": "^7.0.14" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "has-flag": "^3.0.0" } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838209136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1604255567620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-html-entry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/import-html-entry/-/import-html-entry-1.11.1.tgz", + "integrity": "sha512-O7mCUTwKdYU49/LH6nq1adWPnUlZQpKeGWIEcDq07KTcqP/v0jBLEIVc0oE0Mtlw3CEe0eeKGMyhl6LwfXCV7A==", + "requires": { + "@babel/runtime": "^7.7.2" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "locate-path": "^3.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "p-limit": "^2.0.0" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "find-up": "^3.0.0" } } } }, - "jest-jasmine2": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-23.6.0.tgz", - "integrity": "sha1-hA6Tf4SKbIY43yQ2CrhpzHGFkuA=", - "dev": true, - "requires": { - "babel-traverse": "^6.0.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^23.6.0", - "is-generator-fn": "^1.0.0", - "jest-diff": "^23.6.0", - "jest-each": "^23.6.0", - "jest-matcher-utils": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-snapshot": "^23.6.0", - "jest-util": "^23.4.0", - "pretty-format": "^23.6.0" - } + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true }, - "jest-leak-detector": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-23.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-leak-detector%2Fdownload%2Fjest-leak-detector-23.6.0.tgz", - "integrity": "sha1-5CMP1CzzgaGhlxI3rVaJfefhcd4=", - "dev": true, - "requires": { - "pretty-format": "^23.6.0" - } + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "dev": true }, - "jest-matcher-utils": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-23.6.0.tgz?cache=0&sync_timestamp=1579655064075&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-matcher-utils%2Fdownload%2Fjest-matcher-utils-23.6.0.tgz", - "integrity": "sha1-cmvOoMUpQmGnQXr7baMYa0uMrIA=", + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^22.1.0", - "pretty-format": "^23.6.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "jest-message-util": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-23.4.0.tgz?cache=0&sync_timestamp=1579655040577&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-message-util%2Fdownload%2Fjest-message-util-23.4.0.tgz", - "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0-beta.35", - "chalk": "^2.0.1", - "micromatch": "^2.3.11", - "slash": "^1.0.0", - "stack-utils": "^1.0.1" + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "color-convert": "^2.0.1" } }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-cursor%2Fdownload%2Fcli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "restore-cursor": "^3.1.0" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "color-name": "~1.1.4" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", "dev": true }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "mimic-fn": "^2.1.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1605885653768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "execa": "^1.0.0", + "ip-regex": "^2.1.0" } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true } } }, - "jest-mock": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/jest-mock/download/jest-mock-23.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-mock%2Fdownload%2Fjest-mock-23.2.0.tgz", - "integrity": "sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=", + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz?cache=0&sync_timestamp=1601334312409&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", "dev": true }, - "jest-regex-util": { - "version": "23.3.0", - "resolved": "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-23.3.0.tgz?cache=0&sync_timestamp=1579654911019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-regex-util%2Fdownload%2Fjest-regex-util-23.3.0.tgz", - "integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=", + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", "dev": true }, - "jest-resolve": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-resolve/download/jest-resolve-23.6.0.tgz?cache=0&sync_timestamp=1579655061407&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-resolve%2Fdownload%2Fjest-resolve-23.6.0.tgz", - "integrity": "sha1-zx0aJM5+57I9ZhwzuiFQ866/oK4=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", - "realpath-native": "^1.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "jest-resolve-dependencies": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-23.6.0.tgz", - "integrity": "sha1-tFJq8kyFQNmj+rECwVCBz1Cbcj0=", + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz?cache=0&sync_timestamp=1607117383813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.0.tgz", + "integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=", "dev": true, "requires": { - "jest-regex-util": "^23.3.0", - "jest-snapshot": "^23.6.0" + "call-bind": "^1.0.0" } }, - "jest-runner": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-runner/download/jest-runner-23.6.0.tgz", - "integrity": "sha1-OJS9IZ/8Pzy5TcSKQXCi5vI6Wjg=", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { - "exit": "^0.1.2", - "graceful-fs": "^4.1.11", - "jest-config": "^23.6.0", - "jest-docblock": "^23.2.0", - "jest-haste-map": "^23.6.0", - "jest-jasmine2": "^23.6.0", - "jest-leak-detector": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-runtime": "^23.6.0", - "jest-util": "^23.4.0", - "jest-worker": "^23.2.0", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" + "binary-extensions": "^2.0.0" } }, - "jest-runtime": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-runtime/download/jest-runtime-23.6.0.tgz", - "integrity": "sha1-BZ5YyKtEWRfNDg2ErCumjejyMII=", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429388528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.2.tgz", + "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", + "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", "dev": true, "requires": { - "babel-core": "^6.0.0", - "babel-plugin-istanbul": "^4.1.6", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "exit": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.11", - "jest-config": "^23.6.0", - "jest-haste-map": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-regex-util": "^23.3.0", - "jest-resolve": "^23.6.0", - "jest-snapshot": "^23.6.0", - "jest-util": "^23.4.0", - "jest-validate": "^23.6.0", - "micromatch": "^2.3.11", - "realpath-native": "^1.0.0", - "slash": "^1.0.0", - "strip-bom": "3.0.0", - "write-file-atomic": "^2.1.0", - "yargs": "^11.0.0" + "ci-info": "^1.5.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz?cache=0&sync_timestamp=1606411666495&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.2.0.tgz", + "integrity": "sha1-lwN+89UiJNhRY/VZeytj2a/tmBo=", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "pump": "^3.0.0" + "is-buffer": "^1.1.5" } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz", + "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607125693555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", + "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -9942,272 +7530,187 @@ "requires": { "is-buffer": "^1.1.5" } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "yargs": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-11.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-11.1.1.tgz", - "integrity": "sha1-UFLv40RqTfXtZpyZWIbMDxNwJ2Y=", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } } } }, - "jest-serializer": { - "version": "23.0.1", - "resolved": "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-23.0.1.tgz", - "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=", + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", "dev": true }, - "jest-serializer-vue": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/jest-serializer-vue/download/jest-serializer-vue-2.0.2.tgz", - "integrity": "sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM=", + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", "dev": true, "requires": { - "pretty": "2.0.0" + "is-path-inside": "^2.1.0" } }, - "jest-snapshot": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-23.6.0.tgz?cache=0&sync_timestamp=1579654884339&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-snapshot%2Fdownload%2Fjest-snapshot-23.6.0.tgz", - "integrity": "sha1-+cJiXRsYrNoB7C0rgmwM5YpaoXo=", + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", "dev": true, "requires": { - "babel-types": "^6.0.0", - "chalk": "^2.0.1", - "jest-diff": "^23.6.0", - "jest-matcher-utils": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-resolve": "^23.6.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^23.6.0", - "semver": "^5.5.0" + "path-is-inside": "^1.0.2" } }, - "jest-transform-stub": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/jest-transform-stub/download/jest-transform-stub-2.0.0.tgz", - "integrity": "sha1-GQGLCFH3VolyFHpdYAdLVfAiWn0=", + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, - "jest-util": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-util/download/jest-util-23.4.0.tgz", - "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=", + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1600349132080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { - "callsites": "^2.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.11", - "is-ci": "^1.0.10", - "jest-message-util": "^23.4.0", - "mkdirp": "^0.5.1", - "slash": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } + "isobject": "^3.0.1" } }, - "jest-validate": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-validate/download/jest-validate-23.6.0.tgz?cache=0&sync_timestamp=1579654875817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-validate%2Fdownload%2Fjest-validate-23.6.0.tgz", - "integrity": "sha1-NnYfmdHtM/zUJbTkxVldYrZZdHQ=", + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz", + "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", "dev": true, "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^22.1.0", - "leven": "^2.1.0", - "pretty-format": "^23.6.0" + "has-symbols": "^1.0.1" } }, - "jest-watcher": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-watcher/download/jest-watcher-23.4.0.tgz", - "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=", + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "string-length": "^2.0.0" + "html-comment-regex": "^1.1.0" } }, - "jest-worker": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-23.2.0.tgz?cache=0&sync_timestamp=1579655017974&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-23.2.0.tgz", - "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296409833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", "dev": true, "requires": { - "merge-stream": "^1.0.1" + "has-symbols": "^1.0.1" } }, - "jquery": { - "version": "3.4.1", - "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-3.4.1.tgz", - "integrity": "sha1-cU8fjZ3eS9+lV2S6N+8hRjDYDvI=" + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "dev": true }, - "js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.5.2.tgz", - "integrity": "sha1-MTtidN2nGPcU0AszMLuubjjpAgk=", + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "js-beautify": { - "version": "1.10.3", - "resolved": "https://registry.npm.taobao.org/js-beautify/download/js-beautify-1.10.3.tgz", - "integrity": "sha1-xz+hDPadPfpS2O1iTyPGTApqlME=", + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "javascript-stringify": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz?cache=0&sync_timestamp=1572948916758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz", + "integrity": "sha1-bvNYA1MQ411mfGde1j0+t8GqGeU=", + "dev": true + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz", + "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=", "dev": true, "requires": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "mkdirp": "~0.5.1", - "nopt": "~4.0.1" + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "js-cookie": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.0.tgz", - "integrity": "sha1-Gywnmm7s44ChIWi5JIUmWzWx7/s=" - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", - "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", + "js-base64": { + "version": "2.6.4", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=", "dev": true }, "js-message": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz", - "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz?cache=0&sync_timestamp=1605132733712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-message%2Fdownload%2Fjs-message-1.0.7.tgz", + "integrity": "sha1-+93QU8ekcCGHG7iyyVOXzBfCDkc=", "dev": true }, "js-queue": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz", - "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.2.tgz", + "integrity": "sha1-C+WQM4+QOzbHPTPDGIOoIUEs1II=", "dev": true, "requires": { - "easy-stack": "^1.0.0" + "easy-stack": "^1.0.1" } }, "js-tokens": { @@ -10217,9 +7720,9 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "version": "3.14.1", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1607370811335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { "argparse": "^1.0.7", @@ -10232,43 +7735,9 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npm.taobao.org/jsdom/download/jsdom-11.12.0.tgz", - "integrity": "sha1-GoDUDd03ih3lllbp5txaO6hle8g=", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - } - }, "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891198638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", "dev": true }, @@ -10278,6 +7747,12 @@ "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1567740732347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz", @@ -10286,8 +7761,9 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -10308,29 +7784,23 @@ "dev": true }, "json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", + "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161917513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { "graceful-fs": "^4.1.6" } }, - "jsonlint": { - "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/jsonlint/download/jsonlint-1.6.3.tgz", - "integrity": "sha1-y14x78C3gpHQ2GL77wWQCt8hKYg=", - "requires": { - "JSV": "^4.0.x", - "nomnom": "^1.5.x" - } - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", @@ -10339,19 +7809,8 @@ "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/jszip/download/jszip-3.2.1.tgz", - "integrity": "sha1-xdMt9ydAQigrFX77FuUitDQ14Bo=", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "json-schema": "0.2.3", + "verror": "1.10.0" } }, "killable": { @@ -10366,12 +7825,6 @@ "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true }, - "kleur": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/kleur/download/kleur-2.0.2.tgz", - "integrity": "sha1-twT0lE2V4lXQOPDLBfuKYCxVowA=", - "dev": true - }, "launch-editor": { "version": "2.2.1", "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", @@ -10391,26 +7844,6 @@ "launch-editor": "^2.2.1" } }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz", - "integrity": "sha1-W4o6d2Xf4AEmHd6RVYnngvjJTR4=", - "dev": true - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, "levn": { "version": "0.3.0", "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", @@ -10421,316 +7854,20 @@ "type-check": "~0.3.2" } }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz", - "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", - "requires": { - "immediate": "~3.0.5" - } - }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/liftoff/download/liftoff-2.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fliftoff%2Fdownload%2Fliftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/linkify-it/download/linkify-it-2.2.0.tgz", - "integrity": "sha1-47VGl+eL+RXHCjis14/QngBYsc8=", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lint-staged": { - "version": "8.1.5", - "resolved": "https://registry.npm.taobao.org/lint-staged/download/lint-staged-8.1.5.tgz", - "integrity": "sha1-NyR2/hpYuINOtWLtTJkSa9YL3Xk=", - "dev": true, - "requires": { - "chalk": "^2.3.1", - "commander": "^2.14.1", - "cosmiconfig": "^5.0.2", - "debug": "^3.1.0", - "dedent": "^0.7.0", - "del": "^3.0.0", - "execa": "^1.0.0", - "find-parent-dir": "^0.3.0", - "g-status": "^2.0.2", - "is-glob": "^4.0.0", - "is-windows": "^1.0.2", - "listr": "^0.14.2", - "listr-update-renderer": "^0.5.0", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "micromatch": "^3.1.8", - "npm-which": "^3.0.1", - "p-map": "^1.1.1", - "path-is-inside": "^1.0.2", - "pify": "^3.0.0", - "please-upgrade-node": "^3.0.2", - "staged-git-files": "1.1.2", - "string-argv": "^0.0.2", - "stringify-object": "^3.2.2", - "yup": "^0.26.10" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/del/download/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", - "dev": true - } - } - }, - "listr": { - "version": "0.14.3", - "resolved": "https://registry.npm.taobao.org/listr/download/listr-0.14.3.tgz", - "integrity": "sha1-L+qQlgTkNL5GTFC926DUlpKPpYY=", - "dev": true, - "requires": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - } - }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.5.0.tgz", - "integrity": "sha1-Tqg2hUinuK7LfgbYyVy0WuLt5qI=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz?cache=0&sync_timestamp=1581865437156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha1-8RMhZ1NepMEmEQK58o2sfLoeA9s=", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, "loader-fs-cache": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.2.tgz", - "integrity": "sha1-VM7fa3J+F3n9jwEgXwX26IcG8IY=", + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz?cache=0&sync_timestamp=1584820647539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-fs-cache%2Fdownload%2Floader-fs-cache-1.0.3.tgz", + "integrity": "sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k=", "dev": true, "requires": { "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" }, "dependencies": { "find-cache-dir": { @@ -10746,7 +7883,7 @@ }, "find-up": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { @@ -10776,7 +7913,7 @@ }, "loader-runner": { "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1574712098491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1601450780890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", "dev": true }, @@ -10784,6 +7921,7 @@ "version": "1.4.0", "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -10792,32 +7930,33 @@ "dependencies": { "json5": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, "requires": { "minimist": "^1.2.0" } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", - "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", + "version": "4.17.20", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336053864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", + "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, "lodash.defaultsdeep": { @@ -10826,12 +7965,6 @@ "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", "dev": true }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npm.taobao.org/lodash.get/download/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, "lodash.kebabcase": { "version": "4.1.1", "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", @@ -10850,18 +7983,6 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npm.taobao.org/lodash.padend/download/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, "lodash.transform": { "version": "4.6.0", "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", @@ -10872,132 +7993,56 @@ "version": "4.5.0", "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/log-update/download/log-update-2.3.0.tgz", - "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - } - } - } - }, - "loglevel": { - "version": "1.6.7", - "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.7.tgz", - "integrity": "sha1-s+A0IzGIxouIn1uGJBUwb1ZeLFY=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floud-rejection%2Fdownload%2Floud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/lower-case-first/download/lower-case-first-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case-first%2Fdownload%2Flower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "dev": true, - "requires": { - "lower-case": "^1.1.2" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } + "dev": true }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz?cache=0&sync_timestamp=1581538411621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-1.3.0.tgz", - "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", "dev": true, "requires": { - "pify": "^3.0.0" + "chalk": "^2.0.1" } }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/make-iterator/download/make-iterator-1.0.1.tgz", - "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.1.tgz?cache=0&sync_timestamp=1606312255832&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.1.tgz", + "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", "dev": true, "requires": { - "kind-of": "^6.0.2" + "yallist": "^3.0.2" } }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { - "tmpl": "1.0.x" + "sourcemap-codec": "^1.4.4" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", - "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", "dev": true, "requires": { - "p-defer": "^1.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, "map-cache": { @@ -11006,12 +8051,6 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", @@ -11021,33 +8060,6 @@ "object-visit": "^1.0.0" } }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npm.taobao.org/markdown-it/download/markdown-it-8.4.2.tgz", - "integrity": "sha1-OG+YmY3BWjdyKqdyIIT0Agvdm1Q=", - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "matcher": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/matcher/download/matcher-1.1.1.tgz?cache=0&sync_timestamp=1574143092340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatcher%2Fdownload%2Fmatcher-1.1.1.tgz", - "integrity": "sha1-UdgwHhOPhAmCszixFrsMCa9iwcI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.4" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz", - "integrity": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=", - "dev": true - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", @@ -11060,30 +8072,17 @@ } }, "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-1.1.4.tgz", - "integrity": "sha1-ULXU/8RXUnZXPE7tuHgIEqhBnwE=", + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", "dev": true }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/mdurl/download/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", @@ -11094,38 +8093,6 @@ "readable-stream": "^2.0.1" } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "merge": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/merge/download/merge-1.2.1.tgz", - "integrity": "sha1-OL6/gMMiCopIe2/Ps5QbsRcgwUU=", - "dev": true - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", @@ -11134,7 +8101,7 @@ }, "merge-options": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-options/download/merge-options-1.0.1.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/merge-options/-/merge-options-1.0.1.tgz", "integrity": "sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=", "dev": true, "requires": { @@ -11159,18 +8126,15 @@ } }, "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true }, "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.3.0.tgz", - "integrity": "sha1-WzZu6DsvFYLEj4fkfPGpNSEDyoE=", + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", "dev": true }, "methods": { @@ -11179,30 +8143,6 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, - "microargs": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/microargs/download/microargs-1.1.2.tgz", - "integrity": "sha1-cl++3PEg2xIxfT7aU00/Ga+GdzM=", - "dev": true - }, - "microcli": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/microcli/download/microcli-1.3.3.tgz", - "integrity": "sha1-J/GzMLD5Nb5jFPKYlyEFoyX3Mec=", - "dev": true, - "requires": { - "lodash": "4.17.11", - "microargs": "1.1.2" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.11.tgz", - "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=", - "dev": true - } - } - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", @@ -11232,48 +8172,70 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.4.tgz", - "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", + "version": "2.4.7", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.7.tgz?cache=0&sync_timestamp=1608084083331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.7.tgz", + "integrity": "sha1-lirtm+DtGckf19wuzl1/TompDXQ=", "dev": true }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281193492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz", - "integrity": "sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg=", + "version": "1.44.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1600831175828&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz", + "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=", "dev": true }, "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282566609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz", - "integrity": "sha1-nJIfwJt+FJpl39wNpNIJlyALCgY=", + "version": "2.1.27", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz", + "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=", "dev": true, "requires": { - "mime-db": "1.43.0" + "mime-db": "1.44.0" } }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true }, "mini-css-extract-plugin": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.5.0.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.5.0.tgz", - "integrity": "sha1-rABZsCuWklFaY3EVsMyf7To1x7A=", + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1607647582104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=", "dev": true, "requires": { "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", "schema-utils": "^1.0.0", "webpack-sources": "^1.1.0" }, "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -11306,641 +8268,309 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mitt": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/mitt/download/mitt-1.1.2.tgz", - "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", "dev": true }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "yallist": "^4.0.0" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true } } }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "mockjs": { - "version": "1.0.1-beta3", - "resolved": "https://registry.npm.taobao.org/mockjs/download/mockjs-1.0.1-beta3.tgz", - "integrity": "sha1-0jTzwnJWOXVk8slVFC6JGQlTcgk=", - "dev": true, - "requires": { - "commander": "*" - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.24.0.tgz", - "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", - "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", "dev": true, "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" + "minipass": "^3.0.0" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz", - "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "minipass": "^3.0.0" } }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.1.tgz", - "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576721505371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz?cache=0&sync_timestamp=1595998531778&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", "dev": true, "requires": { - "lower-case": "^1.1.1" + "minipass": "^3.0.0" } }, - "node-cache": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/node-cache/download/node-cache-4.2.1.tgz?cache=0&sync_timestamp=1575815899867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-cache%2Fdownload%2Fnode-cache-4.2.1.tgz", - "integrity": "sha1-79hHTe5O3sQTjN3tWA9VFlAPczQ=", + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { - "clone": "2.x", - "lodash": "^4.17.15" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz?cache=0&sync_timestamp=1569524669712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz", - "integrity": "sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk=", - "dev": true + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz", - "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=", + "mitt": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", + "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", "dev": true, "requires": { - "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" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { - "abbrev": "1" + "is-plain-object": "^2.0.4" } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true } } }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-ipc": { - "version": "9.1.1", - "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz", - "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "dev": true, "requires": { - "event-pubsub": "4.3.0", - "js-message": "1.0.5", - "js-queue": "2.0.0" + "minimist": "^1.2.5" } }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", - "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "mockjs": { + "version": "1.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha1-5qDDeOkZBtuv8gkRzAJzs8fXWwY=", "dev": true, "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "commander": "*" } }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npm.taobao.org/node-notifier/download/node-notifier-5.4.3.tgz", - "integrity": "sha1-y3La+UyTkECY4oucWQ/YZuRkvVA=", + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, - "node-plop": { - "version": "0.18.0", - "resolved": "https://registry.npm.taobao.org/node-plop/download/node-plop-0.18.0.tgz", - "integrity": "sha1-tEZHiY7p44fUbmkfE6AfrFO/Sf4=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1585239065356&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", + "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", "dev": true, "requires": { - "change-case": "^3.0.1", - "co": "^4.6.0", - "core-js": "^2.4.1", - "del": "^3.0.0", - "globby": "^8.0.0", - "handlebars": "^4.1.0", - "inquirer": "^6.0.0", - "isbinaryfile": "^3.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.0", - "resolve": "^1.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1562888139305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "dev": true - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/del/download/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.0.0.tgz", - "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-8.0.2.tgz", - "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz?cache=0&sync_timestamp=1583819607980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-6.5.2.tgz", - "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, - "node-releases": { - "version": "1.1.51", - "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.51.tgz?cache=0&sync_timestamp=1583684592405&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.51.tgz", - "integrity": "sha1-cNDgVCITQ9KWYAa/vU2YYizAC9A=", + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", "dev": true, "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, - "node-sass": { - "version": "4.13.1", - "resolved": "https://registry.npm.taobao.org/node-sass/download/node-sass-4.13.1.tgz", - "integrity": "sha1-nbVolpa7LuwsMrmL/qTHoumS0KM=", + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591931869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", + "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", "dev": true, - "requires": { - "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.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "optional": true + }, + "nanoid": { + "version": "3.1.23", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, - "nomnom": { - "version": "1.8.1", - "resolved": "https://registry.npm.taobao.org/nomnom/download/nomnom-1.8.1.tgz", - "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz", + "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", + "dev": true + }, + "node-ipc": { + "version": "9.1.3", + "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.3.tgz", + "integrity": "sha1-HfPwadEDGErpEn+ohdva6lakQ28=", + "dev": true, "requires": { - "chalk": "~0.4.0", - "underscore": "~1.6.0" - }, - "dependencies": { - "chalk": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-0.4.0.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - } - } + "event-pubsub": "4.3.0", + "js-message": "1.0.7", + "js-queue": "2.0.2" } }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-4.0.3.tgz", - "integrity": "sha1-o3XK2dAv2SEnjZVMIlTVqlfhXkg=", + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", "dev": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, + "node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.67.tgz?cache=0&sync_timestamp=1605581282886&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.67.tgz", + "integrity": "sha1-KOv8zNC6pqrY6NTY/ky8Sa4jnBI=", + "dev": true + }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547447569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "dev": true, "requires": { @@ -11953,7 +8583,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true }, "normalize-range": { "version": "0.1.2", @@ -11963,58 +8594,27 @@ }, "normalize-url": { "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1580491266117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz", "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", "dev": true }, "normalize-wheel": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" }, "normalize.css": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/normalize.css/download/normalize.css-7.0.0.tgz", - "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=" - }, - "npm-path": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/npm-path/download/npm-path-2.0.4.tgz", - "integrity": "sha1-xkE0el/51qCeTZvOVYDE9QUnjmQ=", - "dev": true, - "requires": { - "which": "^1.2.10" - } + "version": "8.0.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha1-m5iiCHOLnMJjTKrLxC0THJdIe/M=" }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "npm-which": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz", - "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", - "dev": true, - "requires": { - "commander": "^2.9.0", - "npm-path": "^2.0.2", - "which": "^1.2.10" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "path-key": "^2.0.0" } }, "nprogress": { @@ -12024,7 +8624,7 @@ }, "nth-check": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1606860944410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz", "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", "dev": true, "requires": { @@ -12037,17 +8637,6 @@ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz?cache=0&sync_timestamp=1581061562193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz", - "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc=", - "dev": true - }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", @@ -12080,12 +8669,6 @@ "is-descriptor": "^0.1.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -12104,16 +8687,20 @@ "dev": true }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz", - "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.9.0.tgz?cache=0&sync_timestamp=1606804265193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.9.0.tgz", + "integrity": "sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=", "dev": true }, "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.0.2.tgz?cache=0&sync_timestamp=1576479714417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.0.2.tgz", - "integrity": "sha1-a4DrhP5FFJj2UAeYLwNaW0Re3sQ=", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.4.tgz", + "integrity": "sha1-Y9bIPACkP0y8lDTrl1fIpbhWUGg=", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } }, "object-keys": { "version": "1.1.1", @@ -12131,79 +8718,26 @@ } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", - "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/object.defaults/download/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115104654&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", + "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", "dev": true, "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha1-Df2o0QgHTZxWPoBJDIg7ZmEJFUQ=", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/object.map/download/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "es-abstract": "^1.18.0-next.1" } }, "object.pick": { @@ -12216,14 +8750,14 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", - "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.2.tgz?cache=0&sync_timestamp=1606429851964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.2.tgz", + "integrity": "sha1-eiAV4G/LD1Rr1lJIbOhYOkcxxzE=", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.1", "has": "^1.0.3" } }, @@ -12233,12 +8767,6 @@ "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", "dev": true }, - "omelette": { - "version": "0.4.5", - "resolved": "https://registry.npm.taobao.org/omelette/download/omelette-0.4.5.tgz", - "integrity": "sha1-8WvEd7fiY7WXlqZWYZZOR2LprnQ=", - "dev": true - }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", @@ -12274,7 +8802,7 @@ }, "open": { "version": "6.4.0", - "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1583734682914&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-6.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1601376181109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-6.4.0.tgz", "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", "dev": true, "requires": { @@ -12282,9 +8810,9 @@ } }, "opener": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz", - "integrity": "sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0=", + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz", + "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", "dev": true }, "opn": { @@ -12296,19 +8824,9 @@ "is-wsl": "^1.1.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, "optionator": { "version": "0.8.3", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966238288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz", "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", "dev": true, "requires": { @@ -12334,12 +8852,6 @@ "wcwidth": "^1.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", @@ -12366,76 +8878,44 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", - "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz?cache=0&sync_timestamp=1560955759606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz", - "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.2.0" } }, "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } }, "p-retry": { "version": "3.0.1", @@ -12447,14 +8927,16 @@ } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true }, "pako": { "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1580283988434&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", + "dev": true }, "parallel-transform": { "version": "1.2.0", @@ -12467,15 +8949,6 @@ "readable-stream": "^2.1.5" } }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz", @@ -12494,95 +8967,64 @@ } }, "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.5.tgz", - "integrity": "sha1-ADJxND2ljclMrOSU+u89IUfs6g4=", + "version": "5.1.6", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz", + "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", "dev": true, "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/parse-filepath/download/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.1.0.tgz", + "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=", "dev": true, "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "parse5": "^6.0.1" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-6.0.1.tgz", + "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=", "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } } } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz?cache=0&sync_timestamp=1573036762880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-4.0.0.tgz", - "integrity": "sha1-bXhlbj2o14tOwLkG98CO8d/j9gg=", - "dev": true - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", "dev": true }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pascal-case/download/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } + "particles.js": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/particles.js/download/particles.js-2.0.0.tgz", + "integrity": "sha1-IThsQyjWx/lngKIB6W7t/AnHNvY=", + "dev": true }, "pascalcase": { "version": "0.1.1", @@ -12592,18 +9034,9 @@ }, "path-browserify": { "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", - "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", - "dev": true - }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/path-case/download/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", + "dev": true }, "path-dirname": { "version": "1.0.2", @@ -12612,9 +9045,10 @@ "dev": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -12631,7 +9065,8 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441322626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "path-parse": { "version": "1.0.6", @@ -12639,25 +9074,11 @@ "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", "dev": true }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/path-root/download/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/path-root-regex/download/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-2.4.0.tgz", - "integrity": "sha1-Nc5/Mz1WFvHB4b/iZsOrouWy5wQ=" + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true }, "path-type": { "version": "3.0.0", @@ -12666,12 +9087,20 @@ "dev": true, "requires": { "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", - "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz", + "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -12687,10 +9116,16 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "dev": true + }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", "dev": true }, "pinkie": { @@ -12708,148 +9143,43 @@ "pinkie": "^2.0.0" } }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pirates/download/pirates-4.0.1.tgz", - "integrity": "sha1-ZDqSyviUVm+RsrmG0sZpUKji+4c=", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "plantuml-encoder": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/plantuml-encoder/download/plantuml-encoder-1.4.0.tgz", - "integrity": "sha1-eJkwLPeF3pVr8aFn4VQg/u5Zdfc=" - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/please-upgrade-node/download/please-upgrade-node-3.2.0.tgz?cache=0&sync_timestamp=1565266069139&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fplease-upgrade-node%2Fdownload%2Fplease-upgrade-node-3.2.0.tgz", - "integrity": "sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", "dev": true, "requires": { - "semver-compare": "^1.0.0" + "find-up": "^4.0.0" } }, - "plop": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/plop/download/plop-2.3.0.tgz", - "integrity": "sha1-6bPM+dj9vOB37nN3t1/MX1Ed9WI=", + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", "dev": true, "requires": { - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.0", - "node-plop": "~0.18.0", - "ora": "^3.0.0", - "v8flags": "^2.0.10" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "ts-pnp": "^1.1.6" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz", - "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", - "dev": true, - "optional": true - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz", - "integrity": "sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs=", - "dev": true - }, "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.25.tgz", - "integrity": "sha1-JU/TN/+6hp9LnTftwpgFnLTTXso=", + "version": "1.0.28", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz", + "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", "dev": true, "requires": { "async": "^2.6.2", "debug": "^3.1.1", - "mkdirp": "^0.5.1" + "mkdirp": "^0.5.5" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true } } }, @@ -12860,44 +9190,66 @@ "dev": true }, "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.27.tgz?cache=0&sync_timestamp=1581994853208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.27.tgz", - "integrity": "sha1-zGfNxrDao3UQW3xCSoVWc0X8VNk=", + "version": "8.3.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-8.3.0.tgz", + "integrity": "sha1-sacT9hcspCfj8F7xMD3otlaDMl8=", + "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + }, + "dependencies": { + "colorette": { + "version": "1.2.2", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=", + "dev": true + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1601732582224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", + "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz?cache=0&sync_timestamp=1582014198134&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.2.tgz", - "integrity": "sha1-UE780AjKAnMSBWiweSsWzc3oqsE=", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, "postcss-colormin": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1603212787349&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz", "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", "dev": true, "requires": { @@ -12908,17 +9260,43 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-convert-values": { "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1603212787465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", "dev": true, "requires": { @@ -12926,11 +9304,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -12941,15 +9345,71 @@ "dev": true, "requires": { "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-discard-duplicates": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1603212787804&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", "dev": true, "requires": { "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-discard-empty": { @@ -12959,6 +9419,34 @@ "dev": true, "requires": { "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-discard-overridden": { @@ -12968,12 +9456,40 @@ "dev": true, "requires": { "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz", - "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1601607668112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", + "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", "dev": true, "requires": { "cosmiconfig": "^5.0.0", @@ -12982,7 +9498,7 @@ }, "postcss-loader": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz?cache=0&sync_timestamp=1605790892391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-loader%2Fdownload%2Fpostcss-loader-3.0.0.tgz", "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", "dev": true, "requires": { @@ -12992,9 +9508,20 @@ "schema-utils": "^1.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -13002,12 +9529,27 @@ "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-merge-longhand": { "version": "4.0.11", - "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1603212783596&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", "dev": true, "requires": { @@ -13017,17 +9559,43 @@ "stylehacks": "^4.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-merge-rules": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1603212783716&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", "dev": true, "requires": { @@ -13039,9 +9607,20 @@ "vendors": "^1.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { @@ -13049,12 +9628,27 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-minify-font-values": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1603212783911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-minify-font-values-4.0.2.tgz", "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", "dev": true, "requires": { @@ -13062,17 +9656,43 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-minify-gradients": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1603212784003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", "dev": true, "requires": { @@ -13082,11 +9702,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13104,17 +9750,43 @@ "uniqs": "^2.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-minify-selectors": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1603212784204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", "dev": true, "requires": { @@ -13124,9 +9796,20 @@ "postcss-selector-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { @@ -13134,44 +9817,234 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.2.2.tgz", + "integrity": "sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==", + "dev": true, + "requires": { + "generic-names": "^2.0.1", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + }, + "dependencies": { + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&sync_timestamp=1602588238811&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587661752&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.2.tgz", - "integrity": "sha1-6KZWG+kUqvPAUodjd1JMqQ27eRU=", - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.16", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.0" - } - }, "postcss-modules-scope": { "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz?cache=0&sync_timestamp=1602593225142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.2.0.tgz", "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", + "dev": true, "requires": { "postcss": "^7.0.6", "postcss-selector-parser": "^6.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-modules-values": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz", "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", + "dev": true, "requires": { "icss-utils": "^4.0.0", "postcss": "^7.0.6" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-normalize-charset": { @@ -13181,6 +10054,34 @@ "dev": true, "requires": { "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-normalize-display-values": { @@ -13194,17 +10095,43 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-normalize-positions": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1603212712085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz", "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", "dev": true, "requires": { @@ -13214,11 +10141,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13234,11 +10187,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13253,11 +10232,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13272,11 +10277,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13291,11 +10322,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13311,11 +10368,37 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13329,17 +10412,43 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-ordered-values": { "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1603212785171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", "dev": true, "requires": { @@ -13348,26 +10457,80 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-prefix-selector": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/postcss-prefix-selector/download/postcss-prefix-selector-1.7.2.tgz", - "integrity": "sha1-Ot7tkDmFc0KY8Z2PXgtlf52Q1Dw=", + "version": "1.9.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss-prefix-selector/-/postcss-prefix-selector-1.9.0.tgz", + "integrity": "sha1-21SYArefn5H3QZyMH4bTHZdK/14=", "dev": true, "requires": { "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-reduce-initial": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1603212785269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz", "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", "dev": true, "requires": { @@ -13375,11 +10538,39 @@ "caniuse-api": "^3.0.0", "has": "^1.0.0", "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-reduce-transforms": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&sync_timestamp=1603212785466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-4.0.2.tgz", "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", "dev": true, "requires": { @@ -13389,22 +10580,50 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw=", + "version": "6.0.4", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.4.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.4.tgz", + "integrity": "sha1-VgdaE4CgRgTDiwY+p3Z6Epr1wrM=", + "dev": true, "requires": { "cssesc": "^3.0.0", "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" } }, "postcss-svgo": { @@ -13419,11 +10638,37 @@ "svgo": "^1.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -13436,16 +10681,45 @@ "alphanum-sort": "^1.0.0", "postcss": "^7.0.0", "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.0.3.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.0.3.tgz", - "integrity": "sha1-ZR/0WTqp7ajV0NZlk6JBeurrMl0=" + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true }, "posthtml": { "version": "0.9.2", - "resolved": "https://registry.npm.taobao.org/posthtml/download/posthtml-0.9.2.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/posthtml/-/posthtml-0.9.2.tgz", "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", "dev": true, "requires": { @@ -13455,7 +10729,7 @@ }, "posthtml-parser": { "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/posthtml-parser/download/posthtml-parser-0.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml-parser%2Fdownload%2Fposthtml-parser-0.2.1.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/posthtml-parser/-/posthtml-parser-0.2.1.tgz", "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", "dev": true, "requires": { @@ -13465,7 +10739,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { @@ -13475,23 +10749,23 @@ } }, "posthtml-rename-id": { - "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/posthtml-rename-id/download/posthtml-rename-id-1.0.11.tgz", - "integrity": "sha1-AigaHkSCqjyMMPeYz5qIjjLZJ1w=", + "version": "1.0.12", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz", + "integrity": "sha1-z39us3FGvxr6wx5o8YxswZrmFDM=", "dev": true, "requires": { "escape-string-regexp": "1.0.5" } }, "posthtml-render": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/posthtml-render/download/posthtml-render-1.2.0.tgz?cache=0&sync_timestamp=1582613308689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml-render%2Fdownload%2Fposthtml-render-1.2.0.tgz", - "integrity": "sha1-PfDIAKi7uVr1g6lHSFIEaUd63fQ=", + "version": "1.4.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha1-QBFAcMRYgcrLkzR9rj7/U6+8/xM=", "dev": true }, "posthtml-svg-mode": { "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/posthtml-svg-mode/download/posthtml-svg-mode-1.0.3.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", "integrity": "sha1-q9VU+s6BIjyrDLNn4Y5O/SpOdLA=", "dev": true, "requires": { @@ -13503,95 +10777,41 @@ }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz?cache=0&sync_timestamp=1585868608597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "prettier": { "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1606523097359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", + "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", "dev": true }, "prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "resolved": "https://registry.npm.taobao.org/prettier-linter-helpers/download/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha1-0j1B/hN1ZG3i0BBNNFSjAIgCz3s=", "dev": true, "requires": { "fast-diff": "^1.1.2" } }, - "pretty": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz", - "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", - "dev": true, - "requires": { - "condense-newlines": "^0.2.1", - "extend-shallow": "^2.0.1", - "js-beautify": "^1.6.12" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "dev": true, - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-format": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/pretty-format/download/pretty-format-23.6.0.tgz?cache=0&sync_timestamp=1579655022191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-format%2Fdownload%2Fpretty-format-23.6.0.tgz", - "integrity": "sha1-XqrI7razO5h7f+YJfqaooUarV2A=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz", + "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", "dev": true, "requires": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - } + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, - "printj": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/printj/download/printj-1.1.2.tgz", - "integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI=" - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz", - "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", - "dev": true - }, "process": { "version": "0.11.10", "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", @@ -13601,7 +10821,8 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true }, "progress": { "version": "2.0.3", @@ -13615,28 +10836,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "prompts": { - "version": "0.1.14", - "resolved": "https://registry.npm.taobao.org/prompts/download/prompts-0.1.14.tgz", - "integrity": "sha1-qOFcYSxcnsj4ERhH3zM3ycvUQ7I=", - "dev": true, - "requires": { - "kleur": "^2.0.1", - "sisteransi": "^0.1.1" - } - }, - "property-expr": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/property-expr/download/property-expr-1.5.1.tgz?cache=0&sync_timestamp=1583512528282&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fproperty-expr%2Fdownload%2Fproperty-expr-1.5.1.tgz", - "integrity": "sha1-IuhwaJSgyOKNWHNYBPa6OjZzMU8=", - "dev": true - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz?cache=0&sync_timestamp=1582556112011&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz", @@ -13656,12 +10855,13 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true }, "psl": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.7.0.tgz?cache=0&sync_timestamp=1577538558975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.7.0.tgz", - "integrity": "sha1-8cTEeo75cWfepda79IFtc26ISjw=", + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", "dev": true }, "public-encrypt": { @@ -13676,6 +10876,14 @@ "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "pump": { @@ -13714,7 +10922,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true }, "q": { "version": "1.5.1", @@ -13722,6 +10931,18 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, + "qiankun": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/qiankun/-/qiankun-2.5.0.tgz", + "integrity": "sha512-/M0ycqudcdF14egpx35e7xACWEio5IO85g0L6uNOORTQWm3rI3kGx4vAikgEaNxiElRTplnzfYAt/WAJsPqJqg==", + "requires": { + "@babel/runtime": "^7.10.5", + "import-html-entry": "^1.9.0", + "lodash": "^4.17.11", + "single-spa": "^5.9.2", + "tslib": "^1.10.0" + } + }, "qs": { "version": "6.5.2", "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", @@ -13730,7 +10951,7 @@ }, "query-string": { "version": "4.3.4", - "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1604609999412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { @@ -13751,30 +10972,11 @@ "dev": true }, "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz", - "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", "dev": true }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz", - "integrity": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", - "dev": true - } - } - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", @@ -13800,13 +11002,6 @@ "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", "dev": true }, - "raphael": { - "version": "git+https://github.com/nhn/raphael.git#78a6ed3ec269f33b6457b0ec66f8c3d1f2ed70e0", - "from": "git+https://github.com/nhn/raphael.git#2.2.0-c", - "requires": { - "eve": "git://github.com/adobe-webplatform/eve.git#eef80ed" - } - }, "raw-body": { "version": "2.4.0", "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", @@ -13819,76 +11014,23 @@ "unpipe": "1.0.0" } }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-0.5.1.tgz?cache=0&sync_timestamp=1574695040943&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-loader%2Fdownload%2Fraw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" - }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1575620436254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13900,107 +11042,41 @@ } }, "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/realpath-native/download/realpath-native-1.1.0.tgz", - "integrity": "sha1-IAMpT+oj+wZy8kduviL89Jii1lw=", - "dev": true, - "requires": { - "util.promisify": "^1.0.0" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz", + "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - } + "picomatch": "^2.2.1" } }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.0.tgz", - "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=", + "version": "1.4.2", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218439731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", + "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", "dev": true }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4=", + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz?cache=0&sync_timestamp=1583975113523&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", "dev": true, "requires": { "regenerate": "^1.4.0" } }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + "version": "0.13.7", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz", + "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=" }, "regenerator-transform": { - "version": "0.14.2", - "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.2.tgz?cache=0&sync_timestamp=1582478716594&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.2.tgz", - "integrity": "sha1-lJ2dh0aP+I1afkc067mUqJLeH/I=", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4", - "private": "^0.1.8" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "@babel/runtime": "^7.8.4" } }, "regex-not": { @@ -14021,39 +11097,59 @@ "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz?cache=0&sync_timestamp=1567160849322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-1.1.0.tgz", - "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", - "dev": true, - "optional": true + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "dev": true }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.6.0.tgz?cache=0&sync_timestamp=1568375270709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.6.0.tgz", - "integrity": "sha1-IDfBizJ8/Oim/qKk7EQfJDKvuLY=", + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413905865&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz", + "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", "dev": true, "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz", - "integrity": "sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw=", + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", "dev": true }, "regjsparser": { - "version": "0.6.3", - "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.3.tgz", - "integrity": "sha1-dBksWAXTXp9evjwftbQNQKijhGA=", + "version": "0.6.4", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz?cache=0&sync_timestamp=1583896806843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz", + "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -14061,7 +11157,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891198638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } @@ -14080,16 +11176,16 @@ "dev": true }, "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz", - "integrity": "sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk=", + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.5.tgz?cache=0&sync_timestamp=1609588610014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.5.tgz", + "integrity": "sha1-SDsaxZxmAaswp6WWpZZcq8z90KU=", "dev": true, "requires": { - "css-select": "^1.1.0", + "css-select": "^2.0.2", "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" + "htmlparser2": "^3.10.1", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -14098,34 +11194,6 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz", - "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", - "dev": true - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", @@ -14149,15 +11217,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.2", "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz", @@ -14186,46 +11245,17 @@ "uuid": "^3.3.2" } }, - "request-promise-core": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.3.tgz", - "integrity": "sha1-6aPAgbUTgN/qZ3M2Bh/qh5qCnuk=", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "request-promise-native": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.8.tgz?cache=0&sync_timestamp=1572829762814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest-promise-native%2Fdownload%2Frequest-promise-native-1.0.8.tgz", - "integrity": "sha1-pFW5YLgm5E4r+Jma9k3/K/5YyzY=", - "dev": true, - "requires": { - "request-promise-core": "1.1.3", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "optional": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true }, "requires-port": { "version": "1.0.0", @@ -14233,23 +11263,23 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "reselect": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/reselect/download/reselect-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freselect%2Fdownload%2Freselect-3.0.1.tgz", - "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", - "dev": true + "resize-detector": { + "version": "0.3.0", + "resolved": "https://registry.nlark.com/resize-detector/download/resize-detector-0.3.0.tgz", + "integrity": "sha1-/klREuGEaVUAqPUeA4nxV3TLHPw=" }, "resize-observer-polyfill": { "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.15.1.tgz?cache=0&sync_timestamp=1580943346382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.15.1.tgz", - "integrity": "sha1-J73N7/6vLWJEuVuw+fS0ZTRR8+g=", + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.19.0.tgz", + "integrity": "sha1-GvW/YwQJc0oGfK4pMYqsf6KaJnw=", "dev": true, "requires": { + "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } }, @@ -14260,32 +11290,13 @@ "dev": true, "requires": { "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/resolve-dir/download/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true, - "optional": true + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -14346,25 +11357,10 @@ "inherits": "^2.0.1" } }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npm.taobao.org/rsvp/download/rsvp-3.6.2.tgz", - "integrity": "sha1-LpZJFZmpbN4bUV1WdKj3qRRSkmo=", - "dev": true - }, "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-async%2Fdownload%2Frun-async-2.4.0.tgz", - "integrity": "sha1-5ZBUpbhods+uB/Qx0Yy63cWU8eg=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-node": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/run-node/download/run-node-1.0.0.tgz", - "integrity": "sha1-RrULlGoqotSUeuHYhumFb9nKvl4=", + "version": "2.4.1", + "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", "dev": true }, "run-queue": { @@ -14376,76 +11372,10 @@ "aproba": "^1.1.1" } }, - "runjs": { - "version": "4.4.2", - "resolved": "https://registry.npm.taobao.org/runjs/download/runjs-4.4.2.tgz", - "integrity": "sha1-Ot9bU60bEZuEazyuEzTpq3/zSSA=", - "dev": true, - "requires": { - "chalk": "2.3.0", - "lodash.padend": "4.6.1", - "microcli": "1.3.3", - "omelette": "0.4.5" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.3.0.tgz", - "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=", - "dev": true, - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - } - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true, - "optional": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "optional": true, - "requires": { - "rx-lite": "*" - } - }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", + "version": "6.6.3", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.6.3.tgz?cache=0&sync_timestamp=1607305563098&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.6.3.tgz", + "integrity": "sha1-jKhGNcTaqQDA05Z6buesYCce5VI=", "dev": true, "requires": { "tslib": "^1.9.0" @@ -14453,8 +11383,9 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1562377642757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true }, "safe-regex": { "version": "1.1.0", @@ -14471,164 +11402,31 @@ "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", "dev": true }, - "sane": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/sane/download/sane-2.5.2.tgz", - "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "capture-exit": "^1.2.0", - "exec-sh": "^0.2.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.3", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5", - "watch": "~0.18.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "sass": { + "version": "1.30.0", + "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.30.0.tgz", + "integrity": "sha1-YLu7r3a6EBF+YcbCTwAWHD1gYQ4=", "dev": true, "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - } - } + "chokidar": ">=2.0.0 <4.0.0" } }, "sass-loader": { - "version": "7.3.1", - "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz", - "integrity": "sha1-pb9ooEvOocE/+ELXRxUPerfQ0j8=", + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz?cache=0&sync_timestamp=1605100670008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-8.0.2.tgz", + "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=", "dev": true, "requires": { "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", "semver": "^6.3.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } @@ -14641,78 +11439,28 @@ "dev": true }, "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "screenfull": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/screenfull/download/screenfull-4.2.0.tgz", - "integrity": "sha1-1SUqWg9WUEcZq77Z67zZIIEV2gM=" - }, - "script-ext-html-webpack-plugin": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/script-ext-html-webpack-plugin/download/script-ext-html-webpack-plugin-2.1.3.tgz", - "integrity": "sha1-tL9wPN2+PeLm9IPhnf66K17Eq/4=", + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", "dev": true, "requires": { - "debug": "^4.1.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "script-loader": { - "version": "0.7.2", - "resolved": "https://registry.npm.taobao.org/script-loader/download/script-loader-0.7.2.tgz", - "integrity": "sha1-IBbbb4byX1z1baOJFdgzeLsWa6c=", - "requires": { - "raw-loader": "~0.5.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "script-ext-html-webpack-plugin": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/script-ext-html-webpack-plugin/download/script-ext-html-webpack-plugin-2.1.3.tgz", + "integrity": "sha1-tL9wPN2+PeLm9IPhnf66K17Eq/4=", "dev": true, "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "debug": "^4.1.0" } }, "select": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/select/-/select-1.1.2.tgz", "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" }, "select-hose": { @@ -14722,26 +11470,20 @@ "dev": true }, "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz?cache=0&sync_timestamp=1569952074772&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz", - "integrity": "sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs=", + "version": "1.10.8", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.8.tgz", + "integrity": "sha1-DRcgi30Swz+OrIXEGDXyf8PYGjA=", "dev": true, "requires": { - "node-forge": "0.9.0" + "node-forge": "^0.10.0" } }, "semver": { "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, "send": { "version": "0.17.1", "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", @@ -14765,7 +11507,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -14774,7 +11516,7 @@ "dependencies": { "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } @@ -14782,34 +11524,27 @@ }, "mime": { "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1608084083331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", "dev": true }, "ms": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", "dev": true } } }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/sentence-case/download/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz", + "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", "dev": true, "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" + "randombytes": "^2.1.0" } }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz?cache=0&sync_timestamp=1581887711256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-2.1.2.tgz", - "integrity": "sha1-7OxTsOAxe9yV73arcHS3OEeF+mE=", - "dev": true - }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", @@ -14827,7 +11562,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -14836,7 +11571,7 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { @@ -14852,6 +11587,12 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", @@ -14875,12 +11616,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-value": { "version": "2.0.1", @@ -14940,6 +11677,7 @@ "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -14947,7 +11685,8 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "shell-quote": { "version": "1.7.2", @@ -14955,56 +11694,11 @@ "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", "dev": true }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", - "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", - "dev": true - }, - "showdown": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/showdown/download/showdown-1.9.0.tgz", - "integrity": "sha1-1J0qC22yG3wulu+FX3s7KijvRvQ=", - "requires": { - "yargs": "^10.0.3" - } - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-git": { - "version": "1.131.0", - "resolved": "https://registry.npm.taobao.org/simple-git/download/simple-git-1.131.0.tgz", - "integrity": "sha1-aNhb9qcG5Bi4qSyudl0q01h4HiE=", - "dev": true, - "requires": { - "debug": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "dev": true }, "simple-swizzle": { "version": "0.2.2", @@ -15023,11 +11717,10 @@ } } }, - "sisteransi": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/sisteransi/download/sisteransi-0.1.1.tgz", - "integrity": "sha1-VDFEfV99FnWqxmfM0LhlpJlMs84=", - "dev": true + "single-spa": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/single-spa/-/single-spa-5.9.3.tgz", + "integrity": "sha512-qMGraRzIBsodV6569Fob4cQ4/yQNrcZ5Achh3SAQDljmqUtjAZ7BAA7GAyO/l5eizb7GtTmVq9Di7ORyKw82CQ==" }, "slash": { "version": "2.0.0", @@ -15036,22 +11729,22 @@ "dev": true }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-1.0.0.tgz", - "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", - "dev": true, - "optional": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snake-case": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/snake-case/download/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz", + "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", "dev": true, "requires": { - "no-case": "^2.2.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } } }, "snapdragon": { @@ -15072,7 +11765,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -15096,6 +11789,12 @@ "requires": { "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -15159,12 +11858,6 @@ "kind-of": "^3.2.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -15177,18 +11870,19 @@ } }, "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz", - "integrity": "sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0=", + "version": "0.3.20", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz", + "integrity": "sha1-smooPsVi74smh7RAM6Tuzqx12FU=", "dev": true, "requires": { "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" } }, "sockjs-client": { "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz?cache=0&sync_timestamp=1566505930428&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz", "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", "dev": true, "requires": { @@ -15201,9 +11895,9 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" @@ -15217,19 +11911,22 @@ "requires": { "websocket-driver": ">=0.5.1" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true } } }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1602621924510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, "sortablejs": { - "version": "1.8.4", - "resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.8.4.tgz", - "integrity": "sha1-G7/q+pbTmbg/KOJdjknU+/2GfzA=" + "version": "1.10.2", + "resolved": "https://registry.nlark.com/sortablejs/download/sortablejs-1.10.2.tgz?cache=0&sync_timestamp=1625423971526&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsortablejs%2Fdownload%2Fsortablejs-1.10.2.tgz", + "integrity": "sha1-bkA2TZE/mLhaFPZnj5K1wSIfUpA=" }, "source-list-map": { "version": "2.0.1", @@ -15243,9 +11940,15 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "source-map-js": { + "version": "0.6.2", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829475930&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", "dev": true, "requires": { @@ -15257,9 +11960,9 @@ } }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz", - "integrity": "sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=", + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -15280,10 +11983,16 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz", - "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -15291,15 +12000,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz", - "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz?cache=0&sync_timestamp=1587422410312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -15307,15 +12016,15 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz", - "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", + "version": "3.0.7", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.7.tgz?cache=0&sync_timestamp=1606610843748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.7.tgz", + "integrity": "sha1-6cGKQQ5e1+EkQqVJ+9ivp2cDjWU=", "dev": true }, "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.1.tgz", - "integrity": "sha1-bxLtHF236k8k67i4m6WMh8CCV/I=", + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970558936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", + "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", "dev": true, "requires": { "debug": "^4.1.0", @@ -15323,23 +12032,6 @@ "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } } }, "spdy-transport": { @@ -15356,21 +12048,6 @@ "wbuf": "^1.7.3" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", @@ -15396,19 +12073,8 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "squire-rte": { - "version": "github:sohee-lee7/Squire#b1e0e1031fa18912d233c204cbe7c7fae4a42621", - "from": "github:sohee-lee7/Squire#b1e0e1031fa18912d233c204cbe7c7fae4a42621" - }, - "ssf": { - "version": "0.10.3", - "resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.10.3.tgz", - "integrity": "sha1-jq4fwpyQpVLnkhII+BiS1vd6yys=", - "requires": { - "frac": "~1.1.2" - } + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "sshpk": { "version": "1.16.1", @@ -15442,22 +12108,10 @@ "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", "dev": true }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.2.tgz", - "integrity": "sha1-M+ujiXeIVYvr/C2wWdwVjsNs67g=", - "dev": true - }, "stackframe": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.1.1.tgz?cache=0&sync_timestamp=1578260012451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.1.1.tgz", - "integrity": "sha1-/+8KMxixtgw7WFZJiaylZgcp7HE=", - "dev": true - }, - "staged-git-files": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/staged-git-files/download/staged-git-files-1.1.2.tgz", - "integrity": "sha1-QybTOIbcns+immGTv1EbqQpGRUs=", + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", + "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", "dev": true }, "static-extend": { @@ -15483,28 +12137,13 @@ }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1587327902535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz", - "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "stream-browserify": { "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041545531&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz", "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", "dev": true, "requires": { @@ -15547,137 +12186,80 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, - "string-argv": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/string-argv/download/string-argv-0.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-argv%2Fdownload%2Fstring-argv-0.0.2.tgz", - "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", "dev": true }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/string-length/download/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.padend": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.1.0.tgz?cache=0&sync_timestamp=1576312179430&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.padend%2Fdownload%2Fstring.prototype.padend-3.1.0.tgz", - "integrity": "sha1-3Aj1eoAQ3FwVNVAxj2fhOtu3KsM=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "string.prototype.padstart": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.1.0.tgz?cache=0&sync_timestamp=1576312396721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.padstart%2Fdownload%2Fstring.prototype.padstart-3.1.0.tgz", - "integrity": "sha1-tHwIdUDQcQvlpJN1dRoKYnvU/5A=", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha1-m9uKxqvW1gKxek7TIYcNL43O/HQ=", + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.3.tgz?cache=0&sync_timestamp=1606007972119&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.3.tgz", + "integrity": "sha1-oivVPMpcfPRNfJ1ccyEYhz1s0Ys=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha1-RAMUsVmWyGbOigNBiU1FGGIAxdk=", + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.3.tgz?cache=0&sync_timestamp=1606007972027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.3.tgz", + "integrity": "sha1-m0y1kOEjuzZWRAHVmCQpjeUP1ao=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz", - "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "dev": true, "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" + "ansi-regex": "^5.0.0" }, "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", "dev": true } } }, - "strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-0.1.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true }, "strip-indent": { "version": "2.0.0", @@ -15686,9 +12268,9 @@ "dev": true }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", "dev": true }, "stylehacks": { @@ -15702,9 +12284,20 @@ "postcss-selector-parser": "^3.0.0" }, "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { @@ -15712,21 +12305,37 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, "requires": { "has-flag": "^3.0.0" } }, "svg-baker": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/svg-baker/download/svg-baker-1.5.0.tgz", - "integrity": "sha1-6U51Uj2TA+mis0SJhwgNlmy5CvQ=", + "version": "1.7.0", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/svg-baker/-/svg-baker-1.7.0.tgz", + "integrity": "sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=", "dev": true, "requires": { "bluebird": "^3.5.0", @@ -15746,19 +12355,19 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { @@ -15771,7 +12380,7 @@ "dependencies": { "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } @@ -15779,13 +12388,13 @@ }, "clone": { "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true }, "define-property": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { @@ -15794,7 +12403,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { @@ -15803,13 +12412,13 @@ }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { @@ -15818,7 +12427,7 @@ "dependencies": { "kind-of": { "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true } @@ -15826,7 +12435,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { @@ -15835,7 +12444,7 @@ "dependencies": { "kind-of": { "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true } @@ -15843,7 +12452,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { @@ -15854,7 +12463,7 @@ "dependencies": { "kind-of": { "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true } @@ -15862,13 +12471,13 @@ }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", "dev": true }, "micromatch": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/micromatch/-/micromatch-3.1.0.tgz", "integrity": "sha1-UQLU6vILaZfWAI46z+HESj+oFeI=", "dev": true, "requires": { @@ -15889,7 +12498,7 @@ }, "postcss": { "version": "5.2.18", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz?cache=0&sync_timestamp=1581994853208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-5.2.18.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/postcss/-/postcss-5.2.18.tgz", "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=", "dev": true, "requires": { @@ -15901,7 +12510,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -15910,7 +12519,7 @@ }, "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { @@ -15920,44 +12529,49 @@ } }, "svg-baker-runtime": { - "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/svg-baker-runtime/download/svg-baker-runtime-1.4.3.tgz", - "integrity": "sha1-jsA12vOvSr5+eIEgho67+Eo0Ro8=", + "version": "1.4.7", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/svg-baker-runtime/-/svg-baker-runtime-1.4.7.tgz", + "integrity": "sha1-9HIGN/W2IC7vY3jYHx/q0IFfik4=", "dev": true, "requires": { "deepmerge": "1.3.2", "mitt": "1.1.2", - "svg-baker": "^1.5.0" + "svg-baker": "^1.7.0" }, "dependencies": { "deepmerge": { "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/deepmerge/-/deepmerge-1.3.2.tgz", "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", "dev": true + }, + "mitt": { + "version": "1.1.2", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/mitt/-/mitt-1.1.2.tgz", + "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", + "dev": true } } }, "svg-sprite-loader": { - "version": "4.1.3", - "resolved": "https://registry.npm.taobao.org/svg-sprite-loader/download/svg-sprite-loader-4.1.3.tgz?cache=0&sync_timestamp=1580480714186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvg-sprite-loader%2Fdownload%2Fsvg-sprite-loader-4.1.3.tgz", - "integrity": "sha1-0lz6daXE5Jn3tSgigdtus72hP+A=", + "version": "6.0.7", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/svg-sprite-loader/-/svg-sprite-loader-6.0.7.tgz", + "integrity": "sha1-qVwsBQ5AjtcVFnYX0R+MiZjqpFs=", "dev": true, "requires": { "bluebird": "^3.5.0", "deepmerge": "1.3.2", "domready": "1.0.8", "escape-string-regexp": "1.0.5", - "html-webpack-plugin": "^3.2.0", "loader-utils": "^1.1.0", - "svg-baker": "^1.4.0", - "svg-baker-runtime": "^1.4.0", + "svg-baker": "^1.5.0", + "svg-baker-runtime": "^1.4.7", "url-slug": "2.0.0" }, "dependencies": { "deepmerge": { "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/deepmerge/-/deepmerge-1.3.2.tgz", "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", "dev": true } @@ -15970,19 +12584,18 @@ "dev": true }, "svgo": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.2.0.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.2.0.tgz", - "integrity": "sha1-MFqPwPT5cQgoxlA5u5PVeTIl/8M=", + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", "dev": true, "requires": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.28", - "css-url-regex": "^1.1.0", - "csso": "^3.5.1", - "js-yaml": "^3.12.0", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", "mkdirp": "~0.5.1", "object.values": "^1.1.0", "sax": "~1.2.4", @@ -15991,106 +12604,96 @@ "util.promisify": "~1.0.0" } }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/swap-case/download/swap-case-1.1.2.tgz?cache=0&sync_timestamp=1575601560703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fswap-case%2Fdownload%2Fswap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "dev": true, - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz", - "integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz", - "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", - "dev": true - }, - "synchronous-promise": { - "version": "2.0.10", - "resolved": "https://registry.npm.taobao.org/synchronous-promise/download/synchronous-promise-2.0.10.tgz", - "integrity": "sha1-5kxv06/SX0I5YzUwQ/Smjr05f9g=", - "dev": true - }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/table/download/table-4.0.2.tgz", - "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", + "version": "5.4.6", + "resolved": "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz?cache=0&sync_timestamp=1605825584818&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz", + "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", "dev": true, - "optional": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz?cache=0&sync_timestamp=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true, - "optional": true + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, - "optional": true + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, - "optional": true + "requires": { + "ansi-regex": "^4.1.0" + } } } }, "tapable": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088855476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", "dev": true }, "tar": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz", - "integrity": "sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA=", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "terser": { - "version": "4.6.6", - "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.6.6.tgz?cache=0&sync_timestamp=1583252322857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.6.6.tgz", - "integrity": "sha1-2iOC5sr734YgXoL7mhFb1mTVSGM=", + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1606494026148&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", + "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", "dev": true, "requires": { "commander": "^2.20.0", @@ -16098,12 +12701,6 @@ "source-map-support": "~0.5.12" }, "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", @@ -16113,16 +12710,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha1-Xsry29xfuZdF/QZ5H0b8ndscmnw=", + "version": "1.4.5", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1603881839307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz", + "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", + "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -16142,7 +12739,7 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { @@ -16161,7 +12758,7 @@ }, "make-dir": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1581538411621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", "dev": true, "requires": { @@ -16169,34 +12766,19 @@ "semver": "^5.6.0" } }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { "p-limit": "^2.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "pkg-dir": { @@ -16210,7 +12792,7 @@ }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -16227,134 +12809,33 @@ } } }, - "test-exclude": { - "version": "4.2.3", - "resolved": "https://registry.npm.taobao.org/test-exclude/download/test-exclude-4.2.3.tgz", - "integrity": "sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA=", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz", + "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "thread-loader": { "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1565261083321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1603809423332&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz", "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", "dev": true, "requires": { @@ -16363,17 +12844,6 @@ "neo-async": "^2.6.0" } }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true - }, - "throttle-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz", - "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=" - }, "through": { "version": "2.3.8", "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", @@ -16397,9 +12867,9 @@ "dev": true }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.11.tgz", - "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=", + "version": "2.0.12", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793688024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", + "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -16413,34 +12883,18 @@ }, "tiny-emitter": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/title-case/download/title-case-2.1.1.tgz?cache=0&sync_timestamp=1575601563515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftitle-case%2Fdownload%2Ftitle-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1588178571895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz", "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", @@ -16450,13 +12904,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-mark": { - "version": "1.1.9", - "resolved": "https://registry.npm.taobao.org/to-mark/download/to-mark-1.1.9.tgz", - "integrity": "sha1-LPvI52XEMN3LRqIYvgebTKJ3PVs=" + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -16467,12 +12915,6 @@ "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -16528,73 +12970,28 @@ "punycode": "^2.1.1" } }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, "traverse": { "version": "0.6.6", - "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/traverse/-/traverse-0.6.6.tgz", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz", - "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", "dev": true }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/tsconfig/download/tsconfig-7.0.0.tgz", - "integrity": "sha1-hFOIdaTcIW5cSlQys6Tew9VOkbc=", - "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz", + "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=", + "dev": true }, "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.11.1.tgz", - "integrity": "sha1-6xXRKIJ/vuKEFUnhcfRe0zisfjU=", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" }, "tty-browserify": { "version": "0.0.0", @@ -16602,69 +12999,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "tui-chart": { - "version": "3.10.1", - "resolved": "https://registry.npm.taobao.org/tui-chart/download/tui-chart-3.10.1.tgz?cache=0&sync_timestamp=1583286496287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftui-chart%2Fdownload%2Ftui-chart-3.10.1.tgz", - "integrity": "sha1-jwq/rPhmLtTRsdNYRB6LcC7ndIA=", - "requires": { - "core-js": "^3.6.4", - "raphael": "git+https://github.com/nhn/raphael.git#2.2.0-c", - "tui-code-snippet": "^2.3.1" - }, - "dependencies": { - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.4.tgz", - "integrity": "sha1-RAqDU2tFgRS5yyrBWAujd9xHBkc=" - }, - "tui-code-snippet": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/tui-code-snippet/download/tui-code-snippet-2.3.1.tgz", - "integrity": "sha1-0R2YOMkKLhTeyxDeullXWHMcZt4=" - } - } - }, - "tui-code-snippet": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/tui-code-snippet/download/tui-code-snippet-1.5.2.tgz", - "integrity": "sha1-9Ljw8ayZawtbYh93yVB68ZoN4jg=" - }, - "tui-color-picker": { - "version": "2.2.6", - "resolved": "https://registry.npm.taobao.org/tui-color-picker/download/tui-color-picker-2.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftui-color-picker%2Fdownload%2Ftui-color-picker-2.2.6.tgz", - "integrity": "sha1-urVORzgOVQuzrIrpdAIbPMJRiqk=", - "requires": { - "tui-code-snippet": "^2.2.0" - }, - "dependencies": { - "tui-code-snippet": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/tui-code-snippet/download/tui-code-snippet-2.3.1.tgz", - "integrity": "sha1-0R2YOMkKLhTeyxDeullXWHMcZt4=" - } - } - }, - "tui-editor": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/tui-editor/download/tui-editor-1.3.3.tgz", - "integrity": "sha1-l3KVk7mg97dCyVTjzhIww41m/y8=", - "requires": { - "@types/codemirror": "0.0.71", - "@types/jquery": "^3.3.29", - "@types/markdown-it": "0.0.7", - "codemirror": "^5.33.0", - "highlight.js": "^9.12.0", - "jquery": "^3.3.1", - "markdown-it": "^8.4.0", - "plantuml-encoder": "^1.2.5", - "resize-observer-polyfill": "^1.5.0", - "squire-rte": "github:sohee-lee7/Squire#b1e0e1031fa18912d233c204cbe7c7fae4a42621", - "to-mark": "^1.1.4", - "tui-chart": "^3.0.1", - "tui-code-snippet": "^1.5.0", - "tui-color-picker": "^2.2.1" - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", @@ -16689,6 +13023,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1606468796224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", @@ -16705,49 +13045,30 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/uc.micro/download/uc.micro-1.0.6.tgz", - "integrity": "sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw=" - }, "uglify-js": { - "version": "3.8.0", - "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.8.0.tgz?cache=0&sync_timestamp=1582036112063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.8.0.tgz", - "integrity": "sha1-81Qa6XsvBI1+fjqk85/YofXXqAU=", + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz", + "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", "dev": true, - "optional": true, "requires": { - "commander": "~2.20.3", + "commander": "~2.19.0", "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true, - "optional": true + "version": "2.19.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1607933281807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", + "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "optional": true + "dev": true } } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/unc-path-regex/download/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "underscore": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/underscore/download/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" - }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -16765,20 +13086,20 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha1-W0tCbgjROoA2Xg1lesemwexGonc=", + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz?cache=0&sync_timestamp=1583948924460&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha1-qcxsx85joKMCP8meNBuUQx1AWlc=", + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583946096584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", "dev": true }, "unidecode": { "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/unidecode/download/unidecode-0.1.8.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/unidecode/-/unidecode-0.1.8.tgz", "integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=", "dev": true }, @@ -16797,7 +13118,8 @@ "uniq": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true }, "uniqs": { "version": "2.0.0", @@ -16825,7 +13147,7 @@ }, "universalify": { "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583531099652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", "dev": true }, @@ -16883,36 +13205,28 @@ }, "upath": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1604768637331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", "dev": true }, "upper-case": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&sync_timestamp=1606859943902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/upper-case-first/download/upper-case-first-1.1.2.tgz?cache=0&sync_timestamp=1575601561477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case-first%2Fdownload%2Fupper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "dev": true, - "requires": { - "upper-case": "^1.1.1" - } - }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.0.tgz", + "integrity": "sha1-qnFCYd55PoqCNHp7zJznTobyhgI=", + "dev": true, "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz?cache=0&sync_timestamp=1585438689517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, @@ -16929,35 +13243,22 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.1.2.tgz", - "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true } } }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252594253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz", + "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + } + }, "url-parse": { "version": "1.4.7", "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz", @@ -16970,7 +13271,7 @@ }, "url-slug": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/url-slug/download/url-slug-2.0.0.tgz", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/url-slug/-/url-slug-2.0.0.tgz", "integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=", "dev": true, "requires": { @@ -16983,15 +13284,9 @@ "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", "dev": true }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/user-home/download/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "util": { "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1588238435623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", "dev": true, "requires": { @@ -17009,7 +13304,8 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "util.promisify": { "version": "1.0.1", @@ -17021,6 +13317,27 @@ "es-abstract": "^1.17.2", "has-symbols": "^1.0.1", "object.getownpropertydescriptors": "^2.1.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "utila": { @@ -17037,18 +13354,15 @@ }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1583326207173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", "dev": true }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/v8flags/download/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "requires": { - "user-home": "^1.1.1" - } + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.2.0.tgz?cache=0&sync_timestamp=1603909372873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.2.0.tgz", + "integrity": "sha1-lHHvo++RKNL3xqfKOcTda1BVsTI=", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", @@ -17060,6 +13374,17 @@ "spdx-expression-parse": "^3.0.0" } }, + "vant": { + "version": "3.1.3", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/vant/-/vant-3.1.3.tgz", + "integrity": "sha1-yHobhrvw48E5pRnYnjEEJ/o22LM=", + "requires": { + "@vant/icons": "^1.6.0", + "@vant/lazyload": "^1.2.0", + "@vant/popperjs": "^1.1.0", + "@vant/use": "^1.1.2" + } + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", @@ -17090,38 +13415,102 @@ "dev": true }, "vue": { - "version": "2.6.10", - "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.10.tgz?cache=0&sync_timestamp=1583556397972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.10.tgz", - "integrity": "sha1-pysaQqTYKnIepDjRtr9V5mGVxjc=" + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.8.tgz", + "integrity": "sha512-x7lwdnOSkceHQUXRVVHBaZzcp6v7M2CYtSZH75zZaT1mTjB4plC4KZHKP/5jAvdqOLBHZGwDSMkWXm3YbAufrA==", + "requires": { + "@vue/compiler-dom": "3.2.8", + "@vue/runtime-dom": "3.2.8", + "@vue/shared": "3.2.8" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + }, + "@babel/parser": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.4.tgz", + "integrity": "sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w==" + }, + "@babel/types": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz", + "integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "@vue/compiler-core": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.8.tgz", + "integrity": "sha512-Sx8qJ030+QM/NakUrkQuUGCeDEb+0d0AgFOl5W4qRvR6e+YgLnW2ew0jREf4T1hak9Fdk8Edl67StECHrhEuew==", + "requires": { + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "@vue/shared": "3.2.8", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.8.tgz", + "integrity": "sha512-nxBW6k8FMWQ74294CRbqR+iEJRO5vIjx85I3YCOyZFD6FsDHyFL60g76TcJzucp+F2XXIDaYz+A+F4gQlDatjw==", + "requires": { + "@vue/compiler-core": "3.2.8", + "@vue/shared": "3.2.8" + } + }, + "@vue/shared": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.8.tgz", + "integrity": "sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } }, - "vue-count-to": { - "version": "1.0.13", - "resolved": "https://registry.npm.taobao.org/vue-count-to/download/vue-count-to-1.0.13.tgz", - "integrity": "sha1-PnVz6m5kwrKXL2TgoqsuI8dZD/M=" + "vue-demi": { + "version": "0.11.3", + "resolved": "https://registry.nlark.com/vue-demi/download/vue-demi-0.11.3.tgz", + "integrity": "sha1-3XSVuStJXs+jVnW/AksTWKet0VA=" + }, + "vue-echarts": { + "version": "6.0.0", + "resolved": "https://registry.nlark.com/vue-echarts/download/vue-echarts-6.0.0.tgz?cache=0&sync_timestamp=1627907508392&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-echarts%2Fdownload%2Fvue-echarts-6.0.0.tgz", + "integrity": "sha1-SAJj/G7SEluIa7G38Fv5Jz7e5VI=", + "requires": { + "resize-detector": "^0.3.0", + "vue-demi": "^0.11.2" + } }, "vue-eslint-parser": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz", - "integrity": "sha1-wmjJbG2Uz+PZOKX3WTlZsMozYNE=", + "version": "7.3.0", + "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.3.0.tgz?cache=0&sync_timestamp=1608030996396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.3.0.tgz", + "integrity": "sha1-iUCFg52Z2BKW+ggdGWQ3M/I9dVk=", "dev": true, - "optional": true, "requires": { - "debug": "^3.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "lodash": "^4.17.4" + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.0.1", + "lodash": "^4.17.15" }, "dependencies": { "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.3.tgz", - "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, - "optional": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } } @@ -17133,33 +13522,10 @@ "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", "dev": true }, - "vue-jest": { - "version": "3.0.5", - "resolved": "https://registry.npm.taobao.org/vue-jest/download/vue-jest-3.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-jest%2Fdownload%2Fvue-jest-3.0.5.tgz", - "integrity": "sha1-1vEktULcv/IHv5KWwZQT9MQLcMk=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", - "chalk": "^2.1.0", - "extract-from-css": "^0.4.4", - "find-babel-config": "^1.1.0", - "js-beautify": "^1.6.14", - "node-cache": "^4.1.1", - "object-assign": "^4.1.1", - "source-map": "^0.5.6", - "tsconfig": "^7.0.0", - "vue-template-es2015-compiler": "^1.6.0" - } - }, - "vue-jsonp": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/vue-jsonp/-/vue-jsonp-0.1.8.tgz", - "integrity": "sha512-ebxvjHl5D7bv5Z7SeRzZUAPOSRMx+RiAeej7h6dPpbtk8MVz/b3n9fOZ8AAVmakb1pe36e+qG0J+K49a3LfpKA==" - }, "vue-loader": { - "version": "15.9.0", - "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.0.tgz", - "integrity": "sha1-XUsDeKRgYYj8g+WH7SPJS8OhCZg=", + "version": "15.9.5", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.5.tgz?cache=0&sync_timestamp=1607093678805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.5.tgz", + "integrity": "sha1-epYNxCCjQ53qrN2gOP3Nv3xDJwY=", "dev": true, "requires": { "@vue/component-compiler-utils": "^3.1.0", @@ -17169,46 +13535,39 @@ "vue-style-loader": "^4.1.0" }, "dependencies": { - "@vue/component-compiler-utils": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.1.1.tgz", - "integrity": "sha1-1O+PgCkmdARK1iEeM2owLk0qZXU=", - "dev": true, - "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1573302169507&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", - "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + } + } + }, + "vue-particles": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/vue-particles/download/vue-particles-1.0.9.tgz", + "integrity": "sha1-KdnMK+AVffHAqH7DuWyW8zJ5Um4=", + "dev": true, + "requires": { + "particles.js": "^2.0.0", + "vue": "^2.2.6" + }, + "dependencies": { + "vue": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", + "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==", "dev": true } } }, "vue-router": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.0.2.tgz", - "integrity": "sha1-3txnr+bE4rwlaCyLHCqMDXx+Vr4=" - }, - "vue-splitpane": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/vue-splitpane/download/vue-splitpane-1.0.4.tgz", - "integrity": "sha1-zfdEqPMb7csIbpVFqUU1ZdNgvQI=" + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.11.tgz", + "integrity": "sha512-sha6I8fx9HWtvTrFZfxZkiQQBpqSeT+UCwauYjkdOQYRvwsGwimlQQE2ayqUwuuXGzquFpCPoXzYKWlzL4OuXg==", + "requires": { + "@vue/devtools-api": "^6.0.0-beta.14" + } }, "vue-style-loader": { "version": "4.1.2", @@ -17218,16 +13577,14 @@ "requires": { "hash-sum": "^1.0.2", "loader-utils": "^1.0.2" - } - }, - "vue-template-compiler": { - "version": "2.6.10", - "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.10.tgz?cache=0&sync_timestamp=1576267127911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.10.tgz", - "integrity": "sha1-MjtPNJXwT6o1AzN6gvXWUHeZycw=", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } } }, "vue-template-es2015-compiler": { @@ -17237,63 +13594,206 @@ "dev": true }, "vuedraggable": { - "version": "2.20.0", - "resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.20.0.tgz", - "integrity": "sha1-gurB+aMsEW70z1IV/hjfsVKvqd0=", + "version": "4.0.3", + "resolved": "https://registry.nlark.com/vuedraggable/download/vuedraggable-4.0.3.tgz?cache=0&sync_timestamp=1629673069618&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuedraggable%2Fdownload%2Fvuedraggable-4.0.3.tgz", + "integrity": "sha1-mIMqNWLUTHO75OIFzC2vzge2yhQ=", "requires": { - "sortablejs": "^1.8.4" + "sortablejs": "1.10.2" } }, "vuex": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.1.0.tgz", - "integrity": "sha1-Y0uBUVzwz+l2vR/+lgF1XlH4Q7k=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz?cache=0&sync_timestamp=1583455604765&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fw3c-hr-time%2Fdownload%2Fw3c-hr-time-1.0.2.tgz", - "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, + "version": "4.0.2", + "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/vuex/-/vuex-4.0.2.tgz", + "integrity": "sha1-+Jbb1b8qDpY/AMZ+m2EN50nMrMk=", "requires": { - "makeerror": "1.0.x" + "@vue/devtools-api": "^6.0.0-beta.11" } }, - "watch": { - "version": "0.18.0", - "resolved": "https://registry.npm.taobao.org/watch/download/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.5.tgz?cache=0&sync_timestamp=1607687490176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.7.5.tgz", + "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", "dev": true, "requires": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", + "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz", - "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=", + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz?cache=0&sync_timestamp=1604989085906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack-chokidar2%2Fdownload%2Fwatchpack-chokidar2-2.0.1.tgz", + "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", "dev": true, + "optional": true, "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602588845974&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1608033993741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } } }, "wbuf": { @@ -17314,52 +13814,58 @@ "defaults": "^1.0.3" } }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebidl-conversions%2Fdownload%2Fwebidl-conversions-4.0.2.tgz", - "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=", - "dev": true - }, "webpack": { - "version": "4.28.4", - "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.28.4.tgz", - "integrity": "sha1-HdrmyJiH1++3Uq3ww80yubB+rNA=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "version": "4.44.2", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.44.2.tgz?cache=0&sync_timestamp=1608060653278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.44.2.tgz", + "integrity": "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, "webpack-bundle-analyzer": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.6.0.tgz", - "integrity": "sha1-ObOo+CnKBEaCvG+eARyV3rVUrv0=", + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1608133719952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-walk": "^6.1.1", + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", "bfj": "^6.1.1", "chalk": "^2.4.1", "commander": "^2.18.0", @@ -17367,49 +13873,34 @@ "express": "^4.16.3", "filesize": "^3.6.1", "gzip-size": "^5.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mkdirp": "^0.5.1", "opener": "^1.5.1", "ws": "^6.0.0" }, "dependencies": { "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } } } }, "webpack-chain": { - "version": "4.12.1", - "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz?cache=0&sync_timestamp=1580740851884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-4.12.1.tgz", - "integrity": "sha1-bIQ5u7KrVQlS1g4eqTGRQZBsAqY=", + "version": "6.5.1", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz", + "integrity": "sha1-TycoTLu2N+PI+970Pu9YjU2GEgY=", "dev": true, "requires": { "deepmerge": "^1.5.2", - "javascript-stringify": "^1.6.0" + "javascript-stringify": "^2.0.1" } }, "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1582191388714&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", - "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", + "version": "3.7.3", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz?cache=0&sync_timestamp=1608052639209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.3.tgz", + "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", "dev": true, "requires": { "memory-fs": "^0.4.1", @@ -17420,9 +13911,9 @@ } }, "webpack-dev-server": { - "version": "3.10.3", - "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.10.3.tgz", - "integrity": "sha1-81lFA2gT5X71gsJCDve0cOFNOvA=", + "version": "3.11.0", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz?cache=0&sync_timestamp=1606496402755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz", + "integrity": "sha1-jxVKO84bz9HMYY705wMniFXn/4w=", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -17433,31 +13924,31 @@ "debug": "^4.1.1", "del": "^4.1.1", "express": "^4.17.1", - "html-entities": "^1.2.1", + "html-entities": "^1.3.1", "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", "internal-ip": "^4.3.0", "ip": "^1.1.5", "is-absolute-url": "^3.0.3", "killable": "^1.0.1", - "loglevel": "^1.6.6", + "loglevel": "^1.6.8", "opn": "^5.5.0", "p-retry": "^3.0.1", - "portfinder": "^1.0.25", + "portfinder": "^1.0.26", "schema-utils": "^1.0.0", "selfsigned": "^1.10.7", "semver": "^6.3.0", "serve-index": "^1.9.1", - "sockjs": "0.3.19", + "sockjs": "0.3.20", "sockjs-client": "1.4.0", - "spdy": "^4.0.1", + "spdy": "^4.0.2", "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", "url": "^0.11.0", "webpack-dev-middleware": "^3.7.2", "webpack-log": "^2.0.0", "ws": "^6.2.1", - "yargs": "12.0.5" + "yargs": "^13.3.2" }, "dependencies": { "ansi-regex": { @@ -17466,6 +13957,33 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", @@ -17474,7 +13992,7 @@ }, "chokidar": { "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602588845974&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", "dev": true, "requires": { @@ -17492,100 +14010,102 @@ "upath": "^1.1.1" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { "locate-path": "^3.0.0" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1608033993741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", "dev": true, + "optional": true, "requires": { - "pump": "^3.0.0" + "bindings": "^1.5.0", + "nan": "^2.12.1" } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", - "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, "is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz", "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "binary-extensions": "^1.0.0" } }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", @@ -17596,76 +14116,35 @@ "path-exists": "^3.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { "p-limit": "^2.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", "dev": true, "requires": { - "find-up": "^3.0.0" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -17676,10 +14155,38 @@ }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", @@ -17691,46 +14198,63 @@ }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", "dev": true, "requires": { "has-flag": "^3.0.0" } }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz", - "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "version": "13.3.2", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1607207963779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-11.1.1.tgz", - "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1604886709178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -17751,7 +14275,7 @@ }, "webpack-merge": { "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz", "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", "dev": true, "requires": { @@ -17760,7 +14284,7 @@ }, "webpack-sources": { "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965333971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", "dev": true, "requires": { @@ -17777,52 +14301,25 @@ } }, "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz", - "integrity": "sha1-otTg1PTxFvHmKX66WLBdQwEA6fk=", + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "dev": true, "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz", - "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz", - "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=", + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", + "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", "dev": true }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-6.5.0.tgz?cache=0&sync_timestamp=1578023109671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-6.5.0.tgz", - "integrity": "sha1-8t8Cv/F2/WUHDfdK1cy7WhmZZag=", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -17830,16 +14327,8 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "word-wrap": { "version": "1.2.3", @@ -17847,12 +14336,6 @@ "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", @@ -17863,44 +14346,39 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "color-convert": "^2.0.1" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true } } }, @@ -17911,55 +14389,23 @@ "dev": true }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/write/download/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz", + "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", "dev": true, - "optional": true, "requires": { "mkdirp": "^0.5.1" } }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.3.tgz", - "integrity": "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, "ws": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-5.2.2.tgz", - "integrity": "sha1-3/7xSGa46NyRM1glFNG++vlumA8=", + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1607113213006&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", "dev": true, "requires": { "async-limiter": "~1.0.0" } }, - "xlsx": { - "version": "0.14.1", - "resolved": "https://registry.npm.taobao.org/xlsx/download/xlsx-0.14.1.tgz", - "integrity": "sha1-7O31Nr0elAVUhv9IT1iI3KqJvT0=", - "requires": { - "adler-32": "~1.2.0", - "cfb": "^1.1.0", - "codepage": "~1.14.0", - "commander": "~2.17.1", - "crc-32": "~1.2.0", - "exit-on-epipe": "~1.0.1", - "ssf": "~0.10.2" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz", - "integrity": "sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=", - "dev": true - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", @@ -17967,40 +14413,52 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.1.tgz?cache=0&sync_timestamp=1606778028917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.1.tgz", + "integrity": "sha1-jbK4PDHF11CZu4kLI/MJSJHiR9Q=", + "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true }, "yargs": { - "version": "10.1.2", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-10.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-10.1.2.tgz", - "integrity": "sha1-RU0HTCsWpRpD4vt4B+T53mnMtcU=", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1607207963779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.1.0" + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" } }, "yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-8.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-8.1.0.tgz", - "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", + "version": "18.1.3", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1604886709178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + } } }, "yorkie": { @@ -18015,9 +14473,20 @@ "strip-indent": "^2.0.0" }, "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "execa": { "version": "0.8.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, "requires": { @@ -18030,55 +14499,50 @@ "strip-eof": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, "normalize-path": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true } } }, - "yup": { - "version": "0.26.10", - "resolved": "https://registry.npm.taobao.org/yup/download/yup-0.26.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyup%2Fdownload%2Fyup-0.26.10.tgz", - "integrity": "sha1-NUWDlmMokDj68l+s/AfhH9Z8DLE=", - "dev": true, + "zrender": { + "version": "5.1.1", + "resolved": "https://registry.nlark.com/zrender/download/zrender-5.1.1.tgz?cache=0&sync_timestamp=1630140908990&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fzrender%2Fdownload%2Fzrender-5.1.1.tgz", + "integrity": "sha1-BRX0+MwPR0LwKmuIGVUKbRPWTFw=", "requires": { - "@babel/runtime": "7.0.0", - "fn-name": "~2.0.1", - "lodash": "^4.17.10", - "property-expr": "^1.5.0", - "synchronous-promise": "^2.0.5", - "toposort": "^2.0.2" + "tslib": "2.0.3" }, "dependencies": { - "@babel/runtime": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.0.0.tgz?cache=0&sync_timestamp=1583373757080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.0.0.tgz", - "integrity": "sha1-ret4/t/IVaoFvAQWQPP2+Y6FQkw=", - "dev": true, - "requires": { - "regenerator-runtime": "^0.12.0" - } - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.12.1.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.12.1.tgz", - "integrity": "sha1-+hpxVEdkwDb4xJsToIsllMn4oN4=", - "dev": true - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", - "dev": true + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.nlark.com/tslib/download/tslib-2.0.3.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.0.3.tgz", + "integrity": "sha1-jgdBrEX8DCJuWKF7/D5kubxsphw=" } } - }, - "zrender": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.0.7.tgz?cache=0&sync_timestamp=1583136509110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzrender%2Fdownload%2Fzrender-4.0.7.tgz", - "integrity": "sha1-Fa6WCCL17+1BCZXTflEH/j3hDm0=" } } } diff --git a/WebSite/package.json b/WebSite/package.json index 939263ad..3bc60281 100644 --- a/WebSite/package.json +++ b/WebSite/package.json @@ -1,122 +1,56 @@ { - "name": "vue-element-admin", - "version": "1.1.0", - "description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features", - "author": "Pan <panfree23@gmail.com>", - "license": "MIT", + "name": "noctua-admin", + "version": "1.0.6", + "private": true, "scripts": { - "serve": "vue-cli-service serve --open", - "build": "vue-cli-service build", - "build:prod": "vue-cli-service build", - "build:stage": "vue-cli-service build --mode staging", - "build:test": "vue-cli-service build --mode test", - "preview": "node build/index.js --preview", - "lint": "eslint --ext .js,.vue src", - "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src", - "test:unit": "jest --clearCache && vue-cli-service test:unit", - "test:ci": "npm run lint && npm run test:unit", - "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", - "new": "plop" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "src/**/*.{js,vue}": [ - "eslint --fix", - "git add" - ] - }, - "keywords": [ - "vue", - "admin", - "dashboard", - "element-ui", - "boilerplate", - "admin-template", - "management-system" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/PanJiaChen/vue-element-admin.git" - }, - "bugs": { - "url": "https://github.com/PanJiaChen/vue-element-admin/issues" + "serve:dev": "vue-cli-service serve --mode development", + "serve:mock": "vue-cli-service serve --mode mock", + "build:prod": "vue-cli-service build --mode production", + "lint": "vue-cli-service lint", + "config:dev": "vue-cli-service inspect --mode development >> webpack.config.development.js", + "config:prod": "vue-cli-service inspect --mode production >> webpack.config.production.js" }, "dependencies": { - "axios": "0.18.1", - "clipboard": "2.0.4", - "codemirror": "5.45.0", - "css-loader": "^3.5.3", - "driver.js": "0.9.5", - "dropzone": "5.5.1", - "echarts": "4.2.1", - "element-ui": "2.13.0", - "file-saver": "2.0.1", - "fuse.js": "3.4.4", - "js-cookie": "2.2.0", - "jsonlint": "1.6.3", - "jszip": "3.2.1", - "moment": "^2.24.0", - "normalize.css": "7.0.0", + "axios": "0.21.1", + "clipboard": "2.0.8", + "core-js": "3.15.0", + "crypto-js": "4.0.0", + "echarts": "5.1.2", + "element-plus": "1.1.0-beta.7", + "normalize.css": "8.0.1", "nprogress": "0.2.0", - "path-to-regexp": "2.4.0", - "screenfull": "4.2.0", - "script-loader": "0.7.2", - "showdown": "1.9.0", - "sortablejs": "1.8.4", - "tui-editor": "1.3.3", - "vue": "2.6.10", - "vue-count-to": "1.0.13", - "vue-jsonp": "^0.1.8", - "vue-router": "3.0.2", - "vue-splitpane": "1.0.4", - "vuedraggable": "2.20.0", - "vuex": "3.1.0", - "xlsx": "0.14.1" + "qiankun": "^2.5.0", + "vant": "3.1.3", + "vue": "3.2.8", + "vue-echarts": "6.0.0", + "vue-router": "4.0.11", + "vuedraggable": "4.0.3", + "vuex": "4.0.2" }, "devDependencies": { - "@babel/core": "7.0.0", - "@babel/register": "7.0.0", - "@vue/cli-plugin-babel": "3.5.3", - "@vue/cli-plugin-eslint": "^3.9.1", - "@vue/cli-plugin-unit-jest": "3.5.3", - "@vue/cli-service": "3.5.3", + "@fortawesome/fontawesome-free": "5.15.3", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-plugin-router": "~4.5.0", + "@vue/cli-plugin-vuex": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "@vue/compiler-sfc": "3.2.8", "@vue/eslint-config-prettier": "^6.0.0", - "@vue/test-utils": "1.0.0-beta.29", - "autoprefixer": "^9.5.1", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "10.0.1", - "babel-jest": "23.6.0", + "babel-eslint": "^10.1.0", "chalk": "2.4.2", - "chokidar": "2.1.5", - "connect": "3.6.6", - "eslint": "5.15.3", - "eslint-plugin-prettier": "^3.1.2", - "eslint-plugin-vue": "5.2.2", + "chokidar": "3.5.1", + "compression-webpack-plugin": "^5.0.1", + "eslint": "^6.7.2", + "eslint-plugin-prettier": "^3.1.3", + "eslint-plugin-vue": "^7.0.0-0", "html-webpack-plugin": "3.2.0", - "husky": "1.3.1", - "lint-staged": "8.1.5", - "mockjs": "1.0.1-beta3", - "node-sass": "^4.9.0", - "plop": "2.3.0", + "mockjs": "1.1.0", + "postcss": "^8.1.0", "prettier": "^1.19.1", - "runjs": "^4.3.2", - "sass-loader": "^7.1.0", + "sass": "^1.26.5", + "sass-loader": "^8.0.2", "script-ext-html-webpack-plugin": "2.1.3", - "serve-static": "^1.13.2", - "svg-sprite-loader": "4.1.3", - "svgo": "1.2.0", - "vue-template-compiler": "2.6.10" - }, - "engines": { - "node": ">=8.9", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] + "svg-sprite-loader": "6.0.7", + "vue-particles": "1.0.9" + } } diff --git a/WebSite/plop-templates/component/index.hbs b/WebSite/plop-templates/component/index.hbs deleted file mode 100644 index 76610552..00000000 --- a/WebSite/plop-templates/component/index.hbs +++ /dev/null @@ -1,26 +0,0 @@ -{{#if template}} -<template> - <div /> -</template> -{{/if}} - -{{#if script}} -<script> -export default { - name: '{{ properCase name }}', - props: {}, - data() { - return {} - }, - created() {}, - mounted() {}, - methods: {} -} -</script> -{{/if}} - -{{#if style}} -<style lang="scss" scoped> - -</style> -{{/if}} diff --git a/WebSite/plop-templates/component/prompt.js b/WebSite/plop-templates/component/prompt.js deleted file mode 100644 index 3723e8e1..00000000 --- a/WebSite/plop-templates/component/prompt.js +++ /dev/null @@ -1,55 +0,0 @@ -const { notEmpty } = require('../utils.js') - -module.exports = { - description: 'generate vue component', - prompts: [{ - type: 'input', - name: 'name', - message: 'component name please', - validate: notEmpty('name') - }, - { - type: 'checkbox', - name: 'blocks', - message: 'Blocks:', - choices: [{ - name: '<template>', - value: 'template', - checked: true - }, - { - name: '<script>', - value: 'script', - checked: true - }, - { - name: 'style', - value: 'style', - checked: true - } - ], - validate(value) { - if (value.indexOf('script') === -1 && value.indexOf('template') === -1) { - return 'Components require at least a <script> or <template> tag.' - } - return true - } - } - ], - actions: data => { - const name = '{{properCase name}}' - const actions = [{ - type: 'add', - path: `src/components/${name}/index.vue`, - templateFile: 'plop-templates/component/index.hbs', - data: { - name: name, - template: data.blocks.includes('template'), - script: data.blocks.includes('script'), - style: data.blocks.includes('style') - } - }] - - return actions - } -} diff --git a/WebSite/plop-templates/store/index.hbs b/WebSite/plop-templates/store/index.hbs deleted file mode 100644 index 4f8e2dc0..00000000 --- a/WebSite/plop-templates/store/index.hbs +++ /dev/null @@ -1,16 +0,0 @@ -{{#if state}} -const state = {} -{{/if}} - -{{#if mutations}} -const mutations = {} -{{/if}} - -{{#if actions}} -const actions = {} -{{/if}} - -export default { - namespaced: true, - {{options}} -} diff --git a/WebSite/plop-templates/store/prompt.js b/WebSite/plop-templates/store/prompt.js deleted file mode 100644 index bcbc11d1..00000000 --- a/WebSite/plop-templates/store/prompt.js +++ /dev/null @@ -1,62 +0,0 @@ -const { notEmpty } = require('../utils.js') - -module.exports = { - description: 'generate store', - prompts: [{ - type: 'input', - name: 'name', - message: 'store name please', - validate: notEmpty('name') - }, - { - type: 'checkbox', - name: 'blocks', - message: 'Blocks:', - choices: [{ - name: 'state', - value: 'state', - checked: true - }, - { - name: 'mutations', - value: 'mutations', - checked: true - }, - { - name: 'actions', - value: 'actions', - checked: true - } - ], - validate(value) { - if (!value.includes('state') || !value.includes('mutations')) { - return 'store require at least state and mutations' - } - return true - } - } - ], - actions(data) { - const name = '{{name}}' - const { blocks } = data - const options = ['state', 'mutations'] - const joinFlag = `, - ` - if (blocks.length === 3) { - options.push('actions') - } - - const actions = [{ - type: 'add', - path: `src/store/modules/${name}.js`, - templateFile: 'plop-templates/store/index.hbs', - data: { - options: options.join(joinFlag), - state: blocks.includes('state'), - mutations: blocks.includes('mutations'), - actions: blocks.includes('actions') - } - }] - return actions - } -} diff --git a/WebSite/plop-templates/utils.js b/WebSite/plop-templates/utils.js deleted file mode 100644 index 0310ca02..00000000 --- a/WebSite/plop-templates/utils.js +++ /dev/null @@ -1,9 +0,0 @@ -exports.notEmpty = name => { - return v => { - if (!v || v.trim === '') { - return `${name} is required` - } else { - return true - } - } -} diff --git a/WebSite/plop-templates/view/index.hbs b/WebSite/plop-templates/view/index.hbs deleted file mode 100644 index 76610552..00000000 --- a/WebSite/plop-templates/view/index.hbs +++ /dev/null @@ -1,26 +0,0 @@ -{{#if template}} -<template> - <div /> -</template> -{{/if}} - -{{#if script}} -<script> -export default { - name: '{{ properCase name }}', - props: {}, - data() { - return {} - }, - created() {}, - mounted() {}, - methods: {} -} -</script> -{{/if}} - -{{#if style}} -<style lang="scss" scoped> - -</style> -{{/if}} diff --git a/WebSite/plop-templates/view/prompt.js b/WebSite/plop-templates/view/prompt.js deleted file mode 100644 index 1d490ee8..00000000 --- a/WebSite/plop-templates/view/prompt.js +++ /dev/null @@ -1,55 +0,0 @@ -const { notEmpty } = require('../utils.js') - -module.exports = { - description: 'generate a view', - prompts: [{ - type: 'input', - name: 'name', - message: 'view name please', - validate: notEmpty('name') - }, - { - type: 'checkbox', - name: 'blocks', - message: 'Blocks:', - choices: [{ - name: '<template>', - value: 'template', - checked: true - }, - { - name: '<script>', - value: 'script', - checked: true - }, - { - name: 'style', - value: 'style', - checked: true - } - ], - validate(value) { - if (value.indexOf('script') === -1 && value.indexOf('template') === -1) { - return 'View require at least a <script> or <template> tag.' - } - return true - } - } - ], - actions: data => { - const name = '{{name}}' - const actions = [{ - type: 'add', - path: `src/views/${name}/index.vue`, - templateFile: 'plop-templates/view/index.hbs', - data: { - name: name, - template: data.blocks.includes('template'), - script: data.blocks.includes('script'), - style: data.blocks.includes('style') - } - }] - - return actions - } -} diff --git a/WebSite/plopfile.js b/WebSite/plopfile.js deleted file mode 100644 index 57387bf1..00000000 --- a/WebSite/plopfile.js +++ /dev/null @@ -1,9 +0,0 @@ -const viewGenerator = require('./plop-templates/view/prompt') -const componentGenerator = require('./plop-templates/component/prompt') -const storeGenerator = require('./plop-templates/store/prompt.js') - -module.exports = function(plop) { - plop.setGenerator('view', viewGenerator) - plop.setGenerator('component', componentGenerator) - plop.setGenerator('store', storeGenerator) -} diff --git a/WebSite/postcss.config.js b/WebSite/postcss.config.js deleted file mode 100644 index 961986e2..00000000 --- a/WebSite/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {} - } -} diff --git a/WebSite/public/favicon.ico b/WebSite/public/favicon.ico index 34b63ac63a87ee3ea8e7a0f3f5b5406c437e2112..9d699edc96e5d130902e9aa0bffaa3f177c23f02 100644 GIT binary patch literal 4286 zcmchaUrbY19LK*!+@?f_R;pvkW_*}NjR|I&m=OQW&3`SuT4+n9f54zYg9B+{IH4^f z&SV+F!;H}gGIep$`Qn2{eJ~o0QI{+sQ#0Ru^3DIo2gBX>-1d}H!K&qUkPqkdmh{u_ zIlptyJ%EM3GiO5l#mPdz24D{1B`hc6y79yJtOW@Y7XV$?vAz!~1$@1Z{6OxIt3-X@ z=&u+6HXY7`-fl|}ErLFh>%8_iiICOg6EggNbSM2KbQ~mqkrzZ)_=o*${r}RZD?Dfa zHt8l`3wP50tKw7LqCYsA|C@fGrq2Sss{nc@*^{Je0`!h49FyrH=RKnO)qbzy-~XZh zRmXv<LlbeSei1HyzYymeN^p*xsb7qTyFTZ4D14WHf42S&M*#b2AP}1izq1zZjUITC zlvY%uf7_D8cx29>wcmLR(2kD7j%qt1RW7!U6m>zZu(8_l@vHV3(Bo4xjemB2W?#$f zo7(52)#XQHjXmY&_sHKC(k`<tdA6&V{wb#W%Z%*#XbL(<WT*GW)}W?GYV6jRZJ(L$ z7xON%*F@){wY&;D(zBnTUr+j{=E5(sukRa=a6m&iecsOscP{-R`<g$Qoi)ERecmrf zcP{-#_I}oU$f0HzwPxg&ZBE8tnfINpfUNm*(y6w&@DHzdhphRuG0&<02nN@l66<}Q ztoc!M%kPlPU-ZJH_2>KzgRVn~^&a-SE=kYZ+WL_5HJS88>;Wd+f9$_w(APZ;EtMYI z+nn-x6KgT(uLyV4t`ctOG3%J`e-8S+y@j0j^65<>XIiaGuhMS!ZuH_tWKMGbv6<+1 z*)sW=y&>SQz)zc3Lf<`!*{7MZ{|@KR=&z%n`*0<0MP@VmM7sH0X2Sma9{#X!i|k#S zzh(BxGW-AGujkxD_&v;iv-vAEd#?R;(#@JjOw@dO_FVe62)FcmQZ=8Nci}eKUtZi4 zDiiCkLv@Sn@!Ic3%Wj(A*KI|M*Smn;7U>qPocHU-dLNP96u)yI@%%5IHJg3zJdObb zVG^oxW3O26ovHOM$6dB#zW?yK!`OcUU9<3`7D98So8P0tXhZG*ZjG#Y>Hd)Xy_wD* z8qYe;fpPG47s2-n;eJroV@2)HHoP|K%(&O7UfIu-zehQL^knjjXD{t2&m4b{lL<<> zCkIdP{1v6U&A8V|r`l%ntIz*7`ZthHa*aG8@*H@V{cO*l_m%VCBlfS5I4L8=O8z%L zKcCKJWFI*&2LAzi_K;FyA?nx|XWz%Mp-<znAxk<>`T9YUD{Oa@JWD)E+DI#DB-Ld3 eM`SYjf-EIb!p~blR+803BMsyY&#Tzbm;V8I<f$eA literal 67646 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 X;@D+E7Ad=S_FbjlW&KY_+xPzm3MBT? diff --git a/WebSite/public/index.html b/WebSite/public/index.html index e6b877d5..06c2b092 100644 --- a/WebSite/public/index.html +++ b/WebSite/public/index.html @@ -1,16 +1,25 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-02 15:20:19 +--> <!DOCTYPE html> -<html> +<html lang="en"> <head> <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <meta name="renderer" content="webkit"> - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> + <!-- <title><%= htmlWebpackPlugin.options.title %></title> --> <title><%= webpackConfig.name %></title> - <link rel="stylesheet" href="http://at.alicdn.com/t/font_1876535_e9h4x5vyl4.css"/> </head> <body> - <div id="app"></div> + <noscript> + <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> + </noscript> + <div id="app" class="light"></div> <!-- built files will be auto injected --> </body> </html> diff --git a/WebSite/src/App.vue b/WebSite/src/App.vue index 00fceee4..acb6df3b 100644 --- a/WebSite/src/App.vue +++ b/WebSite/src/App.vue @@ -1,14 +1,23 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: Qun + * @LastEditTime: 2021-08-18 17:19:17 +--> <template> - <div id="app"> - <router-view /> + <div id="app-inner"> + <router-view v-slot="{ Component }"> + <transition name="fade-transform-top" mode="out-in"> + <component :is="Component" /> + </transition> + </router-view> </div> </template> <script> export default { - name: "App" + name: 'App', + setup() {} }; </script> -<style lang="scss"> -@import "./styles/reset"; -</style> diff --git a/WebSite/src/api/Account.js b/WebSite/src/api/Account.js new file mode 100644 index 00000000..45ed9f48 --- /dev/null +++ b/WebSite/src/api/Account.js @@ -0,0 +1,17 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-28 15:54:35 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-28 16:00:16 + */ + +import request from '@/core/base/request'; + +class Account { + static login(data) { + return request.post('/account/pc/v1/login', data); + } +} + +export default Account; diff --git a/WebSite/src/api/article.js b/WebSite/src/api/article.js deleted file mode 100644 index 1d9fa291..00000000 --- a/WebSite/src/api/article.js +++ /dev/null @@ -1,41 +0,0 @@ -import request from "@/utils/request"; - -export function fetchList(query) { - return request({ - url: "/vue-element-admin/article/list", - method: "get", - params: query - }); -} - -export function fetchArticle(id) { - return request({ - url: "/vue-element-admin/article/detail", - method: "get", - params: { id } - }); -} - -export function fetchPv(pv) { - return request({ - url: "/vue-element-admin/article/pv", - method: "get", - params: { pv } - }); -} - -export function createArticle(data) { - return request({ - url: "/vue-element-admin/article/create", - method: "post", - data - }); -} - -export function updateArticle(data) { - return request({ - url: "/vue-element-admin/article/update", - method: "post", - data - }); -} diff --git a/WebSite/src/api/qiniu.js b/WebSite/src/api/qiniu.js deleted file mode 100644 index c8431009..00000000 --- a/WebSite/src/api/qiniu.js +++ /dev/null @@ -1,8 +0,0 @@ -import request from "@/utils/request"; - -export function getToken() { - return request({ - url: "/qiniu/upload/token", // å‡åœ°å€ è‡ªè¡Œæ›¿æ¢ - method: "get" - }); -} diff --git a/WebSite/src/api/remote-search.js b/WebSite/src/api/remote-search.js deleted file mode 100644 index 2cccb113..00000000 --- a/WebSite/src/api/remote-search.js +++ /dev/null @@ -1,17 +0,0 @@ -import request from "@/utils/request"; - -export function searchUser(name) { - return request({ - url: "/vue-element-admin/search/user", - method: "get", - params: { name } - }); -} - -export function transactionList(query) { - return request({ - url: "/vue-element-admin/transaction/list", - method: "get", - params: query - }); -} diff --git a/WebSite/src/api/role.js b/WebSite/src/api/role.js deleted file mode 100644 index e861bb52..00000000 --- a/WebSite/src/api/role.js +++ /dev/null @@ -1,38 +0,0 @@ -import request from "@/utils/request"; - -export function getRoutes() { - return request({ - url: "/vue-element-admin/routes", - method: "get" - }); -} - -export function getRoles() { - return request({ - url: "/vue-element-admin/roles", - method: "get" - }); -} - -export function addRole(data) { - return request({ - url: "/vue-element-admin/role", - method: "post", - data - }); -} - -export function updateRole(id, data) { - return request({ - url: `/vue-element-admin/role/${id}`, - method: "put", - data - }); -} - -export function deleteRole(id) { - return request({ - url: `/vue-element-admin/role/${id}`, - method: "delete" - }); -} diff --git a/WebSite/src/api/user.js b/WebSite/src/api/user.js index d55d770f..ee1b4984 100644 --- a/WebSite/src/api/user.js +++ b/WebSite/src/api/user.js @@ -1,31 +1,21 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:56 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-04-21 10:21:42 + * @Autor: dongjunhua + * @Date: 2021-01-29 10:15:50 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-29 10:16:25 */ -import request from "@/utils/request"; -export function login(data) { - return request({ - url: "/vue-element-admin/user/login", - method: "post", - data - }); -} +import request from '@/core/base/request'; -export function getInfo(token) { - return request({ - url: "/vue-element-admin/user/info", - method: "get", - params: { token } - }); -} +class User { + static setCurrent(data) { + return request.post('/user/pc/v1/setCurrent', data); + } -export function logout() { - return request({ - url: "/vue-element-admin/user/logout", - method: "post" - }); + static getCurrent() { + return request.post('/user/pc/v1/getCurrent'); + } } + +export default User; diff --git a/WebSite/src/assets/configs/default.json b/WebSite/src/assets/configs/default.json deleted file mode 100644 index c89256b7..00000000 --- a/WebSite/src/assets/configs/default.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "default", - "recognizeId": "seasky_base_data" -} diff --git a/WebSite/src/assets/configs/staging.json b/WebSite/src/assets/configs/staging.json deleted file mode 100644 index d5649cb9..00000000 --- a/WebSite/src/assets/configs/staging.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "staging", - "recognizeId": "seasky_base_data" -} diff --git a/WebSite/src/assets/configs/test.json b/WebSite/src/assets/configs/test.json deleted file mode 100644 index 95de4201..00000000 --- a/WebSite/src/assets/configs/test.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "test", - "recognizeId": "seasky_base_data" -} diff --git a/WebSite/src/assets/custom-theme/index.css b/WebSite/src/assets/custom-theme/index.css index e8b4e08b..51058708 100644 --- a/WebSite/src/assets/custom-theme/index.css +++ b/WebSite/src/assets/custom-theme/index.css @@ -1 +1,19862 @@ -@charset "UTF-8";.custom-theme .fade-in-linear-enter-active,.custom-theme .fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .fade-in-linear-enter,.custom-theme .fade-in-linear-leave,.custom-theme .fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-linear-enter-active,.custom-theme .el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .el-fade-in-linear-enter,.custom-theme .el-fade-in-linear-leave,.custom-theme .el-fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-enter-active,.custom-theme .el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-fade-in-enter,.custom-theme .el-fade-in-leave-active{opacity:0}.custom-theme .el-zoom-in-center-enter-active,.custom-theme .el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-zoom-in-center-enter,.custom-theme .el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.custom-theme .el-zoom-in-top-enter-active,.custom-theme .el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center top;transform-origin:center top}.custom-theme .el-zoom-in-top-enter,.custom-theme .el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-bottom-enter-active,.custom-theme .el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center bottom;transform-origin:center bottom}.custom-theme .el-zoom-in-bottom-enter,.custom-theme .el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-left-enter-active,.custom-theme .el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:top left;transform-origin:top left}.custom-theme .el-zoom-in-left-enter,.custom-theme .el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.custom-theme .el-list-enter-active,.custom-theme .el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.custom-theme .el-list-enter,.custom-theme .el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.custom-theme .el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}@font-face{font-family:element-icons;src:url(fonts/element-icons.woff?t=1508751886602) format("woff"),url(fonts/element-icons.ttf?t=1508751886602) format("truetype");font-weight:400;font-style:normal}.custom-theme [class*=" el-icon-"],.custom-theme [class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.custom-theme .el-icon-upload:before{content:"\e60d"}.custom-theme .el-icon-error:before{content:"\e62c"}.custom-theme .el-icon-success:before{content:"\e62d"}.custom-theme .el-icon-warning:before{content:"\e62e"}.custom-theme .el-icon-sort-down:before{content:"\e630"}.custom-theme .el-icon-sort-up:before{content:"\e631"}.custom-theme .el-icon-arrow-left:before{content:"\e600"}.custom-theme .el-icon-circle-plus:before{content:"\e601"}.custom-theme .el-icon-circle-plus-outline:before{content:"\e602"}.custom-theme .el-icon-arrow-down:before{content:"\e603"}.custom-theme .el-icon-arrow-right:before{content:"\e604"}.custom-theme .el-icon-arrow-up:before{content:"\e605"}.custom-theme .el-icon-back:before{content:"\e606"}.custom-theme .el-icon-circle-close:before{content:"\e607"}.custom-theme .el-icon-date:before{content:"\e608"}.custom-theme .el-icon-circle-close-outline:before{content:"\e609"}.custom-theme .el-icon-caret-left:before{content:"\e60a"}.custom-theme .el-icon-caret-bottom:before{content:"\e60b"}.custom-theme .el-icon-caret-top:before{content:"\e60c"}.custom-theme .el-icon-caret-right:before{content:"\e60e"}.custom-theme .el-icon-close:before{content:"\e60f"}.custom-theme .el-icon-d-arrow-left:before{content:"\e610"}.custom-theme .el-icon-check:before{content:"\e611"}.custom-theme .el-icon-delete:before{content:"\e612"}.custom-theme .el-icon-d-arrow-right:before{content:"\e613"}.custom-theme .el-icon-document:before{content:"\e614"}.custom-theme .el-icon-d-caret:before{content:"\e615"}.custom-theme .el-icon-edit-outline:before{content:"\e616"}.custom-theme .el-icon-download:before{content:"\e617"}.custom-theme .el-icon-goods:before{content:"\e618"}.custom-theme .el-icon-search:before{content:"\e619"}.custom-theme .el-icon-info:before{content:"\e61a"}.custom-theme .el-icon-message:before{content:"\e61b"}.custom-theme .el-icon-edit:before{content:"\e61c"}.custom-theme .el-icon-location:before{content:"\e61d"}.custom-theme .el-icon-loading:before{content:"\e61e"}.custom-theme .el-icon-location-outline:before{content:"\e61f"}.custom-theme .el-icon-menu:before{content:"\e620"}.custom-theme .el-icon-minus:before{content:"\e621"}.custom-theme .el-icon-bell:before{content:"\e622"}.custom-theme .el-icon-mobile-phone:before{content:"\e624"}.custom-theme .el-icon-news:before{content:"\e625"}.custom-theme .el-icon-more:before{content:"\e646"}.custom-theme .el-icon-more-outline:before{content:"\e626"}.custom-theme .el-icon-phone:before{content:"\e627"}.custom-theme .el-icon-phone-outline:before{content:"\e628"}.custom-theme .el-icon-picture:before{content:"\e629"}.custom-theme .el-icon-picture-outline:before{content:"\e62a"}.custom-theme .el-icon-plus:before{content:"\e62b"}.custom-theme .el-icon-printer:before{content:"\e62f"}.custom-theme .el-icon-rank:before{content:"\e632"}.custom-theme .el-icon-refresh:before{content:"\e633"}.custom-theme .el-icon-question:before{content:"\e634"}.custom-theme .el-icon-remove:before{content:"\e635"}.custom-theme .el-icon-share:before{content:"\e636"}.custom-theme .el-icon-star-on:before{content:"\e637"}.custom-theme .el-icon-setting:before{content:"\e638"}.custom-theme .el-icon-circle-check:before{content:"\e639"}.custom-theme .el-icon-service:before{content:"\e63a"}.custom-theme .el-icon-sold-out:before{content:"\e63b"}.custom-theme .el-icon-remove-outline:before{content:"\e63c"}.custom-theme .el-icon-star-off:before{content:"\e63d"}.custom-theme .el-icon-circle-check-outline:before{content:"\e63e"}.custom-theme .el-icon-tickets:before{content:"\e63f"}.custom-theme .el-icon-sort:before{content:"\e640"}.custom-theme .el-icon-zoom-in:before{content:"\e641"}.custom-theme .el-icon-time:before{content:"\e642"}.custom-theme .el-icon-view:before{content:"\e643"}.custom-theme .el-icon-upload2:before{content:"\e644"}.custom-theme .el-icon-zoom-out:before{content:"\e645"}.custom-theme .el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.custom-theme .el-icon--right{margin-left:5px}.custom-theme .el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .el-select-dropdown{position:absolute;z-index:1001;border:solid 1px #dfe4ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#262729;background-color:#fff}.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"\E611";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.custom-theme .el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.custom-theme .el-select-dropdown .popper__arrow{-webkit-transform:translateX(-400%);transform:translateX(-400%)}.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow{-webkit-transform:translateX(-200%);transform:translateX(-200%)}.custom-theme .el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.custom-theme .el-select-dropdown__wrap{max-height:274px}.custom-theme .el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-tag{background-color:rgba(38,39,41,.1);display:inline-block;padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#262729;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(38,39,41,.2);white-space:nowrap}.custom-theme .el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-5px;color:#262729}.custom-theme .el-tag .el-icon-close::before{display:block}.custom-theme .el-tag .el-icon-close:hover{background-color:#262729;color:#fff}.custom-theme .el-tag--info{background-color:rgba(10,118,164,.1);border-color:rgba(10,118,164,.2);color:#0a76a4}.custom-theme .el-tag--info.is-hit{border-color:#0a76a4}.custom-theme .el-tag--info .el-tag__close{color:#0a76a4}.custom-theme .el-tag--info .el-tag__close:hover{background-color:#0a76a4;color:#fff}.custom-theme .el-tag--success{background-color:rgba(64,145,103,.1);border-color:rgba(64,145,103,.2);color:#409167}.custom-theme .el-tag--success.is-hit{border-color:#409167}.custom-theme .el-tag--success .el-tag__close{color:#409167}.custom-theme .el-tag--success .el-tag__close:hover{background-color:#409167;color:#fff}.custom-theme .el-tag--warning{background-color:rgba(157,164,8,.1);border-color:rgba(157,164,8,.2);color:#9da408}.custom-theme .el-tag--warning.is-hit{border-color:#9da408}.custom-theme .el-tag--warning .el-tag__close{color:#9da408}.custom-theme .el-tag--warning .el-tag__close:hover{background-color:#9da408;color:#fff}.custom-theme .el-tag--danger{background-color:rgba(179,69,14,.1);border-color:rgba(179,69,14,.2);color:#b3450e}.custom-theme .el-tag--danger.is-hit{border-color:#b3450e}.custom-theme .el-tag--danger .el-tag__close{color:#b3450e}.custom-theme .el-tag--danger .el-tag__close:hover{background-color:#b3450e;color:#fff}.custom-theme .el-tag--medium{height:28px;line-height:26px}.custom-theme .el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--small{height:24px;padding:0 8px;line-height:22px}.custom-theme .el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--mini{height:20px;padding:0 5px;line-height:19px}.custom-theme .el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.custom-theme .el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5a5e66;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.custom-theme .el-select-dropdown__item.is-disabled{color:#b4bccc;cursor:not-allowed}.custom-theme .el-select-dropdown__item.is-disabled:hover{background-color:#fff}.custom-theme .el-select-dropdown__item.hover,.custom-theme .el-select-dropdown__item:hover{background-color:#f5f7fa}.custom-theme .el-select-dropdown__item.selected{color:#262729;font-weight:700}.custom-theme .el-select-dropdown__item span{line-height:34px!important}.custom-theme .el-select-group{margin:0;padding:0}.custom-theme .el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.custom-theme .el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.custom-theme .el-select-group__wrap:not(:last-of-type)::after{content:'';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#dfe4ed}.custom-theme .el-select-group__title{padding-left:20px;font-size:12px;color:#0a76a4;line-height:30px}.custom-theme .el-select-group .el-select-dropdown__item{padding-left:20px}.custom-theme .el-scrollbar{overflow:hidden;position:relative}.custom-theme .el-scrollbar:active>.el-scrollbar__bar,.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,.custom-theme .el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.custom-theme .el-scrollbar__wrap{overflow:scroll;height:100%}.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.custom-theme .el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(135,141,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.5)}.custom-theme .el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.custom-theme .el-scrollbar__bar.is-vertical{width:6px;top:2px}.custom-theme .el-scrollbar__bar.is-vertical>div{width:100%}.custom-theme .el-scrollbar__bar.is-horizontal{height:6px;left:2px}.custom-theme .el-scrollbar__bar.is-horizontal>div{height:100%}.custom-theme .el-select{display:inline-block;position:relative}.custom-theme .el-select:hover .el-input__inner{border-color:#b4bccc}.custom-theme .el-select .el-input__inner{cursor:pointer;padding-right:35px}.custom-theme .el-select .el-input__inner:focus{border-color:#262729}.custom-theme .el-select .el-input .el-select__caret{color:#b4bccc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);line-height:16px;cursor:pointer}.custom-theme .el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotateZ(0);transform:rotateZ(0)}.custom-theme .el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);border-radius:100%;color:#b4bccc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover{color:#878d99}.custom-theme .el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover{border-color:#dfe4ed}.custom-theme .el-select>.el-input{display:block}.custom-theme .el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;vertical-align:baseline;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.custom-theme .el-select__input.is-mini{height:14px}.custom-theme .el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#b4bccc;line-height:18px;font-size:14px}.custom-theme .el-select__close:hover{color:#878d99}.custom-theme .el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.custom-theme .el-select .el-tag__close{margin-top:-2px}.custom-theme .el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:3px 0 3px 6px;background-color:#f0f2f5}.custom-theme .el-select .el-tag__close.el-icon-close{background-color:#b4bccc;right:-7px;color:#fff}.custom-theme .el-select .el-tag__close.el-icon-close:hover{background-color:#878d99}.custom-theme .el-select .el-tag__close.el-icon-close::before{display:block;-webkit-transform:translate(0,.5px);transform:translate(0,.5px)}.custom-theme .el-select__tag{display:inline-block;height:24px;line-height:24px;font-size:14px;border-radius:4px;color:#fff;background-color:#262729}.custom-theme .el-select__tag .el-icon-close{font-size:14px}.custom-theme .el-pagination{white-space:nowrap;padding:2px 5px;color:#2d2f33;font-weight:700}.custom-theme .el-pagination::after,.custom-theme .el-pagination::before{display:table;content:""}.custom-theme .el-pagination::after{clear:both}.custom-theme .el-pagination button,.custom-theme .el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-pagination .el-input__inner{text-align:center}.custom-theme .el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-pagination .el-select .el-input{width:100px;margin:0 5px}.custom-theme .el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px;height:28px}.custom-theme .el-pagination button{border:none;padding:0 6px;background:0 0}.custom-theme .el-pagination button:focus{outline:0}.custom-theme .el-pagination button:hover{color:#262729}.custom-theme .el-pagination button.disabled{color:#b4bccc;background-color:#fff;cursor:not-allowed}.custom-theme .el-pagination .btn-next,.custom-theme .el-pagination .btn-prev{background:center center no-repeat;background-size:16px;background-color:#fff;cursor:pointer;margin:0;color:#2d2f33}.custom-theme .el-pagination .btn-next .el-icon,.custom-theme .el-pagination .btn-prev .el-icon{display:block;font-size:12px}.custom-theme .el-pagination .btn-prev{padding-right:12px}.custom-theme .el-pagination .btn-next{padding-left:12px}.custom-theme .el-pagination--small .btn-next,.custom-theme .el-pagination--small .btn-prev,.custom-theme .el-pagination--small .el-pager li,.custom-theme .el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.custom-theme .el-pagination--small .arrow.disabled{visibility:hidden}.custom-theme .el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#5a5e66}.custom-theme .el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.custom-theme .el-pagination__sizes .el-input .el-input__inner:hover{border-color:#262729}.custom-theme .el-pagination__total{margin-right:10px;font-weight:400;color:#5a5e66}.custom-theme .el-pagination__jump{margin-left:24px;font-weight:400;color:#5a5e66}.custom-theme .el-pagination__jump .el-input__inner{padding:0 3px}.custom-theme .el-pagination__rightwrapper{float:right}.custom-theme .el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px;-moz-appearance:textfield}.custom-theme .el-pagination__editor.el-input{width:50px}.custom-theme .el-pagination__editor.el-input .el-input__inner{height:28px}.custom-theme .el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.custom-theme .el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.custom-theme .el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;display:inline-block;vertical-align:top;font-size:0;padding:0;margin:0}.custom-theme .el-pager .el-icon-more::before{vertical-align:-4px}.custom-theme .el-pager li{padding:0 4px;background:#fff;vertical-align:top;display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;margin:0}.custom-theme .el-pager li.btn-quicknext,.custom-theme .el-pager li.btn-quickprev{line-height:28px;color:#2d2f33}.custom-theme .el-pager li.btn-quickprev:hover{cursor:pointer}.custom-theme .el-pager li.btn-quicknext:hover{cursor:pointer}.custom-theme .el-pager li.active+li{border-left:0}.custom-theme .el-pager li:hover{color:#262729}.custom-theme .el-pager li.active{color:#262729;cursor:default}.custom-theme .v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.custom-theme .v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.custom-theme .v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.custom-theme .el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.custom-theme .el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.custom-theme .el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.custom-theme .el-dialog__header{padding:15px;padding-bottom:10px}.custom-theme .el-dialog__headerbtn{position:absolute;top:15px;right:15px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.custom-theme .el-dialog__headerbtn .el-dialog__close{color:#0a76a4}.custom-theme .el-dialog__headerbtn:focus .el-dialog__close,.custom-theme .el-dialog__headerbtn:hover .el-dialog__close{color:#262729}.custom-theme .el-dialog__title{line-height:24px;font-size:18px;color:#2d2f33}.custom-theme .el-dialog__body{padding:30px 20px;color:#5a5e66;line-height:24px;font-size:14px}.custom-theme .el-dialog__footer{padding:15px;padding-top:10px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-dialog--center{text-align:center}.custom-theme .el-dialog--center .el-dialog__header{padding-top:30px}.custom-theme .el-dialog--center .el-dialog__body{text-align:initial;padding:25px 27px 30px}.custom-theme .el-dialog--center .el-dialog__footer{text-align:inherit;padding-bottom:30px}.custom-theme .dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.custom-theme .dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-scrollbar{overflow:hidden;position:relative}.custom-theme .el-scrollbar:active>.el-scrollbar__bar,.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,.custom-theme .el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.custom-theme .el-scrollbar__wrap{overflow:scroll;height:100%}.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.custom-theme .el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(135,141,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.5)}.custom-theme .el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.custom-theme .el-scrollbar__bar.is-vertical{width:6px;top:2px}.custom-theme .el-scrollbar__bar.is-vertical>div{width:100%}.custom-theme .el-scrollbar__bar.is-horizontal{height:6px;left:2px}.custom-theme .el-scrollbar__bar.is-horizontal>div{height:100%}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .el-autocomplete{position:relative;display:inline-block}.custom-theme .el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px}.custom-theme .el-autocomplete-suggestion.el-popper .popper__arrow{left:24px!important}.custom-theme .el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;background-color:#fff;border:1px solid #dfe4ed;border-radius:4px}.custom-theme .el-autocomplete-suggestion__list{margin:0;padding:0}.custom-theme .el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#5a5e66;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-theme .el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.custom-theme .el-autocomplete-suggestion li.highlighted{background-color:#f5f7fa}.custom-theme .el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.custom-theme .el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.custom-theme .el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.custom-theme .el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.custom-theme .el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.custom-theme .el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.custom-theme .el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-color:#d8dce5;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button+.el-button{margin-left:10px}.custom-theme .el-button.is-round{padding:12px 20px}.custom-theme .el-button:focus,.custom-theme .el-button:hover{color:#262729;border-color:#bebebf;background-color:#e9e9ea}.custom-theme .el-button:active{color:#222325;border-color:#222325;outline:0}.custom-theme .el-button::-moz-focus-inner{border:0}.custom-theme .el-button [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-button.is-plain:focus,.custom-theme .el-button.is-plain:hover{background:#fff;border-color:#262729;color:#262729}.custom-theme .el-button.is-plain:active{background:#fff;border-color:#222325;color:#222325;outline:0}.custom-theme .el-button.is-active{color:#222325;border-color:#222325}.custom-theme .el-button.is-disabled,.custom-theme .el-button.is-disabled:focus,.custom-theme .el-button.is-disabled:hover{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5}.custom-theme .el-button.is-disabled.el-button--text{background-color:transparent}.custom-theme .el-button.is-disabled.is-plain,.custom-theme .el-button.is-disabled.is-plain:focus,.custom-theme .el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#e6ebf5;color:#b4bccc}.custom-theme .el-button.is-loading{position:relative;pointer-events:none}.custom-theme .el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.custom-theme .el-button.is-round{border-radius:20px;padding:12px 23px}.custom-theme .el-button--primary{color:#fff;background-color:#262729;border-color:#262729}.custom-theme .el-button--primary:focus,.custom-theme .el-button--primary:hover{background:#515254;border-color:#515254;color:#fff}.custom-theme .el-button--primary:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-active{background:#222325;border-color:#222325;color:#fff}.custom-theme .el-button--primary.is-disabled,.custom-theme .el-button--primary.is-disabled:active,.custom-theme .el-button--primary.is-disabled:focus,.custom-theme .el-button--primary.is-disabled:hover{color:#fff;background-color:#939394;border-color:#939394}.custom-theme .el-button--primary.is-plain{color:#262729;background:#e9e9ea;border-color:#a8a9a9}.custom-theme .el-button--primary.is-plain:focus,.custom-theme .el-button--primary.is-plain:hover{background:#262729;border-color:#262729;color:#fff}.custom-theme .el-button--primary.is-plain:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-plain.is-disabled,.custom-theme .el-button--primary.is-plain.is-disabled:active,.custom-theme .el-button--primary.is-plain.is-disabled:focus,.custom-theme .el-button--primary.is-plain.is-disabled:hover{color:#7d7d7f;background-color:#e9e9ea;border-color:#d4d4d4}.custom-theme .el-button--success{color:#fff;background-color:#409167;border-color:#409167}.custom-theme .el-button--success:focus,.custom-theme .el-button--success:hover{background:#66a785;border-color:#66a785;color:#fff}.custom-theme .el-button--success:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-active{background:#3a835d;border-color:#3a835d;color:#fff}.custom-theme .el-button--success.is-disabled,.custom-theme .el-button--success.is-disabled:active,.custom-theme .el-button--success.is-disabled:focus,.custom-theme .el-button--success.is-disabled:hover{color:#fff;background-color:#a0c8b3;border-color:#a0c8b3}.custom-theme .el-button--success.is-plain{color:#409167;background:#ecf4f0;border-color:#b3d3c2}.custom-theme .el-button--success.is-plain:focus,.custom-theme .el-button--success.is-plain:hover{background:#409167;border-color:#409167;color:#fff}.custom-theme .el-button--success.is-plain:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-plain.is-disabled,.custom-theme .el-button--success.is-plain.is-disabled:active,.custom-theme .el-button--success.is-plain.is-disabled:focus,.custom-theme .el-button--success.is-plain.is-disabled:hover{color:#8cbda4;background-color:#ecf4f0;border-color:#d9e9e1}.custom-theme .el-button--warning{color:#fff;background-color:#9da408;border-color:#9da408}.custom-theme .el-button--warning:focus,.custom-theme .el-button--warning:hover{background:#b1b639;border-color:#b1b639;color:#fff}.custom-theme .el-button--warning:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-active{background:#8d9407;border-color:#8d9407;color:#fff}.custom-theme .el-button--warning.is-disabled,.custom-theme .el-button--warning.is-disabled:active,.custom-theme .el-button--warning.is-disabled:focus,.custom-theme .el-button--warning.is-disabled:hover{color:#fff;background-color:#ced284;border-color:#ced284}.custom-theme .el-button--warning.is-plain{color:#9da408;background:#f5f6e6;border-color:#d8db9c}.custom-theme .el-button--warning.is-plain:focus,.custom-theme .el-button--warning.is-plain:hover{background:#9da408;border-color:#9da408;color:#fff}.custom-theme .el-button--warning.is-plain:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-plain.is-disabled,.custom-theme .el-button--warning.is-plain.is-disabled:active,.custom-theme .el-button--warning.is-plain.is-disabled:focus,.custom-theme .el-button--warning.is-plain.is-disabled:hover{color:#c4c86b;background-color:#f5f6e6;border-color:#ebedce}.custom-theme .el-button--danger{color:#fff;background-color:#b3450e;border-color:#b3450e}.custom-theme .el-button--danger:focus,.custom-theme .el-button--danger:hover{background:#c26a3e;border-color:#c26a3e;color:#fff}.custom-theme .el-button--danger:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-active{background:#a13e0d;border-color:#a13e0d;color:#fff}.custom-theme .el-button--danger.is-disabled,.custom-theme .el-button--danger.is-disabled:active,.custom-theme .el-button--danger.is-disabled:focus,.custom-theme .el-button--danger.is-disabled:hover{color:#fff;background-color:#d9a287;border-color:#d9a287}.custom-theme .el-button--danger.is-plain{color:#b3450e;background:#f7ece7;border-color:#e1b59f}.custom-theme .el-button--danger.is-plain:focus,.custom-theme .el-button--danger.is-plain:hover{background:#b3450e;border-color:#b3450e;color:#fff}.custom-theme .el-button--danger.is-plain:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-plain.is-disabled,.custom-theme .el-button--danger.is-plain.is-disabled:active,.custom-theme .el-button--danger.is-plain.is-disabled:focus,.custom-theme .el-button--danger.is-plain.is-disabled:hover{color:#d18f6e;background-color:#f7ece7;border-color:#f0dacf}.custom-theme .el-button--info{color:#fff;background-color:#0a76a4;border-color:#0a76a4}.custom-theme .el-button--info:focus,.custom-theme .el-button--info:hover{background:#3b91b6;border-color:#3b91b6;color:#fff}.custom-theme .el-button--info:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-active{background:#096a94;border-color:#096a94;color:#fff}.custom-theme .el-button--info.is-disabled,.custom-theme .el-button--info.is-disabled:active,.custom-theme .el-button--info.is-disabled:focus,.custom-theme .el-button--info.is-disabled:hover{color:#fff;background-color:#85bbd2;border-color:#85bbd2}.custom-theme .el-button--info.is-plain{color:#0a76a4;background:#e7f1f6;border-color:#9dc8db}.custom-theme .el-button--info.is-plain:focus,.custom-theme .el-button--info.is-plain:hover{background:#0a76a4;border-color:#0a76a4;color:#fff}.custom-theme .el-button--info.is-plain:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-plain.is-disabled,.custom-theme .el-button--info.is-plain.is-disabled:active,.custom-theme .el-button--info.is-plain.is-disabled:focus,.custom-theme .el-button--info.is-plain.is-disabled:hover{color:#6cadc8;background-color:#e7f1f6;border-color:#cee4ed}.custom-theme .el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button--medium.is-round{padding:10px 20px}.custom-theme .el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--small.is-round{padding:9px 15px}.custom-theme .el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--mini.is-round{padding:7px 15px}.custom-theme .el-button--text{border:none;color:#262729;background:0 0;padding-left:0;padding-right:0}.custom-theme .el-button--text:focus,.custom-theme .el-button--text:hover{color:#515254;border-color:transparent;background-color:transparent}.custom-theme .el-button--text:active{color:#222325;border-color:transparent;background-color:transparent}.custom-theme .el-button-group{display:inline-block;vertical-align:middle}.custom-theme .el-button-group::after,.custom-theme .el-button-group::before{display:table;content:""}.custom-theme .el-button-group::after{clear:both}.custom-theme .el-button-group .el-button{float:left;position:relative}.custom-theme .el-button-group .el-button+.el-button{margin-left:0}.custom-theme .el-button-group .el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-button-group .el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child){border-radius:0}.custom-theme .el-button-group .el-button:not(:last-child){margin-right:-1px}.custom-theme .el-button-group .el-button:active,.custom-theme .el-button-group .el-button:focus,.custom-theme .el-button-group .el-button:hover{z-index:1}.custom-theme .el-button-group .el-button.is-active{z-index:1}.custom-theme .el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .el-dropdown{display:inline-block;position:relative;color:#5a5e66;font-size:14px}.custom-theme .el-dropdown .el-button-group{display:block}.custom-theme .el-dropdown .el-button-group .el-button{float:none}.custom-theme .el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.custom-theme .el-dropdown .el-dropdown__caret-button::before{content:'';position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:rgba(255,255,255,.5)}.custom-theme .el-dropdown .el-dropdown__caret-button:hover::before{top:0;bottom:0}.custom-theme .el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.custom-theme .el-dropdown__icon{font-size:12px;margin:0 3px}.custom-theme .el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.custom-theme .el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#5a5e66;cursor:pointer}.custom-theme .el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e9e9ea;color:#515254}.custom-theme .el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #e6ebf5}.custom-theme .el-dropdown-menu__item--divided:before{content:'';height:6px;display:block;margin:0 -20px;background-color:#fff}.custom-theme .el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.custom-theme .el-dropdown-menu--medium{padding:6px 0}.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.custom-theme .el-dropdown-menu--small{padding:6px 0}.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.custom-theme .el-dropdown-menu--mini{padding:3px 0}.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.custom-theme .el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.custom-theme .el-menu::after,.custom-theme .el-menu::before{display:table;content:""}.custom-theme .el-menu::after{clear:both}.custom-theme .el-menu li{list-style:none}.custom-theme .el-menu--horizontal{border-right:none;border-bottom:solid 1px #e6e6e6}.custom-theme .el-menu--horizontal .el-menu-item{float:left;height:60px;line-height:60px;margin:0;cursor:pointer;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:2px solid transparent;color:#878d99}.custom-theme .el-menu--horizontal .el-menu-item a,.custom-theme .el-menu--horizontal .el-menu-item a:hover{color:inherit}.custom-theme .el-menu--horizontal .el-menu-item:focus,.custom-theme .el-menu--horizontal .el-menu-item:hover{background-color:#fff}.custom-theme .el-menu--horizontal .el-submenu{float:left;position:relative}.custom-theme .el-menu--horizontal .el-submenu:focus{outline:0}.custom-theme .el-menu--horizontal .el-submenu:focus>.el-submenu__title{color:#2d2f33}.custom-theme .el-menu--horizontal .el-submenu>.el-menu{position:absolute;top:65px;left:0;border:none;padding:5px 0;background-color:#fff;z-index:100;min-width:100%;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px}.custom-theme .el-menu--horizontal .el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#878d99}.custom-theme .el-menu--horizontal .el-submenu .el-submenu__title:hover{background-color:#fff}.custom-theme .el-menu--horizontal .el-submenu .el-menu-item{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px}.custom-theme .el-menu--horizontal .el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.custom-theme .el-menu--horizontal .el-menu-item:focus,.custom-theme .el-menu--horizontal .el-menu-item:hover,.custom-theme .el-menu--horizontal .el-submenu__title:hover{outline:0;color:#2d2f33}.custom-theme .el-menu--horizontal>.el-menu-item.is-active,.custom-theme .el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #262729;color:#2d2f33}.custom-theme .el-menu--collapse{width:64px}.custom-theme .el-menu--collapse>.el-menu-item [class^=el-icon-],.custom-theme .el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.custom-theme .el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.custom-theme .el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.custom-theme .el-menu--collapse>.el-menu-item span,.custom-theme .el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.custom-theme .el-menu--collapse>.el-menu-item.is-active i{color:inherit}.custom-theme .el-menu--collapse .el-menu .el-submenu{min-width:200px}.custom-theme .el-menu--collapse .el-submenu{position:relative}.custom-theme .el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #dfe4ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.custom-theme .el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.custom-theme .el-menu-item{height:56px;line-height:56px;font-size:14px;color:#2d2f33;padding:0 20px;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.custom-theme .el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px}.custom-theme .el-menu-item *{vertical-align:middle}.custom-theme .el-menu-item:first-child{margin-left:0}.custom-theme .el-menu-item:last-child{margin-right:0}.custom-theme .el-menu-item:focus,.custom-theme .el-menu-item:hover{outline:0;background-color:#e9e9ea}.custom-theme .el-menu-item i{color:#878d99}.custom-theme .el-menu-item.is-active{color:#262729}.custom-theme .el-menu-item.is-active i{color:inherit}.custom-theme .el-submenu__title{position:relative;height:56px;line-height:56px;font-size:14px;color:#2d2f33;padding:0 20px;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.custom-theme .el-submenu__title *{vertical-align:middle}.custom-theme .el-submenu__title i{color:#878d99}.custom-theme .el-submenu__title:hover{background-color:#e9e9ea}.custom-theme .el-submenu .el-menu{border:none}.custom-theme .el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.custom-theme .el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.custom-theme .el-submenu.is-active .el-submenu__title{border-bottom-color:#262729}.custom-theme .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.custom-theme .el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.custom-theme .el-menu-item-group>ul{padding:0}.custom-theme .el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#878d99}.custom-theme .horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.custom-theme .el-input-number .el-input{display:block}.custom-theme .el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.custom-theme .el-input-number__decrease,.custom-theme .el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#5a5e66;cursor:pointer;font-size:13px}.custom-theme .el-input-number__decrease:hover,.custom-theme .el-input-number__increase:hover{color:#262729}.custom-theme .el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.custom-theme .el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#262729}.custom-theme .el-input-number__decrease.is-disabled,.custom-theme .el-input-number__increase.is-disabled{color:#b4bccc;cursor:not-allowed}.custom-theme .el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #d8dce5}.custom-theme .el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #d8dce5}.custom-theme .el-input-number.is-disabled .el-input-number__decrease,.custom-theme .el-input-number.is-disabled .el-input-number__increase{border-color:#dfe4ed;color:#dfe4ed}.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover,.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover{color:#dfe4ed;cursor:not-allowed}.custom-theme .el-input-number--medium{width:200px;line-height:34px}.custom-theme .el-input-number--medium .el-input-number__decrease,.custom-theme .el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.custom-theme .el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.custom-theme .el-input-number--small{width:130px;line-height:30px}.custom-theme .el-input-number--small .el-input-number__decrease,.custom-theme .el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.custom-theme .el-input-number--small .el-input-number__decrease [class*=el-icon],.custom-theme .el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.custom-theme .el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.custom-theme .el-input-number--mini{width:130px;line-height:26px}.custom-theme .el-input-number--mini .el-input-number__decrease,.custom-theme .el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.custom-theme .el-input-number--mini .el-input-number__decrease [class*=el-icon],.custom-theme .el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.custom-theme .el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.custom-theme .el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.custom-theme .el-input-number.is-controls-right .el-input-number__decrease,.custom-theme .el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.custom-theme .el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.custom-theme .el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #d8dce5}.custom-theme .el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #d8dce5;border-radius:0 0 4px 0}.custom-theme .el-input-number.is-controls-right[class*=medium] [class*=decrease],.custom-theme .el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.custom-theme .el-input-number.is-controls-right[class*=small] [class*=decrease],.custom-theme .el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.custom-theme .el-input-number.is-controls-right[class*=mini] [class*=decrease],.custom-theme .el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.custom-theme .el-radio{color:#5a5e66;font-weight:500;line-height:1;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;outline:0;font-size:14px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.custom-theme .el-radio.is-bordered{padding:10px 20px 10px 10px;border-radius:4px;border:1px solid #d8dce5}.custom-theme .el-radio.is-bordered.is-checked{border-color:#262729}.custom-theme .el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#e6ebf5}.custom-theme .el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.custom-theme .el-radio--medium.is-bordered{padding:8px 20px 8px 10px;border-radius:4px}.custom-theme .el-radio--medium.is-bordered .el-radio__label{font-size:14px}.custom-theme .el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.custom-theme .el-radio--small.is-bordered{padding:6px 15px 6px 10px;border-radius:3px}.custom-theme .el-radio--small.is-bordered .el-radio__label{font-size:12px}.custom-theme .el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.custom-theme .el-radio--mini.is-bordered{padding:4px 15px 4px 10px;border-radius:3px}.custom-theme .el-radio--mini.is-bordered .el-radio__label{font-size:12px}.custom-theme .el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.custom-theme .el-radio+.el-radio{margin-left:30px}.custom-theme .el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.custom-theme .el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed;cursor:not-allowed}.custom-theme .el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#f5f7fa}.custom-theme .el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed}.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#b4bccc}.custom-theme .el-radio__input.is-disabled+span.el-radio__label{color:#b4bccc;cursor:not-allowed}.custom-theme .el-radio__input.is-checked .el-radio__inner{border-color:#262729;background:#262729}.custom-theme .el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.custom-theme .el-radio__input.is-checked+.el-radio__label{color:#262729}.custom-theme .el-radio__input.is-focus .el-radio__inner{border-color:#262729}.custom-theme .el-radio__inner{border:1px solid #d8dce5;border-radius:100%;width:14px;height:14px;background-color:#fff;position:relative;cursor:pointer;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-radio__inner:hover{border-color:#262729}.custom-theme .el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6);transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6);transition:transform .15s cubic-bezier(.71,-.46,.88,.6);transition:transform .15s cubic-bezier(.71,-.46,.88,.6),-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6)}.custom-theme .el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.custom-theme .el-radio:focus:not(.is-focus):not(:active) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #262729;box-shadow:0 0 2px 2px #262729}.custom-theme .el-radio__label{font-size:14px;padding-left:10px}.custom-theme .el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.custom-theme .el-radio-button{position:relative;display:inline-block;outline:0}.custom-theme .el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #d8dce5;font-weight:500;border-left:0;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.custom-theme .el-radio-button__inner.is-round{padding:12px 20px}.custom-theme .el-radio-button__inner:hover{color:#262729}.custom-theme .el-radio-button__inner [class*=el-icon-]{line-height:.9}.custom-theme .el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1;left:-999px}.custom-theme .el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#262729;border-color:#262729;-webkit-box-shadow:-1px 0 0 0 #262729;box-shadow:-1px 0 0 0 #262729}.custom-theme .el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#edf2fc}.custom-theme .el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #d8dce5;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.custom-theme .el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.custom-theme .el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.custom-theme .el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.custom-theme .el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.custom-theme .el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.custom-theme .el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.custom-theme .el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.custom-theme .el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.custom-theme .el-radio-button:focus:not(.is-focus):not(:active){-webkit-box-shadow:0 0 2px 2px #262729;box-shadow:0 0 2px 2px #262729}.custom-theme .el-checkbox{color:#5a5e66;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #d8dce5}.custom-theme .el-checkbox.is-bordered.is-checked{border-color:#262729}.custom-theme .el-checkbox.is-bordered.is-disabled{border-color:#e6ebf5;cursor:not-allowed}.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small{padding:3px 15px 7px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini{padding:1px 15px 5px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5;cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#b4bccc;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label{color:#b4bccc;cursor:not-allowed}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label{color:#262729}.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner{border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.custom-theme .el-checkbox__inner{display:inline-block;position:relative;border:1px solid #d8dce5;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.custom-theme .el-checkbox__inner:hover{border-color:#262729}.custom-theme .el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;-webkit-transform-origin:center;transform-origin:center}.custom-theme .el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;left:-999px}.custom-theme .el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.custom-theme .el-checkbox+.el-checkbox{margin-left:30px}.custom-theme .el-checkbox-button{position:relative;display:inline-block}.custom-theme .el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-left:0;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button__inner.is-round{padding:12px 20px}.custom-theme .el-checkbox-button__inner:hover{color:#262729}.custom-theme .el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.custom-theme .el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;left:-999px}.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#262729;border-color:#262729;-webkit-box-shadow:-1px 0 0 0 #7d7d7f;box-shadow:-1px 0 0 0 #7d7d7f}.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #d8dce5;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#262729}.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.custom-theme .el-checkbox-group{font-size:0}.custom-theme .el-switch{display:inline-block;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.custom-theme .el-switch.is-disabled .el-switch__core,.custom-theme .el-switch.is-disabled .el-switch__label{cursor:not-allowed}.custom-theme .el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:#2d2f33}.custom-theme .el-switch__label.is-active{color:#262729}.custom-theme .el-switch__label--left{margin-right:10px}.custom-theme .el-switch__label--right{margin-left:10px}.custom-theme .el-switch__label *{line-height:1;font-size:14px;display:inline-block}.custom-theme .el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.custom-theme .el-switch__input:focus~.el-switch__core{outline:1px solid #262729}.custom-theme .el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid #d8dce5;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#d8dce5;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.custom-theme .el-switch__core .el-switch__button{position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;width:16px;height:16px;background-color:#fff}.custom-theme .el-switch.is-checked .el-switch__core{border-color:#262729;background-color:#262729}.custom-theme .el-switch.is-disabled{opacity:.6}.custom-theme .el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.custom-theme .el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.custom-theme .el-switch .label-fade-enter,.custom-theme .el-switch .label-fade-leave-active{opacity:0}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .el-select-dropdown{position:absolute;z-index:1001;border:solid 1px #dfe4ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#262729;background-color:#fff}.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"\E611";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.custom-theme .el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.custom-theme .el-select-dropdown .popper__arrow{-webkit-transform:translateX(-400%);transform:translateX(-400%)}.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow{-webkit-transform:translateX(-200%);transform:translateX(-200%)}.custom-theme .el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.custom-theme .el-select-dropdown__wrap{max-height:274px}.custom-theme .el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-tag{background-color:rgba(38,39,41,.1);display:inline-block;padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#262729;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(38,39,41,.2);white-space:nowrap}.custom-theme .el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-5px;color:#262729}.custom-theme .el-tag .el-icon-close::before{display:block}.custom-theme .el-tag .el-icon-close:hover{background-color:#262729;color:#fff}.custom-theme .el-tag--info{background-color:rgba(10,118,164,.1);border-color:rgba(10,118,164,.2);color:#0a76a4}.custom-theme .el-tag--info.is-hit{border-color:#0a76a4}.custom-theme .el-tag--info .el-tag__close{color:#0a76a4}.custom-theme .el-tag--info .el-tag__close:hover{background-color:#0a76a4;color:#fff}.custom-theme .el-tag--success{background-color:rgba(64,145,103,.1);border-color:rgba(64,145,103,.2);color:#409167}.custom-theme .el-tag--success.is-hit{border-color:#409167}.custom-theme .el-tag--success .el-tag__close{color:#409167}.custom-theme .el-tag--success .el-tag__close:hover{background-color:#409167;color:#fff}.custom-theme .el-tag--warning{background-color:rgba(157,164,8,.1);border-color:rgba(157,164,8,.2);color:#9da408}.custom-theme .el-tag--warning.is-hit{border-color:#9da408}.custom-theme .el-tag--warning .el-tag__close{color:#9da408}.custom-theme .el-tag--warning .el-tag__close:hover{background-color:#9da408;color:#fff}.custom-theme .el-tag--danger{background-color:rgba(179,69,14,.1);border-color:rgba(179,69,14,.2);color:#b3450e}.custom-theme .el-tag--danger.is-hit{border-color:#b3450e}.custom-theme .el-tag--danger .el-tag__close{color:#b3450e}.custom-theme .el-tag--danger .el-tag__close:hover{background-color:#b3450e;color:#fff}.custom-theme .el-tag--medium{height:28px;line-height:26px}.custom-theme .el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--small{height:24px;padding:0 8px;line-height:22px}.custom-theme .el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--mini{height:20px;padding:0 5px;line-height:19px}.custom-theme .el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.custom-theme .el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5a5e66;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.custom-theme .el-select-dropdown__item.is-disabled{color:#b4bccc;cursor:not-allowed}.custom-theme .el-select-dropdown__item.is-disabled:hover{background-color:#fff}.custom-theme .el-select-dropdown__item.hover,.custom-theme .el-select-dropdown__item:hover{background-color:#f5f7fa}.custom-theme .el-select-dropdown__item.selected{color:#262729;font-weight:700}.custom-theme .el-select-dropdown__item span{line-height:34px!important}.custom-theme .el-select-group{margin:0;padding:0}.custom-theme .el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.custom-theme .el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.custom-theme .el-select-group__wrap:not(:last-of-type)::after{content:'';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#dfe4ed}.custom-theme .el-select-group__title{padding-left:20px;font-size:12px;color:#0a76a4;line-height:30px}.custom-theme .el-select-group .el-select-dropdown__item{padding-left:20px}.custom-theme .el-scrollbar{overflow:hidden;position:relative}.custom-theme .el-scrollbar:active>.el-scrollbar__bar,.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,.custom-theme .el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.custom-theme .el-scrollbar__wrap{overflow:scroll;height:100%}.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.custom-theme .el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(135,141,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.5)}.custom-theme .el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.custom-theme .el-scrollbar__bar.is-vertical{width:6px;top:2px}.custom-theme .el-scrollbar__bar.is-vertical>div{width:100%}.custom-theme .el-scrollbar__bar.is-horizontal{height:6px;left:2px}.custom-theme .el-scrollbar__bar.is-horizontal>div{height:100%}.custom-theme .el-select{display:inline-block;position:relative}.custom-theme .el-select:hover .el-input__inner{border-color:#b4bccc}.custom-theme .el-select .el-input__inner{cursor:pointer;padding-right:35px}.custom-theme .el-select .el-input__inner:focus{border-color:#262729}.custom-theme .el-select .el-input .el-select__caret{color:#b4bccc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);line-height:16px;cursor:pointer}.custom-theme .el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotateZ(0);transform:rotateZ(0)}.custom-theme .el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);border-radius:100%;color:#b4bccc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover{color:#878d99}.custom-theme .el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover{border-color:#dfe4ed}.custom-theme .el-select>.el-input{display:block}.custom-theme .el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;vertical-align:baseline;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.custom-theme .el-select__input.is-mini{height:14px}.custom-theme .el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#b4bccc;line-height:18px;font-size:14px}.custom-theme .el-select__close:hover{color:#878d99}.custom-theme .el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.custom-theme .el-select .el-tag__close{margin-top:-2px}.custom-theme .el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:3px 0 3px 6px;background-color:#f0f2f5}.custom-theme .el-select .el-tag__close.el-icon-close{background-color:#b4bccc;right:-7px;color:#fff}.custom-theme .el-select .el-tag__close.el-icon-close:hover{background-color:#878d99}.custom-theme .el-select .el-tag__close.el-icon-close::before{display:block;-webkit-transform:translate(0,.5px);transform:translate(0,.5px)}.custom-theme .el-select__tag{display:inline-block;height:24px;line-height:24px;font-size:14px;border-radius:4px;color:#fff;background-color:#262729}.custom-theme .el-select__tag .el-icon-close{font-size:14px}.custom-theme .el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-color:#d8dce5;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button+.el-button{margin-left:10px}.custom-theme .el-button.is-round{padding:12px 20px}.custom-theme .el-button:focus,.custom-theme .el-button:hover{color:#262729;border-color:#bebebf;background-color:#e9e9ea}.custom-theme .el-button:active{color:#222325;border-color:#222325;outline:0}.custom-theme .el-button::-moz-focus-inner{border:0}.custom-theme .el-button [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-button.is-plain:focus,.custom-theme .el-button.is-plain:hover{background:#fff;border-color:#262729;color:#262729}.custom-theme .el-button.is-plain:active{background:#fff;border-color:#222325;color:#222325;outline:0}.custom-theme .el-button.is-active{color:#222325;border-color:#222325}.custom-theme .el-button.is-disabled,.custom-theme .el-button.is-disabled:focus,.custom-theme .el-button.is-disabled:hover{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5}.custom-theme .el-button.is-disabled.el-button--text{background-color:transparent}.custom-theme .el-button.is-disabled.is-plain,.custom-theme .el-button.is-disabled.is-plain:focus,.custom-theme .el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#e6ebf5;color:#b4bccc}.custom-theme .el-button.is-loading{position:relative;pointer-events:none}.custom-theme .el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.custom-theme .el-button.is-round{border-radius:20px;padding:12px 23px}.custom-theme .el-button--primary{color:#fff;background-color:#262729;border-color:#262729}.custom-theme .el-button--primary:focus,.custom-theme .el-button--primary:hover{background:#515254;border-color:#515254;color:#fff}.custom-theme .el-button--primary:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-active{background:#222325;border-color:#222325;color:#fff}.custom-theme .el-button--primary.is-disabled,.custom-theme .el-button--primary.is-disabled:active,.custom-theme .el-button--primary.is-disabled:focus,.custom-theme .el-button--primary.is-disabled:hover{color:#fff;background-color:#939394;border-color:#939394}.custom-theme .el-button--primary.is-plain{color:#262729;background:#e9e9ea;border-color:#a8a9a9}.custom-theme .el-button--primary.is-plain:focus,.custom-theme .el-button--primary.is-plain:hover{background:#262729;border-color:#262729;color:#fff}.custom-theme .el-button--primary.is-plain:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-plain.is-disabled,.custom-theme .el-button--primary.is-plain.is-disabled:active,.custom-theme .el-button--primary.is-plain.is-disabled:focus,.custom-theme .el-button--primary.is-plain.is-disabled:hover{color:#7d7d7f;background-color:#e9e9ea;border-color:#d4d4d4}.custom-theme .el-button--success{color:#fff;background-color:#409167;border-color:#409167}.custom-theme .el-button--success:focus,.custom-theme .el-button--success:hover{background:#66a785;border-color:#66a785;color:#fff}.custom-theme .el-button--success:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-active{background:#3a835d;border-color:#3a835d;color:#fff}.custom-theme .el-button--success.is-disabled,.custom-theme .el-button--success.is-disabled:active,.custom-theme .el-button--success.is-disabled:focus,.custom-theme .el-button--success.is-disabled:hover{color:#fff;background-color:#a0c8b3;border-color:#a0c8b3}.custom-theme .el-button--success.is-plain{color:#409167;background:#ecf4f0;border-color:#b3d3c2}.custom-theme .el-button--success.is-plain:focus,.custom-theme .el-button--success.is-plain:hover{background:#409167;border-color:#409167;color:#fff}.custom-theme .el-button--success.is-plain:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-plain.is-disabled,.custom-theme .el-button--success.is-plain.is-disabled:active,.custom-theme .el-button--success.is-plain.is-disabled:focus,.custom-theme .el-button--success.is-plain.is-disabled:hover{color:#8cbda4;background-color:#ecf4f0;border-color:#d9e9e1}.custom-theme .el-button--warning{color:#fff;background-color:#9da408;border-color:#9da408}.custom-theme .el-button--warning:focus,.custom-theme .el-button--warning:hover{background:#b1b639;border-color:#b1b639;color:#fff}.custom-theme .el-button--warning:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-active{background:#8d9407;border-color:#8d9407;color:#fff}.custom-theme .el-button--warning.is-disabled,.custom-theme .el-button--warning.is-disabled:active,.custom-theme .el-button--warning.is-disabled:focus,.custom-theme .el-button--warning.is-disabled:hover{color:#fff;background-color:#ced284;border-color:#ced284}.custom-theme .el-button--warning.is-plain{color:#9da408;background:#f5f6e6;border-color:#d8db9c}.custom-theme .el-button--warning.is-plain:focus,.custom-theme .el-button--warning.is-plain:hover{background:#9da408;border-color:#9da408;color:#fff}.custom-theme .el-button--warning.is-plain:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-plain.is-disabled,.custom-theme .el-button--warning.is-plain.is-disabled:active,.custom-theme .el-button--warning.is-plain.is-disabled:focus,.custom-theme .el-button--warning.is-plain.is-disabled:hover{color:#c4c86b;background-color:#f5f6e6;border-color:#ebedce}.custom-theme .el-button--danger{color:#fff;background-color:#b3450e;border-color:#b3450e}.custom-theme .el-button--danger:focus,.custom-theme .el-button--danger:hover{background:#c26a3e;border-color:#c26a3e;color:#fff}.custom-theme .el-button--danger:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-active{background:#a13e0d;border-color:#a13e0d;color:#fff}.custom-theme .el-button--danger.is-disabled,.custom-theme .el-button--danger.is-disabled:active,.custom-theme .el-button--danger.is-disabled:focus,.custom-theme .el-button--danger.is-disabled:hover{color:#fff;background-color:#d9a287;border-color:#d9a287}.custom-theme .el-button--danger.is-plain{color:#b3450e;background:#f7ece7;border-color:#e1b59f}.custom-theme .el-button--danger.is-plain:focus,.custom-theme .el-button--danger.is-plain:hover{background:#b3450e;border-color:#b3450e;color:#fff}.custom-theme .el-button--danger.is-plain:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-plain.is-disabled,.custom-theme .el-button--danger.is-plain.is-disabled:active,.custom-theme .el-button--danger.is-plain.is-disabled:focus,.custom-theme .el-button--danger.is-plain.is-disabled:hover{color:#d18f6e;background-color:#f7ece7;border-color:#f0dacf}.custom-theme .el-button--info{color:#fff;background-color:#0a76a4;border-color:#0a76a4}.custom-theme .el-button--info:focus,.custom-theme .el-button--info:hover{background:#3b91b6;border-color:#3b91b6;color:#fff}.custom-theme .el-button--info:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-active{background:#096a94;border-color:#096a94;color:#fff}.custom-theme .el-button--info.is-disabled,.custom-theme .el-button--info.is-disabled:active,.custom-theme .el-button--info.is-disabled:focus,.custom-theme .el-button--info.is-disabled:hover{color:#fff;background-color:#85bbd2;border-color:#85bbd2}.custom-theme .el-button--info.is-plain{color:#0a76a4;background:#e7f1f6;border-color:#9dc8db}.custom-theme .el-button--info.is-plain:focus,.custom-theme .el-button--info.is-plain:hover{background:#0a76a4;border-color:#0a76a4;color:#fff}.custom-theme .el-button--info.is-plain:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-plain.is-disabled,.custom-theme .el-button--info.is-plain.is-disabled:active,.custom-theme .el-button--info.is-plain.is-disabled:focus,.custom-theme .el-button--info.is-plain.is-disabled:hover{color:#6cadc8;background-color:#e7f1f6;border-color:#cee4ed}.custom-theme .el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button--medium.is-round{padding:10px 20px}.custom-theme .el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--small.is-round{padding:9px 15px}.custom-theme .el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--mini.is-round{padding:7px 15px}.custom-theme .el-button--text{border:none;color:#262729;background:0 0;padding-left:0;padding-right:0}.custom-theme .el-button--text:focus,.custom-theme .el-button--text:hover{color:#515254;border-color:transparent;background-color:transparent}.custom-theme .el-button--text:active{color:#222325;border-color:transparent;background-color:transparent}.custom-theme .el-button-group{display:inline-block;vertical-align:middle}.custom-theme .el-button-group::after,.custom-theme .el-button-group::before{display:table;content:""}.custom-theme .el-button-group::after{clear:both}.custom-theme .el-button-group .el-button{float:left;position:relative}.custom-theme .el-button-group .el-button+.el-button{margin-left:0}.custom-theme .el-button-group .el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-button-group .el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child){border-radius:0}.custom-theme .el-button-group .el-button:not(:last-child){margin-right:-1px}.custom-theme .el-button-group .el-button:active,.custom-theme .el-button-group .el-button:focus,.custom-theme .el-button-group .el-button:hover{z-index:1}.custom-theme .el-button-group .el-button.is-active{z-index:1}.custom-theme .el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-checkbox{color:#5a5e66;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #d8dce5}.custom-theme .el-checkbox.is-bordered.is-checked{border-color:#262729}.custom-theme .el-checkbox.is-bordered.is-disabled{border-color:#e6ebf5;cursor:not-allowed}.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small{padding:3px 15px 7px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini{padding:1px 15px 5px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5;cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#b4bccc;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label{color:#b4bccc;cursor:not-allowed}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label{color:#262729}.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner{border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.custom-theme .el-checkbox__inner{display:inline-block;position:relative;border:1px solid #d8dce5;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.custom-theme .el-checkbox__inner:hover{border-color:#262729}.custom-theme .el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;-webkit-transform-origin:center;transform-origin:center}.custom-theme .el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;left:-999px}.custom-theme .el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.custom-theme .el-checkbox+.el-checkbox{margin-left:30px}.custom-theme .el-checkbox-button{position:relative;display:inline-block}.custom-theme .el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-left:0;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button__inner.is-round{padding:12px 20px}.custom-theme .el-checkbox-button__inner:hover{color:#262729}.custom-theme .el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.custom-theme .el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;left:-999px}.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#262729;border-color:#262729;-webkit-box-shadow:-1px 0 0 0 #7d7d7f;box-shadow:-1px 0 0 0 #7d7d7f}.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #d8dce5;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#262729}.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.custom-theme .el-checkbox-group{font-size:0}.custom-theme .el-tag{background-color:rgba(38,39,41,.1);display:inline-block;padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#262729;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(38,39,41,.2);white-space:nowrap}.custom-theme .el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-5px;color:#262729}.custom-theme .el-tag .el-icon-close::before{display:block}.custom-theme .el-tag .el-icon-close:hover{background-color:#262729;color:#fff}.custom-theme .el-tag--info{background-color:rgba(10,118,164,.1);border-color:rgba(10,118,164,.2);color:#0a76a4}.custom-theme .el-tag--info.is-hit{border-color:#0a76a4}.custom-theme .el-tag--info .el-tag__close{color:#0a76a4}.custom-theme .el-tag--info .el-tag__close:hover{background-color:#0a76a4;color:#fff}.custom-theme .el-tag--success{background-color:rgba(64,145,103,.1);border-color:rgba(64,145,103,.2);color:#409167}.custom-theme .el-tag--success.is-hit{border-color:#409167}.custom-theme .el-tag--success .el-tag__close{color:#409167}.custom-theme .el-tag--success .el-tag__close:hover{background-color:#409167;color:#fff}.custom-theme .el-tag--warning{background-color:rgba(157,164,8,.1);border-color:rgba(157,164,8,.2);color:#9da408}.custom-theme .el-tag--warning.is-hit{border-color:#9da408}.custom-theme .el-tag--warning .el-tag__close{color:#9da408}.custom-theme .el-tag--warning .el-tag__close:hover{background-color:#9da408;color:#fff}.custom-theme .el-tag--danger{background-color:rgba(179,69,14,.1);border-color:rgba(179,69,14,.2);color:#b3450e}.custom-theme .el-tag--danger.is-hit{border-color:#b3450e}.custom-theme .el-tag--danger .el-tag__close{color:#b3450e}.custom-theme .el-tag--danger .el-tag__close:hover{background-color:#b3450e;color:#fff}.custom-theme .el-tag--medium{height:28px;line-height:26px}.custom-theme .el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--small{height:24px;padding:0 8px;line-height:22px}.custom-theme .el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--mini{height:20px;padding:0 5px;line-height:19px}.custom-theme .el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.custom-theme .el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;background-color:#fff;font-size:14px;color:#5a5e66}.custom-theme .el-table__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.custom-theme .el-table__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:color(#262729 s(16%) l(44%))}.custom-theme .el-table__expand-column .cell{padding:0;text-align:center}.custom-theme .el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.custom-theme .el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.custom-theme .el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.custom-theme .el-table__expanded-cell{background-color:#fff}.custom-theme .el-table__expanded-cell[class*=cell]{padding:20px 50px}.custom-theme .el-table__expanded-cell:hover{background-color:#f5f7fa!important}.custom-theme .el-table--fit{border-right:0;border-bottom:0}.custom-theme .el-table--fit td.gutter,.custom-theme .el-table--fit th.gutter{border-right-width:1px}.custom-theme .el-table thead{color:#878d99;font-weight:500}.custom-theme .el-table thead.is-group th{background:#f5f7fa}.custom-theme .el-table td,.custom-theme .el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative}.custom-theme .el-table td.is-center,.custom-theme .el-table th.is-center{text-align:center}.custom-theme .el-table td.is-left,.custom-theme .el-table th.is-left{text-align:left}.custom-theme .el-table td.is-right,.custom-theme .el-table th.is-right{text-align:right}.custom-theme .el-table td.gutter,.custom-theme .el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.custom-theme .el-table td.is-hidden>*,.custom-theme .el-table th.is-hidden>*{visibility:hidden}.custom-theme .el-table--medium td,.custom-theme .el-table--medium th{padding:10px 0}.custom-theme .el-table--small{font-size:12px}.custom-theme .el-table--small td,.custom-theme .el-table--small th{padding:8px 0}.custom-theme .el-table--mini{font-size:12px}.custom-theme .el-table--mini td,.custom-theme .el-table--mini th{padding:6px 0}.custom-theme .el-table tr{background-color:#fff}.custom-theme .el-table tr input[type=checkbox]{margin:0}.custom-theme .el-table td,.custom-theme .el-table th.is-leaf{border-bottom:1px solid #e6ebf5}.custom-theme .el-table th.is-sortable{cursor:pointer}.custom-theme .el-table th{white-space:nowrap;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:left}.custom-theme .el-table th div{display:inline-block;padding-left:10px;padding-right:10px;line-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.custom-theme .el-table th>.cell{position:relative;word-wrap:normal;text-overflow:ellipsis;display:inline-block;vertical-align:middle;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-table th>.cell.highlight{color:#262729}.custom-theme .el-table th.required>div::before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.custom-theme .el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-table td.gutter{width:0}.custom-theme .el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.custom-theme .el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.custom-theme .el-table td:first-child .cell,.custom-theme .el-table th:first-child .cell{padding-left:0}.custom-theme .el-table--border,.custom-theme .el-table--group{border:1px solid #e6ebf5}.custom-theme .el-table--border::after,.custom-theme .el-table--group::after,.custom-theme .el-table::before{content:'';position:absolute;background-color:#e6ebf5;z-index:1}.custom-theme .el-table--border::after,.custom-theme .el-table--group::after{top:0;right:0;width:1px;height:100%}.custom-theme .el-table::before{left:0;bottom:0;width:100%;height:1px}.custom-theme .el-table--border{border-right:none;border-bottom:none}.custom-theme .el-table--border td,.custom-theme .el-table--border th{border-right:1px solid #e6ebf5}.custom-theme .el-table--border td:first-child .cell,.custom-theme .el-table--border th:first-child .cell{padding-left:10px}.custom-theme .el-table--border .has-gutter td:nth-last-of-type(2),.custom-theme .el-table--border .has-gutter th:nth-last-of-type(2){border-right:none}.custom-theme .el-table--border th.gutter:last-of-type{border-bottom:1px solid #e6ebf5;border-bottom-width:1px}.custom-theme .el-table--border th{border-bottom:1px solid #e6ebf5}.custom-theme .el-table--hidden{visibility:hidden}.custom-theme .el-table__fixed,.custom-theme .el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.custom-theme .el-table__fixed-right::before,.custom-theme .el-table__fixed::before{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#e6ebf5;z-index:4}.custom-theme .el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff;border-bottom:1px solid #e6ebf5}.custom-theme .el-table__fixed-right{top:0;left:auto;right:0}.custom-theme .el-table__fixed-right .el-table__fixed-body-wrapper,.custom-theme .el-table__fixed-right .el-table__fixed-footer-wrapper,.custom-theme .el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.custom-theme .el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.custom-theme .el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.custom-theme .el-table__fixed-footer-wrapper tbody td{border-top:1px solid #e6ebf5;background-color:#f5f7fa;color:#5a5e66}.custom-theme .el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.custom-theme .el-table__body-wrapper,.custom-theme .el-table__footer-wrapper,.custom-theme .el-table__header-wrapper{width:100%}.custom-theme .el-table__footer-wrapper{margin-top:-1px}.custom-theme .el-table__footer-wrapper td{border-top:1px solid #e6ebf5}.custom-theme .el-table__body,.custom-theme .el-table__footer,.custom-theme .el-table__header{table-layout:fixed}.custom-theme .el-table__footer-wrapper,.custom-theme .el-table__header-wrapper{overflow:hidden}.custom-theme .el-table__footer-wrapper tbody td,.custom-theme .el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#5a5e66}.custom-theme .el-table__body-wrapper{overflow:auto;position:relative}.custom-theme .el-table__body-wrapper.is-scroll-none~.el-table__fixed,.custom-theme .el-table__body-wrapper.is-scroll-none~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-table__body-wrapper.is-scroll-left~.el-table__fixed{-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-table__body-wrapper.is-scroll-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-table__body-wrapper .el-table--border.is-scroll-right~.el-table__fixed-right{border-left:1px solid #e6ebf5}.custom-theme .el-table__body-wrapper .el-table--border.is-scroll-left~.el-table__fixed{border-right:1px solid #e6ebf5}.custom-theme .el-table .caret-wrapper{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:13px;width:24px;cursor:pointer;overflow:initial}.custom-theme .el-table .sort-caret{color:#0a76a4;width:14px;overflow:hidden;font-size:13px}.custom-theme .el-table .ascending .sort-caret.ascending{color:#262729}.custom-theme .el-table .descending .sort-caret.descending{color:#262729}.custom-theme .el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.custom-theme .el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.custom-theme .el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#e9e9ea}.custom-theme .el-table__body tr.hover-row.current-row>td,.custom-theme .el-table__body tr.hover-row.el-table__row--striped.current-row>td,.custom-theme .el-table__body tr.hover-row.el-table__row--striped>td,.custom-theme .el-table__body tr.hover-row>td{background-color:#e9e9ea}.custom-theme .el-table__body tr.current-row>td{background-color:#e9e9ea}.custom-theme .el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #e6ebf5;z-index:10}.custom-theme .el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.custom-theme .el-table__column-filter-trigger i{color:#0a76a4;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.custom-theme .el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.custom-theme .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.custom-theme .el-table--fluid-height .el-table__fixed,.custom-theme .el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.custom-theme .el-checkbox{color:#5a5e66;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #d8dce5}.custom-theme .el-checkbox.is-bordered.is-checked{border-color:#262729}.custom-theme .el-checkbox.is-bordered.is-disabled{border-color:#e6ebf5;cursor:not-allowed}.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small{padding:3px 15px 7px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini{padding:1px 15px 5px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5;cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#b4bccc;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label{color:#b4bccc;cursor:not-allowed}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label{color:#262729}.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner{border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.custom-theme .el-checkbox__inner{display:inline-block;position:relative;border:1px solid #d8dce5;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.custom-theme .el-checkbox__inner:hover{border-color:#262729}.custom-theme .el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;-webkit-transform-origin:center;transform-origin:center}.custom-theme .el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;left:-999px}.custom-theme .el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.custom-theme .el-checkbox+.el-checkbox{margin-left:30px}.custom-theme .el-checkbox-button{position:relative;display:inline-block}.custom-theme .el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-left:0;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button__inner.is-round{padding:12px 20px}.custom-theme .el-checkbox-button__inner:hover{color:#262729}.custom-theme .el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.custom-theme .el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;left:-999px}.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#262729;border-color:#262729;-webkit-box-shadow:-1px 0 0 0 #7d7d7f;box-shadow:-1px 0 0 0 #7d7d7f}.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #d8dce5;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#262729}.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.custom-theme .el-checkbox-group{font-size:0}.custom-theme .el-tag{background-color:rgba(38,39,41,.1);display:inline-block;padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#262729;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(38,39,41,.2);white-space:nowrap}.custom-theme .el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-5px;color:#262729}.custom-theme .el-tag .el-icon-close::before{display:block}.custom-theme .el-tag .el-icon-close:hover{background-color:#262729;color:#fff}.custom-theme .el-tag--info{background-color:rgba(10,118,164,.1);border-color:rgba(10,118,164,.2);color:#0a76a4}.custom-theme .el-tag--info.is-hit{border-color:#0a76a4}.custom-theme .el-tag--info .el-tag__close{color:#0a76a4}.custom-theme .el-tag--info .el-tag__close:hover{background-color:#0a76a4;color:#fff}.custom-theme .el-tag--success{background-color:rgba(64,145,103,.1);border-color:rgba(64,145,103,.2);color:#409167}.custom-theme .el-tag--success.is-hit{border-color:#409167}.custom-theme .el-tag--success .el-tag__close{color:#409167}.custom-theme .el-tag--success .el-tag__close:hover{background-color:#409167;color:#fff}.custom-theme .el-tag--warning{background-color:rgba(157,164,8,.1);border-color:rgba(157,164,8,.2);color:#9da408}.custom-theme .el-tag--warning.is-hit{border-color:#9da408}.custom-theme .el-tag--warning .el-tag__close{color:#9da408}.custom-theme .el-tag--warning .el-tag__close:hover{background-color:#9da408;color:#fff}.custom-theme .el-tag--danger{background-color:rgba(179,69,14,.1);border-color:rgba(179,69,14,.2);color:#b3450e}.custom-theme .el-tag--danger.is-hit{border-color:#b3450e}.custom-theme .el-tag--danger .el-tag__close{color:#b3450e}.custom-theme .el-tag--danger .el-tag__close:hover{background-color:#b3450e;color:#fff}.custom-theme .el-tag--medium{height:28px;line-height:26px}.custom-theme .el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--small{height:24px;padding:0 8px;line-height:22px}.custom-theme .el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--mini{height:20px;padding:0 5px;line-height:19px}.custom-theme .el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.custom-theme .el-table-column--selection .cell{padding-left:14px;padding-right:14px}.custom-theme .el-table-filter{border:solid 1px #e6ebf5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.custom-theme .el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.custom-theme .el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.custom-theme .el-table-filter__list-item:hover{background-color:#e9e9ea;color:#515254}.custom-theme .el-table-filter__list-item.is-active{background-color:#262729;color:#fff}.custom-theme .el-table-filter__content{min-width:100px}.custom-theme .el-table-filter__bottom{border-top:1px solid #e6ebf5;padding:8px}.custom-theme .el-table-filter__bottom button{background:0 0;border:none;color:#5a5e66;cursor:pointer;font-size:13px;padding:0 3px}.custom-theme .el-table-filter__bottom button:hover{color:#262729}.custom-theme .el-table-filter__bottom button:focus{outline:0}.custom-theme .el-table-filter__bottom button.is-disabled{color:#b4bccc;cursor:not-allowed}.custom-theme .el-table-filter__checkbox-group{padding:10px}.custom-theme .el-table-filter__checkbox-group label.el-checkbox{display:block;margin-bottom:8px;margin-left:5px}.custom-theme .el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.custom-theme .el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#edf2fc}.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#5a5e66}.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.custom-theme .el-date-table.is-week-mode .el-date-table__row.current div{background-color:#edf2fc}.custom-theme .el-date-table td{width:32px;height:30px;padding:4px 0;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.custom-theme .el-date-table td div{height:30px;padding:3px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.custom-theme .el-date-table td.next-month,.custom-theme .el-date-table td.prev-month{color:#b4bccc}.custom-theme .el-date-table td.today{position:relative}.custom-theme .el-date-table td.today span{color:#262729}.custom-theme .el-date-table td.today.end-date span,.custom-theme .el-date-table td.today.start-date span{color:#fff}.custom-theme .el-date-table td.available:hover{color:#262729}.custom-theme .el-date-table td.in-range div{background-color:#edf2fc}.custom-theme .el-date-table td.in-range div:hover{background-color:#edf2fc}.custom-theme .el-date-table td.current:not(.disabled) span{color:#fff;background-color:#262729}.custom-theme .el-date-table td.end-date div,.custom-theme .el-date-table td.start-date div{color:#fff}.custom-theme .el-date-table td.end-date span,.custom-theme .el-date-table td.start-date span{background-color:#262729}.custom-theme .el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.custom-theme .el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.custom-theme .el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#b4bccc}.custom-theme .el-date-table td.week{font-size:80%;color:#5a5e66}.custom-theme .el-date-table th{padding:5px;color:#5a5e66;font-weight:400;border-bottom:solid 1px #e6ebf5}.custom-theme .el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.custom-theme .el-month-table td{text-align:center;padding:20px 3px;cursor:pointer}.custom-theme .el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#b4bccc}.custom-theme .el-month-table td.disabled .cell:hover{color:#b4bccc}.custom-theme .el-month-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#5a5e66;margin:0 auto}.custom-theme .el-month-table td .cell:hover{color:#262729}.custom-theme .el-month-table td.current:not(.disabled) .cell{color:#262729}.custom-theme .el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.custom-theme .el-year-table .el-icon{color:#2d2f33}.custom-theme .el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.custom-theme .el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#b4bccc}.custom-theme .el-year-table td.disabled .cell:hover{color:#b4bccc}.custom-theme .el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#5a5e66;margin:0 auto}.custom-theme .el-year-table td .cell:hover{color:#262729}.custom-theme .el-year-table td.current:not(.disabled) .cell{color:#262729}.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper:nth-child(2){margin-left:1%}.custom-theme .el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.custom-theme .el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.custom-theme .el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.custom-theme .el-time-spinner__arrow{font-size:12px;color:#878d99;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.custom-theme .el-time-spinner__arrow:hover{color:#262729}.custom-theme .el-time-spinner__arrow.el-icon-arrow-up{top:10px}.custom-theme .el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.custom-theme .el-time-spinner__input.el-input{width:70%}.custom-theme .el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.custom-theme .el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.custom-theme .el-time-spinner__list::after,.custom-theme .el-time-spinner__list::before{content:'';display:block;width:100%;height:80px}.custom-theme .el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#5a5e66}.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.custom-theme .el-time-spinner__item.active:not(.disabled){color:#2d2f33;font-weight:700}.custom-theme .el-time-spinner__item.disabled{color:#b4bccc;cursor:not-allowed}.custom-theme .fade-in-linear-enter-active,.custom-theme .fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .fade-in-linear-enter,.custom-theme .fade-in-linear-leave,.custom-theme .fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-linear-enter-active,.custom-theme .el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .el-fade-in-linear-enter,.custom-theme .el-fade-in-linear-leave,.custom-theme .el-fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-enter-active,.custom-theme .el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-fade-in-enter,.custom-theme .el-fade-in-leave-active{opacity:0}.custom-theme .el-zoom-in-center-enter-active,.custom-theme .el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-zoom-in-center-enter,.custom-theme .el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.custom-theme .el-zoom-in-top-enter-active,.custom-theme .el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center top;transform-origin:center top}.custom-theme .el-zoom-in-top-enter,.custom-theme .el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-bottom-enter-active,.custom-theme .el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center bottom;transform-origin:center bottom}.custom-theme .el-zoom-in-bottom-enter,.custom-theme .el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-left-enter-active,.custom-theme .el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:top left;transform-origin:top left}.custom-theme .el-zoom-in-left-enter,.custom-theme .el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.custom-theme .el-list-enter-active,.custom-theme .el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.custom-theme .el-list-enter,.custom-theme .el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.custom-theme .el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-date-editor{position:relative;display:inline-block;text-align:left}.custom-theme .el-date-editor.el-input,.custom-theme .el-date-editor.el-input__inner{width:220px}.custom-theme .el-date-editor--daterange.el-input,.custom-theme .el-date-editor--daterange.el-input__inner,.custom-theme .el-date-editor--timerange.el-input,.custom-theme .el-date-editor--timerange.el-input__inner{width:350px}.custom-theme .el-date-editor--datetimerange.el-input,.custom-theme .el-date-editor--datetimerange.el-input__inner{width:400px}.custom-theme .el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#b4bccc;float:left;line-height:32px}.custom-theme .el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#5a5e66}.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input::placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#2d2f33}.custom-theme .el-date-editor .el-range__close-icon{font-size:14px;color:#b4bccc;width:25px;display:inline-block;float:right;line-height:32px}.custom-theme .el-range-editor.el-input__inner{padding:3px 10px}.custom-theme .el-range-editor.is-active{border-color:#262729}.custom-theme .el-range-editor.is-active:hover{border-color:#262729}.custom-theme .el-range-editor--medium.el-input__inner{height:36px}.custom-theme .el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.custom-theme .el-range-editor--medium .el-range-input{font-size:14px}.custom-theme .el-range-editor--medium .el-range__close-icon,.custom-theme .el-range-editor--medium .el-range__icon{line-height:28px}.custom-theme .el-range-editor--small.el-input__inner{height:32px}.custom-theme .el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.custom-theme .el-range-editor--small .el-range-input{font-size:13px}.custom-theme .el-range-editor--small .el-range__close-icon,.custom-theme .el-range-editor--small .el-range__icon{line-height:24px}.custom-theme .el-range-editor--mini.el-input__inner{height:28px}.custom-theme .el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.custom-theme .el-range-editor--mini .el-range-input{font-size:12px}.custom-theme .el-range-editor--mini .el-range__close-icon,.custom-theme .el-range-editor--mini .el-range__icon{line-height:20px}.custom-theme .el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-range-editor.is-disabled:focus,.custom-theme .el-range-editor.is-disabled:hover{border-color:#dfe4ed}.custom-theme .el-range-editor.is-disabled input{background-color:#f5f7fa;color:#b4bccc;cursor:not-allowed}.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input::placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled .el-range-separator{color:#b4bccc}.custom-theme .el-picker-panel{color:#5a5e66;border:1px solid #dfe4ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.custom-theme .el-picker-panel__body-wrapper::after,.custom-theme .el-picker-panel__body::after{content:"";display:table;clear:both}.custom-theme .el-picker-panel__content{position:relative;margin:15px}.custom-theme .el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.custom-theme .el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#5a5e66;padding-left:12px;text-align:left;outline:0;cursor:pointer}.custom-theme .el-picker-panel__shortcut:hover{color:#262729}.custom-theme .el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#262729}.custom-theme .el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.custom-theme .el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.custom-theme .el-picker-panel__icon-btn{font-size:12px;color:#2d2f33;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.custom-theme .el-picker-panel__icon-btn:hover{color:#262729}.custom-theme .el-picker-panel__icon-btn.is-disabled{color:#bbb}.custom-theme .el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.custom-theme .el-picker-panel__link-btn{vertical-align:middle}.custom-theme .el-picker-panel .popper__arrow{-webkit-transform:translateX(-400%);transform:translateX(-400%)}.custom-theme .el-picker-panel [slot=sidebar],.custom-theme .el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.custom-theme .el-picker-panel [slot=sidebar]+.el-picker-panel__body,.custom-theme .el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.custom-theme .el-date-picker{width:322px}.custom-theme .el-date-picker.has-sidebar.has-time{width:434px}.custom-theme .el-date-picker.has-sidebar{width:438px}.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.custom-theme .el-date-picker .el-picker-panel__content{width:292px}.custom-theme .el-date-picker table{table-layout:fixed;width:100%}.custom-theme .el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.custom-theme .el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-date-picker__header{margin:12px;text-align:center}.custom-theme .el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #e6ebf5}.custom-theme .el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.custom-theme .el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#5a5e66}.custom-theme .el-date-picker__header-label:hover{color:#262729}.custom-theme .el-date-picker__header-label.active{color:#262729}.custom-theme .el-date-picker__prev-btn{float:left}.custom-theme .el-date-picker__next-btn{float:right}.custom-theme .el-date-picker__time-wrap{padding:10px;text-align:center}.custom-theme .el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.custom-theme .el-date-range-picker{width:646px}.custom-theme .el-date-range-picker.has-sidebar{width:756px}.custom-theme .el-date-range-picker table{table-layout:fixed;width:100%}.custom-theme .el-date-range-picker .el-picker-panel__body{min-width:513px}.custom-theme .el-date-range-picker .el-picker-panel__content{margin:0}.custom-theme .el-date-range-picker__header{position:relative;text-align:center;height:28px}.custom-theme .el-date-range-picker__header [class*=arrow-left]{float:left}.custom-theme .el-date-range-picker__header [class*=arrow-right]{float:right}.custom-theme .el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.custom-theme .el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.custom-theme .el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.custom-theme .el-date-range-picker__content.is-right .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.custom-theme .el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.custom-theme .el-date-range-picker__editors-wrap.is-right{text-align:right}.custom-theme .el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#2d2f33}.custom-theme .el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.custom-theme .el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.custom-theme .el-time-range-picker{width:354px;overflow:visible}.custom-theme .el-time-range-picker__content{position:relative;text-align:center;padding:10px}.custom-theme .el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.custom-theme .el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.custom-theme .el-time-range-picker__body{border-radius:2px;border:1px solid #dfe4ed}.custom-theme .el-time-panel{margin:5px 0;border:solid 1px #dfe4ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-time-panel__content{font-size:0;position:relative;overflow:hidden}.custom-theme .el-time-panel__content::after,.custom-theme .el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #dfe4ed;border-bottom:1px solid #dfe4ed}.custom-theme .el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.custom-theme .el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.custom-theme .el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.custom-theme .el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.custom-theme .el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#2d2f33}.custom-theme .el-time-panel__btn.confirm{font-weight:800;color:#262729}.custom-theme .el-time-panel .popper__arrow{-webkit-transform:translateX(-400%);transform:translateX(-400%)}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-scrollbar{overflow:hidden;position:relative}.custom-theme .el-scrollbar:active>.el-scrollbar__bar,.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,.custom-theme .el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.custom-theme .el-scrollbar__wrap{overflow:scroll;height:100%}.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.custom-theme .el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(135,141,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.5)}.custom-theme .el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.custom-theme .el-scrollbar__bar.is-vertical{width:6px;top:2px}.custom-theme .el-scrollbar__bar.is-vertical>div{width:100%}.custom-theme .el-scrollbar__bar.is-horizontal{height:6px;left:2px}.custom-theme .el-scrollbar__bar.is-horizontal>div{height:100%}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .fade-in-linear-enter-active,.custom-theme .fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .fade-in-linear-enter,.custom-theme .fade-in-linear-leave,.custom-theme .fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-linear-enter-active,.custom-theme .el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .el-fade-in-linear-enter,.custom-theme .el-fade-in-linear-leave,.custom-theme .el-fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-enter-active,.custom-theme .el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-fade-in-enter,.custom-theme .el-fade-in-leave-active{opacity:0}.custom-theme .el-zoom-in-center-enter-active,.custom-theme .el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-zoom-in-center-enter,.custom-theme .el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.custom-theme .el-zoom-in-top-enter-active,.custom-theme .el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center top;transform-origin:center top}.custom-theme .el-zoom-in-top-enter,.custom-theme .el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-bottom-enter-active,.custom-theme .el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center bottom;transform-origin:center bottom}.custom-theme .el-zoom-in-bottom-enter,.custom-theme .el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-left-enter-active,.custom-theme .el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:top left;transform-origin:top left}.custom-theme .el-zoom-in-left-enter,.custom-theme .el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.custom-theme .el-list-enter-active,.custom-theme .el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.custom-theme .el-list-enter,.custom-theme .el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.custom-theme .el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-date-editor{position:relative;display:inline-block;text-align:left}.custom-theme .el-date-editor.el-input,.custom-theme .el-date-editor.el-input__inner{width:220px}.custom-theme .el-date-editor--daterange.el-input,.custom-theme .el-date-editor--daterange.el-input__inner,.custom-theme .el-date-editor--timerange.el-input,.custom-theme .el-date-editor--timerange.el-input__inner{width:350px}.custom-theme .el-date-editor--datetimerange.el-input,.custom-theme .el-date-editor--datetimerange.el-input__inner{width:400px}.custom-theme .el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#b4bccc;float:left;line-height:32px}.custom-theme .el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#5a5e66}.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input::placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#2d2f33}.custom-theme .el-date-editor .el-range__close-icon{font-size:14px;color:#b4bccc;width:25px;display:inline-block;float:right;line-height:32px}.custom-theme .el-range-editor.el-input__inner{padding:3px 10px}.custom-theme .el-range-editor.is-active{border-color:#262729}.custom-theme .el-range-editor.is-active:hover{border-color:#262729}.custom-theme .el-range-editor--medium.el-input__inner{height:36px}.custom-theme .el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.custom-theme .el-range-editor--medium .el-range-input{font-size:14px}.custom-theme .el-range-editor--medium .el-range__close-icon,.custom-theme .el-range-editor--medium .el-range__icon{line-height:28px}.custom-theme .el-range-editor--small.el-input__inner{height:32px}.custom-theme .el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.custom-theme .el-range-editor--small .el-range-input{font-size:13px}.custom-theme .el-range-editor--small .el-range__close-icon,.custom-theme .el-range-editor--small .el-range__icon{line-height:24px}.custom-theme .el-range-editor--mini.el-input__inner{height:28px}.custom-theme .el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.custom-theme .el-range-editor--mini .el-range-input{font-size:12px}.custom-theme .el-range-editor--mini .el-range__close-icon,.custom-theme .el-range-editor--mini .el-range__icon{line-height:20px}.custom-theme .el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-range-editor.is-disabled:focus,.custom-theme .el-range-editor.is-disabled:hover{border-color:#dfe4ed}.custom-theme .el-range-editor.is-disabled input{background-color:#f5f7fa;color:#b4bccc;cursor:not-allowed}.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input::placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled .el-range-separator{color:#b4bccc}.custom-theme .el-picker-panel{color:#5a5e66;border:1px solid #dfe4ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.custom-theme .el-picker-panel__body-wrapper::after,.custom-theme .el-picker-panel__body::after{content:"";display:table;clear:both}.custom-theme .el-picker-panel__content{position:relative;margin:15px}.custom-theme .el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.custom-theme .el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#5a5e66;padding-left:12px;text-align:left;outline:0;cursor:pointer}.custom-theme .el-picker-panel__shortcut:hover{color:#262729}.custom-theme .el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#262729}.custom-theme .el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.custom-theme .el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.custom-theme .el-picker-panel__icon-btn{font-size:12px;color:#2d2f33;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.custom-theme .el-picker-panel__icon-btn:hover{color:#262729}.custom-theme .el-picker-panel__icon-btn.is-disabled{color:#bbb}.custom-theme .el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.custom-theme .el-picker-panel__link-btn{vertical-align:middle}.custom-theme .el-picker-panel .popper__arrow{-webkit-transform:translateX(-400%);transform:translateX(-400%)}.custom-theme .el-picker-panel [slot=sidebar],.custom-theme .el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.custom-theme .el-picker-panel [slot=sidebar]+.el-picker-panel__body,.custom-theme .el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.custom-theme .el-date-picker{width:322px}.custom-theme .el-date-picker.has-sidebar.has-time{width:434px}.custom-theme .el-date-picker.has-sidebar{width:438px}.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.custom-theme .el-date-picker .el-picker-panel__content{width:292px}.custom-theme .el-date-picker table{table-layout:fixed;width:100%}.custom-theme .el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.custom-theme .el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-date-picker__header{margin:12px;text-align:center}.custom-theme .el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #e6ebf5}.custom-theme .el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.custom-theme .el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#5a5e66}.custom-theme .el-date-picker__header-label:hover{color:#262729}.custom-theme .el-date-picker__header-label.active{color:#262729}.custom-theme .el-date-picker__prev-btn{float:left}.custom-theme .el-date-picker__next-btn{float:right}.custom-theme .el-date-picker__time-wrap{padding:10px;text-align:center}.custom-theme .el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.custom-theme .el-scrollbar{overflow:hidden;position:relative}.custom-theme .el-scrollbar:active>.el-scrollbar__bar,.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,.custom-theme .el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.custom-theme .el-scrollbar__wrap{overflow:scroll;height:100%}.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.custom-theme .el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(135,141,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.5)}.custom-theme .el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.custom-theme .el-scrollbar__bar.is-vertical{width:6px;top:2px}.custom-theme .el-scrollbar__bar.is-vertical>div{width:100%}.custom-theme .el-scrollbar__bar.is-horizontal{height:6px;left:2px}.custom-theme .el-scrollbar__bar.is-horizontal>div{height:100%}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .time-select{margin:5px 0;min-width:0}.custom-theme .time-select .el-picker-panel__content{max-height:200px;margin:0}.custom-theme .time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.custom-theme .time-select-item.selected:not(.disabled){color:#262729;font-weight:700}.custom-theme .time-select-item.disabled{color:#dfe4ed;cursor:not-allowed}.custom-theme .time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.custom-theme .fade-in-linear-enter-active,.custom-theme .fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .fade-in-linear-enter,.custom-theme .fade-in-linear-leave,.custom-theme .fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-linear-enter-active,.custom-theme .el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.custom-theme .el-fade-in-linear-enter,.custom-theme .el-fade-in-linear-leave,.custom-theme .el-fade-in-linear-leave-active{opacity:0}.custom-theme .el-fade-in-enter-active,.custom-theme .el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-fade-in-enter,.custom-theme .el-fade-in-leave-active{opacity:0}.custom-theme .el-zoom-in-center-enter-active,.custom-theme .el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-zoom-in-center-enter,.custom-theme .el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.custom-theme .el-zoom-in-top-enter-active,.custom-theme .el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center top;transform-origin:center top}.custom-theme .el-zoom-in-top-enter,.custom-theme .el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-bottom-enter-active,.custom-theme .el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:center bottom;transform-origin:center bottom}.custom-theme .el-zoom-in-bottom-enter,.custom-theme .el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.custom-theme .el-zoom-in-left-enter-active,.custom-theme .el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;-webkit-transform-origin:top left;transform-origin:top left}.custom-theme .el-zoom-in-left-enter,.custom-theme .el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.custom-theme .el-list-enter-active,.custom-theme .el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.custom-theme .el-list-enter,.custom-theme .el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.custom-theme .el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.custom-theme .el-date-editor{position:relative;display:inline-block;text-align:left}.custom-theme .el-date-editor.el-input,.custom-theme .el-date-editor.el-input__inner{width:220px}.custom-theme .el-date-editor--daterange.el-input,.custom-theme .el-date-editor--daterange.el-input__inner,.custom-theme .el-date-editor--timerange.el-input,.custom-theme .el-date-editor--timerange.el-input__inner{width:350px}.custom-theme .el-date-editor--datetimerange.el-input,.custom-theme .el-date-editor--datetimerange.el-input__inner{width:400px}.custom-theme .el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#b4bccc;float:left;line-height:32px}.custom-theme .el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#5a5e66}.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-input::placeholder{color:#b4bccc}.custom-theme .el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#2d2f33}.custom-theme .el-date-editor .el-range__close-icon{font-size:14px;color:#b4bccc;width:25px;display:inline-block;float:right;line-height:32px}.custom-theme .el-range-editor.el-input__inner{padding:3px 10px}.custom-theme .el-range-editor.is-active{border-color:#262729}.custom-theme .el-range-editor.is-active:hover{border-color:#262729}.custom-theme .el-range-editor--medium.el-input__inner{height:36px}.custom-theme .el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.custom-theme .el-range-editor--medium .el-range-input{font-size:14px}.custom-theme .el-range-editor--medium .el-range__close-icon,.custom-theme .el-range-editor--medium .el-range__icon{line-height:28px}.custom-theme .el-range-editor--small.el-input__inner{height:32px}.custom-theme .el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.custom-theme .el-range-editor--small .el-range-input{font-size:13px}.custom-theme .el-range-editor--small .el-range__close-icon,.custom-theme .el-range-editor--small .el-range__icon{line-height:24px}.custom-theme .el-range-editor--mini.el-input__inner{height:28px}.custom-theme .el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.custom-theme .el-range-editor--mini .el-range-input{font-size:12px}.custom-theme .el-range-editor--mini .el-range__close-icon,.custom-theme .el-range-editor--mini .el-range__icon{line-height:20px}.custom-theme .el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-range-editor.is-disabled:focus,.custom-theme .el-range-editor.is-disabled:hover{border-color:#dfe4ed}.custom-theme .el-range-editor.is-disabled input{background-color:#f5f7fa;color:#b4bccc;cursor:not-allowed}.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled input::placeholder{color:#b4bccc}.custom-theme .el-range-editor.is-disabled .el-range-separator{color:#b4bccc}.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper:nth-child(2){margin-left:1%}.custom-theme .el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.custom-theme .el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.custom-theme .el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.custom-theme .el-time-spinner__arrow{font-size:12px;color:#878d99;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.custom-theme .el-time-spinner__arrow:hover{color:#262729}.custom-theme .el-time-spinner__arrow.el-icon-arrow-up{top:10px}.custom-theme .el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.custom-theme .el-time-spinner__input.el-input{width:70%}.custom-theme .el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.custom-theme .el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.custom-theme .el-time-spinner__list::after,.custom-theme .el-time-spinner__list::before{content:'';display:block;width:100%;height:80px}.custom-theme .el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#5a5e66}.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.custom-theme .el-time-spinner__item.active:not(.disabled){color:#2d2f33;font-weight:700}.custom-theme .el-time-spinner__item.disabled{color:#b4bccc;cursor:not-allowed}.custom-theme .el-time-panel{margin:5px 0;border:solid 1px #dfe4ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-time-panel__content{font-size:0;position:relative;overflow:hidden}.custom-theme .el-time-panel__content::after,.custom-theme .el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #dfe4ed;border-bottom:1px solid #dfe4ed}.custom-theme .el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.custom-theme .el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.custom-theme .el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.custom-theme .el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.custom-theme .el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#2d2f33}.custom-theme .el-time-panel__btn.confirm{font-weight:800;color:#262729}.custom-theme .el-time-panel .popper__arrow{-webkit-transform:translateX(-400%);transform:translateX(-400%)}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-scrollbar{overflow:hidden;position:relative}.custom-theme .el-scrollbar:active>.el-scrollbar__bar,.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,.custom-theme .el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.custom-theme .el-scrollbar__wrap{overflow:scroll;height:100%}.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.custom-theme .el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(135,141,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.5)}.custom-theme .el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.custom-theme .el-scrollbar__bar.is-vertical{width:6px;top:2px}.custom-theme .el-scrollbar__bar.is-vertical>div{width:100%}.custom-theme .el-scrollbar__bar.is-horizontal{height:6px;left:2px}.custom-theme .el-scrollbar__bar.is-horizontal>div{height:100%}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #e6ebf5;padding:12px;z-index:2000;color:#5a5e66;line-height:1.4;text-align:justify;word-break:break-all;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.custom-theme .el-popover--plain{padding:18px 20px}.custom-theme .el-popover__title{color:#2d2f33;font-size:16px;line-height:1;margin-bottom:12px}.custom-theme .el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2}.custom-theme .el-tooltip__popper .popper__arrow,.custom-theme .el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-tooltip__popper .popper__arrow{border-width:6px}.custom-theme .el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.custom-theme .el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#2d2f33;border-bottom-width:0}.custom-theme .el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#2d2f33;border-bottom-width:0}.custom-theme .el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#2d2f33}.custom-theme .el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#2d2f33}.custom-theme .el-tooltip__popper[x-placement^=right]{margin-left:12px}.custom-theme .el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#2d2f33;border-left-width:0}.custom-theme .el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#2d2f33;border-left-width:0}.custom-theme .el-tooltip__popper[x-placement^=left]{margin-right:12px}.custom-theme .el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#2d2f33}.custom-theme .el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#2d2f33}.custom-theme .el-tooltip__popper.is-dark{background:#2d2f33;color:#fff}.custom-theme .el-tooltip__popper.is-light{background:#fff;border:1px solid #2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#fff}.custom-theme .el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#fff}.custom-theme .el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#fff}.custom-theme .el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#fff}.custom-theme .v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.custom-theme .v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.custom-theme .v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.custom-theme .el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-color:#d8dce5;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button+.el-button{margin-left:10px}.custom-theme .el-button.is-round{padding:12px 20px}.custom-theme .el-button:focus,.custom-theme .el-button:hover{color:#262729;border-color:#bebebf;background-color:#e9e9ea}.custom-theme .el-button:active{color:#222325;border-color:#222325;outline:0}.custom-theme .el-button::-moz-focus-inner{border:0}.custom-theme .el-button [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-button.is-plain:focus,.custom-theme .el-button.is-plain:hover{background:#fff;border-color:#262729;color:#262729}.custom-theme .el-button.is-plain:active{background:#fff;border-color:#222325;color:#222325;outline:0}.custom-theme .el-button.is-active{color:#222325;border-color:#222325}.custom-theme .el-button.is-disabled,.custom-theme .el-button.is-disabled:focus,.custom-theme .el-button.is-disabled:hover{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5}.custom-theme .el-button.is-disabled.el-button--text{background-color:transparent}.custom-theme .el-button.is-disabled.is-plain,.custom-theme .el-button.is-disabled.is-plain:focus,.custom-theme .el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#e6ebf5;color:#b4bccc}.custom-theme .el-button.is-loading{position:relative;pointer-events:none}.custom-theme .el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.custom-theme .el-button.is-round{border-radius:20px;padding:12px 23px}.custom-theme .el-button--primary{color:#fff;background-color:#262729;border-color:#262729}.custom-theme .el-button--primary:focus,.custom-theme .el-button--primary:hover{background:#515254;border-color:#515254;color:#fff}.custom-theme .el-button--primary:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-active{background:#222325;border-color:#222325;color:#fff}.custom-theme .el-button--primary.is-disabled,.custom-theme .el-button--primary.is-disabled:active,.custom-theme .el-button--primary.is-disabled:focus,.custom-theme .el-button--primary.is-disabled:hover{color:#fff;background-color:#939394;border-color:#939394}.custom-theme .el-button--primary.is-plain{color:#262729;background:#e9e9ea;border-color:#a8a9a9}.custom-theme .el-button--primary.is-plain:focus,.custom-theme .el-button--primary.is-plain:hover{background:#262729;border-color:#262729;color:#fff}.custom-theme .el-button--primary.is-plain:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-plain.is-disabled,.custom-theme .el-button--primary.is-plain.is-disabled:active,.custom-theme .el-button--primary.is-plain.is-disabled:focus,.custom-theme .el-button--primary.is-plain.is-disabled:hover{color:#7d7d7f;background-color:#e9e9ea;border-color:#d4d4d4}.custom-theme .el-button--success{color:#fff;background-color:#409167;border-color:#409167}.custom-theme .el-button--success:focus,.custom-theme .el-button--success:hover{background:#66a785;border-color:#66a785;color:#fff}.custom-theme .el-button--success:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-active{background:#3a835d;border-color:#3a835d;color:#fff}.custom-theme .el-button--success.is-disabled,.custom-theme .el-button--success.is-disabled:active,.custom-theme .el-button--success.is-disabled:focus,.custom-theme .el-button--success.is-disabled:hover{color:#fff;background-color:#a0c8b3;border-color:#a0c8b3}.custom-theme .el-button--success.is-plain{color:#409167;background:#ecf4f0;border-color:#b3d3c2}.custom-theme .el-button--success.is-plain:focus,.custom-theme .el-button--success.is-plain:hover{background:#409167;border-color:#409167;color:#fff}.custom-theme .el-button--success.is-plain:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-plain.is-disabled,.custom-theme .el-button--success.is-plain.is-disabled:active,.custom-theme .el-button--success.is-plain.is-disabled:focus,.custom-theme .el-button--success.is-plain.is-disabled:hover{color:#8cbda4;background-color:#ecf4f0;border-color:#d9e9e1}.custom-theme .el-button--warning{color:#fff;background-color:#9da408;border-color:#9da408}.custom-theme .el-button--warning:focus,.custom-theme .el-button--warning:hover{background:#b1b639;border-color:#b1b639;color:#fff}.custom-theme .el-button--warning:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-active{background:#8d9407;border-color:#8d9407;color:#fff}.custom-theme .el-button--warning.is-disabled,.custom-theme .el-button--warning.is-disabled:active,.custom-theme .el-button--warning.is-disabled:focus,.custom-theme .el-button--warning.is-disabled:hover{color:#fff;background-color:#ced284;border-color:#ced284}.custom-theme .el-button--warning.is-plain{color:#9da408;background:#f5f6e6;border-color:#d8db9c}.custom-theme .el-button--warning.is-plain:focus,.custom-theme .el-button--warning.is-plain:hover{background:#9da408;border-color:#9da408;color:#fff}.custom-theme .el-button--warning.is-plain:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-plain.is-disabled,.custom-theme .el-button--warning.is-plain.is-disabled:active,.custom-theme .el-button--warning.is-plain.is-disabled:focus,.custom-theme .el-button--warning.is-plain.is-disabled:hover{color:#c4c86b;background-color:#f5f6e6;border-color:#ebedce}.custom-theme .el-button--danger{color:#fff;background-color:#b3450e;border-color:#b3450e}.custom-theme .el-button--danger:focus,.custom-theme .el-button--danger:hover{background:#c26a3e;border-color:#c26a3e;color:#fff}.custom-theme .el-button--danger:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-active{background:#a13e0d;border-color:#a13e0d;color:#fff}.custom-theme .el-button--danger.is-disabled,.custom-theme .el-button--danger.is-disabled:active,.custom-theme .el-button--danger.is-disabled:focus,.custom-theme .el-button--danger.is-disabled:hover{color:#fff;background-color:#d9a287;border-color:#d9a287}.custom-theme .el-button--danger.is-plain{color:#b3450e;background:#f7ece7;border-color:#e1b59f}.custom-theme .el-button--danger.is-plain:focus,.custom-theme .el-button--danger.is-plain:hover{background:#b3450e;border-color:#b3450e;color:#fff}.custom-theme .el-button--danger.is-plain:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-plain.is-disabled,.custom-theme .el-button--danger.is-plain.is-disabled:active,.custom-theme .el-button--danger.is-plain.is-disabled:focus,.custom-theme .el-button--danger.is-plain.is-disabled:hover{color:#d18f6e;background-color:#f7ece7;border-color:#f0dacf}.custom-theme .el-button--info{color:#fff;background-color:#0a76a4;border-color:#0a76a4}.custom-theme .el-button--info:focus,.custom-theme .el-button--info:hover{background:#3b91b6;border-color:#3b91b6;color:#fff}.custom-theme .el-button--info:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-active{background:#096a94;border-color:#096a94;color:#fff}.custom-theme .el-button--info.is-disabled,.custom-theme .el-button--info.is-disabled:active,.custom-theme .el-button--info.is-disabled:focus,.custom-theme .el-button--info.is-disabled:hover{color:#fff;background-color:#85bbd2;border-color:#85bbd2}.custom-theme .el-button--info.is-plain{color:#0a76a4;background:#e7f1f6;border-color:#9dc8db}.custom-theme .el-button--info.is-plain:focus,.custom-theme .el-button--info.is-plain:hover{background:#0a76a4;border-color:#0a76a4;color:#fff}.custom-theme .el-button--info.is-plain:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-plain.is-disabled,.custom-theme .el-button--info.is-plain.is-disabled:active,.custom-theme .el-button--info.is-plain.is-disabled:focus,.custom-theme .el-button--info.is-plain.is-disabled:hover{color:#6cadc8;background-color:#e7f1f6;border-color:#cee4ed}.custom-theme .el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button--medium.is-round{padding:10px 20px}.custom-theme .el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--small.is-round{padding:9px 15px}.custom-theme .el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--mini.is-round{padding:7px 15px}.custom-theme .el-button--text{border:none;color:#262729;background:0 0;padding-left:0;padding-right:0}.custom-theme .el-button--text:focus,.custom-theme .el-button--text:hover{color:#515254;border-color:transparent;background-color:transparent}.custom-theme .el-button--text:active{color:#222325;border-color:transparent;background-color:transparent}.custom-theme .el-button-group{display:inline-block;vertical-align:middle}.custom-theme .el-button-group::after,.custom-theme .el-button-group::before{display:table;content:""}.custom-theme .el-button-group::after{clear:both}.custom-theme .el-button-group .el-button{float:left;position:relative}.custom-theme .el-button-group .el-button+.el-button{margin-left:0}.custom-theme .el-button-group .el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-button-group .el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child){border-radius:0}.custom-theme .el-button-group .el-button:not(:last-child){margin-right:-1px}.custom-theme .el-button-group .el-button:active,.custom-theme .el-button-group .el-button:focus,.custom-theme .el-button-group .el-button:hover{z-index:1}.custom-theme .el-button-group .el-button.is-active{z-index:1}.custom-theme .el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #e6ebf5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.custom-theme .el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.custom-theme .el-message-box__wrapper::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.custom-theme .el-message-box__header{position:relative;padding:15px;padding-bottom:10px}.custom-theme .el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#2d2f33}.custom-theme .el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.custom-theme .el-message-box__headerbtn .el-message-box__close{color:#0a76a4}.custom-theme .el-message-box__headerbtn:focus .el-message-box__close,.custom-theme .el-message-box__headerbtn:hover .el-message-box__close{color:#262729}.custom-theme .el-message-box__content{position:relative;padding:10px 15px;color:#5a5e66;font-size:14px}.custom-theme .el-message-box__input{padding-top:15px}.custom-theme .el-message-box__input input.invalid{border-color:#b3450e}.custom-theme .el-message-box__input input.invalid:focus{border-color:#b3450e}.custom-theme .el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.custom-theme .el-message-box__status::before{padding-left:1px}.custom-theme .el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.custom-theme .el-message-box__status.el-icon-success{color:#409167}.custom-theme .el-message-box__status.el-icon-info{color:#0a76a4}.custom-theme .el-message-box__status.el-icon-warning{color:#9da408}.custom-theme .el-message-box__status.el-icon-error{color:#b3450e}.custom-theme .el-message-box__message{margin:0}.custom-theme .el-message-box__message p{margin:0;line-height:24px}.custom-theme .el-message-box__errormsg{color:#b3450e;font-size:12px;min-height:18px;margin-top:2px}.custom-theme .el-message-box__btns{padding:5px 15px 0;text-align:right}.custom-theme .el-message-box__btns button:nth-child(2){margin-left:10px}.custom-theme .el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.custom-theme .el-message-box--center{padding-bottom:30px}.custom-theme .el-message-box--center .el-message-box__header{padding-top:30px}.custom-theme .el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.custom-theme .el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.custom-theme .el-message-box--center .el-message-box__message{margin-left:0}.custom-theme .el-message-box--center .el-message-box__btns,.custom-theme .el-message-box--center .el-message-box__content{text-align:center}.custom-theme .el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.custom-theme .msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.custom-theme .msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.custom-theme .el-breadcrumb{font-size:14px;line-height:1}.custom-theme .el-breadcrumb::after,.custom-theme .el-breadcrumb::before{display:table;content:""}.custom-theme .el-breadcrumb::after{clear:both}.custom-theme .el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#b4bccc}.custom-theme .el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.custom-theme .el-breadcrumb__item{float:left}.custom-theme .el-breadcrumb__inner,.custom-theme .el-breadcrumb__inner a{font-weight:700;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#2d2f33}.custom-theme .el-breadcrumb__inner a:hover,.custom-theme .el-breadcrumb__inner:hover{color:#262729;cursor:pointer}.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner,.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a,.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#5a5e66;cursor:text}.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.custom-theme .el-form--label-left .el-form-item__label{text-align:left}.custom-theme .el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px 0}.custom-theme .el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.custom-theme .el-form--inline .el-form-item__label{float:none;display:inline-block}.custom-theme .el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.custom-theme .el-form--inline.el-form--label-top .el-form-item__content{display:block}.custom-theme .el-form-item{margin-bottom:22px}.custom-theme .el-form-item::after,.custom-theme .el-form-item::before{display:table;content:""}.custom-theme .el-form-item::after{clear:both}.custom-theme .el-form-item .el-form-item{margin-bottom:0}.custom-theme .el-form-item .el-input__validateIcon{display:none}.custom-theme .el-form-item--medium .el-form-item__label{line-height:36px}.custom-theme .el-form-item--medium .el-form-item__content{line-height:36px}.custom-theme .el-form-item--small .el-form-item__label{line-height:32px}.custom-theme .el-form-item--small .el-form-item__content{line-height:32px}.custom-theme .el-form-item--small.el-form-item{margin-bottom:18px}.custom-theme .el-form-item--small .el-form-item__error{padding-top:2px}.custom-theme .el-form-item--mini .el-form-item__label{line-height:28px}.custom-theme .el-form-item--mini .el-form-item__content{line-height:28px}.custom-theme .el-form-item--mini.el-form-item{margin-bottom:18px}.custom-theme .el-form-item--mini .el-form-item__error{padding-top:1px}.custom-theme .el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#5a5e66;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-form-item__content{line-height:40px;position:relative;font-size:14px}.custom-theme .el-form-item__content::after,.custom-theme .el-form-item__content::before{display:table;content:""}.custom-theme .el-form-item__content::after{clear:both}.custom-theme .el-form-item__error{color:#b3450e;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.custom-theme .el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.custom-theme .el-form-item.is-required .el-form-item__label:before{content:'*';color:#b3450e;margin-right:4px}.custom-theme .el-form-item.is-error .el-input__inner,.custom-theme .el-form-item.is-error .el-input__inner:focus,.custom-theme .el-form-item.is-error .el-textarea__inner,.custom-theme .el-form-item.is-error .el-textarea__inner:focus{border-color:#b3450e}.custom-theme .el-form-item.is-error .el-input-group__append .el-input__inner,.custom-theme .el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.custom-theme .el-form-item.is-error .el-input__validateIcon{color:#b3450e}.custom-theme .el-form-item.is-success .el-input__inner,.custom-theme .el-form-item.is-success .el-input__inner:focus,.custom-theme .el-form-item.is-success .el-textarea__inner,.custom-theme .el-form-item.is-success .el-textarea__inner:focus{border-color:#409167}.custom-theme .el-form-item.is-success .el-input-group__append .el-input__inner,.custom-theme .el-form-item.is-success .el-input-group__prepend .el-input__inner{border-color:transparent}.custom-theme .el-form-item.is-success .el-input__validateIcon{color:#409167}.custom-theme .el-form-item--feedback .el-input__validateIcon{display:inline-block}.custom-theme .el-tabs__header{padding:0;position:relative;margin:0 0 15px}.custom-theme .el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#262729;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.custom-theme .el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.custom-theme .el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}.custom-theme .el-tabs__new-tab:hover{color:#262729}.custom-theme .el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.custom-theme .el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#dfe4ed;z-index:1}.custom-theme .el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-tabs__nav-scroll{overflow:hidden}.custom-theme .el-tabs__nav-next,.custom-theme .el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#878d99}.custom-theme .el-tabs__nav-next{right:0}.custom-theme .el-tabs__nav-prev{left:0}.custom-theme .el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.custom-theme .el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#2d2f33;position:relative}.custom-theme .el-tabs__item:focus,.custom-theme .el-tabs__item:focus:active{outline:0}.custom-theme .el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.custom-theme .el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.custom-theme .el-tabs__item .el-icon-close:hover{background-color:#b4bccc;color:#fff}.custom-theme .el-tabs__item.is-active{color:#262729}.custom-theme .el-tabs__item:hover{color:#262729;cursor:pointer}.custom-theme .el-tabs__item.is-disabled{color:#b4bccc;cursor:default}.custom-theme .el-tabs__content{overflow:hidden;position:relative}.custom-theme .el-tabs--card>.el-tabs__header{border-bottom:1px solid #dfe4ed}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #dfe4ed;border-bottom:none;border-radius:4px 4px 0 0}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #dfe4ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.custom-theme .el-tabs--border-card{background:#fff;border:1px solid #d8dce5;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.custom-theme .el-tabs--border-card>.el-tabs__content{padding:15px}.custom-theme .el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #dfe4ed;margin:0}.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin:-1px -1px 0;color:#878d99}.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#262729;background-color:#fff;border-right-color:#d8dce5;border-left-color:#d8dce5}.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__item:hover{color:#262729}.custom-theme .el-tabs--bottom:not(.el-tabs--border-card):not(.el-tabs--card) .el-tabs__item:nth-child(2),.custom-theme .el-tabs--top:not(.el-tabs--border-card):not(.el-tabs--card) .el-tabs__item:nth-child(2){padding-left:0}.custom-theme .el-tabs--bottom .el-tabs__header{margin-bottom:0;margin-top:10px}.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__header{border-bottom:0;border-top:1px solid #d8dce5}.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap{margin-top:-1px;margin-bottom:0}.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__item{border:1px solid transparent;margin:0 -1px -1px -1px}.custom-theme .el-tabs--left,.custom-theme .el-tabs--right{overflow:hidden}.custom-theme .el-tabs--left .el-tabs__header,.custom-theme .el-tabs--left .el-tabs__nav-scroll,.custom-theme .el-tabs--left .el-tabs__nav-wrap,.custom-theme .el-tabs--right .el-tabs__header,.custom-theme .el-tabs--right .el-tabs__nav-scroll,.custom-theme .el-tabs--right .el-tabs__nav-wrap{height:100%}.custom-theme .el-tabs--left .el-tabs__active-bar,.custom-theme .el-tabs--right .el-tabs__active-bar{top:0;bottom:auto;width:2px;height:auto}.custom-theme .el-tabs--left .el-tabs__nav-wrap,.custom-theme .el-tabs--right .el-tabs__nav-wrap{margin-bottom:0}.custom-theme .el-tabs--left .el-tabs__nav-wrap.is-scrollable,.custom-theme .el-tabs--right .el-tabs__nav-wrap.is-scrollable{padding:30px 0}.custom-theme .el-tabs--left .el-tabs__nav-wrap::after,.custom-theme .el-tabs--right .el-tabs__nav-wrap::after{height:100%;width:2px;bottom:auto;top:0}.custom-theme .el-tabs--left .el-tabs__nav,.custom-theme .el-tabs--right .el-tabs__nav{float:none}.custom-theme .el-tabs--left .el-tabs__item,.custom-theme .el-tabs--right .el-tabs__item{display:block}.custom-theme .el-tabs--left .el-tabs__nav-next,.custom-theme .el-tabs--left .el-tabs__nav-prev,.custom-theme .el-tabs--right .el-tabs__nav-next,.custom-theme .el-tabs--right .el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.custom-theme .el-tabs--left .el-tabs__nav-next i,.custom-theme .el-tabs--left .el-tabs__nav-prev i,.custom-theme .el-tabs--right .el-tabs__nav-next i,.custom-theme .el-tabs--right .el-tabs__nav-prev i{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg)}.custom-theme .el-tabs--left .el-tabs__nav-prev,.custom-theme .el-tabs--right .el-tabs__nav-prev{left:auto;top:0}.custom-theme .el-tabs--left .el-tabs__nav-next,.custom-theme .el-tabs--right .el-tabs__nav-next{right:auto;bottom:0}.custom-theme .el-tabs--left .el-tabs__header{float:left;margin-bottom:0;margin-right:10px}.custom-theme .el-tabs--left .el-tabs__nav-wrap{margin-right:-1px}.custom-theme .el-tabs--left .el-tabs__nav-wrap::after{left:auto;right:0}.custom-theme .el-tabs--left .el-tabs__active-bar{right:0;left:auto}.custom-theme .el-tabs--left .el-tabs__item{text-align:right}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__active-bar{display:none}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item{border-left:none;border-right:1px solid #dfe4ed;border-bottom:none;border-top:1px solid #dfe4ed}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item:first-child{border-right:1px solid #dfe4ed;border-top:none}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active{border:1px solid #dfe4ed;border-right-color:#fff;border-left:none;border-bottom:none}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active:first-child{border-top:none}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active:last-child{border-bottom:none}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #dfe4ed;border-right:none}.custom-theme .el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__header{border-right:1px solid #dfe4ed}.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item{border:1px solid transparent;margin:-1px 0 -1px -1px}.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.custom-theme .el-tabs--right .el-tabs__header{float:right;margin-bottom:0;margin-left:10px}.custom-theme .el-tabs--right .el-tabs__nav-wrap{margin-left:-1px}.custom-theme .el-tabs--right .el-tabs__nav-wrap::after{left:0;right:auto}.custom-theme .el-tabs--right .el-tabs__active-bar{left:0}.custom-theme .el-tabs--right.el-tabs--card .el-tabs__active-bar{display:none}.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item{border-bottom:none;border-top:1px solid #dfe4ed}.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item:first-child{border-left:1px solid #dfe4ed;border-top:none}.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active{border:1px solid #dfe4ed;border-left-color:#fff;border-right:none;border-bottom:none}.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active:first-child{border-top:none}.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active:last-child{border-bottom:none}.custom-theme .el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #dfe4ed;border-left:none}.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__header{border-left:1px solid #dfe4ed}.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item{border:1px solid transparent;margin:-1px -1px -1px 0}.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.custom-theme .slideInLeft-transition,.custom-theme .slideInRight-transition{display:inline-block}.custom-theme .slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.custom-theme .slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.custom-theme .slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.custom-theme .slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.custom-theme .el-tag{background-color:rgba(38,39,41,.1);display:inline-block;padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#262729;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(38,39,41,.2);white-space:nowrap}.custom-theme .el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-5px;color:#262729}.custom-theme .el-tag .el-icon-close::before{display:block}.custom-theme .el-tag .el-icon-close:hover{background-color:#262729;color:#fff}.custom-theme .el-tag--info{background-color:rgba(10,118,164,.1);border-color:rgba(10,118,164,.2);color:#0a76a4}.custom-theme .el-tag--info.is-hit{border-color:#0a76a4}.custom-theme .el-tag--info .el-tag__close{color:#0a76a4}.custom-theme .el-tag--info .el-tag__close:hover{background-color:#0a76a4;color:#fff}.custom-theme .el-tag--success{background-color:rgba(64,145,103,.1);border-color:rgba(64,145,103,.2);color:#409167}.custom-theme .el-tag--success.is-hit{border-color:#409167}.custom-theme .el-tag--success .el-tag__close{color:#409167}.custom-theme .el-tag--success .el-tag__close:hover{background-color:#409167;color:#fff}.custom-theme .el-tag--warning{background-color:rgba(157,164,8,.1);border-color:rgba(157,164,8,.2);color:#9da408}.custom-theme .el-tag--warning.is-hit{border-color:#9da408}.custom-theme .el-tag--warning .el-tag__close{color:#9da408}.custom-theme .el-tag--warning .el-tag__close:hover{background-color:#9da408;color:#fff}.custom-theme .el-tag--danger{background-color:rgba(179,69,14,.1);border-color:rgba(179,69,14,.2);color:#b3450e}.custom-theme .el-tag--danger.is-hit{border-color:#b3450e}.custom-theme .el-tag--danger .el-tag__close{color:#b3450e}.custom-theme .el-tag--danger .el-tag__close:hover{background-color:#b3450e;color:#fff}.custom-theme .el-tag--medium{height:28px;line-height:26px}.custom-theme .el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--small{height:24px;padding:0 8px;line-height:22px}.custom-theme .el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-tag--mini{height:20px;padding:0 5px;line-height:19px}.custom-theme .el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.custom-theme .el-tree{cursor:default;background:#fff;color:#5a5e66}.custom-theme .el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.custom-theme .el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#623615}.custom-theme .el-tree-node{white-space:nowrap}.custom-theme .el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.custom-theme .el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.custom-theme .el-tree-node__content>.el-checkbox{margin-right:8px}.custom-theme .el-tree-node__content:hover{background-color:#f5f7fa}.custom-theme .el-tree-node__expand-icon{cursor:pointer;color:#b4bccc;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.custom-theme .el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.custom-theme .el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.custom-theme .el-tree-node__label{font-size:14px}.custom-theme .el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#b4bccc}.custom-theme .el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.custom-theme .el-tree-node.is-expanded>.el-tree-node__children{display:block}.custom-theme .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#eee}.custom-theme .el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.custom-theme .el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.custom-theme .el-alert--success{background-color:#ecf4f0;color:#409167}.custom-theme .el-alert--success .el-alert__description{color:#409167}.custom-theme .el-alert--info{background-color:#e7f1f6;color:#0a76a4}.custom-theme .el-alert--info .el-alert__description{color:#0a76a4}.custom-theme .el-alert--warning{background-color:#f5f6e6;color:#9da408}.custom-theme .el-alert--warning .el-alert__description{color:#9da408}.custom-theme .el-alert--error{background-color:#f7ece7;color:#b3450e}.custom-theme .el-alert--error .el-alert__description{color:#b3450e}.custom-theme .el-alert__content{display:table-cell;padding:0 8px}.custom-theme .el-alert__icon{font-size:16px;width:16px}.custom-theme .el-alert__icon.is-big{font-size:28px;width:28px}.custom-theme .el-alert__title{font-size:13px;line-height:18px}.custom-theme .el-alert__title.is-bold{font-weight:700}.custom-theme .el-alert .el-alert__description{font-size:12px;margin:5px 0 0 0}.custom-theme .el-alert__closebtn{font-size:12px;color:#b4bccc;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.custom-theme .el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.custom-theme .el-alert-fade-enter,.custom-theme .el-alert-fade-leave-active{opacity:0}.custom-theme .el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #e6ebf5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.custom-theme .el-notification.right{right:16px}.custom-theme .el-notification.left{left:16px}.custom-theme .el-notification__group{margin-left:13px}.custom-theme .el-notification__title{font-weight:700;font-size:16px;color:#2d2f33;margin:0}.custom-theme .el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0 0;color:#5a5e66;text-align:justify}.custom-theme .el-notification__content p{margin:0}.custom-theme .el-notification__icon{height:24px;width:24px;font-size:24px;-webkit-transform:translateY(4px);transform:translateY(4px)}.custom-theme .el-notification__closeBtn{position:absolute;top:15px;right:15px;cursor:pointer;color:#878d99;font-size:16px}.custom-theme .el-notification__closeBtn:hover{color:#5a5e66}.custom-theme .el-notification .el-icon-success{color:#409167}.custom-theme .el-notification .el-icon-error{color:#b3450e}.custom-theme .el-notification .el-icon-info{color:#0a76a4}.custom-theme .el-notification .el-icon-warning{color:#9da408}.custom-theme .el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.custom-theme .el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.custom-theme .el-notification-fade-leave-active{opacity:0}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.custom-theme .el-input-number .el-input{display:block}.custom-theme .el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.custom-theme .el-input-number__decrease,.custom-theme .el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#5a5e66;cursor:pointer;font-size:13px}.custom-theme .el-input-number__decrease:hover,.custom-theme .el-input-number__increase:hover{color:#262729}.custom-theme .el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.custom-theme .el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#262729}.custom-theme .el-input-number__decrease.is-disabled,.custom-theme .el-input-number__increase.is-disabled{color:#b4bccc;cursor:not-allowed}.custom-theme .el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #d8dce5}.custom-theme .el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #d8dce5}.custom-theme .el-input-number.is-disabled .el-input-number__decrease,.custom-theme .el-input-number.is-disabled .el-input-number__increase{border-color:#dfe4ed;color:#dfe4ed}.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover,.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover{color:#dfe4ed;cursor:not-allowed}.custom-theme .el-input-number--medium{width:200px;line-height:34px}.custom-theme .el-input-number--medium .el-input-number__decrease,.custom-theme .el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.custom-theme .el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.custom-theme .el-input-number--small{width:130px;line-height:30px}.custom-theme .el-input-number--small .el-input-number__decrease,.custom-theme .el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.custom-theme .el-input-number--small .el-input-number__decrease [class*=el-icon],.custom-theme .el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.custom-theme .el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.custom-theme .el-input-number--mini{width:130px;line-height:26px}.custom-theme .el-input-number--mini .el-input-number__decrease,.custom-theme .el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.custom-theme .el-input-number--mini .el-input-number__decrease [class*=el-icon],.custom-theme .el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.custom-theme .el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.custom-theme .el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.custom-theme .el-input-number.is-controls-right .el-input-number__decrease,.custom-theme .el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.custom-theme .el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.custom-theme .el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.custom-theme .el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #d8dce5}.custom-theme .el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #d8dce5;border-radius:0 0 4px 0}.custom-theme .el-input-number.is-controls-right[class*=medium] [class*=decrease],.custom-theme .el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.custom-theme .el-input-number.is-controls-right[class*=small] [class*=decrease],.custom-theme .el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.custom-theme .el-input-number.is-controls-right[class*=mini] [class*=decrease],.custom-theme .el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.custom-theme .el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2}.custom-theme .el-tooltip__popper .popper__arrow,.custom-theme .el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-tooltip__popper .popper__arrow{border-width:6px}.custom-theme .el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.custom-theme .el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#2d2f33;border-bottom-width:0}.custom-theme .el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#2d2f33;border-bottom-width:0}.custom-theme .el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#2d2f33}.custom-theme .el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#2d2f33}.custom-theme .el-tooltip__popper[x-placement^=right]{margin-left:12px}.custom-theme .el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#2d2f33;border-left-width:0}.custom-theme .el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#2d2f33;border-left-width:0}.custom-theme .el-tooltip__popper[x-placement^=left]{margin-right:12px}.custom-theme .el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#2d2f33}.custom-theme .el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#2d2f33}.custom-theme .el-tooltip__popper.is-dark{background:#2d2f33;color:#fff}.custom-theme .el-tooltip__popper.is-light{background:#fff;border:1px solid #2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#fff}.custom-theme .el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#fff}.custom-theme .el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#fff}.custom-theme .el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#2d2f33}.custom-theme .el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#fff}.custom-theme .el-slider::after,.custom-theme .el-slider::before{display:table;content:""}.custom-theme .el-slider::after{clear:both}.custom-theme .el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#dfe4ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.custom-theme .el-slider__runway.show-input{margin-right:160px;width:auto}.custom-theme .el-slider__runway.disabled{cursor:default}.custom-theme .el-slider__runway.disabled .el-slider__bar{background-color:#b4bccc}.custom-theme .el-slider__runway.disabled .el-slider__button{border-color:#b4bccc}.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.hover,.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.custom-theme .el-slider__runway.disabled .el-slider__button.dragging,.custom-theme .el-slider__runway.disabled .el-slider__button.hover,.custom-theme .el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1)}.custom-theme .el-slider__runway.disabled .el-slider__button.hover,.custom-theme .el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.custom-theme .el-slider__runway.disabled .el-slider__button.dragging{cursor:not-allowed}.custom-theme .el-slider__input{float:right;margin-top:3px}.custom-theme .el-slider__bar{height:6px;background-color:#262729;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.custom-theme .el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-slider__button-wrapper::after{display:inline-block;content:"";height:100%;vertical-align:middle}.custom-theme .el-slider__button-wrapper .el-tooltip{vertical-align:middle;display:inline-block}.custom-theme .el-slider__button-wrapper.hover,.custom-theme .el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.custom-theme .el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.custom-theme .el-slider__button{width:16px;height:16px;border:solid 2px #262729;background-color:#fff;border-radius:50%;-webkit-transition:.2s;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-slider__button.dragging,.custom-theme .el-slider__button.hover,.custom-theme .el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.custom-theme .el-slider__button.hover,.custom-theme .el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.custom-theme .el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.custom-theme .el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;background-color:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.custom-theme .el-slider.is-vertical{position:relative}.custom-theme .el-slider.is-vertical .el-slider__runway{width:4px;height:100%;margin:0 16px}.custom-theme .el-slider.is-vertical .el-slider__bar{width:4px;height:auto;border-radius:0 0 3px 3px}.custom-theme .el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.custom-theme .el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.custom-theme .el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #d8dce5;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#b4bccc}.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#262729}.custom-theme .el-loading-parent--relative{position:relative!important}.custom-theme .el-loading-parent--hidden{overflow:hidden!important}.custom-theme .el-loading-mask{position:absolute;z-index:10000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.custom-theme .el-loading-mask.is-fullscreen{position:fixed}.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.custom-theme .el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.custom-theme .el-loading-spinner .el-loading-text{color:#262729;margin:3px 0;font-size:14px}.custom-theme .el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.custom-theme .el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#262729;stroke-linecap:round}.custom-theme .el-loading-spinner i{color:#262729}.custom-theme .el-loading-fade-enter,.custom-theme .el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.custom-theme .el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-row::after,.custom-theme .el-row::before{display:table;content:""}.custom-theme .el-row::after{clear:both}.custom-theme .el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.custom-theme .el-row--flex:after,.custom-theme .el-row--flex:before{display:none}.custom-theme .el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.custom-theme .el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.custom-theme .el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.custom-theme .el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.custom-theme .el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.custom-theme .el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.custom-theme [class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-col-0{display:none}.custom-theme .el-col-1{width:4.16667%}.custom-theme .el-col-offset-1{margin-left:4.16667%}.custom-theme .el-col-pull-1{position:relative;right:4.16667%}.custom-theme .el-col-push-1{position:relative;left:4.16667%}.custom-theme .el-col-2{width:8.33333%}.custom-theme .el-col-offset-2{margin-left:8.33333%}.custom-theme .el-col-pull-2{position:relative;right:8.33333%}.custom-theme .el-col-push-2{position:relative;left:8.33333%}.custom-theme .el-col-3{width:12.5%}.custom-theme .el-col-offset-3{margin-left:12.5%}.custom-theme .el-col-pull-3{position:relative;right:12.5%}.custom-theme .el-col-push-3{position:relative;left:12.5%}.custom-theme .el-col-4{width:16.66667%}.custom-theme .el-col-offset-4{margin-left:16.66667%}.custom-theme .el-col-pull-4{position:relative;right:16.66667%}.custom-theme .el-col-push-4{position:relative;left:16.66667%}.custom-theme .el-col-5{width:20.83333%}.custom-theme .el-col-offset-5{margin-left:20.83333%}.custom-theme .el-col-pull-5{position:relative;right:20.83333%}.custom-theme .el-col-push-5{position:relative;left:20.83333%}.custom-theme .el-col-6{width:25%}.custom-theme .el-col-offset-6{margin-left:25%}.custom-theme .el-col-pull-6{position:relative;right:25%}.custom-theme .el-col-push-6{position:relative;left:25%}.custom-theme .el-col-7{width:29.16667%}.custom-theme .el-col-offset-7{margin-left:29.16667%}.custom-theme .el-col-pull-7{position:relative;right:29.16667%}.custom-theme .el-col-push-7{position:relative;left:29.16667%}.custom-theme .el-col-8{width:33.33333%}.custom-theme .el-col-offset-8{margin-left:33.33333%}.custom-theme .el-col-pull-8{position:relative;right:33.33333%}.custom-theme .el-col-push-8{position:relative;left:33.33333%}.custom-theme .el-col-9{width:37.5%}.custom-theme .el-col-offset-9{margin-left:37.5%}.custom-theme .el-col-pull-9{position:relative;right:37.5%}.custom-theme .el-col-push-9{position:relative;left:37.5%}.custom-theme .el-col-10{width:41.66667%}.custom-theme .el-col-offset-10{margin-left:41.66667%}.custom-theme .el-col-pull-10{position:relative;right:41.66667%}.custom-theme .el-col-push-10{position:relative;left:41.66667%}.custom-theme .el-col-11{width:45.83333%}.custom-theme .el-col-offset-11{margin-left:45.83333%}.custom-theme .el-col-pull-11{position:relative;right:45.83333%}.custom-theme .el-col-push-11{position:relative;left:45.83333%}.custom-theme .el-col-12{width:50%}.custom-theme .el-col-offset-12{margin-left:50%}.custom-theme .el-col-pull-12{position:relative;right:50%}.custom-theme .el-col-push-12{position:relative;left:50%}.custom-theme .el-col-13{width:54.16667%}.custom-theme .el-col-offset-13{margin-left:54.16667%}.custom-theme .el-col-pull-13{position:relative;right:54.16667%}.custom-theme .el-col-push-13{position:relative;left:54.16667%}.custom-theme .el-col-14{width:58.33333%}.custom-theme .el-col-offset-14{margin-left:58.33333%}.custom-theme .el-col-pull-14{position:relative;right:58.33333%}.custom-theme .el-col-push-14{position:relative;left:58.33333%}.custom-theme .el-col-15{width:62.5%}.custom-theme .el-col-offset-15{margin-left:62.5%}.custom-theme .el-col-pull-15{position:relative;right:62.5%}.custom-theme .el-col-push-15{position:relative;left:62.5%}.custom-theme .el-col-16{width:66.66667%}.custom-theme .el-col-offset-16{margin-left:66.66667%}.custom-theme .el-col-pull-16{position:relative;right:66.66667%}.custom-theme .el-col-push-16{position:relative;left:66.66667%}.custom-theme .el-col-17{width:70.83333%}.custom-theme .el-col-offset-17{margin-left:70.83333%}.custom-theme .el-col-pull-17{position:relative;right:70.83333%}.custom-theme .el-col-push-17{position:relative;left:70.83333%}.custom-theme .el-col-18{width:75%}.custom-theme .el-col-offset-18{margin-left:75%}.custom-theme .el-col-pull-18{position:relative;right:75%}.custom-theme .el-col-push-18{position:relative;left:75%}.custom-theme .el-col-19{width:79.16667%}.custom-theme .el-col-offset-19{margin-left:79.16667%}.custom-theme .el-col-pull-19{position:relative;right:79.16667%}.custom-theme .el-col-push-19{position:relative;left:79.16667%}.custom-theme .el-col-20{width:83.33333%}.custom-theme .el-col-offset-20{margin-left:83.33333%}.custom-theme .el-col-pull-20{position:relative;right:83.33333%}.custom-theme .el-col-push-20{position:relative;left:83.33333%}.custom-theme .el-col-21{width:87.5%}.custom-theme .el-col-offset-21{margin-left:87.5%}.custom-theme .el-col-pull-21{position:relative;right:87.5%}.custom-theme .el-col-push-21{position:relative;left:87.5%}.custom-theme .el-col-22{width:91.66667%}.custom-theme .el-col-offset-22{margin-left:91.66667%}.custom-theme .el-col-pull-22{position:relative;right:91.66667%}.custom-theme .el-col-push-22{position:relative;left:91.66667%}.custom-theme .el-col-23{width:95.83333%}.custom-theme .el-col-offset-23{margin-left:95.83333%}.custom-theme .el-col-pull-23{position:relative;right:95.83333%}.custom-theme .el-col-push-23{position:relative;left:95.83333%}.custom-theme .el-col-24{width:100%}.custom-theme .el-col-offset-24{margin-left:100%}.custom-theme .el-col-pull-24{position:relative;right:100%}.custom-theme .el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.custom-theme .el-col-xs-0{display:none}.custom-theme .el-col-xs-1{width:4.16667%}.custom-theme .el-col-xs-offset-1{margin-left:4.16667%}.custom-theme .el-col-xs-pull-1{position:relative;right:4.16667%}.custom-theme .el-col-xs-push-1{position:relative;left:4.16667%}.custom-theme .el-col-xs-2{width:8.33333%}.custom-theme .el-col-xs-offset-2{margin-left:8.33333%}.custom-theme .el-col-xs-pull-2{position:relative;right:8.33333%}.custom-theme .el-col-xs-push-2{position:relative;left:8.33333%}.custom-theme .el-col-xs-3{width:12.5%}.custom-theme .el-col-xs-offset-3{margin-left:12.5%}.custom-theme .el-col-xs-pull-3{position:relative;right:12.5%}.custom-theme .el-col-xs-push-3{position:relative;left:12.5%}.custom-theme .el-col-xs-4{width:16.66667%}.custom-theme .el-col-xs-offset-4{margin-left:16.66667%}.custom-theme .el-col-xs-pull-4{position:relative;right:16.66667%}.custom-theme .el-col-xs-push-4{position:relative;left:16.66667%}.custom-theme .el-col-xs-5{width:20.83333%}.custom-theme .el-col-xs-offset-5{margin-left:20.83333%}.custom-theme .el-col-xs-pull-5{position:relative;right:20.83333%}.custom-theme .el-col-xs-push-5{position:relative;left:20.83333%}.custom-theme .el-col-xs-6{width:25%}.custom-theme .el-col-xs-offset-6{margin-left:25%}.custom-theme .el-col-xs-pull-6{position:relative;right:25%}.custom-theme .el-col-xs-push-6{position:relative;left:25%}.custom-theme .el-col-xs-7{width:29.16667%}.custom-theme .el-col-xs-offset-7{margin-left:29.16667%}.custom-theme .el-col-xs-pull-7{position:relative;right:29.16667%}.custom-theme .el-col-xs-push-7{position:relative;left:29.16667%}.custom-theme .el-col-xs-8{width:33.33333%}.custom-theme .el-col-xs-offset-8{margin-left:33.33333%}.custom-theme .el-col-xs-pull-8{position:relative;right:33.33333%}.custom-theme .el-col-xs-push-8{position:relative;left:33.33333%}.custom-theme .el-col-xs-9{width:37.5%}.custom-theme .el-col-xs-offset-9{margin-left:37.5%}.custom-theme .el-col-xs-pull-9{position:relative;right:37.5%}.custom-theme .el-col-xs-push-9{position:relative;left:37.5%}.custom-theme .el-col-xs-10{width:41.66667%}.custom-theme .el-col-xs-offset-10{margin-left:41.66667%}.custom-theme .el-col-xs-pull-10{position:relative;right:41.66667%}.custom-theme .el-col-xs-push-10{position:relative;left:41.66667%}.custom-theme .el-col-xs-11{width:45.83333%}.custom-theme .el-col-xs-offset-11{margin-left:45.83333%}.custom-theme .el-col-xs-pull-11{position:relative;right:45.83333%}.custom-theme .el-col-xs-push-11{position:relative;left:45.83333%}.custom-theme .el-col-xs-12{width:50%}.custom-theme .el-col-xs-offset-12{margin-left:50%}.custom-theme .el-col-xs-pull-12{position:relative;right:50%}.custom-theme .el-col-xs-push-12{position:relative;left:50%}.custom-theme .el-col-xs-13{width:54.16667%}.custom-theme .el-col-xs-offset-13{margin-left:54.16667%}.custom-theme .el-col-xs-pull-13{position:relative;right:54.16667%}.custom-theme .el-col-xs-push-13{position:relative;left:54.16667%}.custom-theme .el-col-xs-14{width:58.33333%}.custom-theme .el-col-xs-offset-14{margin-left:58.33333%}.custom-theme .el-col-xs-pull-14{position:relative;right:58.33333%}.custom-theme .el-col-xs-push-14{position:relative;left:58.33333%}.custom-theme .el-col-xs-15{width:62.5%}.custom-theme .el-col-xs-offset-15{margin-left:62.5%}.custom-theme .el-col-xs-pull-15{position:relative;right:62.5%}.custom-theme .el-col-xs-push-15{position:relative;left:62.5%}.custom-theme .el-col-xs-16{width:66.66667%}.custom-theme .el-col-xs-offset-16{margin-left:66.66667%}.custom-theme .el-col-xs-pull-16{position:relative;right:66.66667%}.custom-theme .el-col-xs-push-16{position:relative;left:66.66667%}.custom-theme .el-col-xs-17{width:70.83333%}.custom-theme .el-col-xs-offset-17{margin-left:70.83333%}.custom-theme .el-col-xs-pull-17{position:relative;right:70.83333%}.custom-theme .el-col-xs-push-17{position:relative;left:70.83333%}.custom-theme .el-col-xs-18{width:75%}.custom-theme .el-col-xs-offset-18{margin-left:75%}.custom-theme .el-col-xs-pull-18{position:relative;right:75%}.custom-theme .el-col-xs-push-18{position:relative;left:75%}.custom-theme .el-col-xs-19{width:79.16667%}.custom-theme .el-col-xs-offset-19{margin-left:79.16667%}.custom-theme .el-col-xs-pull-19{position:relative;right:79.16667%}.custom-theme .el-col-xs-push-19{position:relative;left:79.16667%}.custom-theme .el-col-xs-20{width:83.33333%}.custom-theme .el-col-xs-offset-20{margin-left:83.33333%}.custom-theme .el-col-xs-pull-20{position:relative;right:83.33333%}.custom-theme .el-col-xs-push-20{position:relative;left:83.33333%}.custom-theme .el-col-xs-21{width:87.5%}.custom-theme .el-col-xs-offset-21{margin-left:87.5%}.custom-theme .el-col-xs-pull-21{position:relative;right:87.5%}.custom-theme .el-col-xs-push-21{position:relative;left:87.5%}.custom-theme .el-col-xs-22{width:91.66667%}.custom-theme .el-col-xs-offset-22{margin-left:91.66667%}.custom-theme .el-col-xs-pull-22{position:relative;right:91.66667%}.custom-theme .el-col-xs-push-22{position:relative;left:91.66667%}.custom-theme .el-col-xs-23{width:95.83333%}.custom-theme .el-col-xs-offset-23{margin-left:95.83333%}.custom-theme .el-col-xs-pull-23{position:relative;right:95.83333%}.custom-theme .el-col-xs-push-23{position:relative;left:95.83333%}.custom-theme .el-col-xs-24{width:100%}.custom-theme .el-col-xs-offset-24{margin-left:100%}.custom-theme .el-col-xs-pull-24{position:relative;right:100%}.custom-theme .el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.custom-theme .el-col-sm-0{display:none}.custom-theme .el-col-sm-1{width:4.16667%}.custom-theme .el-col-sm-offset-1{margin-left:4.16667%}.custom-theme .el-col-sm-pull-1{position:relative;right:4.16667%}.custom-theme .el-col-sm-push-1{position:relative;left:4.16667%}.custom-theme .el-col-sm-2{width:8.33333%}.custom-theme .el-col-sm-offset-2{margin-left:8.33333%}.custom-theme .el-col-sm-pull-2{position:relative;right:8.33333%}.custom-theme .el-col-sm-push-2{position:relative;left:8.33333%}.custom-theme .el-col-sm-3{width:12.5%}.custom-theme .el-col-sm-offset-3{margin-left:12.5%}.custom-theme .el-col-sm-pull-3{position:relative;right:12.5%}.custom-theme .el-col-sm-push-3{position:relative;left:12.5%}.custom-theme .el-col-sm-4{width:16.66667%}.custom-theme .el-col-sm-offset-4{margin-left:16.66667%}.custom-theme .el-col-sm-pull-4{position:relative;right:16.66667%}.custom-theme .el-col-sm-push-4{position:relative;left:16.66667%}.custom-theme .el-col-sm-5{width:20.83333%}.custom-theme .el-col-sm-offset-5{margin-left:20.83333%}.custom-theme .el-col-sm-pull-5{position:relative;right:20.83333%}.custom-theme .el-col-sm-push-5{position:relative;left:20.83333%}.custom-theme .el-col-sm-6{width:25%}.custom-theme .el-col-sm-offset-6{margin-left:25%}.custom-theme .el-col-sm-pull-6{position:relative;right:25%}.custom-theme .el-col-sm-push-6{position:relative;left:25%}.custom-theme .el-col-sm-7{width:29.16667%}.custom-theme .el-col-sm-offset-7{margin-left:29.16667%}.custom-theme .el-col-sm-pull-7{position:relative;right:29.16667%}.custom-theme .el-col-sm-push-7{position:relative;left:29.16667%}.custom-theme .el-col-sm-8{width:33.33333%}.custom-theme .el-col-sm-offset-8{margin-left:33.33333%}.custom-theme .el-col-sm-pull-8{position:relative;right:33.33333%}.custom-theme .el-col-sm-push-8{position:relative;left:33.33333%}.custom-theme .el-col-sm-9{width:37.5%}.custom-theme .el-col-sm-offset-9{margin-left:37.5%}.custom-theme .el-col-sm-pull-9{position:relative;right:37.5%}.custom-theme .el-col-sm-push-9{position:relative;left:37.5%}.custom-theme .el-col-sm-10{width:41.66667%}.custom-theme .el-col-sm-offset-10{margin-left:41.66667%}.custom-theme .el-col-sm-pull-10{position:relative;right:41.66667%}.custom-theme .el-col-sm-push-10{position:relative;left:41.66667%}.custom-theme .el-col-sm-11{width:45.83333%}.custom-theme .el-col-sm-offset-11{margin-left:45.83333%}.custom-theme .el-col-sm-pull-11{position:relative;right:45.83333%}.custom-theme .el-col-sm-push-11{position:relative;left:45.83333%}.custom-theme .el-col-sm-12{width:50%}.custom-theme .el-col-sm-offset-12{margin-left:50%}.custom-theme .el-col-sm-pull-12{position:relative;right:50%}.custom-theme .el-col-sm-push-12{position:relative;left:50%}.custom-theme .el-col-sm-13{width:54.16667%}.custom-theme .el-col-sm-offset-13{margin-left:54.16667%}.custom-theme .el-col-sm-pull-13{position:relative;right:54.16667%}.custom-theme .el-col-sm-push-13{position:relative;left:54.16667%}.custom-theme .el-col-sm-14{width:58.33333%}.custom-theme .el-col-sm-offset-14{margin-left:58.33333%}.custom-theme .el-col-sm-pull-14{position:relative;right:58.33333%}.custom-theme .el-col-sm-push-14{position:relative;left:58.33333%}.custom-theme .el-col-sm-15{width:62.5%}.custom-theme .el-col-sm-offset-15{margin-left:62.5%}.custom-theme .el-col-sm-pull-15{position:relative;right:62.5%}.custom-theme .el-col-sm-push-15{position:relative;left:62.5%}.custom-theme .el-col-sm-16{width:66.66667%}.custom-theme .el-col-sm-offset-16{margin-left:66.66667%}.custom-theme .el-col-sm-pull-16{position:relative;right:66.66667%}.custom-theme .el-col-sm-push-16{position:relative;left:66.66667%}.custom-theme .el-col-sm-17{width:70.83333%}.custom-theme .el-col-sm-offset-17{margin-left:70.83333%}.custom-theme .el-col-sm-pull-17{position:relative;right:70.83333%}.custom-theme .el-col-sm-push-17{position:relative;left:70.83333%}.custom-theme .el-col-sm-18{width:75%}.custom-theme .el-col-sm-offset-18{margin-left:75%}.custom-theme .el-col-sm-pull-18{position:relative;right:75%}.custom-theme .el-col-sm-push-18{position:relative;left:75%}.custom-theme .el-col-sm-19{width:79.16667%}.custom-theme .el-col-sm-offset-19{margin-left:79.16667%}.custom-theme .el-col-sm-pull-19{position:relative;right:79.16667%}.custom-theme .el-col-sm-push-19{position:relative;left:79.16667%}.custom-theme .el-col-sm-20{width:83.33333%}.custom-theme .el-col-sm-offset-20{margin-left:83.33333%}.custom-theme .el-col-sm-pull-20{position:relative;right:83.33333%}.custom-theme .el-col-sm-push-20{position:relative;left:83.33333%}.custom-theme .el-col-sm-21{width:87.5%}.custom-theme .el-col-sm-offset-21{margin-left:87.5%}.custom-theme .el-col-sm-pull-21{position:relative;right:87.5%}.custom-theme .el-col-sm-push-21{position:relative;left:87.5%}.custom-theme .el-col-sm-22{width:91.66667%}.custom-theme .el-col-sm-offset-22{margin-left:91.66667%}.custom-theme .el-col-sm-pull-22{position:relative;right:91.66667%}.custom-theme .el-col-sm-push-22{position:relative;left:91.66667%}.custom-theme .el-col-sm-23{width:95.83333%}.custom-theme .el-col-sm-offset-23{margin-left:95.83333%}.custom-theme .el-col-sm-pull-23{position:relative;right:95.83333%}.custom-theme .el-col-sm-push-23{position:relative;left:95.83333%}.custom-theme .el-col-sm-24{width:100%}.custom-theme .el-col-sm-offset-24{margin-left:100%}.custom-theme .el-col-sm-pull-24{position:relative;right:100%}.custom-theme .el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.custom-theme .el-col-md-0{display:none}.custom-theme .el-col-md-1{width:4.16667%}.custom-theme .el-col-md-offset-1{margin-left:4.16667%}.custom-theme .el-col-md-pull-1{position:relative;right:4.16667%}.custom-theme .el-col-md-push-1{position:relative;left:4.16667%}.custom-theme .el-col-md-2{width:8.33333%}.custom-theme .el-col-md-offset-2{margin-left:8.33333%}.custom-theme .el-col-md-pull-2{position:relative;right:8.33333%}.custom-theme .el-col-md-push-2{position:relative;left:8.33333%}.custom-theme .el-col-md-3{width:12.5%}.custom-theme .el-col-md-offset-3{margin-left:12.5%}.custom-theme .el-col-md-pull-3{position:relative;right:12.5%}.custom-theme .el-col-md-push-3{position:relative;left:12.5%}.custom-theme .el-col-md-4{width:16.66667%}.custom-theme .el-col-md-offset-4{margin-left:16.66667%}.custom-theme .el-col-md-pull-4{position:relative;right:16.66667%}.custom-theme .el-col-md-push-4{position:relative;left:16.66667%}.custom-theme .el-col-md-5{width:20.83333%}.custom-theme .el-col-md-offset-5{margin-left:20.83333%}.custom-theme .el-col-md-pull-5{position:relative;right:20.83333%}.custom-theme .el-col-md-push-5{position:relative;left:20.83333%}.custom-theme .el-col-md-6{width:25%}.custom-theme .el-col-md-offset-6{margin-left:25%}.custom-theme .el-col-md-pull-6{position:relative;right:25%}.custom-theme .el-col-md-push-6{position:relative;left:25%}.custom-theme .el-col-md-7{width:29.16667%}.custom-theme .el-col-md-offset-7{margin-left:29.16667%}.custom-theme .el-col-md-pull-7{position:relative;right:29.16667%}.custom-theme .el-col-md-push-7{position:relative;left:29.16667%}.custom-theme .el-col-md-8{width:33.33333%}.custom-theme .el-col-md-offset-8{margin-left:33.33333%}.custom-theme .el-col-md-pull-8{position:relative;right:33.33333%}.custom-theme .el-col-md-push-8{position:relative;left:33.33333%}.custom-theme .el-col-md-9{width:37.5%}.custom-theme .el-col-md-offset-9{margin-left:37.5%}.custom-theme .el-col-md-pull-9{position:relative;right:37.5%}.custom-theme .el-col-md-push-9{position:relative;left:37.5%}.custom-theme .el-col-md-10{width:41.66667%}.custom-theme .el-col-md-offset-10{margin-left:41.66667%}.custom-theme .el-col-md-pull-10{position:relative;right:41.66667%}.custom-theme .el-col-md-push-10{position:relative;left:41.66667%}.custom-theme .el-col-md-11{width:45.83333%}.custom-theme .el-col-md-offset-11{margin-left:45.83333%}.custom-theme .el-col-md-pull-11{position:relative;right:45.83333%}.custom-theme .el-col-md-push-11{position:relative;left:45.83333%}.custom-theme .el-col-md-12{width:50%}.custom-theme .el-col-md-offset-12{margin-left:50%}.custom-theme .el-col-md-pull-12{position:relative;right:50%}.custom-theme .el-col-md-push-12{position:relative;left:50%}.custom-theme .el-col-md-13{width:54.16667%}.custom-theme .el-col-md-offset-13{margin-left:54.16667%}.custom-theme .el-col-md-pull-13{position:relative;right:54.16667%}.custom-theme .el-col-md-push-13{position:relative;left:54.16667%}.custom-theme .el-col-md-14{width:58.33333%}.custom-theme .el-col-md-offset-14{margin-left:58.33333%}.custom-theme .el-col-md-pull-14{position:relative;right:58.33333%}.custom-theme .el-col-md-push-14{position:relative;left:58.33333%}.custom-theme .el-col-md-15{width:62.5%}.custom-theme .el-col-md-offset-15{margin-left:62.5%}.custom-theme .el-col-md-pull-15{position:relative;right:62.5%}.custom-theme .el-col-md-push-15{position:relative;left:62.5%}.custom-theme .el-col-md-16{width:66.66667%}.custom-theme .el-col-md-offset-16{margin-left:66.66667%}.custom-theme .el-col-md-pull-16{position:relative;right:66.66667%}.custom-theme .el-col-md-push-16{position:relative;left:66.66667%}.custom-theme .el-col-md-17{width:70.83333%}.custom-theme .el-col-md-offset-17{margin-left:70.83333%}.custom-theme .el-col-md-pull-17{position:relative;right:70.83333%}.custom-theme .el-col-md-push-17{position:relative;left:70.83333%}.custom-theme .el-col-md-18{width:75%}.custom-theme .el-col-md-offset-18{margin-left:75%}.custom-theme .el-col-md-pull-18{position:relative;right:75%}.custom-theme .el-col-md-push-18{position:relative;left:75%}.custom-theme .el-col-md-19{width:79.16667%}.custom-theme .el-col-md-offset-19{margin-left:79.16667%}.custom-theme .el-col-md-pull-19{position:relative;right:79.16667%}.custom-theme .el-col-md-push-19{position:relative;left:79.16667%}.custom-theme .el-col-md-20{width:83.33333%}.custom-theme .el-col-md-offset-20{margin-left:83.33333%}.custom-theme .el-col-md-pull-20{position:relative;right:83.33333%}.custom-theme .el-col-md-push-20{position:relative;left:83.33333%}.custom-theme .el-col-md-21{width:87.5%}.custom-theme .el-col-md-offset-21{margin-left:87.5%}.custom-theme .el-col-md-pull-21{position:relative;right:87.5%}.custom-theme .el-col-md-push-21{position:relative;left:87.5%}.custom-theme .el-col-md-22{width:91.66667%}.custom-theme .el-col-md-offset-22{margin-left:91.66667%}.custom-theme .el-col-md-pull-22{position:relative;right:91.66667%}.custom-theme .el-col-md-push-22{position:relative;left:91.66667%}.custom-theme .el-col-md-23{width:95.83333%}.custom-theme .el-col-md-offset-23{margin-left:95.83333%}.custom-theme .el-col-md-pull-23{position:relative;right:95.83333%}.custom-theme .el-col-md-push-23{position:relative;left:95.83333%}.custom-theme .el-col-md-24{width:100%}.custom-theme .el-col-md-offset-24{margin-left:100%}.custom-theme .el-col-md-pull-24{position:relative;right:100%}.custom-theme .el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.custom-theme .el-col-lg-0{display:none}.custom-theme .el-col-lg-1{width:4.16667%}.custom-theme .el-col-lg-offset-1{margin-left:4.16667%}.custom-theme .el-col-lg-pull-1{position:relative;right:4.16667%}.custom-theme .el-col-lg-push-1{position:relative;left:4.16667%}.custom-theme .el-col-lg-2{width:8.33333%}.custom-theme .el-col-lg-offset-2{margin-left:8.33333%}.custom-theme .el-col-lg-pull-2{position:relative;right:8.33333%}.custom-theme .el-col-lg-push-2{position:relative;left:8.33333%}.custom-theme .el-col-lg-3{width:12.5%}.custom-theme .el-col-lg-offset-3{margin-left:12.5%}.custom-theme .el-col-lg-pull-3{position:relative;right:12.5%}.custom-theme .el-col-lg-push-3{position:relative;left:12.5%}.custom-theme .el-col-lg-4{width:16.66667%}.custom-theme .el-col-lg-offset-4{margin-left:16.66667%}.custom-theme .el-col-lg-pull-4{position:relative;right:16.66667%}.custom-theme .el-col-lg-push-4{position:relative;left:16.66667%}.custom-theme .el-col-lg-5{width:20.83333%}.custom-theme .el-col-lg-offset-5{margin-left:20.83333%}.custom-theme .el-col-lg-pull-5{position:relative;right:20.83333%}.custom-theme .el-col-lg-push-5{position:relative;left:20.83333%}.custom-theme .el-col-lg-6{width:25%}.custom-theme .el-col-lg-offset-6{margin-left:25%}.custom-theme .el-col-lg-pull-6{position:relative;right:25%}.custom-theme .el-col-lg-push-6{position:relative;left:25%}.custom-theme .el-col-lg-7{width:29.16667%}.custom-theme .el-col-lg-offset-7{margin-left:29.16667%}.custom-theme .el-col-lg-pull-7{position:relative;right:29.16667%}.custom-theme .el-col-lg-push-7{position:relative;left:29.16667%}.custom-theme .el-col-lg-8{width:33.33333%}.custom-theme .el-col-lg-offset-8{margin-left:33.33333%}.custom-theme .el-col-lg-pull-8{position:relative;right:33.33333%}.custom-theme .el-col-lg-push-8{position:relative;left:33.33333%}.custom-theme .el-col-lg-9{width:37.5%}.custom-theme .el-col-lg-offset-9{margin-left:37.5%}.custom-theme .el-col-lg-pull-9{position:relative;right:37.5%}.custom-theme .el-col-lg-push-9{position:relative;left:37.5%}.custom-theme .el-col-lg-10{width:41.66667%}.custom-theme .el-col-lg-offset-10{margin-left:41.66667%}.custom-theme .el-col-lg-pull-10{position:relative;right:41.66667%}.custom-theme .el-col-lg-push-10{position:relative;left:41.66667%}.custom-theme .el-col-lg-11{width:45.83333%}.custom-theme .el-col-lg-offset-11{margin-left:45.83333%}.custom-theme .el-col-lg-pull-11{position:relative;right:45.83333%}.custom-theme .el-col-lg-push-11{position:relative;left:45.83333%}.custom-theme .el-col-lg-12{width:50%}.custom-theme .el-col-lg-offset-12{margin-left:50%}.custom-theme .el-col-lg-pull-12{position:relative;right:50%}.custom-theme .el-col-lg-push-12{position:relative;left:50%}.custom-theme .el-col-lg-13{width:54.16667%}.custom-theme .el-col-lg-offset-13{margin-left:54.16667%}.custom-theme .el-col-lg-pull-13{position:relative;right:54.16667%}.custom-theme .el-col-lg-push-13{position:relative;left:54.16667%}.custom-theme .el-col-lg-14{width:58.33333%}.custom-theme .el-col-lg-offset-14{margin-left:58.33333%}.custom-theme .el-col-lg-pull-14{position:relative;right:58.33333%}.custom-theme .el-col-lg-push-14{position:relative;left:58.33333%}.custom-theme .el-col-lg-15{width:62.5%}.custom-theme .el-col-lg-offset-15{margin-left:62.5%}.custom-theme .el-col-lg-pull-15{position:relative;right:62.5%}.custom-theme .el-col-lg-push-15{position:relative;left:62.5%}.custom-theme .el-col-lg-16{width:66.66667%}.custom-theme .el-col-lg-offset-16{margin-left:66.66667%}.custom-theme .el-col-lg-pull-16{position:relative;right:66.66667%}.custom-theme .el-col-lg-push-16{position:relative;left:66.66667%}.custom-theme .el-col-lg-17{width:70.83333%}.custom-theme .el-col-lg-offset-17{margin-left:70.83333%}.custom-theme .el-col-lg-pull-17{position:relative;right:70.83333%}.custom-theme .el-col-lg-push-17{position:relative;left:70.83333%}.custom-theme .el-col-lg-18{width:75%}.custom-theme .el-col-lg-offset-18{margin-left:75%}.custom-theme .el-col-lg-pull-18{position:relative;right:75%}.custom-theme .el-col-lg-push-18{position:relative;left:75%}.custom-theme .el-col-lg-19{width:79.16667%}.custom-theme .el-col-lg-offset-19{margin-left:79.16667%}.custom-theme .el-col-lg-pull-19{position:relative;right:79.16667%}.custom-theme .el-col-lg-push-19{position:relative;left:79.16667%}.custom-theme .el-col-lg-20{width:83.33333%}.custom-theme .el-col-lg-offset-20{margin-left:83.33333%}.custom-theme .el-col-lg-pull-20{position:relative;right:83.33333%}.custom-theme .el-col-lg-push-20{position:relative;left:83.33333%}.custom-theme .el-col-lg-21{width:87.5%}.custom-theme .el-col-lg-offset-21{margin-left:87.5%}.custom-theme .el-col-lg-pull-21{position:relative;right:87.5%}.custom-theme .el-col-lg-push-21{position:relative;left:87.5%}.custom-theme .el-col-lg-22{width:91.66667%}.custom-theme .el-col-lg-offset-22{margin-left:91.66667%}.custom-theme .el-col-lg-pull-22{position:relative;right:91.66667%}.custom-theme .el-col-lg-push-22{position:relative;left:91.66667%}.custom-theme .el-col-lg-23{width:95.83333%}.custom-theme .el-col-lg-offset-23{margin-left:95.83333%}.custom-theme .el-col-lg-pull-23{position:relative;right:95.83333%}.custom-theme .el-col-lg-push-23{position:relative;left:95.83333%}.custom-theme .el-col-lg-24{width:100%}.custom-theme .el-col-lg-offset-24{margin-left:100%}.custom-theme .el-col-lg-pull-24{position:relative;right:100%}.custom-theme .el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.custom-theme .el-col-xl-0{display:none}.custom-theme .el-col-xl-1{width:4.16667%}.custom-theme .el-col-xl-offset-1{margin-left:4.16667%}.custom-theme .el-col-xl-pull-1{position:relative;right:4.16667%}.custom-theme .el-col-xl-push-1{position:relative;left:4.16667%}.custom-theme .el-col-xl-2{width:8.33333%}.custom-theme .el-col-xl-offset-2{margin-left:8.33333%}.custom-theme .el-col-xl-pull-2{position:relative;right:8.33333%}.custom-theme .el-col-xl-push-2{position:relative;left:8.33333%}.custom-theme .el-col-xl-3{width:12.5%}.custom-theme .el-col-xl-offset-3{margin-left:12.5%}.custom-theme .el-col-xl-pull-3{position:relative;right:12.5%}.custom-theme .el-col-xl-push-3{position:relative;left:12.5%}.custom-theme .el-col-xl-4{width:16.66667%}.custom-theme .el-col-xl-offset-4{margin-left:16.66667%}.custom-theme .el-col-xl-pull-4{position:relative;right:16.66667%}.custom-theme .el-col-xl-push-4{position:relative;left:16.66667%}.custom-theme .el-col-xl-5{width:20.83333%}.custom-theme .el-col-xl-offset-5{margin-left:20.83333%}.custom-theme .el-col-xl-pull-5{position:relative;right:20.83333%}.custom-theme .el-col-xl-push-5{position:relative;left:20.83333%}.custom-theme .el-col-xl-6{width:25%}.custom-theme .el-col-xl-offset-6{margin-left:25%}.custom-theme .el-col-xl-pull-6{position:relative;right:25%}.custom-theme .el-col-xl-push-6{position:relative;left:25%}.custom-theme .el-col-xl-7{width:29.16667%}.custom-theme .el-col-xl-offset-7{margin-left:29.16667%}.custom-theme .el-col-xl-pull-7{position:relative;right:29.16667%}.custom-theme .el-col-xl-push-7{position:relative;left:29.16667%}.custom-theme .el-col-xl-8{width:33.33333%}.custom-theme .el-col-xl-offset-8{margin-left:33.33333%}.custom-theme .el-col-xl-pull-8{position:relative;right:33.33333%}.custom-theme .el-col-xl-push-8{position:relative;left:33.33333%}.custom-theme .el-col-xl-9{width:37.5%}.custom-theme .el-col-xl-offset-9{margin-left:37.5%}.custom-theme .el-col-xl-pull-9{position:relative;right:37.5%}.custom-theme .el-col-xl-push-9{position:relative;left:37.5%}.custom-theme .el-col-xl-10{width:41.66667%}.custom-theme .el-col-xl-offset-10{margin-left:41.66667%}.custom-theme .el-col-xl-pull-10{position:relative;right:41.66667%}.custom-theme .el-col-xl-push-10{position:relative;left:41.66667%}.custom-theme .el-col-xl-11{width:45.83333%}.custom-theme .el-col-xl-offset-11{margin-left:45.83333%}.custom-theme .el-col-xl-pull-11{position:relative;right:45.83333%}.custom-theme .el-col-xl-push-11{position:relative;left:45.83333%}.custom-theme .el-col-xl-12{width:50%}.custom-theme .el-col-xl-offset-12{margin-left:50%}.custom-theme .el-col-xl-pull-12{position:relative;right:50%}.custom-theme .el-col-xl-push-12{position:relative;left:50%}.custom-theme .el-col-xl-13{width:54.16667%}.custom-theme .el-col-xl-offset-13{margin-left:54.16667%}.custom-theme .el-col-xl-pull-13{position:relative;right:54.16667%}.custom-theme .el-col-xl-push-13{position:relative;left:54.16667%}.custom-theme .el-col-xl-14{width:58.33333%}.custom-theme .el-col-xl-offset-14{margin-left:58.33333%}.custom-theme .el-col-xl-pull-14{position:relative;right:58.33333%}.custom-theme .el-col-xl-push-14{position:relative;left:58.33333%}.custom-theme .el-col-xl-15{width:62.5%}.custom-theme .el-col-xl-offset-15{margin-left:62.5%}.custom-theme .el-col-xl-pull-15{position:relative;right:62.5%}.custom-theme .el-col-xl-push-15{position:relative;left:62.5%}.custom-theme .el-col-xl-16{width:66.66667%}.custom-theme .el-col-xl-offset-16{margin-left:66.66667%}.custom-theme .el-col-xl-pull-16{position:relative;right:66.66667%}.custom-theme .el-col-xl-push-16{position:relative;left:66.66667%}.custom-theme .el-col-xl-17{width:70.83333%}.custom-theme .el-col-xl-offset-17{margin-left:70.83333%}.custom-theme .el-col-xl-pull-17{position:relative;right:70.83333%}.custom-theme .el-col-xl-push-17{position:relative;left:70.83333%}.custom-theme .el-col-xl-18{width:75%}.custom-theme .el-col-xl-offset-18{margin-left:75%}.custom-theme .el-col-xl-pull-18{position:relative;right:75%}.custom-theme .el-col-xl-push-18{position:relative;left:75%}.custom-theme .el-col-xl-19{width:79.16667%}.custom-theme .el-col-xl-offset-19{margin-left:79.16667%}.custom-theme .el-col-xl-pull-19{position:relative;right:79.16667%}.custom-theme .el-col-xl-push-19{position:relative;left:79.16667%}.custom-theme .el-col-xl-20{width:83.33333%}.custom-theme .el-col-xl-offset-20{margin-left:83.33333%}.custom-theme .el-col-xl-pull-20{position:relative;right:83.33333%}.custom-theme .el-col-xl-push-20{position:relative;left:83.33333%}.custom-theme .el-col-xl-21{width:87.5%}.custom-theme .el-col-xl-offset-21{margin-left:87.5%}.custom-theme .el-col-xl-pull-21{position:relative;right:87.5%}.custom-theme .el-col-xl-push-21{position:relative;left:87.5%}.custom-theme .el-col-xl-22{width:91.66667%}.custom-theme .el-col-xl-offset-22{margin-left:91.66667%}.custom-theme .el-col-xl-pull-22{position:relative;right:91.66667%}.custom-theme .el-col-xl-push-22{position:relative;left:91.66667%}.custom-theme .el-col-xl-23{width:95.83333%}.custom-theme .el-col-xl-offset-23{margin-left:95.83333%}.custom-theme .el-col-xl-pull-23{position:relative;right:95.83333%}.custom-theme .el-col-xl-push-23{position:relative;left:95.83333%}.custom-theme .el-col-xl-24{width:100%}.custom-theme .el-col-xl-offset-24{margin-left:100%}.custom-theme .el-col-xl-pull-24{position:relative;right:100%}.custom-theme .el-col-xl-push-24{position:relative;left:100%}}.custom-theme .el-progress{position:relative;line-height:1}.custom-theme .el-progress__text{font-size:14px;color:#5a5e66;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.custom-theme .el-progress__text i{vertical-align:middle;display:block}.custom-theme .el-progress--circle{display:inline-block}.custom-theme .el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.custom-theme .el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.custom-theme .el-progress--without-text .el-progress__text{display:none}.custom-theme .el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.custom-theme .el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.custom-theme .el-progress.is-success .el-progress-bar__inner{background-color:#409167}.custom-theme .el-progress.is-success .el-progress__text{color:#409167}.custom-theme .el-progress.is-exception .el-progress-bar__inner{background-color:#b3450e}.custom-theme .el-progress.is-exception .el-progress__text{color:#b3450e}.custom-theme .el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-progress-bar__outer{height:6px;border-radius:100px;background-color:#e6ebf5;overflow:hidden;position:relative;vertical-align:middle}.custom-theme .el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#262729;text-align:right;border-radius:100px;line-height:1;white-space:nowrap}.custom-theme .el-progress-bar__inner::after{display:inline-block;content:"";height:100%;vertical-align:middle}.custom-theme .el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.custom-theme .el-upload{display:inline-block;text-align:center;cursor:pointer}.custom-theme .el-upload__input{display:none}.custom-theme .el-upload__tip{font-size:12px;color:#5a5e66;margin-top:7px}.custom-theme .el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.custom-theme .el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.custom-theme .el-upload--picture-card i{font-size:28px;color:#8c939d}.custom-theme .el-upload--picture-card:hover{border-color:#262729;color:#262729}.custom-theme .el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;position:relative;overflow:hidden}.custom-theme .el-upload-dragger .el-icon-upload{font-size:67px;color:#b4bccc;margin:40px 0 16px;line-height:50px}.custom-theme .el-upload-dragger+.el-upload__tip{text-align:center}.custom-theme .el-upload-dragger~.el-upload__files{border-top:1px solid #d8dce5;margin-top:7px;padding-top:5px}.custom-theme .el-upload-dragger .el-upload__text{color:#5a5e66;font-size:14px;text-align:center}.custom-theme .el-upload-dragger .el-upload__text em{color:#262729;font-style:normal}.custom-theme .el-upload-dragger:hover{border-color:#262729}.custom-theme .el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #262729}.custom-theme .el-upload-list{margin:0;padding:0;list-style:none}.custom-theme .el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#5a5e66;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.custom-theme .el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.custom-theme .el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.custom-theme .el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.custom-theme .el-upload-list__item:first-child{margin-top:10px}.custom-theme .el-upload-list__item .el-icon-upload-success{color:#409167}.custom-theme .el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#5a5e66}.custom-theme .el-upload-list__item .el-icon-close:hover{opacity:1}.custom-theme .el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:0;cursor:pointer;opacity:1;color:#262729;-webkit-transform:translate(15%,0);transform:translate(15%,0)}.custom-theme .el-upload-list__item:hover{background-color:#f5f7fa}.custom-theme .el-upload-list__item:hover .el-icon-close{display:inline-block}.custom-theme .el-upload-list__item:hover .el-progress__text{display:none}.custom-theme .el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.custom-theme .el-upload-list__item.is-success .el-upload-list__item-name:focus,.custom-theme .el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#262729;cursor:pointer}.custom-theme .el-upload-list__item.is-success:focus .el-icon-close-tip{display:inline-block}.custom-theme .el-upload-list__item.is-success:active,.custom-theme .el-upload-list__item.is-success:focus:not(.focusing){outline-width:0}.custom-theme .el-upload-list__item.is-success:active .el-icon-close-tip,.custom-theme .el-upload-list__item.is-success:focus:not(.focusing) .el-icon-close-tip{display:none}.custom-theme .el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.custom-theme .el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none}.custom-theme .el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.custom-theme .el-upload-list__item-name{color:#5a5e66;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.custom-theme .el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#878d99;line-height:inherit}.custom-theme .el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.custom-theme .el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#5a5e66;display:none}.custom-theme .el-upload-list__item-delete:hover{color:#262729}.custom-theme .el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.custom-theme .el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-check,.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-close{display:none}.custom-theme .el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.custom-theme .el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.custom-theme .el-upload-list--picture-card .el-upload-list__item-name{display:none}.custom-theme .el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.custom-theme .el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.custom-theme .el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions::after{display:inline-block;content:"";height:100%;vertical-align:middle}.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.custom-theme .el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.custom-theme .el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.custom-theme .el-upload-list--picture .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.custom-theme .el-upload-list--picture .el-upload-list__item .el-icon-check,.custom-theme .el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.custom-theme .el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.custom-theme .el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.custom-theme .el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.custom-theme .el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.custom-theme .el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px}.custom-theme .el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.custom-theme .el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.custom-theme .el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.custom-theme .el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.custom-theme .el-upload-list--picture .el-progress{position:relative;top:-7px}.custom-theme .el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.custom-theme .el-upload-cover::after{display:inline-block;content:"";height:100%;vertical-align:middle}.custom-theme .el-upload-cover img{display:block;width:100%;height:100%}.custom-theme .el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.custom-theme .el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.custom-theme .el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.custom-theme .el-upload-cover__progress+.el-upload__inner{opacity:0}.custom-theme .el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.custom-theme .el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.custom-theme .el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;margin-top:60px}.custom-theme .el-upload-cover__interact .btn i{margin-top:0}.custom-theme .el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.custom-theme .el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.custom-theme .el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.custom-theme .el-upload-cover__interact .btn:hover span{opacity:1}.custom-theme .el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.custom-theme .el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#2d2f33}.custom-theme .el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.custom-theme .el-progress{position:relative;line-height:1}.custom-theme .el-progress__text{font-size:14px;color:#5a5e66;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.custom-theme .el-progress__text i{vertical-align:middle;display:block}.custom-theme .el-progress--circle{display:inline-block}.custom-theme .el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.custom-theme .el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.custom-theme .el-progress--without-text .el-progress__text{display:none}.custom-theme .el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.custom-theme .el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.custom-theme .el-progress.is-success .el-progress-bar__inner{background-color:#409167}.custom-theme .el-progress.is-success .el-progress__text{color:#409167}.custom-theme .el-progress.is-exception .el-progress-bar__inner{background-color:#b3450e}.custom-theme .el-progress.is-exception .el-progress__text{color:#b3450e}.custom-theme .el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-progress-bar__outer{height:6px;border-radius:100px;background-color:#e6ebf5;overflow:hidden;position:relative;vertical-align:middle}.custom-theme .el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#262729;text-align:right;border-radius:100px;line-height:1;white-space:nowrap}.custom-theme .el-progress-bar__inner::after{display:inline-block;content:"";height:100%;vertical-align:middle}.custom-theme .el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.custom-theme .el-time-spinner{width:100%;white-space:nowrap}.custom-theme .el-spinner{display:inline-block;vertical-align:middle}.custom-theme .el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.custom-theme .el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.custom-theme .el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#e6ebf5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,transform .4s;transition:opacity .3s,transform .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.custom-theme .el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.custom-theme .el-message p{margin:0}.custom-theme .el-message--info .el-message__content{color:#0a76a4}.custom-theme .el-message--success{background-color:#ecf4f0;border-color:#d9e9e1}.custom-theme .el-message--success .el-message__content{color:#409167}.custom-theme .el-message--warning{background-color:#f5f6e6;border-color:#ebedce}.custom-theme .el-message--warning .el-message__content{color:#9da408}.custom-theme .el-message--error{background-color:#f7ece7;border-color:#f0dacf}.custom-theme .el-message--error .el-message__content{color:#b3450e}.custom-theme .el-message__icon{margin-right:10px}.custom-theme .el-message__content{padding:0;font-size:14px;line-height:1}.custom-theme .el-message__content:focus{outline-width:0}.custom-theme .el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#b4bccc;font-size:16px}.custom-theme .el-message__closeBtn:focus{outline-width:0}.custom-theme .el-message__closeBtn:hover{color:#878d99}.custom-theme .el-message .el-icon-success{color:#409167}.custom-theme .el-message .el-icon-error{color:#b3450e}.custom-theme .el-message .el-icon-info{color:#0a76a4}.custom-theme .el-message .el-icon-warning{color:#9da408}.custom-theme .el-message-fade-enter,.custom-theme .el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.custom-theme .el-badge{position:relative;vertical-align:middle;display:inline-block}.custom-theme .el-badge__content{background-color:#b3450e;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.custom-theme .el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.custom-theme .el-badge__content.is-fixed.is-dot{right:5px}.custom-theme .el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.custom-theme .el-card{border-radius:4px;border:1px solid #e6ebf5;background-color:#fff;overflow:hidden;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);color:#2d2f33}.custom-theme .el-card__header{padding:18px 20px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-card__body{padding:20px}.custom-theme .el-rate{height:20px;line-height:1}.custom-theme .el-rate:active,.custom-theme .el-rate:focus{outline-width:0}.custom-theme .el-rate__item{display:inline-block;position:relative;font-size:0;vertical-align:middle}.custom-theme .el-rate__icon{position:relative;display:inline-block;font-size:18px;margin-right:6px;color:#b4bccc;-webkit-transition:.3s;transition:.3s}.custom-theme .el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.custom-theme .el-rate__icon .path2{position:absolute;left:0;top:0}.custom-theme .el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden}.custom-theme .el-rate__text{font-size:14px;vertical-align:middle}.custom-theme .el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.custom-theme .el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.custom-theme .el-steps--horizontal{white-space:nowrap}.custom-theme .el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.custom-theme .el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.custom-theme .el-step:last-of-type .el-step__line{display:none}.custom-theme .el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.custom-theme .el-step:last-of-type .el-step__description,.custom-theme .el-step:last-of-type .el-step__main{padding-right:0}.custom-theme .el-step__head{position:relative;width:100%}.custom-theme .el-step__head.is-process{color:#2d2f33;border-color:#2d2f33}.custom-theme .el-step__head.is-wait{color:#b4bccc;border-color:#b4bccc}.custom-theme .el-step__head.is-success{color:#409167;border-color:#409167}.custom-theme .el-step__head.is-error{color:#b3450e;border-color:#b3450e}.custom-theme .el-step__head.is-finish{color:#262729;border-color:#262729}.custom-theme .el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.custom-theme .el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.custom-theme .el-step__icon.is-icon{width:40px}.custom-theme .el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.custom-theme .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.custom-theme .el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.custom-theme .el-step__line{position:absolute;border-color:inherit;background-color:#b4bccc}.custom-theme .el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.custom-theme .el-step__main{white-space:normal;text-align:left}.custom-theme .el-step__title{font-size:16px;line-height:38px}.custom-theme .el-step__title.is-process{font-weight:700;color:#2d2f33}.custom-theme .el-step__title.is-wait{color:#b4bccc}.custom-theme .el-step__title.is-success{color:#409167}.custom-theme .el-step__title.is-error{color:#b3450e}.custom-theme .el-step__title.is-finish{color:#262729}.custom-theme .el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.custom-theme .el-step__description.is-process{color:#2d2f33}.custom-theme .el-step__description.is-wait{color:#b4bccc}.custom-theme .el-step__description.is-success{color:#409167}.custom-theme .el-step__description.is-error{color:#b3450e}.custom-theme .el-step__description.is-finish{color:#262729}.custom-theme .el-step.is-horizontal{display:inline-block}.custom-theme .el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.custom-theme .el-step.is-vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.custom-theme .el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.custom-theme .el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.custom-theme .el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.custom-theme .el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.custom-theme .el-step.is-vertical .el-step__icon.is-icon{width:24px}.custom-theme .el-step.is-center .el-step__head{text-align:center}.custom-theme .el-step.is-center .el-step__main{text-align:center}.custom-theme .el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.custom-theme .el-step.is-center .el-step__line{left:50%;right:-50%}.custom-theme .el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.custom-theme .el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.custom-theme .el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.custom-theme .el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.custom-theme .el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.custom-theme .el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.custom-theme .el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.custom-theme .el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.custom-theme .el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.custom-theme .el-step.is-simple .el-step__arrow::after,.custom-theme .el-step.is-simple .el-step__arrow::before{content:'';display:inline-block;position:absolute;height:15px;width:1px;background:#b4bccc}.custom-theme .el-step.is-simple .el-step__arrow::before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.custom-theme .el-step.is-simple .el-step__arrow::after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.custom-theme .el-step.is-simple:last-of-type .el-step__arrow{display:none}.custom-theme .el-carousel{overflow-x:hidden;position:relative}.custom-theme .el-carousel__container{position:relative;height:300px}.custom-theme .el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.custom-theme .el-carousel__arrow--left{left:16px}.custom-theme .el-carousel__arrow--right{right:16px}.custom-theme .el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.custom-theme .el-carousel__arrow i{cursor:pointer}.custom-theme .el-carousel__indicators{position:absolute;list-style:none;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:0;padding:0;z-index:2}.custom-theme .el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.custom-theme .el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.custom-theme .el-carousel__indicators--outside button{background-color:#b4bccc;opacity:.24}.custom-theme .el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.custom-theme .el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.custom-theme .el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.custom-theme .el-carousel__indicator{display:inline-block;background-color:transparent;padding:12px 4px;cursor:pointer}.custom-theme .el-carousel__indicator:hover button{opacity:.72}.custom-theme .el-carousel__indicator.is-active button{opacity:1}.custom-theme .el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.custom-theme .carousel-arrow-left-enter,.custom-theme .carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.custom-theme .carousel-arrow-right-enter,.custom-theme .carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.custom-theme .el-scrollbar{overflow:hidden;position:relative}.custom-theme .el-scrollbar:active>.el-scrollbar__bar,.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,.custom-theme .el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.custom-theme .el-scrollbar__wrap{overflow:scroll;height:100%}.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.custom-theme .el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(135,141,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.5)}.custom-theme .el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.custom-theme .el-scrollbar__bar.is-vertical{width:6px;top:2px}.custom-theme .el-scrollbar__bar.is-vertical>div{width:100%}.custom-theme .el-scrollbar__bar.is-horizontal{height:6px;left:2px}.custom-theme .el-scrollbar__bar.is-horizontal>div{height:100%}.custom-theme .el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:0}.custom-theme .el-carousel__item.is-active{z-index:2}.custom-theme .el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.custom-theme .el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.custom-theme .el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.custom-theme .el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.custom-theme .el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.custom-theme .el-carousel__item--card.is-active{z-index:2}.custom-theme .el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.custom-theme .el-collapse{border-top:1px solid #e6ebf5;border-bottom:1px solid #e6ebf5}.custom-theme .el-collapse-item__header{height:48px;line-height:48px;background-color:#fff;color:#2d2f33;cursor:pointer;border-bottom:1px solid #e6ebf5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s}.custom-theme .el-collapse-item__header:active,.custom-theme .el-collapse-item__header:focus:not(.focusing){outline-width:0}.custom-theme .el-collapse-item__arrow{margin-right:8px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:right;line-height:48px;font-weight:300}.custom-theme .el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #e6ebf5}.custom-theme .el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#2d2f33;line-height:1.769230769230769}.custom-theme .el-collapse-item.is-active .el-collapse-item__header{border-bottom-color:transparent}.custom-theme .el-collapse-item.is-active .el-collapse-item__header .el-collapse-item__arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.custom-theme .el-collapse-item:last-child{margin-bottom:-1px}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-popper .popper__arrow,.custom-theme .el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.custom-theme .el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.custom-theme .el-popper .popper__arrow::after{content:" ";border-width:6px}.custom-theme .el-popper[x-placement^=top]{margin-bottom:12px}.custom-theme .el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.custom-theme .el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.custom-theme .el-popper[x-placement^=bottom]{margin-top:12px}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.custom-theme .el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.custom-theme .el-popper[x-placement^=right]{margin-left:12px}.custom-theme .el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.custom-theme .el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.custom-theme .el-popper[x-placement^=left]{margin-right:12px}.custom-theme .el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.custom-theme .el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.custom-theme .el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.custom-theme .el-cascader .el-input,.custom-theme .el-cascader .el-input__inner{cursor:pointer}.custom-theme .el-cascader .el-input__icon{-webkit-transition:none;transition:none}.custom-theme .el-cascader .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.custom-theme .el-cascader .el-icon-arrow-down.is-reverse{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.custom-theme .el-cascader .el-icon-circle-close{z-index:2;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-cascader .el-icon-circle-close:hover{color:#878d99}.custom-theme .el-cascader__clearIcon{z-index:2;position:relative}.custom-theme .el-cascader__label{position:absolute;left:0;top:0;height:100%;padding:0 25px 0 15px;color:#5a5e66;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;text-align:left;font-size:inherit}.custom-theme .el-cascader__label span{color:#000}.custom-theme .el-cascader--medium{font-size:14px;line-height:36px}.custom-theme .el-cascader--small{font-size:13px;line-height:32px}.custom-theme .el-cascader--mini{font-size:12px;line-height:28px}.custom-theme .el-cascader.is-disabled .el-cascader__label{z-index:2;color:#b4bccc}.custom-theme .el-cascader-menus{white-space:nowrap;background:#fff;position:absolute;margin:5px 0;z-index:2;border:solid 1px #dfe4ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.custom-theme .el-cascader-menus .popper__arrow{-webkit-transform:translateX(-400%);transform:translateX(-400%)}.custom-theme .el-cascader-menu{display:inline-block;vertical-align:top;height:204px;overflow:auto;border-right:solid 1px #dfe4ed;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:6px 0;min-width:160px}.custom-theme .el-cascader-menu:last-child{border-right:0}.custom-theme .el-cascader-menu__item{font-size:14px;padding:8px 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5a5e66;height:34px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.custom-theme .el-cascader-menu__item--extensible:after{font-family:element-icons;content:"\e604";font-size:14px;color:#bfcbd9;position:absolute;right:15px}.custom-theme .el-cascader-menu__item.is-disabled{color:#b4bccc;background-color:#fff;cursor:not-allowed}.custom-theme .el-cascader-menu__item.is-disabled:hover{background-color:#fff}.custom-theme .el-cascader-menu__item.is-active{color:#262729}.custom-theme .el-cascader-menu__item:hover{background-color:#f5f7fa}.custom-theme .el-cascader-menu__item.selected{color:#fff;background-color:#f5f7fa}.custom-theme .el-cascader-menu__item__keyword{font-weight:700}.custom-theme .el-cascader-menu--flexible{height:auto;max-height:180px;overflow:auto}.custom-theme .el-cascader-menu--flexible .el-cascader-menu__item{overflow:visible}.custom-theme .el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.custom-theme .el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.custom-theme .el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.custom-theme .el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.custom-theme .el-color-svpanel{position:relative;width:280px;height:180px}.custom-theme .el-color-svpanel__black,.custom-theme .el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.custom-theme .el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.custom-theme .el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(transparent));background:linear-gradient(to top,#000,transparent)}.custom-theme .el-color-svpanel__cursor{position:absolute}.custom-theme .el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.custom-theme .el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.custom-theme .el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);height:100%}.custom-theme .el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.custom-theme .el-color-alpha-slider.is-vertical{width:20px;height:180px}.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.custom-theme .el-color-dropdown{width:300px}.custom-theme .el-color-dropdown__main-wrapper{margin-bottom:6px}.custom-theme .el-color-dropdown__main-wrapper::after{content:"";display:table;clear:both}.custom-theme .el-color-dropdown__btns{margin-top:6px;text-align:right}.custom-theme .el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.custom-theme .el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.custom-theme .el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.custom-theme .el-color-dropdown__btn:hover{color:#262729;border-color:#262729}.custom-theme .el-color-dropdown__link-btn{cursor:pointer;color:#262729;text-decoration:none;padding:15px;font-size:12px}.custom-theme .el-color-dropdown__link-btn:hover{color:tint(#262729,20%)}.custom-theme .el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.custom-theme .el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.custom-theme .el-color-picker--medium{height:36px}.custom-theme .el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.custom-theme .el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.custom-theme .el-color-picker--small{height:32px}.custom-theme .el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.custom-theme .el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.custom-theme .el-color-picker--small .el-color-picker__empty,.custom-theme .el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.custom-theme .el-color-picker--mini{height:28px}.custom-theme .el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.custom-theme .el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.custom-theme .el-color-picker--mini .el-color-picker__empty,.custom-theme .el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.custom-theme .el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.custom-theme .el-color-picker__trigger{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.custom-theme .el-color-picker__color{position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.custom-theme .el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.custom-theme .el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.custom-theme .el-color-picker__empty{font-size:12px;color:#999;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.custom-theme .el-color-picker__icon{display:inline-block;position:absolute;width:100%;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);color:#fff;text-align:center;font-size:12px}.custom-theme .el-color-picker__panel{position:absolute;z-index:10;padding:6px;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.custom-theme .el-input{position:relative;font-size:14px;display:inline-block;width:100%}.custom-theme .el-input::-webkit-scrollbar{z-index:11;width:6px}.custom-theme .el-input::-webkit-scrollbar:horizontal{height:6px}.custom-theme .el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.custom-theme .el-input::-webkit-scrollbar-corner{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track{background:#fff}.custom-theme .el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.custom-theme .el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #d8dce5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5a5e66;display:inline-block;font-size:inherit;height:40px;line-height:1;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.custom-theme .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input__inner:hover{border-color:#b4bccc}.custom-theme .el-input__inner:focus{outline:0;border-color:#262729}.custom-theme .el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.custom-theme .el-input__suffix-inner{pointer-events:all}.custom-theme .el-input__prefix{position:absolute;height:100%;left:5px;top:0;text-align:center;color:#b4bccc;-webkit-transition:all .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.custom-theme .el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.custom-theme .el-input__validateIcon{pointer-events:none}.custom-theme .el-input.is-active .el-input__inner{outline:0;border-color:#262729}.custom-theme .el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__inner::placeholder{color:#b4bccc}.custom-theme .el-input.is-disabled .el-input__icon{cursor:not-allowed}.custom-theme .el-input--suffix .el-input__inner{padding-right:30px}.custom-theme .el-input--prefix .el-input__inner{padding-left:30px}.custom-theme .el-input--medium{font-size:14px}.custom-theme .el-input--medium .el-input__inner{height:36px}.custom-theme .el-input--medium .el-input__icon{line-height:36px}.custom-theme .el-input--small{font-size:13px}.custom-theme .el-input--small .el-input__inner{height:32px}.custom-theme .el-input--small .el-input__icon{line-height:32px}.custom-theme .el-input--mini{font-size:12px}.custom-theme .el-input--mini .el-input__inner{height:28px}.custom-theme .el-input--mini .el-input__icon{line-height:28px}.custom-theme .el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.custom-theme .el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.custom-theme .el-input-group__append,.custom-theme .el-input-group__prepend{background-color:#f5f7fa;color:#0a76a4;vertical-align:middle;display:table-cell;position:relative;border:1px solid #d8dce5;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.custom-theme .el-input-group__append:focus,.custom-theme .el-input-group__prepend:focus{outline:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-select,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-select{display:inline-block;margin:-20px}.custom-theme .el-input-group__append button.el-button,.custom-theme .el-input-group__append div.el-select .el-input__inner,.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,.custom-theme .el-input-group__prepend button.el-button,.custom-theme .el-input-group__prepend div.el-select .el-input__inner,.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.custom-theme .el-input-group__append .el-button,.custom-theme .el-input-group__append .el-input,.custom-theme .el-input-group__prepend .el-button,.custom-theme .el-input-group__prepend .el-input{font-size:inherit}.custom-theme .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-textarea{display:inline-block;width:100%;vertical-align:bottom}.custom-theme .el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:14px;color:#5a5e66;background-color:#fff;background-image:none;border:1px solid #d8dce5;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.custom-theme .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-textarea__inner:hover{border-color:#b4bccc}.custom-theme .el-textarea__inner:focus{outline:0;border-color:#262729}.custom-theme .el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#b4bccc;cursor:not-allowed}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#b4bccc}.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#b4bccc}.custom-theme .el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-color:#d8dce5;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button+.el-button{margin-left:10px}.custom-theme .el-button.is-round{padding:12px 20px}.custom-theme .el-button:focus,.custom-theme .el-button:hover{color:#262729;border-color:#bebebf;background-color:#e9e9ea}.custom-theme .el-button:active{color:#222325;border-color:#222325;outline:0}.custom-theme .el-button::-moz-focus-inner{border:0}.custom-theme .el-button [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-button.is-plain:focus,.custom-theme .el-button.is-plain:hover{background:#fff;border-color:#262729;color:#262729}.custom-theme .el-button.is-plain:active{background:#fff;border-color:#222325;color:#222325;outline:0}.custom-theme .el-button.is-active{color:#222325;border-color:#222325}.custom-theme .el-button.is-disabled,.custom-theme .el-button.is-disabled:focus,.custom-theme .el-button.is-disabled:hover{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5}.custom-theme .el-button.is-disabled.el-button--text{background-color:transparent}.custom-theme .el-button.is-disabled.is-plain,.custom-theme .el-button.is-disabled.is-plain:focus,.custom-theme .el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#e6ebf5;color:#b4bccc}.custom-theme .el-button.is-loading{position:relative;pointer-events:none}.custom-theme .el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.custom-theme .el-button.is-round{border-radius:20px;padding:12px 23px}.custom-theme .el-button--primary{color:#fff;background-color:#262729;border-color:#262729}.custom-theme .el-button--primary:focus,.custom-theme .el-button--primary:hover{background:#515254;border-color:#515254;color:#fff}.custom-theme .el-button--primary:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-active{background:#222325;border-color:#222325;color:#fff}.custom-theme .el-button--primary.is-disabled,.custom-theme .el-button--primary.is-disabled:active,.custom-theme .el-button--primary.is-disabled:focus,.custom-theme .el-button--primary.is-disabled:hover{color:#fff;background-color:#939394;border-color:#939394}.custom-theme .el-button--primary.is-plain{color:#262729;background:#e9e9ea;border-color:#a8a9a9}.custom-theme .el-button--primary.is-plain:focus,.custom-theme .el-button--primary.is-plain:hover{background:#262729;border-color:#262729;color:#fff}.custom-theme .el-button--primary.is-plain:active{background:#222325;border-color:#222325;color:#fff;outline:0}.custom-theme .el-button--primary.is-plain.is-disabled,.custom-theme .el-button--primary.is-plain.is-disabled:active,.custom-theme .el-button--primary.is-plain.is-disabled:focus,.custom-theme .el-button--primary.is-plain.is-disabled:hover{color:#7d7d7f;background-color:#e9e9ea;border-color:#d4d4d4}.custom-theme .el-button--success{color:#fff;background-color:#409167;border-color:#409167}.custom-theme .el-button--success:focus,.custom-theme .el-button--success:hover{background:#66a785;border-color:#66a785;color:#fff}.custom-theme .el-button--success:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-active{background:#3a835d;border-color:#3a835d;color:#fff}.custom-theme .el-button--success.is-disabled,.custom-theme .el-button--success.is-disabled:active,.custom-theme .el-button--success.is-disabled:focus,.custom-theme .el-button--success.is-disabled:hover{color:#fff;background-color:#a0c8b3;border-color:#a0c8b3}.custom-theme .el-button--success.is-plain{color:#409167;background:#ecf4f0;border-color:#b3d3c2}.custom-theme .el-button--success.is-plain:focus,.custom-theme .el-button--success.is-plain:hover{background:#409167;border-color:#409167;color:#fff}.custom-theme .el-button--success.is-plain:active{background:#3a835d;border-color:#3a835d;color:#fff;outline:0}.custom-theme .el-button--success.is-plain.is-disabled,.custom-theme .el-button--success.is-plain.is-disabled:active,.custom-theme .el-button--success.is-plain.is-disabled:focus,.custom-theme .el-button--success.is-plain.is-disabled:hover{color:#8cbda4;background-color:#ecf4f0;border-color:#d9e9e1}.custom-theme .el-button--warning{color:#fff;background-color:#9da408;border-color:#9da408}.custom-theme .el-button--warning:focus,.custom-theme .el-button--warning:hover{background:#b1b639;border-color:#b1b639;color:#fff}.custom-theme .el-button--warning:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-active{background:#8d9407;border-color:#8d9407;color:#fff}.custom-theme .el-button--warning.is-disabled,.custom-theme .el-button--warning.is-disabled:active,.custom-theme .el-button--warning.is-disabled:focus,.custom-theme .el-button--warning.is-disabled:hover{color:#fff;background-color:#ced284;border-color:#ced284}.custom-theme .el-button--warning.is-plain{color:#9da408;background:#f5f6e6;border-color:#d8db9c}.custom-theme .el-button--warning.is-plain:focus,.custom-theme .el-button--warning.is-plain:hover{background:#9da408;border-color:#9da408;color:#fff}.custom-theme .el-button--warning.is-plain:active{background:#8d9407;border-color:#8d9407;color:#fff;outline:0}.custom-theme .el-button--warning.is-plain.is-disabled,.custom-theme .el-button--warning.is-plain.is-disabled:active,.custom-theme .el-button--warning.is-plain.is-disabled:focus,.custom-theme .el-button--warning.is-plain.is-disabled:hover{color:#c4c86b;background-color:#f5f6e6;border-color:#ebedce}.custom-theme .el-button--danger{color:#fff;background-color:#b3450e;border-color:#b3450e}.custom-theme .el-button--danger:focus,.custom-theme .el-button--danger:hover{background:#c26a3e;border-color:#c26a3e;color:#fff}.custom-theme .el-button--danger:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-active{background:#a13e0d;border-color:#a13e0d;color:#fff}.custom-theme .el-button--danger.is-disabled,.custom-theme .el-button--danger.is-disabled:active,.custom-theme .el-button--danger.is-disabled:focus,.custom-theme .el-button--danger.is-disabled:hover{color:#fff;background-color:#d9a287;border-color:#d9a287}.custom-theme .el-button--danger.is-plain{color:#b3450e;background:#f7ece7;border-color:#e1b59f}.custom-theme .el-button--danger.is-plain:focus,.custom-theme .el-button--danger.is-plain:hover{background:#b3450e;border-color:#b3450e;color:#fff}.custom-theme .el-button--danger.is-plain:active{background:#a13e0d;border-color:#a13e0d;color:#fff;outline:0}.custom-theme .el-button--danger.is-plain.is-disabled,.custom-theme .el-button--danger.is-plain.is-disabled:active,.custom-theme .el-button--danger.is-plain.is-disabled:focus,.custom-theme .el-button--danger.is-plain.is-disabled:hover{color:#d18f6e;background-color:#f7ece7;border-color:#f0dacf}.custom-theme .el-button--info{color:#fff;background-color:#0a76a4;border-color:#0a76a4}.custom-theme .el-button--info:focus,.custom-theme .el-button--info:hover{background:#3b91b6;border-color:#3b91b6;color:#fff}.custom-theme .el-button--info:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-active{background:#096a94;border-color:#096a94;color:#fff}.custom-theme .el-button--info.is-disabled,.custom-theme .el-button--info.is-disabled:active,.custom-theme .el-button--info.is-disabled:focus,.custom-theme .el-button--info.is-disabled:hover{color:#fff;background-color:#85bbd2;border-color:#85bbd2}.custom-theme .el-button--info.is-plain{color:#0a76a4;background:#e7f1f6;border-color:#9dc8db}.custom-theme .el-button--info.is-plain:focus,.custom-theme .el-button--info.is-plain:hover{background:#0a76a4;border-color:#0a76a4;color:#fff}.custom-theme .el-button--info.is-plain:active{background:#096a94;border-color:#096a94;color:#fff;outline:0}.custom-theme .el-button--info.is-plain.is-disabled,.custom-theme .el-button--info.is-plain.is-disabled:active,.custom-theme .el-button--info.is-plain.is-disabled:focus,.custom-theme .el-button--info.is-plain.is-disabled:hover{color:#6cadc8;background-color:#e7f1f6;border-color:#cee4ed}.custom-theme .el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.custom-theme .el-button--medium.is-round{padding:10px 20px}.custom-theme .el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--small.is-round{padding:9px 15px}.custom-theme .el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.custom-theme .el-button--mini.is-round{padding:7px 15px}.custom-theme .el-button--text{border:none;color:#262729;background:0 0;padding-left:0;padding-right:0}.custom-theme .el-button--text:focus,.custom-theme .el-button--text:hover{color:#515254;border-color:transparent;background-color:transparent}.custom-theme .el-button--text:active{color:#222325;border-color:transparent;background-color:transparent}.custom-theme .el-button-group{display:inline-block;vertical-align:middle}.custom-theme .el-button-group::after,.custom-theme .el-button-group::before{display:table;content:""}.custom-theme .el-button-group::after{clear:both}.custom-theme .el-button-group .el-button{float:left;position:relative}.custom-theme .el-button-group .el-button+.el-button{margin-left:0}.custom-theme .el-button-group .el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.custom-theme .el-button-group .el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child){border-radius:0}.custom-theme .el-button-group .el-button:not(:last-child){margin-right:-1px}.custom-theme .el-button-group .el-button:active,.custom-theme .el-button-group .el-button:focus,.custom-theme .el-button-group .el-button:hover{z-index:1}.custom-theme .el-button-group .el-button.is-active{z-index:1}.custom-theme .el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-checkbox{color:#5a5e66;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-theme .el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #d8dce5}.custom-theme .el-checkbox.is-bordered.is-checked{border-color:#262729}.custom-theme .el-checkbox.is-bordered.is-disabled{border-color:#e6ebf5;cursor:not-allowed}.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small{padding:3px 15px 7px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini{padding:1px 15px 5px 10px;border-radius:3px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.custom-theme .el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5;cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#edf2fc;border-color:#d8dce5}.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#b4bccc;border-color:#b4bccc}.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label{color:#b4bccc;cursor:not-allowed}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label{color:#262729}.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner{border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#262729;border-color:#262729}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.custom-theme .el-checkbox__inner{display:inline-block;position:relative;border:1px solid #d8dce5;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.custom-theme .el-checkbox__inner:hover{border-color:#262729}.custom-theme .el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;-webkit-transform-origin:center;transform-origin:center}.custom-theme .el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;left:-999px}.custom-theme .el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.custom-theme .el-checkbox+.el-checkbox{margin-left:30px}.custom-theme .el-checkbox-button{position:relative;display:inline-block}.custom-theme .el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #d8dce5;border-left:0;color:#5a5e66;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button__inner.is-round{padding:12px 20px}.custom-theme .el-checkbox-button__inner:hover{color:#262729}.custom-theme .el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.custom-theme .el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.custom-theme .el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;left:-999px}.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#262729;border-color:#262729;-webkit-box-shadow:-1px 0 0 0 #7d7d7f;box-shadow:-1px 0 0 0 #7d7d7f}.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#b4bccc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #d8dce5;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#262729}.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.custom-theme .el-checkbox-group{font-size:0}.custom-theme .el-transfer{font-size:14px}.custom-theme .el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.custom-theme .el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#262729;font-size:0}.custom-theme .el-transfer__button.is-with-texts{border-radius:4px}.custom-theme .el-transfer__button.is-disabled{border:1px solid #d8dce5;background-color:#f5f7fa;color:#b4bccc}.custom-theme .el-transfer__button.is-disabled:hover{border:1px solid #d8dce5;background-color:#f5f7fa;color:#b4bccc}.custom-theme .el-transfer__button:first-child{margin-bottom:10px}.custom-theme .el-transfer__button:nth-child(2){margin:0}.custom-theme .el-transfer__button i,.custom-theme .el-transfer__button span{font-size:14px}.custom-theme .el-transfer__button [class*=el-icon-]+span{margin-left:0}.custom-theme .el-transfer-panel{border:1px solid #e6ebf5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.custom-theme .el-transfer-panel__body{height:246px}.custom-theme .el-transfer-panel__body.is-with-footer{padding-bottom:40px}.custom-theme .el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.custom-theme .el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block}.custom-theme .el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.custom-theme .el-transfer-panel__item.el-checkbox{color:#5a5e66}.custom-theme .el-transfer-panel__item:hover{color:#262729}.custom-theme .el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.custom-theme .el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.custom-theme .el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.custom-theme .el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.custom-theme .el-transfer-panel__filter .el-input__icon{margin-left:5px}.custom-theme .el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.custom-theme .el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#2d2f33;font-weight:400}.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#878d99;font-size:12px;font-weight:400}.custom-theme .el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #e6ebf5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.custom-theme .el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;content:"";height:100%;vertical-align:middle}.custom-theme .el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#5a5e66}.custom-theme .el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#878d99}.custom-theme .el-transfer-panel .el-checkbox__label{padding-left:8px}.custom-theme .el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.custom-theme .el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.custom-theme .el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-container.is-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.custom-theme .el-header{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-aside{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.custom-theme .el-main{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px}.custom-theme .el-footer{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box} \ No newline at end of file +@charset "UTF-8"; +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; +} +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; +} +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +@font-face { + font-family: element-icons; + src: url(fonts/element-icons.woff?t=1508751886602) format('woff'), + url(fonts/element-icons.ttf?t=1508751886602) format('truetype'); + font-weight: 400; + font-style: normal; +} +.custom-theme [class*=' el-icon-'], +.custom-theme [class^='el-icon-'] { + font-family: element-icons !important; + speak: none; + font-style: normal; + font-weight: 400; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: baseline; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.custom-theme .el-icon-upload:before { + content: '\e60d'; +} +.custom-theme .el-icon-error:before { + content: '\e62c'; +} +.custom-theme .el-icon-success:before { + content: '\e62d'; +} +.custom-theme .el-icon-warning:before { + content: '\e62e'; +} +.custom-theme .el-icon-sort-down:before { + content: '\e630'; +} +.custom-theme .el-icon-sort-up:before { + content: '\e631'; +} +.custom-theme .el-icon-arrow-left:before { + content: '\e600'; +} +.custom-theme .el-icon-circle-plus:before { + content: '\e601'; +} +.custom-theme .el-icon-circle-plus-outline:before { + content: '\e602'; +} +.custom-theme .el-icon-arrow-down:before { + content: '\e603'; +} +.custom-theme .el-icon-arrow-right:before { + content: '\e604'; +} +.custom-theme .el-icon-arrow-up:before { + content: '\e605'; +} +.custom-theme .el-icon-back:before { + content: '\e606'; +} +.custom-theme .el-icon-circle-close:before { + content: '\e607'; +} +.custom-theme .el-icon-date:before { + content: '\e608'; +} +.custom-theme .el-icon-circle-close-outline:before { + content: '\e609'; +} +.custom-theme .el-icon-caret-left:before { + content: '\e60a'; +} +.custom-theme .el-icon-caret-bottom:before { + content: '\e60b'; +} +.custom-theme .el-icon-caret-top:before { + content: '\e60c'; +} +.custom-theme .el-icon-caret-right:before { + content: '\e60e'; +} +.custom-theme .el-icon-close:before { + content: '\e60f'; +} +.custom-theme .el-icon-d-arrow-left:before { + content: '\e610'; +} +.custom-theme .el-icon-check:before { + content: '\e611'; +} +.custom-theme .el-icon-delete:before { + content: '\e612'; +} +.custom-theme .el-icon-d-arrow-right:before { + content: '\e613'; +} +.custom-theme .el-icon-document:before { + content: '\e614'; +} +.custom-theme .el-icon-d-caret:before { + content: '\e615'; +} +.custom-theme .el-icon-edit-outline:before { + content: '\e616'; +} +.custom-theme .el-icon-download:before { + content: '\e617'; +} +.custom-theme .el-icon-goods:before { + content: '\e618'; +} +.custom-theme .el-icon-search:before { + content: '\e619'; +} +.custom-theme .el-icon-info:before { + content: '\e61a'; +} +.custom-theme .el-icon-message:before { + content: '\e61b'; +} +.custom-theme .el-icon-edit:before { + content: '\e61c'; +} +.custom-theme .el-icon-location:before { + content: '\e61d'; +} +.custom-theme .el-icon-loading:before { + content: '\e61e'; +} +.custom-theme .el-icon-location-outline:before { + content: '\e61f'; +} +.custom-theme .el-icon-menu:before { + content: '\e620'; +} +.custom-theme .el-icon-minus:before { + content: '\e621'; +} +.custom-theme .el-icon-bell:before { + content: '\e622'; +} +.custom-theme .el-icon-mobile-phone:before { + content: '\e624'; +} +.custom-theme .el-icon-news:before { + content: '\e625'; +} +.custom-theme .el-icon-more:before { + content: '\e646'; +} +.custom-theme .el-icon-more-outline:before { + content: '\e626'; +} +.custom-theme .el-icon-phone:before { + content: '\e627'; +} +.custom-theme .el-icon-phone-outline:before { + content: '\e628'; +} +.custom-theme .el-icon-picture:before { + content: '\e629'; +} +.custom-theme .el-icon-picture-outline:before { + content: '\e62a'; +} +.custom-theme .el-icon-plus:before { + content: '\e62b'; +} +.custom-theme .el-icon-printer:before { + content: '\e62f'; +} +.custom-theme .el-icon-rank:before { + content: '\e632'; +} +.custom-theme .el-icon-refresh:before { + content: '\e633'; +} +.custom-theme .el-icon-question:before { + content: '\e634'; +} +.custom-theme .el-icon-remove:before { + content: '\e635'; +} +.custom-theme .el-icon-share:before { + content: '\e636'; +} +.custom-theme .el-icon-star-on:before { + content: '\e637'; +} +.custom-theme .el-icon-setting:before { + content: '\e638'; +} +.custom-theme .el-icon-circle-check:before { + content: '\e639'; +} +.custom-theme .el-icon-service:before { + content: '\e63a'; +} +.custom-theme .el-icon-sold-out:before { + content: '\e63b'; +} +.custom-theme .el-icon-remove-outline:before { + content: '\e63c'; +} +.custom-theme .el-icon-star-off:before { + content: '\e63d'; +} +.custom-theme .el-icon-circle-check-outline:before { + content: '\e63e'; +} +.custom-theme .el-icon-tickets:before { + content: '\e63f'; +} +.custom-theme .el-icon-sort:before { + content: '\e640'; +} +.custom-theme .el-icon-zoom-in:before { + content: '\e641'; +} +.custom-theme .el-icon-time:before { + content: '\e642'; +} +.custom-theme .el-icon-view:before { + content: '\e643'; +} +.custom-theme .el-icon-upload2:before { + content: '\e644'; +} +.custom-theme .el-icon-zoom-out:before { + content: '\e645'; +} +.custom-theme .el-icon-loading { + -webkit-animation: rotating 2s linear infinite; + animation: rotating 2s linear infinite; +} +.custom-theme .el-icon--right { + margin-left: 5px; +} +.custom-theme .el-icon--left { + margin-right: 5px; +} +@-webkit-keyframes rotating { + 0% { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); + } + 100% { + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg); + } +} +@keyframes rotating { + 0% { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); + } + 100% { + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg); + } +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .el-select-dropdown { + position: absolute; + z-index: 1001; + border: solid 1px #dfe4ed; + border-radius: 4px; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 5px 0; +} +.custom-theme + .el-select-dropdown.is-multiple + .el-select-dropdown__item.selected { + color: #262729; + background-color: #fff; +} +.custom-theme + .el-select-dropdown.is-multiple + .el-select-dropdown__item.selected.hover { + background-color: #f5f7fa; +} +.custom-theme + .el-select-dropdown.is-multiple + .el-select-dropdown__item.selected::after { + position: absolute; + right: 20px; + font-family: element-icons; + content: '\E611'; + font-size: 12px; + font-weight: 700; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.custom-theme + .el-select-dropdown + .el-scrollbar.is-empty + .el-select-dropdown__list { + padding: 0; +} +.custom-theme .el-select-dropdown .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} +.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow { + -webkit-transform: translateX(-200%); + transform: translateX(-200%); +} +.custom-theme .el-select-dropdown__empty { + padding: 10px 0; + margin: 0; + text-align: center; + color: #999; + font-size: 14px; +} +.custom-theme .el-select-dropdown__wrap { + max-height: 274px; +} +.custom-theme .el-select-dropdown__list { + list-style: none; + padding: 6px 0; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} +.custom-theme .el-tag .el-icon-close::before { + display: block; +} +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} +.custom-theme .el-select-dropdown__item { + font-size: 14px; + padding: 0 20px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #5a5e66; + height: 34px; + line-height: 34px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} +.custom-theme .el-select-dropdown__item.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-select-dropdown__item.is-disabled:hover { + background-color: #fff; +} +.custom-theme .el-select-dropdown__item.hover, +.custom-theme .el-select-dropdown__item:hover { + background-color: #f5f7fa; +} +.custom-theme .el-select-dropdown__item.selected { + color: #262729; + font-weight: 700; +} +.custom-theme .el-select-dropdown__item span { + line-height: 34px !important; +} +.custom-theme .el-select-group { + margin: 0; + padding: 0; +} +.custom-theme .el-select-group__wrap { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} +.custom-theme .el-select-group__wrap:not(:last-of-type) { + padding-bottom: 24px; +} +.custom-theme .el-select-group__wrap:not(:last-of-type)::after { + content: ''; + position: absolute; + display: block; + left: 20px; + right: 20px; + bottom: 12px; + height: 1px; + background: #dfe4ed; +} +.custom-theme .el-select-group__title { + padding-left: 20px; + font-size: 12px; + color: #0a76a4; + line-height: 30px; +} +.custom-theme .el-select-group .el-select-dropdown__item { + padding-left: 20px; +} +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} +.custom-theme .el-select { + display: inline-block; + position: relative; +} +.custom-theme .el-select:hover .el-input__inner { + border-color: #b4bccc; +} +.custom-theme .el-select .el-input__inner { + cursor: pointer; + padding-right: 35px; +} +.custom-theme .el-select .el-input__inner:focus { + border-color: #262729; +} +.custom-theme .el-select .el-input .el-select__caret { + color: #b4bccc; + font-size: 14px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + line-height: 16px; + cursor: pointer; +} +.custom-theme .el-select .el-input .el-select__caret.is-reverse { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); +} +.custom-theme .el-select .el-input .el-select__caret.is-show-close { + font-size: 14px; + text-align: center; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + border-radius: 100%; + color: #b4bccc; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover { + color: #878d99; +} +.custom-theme .el-select .el-input.is-disabled .el-input__inner { + cursor: not-allowed; +} +.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover { + border-color: #dfe4ed; +} +.custom-theme .el-select > .el-input { + display: block; +} +.custom-theme .el-select__input { + border: none; + outline: 0; + padding: 0; + margin-left: 15px; + color: #666; + font-size: 14px; + vertical-align: baseline; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 28px; + background-color: transparent; +} +.custom-theme .el-select__input.is-mini { + height: 14px; +} +.custom-theme .el-select__close { + cursor: pointer; + position: absolute; + top: 8px; + z-index: 1000; + right: 25px; + color: #b4bccc; + line-height: 18px; + font-size: 14px; +} +.custom-theme .el-select__close:hover { + color: #878d99; +} +.custom-theme .el-select__tags { + position: absolute; + line-height: normal; + white-space: normal; + z-index: 1; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.custom-theme .el-select .el-tag__close { + margin-top: -2px; +} +.custom-theme .el-select .el-tag { + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-color: transparent; + margin: 3px 0 3px 6px; + background-color: #f0f2f5; +} +.custom-theme .el-select .el-tag__close.el-icon-close { + background-color: #b4bccc; + right: -7px; + color: #fff; +} +.custom-theme .el-select .el-tag__close.el-icon-close:hover { + background-color: #878d99; +} +.custom-theme .el-select .el-tag__close.el-icon-close::before { + display: block; + -webkit-transform: translate(0, 0.5px); + transform: translate(0, 0.5px); +} +.custom-theme .el-select__tag { + display: inline-block; + height: 24px; + line-height: 24px; + font-size: 14px; + border-radius: 4px; + color: #fff; + background-color: #262729; +} +.custom-theme .el-select__tag .el-icon-close { + font-size: 14px; +} +.custom-theme .el-pagination { + white-space: nowrap; + padding: 2px 5px; + color: #2d2f33; + font-weight: 700; +} +.custom-theme .el-pagination::after, +.custom-theme .el-pagination::before { + display: table; + content: ''; +} +.custom-theme .el-pagination::after { + clear: both; +} +.custom-theme .el-pagination button, +.custom-theme .el-pagination span:not([class*='suffix']) { + display: inline-block; + font-size: 13px; + min-width: 35.5px; + height: 28px; + line-height: 28px; + vertical-align: top; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-pagination .el-input__inner { + text-align: center; +} +.custom-theme .el-pagination .el-input__suffix { + right: 0; + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-pagination .el-select .el-input { + width: 100px; + margin: 0 5px; +} +.custom-theme .el-pagination .el-select .el-input .el-input__inner { + padding-right: 25px; + border-radius: 3px; + height: 28px; +} +.custom-theme .el-pagination button { + border: none; + padding: 0 6px; + background: 0 0; +} +.custom-theme .el-pagination button:focus { + outline: 0; +} +.custom-theme .el-pagination button:hover { + color: #262729; +} +.custom-theme .el-pagination button.disabled { + color: #b4bccc; + background-color: #fff; + cursor: not-allowed; +} +.custom-theme .el-pagination .btn-next, +.custom-theme .el-pagination .btn-prev { + background: center center no-repeat; + background-size: 16px; + background-color: #fff; + cursor: pointer; + margin: 0; + color: #2d2f33; +} +.custom-theme .el-pagination .btn-next .el-icon, +.custom-theme .el-pagination .btn-prev .el-icon { + display: block; + font-size: 12px; +} +.custom-theme .el-pagination .btn-prev { + padding-right: 12px; +} +.custom-theme .el-pagination .btn-next { + padding-left: 12px; +} +.custom-theme .el-pagination--small .btn-next, +.custom-theme .el-pagination--small .btn-prev, +.custom-theme .el-pagination--small .el-pager li, +.custom-theme .el-pagination--small .el-pager li:last-child { + border-color: transparent; + font-size: 12px; + line-height: 22px; + height: 22px; + min-width: 22px; +} +.custom-theme .el-pagination--small .arrow.disabled { + visibility: hidden; +} +.custom-theme .el-pagination__sizes { + margin: 0 10px 0 0; + font-weight: 400; + color: #5a5e66; +} +.custom-theme .el-pagination__sizes .el-input .el-input__inner { + font-size: 13px; + padding-left: 8px; +} +.custom-theme .el-pagination__sizes .el-input .el-input__inner:hover { + border-color: #262729; +} +.custom-theme .el-pagination__total { + margin-right: 10px; + font-weight: 400; + color: #5a5e66; +} +.custom-theme .el-pagination__jump { + margin-left: 24px; + font-weight: 400; + color: #5a5e66; +} +.custom-theme .el-pagination__jump .el-input__inner { + padding: 0 3px; +} +.custom-theme .el-pagination__rightwrapper { + float: right; +} +.custom-theme .el-pagination__editor { + line-height: 18px; + padding: 0 2px; + height: 28px; + text-align: center; + margin: 0 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 3px; + -moz-appearance: textfield; +} +.custom-theme .el-pagination__editor.el-input { + width: 50px; +} +.custom-theme .el-pagination__editor.el-input .el-input__inner { + height: 28px; +} +.custom-theme + .el-pagination__editor + .el-input__inner::-webkit-inner-spin-button, +.custom-theme + .el-pagination__editor + .el-input__inner::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} +.custom-theme .el-pager { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + list-style: none; + display: inline-block; + vertical-align: top; + font-size: 0; + padding: 0; + margin: 0; +} +.custom-theme .el-pager .el-icon-more::before { + vertical-align: -4px; +} +.custom-theme .el-pager li { + padding: 0 4px; + background: #fff; + vertical-align: top; + display: inline-block; + font-size: 13px; + min-width: 35.5px; + height: 28px; + line-height: 28px; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + margin: 0; +} +.custom-theme .el-pager li.btn-quicknext, +.custom-theme .el-pager li.btn-quickprev { + line-height: 28px; + color: #2d2f33; +} +.custom-theme .el-pager li.btn-quickprev:hover { + cursor: pointer; +} +.custom-theme .el-pager li.btn-quicknext:hover { + cursor: pointer; +} +.custom-theme .el-pager li.active + li { + border-left: 0; +} +.custom-theme .el-pager li:hover { + color: #262729; +} +.custom-theme .el-pager li.active { + color: #262729; + cursor: default; +} +.custom-theme .v-modal-enter { + -webkit-animation: v-modal-in 0.2s ease; + animation: v-modal-in 0.2s ease; +} +.custom-theme .v-modal-leave { + -webkit-animation: v-modal-out 0.2s ease forwards; + animation: v-modal-out 0.2s ease forwards; +} +@-webkit-keyframes v-modal-in { + 0% { + opacity: 0; + } +} +@keyframes v-modal-in { + 0% { + opacity: 0; + } +} +@-webkit-keyframes v-modal-out { + 100% { + opacity: 0; + } +} +@keyframes v-modal-out { + 100% { + opacity: 0; + } +} +.custom-theme .v-modal { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.5; + background: #000; +} +.custom-theme .el-dialog { + position: relative; + margin: 0 auto 50px; + background: #fff; + border-radius: 2px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 50%; +} +.custom-theme .el-dialog.is-fullscreen { + width: 100%; + margin-top: 0; + margin-bottom: 0; + height: 100%; + overflow: auto; +} +.custom-theme .el-dialog__wrapper { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: auto; + margin: 0; +} +.custom-theme .el-dialog__header { + padding: 15px; + padding-bottom: 10px; +} +.custom-theme .el-dialog__headerbtn { + position: absolute; + top: 15px; + right: 15px; + padding: 0; + background: 0 0; + border: none; + outline: 0; + cursor: pointer; + font-size: 16px; +} +.custom-theme .el-dialog__headerbtn .el-dialog__close { + color: #0a76a4; +} +.custom-theme .el-dialog__headerbtn:focus .el-dialog__close, +.custom-theme .el-dialog__headerbtn:hover .el-dialog__close { + color: #262729; +} +.custom-theme .el-dialog__title { + line-height: 24px; + font-size: 18px; + color: #2d2f33; +} +.custom-theme .el-dialog__body { + padding: 30px 20px; + color: #5a5e66; + line-height: 24px; + font-size: 14px; +} +.custom-theme .el-dialog__footer { + padding: 15px; + padding-top: 10px; + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-dialog--center { + text-align: center; +} +.custom-theme .el-dialog--center .el-dialog__header { + padding-top: 30px; +} +.custom-theme .el-dialog--center .el-dialog__body { + text-align: initial; + padding: 25px 27px 30px; +} +.custom-theme .el-dialog--center .el-dialog__footer { + text-align: inherit; + padding-bottom: 30px; +} +.custom-theme .dialog-fade-enter-active { + -webkit-animation: dialog-fade-in 0.3s; + animation: dialog-fade-in 0.3s; +} +.custom-theme .dialog-fade-leave-active { + -webkit-animation: dialog-fade-out 0.3s; + animation: dialog-fade-out 0.3s; +} +@-webkit-keyframes dialog-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} +@keyframes dialog-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} +@-webkit-keyframes dialog-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} +@keyframes dialog-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .el-autocomplete { + position: relative; + display: inline-block; +} +.custom-theme .el-autocomplete-suggestion { + margin: 5px 0; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 4px; +} +.custom-theme .el-autocomplete-suggestion.el-popper .popper__arrow { + left: 24px !important; +} +.custom-theme .el-autocomplete-suggestion__wrap { + max-height: 280px; + padding: 10px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: auto; + background-color: #fff; + border: 1px solid #dfe4ed; + border-radius: 4px; +} +.custom-theme .el-autocomplete-suggestion__list { + margin: 0; + padding: 0; +} +.custom-theme .el-autocomplete-suggestion li { + padding: 0 20px; + margin: 0; + line-height: 34px; + cursor: pointer; + color: #5a5e66; + font-size: 14px; + list-style: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.custom-theme .el-autocomplete-suggestion li:hover { + background-color: #f5f7fa; +} +.custom-theme .el-autocomplete-suggestion li.highlighted { + background-color: #f5f7fa; +} +.custom-theme .el-autocomplete-suggestion li.divider { + margin-top: 6px; + border-top: 1px solid #000; +} +.custom-theme .el-autocomplete-suggestion li.divider:last-child { + margin-bottom: -6px; +} +.custom-theme .el-autocomplete-suggestion.is-loading li { + text-align: center; + height: 100px; + line-height: 100px; + font-size: 20px; + color: #999; +} +.custom-theme .el-autocomplete-suggestion.is-loading li::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} +.custom-theme .el-autocomplete-suggestion.is-loading li:hover { + background-color: #fff; +} +.custom-theme .el-autocomplete-suggestion.is-loading .el-icon-loading { + vertical-align: middle; +} +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button + .el-button { + margin-left: 10px; +} +.custom-theme .el-button.is-round { + padding: 12px 20px; +} +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} +.custom-theme .el-button-group::after { + clear: both; +} +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .el-dropdown { + display: inline-block; + position: relative; + color: #5a5e66; + font-size: 14px; +} +.custom-theme .el-dropdown .el-button-group { + display: block; +} +.custom-theme .el-dropdown .el-button-group .el-button { + float: none; +} +.custom-theme .el-dropdown .el-dropdown__caret-button { + padding-left: 5px; + padding-right: 5px; + position: relative; + border-left: none; +} +.custom-theme .el-dropdown .el-dropdown__caret-button::before { + content: ''; + position: absolute; + display: block; + width: 1px; + top: 5px; + bottom: 5px; + left: 0; + background: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-dropdown .el-dropdown__caret-button:hover::before { + top: 0; + bottom: 0; +} +.custom-theme .el-dropdown .el-dropdown__caret-button .el-dropdown__icon { + padding-left: 0; +} +.custom-theme .el-dropdown__icon { + font-size: 12px; + margin: 0 3px; +} +.custom-theme .el-dropdown-menu { + position: absolute; + top: 0; + left: 0; + z-index: 10; + padding: 10px 0; + margin: 5px 0; + background-color: #fff; + border: 1px solid #e6ebf5; + border-radius: 4px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} +.custom-theme .el-dropdown-menu__item { + list-style: none; + line-height: 36px; + padding: 0 20px; + margin: 0; + font-size: 14px; + color: #5a5e66; + cursor: pointer; +} +.custom-theme .el-dropdown-menu__item:not(.is-disabled):hover { + background-color: #e9e9ea; + color: #515254; +} +.custom-theme .el-dropdown-menu__item--divided { + position: relative; + margin-top: 6px; + border-top: 1px solid #e6ebf5; +} +.custom-theme .el-dropdown-menu__item--divided:before { + content: ''; + height: 6px; + display: block; + margin: 0 -20px; + background-color: #fff; +} +.custom-theme .el-dropdown-menu__item.is-disabled { + cursor: default; + color: #bbb; + pointer-events: none; +} +.custom-theme .el-dropdown-menu--medium { + padding: 6px 0; +} +.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item { + line-height: 30px; + padding: 0 17px; + font-size: 14px; +} +.custom-theme + .el-dropdown-menu--medium + .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 6px; +} +.custom-theme + .el-dropdown-menu--medium + .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 6px; + margin: 0 -17px; +} +.custom-theme .el-dropdown-menu--small { + padding: 6px 0; +} +.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item { + line-height: 27px; + padding: 0 15px; + font-size: 13px; +} +.custom-theme + .el-dropdown-menu--small + .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 4px; +} +.custom-theme + .el-dropdown-menu--small + .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 4px; + margin: 0 -15px; +} +.custom-theme .el-dropdown-menu--mini { + padding: 3px 0; +} +.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item { + line-height: 24px; + padding: 0 10px; + font-size: 12px; +} +.custom-theme + .el-dropdown-menu--mini + .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 3px; +} +.custom-theme + .el-dropdown-menu--mini + .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 3px; + margin: 0 -10px; +} +.custom-theme .el-menu { + border-right: solid 1px #e6e6e6; + list-style: none; + position: relative; + margin: 0; + padding-left: 0; + background-color: #fff; +} +.custom-theme .el-menu::after, +.custom-theme .el-menu::before { + display: table; + content: ''; +} +.custom-theme .el-menu::after { + clear: both; +} +.custom-theme .el-menu li { + list-style: none; +} +.custom-theme .el-menu--horizontal { + border-right: none; + border-bottom: solid 1px #e6e6e6; +} +.custom-theme .el-menu--horizontal .el-menu-item { + float: left; + height: 60px; + line-height: 60px; + margin: 0; + cursor: pointer; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-bottom: 2px solid transparent; + color: #878d99; +} +.custom-theme .el-menu--horizontal .el-menu-item a, +.custom-theme .el-menu--horizontal .el-menu-item a:hover { + color: inherit; +} +.custom-theme .el-menu--horizontal .el-menu-item:focus, +.custom-theme .el-menu--horizontal .el-menu-item:hover { + background-color: #fff; +} +.custom-theme .el-menu--horizontal .el-sub-menu { + float: left; + position: relative; +} +.custom-theme .el-menu--horizontal .el-sub-menu:focus { + outline: 0; +} +.custom-theme .el-menu--horizontal .el-sub-menu:focus > .el-sub-menu__title { + color: #2d2f33; +} +.custom-theme .el-menu--horizontal .el-sub-menu > .el-menu { + position: absolute; + top: 65px; + left: 0; + border: none; + padding: 5px 0; + background-color: #fff; + z-index: 100; + min-width: 100%; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 2px; +} +.custom-theme .el-menu--horizontal .el-sub-menu .el-sub-menu__title { + height: 60px; + line-height: 60px; + border-bottom: 2px solid transparent; + color: #878d99; +} +.custom-theme .el-menu--horizontal .el-sub-menu .el-sub-menu__title:hover { + background-color: #fff; +} +.custom-theme .el-menu--horizontal .el-sub-menu .el-menu-item { + background-color: #fff; + float: none; + height: 36px; + line-height: 36px; + padding: 0 10px; +} +.custom-theme .el-menu--horizontal .el-sub-menu .el-sub-menu__icon-arrow { + position: static; + vertical-align: middle; + margin-left: 8px; + margin-top: -3px; +} +.custom-theme .el-menu--horizontal .el-menu-item:focus, +.custom-theme .el-menu--horizontal .el-menu-item:hover, +.custom-theme .el-menu--horizontal .el-sub-menu__title:hover { + outline: 0; + color: #2d2f33; +} +.custom-theme .el-menu--horizontal > .el-menu-item.is-active, +.custom-theme + .el-menu--horizontal + > .el-sub-menu.is-active + .el-sub-menu__title { + border-bottom: 2px solid #262729; + color: #2d2f33; +} +.custom-theme .el-menu--collapse { + width: 64px; +} +.custom-theme .el-menu--collapse > .el-menu-item [class^='el-icon-'], +.custom-theme + .el-menu--collapse + > .el-sub-menu + > .el-sub-menu__title + [class^='el-icon-'] { + margin: 0; + vertical-align: middle; + width: 24px; + text-align: center; +} +.custom-theme .el-menu--collapse > .el-menu-item .el-sub-menu__icon-arrow, +.custom-theme + .el-menu--collapse + > .el-sub-menu + > .el-sub-menu__title + .el-sub-menu__icon-arrow { + display: none; +} +.custom-theme .el-menu--collapse > .el-menu-item span, +.custom-theme .el-menu--collapse > .el-sub-menu > .el-sub-menu__title span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; +} +.custom-theme .el-menu--collapse > .el-menu-item.is-active i { + color: inherit; +} +.custom-theme .el-menu--collapse .el-menu .el-sub-menu { + min-width: 200px; +} +.custom-theme .el-menu--collapse .el-sub-menu { + position: relative; +} +.custom-theme .el-menu--collapse .el-sub-menu .el-menu { + position: absolute; + margin-left: 5px; + top: 0; + left: 100%; + z-index: 10; + border: 1px solid #dfe4ed; + border-radius: 2px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} +.custom-theme + .el-menu--collapse + .el-sub-menu.is-opened + > .el-sub-menu__title + .el-sub-menu__icon-arrow { + -webkit-transform: none; + transform: none; +} +.custom-theme .el-menu-item { + height: 56px; + line-height: 56px; + font-size: 14px; + color: #2d2f33; + padding: 0 20px; + cursor: pointer; + position: relative; + -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s; + transition: border-color 0.3s, background-color 0.3s, color 0.3s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + white-space: nowrap; +} +.custom-theme .el-menu-item [class^='el-icon-'] { + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; +} +.custom-theme .el-menu-item * { + vertical-align: middle; +} +.custom-theme .el-menu-item:first-child { + margin-left: 0; +} +.custom-theme .el-menu-item:last-child { + margin-right: 0; +} +.custom-theme .el-menu-item:focus, +.custom-theme .el-menu-item:hover { + outline: 0; + background-color: #e9e9ea; +} +.custom-theme .el-menu-item i { + color: #878d99; +} +.custom-theme .el-menu-item.is-active { + color: #262729; +} +.custom-theme .el-menu-item.is-active i { + color: inherit; +} +.custom-theme .el-sub-menu__title { + position: relative; + height: 56px; + line-height: 56px; + font-size: 14px; + color: #2d2f33; + padding: 0 20px; + cursor: pointer; + position: relative; + -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s; + transition: border-color 0.3s, background-color 0.3s, color 0.3s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + white-space: nowrap; +} +.custom-theme .el-sub-menu__title * { + vertical-align: middle; +} +.custom-theme .el-sub-menu__title i { + color: #878d99; +} +.custom-theme .el-sub-menu__title:hover { + background-color: #e9e9ea; +} +.custom-theme .el-sub-menu .el-menu { + border: none; +} +.custom-theme .el-sub-menu .el-menu-item { + height: 50px; + line-height: 50px; + padding: 0 45px; + min-width: 200px; +} +.custom-theme .el-sub-menu__icon-arrow { + position: absolute; + top: 50%; + right: 20px; + margin-top: -7px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + font-size: 12px; +} +.custom-theme .el-sub-menu.is-active .el-sub-menu__title { + border-bottom-color: #262729; +} +.custom-theme + .el-sub-menu.is-opened + > .el-sub-menu__title + .el-sub-menu__icon-arrow { + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +.custom-theme .el-sub-menu [class^='el-icon-'] { + vertical-align: middle; + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; +} +.custom-theme .el-menu-item-group > ul { + padding: 0; +} +.custom-theme .el-menu-item-group__title { + padding: 7px 0 7px 20px; + line-height: normal; + font-size: 12px; + color: #878d99; +} +.custom-theme + .horizontal-collapse-transition + .el-sub-menu__title + .el-sub-menu__icon-arrow { + -webkit-transition: 0.2s; + transition: 0.2s; + opacity: 0; +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input-number { + position: relative; + display: inline-block; + width: 180px; + line-height: 38px; +} +.custom-theme .el-input-number .el-input { + display: block; +} +.custom-theme .el-input-number .el-input__inner { + -webkit-appearance: none; + padding-left: 50px; + padding-right: 50px; + text-align: center; +} +.custom-theme .el-input-number__decrease, +.custom-theme .el-input-number__increase { + position: absolute; + z-index: 1; + top: 1px; + width: 40px; + height: auto; + text-align: center; + background: #f5f7fa; + color: #5a5e66; + cursor: pointer; + font-size: 13px; +} +.custom-theme .el-input-number__decrease:hover, +.custom-theme .el-input-number__increase:hover { + color: #262729; +} +.custom-theme + .el-input-number__decrease:hover:not(.is-disabled) + ~ .el-input + .el-input__inner:not(.is-disabled), +.custom-theme + .el-input-number__increase:hover:not(.is-disabled) + ~ .el-input + .el-input__inner:not(.is-disabled) { + border-color: #262729; +} +.custom-theme .el-input-number__decrease.is-disabled, +.custom-theme .el-input-number__increase.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-input-number__increase { + right: 1px; + border-radius: 0 4px 4px 0; + border-left: 1px solid #d8dce5; +} +.custom-theme .el-input-number__decrease { + left: 1px; + border-radius: 4px 0 0 4px; + border-right: 1px solid #d8dce5; +} +.custom-theme .el-input-number.is-disabled .el-input-number__decrease, +.custom-theme .el-input-number.is-disabled .el-input-number__increase { + border-color: #dfe4ed; + color: #dfe4ed; +} +.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover, +.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover { + color: #dfe4ed; + cursor: not-allowed; +} +.custom-theme .el-input-number--medium { + width: 200px; + line-height: 34px; +} +.custom-theme .el-input-number--medium .el-input-number__decrease, +.custom-theme .el-input-number--medium .el-input-number__increase { + width: 36px; + font-size: 14px; +} +.custom-theme .el-input-number--medium .el-input__inner { + padding-left: 43px; + padding-right: 43px; +} +.custom-theme .el-input-number--small { + width: 130px; + line-height: 30px; +} +.custom-theme .el-input-number--small .el-input-number__decrease, +.custom-theme .el-input-number--small .el-input-number__increase { + width: 32px; + font-size: 13px; +} +.custom-theme + .el-input-number--small + .el-input-number__decrease + [class*='el-icon'], +.custom-theme + .el-input-number--small + .el-input-number__increase + [class*='el-icon'] { + -webkit-transform: scale(0.9); + transform: scale(0.9); +} +.custom-theme .el-input-number--small .el-input__inner { + padding-left: 39px; + padding-right: 39px; +} +.custom-theme .el-input-number--mini { + width: 130px; + line-height: 26px; +} +.custom-theme .el-input-number--mini .el-input-number__decrease, +.custom-theme .el-input-number--mini .el-input-number__increase { + width: 28px; + font-size: 12px; +} +.custom-theme + .el-input-number--mini + .el-input-number__decrease + [class*='el-icon'], +.custom-theme + .el-input-number--mini + .el-input-number__increase + [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-input-number--mini .el-input__inner { + padding-left: 35px; + padding-right: 35px; +} +.custom-theme .el-input-number.is-without-controls .el-input__inner { + padding-left: 15px; + padding-right: 15px; +} +.custom-theme .el-input-number.is-controls-right .el-input__inner { + padding-left: 15px; + padding-right: 50px; +} +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease, +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + height: auto; + line-height: 19px; +} +.custom-theme + .el-input-number.is-controls-right + .el-input-number__decrease + [class*='el-icon'], +.custom-theme + .el-input-number.is-controls-right + .el-input-number__increase + [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + border-radius: 0 4px 0 0; + border-bottom: 1px solid #d8dce5; +} +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease { + right: 1px; + bottom: 1px; + top: auto; + left: auto; + border-right: none; + border-left: 1px solid #d8dce5; + border-radius: 0 0 4px 0; +} +.custom-theme + .el-input-number.is-controls-right[class*='medium'] + [class*='decrease'], +.custom-theme + .el-input-number.is-controls-right[class*='medium'] + [class*='increase'] { + line-height: 17px; +} +.custom-theme + .el-input-number.is-controls-right[class*='small'] + [class*='decrease'], +.custom-theme + .el-input-number.is-controls-right[class*='small'] + [class*='increase'] { + line-height: 15px; +} +.custom-theme + .el-input-number.is-controls-right[class*='mini'] + [class*='decrease'], +.custom-theme + .el-input-number.is-controls-right[class*='mini'] + [class*='increase'] { + line-height: 13px; +} +.custom-theme .el-radio { + color: #5a5e66; + font-weight: 500; + line-height: 1; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + outline: 0; + font-size: 14px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; +} +.custom-theme .el-radio.is-bordered { + padding: 10px 20px 10px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} +.custom-theme .el-radio.is-bordered.is-checked { + border-color: #262729; +} +.custom-theme .el-radio.is-bordered.is-disabled { + cursor: not-allowed; + border-color: #e6ebf5; +} +.custom-theme .el-radio.is-bordered + .el-radio.is-bordered { + margin-left: 10px; +} +.custom-theme .el-radio--medium.is-bordered { + padding: 8px 20px 8px 10px; + border-radius: 4px; +} +.custom-theme .el-radio--medium.is-bordered .el-radio__label { + font-size: 14px; +} +.custom-theme .el-radio--medium.is-bordered .el-radio__inner { + height: 14px; + width: 14px; +} +.custom-theme .el-radio--small.is-bordered { + padding: 6px 15px 6px 10px; + border-radius: 3px; +} +.custom-theme .el-radio--small.is-bordered .el-radio__label { + font-size: 12px; +} +.custom-theme .el-radio--small.is-bordered .el-radio__inner { + height: 12px; + width: 12px; +} +.custom-theme .el-radio--mini.is-bordered { + padding: 4px 15px 4px 10px; + border-radius: 3px; +} +.custom-theme .el-radio--mini.is-bordered .el-radio__label { + font-size: 12px; +} +.custom-theme .el-radio--mini.is-bordered .el-radio__inner { + height: 12px; + width: 12px; +} +.custom-theme .el-radio + .el-radio { + margin-left: 30px; +} +.custom-theme .el-radio__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} +.custom-theme .el-radio__input.is-disabled .el-radio__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + cursor: not-allowed; +} +.custom-theme .el-radio__input.is-disabled .el-radio__inner::after { + cursor: not-allowed; + background-color: #f5f7fa; +} +.custom-theme .el-radio__input.is-disabled .el-radio__inner + .el-radio__label { + cursor: not-allowed; +} +.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; +} +.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner::after { + background-color: #b4bccc; +} +.custom-theme .el-radio__input.is-disabled + span.el-radio__label { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-radio__input.is-checked .el-radio__inner { + border-color: #262729; + background: #262729; +} +.custom-theme .el-radio__input.is-checked .el-radio__inner::after { + -webkit-transform: translate(-50%, -50%) scale(1); + transform: translate(-50%, -50%) scale(1); +} +.custom-theme .el-radio__input.is-checked + .el-radio__label { + color: #262729; +} +.custom-theme .el-radio__input.is-focus .el-radio__inner { + border-color: #262729; +} +.custom-theme .el-radio__inner { + border: 1px solid #d8dce5; + border-radius: 100%; + width: 14px; + height: 14px; + background-color: #fff; + position: relative; + cursor: pointer; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-radio__inner:hover { + border-color: #262729; +} +.custom-theme .el-radio__inner::after { + width: 4px; + height: 4px; + border-radius: 100%; + background-color: #fff; + content: ''; + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%) scale(0); + transform: translate(-50%, -50%) scale(0); + -webkit-transition: -webkit-transform 0.15s + cubic-bezier(0.71, -0.46, 0.88, 0.6); + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6); + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6); + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6), + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6); +} +.custom-theme .el-radio__original { + opacity: 0; + outline: 0; + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: 0; +} +.custom-theme .el-radio:focus:not(.is-focus):not(:active) .el-radio__inner { + -webkit-box-shadow: 0 0 2px 2px #262729; + box-shadow: 0 0 2px 2px #262729; +} +.custom-theme .el-radio__label { + font-size: 14px; + padding-left: 10px; +} +.custom-theme .el-radio-group { + display: inline-block; + line-height: 1; + vertical-align: middle; + font-size: 0; +} +.custom-theme .el-radio-button { + position: relative; + display: inline-block; + outline: 0; +} +.custom-theme .el-radio-button__inner { + display: inline-block; + line-height: 1; + white-space: nowrap; + vertical-align: middle; + background: #fff; + border: 1px solid #d8dce5; + font-weight: 500; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + cursor: pointer; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-radio-button__inner.is-round { + padding: 12px 20px; +} +.custom-theme .el-radio-button__inner:hover { + color: #262729; +} +.custom-theme .el-radio-button__inner [class*='el-icon-'] { + line-height: 0.9; +} +.custom-theme .el-radio-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-radio-button__orig-radio { + opacity: 0; + outline: 0; + position: absolute; + z-index: -1; + left: -999px; +} +.custom-theme .el-radio-button__orig-radio:checked + .el-radio-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #262729; + box-shadow: -1px 0 0 0 #262729; +} +.custom-theme .el-radio-button__orig-radio:disabled + .el-radio-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme + .el-radio-button__orig-radio:disabled:checked + + .el-radio-button__inner { + background-color: #edf2fc; +} +.custom-theme .el-radio-button:first-child .el-radio-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.custom-theme .el-radio-button:last-child .el-radio-button__inner { + border-radius: 0 4px 4px 0; +} +.custom-theme .el-radio-button:first-child:last-child .el-radio-button__inner { + border-radius: 4px; +} +.custom-theme .el-radio-button--medium .el-radio-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-radio-button--medium .el-radio-button__inner.is-round { + padding: 10px 20px; +} +.custom-theme .el-radio-button--small .el-radio-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-radio-button--small .el-radio-button__inner.is-round { + padding: 9px 15px; +} +.custom-theme .el-radio-button--mini .el-radio-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-radio-button--mini .el-radio-button__inner.is-round { + padding: 7px 15px; +} +.custom-theme .el-radio-button:focus:not(.is-focus):not(:active) { + -webkit-box-shadow: 0 0 2px 2px #262729; + box-shadow: 0 0 2px 2px #262729; +} +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--small + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--mini + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled + .el-checkbox__inner + + .el-checkbox__label { + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-checked + .el-checkbox__inner::after { + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s + cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} +.custom-theme .el-checkbox-group { + font-size: 0; +} +.custom-theme .el-switch { + display: inline-block; + position: relative; + font-size: 14px; + line-height: 20px; + height: 20px; + vertical-align: middle; +} +.custom-theme .el-switch.is-disabled .el-switch__core, +.custom-theme .el-switch.is-disabled .el-switch__label { + cursor: not-allowed; +} +.custom-theme .el-switch__label { + -webkit-transition: 0.2s; + transition: 0.2s; + height: 20px; + display: inline-block; + font-size: 14px; + font-weight: 500; + cursor: pointer; + vertical-align: middle; + color: #2d2f33; +} +.custom-theme .el-switch__label.is-active { + color: #262729; +} +.custom-theme .el-switch__label--left { + margin-right: 10px; +} +.custom-theme .el-switch__label--right { + margin-left: 10px; +} +.custom-theme .el-switch__label * { + line-height: 1; + font-size: 14px; + display: inline-block; +} +.custom-theme .el-switch__input { + position: absolute; + width: 0; + height: 0; + opacity: 0; + margin: 0; +} +.custom-theme .el-switch__input:focus ~ .el-switch__core { + outline: 1px solid #262729; +} +.custom-theme .el-switch__core { + margin: 0; + display: inline-block; + position: relative; + width: 40px; + height: 20px; + border: 1px solid #d8dce5; + outline: 0; + border-radius: 10px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #d8dce5; + cursor: pointer; + -webkit-transition: border-color 0.3s, background-color 0.3s; + transition: border-color 0.3s, background-color 0.3s; + vertical-align: middle; +} +.custom-theme .el-switch__core .el-switch__button { + position: absolute; + top: 1px; + left: 1px; + border-radius: 100%; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + width: 16px; + height: 16px; + background-color: #fff; +} +.custom-theme .el-switch.is-checked .el-switch__core { + border-color: #262729; + background-color: #262729; +} +.custom-theme .el-switch.is-disabled { + opacity: 0.6; +} +.custom-theme .el-switch--wide .el-switch__label.el-switch__label--left span { + left: 10px; +} +.custom-theme .el-switch--wide .el-switch__label.el-switch__label--right span { + right: 10px; +} +.custom-theme .el-switch .label-fade-enter, +.custom-theme .el-switch .label-fade-leave-active { + opacity: 0; +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .el-select-dropdown { + position: absolute; + z-index: 1001; + border: solid 1px #dfe4ed; + border-radius: 4px; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 5px 0; +} +.custom-theme + .el-select-dropdown.is-multiple + .el-select-dropdown__item.selected { + color: #262729; + background-color: #fff; +} +.custom-theme + .el-select-dropdown.is-multiple + .el-select-dropdown__item.selected.hover { + background-color: #f5f7fa; +} +.custom-theme + .el-select-dropdown.is-multiple + .el-select-dropdown__item.selected::after { + position: absolute; + right: 20px; + font-family: element-icons; + content: '\E611'; + font-size: 12px; + font-weight: 700; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.custom-theme + .el-select-dropdown + .el-scrollbar.is-empty + .el-select-dropdown__list { + padding: 0; +} +.custom-theme .el-select-dropdown .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} +.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow { + -webkit-transform: translateX(-200%); + transform: translateX(-200%); +} +.custom-theme .el-select-dropdown__empty { + padding: 10px 0; + margin: 0; + text-align: center; + color: #999; + font-size: 14px; +} +.custom-theme .el-select-dropdown__wrap { + max-height: 274px; +} +.custom-theme .el-select-dropdown__list { + list-style: none; + padding: 6px 0; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} +.custom-theme .el-tag .el-icon-close::before { + display: block; +} +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} +.custom-theme .el-select-dropdown__item { + font-size: 14px; + padding: 0 20px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #5a5e66; + height: 34px; + line-height: 34px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} +.custom-theme .el-select-dropdown__item.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-select-dropdown__item.is-disabled:hover { + background-color: #fff; +} +.custom-theme .el-select-dropdown__item.hover, +.custom-theme .el-select-dropdown__item:hover { + background-color: #f5f7fa; +} +.custom-theme .el-select-dropdown__item.selected { + color: #262729; + font-weight: 700; +} +.custom-theme .el-select-dropdown__item span { + line-height: 34px !important; +} +.custom-theme .el-select-group { + margin: 0; + padding: 0; +} +.custom-theme .el-select-group__wrap { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} +.custom-theme .el-select-group__wrap:not(:last-of-type) { + padding-bottom: 24px; +} +.custom-theme .el-select-group__wrap:not(:last-of-type)::after { + content: ''; + position: absolute; + display: block; + left: 20px; + right: 20px; + bottom: 12px; + height: 1px; + background: #dfe4ed; +} +.custom-theme .el-select-group__title { + padding-left: 20px; + font-size: 12px; + color: #0a76a4; + line-height: 30px; +} +.custom-theme .el-select-group .el-select-dropdown__item { + padding-left: 20px; +} +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} +.custom-theme .el-select { + display: inline-block; + position: relative; +} +.custom-theme .el-select:hover .el-input__inner { + border-color: #b4bccc; +} +.custom-theme .el-select .el-input__inner { + cursor: pointer; + padding-right: 35px; +} +.custom-theme .el-select .el-input__inner:focus { + border-color: #262729; +} +.custom-theme .el-select .el-input .el-select__caret { + color: #b4bccc; + font-size: 14px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + line-height: 16px; + cursor: pointer; +} +.custom-theme .el-select .el-input .el-select__caret.is-reverse { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); +} +.custom-theme .el-select .el-input .el-select__caret.is-show-close { + font-size: 14px; + text-align: center; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + border-radius: 100%; + color: #b4bccc; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover { + color: #878d99; +} +.custom-theme .el-select .el-input.is-disabled .el-input__inner { + cursor: not-allowed; +} +.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover { + border-color: #dfe4ed; +} +.custom-theme .el-select > .el-input { + display: block; +} +.custom-theme .el-select__input { + border: none; + outline: 0; + padding: 0; + margin-left: 15px; + color: #666; + font-size: 14px; + vertical-align: baseline; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 28px; + background-color: transparent; +} +.custom-theme .el-select__input.is-mini { + height: 14px; +} +.custom-theme .el-select__close { + cursor: pointer; + position: absolute; + top: 8px; + z-index: 1000; + right: 25px; + color: #b4bccc; + line-height: 18px; + font-size: 14px; +} +.custom-theme .el-select__close:hover { + color: #878d99; +} +.custom-theme .el-select__tags { + position: absolute; + line-height: normal; + white-space: normal; + z-index: 1; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.custom-theme .el-select .el-tag__close { + margin-top: -2px; +} +.custom-theme .el-select .el-tag { + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-color: transparent; + margin: 3px 0 3px 6px; + background-color: #f0f2f5; +} +.custom-theme .el-select .el-tag__close.el-icon-close { + background-color: #b4bccc; + right: -7px; + color: #fff; +} +.custom-theme .el-select .el-tag__close.el-icon-close:hover { + background-color: #878d99; +} +.custom-theme .el-select .el-tag__close.el-icon-close::before { + display: block; + -webkit-transform: translate(0, 0.5px); + transform: translate(0, 0.5px); +} +.custom-theme .el-select__tag { + display: inline-block; + height: 24px; + line-height: 24px; + font-size: 14px; + border-radius: 4px; + color: #fff; + background-color: #262729; +} +.custom-theme .el-select__tag .el-icon-close { + font-size: 14px; +} +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button + .el-button { + margin-left: 10px; +} +.custom-theme .el-button.is-round { + padding: 12px 20px; +} +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} +.custom-theme .el-button-group::after { + clear: both; +} +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--small + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--mini + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled + .el-checkbox__inner + + .el-checkbox__label { + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-checked + .el-checkbox__inner::after { + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s + cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} +.custom-theme .el-checkbox-group { + font-size: 0; +} +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} +.custom-theme .el-tag .el-icon-close::before { + display: block; +} +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} +.custom-theme .el-table { + position: relative; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + width: 100%; + max-width: 100%; + background-color: #fff; + font-size: 14px; + color: #5a5e66; +} +.custom-theme .el-table__empty-block { + position: relative; + min-height: 60px; + text-align: center; + width: 100%; + height: 100%; +} +.custom-theme .el-table__empty-text { + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + color: color(#262729 s(16%) l(44%)); +} +.custom-theme .el-table__expand-column .cell { + padding: 0; + text-align: center; +} +.custom-theme .el-table__expand-icon { + position: relative; + cursor: pointer; + color: #666; + font-size: 12px; + -webkit-transition: -webkit-transform 0.2s ease-in-out; + transition: -webkit-transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out; + height: 20px; +} +.custom-theme .el-table__expand-icon--expanded { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} +.custom-theme .el-table__expand-icon > .el-icon { + position: absolute; + left: 50%; + top: 50%; + margin-left: -5px; + margin-top: -5px; +} +.custom-theme .el-table__expanded-cell { + background-color: #fff; +} +.custom-theme .el-table__expanded-cell[class*='cell'] { + padding: 20px 50px; +} +.custom-theme .el-table__expanded-cell:hover { + background-color: #f5f7fa !important; +} +.custom-theme .el-table--fit { + border-right: 0; + border-bottom: 0; +} +.custom-theme .el-table--fit td.gutter, +.custom-theme .el-table--fit th.gutter { + border-right-width: 1px; +} +.custom-theme .el-table thead { + color: #878d99; + font-weight: 500; +} +.custom-theme .el-table thead.is-group th { + background: #f5f7fa; +} +.custom-theme .el-table td, +.custom-theme .el-table th { + padding: 12px 0; + min-width: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-overflow: ellipsis; + vertical-align: middle; + position: relative; +} +.custom-theme .el-table td.is-center, +.custom-theme .el-table th.is-center { + text-align: center; +} +.custom-theme .el-table td.is-left, +.custom-theme .el-table th.is-left { + text-align: left; +} +.custom-theme .el-table td.is-right, +.custom-theme .el-table th.is-right { + text-align: right; +} +.custom-theme .el-table td.gutter, +.custom-theme .el-table th.gutter { + width: 15px; + border-right-width: 0; + border-bottom-width: 0; + padding: 0; +} +.custom-theme .el-table td.is-hidden > *, +.custom-theme .el-table th.is-hidden > * { + visibility: hidden; +} +.custom-theme .el-table--medium td, +.custom-theme .el-table--medium th { + padding: 10px 0; +} +.custom-theme .el-table--small { + font-size: 12px; +} +.custom-theme .el-table--small td, +.custom-theme .el-table--small th { + padding: 8px 0; +} +.custom-theme .el-table--mini { + font-size: 12px; +} +.custom-theme .el-table--mini td, +.custom-theme .el-table--mini th { + padding: 6px 0; +} +.custom-theme .el-table tr { + background-color: #fff; +} +.custom-theme .el-table tr input[type='checkbox'] { + margin: 0; +} +.custom-theme .el-table td, +.custom-theme .el-table th.is-leaf { + border-bottom: 1px solid #e6ebf5; +} +.custom-theme .el-table th.is-sortable { + cursor: pointer; +} +.custom-theme .el-table th { + white-space: nowrap; + overflow: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + text-align: left; +} +.custom-theme .el-table th div { + display: inline-block; + padding-left: 10px; + padding-right: 10px; + line-height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.custom-theme .el-table th > .cell { + position: relative; + word-wrap: normal; + text-overflow: ellipsis; + display: inline-block; + vertical-align: middle; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-table th > .cell.highlight { + color: #262729; +} +.custom-theme .el-table th.required > div::before { + display: inline-block; + content: ''; + width: 8px; + height: 8px; + border-radius: 50%; + background: #ff4d51; + margin-right: 5px; + vertical-align: middle; +} +.custom-theme .el-table td div { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-table td.gutter { + width: 0; +} +.custom-theme .el-table .cell { + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + text-overflow: ellipsis; + white-space: normal; + word-break: break-all; + line-height: 23px; + padding-left: 10px; + padding-right: 10px; +} +.custom-theme .el-table .cell.el-tooltip { + white-space: nowrap; + min-width: 50px; +} +.custom-theme .el-table td:first-child .cell, +.custom-theme .el-table th:first-child .cell { + padding-left: 0; +} +.custom-theme .el-table--border, +.custom-theme .el-table--group { + border: 1px solid #e6ebf5; +} +.custom-theme .el-table--border::after, +.custom-theme .el-table--group::after, +.custom-theme .el-table::before { + content: ''; + position: absolute; + background-color: #e6ebf5; + z-index: 1; +} +.custom-theme .el-table--border::after, +.custom-theme .el-table--group::after { + top: 0; + right: 0; + width: 1px; + height: 100%; +} +.custom-theme .el-table::before { + left: 0; + bottom: 0; + width: 100%; + height: 1px; +} +.custom-theme .el-table--border { + border-right: none; + border-bottom: none; +} +.custom-theme .el-table--border td, +.custom-theme .el-table--border th { + border-right: 1px solid #e6ebf5; +} +.custom-theme .el-table--border td:first-child .cell, +.custom-theme .el-table--border th:first-child .cell { + padding-left: 10px; +} +.custom-theme .el-table--border .has-gutter td:nth-last-of-type(2), +.custom-theme .el-table--border .has-gutter th:nth-last-of-type(2) { + border-right: none; +} +.custom-theme .el-table--border th.gutter:last-of-type { + border-bottom: 1px solid #e6ebf5; + border-bottom-width: 1px; +} +.custom-theme .el-table--border th { + border-bottom: 1px solid #e6ebf5; +} +.custom-theme .el-table--hidden { + visibility: hidden; +} +.custom-theme .el-table__fixed, +.custom-theme .el-table__fixed-right { + position: absolute; + top: 0; + left: 0; + overflow-x: hidden; + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.12); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.12); +} +.custom-theme .el-table__fixed-right::before, +.custom-theme .el-table__fixed::before { + content: ''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 1px; + background-color: #e6ebf5; + z-index: 4; +} +.custom-theme .el-table__fixed-right-patch { + position: absolute; + top: -1px; + right: 0; + background-color: #fff; + border-bottom: 1px solid #e6ebf5; +} +.custom-theme .el-table__fixed-right { + top: 0; + left: auto; + right: 0; +} +.custom-theme .el-table__fixed-right .el-table__fixed-body-wrapper, +.custom-theme .el-table__fixed-right .el-table__fixed-footer-wrapper, +.custom-theme .el-table__fixed-right .el-table__fixed-header-wrapper { + left: auto; + right: 0; +} +.custom-theme .el-table__fixed-header-wrapper { + position: absolute; + left: 0; + top: 0; + z-index: 3; +} +.custom-theme .el-table__fixed-footer-wrapper { + position: absolute; + left: 0; + bottom: 0; + z-index: 3; +} +.custom-theme .el-table__fixed-footer-wrapper tbody td { + border-top: 1px solid #e6ebf5; + background-color: #f5f7fa; + color: #5a5e66; +} +.custom-theme .el-table__fixed-body-wrapper { + position: absolute; + left: 0; + top: 37px; + overflow: hidden; + z-index: 3; +} +.custom-theme .el-table__body-wrapper, +.custom-theme .el-table__footer-wrapper, +.custom-theme .el-table__header-wrapper { + width: 100%; +} +.custom-theme .el-table__footer-wrapper { + margin-top: -1px; +} +.custom-theme .el-table__footer-wrapper td { + border-top: 1px solid #e6ebf5; +} +.custom-theme .el-table__body, +.custom-theme .el-table__footer, +.custom-theme .el-table__header { + table-layout: fixed; +} +.custom-theme .el-table__footer-wrapper, +.custom-theme .el-table__header-wrapper { + overflow: hidden; +} +.custom-theme .el-table__footer-wrapper tbody td, +.custom-theme .el-table__header-wrapper tbody td { + background-color: #f5f7fa; + color: #5a5e66; +} +.custom-theme .el-table__body-wrapper { + overflow: auto; + position: relative; +} +.custom-theme .el-table__body-wrapper.is-scroll-none ~ .el-table__fixed, +.custom-theme .el-table__body-wrapper.is-scroll-none ~ .el-table__fixed-right { + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme .el-table__body-wrapper.is-scroll-left ~ .el-table__fixed { + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme .el-table__body-wrapper.is-scroll-right ~ .el-table__fixed-right { + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme + .el-table__body-wrapper + .el-table--border.is-scroll-right + ~ .el-table__fixed-right { + border-left: 1px solid #e6ebf5; +} +.custom-theme + .el-table__body-wrapper + .el-table--border.is-scroll-left + ~ .el-table__fixed { + border-right: 1px solid #e6ebf5; +} +.custom-theme .el-table .caret-wrapper { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 13px; + width: 24px; + cursor: pointer; + overflow: initial; +} +.custom-theme .el-table .sort-caret { + color: #0a76a4; + width: 14px; + overflow: hidden; + font-size: 13px; +} +.custom-theme .el-table .ascending .sort-caret.ascending { + color: #262729; +} +.custom-theme .el-table .descending .sort-caret.descending { + color: #262729; +} +.custom-theme .el-table .hidden-columns { + visibility: hidden; + position: absolute; + z-index: -1; +} +.custom-theme .el-table--striped .el-table__body tr.el-table__row--striped td { + background: #fafafa; +} +.custom-theme + .el-table--striped + .el-table__body + tr.el-table__row--striped.current-row + td { + background-color: #e9e9ea; +} +.custom-theme .el-table__body tr.hover-row.current-row > td, +.custom-theme + .el-table__body + tr.hover-row.el-table__row--striped.current-row + > td, +.custom-theme .el-table__body tr.hover-row.el-table__row--striped > td, +.custom-theme .el-table__body tr.hover-row > td { + background-color: #e9e9ea; +} +.custom-theme .el-table__body tr.current-row > td { + background-color: #e9e9ea; +} +.custom-theme .el-table__column-resize-proxy { + position: absolute; + left: 200px; + top: 0; + bottom: 0; + width: 0; + border-left: 1px solid #e6ebf5; + z-index: 10; +} +.custom-theme .el-table__column-filter-trigger { + display: inline-block; + line-height: 34px; + cursor: pointer; +} +.custom-theme .el-table__column-filter-trigger i { + color: #0a76a4; + font-size: 12px; + -webkit-transform: scale(0.75); + transform: scale(0.75); +} +.custom-theme .el-table--enable-row-transition .el-table__body td { + -webkit-transition: background-color 0.25s ease; + transition: background-color 0.25s ease; +} +.custom-theme .el-table--enable-row-hover .el-table__body tr:hover > td { + background-color: #f5f7fa; +} +.custom-theme .el-table--fluid-height .el-table__fixed, +.custom-theme .el-table--fluid-height .el-table__fixed-right { + bottom: 0; + overflow: hidden; +} +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--small + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--mini + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled + .el-checkbox__inner + + .el-checkbox__label { + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-checked + .el-checkbox__inner::after { + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s + cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} +.custom-theme .el-checkbox-group { + font-size: 0; +} +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} +.custom-theme .el-tag .el-icon-close::before { + display: block; +} +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} +.custom-theme .el-table-column--selection .cell { + padding-left: 14px; + padding-right: 14px; +} +.custom-theme .el-table-filter { + border: solid 1px #e6ebf5; + border-radius: 2px; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 2px 0; +} +.custom-theme .el-table-filter__list { + padding: 5px 0; + margin: 0; + list-style: none; + min-width: 100px; +} +.custom-theme .el-table-filter__list-item { + line-height: 36px; + padding: 0 10px; + cursor: pointer; + font-size: 14px; +} +.custom-theme .el-table-filter__list-item:hover { + background-color: #e9e9ea; + color: #515254; +} +.custom-theme .el-table-filter__list-item.is-active { + background-color: #262729; + color: #fff; +} +.custom-theme .el-table-filter__content { + min-width: 100px; +} +.custom-theme .el-table-filter__bottom { + border-top: 1px solid #e6ebf5; + padding: 8px; +} +.custom-theme .el-table-filter__bottom button { + background: 0 0; + border: none; + color: #5a5e66; + cursor: pointer; + font-size: 13px; + padding: 0 3px; +} +.custom-theme .el-table-filter__bottom button:hover { + color: #262729; +} +.custom-theme .el-table-filter__bottom button:focus { + outline: 0; +} +.custom-theme .el-table-filter__bottom button.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-table-filter__checkbox-group { + padding: 10px; +} +.custom-theme .el-table-filter__checkbox-group label.el-checkbox { + display: block; + margin-bottom: 8px; + margin-left: 5px; +} +.custom-theme .el-table-filter__checkbox-group .el-checkbox:last-child { + margin-bottom: 0; +} +.custom-theme .el-date-table { + font-size: 12px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover div { + background-color: #edf2fc; +} +.custom-theme + .el-date-table.is-week-mode + .el-date-table__row:hover + td.available:hover { + color: #5a5e66; +} +.custom-theme + .el-date-table.is-week-mode + .el-date-table__row:hover + td:first-child + div { + margin-left: 5px; + border-top-left-radius: 15px; + border-bottom-left-radius: 15px; +} +.custom-theme + .el-date-table.is-week-mode + .el-date-table__row:hover + td:last-child + div { + margin-right: 5px; + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; +} +.custom-theme .el-date-table.is-week-mode .el-date-table__row.current div { + background-color: #edf2fc; +} +.custom-theme .el-date-table td { + width: 32px; + height: 30px; + padding: 4px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + cursor: pointer; + position: relative; +} +.custom-theme .el-date-table td div { + height: 30px; + padding: 3px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-date-table td span { + width: 24px; + height: 24px; + display: block; + margin: 0 auto; + line-height: 24px; + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + border-radius: 50%; +} +.custom-theme .el-date-table td.next-month, +.custom-theme .el-date-table td.prev-month { + color: #b4bccc; +} +.custom-theme .el-date-table td.today { + position: relative; +} +.custom-theme .el-date-table td.today span { + color: #262729; +} +.custom-theme .el-date-table td.today.end-date span, +.custom-theme .el-date-table td.today.start-date span { + color: #fff; +} +.custom-theme .el-date-table td.available:hover { + color: #262729; +} +.custom-theme .el-date-table td.in-range div { + background-color: #edf2fc; +} +.custom-theme .el-date-table td.in-range div:hover { + background-color: #edf2fc; +} +.custom-theme .el-date-table td.current:not(.disabled) span { + color: #fff; + background-color: #262729; +} +.custom-theme .el-date-table td.end-date div, +.custom-theme .el-date-table td.start-date div { + color: #fff; +} +.custom-theme .el-date-table td.end-date span, +.custom-theme .el-date-table td.start-date span { + background-color: #262729; +} +.custom-theme .el-date-table td.start-date div { + margin-left: 5px; + border-top-left-radius: 15px; + border-bottom-left-radius: 15px; +} +.custom-theme .el-date-table td.end-date div { + margin-right: 5px; + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; +} +.custom-theme .el-date-table td.disabled div { + background-color: #f5f7fa; + opacity: 1; + cursor: not-allowed; + color: #b4bccc; +} +.custom-theme .el-date-table td.week { + font-size: 80%; + color: #5a5e66; +} +.custom-theme .el-date-table th { + padding: 5px; + color: #5a5e66; + font-weight: 400; + border-bottom: solid 1px #e6ebf5; +} +.custom-theme .el-month-table { + font-size: 12px; + margin: -1px; + border-collapse: collapse; +} +.custom-theme .el-month-table td { + text-align: center; + padding: 20px 3px; + cursor: pointer; +} +.custom-theme .el-month-table td.disabled .cell { + background-color: #f5f7fa; + cursor: not-allowed; + color: #b4bccc; +} +.custom-theme .el-month-table td.disabled .cell:hover { + color: #b4bccc; +} +.custom-theme .el-month-table td .cell { + width: 48px; + height: 32px; + display: block; + line-height: 32px; + color: #5a5e66; + margin: 0 auto; +} +.custom-theme .el-month-table td .cell:hover { + color: #262729; +} +.custom-theme .el-month-table td.current:not(.disabled) .cell { + color: #262729; +} +.custom-theme .el-year-table { + font-size: 12px; + margin: -1px; + border-collapse: collapse; +} +.custom-theme .el-year-table .el-icon { + color: #2d2f33; +} +.custom-theme .el-year-table td { + text-align: center; + padding: 20px 3px; + cursor: pointer; +} +.custom-theme .el-year-table td.disabled .cell { + background-color: #f5f7fa; + cursor: not-allowed; + color: #b4bccc; +} +.custom-theme .el-year-table td.disabled .cell:hover { + color: #b4bccc; +} +.custom-theme .el-year-table td .cell { + width: 48px; + height: 32px; + display: block; + line-height: 32px; + color: #5a5e66; + margin: 0 auto; +} +.custom-theme .el-year-table td .cell:hover { + color: #262729; +} +.custom-theme .el-year-table td.current:not(.disabled) .cell { + color: #262729; +} +.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper { + width: 33.3%; +} +.custom-theme + .el-time-spinner.has-seconds + .el-time-spinner__wrapper:nth-child(2) { + margin-left: 1%; +} +.custom-theme .el-time-spinner__wrapper { + max-height: 190px; + overflow: auto; + display: inline-block; + width: 50%; + vertical-align: top; + position: relative; +} +.custom-theme + .el-time-spinner__wrapper + .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) { + padding-bottom: 15px; +} +.custom-theme .el-time-spinner__wrapper.is-arrow { + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + overflow: hidden; +} +.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list { + -webkit-transform: translateY(-32px); + transform: translateY(-32px); +} +.custom-theme + .el-time-spinner__wrapper.is-arrow + .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #fff; + cursor: default; +} +.custom-theme .el-time-spinner__arrow { + font-size: 12px; + color: #878d99; + position: absolute; + left: 0; + width: 100%; + z-index: 1; + text-align: center; + height: 30px; + line-height: 30px; + cursor: pointer; +} +.custom-theme .el-time-spinner__arrow:hover { + color: #262729; +} +.custom-theme .el-time-spinner__arrow.el-icon-arrow-up { + top: 10px; +} +.custom-theme .el-time-spinner__arrow.el-icon-arrow-down { + bottom: 10px; +} +.custom-theme .el-time-spinner__input.el-input { + width: 70%; +} +.custom-theme .el-time-spinner__input.el-input .el-input__inner { + padding: 0; + text-align: center; +} +.custom-theme .el-time-spinner__list { + padding: 0; + margin: 0; + list-style: none; + text-align: center; +} +.custom-theme .el-time-spinner__list::after, +.custom-theme .el-time-spinner__list::before { + content: ''; + display: block; + width: 100%; + height: 80px; +} +.custom-theme .el-time-spinner__item { + height: 32px; + line-height: 32px; + font-size: 12px; + color: #5a5e66; +} +.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #f5f7fa; + cursor: pointer; +} +.custom-theme .el-time-spinner__item.active:not(.disabled) { + color: #2d2f33; + font-weight: 700; +} +.custom-theme .el-time-spinner__item.disabled { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; +} +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; +} +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-date-editor { + position: relative; + display: inline-block; + text-align: left; +} +.custom-theme .el-date-editor.el-input, +.custom-theme .el-date-editor.el-input__inner { + width: 220px; +} +.custom-theme .el-date-editor--daterange.el-input, +.custom-theme .el-date-editor--daterange.el-input__inner, +.custom-theme .el-date-editor--timerange.el-input, +.custom-theme .el-date-editor--timerange.el-input__inner { + width: 350px; +} +.custom-theme .el-date-editor--datetimerange.el-input, +.custom-theme .el-date-editor--datetimerange.el-input__inner { + width: 400px; +} +.custom-theme .el-date-editor .el-range__icon { + font-size: 14px; + margin-left: -5px; + color: #b4bccc; + float: left; + line-height: 32px; +} +.custom-theme .el-date-editor .el-range-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + display: inline-block; + height: 100%; + margin: 0; + padding: 0; + width: 39%; + text-align: center; + font-size: 14px; + color: #5a5e66; +} +.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input::placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-separator { + display: inline-block; + height: 100%; + padding: 0 5px; + margin: 0; + text-align: center; + line-height: 32px; + font-size: 14px; + width: 5%; + color: #2d2f33; +} +.custom-theme .el-date-editor .el-range__close-icon { + font-size: 14px; + color: #b4bccc; + width: 25px; + display: inline-block; + float: right; + line-height: 32px; +} +.custom-theme .el-range-editor.el-input__inner { + padding: 3px 10px; +} +.custom-theme .el-range-editor.is-active { + border-color: #262729; +} +.custom-theme .el-range-editor.is-active:hover { + border-color: #262729; +} +.custom-theme .el-range-editor--medium.el-input__inner { + height: 36px; +} +.custom-theme .el-range-editor--medium .el-range-separator { + line-height: 28px; + font-size: 14px; +} +.custom-theme .el-range-editor--medium .el-range-input { + font-size: 14px; +} +.custom-theme .el-range-editor--medium .el-range__close-icon, +.custom-theme .el-range-editor--medium .el-range__icon { + line-height: 28px; +} +.custom-theme .el-range-editor--small.el-input__inner { + height: 32px; +} +.custom-theme .el-range-editor--small .el-range-separator { + line-height: 24px; + font-size: 13px; +} +.custom-theme .el-range-editor--small .el-range-input { + font-size: 13px; +} +.custom-theme .el-range-editor--small .el-range__close-icon, +.custom-theme .el-range-editor--small .el-range__icon { + line-height: 24px; +} +.custom-theme .el-range-editor--mini.el-input__inner { + height: 28px; +} +.custom-theme .el-range-editor--mini .el-range-separator { + line-height: 20px; + font-size: 12px; +} +.custom-theme .el-range-editor--mini .el-range-input { + font-size: 12px; +} +.custom-theme .el-range-editor--mini .el-range__close-icon, +.custom-theme .el-range-editor--mini .el-range__icon { + line-height: 20px; +} +.custom-theme .el-range-editor.is-disabled { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-range-editor.is-disabled:focus, +.custom-theme .el-range-editor.is-disabled:hover { + border-color: #dfe4ed; +} +.custom-theme .el-range-editor.is-disabled input { + background-color: #f5f7fa; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input::placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled .el-range-separator { + color: #b4bccc; +} +.custom-theme .el-picker-panel { + color: #5a5e66; + border: 1px solid #dfe4ed; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + background: #fff; + border-radius: 4px; + line-height: 30px; + margin: 5px 0; +} +.custom-theme .el-picker-panel__body-wrapper::after, +.custom-theme .el-picker-panel__body::after { + content: ''; + display: table; + clear: both; +} +.custom-theme .el-picker-panel__content { + position: relative; + margin: 15px; +} +.custom-theme .el-picker-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + text-align: right; + background-color: #fff; + position: relative; + font-size: 0; +} +.custom-theme .el-picker-panel__shortcut { + display: block; + width: 100%; + border: 0; + background-color: transparent; + line-height: 28px; + font-size: 14px; + color: #5a5e66; + padding-left: 12px; + text-align: left; + outline: 0; + cursor: pointer; +} +.custom-theme .el-picker-panel__shortcut:hover { + color: #262729; +} +.custom-theme .el-picker-panel__shortcut.active { + background-color: #e6f1fe; + color: #262729; +} +.custom-theme .el-picker-panel__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; +} +.custom-theme .el-picker-panel__btn[disabled] { + color: #ccc; + cursor: not-allowed; +} +.custom-theme .el-picker-panel__icon-btn { + font-size: 12px; + color: #2d2f33; + border: 0; + background: 0 0; + cursor: pointer; + outline: 0; + margin-top: 8px; +} +.custom-theme .el-picker-panel__icon-btn:hover { + color: #262729; +} +.custom-theme .el-picker-panel__icon-btn.is-disabled { + color: #bbb; +} +.custom-theme .el-picker-panel__icon-btn.is-disabled:hover { + cursor: not-allowed; +} +.custom-theme .el-picker-panel__link-btn { + vertical-align: middle; +} +.custom-theme .el-picker-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} +.custom-theme .el-picker-panel [slot='sidebar'], +.custom-theme .el-picker-panel__sidebar { + position: absolute; + top: 0; + bottom: 0; + width: 110px; + border-right: 1px solid #e4e4e4; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + background-color: #fff; + overflow: auto; +} +.custom-theme .el-picker-panel [slot='sidebar'] + .el-picker-panel__body, +.custom-theme .el-picker-panel__sidebar + .el-picker-panel__body { + margin-left: 110px; +} +.custom-theme .el-date-picker { + width: 322px; +} +.custom-theme .el-date-picker.has-sidebar.has-time { + width: 434px; +} +.custom-theme .el-date-picker.has-sidebar { + width: 438px; +} +.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper { + position: relative; +} +.custom-theme .el-date-picker .el-picker-panel__content { + width: 292px; +} +.custom-theme .el-date-picker table { + table-layout: fixed; + width: 100%; +} +.custom-theme .el-date-picker__editor-wrap { + position: relative; + display: table-cell; + padding: 0 5px; +} +.custom-theme .el-date-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-date-picker__header { + margin: 12px; + text-align: center; +} +.custom-theme .el-date-picker__header--bordered { + margin-bottom: 0; + padding-bottom: 12px; + border-bottom: solid 1px #e6ebf5; +} +.custom-theme .el-date-picker__header--bordered + .el-picker-panel__content { + margin-top: 0; +} +.custom-theme .el-date-picker__header-label { + font-size: 16px; + font-weight: 500; + padding: 0 5px; + line-height: 22px; + text-align: center; + cursor: pointer; + color: #5a5e66; +} +.custom-theme .el-date-picker__header-label:hover { + color: #262729; +} +.custom-theme .el-date-picker__header-label.active { + color: #262729; +} +.custom-theme .el-date-picker__prev-btn { + float: left; +} +.custom-theme .el-date-picker__next-btn { + float: right; +} +.custom-theme .el-date-picker__time-wrap { + padding: 10px; + text-align: center; +} +.custom-theme .el-date-picker__time-label { + float: left; + cursor: pointer; + line-height: 30px; + margin-left: 10px; +} +.custom-theme .el-date-range-picker { + width: 646px; +} +.custom-theme .el-date-range-picker.has-sidebar { + width: 756px; +} +.custom-theme .el-date-range-picker table { + table-layout: fixed; + width: 100%; +} +.custom-theme .el-date-range-picker .el-picker-panel__body { + min-width: 513px; +} +.custom-theme .el-date-range-picker .el-picker-panel__content { + margin: 0; +} +.custom-theme .el-date-range-picker__header { + position: relative; + text-align: center; + height: 28px; +} +.custom-theme .el-date-range-picker__header [class*='arrow-left'] { + float: left; +} +.custom-theme .el-date-range-picker__header [class*='arrow-right'] { + float: right; +} +.custom-theme .el-date-range-picker__header div { + font-size: 16px; + font-weight: 500; + margin-right: 50px; +} +.custom-theme .el-date-range-picker__content { + float: left; + width: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 16px; +} +.custom-theme .el-date-range-picker__content.is-left { + border-right: 1px solid #e4e4e4; +} +.custom-theme + .el-date-range-picker__content.is-right + .el-date-range-picker__header + div { + margin-left: 50px; + margin-right: 50px; +} +.custom-theme .el-date-range-picker__editors-wrap { + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: table-cell; +} +.custom-theme .el-date-range-picker__editors-wrap.is-right { + text-align: right; +} +.custom-theme .el-date-range-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-date-range-picker__time-header > .el-icon-arrow-right { + font-size: 20px; + vertical-align: middle; + display: table-cell; + color: #2d2f33; +} +.custom-theme .el-date-range-picker__time-picker-wrap { + position: relative; + display: table-cell; + padding: 0 5px; +} +.custom-theme .el-date-range-picker__time-picker-wrap .el-picker-panel { + position: absolute; + top: 13px; + right: 0; + z-index: 1; + background: #fff; +} +.custom-theme .el-time-range-picker { + width: 354px; + overflow: visible; +} +.custom-theme .el-time-range-picker__content { + position: relative; + text-align: center; + padding: 10px; +} +.custom-theme .el-time-range-picker__cell { + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 4px 7px 7px; + width: 50%; + display: inline-block; +} +.custom-theme .el-time-range-picker__header { + margin-bottom: 5px; + text-align: center; + font-size: 14px; +} +.custom-theme .el-time-range-picker__body { + border-radius: 2px; + border: 1px solid #dfe4ed; +} +.custom-theme .el-time-panel { + margin: 5px 0; + border: solid 1px #dfe4ed; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 2px; + position: absolute; + width: 180px; + left: 0; + z-index: 1000; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-time-panel__content { + font-size: 0; + position: relative; + overflow: hidden; +} +.custom-theme .el-time-panel__content::after, +.custom-theme .el-time-panel__content::before { + content: ''; + top: 50%; + position: absolute; + margin-top: -15px; + height: 32px; + z-index: -1; + left: 0; + right: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + text-align: left; + border-top: 1px solid #dfe4ed; + border-bottom: 1px solid #dfe4ed; +} +.custom-theme .el-time-panel__content::after { + left: 50%; + margin-left: 12%; + margin-right: 12%; +} +.custom-theme .el-time-panel__content::before { + padding-left: 50%; + margin-right: 12%; + margin-left: 12%; +} +.custom-theme .el-time-panel__content.has-seconds::after { + left: calc(100% / 3 * 2); +} +.custom-theme .el-time-panel__content.has-seconds::before { + padding-left: calc(100% / 3); +} +.custom-theme .el-time-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + height: 36px; + line-height: 25px; + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-time-panel__btn { + border: none; + line-height: 28px; + padding: 0 5px; + margin: 0 5px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; + color: #2d2f33; +} +.custom-theme .el-time-panel__btn.confirm { + font-weight: 800; + color: #262729; +} +.custom-theme .el-time-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; +} +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; +} +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-date-editor { + position: relative; + display: inline-block; + text-align: left; +} +.custom-theme .el-date-editor.el-input, +.custom-theme .el-date-editor.el-input__inner { + width: 220px; +} +.custom-theme .el-date-editor--daterange.el-input, +.custom-theme .el-date-editor--daterange.el-input__inner, +.custom-theme .el-date-editor--timerange.el-input, +.custom-theme .el-date-editor--timerange.el-input__inner { + width: 350px; +} +.custom-theme .el-date-editor--datetimerange.el-input, +.custom-theme .el-date-editor--datetimerange.el-input__inner { + width: 400px; +} +.custom-theme .el-date-editor .el-range__icon { + font-size: 14px; + margin-left: -5px; + color: #b4bccc; + float: left; + line-height: 32px; +} +.custom-theme .el-date-editor .el-range-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + display: inline-block; + height: 100%; + margin: 0; + padding: 0; + width: 39%; + text-align: center; + font-size: 14px; + color: #5a5e66; +} +.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input::placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-separator { + display: inline-block; + height: 100%; + padding: 0 5px; + margin: 0; + text-align: center; + line-height: 32px; + font-size: 14px; + width: 5%; + color: #2d2f33; +} +.custom-theme .el-date-editor .el-range__close-icon { + font-size: 14px; + color: #b4bccc; + width: 25px; + display: inline-block; + float: right; + line-height: 32px; +} +.custom-theme .el-range-editor.el-input__inner { + padding: 3px 10px; +} +.custom-theme .el-range-editor.is-active { + border-color: #262729; +} +.custom-theme .el-range-editor.is-active:hover { + border-color: #262729; +} +.custom-theme .el-range-editor--medium.el-input__inner { + height: 36px; +} +.custom-theme .el-range-editor--medium .el-range-separator { + line-height: 28px; + font-size: 14px; +} +.custom-theme .el-range-editor--medium .el-range-input { + font-size: 14px; +} +.custom-theme .el-range-editor--medium .el-range__close-icon, +.custom-theme .el-range-editor--medium .el-range__icon { + line-height: 28px; +} +.custom-theme .el-range-editor--small.el-input__inner { + height: 32px; +} +.custom-theme .el-range-editor--small .el-range-separator { + line-height: 24px; + font-size: 13px; +} +.custom-theme .el-range-editor--small .el-range-input { + font-size: 13px; +} +.custom-theme .el-range-editor--small .el-range__close-icon, +.custom-theme .el-range-editor--small .el-range__icon { + line-height: 24px; +} +.custom-theme .el-range-editor--mini.el-input__inner { + height: 28px; +} +.custom-theme .el-range-editor--mini .el-range-separator { + line-height: 20px; + font-size: 12px; +} +.custom-theme .el-range-editor--mini .el-range-input { + font-size: 12px; +} +.custom-theme .el-range-editor--mini .el-range__close-icon, +.custom-theme .el-range-editor--mini .el-range__icon { + line-height: 20px; +} +.custom-theme .el-range-editor.is-disabled { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-range-editor.is-disabled:focus, +.custom-theme .el-range-editor.is-disabled:hover { + border-color: #dfe4ed; +} +.custom-theme .el-range-editor.is-disabled input { + background-color: #f5f7fa; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input::placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled .el-range-separator { + color: #b4bccc; +} +.custom-theme .el-picker-panel { + color: #5a5e66; + border: 1px solid #dfe4ed; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + background: #fff; + border-radius: 4px; + line-height: 30px; + margin: 5px 0; +} +.custom-theme .el-picker-panel__body-wrapper::after, +.custom-theme .el-picker-panel__body::after { + content: ''; + display: table; + clear: both; +} +.custom-theme .el-picker-panel__content { + position: relative; + margin: 15px; +} +.custom-theme .el-picker-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + text-align: right; + background-color: #fff; + position: relative; + font-size: 0; +} +.custom-theme .el-picker-panel__shortcut { + display: block; + width: 100%; + border: 0; + background-color: transparent; + line-height: 28px; + font-size: 14px; + color: #5a5e66; + padding-left: 12px; + text-align: left; + outline: 0; + cursor: pointer; +} +.custom-theme .el-picker-panel__shortcut:hover { + color: #262729; +} +.custom-theme .el-picker-panel__shortcut.active { + background-color: #e6f1fe; + color: #262729; +} +.custom-theme .el-picker-panel__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; +} +.custom-theme .el-picker-panel__btn[disabled] { + color: #ccc; + cursor: not-allowed; +} +.custom-theme .el-picker-panel__icon-btn { + font-size: 12px; + color: #2d2f33; + border: 0; + background: 0 0; + cursor: pointer; + outline: 0; + margin-top: 8px; +} +.custom-theme .el-picker-panel__icon-btn:hover { + color: #262729; +} +.custom-theme .el-picker-panel__icon-btn.is-disabled { + color: #bbb; +} +.custom-theme .el-picker-panel__icon-btn.is-disabled:hover { + cursor: not-allowed; +} +.custom-theme .el-picker-panel__link-btn { + vertical-align: middle; +} +.custom-theme .el-picker-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} +.custom-theme .el-picker-panel [slot='sidebar'], +.custom-theme .el-picker-panel__sidebar { + position: absolute; + top: 0; + bottom: 0; + width: 110px; + border-right: 1px solid #e4e4e4; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + background-color: #fff; + overflow: auto; +} +.custom-theme .el-picker-panel [slot='sidebar'] + .el-picker-panel__body, +.custom-theme .el-picker-panel__sidebar + .el-picker-panel__body { + margin-left: 110px; +} +.custom-theme .el-date-picker { + width: 322px; +} +.custom-theme .el-date-picker.has-sidebar.has-time { + width: 434px; +} +.custom-theme .el-date-picker.has-sidebar { + width: 438px; +} +.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper { + position: relative; +} +.custom-theme .el-date-picker .el-picker-panel__content { + width: 292px; +} +.custom-theme .el-date-picker table { + table-layout: fixed; + width: 100%; +} +.custom-theme .el-date-picker__editor-wrap { + position: relative; + display: table-cell; + padding: 0 5px; +} +.custom-theme .el-date-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-date-picker__header { + margin: 12px; + text-align: center; +} +.custom-theme .el-date-picker__header--bordered { + margin-bottom: 0; + padding-bottom: 12px; + border-bottom: solid 1px #e6ebf5; +} +.custom-theme .el-date-picker__header--bordered + .el-picker-panel__content { + margin-top: 0; +} +.custom-theme .el-date-picker__header-label { + font-size: 16px; + font-weight: 500; + padding: 0 5px; + line-height: 22px; + text-align: center; + cursor: pointer; + color: #5a5e66; +} +.custom-theme .el-date-picker__header-label:hover { + color: #262729; +} +.custom-theme .el-date-picker__header-label.active { + color: #262729; +} +.custom-theme .el-date-picker__prev-btn { + float: left; +} +.custom-theme .el-date-picker__next-btn { + float: right; +} +.custom-theme .el-date-picker__time-wrap { + padding: 10px; + text-align: center; +} +.custom-theme .el-date-picker__time-label { + float: left; + cursor: pointer; + line-height: 30px; + margin-left: 10px; +} +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .time-select { + margin: 5px 0; + min-width: 0; +} +.custom-theme .time-select .el-picker-panel__content { + max-height: 200px; + margin: 0; +} +.custom-theme .time-select-item { + padding: 8px 10px; + font-size: 14px; + line-height: 20px; +} +.custom-theme .time-select-item.selected:not(.disabled) { + color: #262729; + font-weight: 700; +} +.custom-theme .time-select-item.disabled { + color: #dfe4ed; + cursor: not-allowed; +} +.custom-theme .time-select-item:hover { + background-color: #f5f7fa; + font-weight: 700; + cursor: pointer; +} +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; +} +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; +} +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} +.custom-theme .el-date-editor { + position: relative; + display: inline-block; + text-align: left; +} +.custom-theme .el-date-editor.el-input, +.custom-theme .el-date-editor.el-input__inner { + width: 220px; +} +.custom-theme .el-date-editor--daterange.el-input, +.custom-theme .el-date-editor--daterange.el-input__inner, +.custom-theme .el-date-editor--timerange.el-input, +.custom-theme .el-date-editor--timerange.el-input__inner { + width: 350px; +} +.custom-theme .el-date-editor--datetimerange.el-input, +.custom-theme .el-date-editor--datetimerange.el-input__inner { + width: 400px; +} +.custom-theme .el-date-editor .el-range__icon { + font-size: 14px; + margin-left: -5px; + color: #b4bccc; + float: left; + line-height: 32px; +} +.custom-theme .el-date-editor .el-range-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + display: inline-block; + height: 100%; + margin: 0; + padding: 0; + width: 39%; + text-align: center; + font-size: 14px; + color: #5a5e66; +} +.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-input::placeholder { + color: #b4bccc; +} +.custom-theme .el-date-editor .el-range-separator { + display: inline-block; + height: 100%; + padding: 0 5px; + margin: 0; + text-align: center; + line-height: 32px; + font-size: 14px; + width: 5%; + color: #2d2f33; +} +.custom-theme .el-date-editor .el-range__close-icon { + font-size: 14px; + color: #b4bccc; + width: 25px; + display: inline-block; + float: right; + line-height: 32px; +} +.custom-theme .el-range-editor.el-input__inner { + padding: 3px 10px; +} +.custom-theme .el-range-editor.is-active { + border-color: #262729; +} +.custom-theme .el-range-editor.is-active:hover { + border-color: #262729; +} +.custom-theme .el-range-editor--medium.el-input__inner { + height: 36px; +} +.custom-theme .el-range-editor--medium .el-range-separator { + line-height: 28px; + font-size: 14px; +} +.custom-theme .el-range-editor--medium .el-range-input { + font-size: 14px; +} +.custom-theme .el-range-editor--medium .el-range__close-icon, +.custom-theme .el-range-editor--medium .el-range__icon { + line-height: 28px; +} +.custom-theme .el-range-editor--small.el-input__inner { + height: 32px; +} +.custom-theme .el-range-editor--small .el-range-separator { + line-height: 24px; + font-size: 13px; +} +.custom-theme .el-range-editor--small .el-range-input { + font-size: 13px; +} +.custom-theme .el-range-editor--small .el-range__close-icon, +.custom-theme .el-range-editor--small .el-range__icon { + line-height: 24px; +} +.custom-theme .el-range-editor--mini.el-input__inner { + height: 28px; +} +.custom-theme .el-range-editor--mini .el-range-separator { + line-height: 20px; + font-size: 12px; +} +.custom-theme .el-range-editor--mini .el-range-input { + font-size: 12px; +} +.custom-theme .el-range-editor--mini .el-range__close-icon, +.custom-theme .el-range-editor--mini .el-range__icon { + line-height: 20px; +} +.custom-theme .el-range-editor.is-disabled { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-range-editor.is-disabled:focus, +.custom-theme .el-range-editor.is-disabled:hover { + border-color: #dfe4ed; +} +.custom-theme .el-range-editor.is-disabled input { + background-color: #f5f7fa; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled input::placeholder { + color: #b4bccc; +} +.custom-theme .el-range-editor.is-disabled .el-range-separator { + color: #b4bccc; +} +.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper { + width: 33.3%; +} +.custom-theme + .el-time-spinner.has-seconds + .el-time-spinner__wrapper:nth-child(2) { + margin-left: 1%; +} +.custom-theme .el-time-spinner__wrapper { + max-height: 190px; + overflow: auto; + display: inline-block; + width: 50%; + vertical-align: top; + position: relative; +} +.custom-theme + .el-time-spinner__wrapper + .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) { + padding-bottom: 15px; +} +.custom-theme .el-time-spinner__wrapper.is-arrow { + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + overflow: hidden; +} +.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list { + -webkit-transform: translateY(-32px); + transform: translateY(-32px); +} +.custom-theme + .el-time-spinner__wrapper.is-arrow + .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #fff; + cursor: default; +} +.custom-theme .el-time-spinner__arrow { + font-size: 12px; + color: #878d99; + position: absolute; + left: 0; + width: 100%; + z-index: 1; + text-align: center; + height: 30px; + line-height: 30px; + cursor: pointer; +} +.custom-theme .el-time-spinner__arrow:hover { + color: #262729; +} +.custom-theme .el-time-spinner__arrow.el-icon-arrow-up { + top: 10px; +} +.custom-theme .el-time-spinner__arrow.el-icon-arrow-down { + bottom: 10px; +} +.custom-theme .el-time-spinner__input.el-input { + width: 70%; +} +.custom-theme .el-time-spinner__input.el-input .el-input__inner { + padding: 0; + text-align: center; +} +.custom-theme .el-time-spinner__list { + padding: 0; + margin: 0; + list-style: none; + text-align: center; +} +.custom-theme .el-time-spinner__list::after, +.custom-theme .el-time-spinner__list::before { + content: ''; + display: block; + width: 100%; + height: 80px; +} +.custom-theme .el-time-spinner__item { + height: 32px; + line-height: 32px; + font-size: 12px; + color: #5a5e66; +} +.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #f5f7fa; + cursor: pointer; +} +.custom-theme .el-time-spinner__item.active:not(.disabled) { + color: #2d2f33; + font-weight: 700; +} +.custom-theme .el-time-spinner__item.disabled { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-time-panel { + margin: 5px 0; + border: solid 1px #dfe4ed; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 2px; + position: absolute; + width: 180px; + left: 0; + z-index: 1000; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-time-panel__content { + font-size: 0; + position: relative; + overflow: hidden; +} +.custom-theme .el-time-panel__content::after, +.custom-theme .el-time-panel__content::before { + content: ''; + top: 50%; + position: absolute; + margin-top: -15px; + height: 32px; + z-index: -1; + left: 0; + right: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + text-align: left; + border-top: 1px solid #dfe4ed; + border-bottom: 1px solid #dfe4ed; +} +.custom-theme .el-time-panel__content::after { + left: 50%; + margin-left: 12%; + margin-right: 12%; +} +.custom-theme .el-time-panel__content::before { + padding-left: 50%; + margin-right: 12%; + margin-left: 12%; +} +.custom-theme .el-time-panel__content.has-seconds::after { + left: calc(100% / 3 * 2); +} +.custom-theme .el-time-panel__content.has-seconds::before { + padding-left: calc(100% / 3); +} +.custom-theme .el-time-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + height: 36px; + line-height: 25px; + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-time-panel__btn { + border: none; + line-height: 28px; + padding: 0 5px; + margin: 0 5px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; + color: #2d2f33; +} +.custom-theme .el-time-panel__btn.confirm { + font-weight: 800; + color: #262729; +} +.custom-theme .el-time-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .el-popover { + position: absolute; + background: #fff; + min-width: 150px; + border-radius: 4px; + border: 1px solid #e6ebf5; + padding: 12px; + z-index: 2000; + color: #5a5e66; + line-height: 1.4; + text-align: justify; + word-break: break-all; + font-size: 14px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} +.custom-theme .el-popover--plain { + padding: 18px 20px; +} +.custom-theme .el-popover__title { + color: #2d2f33; + font-size: 16px; + line-height: 1; + margin-bottom: 12px; +} +.custom-theme .el-tooltip__popper { + position: absolute; + border-radius: 4px; + padding: 10px; + z-index: 2000; + font-size: 12px; + line-height: 1.2; +} +.custom-theme .el-tooltip__popper .popper__arrow, +.custom-theme .el-tooltip__popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-tooltip__popper .popper__arrow { + border-width: 6px; +} +.custom-theme .el-tooltip__popper .popper__arrow::after { + content: ' '; + border-width: 5px; +} +.custom-theme .el-tooltip__popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -5px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -5px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} +.custom-theme .el-tooltip__popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow { + left: -6px; + border-right-color: #2d2f33; + border-left-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow::after { + bottom: -5px; + left: 1px; + border-right-color: #2d2f33; + border-left-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow { + right: -6px; + border-right-width: 0; + border-left-color: #2d2f33; +} +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -5px; + margin-left: -5px; + border-right-width: 0; + border-left-color: #2d2f33; +} +.custom-theme .el-tooltip__popper.is-dark { + background: #2d2f33; + color: #fff; +} +.custom-theme .el-tooltip__popper.is-light { + background: #fff; + border: 1px solid #2d2f33; +} +.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow { + border-top-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='top'] + .popper__arrow::after { + border-top-color: #fff; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='bottom'] + .popper__arrow { + border-bottom-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='bottom'] + .popper__arrow::after { + border-bottom-color: #fff; +} +.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow { + border-left-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='left'] + .popper__arrow::after { + border-left-color: #fff; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='right'] + .popper__arrow { + border-right-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='right'] + .popper__arrow::after { + border-right-color: #fff; +} +.custom-theme .v-modal-enter { + -webkit-animation: v-modal-in 0.2s ease; + animation: v-modal-in 0.2s ease; +} +.custom-theme .v-modal-leave { + -webkit-animation: v-modal-out 0.2s ease forwards; + animation: v-modal-out 0.2s ease forwards; +} +@keyframes v-modal-in { + 0% { + opacity: 0; + } +} +@keyframes v-modal-out { + 100% { + opacity: 0; + } +} +.custom-theme .v-modal { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.5; + background: #000; +} +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button + .el-button { + margin-left: 10px; +} +.custom-theme .el-button.is-round { + padding: 12px 20px; +} +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} +.custom-theme .el-button-group::after { + clear: both; +} +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-message-box { + display: inline-block; + width: 420px; + padding-bottom: 10px; + vertical-align: middle; + background-color: #fff; + border-radius: 4px; + border: 1px solid #e6ebf5; + font-size: 18px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + text-align: left; + overflow: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.custom-theme .el-message-box__wrapper { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + text-align: center; +} +.custom-theme .el-message-box__wrapper::after { + content: ''; + display: inline-block; + height: 100%; + width: 0; + vertical-align: middle; +} +.custom-theme .el-message-box__header { + position: relative; + padding: 15px; + padding-bottom: 10px; +} +.custom-theme .el-message-box__title { + padding-left: 0; + margin-bottom: 0; + font-size: 18px; + line-height: 1; + color: #2d2f33; +} +.custom-theme .el-message-box__headerbtn { + position: absolute; + top: 15px; + right: 15px; + padding: 0; + border: none; + outline: 0; + background: 0 0; + font-size: 16px; + cursor: pointer; +} +.custom-theme .el-message-box__headerbtn .el-message-box__close { + color: #0a76a4; +} +.custom-theme .el-message-box__headerbtn:focus .el-message-box__close, +.custom-theme .el-message-box__headerbtn:hover .el-message-box__close { + color: #262729; +} +.custom-theme .el-message-box__content { + position: relative; + padding: 10px 15px; + color: #5a5e66; + font-size: 14px; +} +.custom-theme .el-message-box__input { + padding-top: 15px; +} +.custom-theme .el-message-box__input input.invalid { + border-color: #b3450e; +} +.custom-theme .el-message-box__input input.invalid:focus { + border-color: #b3450e; +} +.custom-theme .el-message-box__status { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 24px !important; +} +.custom-theme .el-message-box__status::before { + padding-left: 1px; +} +.custom-theme .el-message-box__status + .el-message-box__message { + padding-left: 36px; + padding-right: 12px; +} +.custom-theme .el-message-box__status.el-icon-success { + color: #409167; +} +.custom-theme .el-message-box__status.el-icon-info { + color: #0a76a4; +} +.custom-theme .el-message-box__status.el-icon-warning { + color: #9da408; +} +.custom-theme .el-message-box__status.el-icon-error { + color: #b3450e; +} +.custom-theme .el-message-box__message { + margin: 0; +} +.custom-theme .el-message-box__message p { + margin: 0; + line-height: 24px; +} +.custom-theme .el-message-box__errormsg { + color: #b3450e; + font-size: 12px; + min-height: 18px; + margin-top: 2px; +} +.custom-theme .el-message-box__btns { + padding: 5px 15px 0; + text-align: right; +} +.custom-theme .el-message-box__btns button:nth-child(2) { + margin-left: 10px; +} +.custom-theme .el-message-box__btns-reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; +} +.custom-theme .el-message-box--center { + padding-bottom: 30px; +} +.custom-theme .el-message-box--center .el-message-box__header { + padding-top: 30px; +} +.custom-theme .el-message-box--center .el-message-box__title { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.custom-theme .el-message-box--center .el-message-box__status { + position: relative; + top: auto; + padding-right: 5px; + text-align: center; + -webkit-transform: translateY(-1px); + transform: translateY(-1px); +} +.custom-theme .el-message-box--center .el-message-box__message { + margin-left: 0; +} +.custom-theme .el-message-box--center .el-message-box__btns, +.custom-theme .el-message-box--center .el-message-box__content { + text-align: center; +} +.custom-theme .el-message-box--center .el-message-box__content { + padding-left: 27px; + padding-right: 27px; +} +.custom-theme .msgbox-fade-enter-active { + -webkit-animation: msgbox-fade-in 0.3s; + animation: msgbox-fade-in 0.3s; +} +.custom-theme .msgbox-fade-leave-active { + -webkit-animation: msgbox-fade-out 0.3s; + animation: msgbox-fade-out 0.3s; +} +@-webkit-keyframes msgbox-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} +@keyframes msgbox-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} +@-webkit-keyframes msgbox-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} +@keyframes msgbox-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} +.custom-theme .el-breadcrumb { + font-size: 14px; + line-height: 1; +} +.custom-theme .el-breadcrumb::after, +.custom-theme .el-breadcrumb::before { + display: table; + content: ''; +} +.custom-theme .el-breadcrumb::after { + clear: both; +} +.custom-theme .el-breadcrumb__separator { + margin: 0 9px; + font-weight: 700; + color: #b4bccc; +} +.custom-theme .el-breadcrumb__separator[class*='icon'] { + margin: 0 6px; + font-weight: 400; +} +.custom-theme .el-breadcrumb__item { + float: left; +} +.custom-theme .el-breadcrumb__inner, +.custom-theme .el-breadcrumb__inner a { + font-weight: 700; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + color: #2d2f33; +} +.custom-theme .el-breadcrumb__inner a:hover, +.custom-theme .el-breadcrumb__inner:hover { + color: #262729; + cursor: pointer; +} +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner, +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a, +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover, +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner:hover { + font-weight: 400; + color: #5a5e66; + cursor: text; +} +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__separator { + display: none; +} +.custom-theme .el-form--label-left .el-form-item__label { + text-align: left; +} +.custom-theme .el-form--label-top .el-form-item__label { + float: none; + display: inline-block; + text-align: left; + padding: 0 0 10px 0; +} +.custom-theme .el-form--inline .el-form-item { + display: inline-block; + margin-right: 10px; + vertical-align: top; +} +.custom-theme .el-form--inline .el-form-item__label { + float: none; + display: inline-block; +} +.custom-theme .el-form--inline .el-form-item__content { + display: inline-block; + vertical-align: top; +} +.custom-theme .el-form--inline.el-form--label-top .el-form-item__content { + display: block; +} +.custom-theme .el-form-item { + margin-bottom: 22px; +} +.custom-theme .el-form-item::after, +.custom-theme .el-form-item::before { + display: table; + content: ''; +} +.custom-theme .el-form-item::after { + clear: both; +} +.custom-theme .el-form-item .el-form-item { + margin-bottom: 0; +} +.custom-theme .el-form-item .el-input__validateIcon { + display: none; +} +.custom-theme .el-form-item--medium .el-form-item__label { + line-height: 36px; +} +.custom-theme .el-form-item--medium .el-form-item__content { + line-height: 36px; +} +.custom-theme .el-form-item--small .el-form-item__label { + line-height: 32px; +} +.custom-theme .el-form-item--small .el-form-item__content { + line-height: 32px; +} +.custom-theme .el-form-item--small.el-form-item { + margin-bottom: 18px; +} +.custom-theme .el-form-item--small .el-form-item__error { + padding-top: 2px; +} +.custom-theme .el-form-item--mini .el-form-item__label { + line-height: 28px; +} +.custom-theme .el-form-item--mini .el-form-item__content { + line-height: 28px; +} +.custom-theme .el-form-item--mini.el-form-item { + margin-bottom: 18px; +} +.custom-theme .el-form-item--mini .el-form-item__error { + padding-top: 1px; +} +.custom-theme .el-form-item__label { + text-align: right; + vertical-align: middle; + float: left; + font-size: 14px; + color: #5a5e66; + line-height: 40px; + padding: 0 12px 0 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-form-item__content { + line-height: 40px; + position: relative; + font-size: 14px; +} +.custom-theme .el-form-item__content::after, +.custom-theme .el-form-item__content::before { + display: table; + content: ''; +} +.custom-theme .el-form-item__content::after { + clear: both; +} +.custom-theme .el-form-item__error { + color: #b3450e; + font-size: 12px; + line-height: 1; + padding-top: 4px; + position: absolute; + top: 100%; + left: 0; +} +.custom-theme .el-form-item__error--inline { + position: relative; + top: auto; + left: auto; + display: inline-block; + margin-left: 10px; +} +.custom-theme .el-form-item.is-required .el-form-item__label:before { + content: '*'; + color: #b3450e; + margin-right: 4px; +} +.custom-theme .el-form-item.is-error .el-input__inner, +.custom-theme .el-form-item.is-error .el-input__inner:focus, +.custom-theme .el-form-item.is-error .el-textarea__inner, +.custom-theme .el-form-item.is-error .el-textarea__inner:focus { + border-color: #b3450e; +} +.custom-theme .el-form-item.is-error .el-input-group__append .el-input__inner, +.custom-theme .el-form-item.is-error .el-input-group__prepend .el-input__inner { + border-color: transparent; +} +.custom-theme .el-form-item.is-error .el-input__validateIcon { + color: #b3450e; +} +.custom-theme .el-form-item.is-success .el-input__inner, +.custom-theme .el-form-item.is-success .el-input__inner:focus, +.custom-theme .el-form-item.is-success .el-textarea__inner, +.custom-theme .el-form-item.is-success .el-textarea__inner:focus { + border-color: #409167; +} +.custom-theme .el-form-item.is-success .el-input-group__append .el-input__inner, +.custom-theme + .el-form-item.is-success + .el-input-group__prepend + .el-input__inner { + border-color: transparent; +} +.custom-theme .el-form-item.is-success .el-input__validateIcon { + color: #409167; +} +.custom-theme .el-form-item--feedback .el-input__validateIcon { + display: inline-block; +} +.custom-theme .el-tabs__header { + padding: 0; + position: relative; + margin: 0 0 15px; +} +.custom-theme .el-tabs__active-bar { + position: absolute; + bottom: 0; + left: 0; + height: 2px; + background-color: #262729; + z-index: 1; + -webkit-transition: -webkit-transform 0.3s + cubic-bezier(0.645, 0.045, 0.355, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), + -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + list-style: none; +} +.custom-theme .el-tabs__new-tab { + float: right; + border: 1px solid #d3dce6; + height: 18px; + width: 18px; + line-height: 18px; + margin: 12px 0 9px 10px; + border-radius: 3px; + text-align: center; + font-size: 12px; + color: #d3dce6; + cursor: pointer; + -webkit-transition: all 0.15s; + transition: all 0.15s; +} +.custom-theme .el-tabs__new-tab .el-icon-plus { + -webkit-transform: scale(0.8, 0.8); + transform: scale(0.8, 0.8); +} +.custom-theme .el-tabs__new-tab:hover { + color: #262729; +} +.custom-theme .el-tabs__nav-wrap { + overflow: hidden; + margin-bottom: -1px; + position: relative; +} +.custom-theme .el-tabs__nav-wrap::after { + content: ''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 2px; + background-color: #dfe4ed; + z-index: 1; +} +.custom-theme .el-tabs__nav-wrap.is-scrollable { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-tabs__nav-scroll { + overflow: hidden; +} +.custom-theme .el-tabs__nav-next, +.custom-theme .el-tabs__nav-prev { + position: absolute; + cursor: pointer; + line-height: 44px; + font-size: 12px; + color: #878d99; +} +.custom-theme .el-tabs__nav-next { + right: 0; +} +.custom-theme .el-tabs__nav-prev { + left: 0; +} +.custom-theme .el-tabs__nav { + white-space: nowrap; + position: relative; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + float: left; + z-index: 2; +} +.custom-theme .el-tabs__item { + padding: 0 20px; + height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + line-height: 40px; + display: inline-block; + list-style: none; + font-size: 14px; + font-weight: 500; + color: #2d2f33; + position: relative; +} +.custom-theme .el-tabs__item:focus, +.custom-theme .el-tabs__item:focus:active { + outline: 0; +} +.custom-theme .el-tabs__item .el-icon-close { + border-radius: 50%; + text-align: center; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + margin-left: 5px; +} +.custom-theme .el-tabs__item .el-icon-close:before { + -webkit-transform: scale(0.9); + transform: scale(0.9); + display: inline-block; +} +.custom-theme .el-tabs__item .el-icon-close:hover { + background-color: #b4bccc; + color: #fff; +} +.custom-theme .el-tabs__item.is-active { + color: #262729; +} +.custom-theme .el-tabs__item:hover { + color: #262729; + cursor: pointer; +} +.custom-theme .el-tabs__item.is-disabled { + color: #b4bccc; + cursor: default; +} +.custom-theme .el-tabs__content { + overflow: hidden; + position: relative; +} +.custom-theme .el-tabs--card > .el-tabs__header { + border-bottom: 1px solid #dfe4ed; +} +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__nav-wrap::after { + content: none; +} +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__nav { + border: 1px solid #dfe4ed; + border-bottom: none; + border-radius: 4px 4px 0 0; +} +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__active-bar { + display: none; +} +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item .el-icon-close { + position: relative; + font-size: 12px; + width: 0; + height: 14px; + vertical-align: middle; + line-height: 15px; + overflow: hidden; + top: -1px; + right: -2px; + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; +} +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item { + border-bottom: 1px solid transparent; + border-left: 1px solid #dfe4ed; + -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), + padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), + padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item:first-child { + border-left: none; +} +.custom-theme + .el-tabs--card + > .el-tabs__header + .el-tabs__item.is-closable:hover { + padding-left: 13px; + padding-right: 13px; +} +.custom-theme + .el-tabs--card + > .el-tabs__header + .el-tabs__item.is-closable:hover + .el-icon-close { + width: 14px; +} +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item.is-active { + border-bottom-color: #fff; +} +.custom-theme + .el-tabs--card + > .el-tabs__header + .el-tabs__item.is-active.is-closable { + padding-left: 20px; + padding-right: 20px; +} +.custom-theme + .el-tabs--card + > .el-tabs__header + .el-tabs__item.is-active.is-closable + .el-icon-close { + width: 14px; +} +.custom-theme .el-tabs--border-card { + background: #fff; + border: 1px solid #d8dce5; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); +} +.custom-theme .el-tabs--border-card > .el-tabs__content { + padding: 15px; +} +.custom-theme .el-tabs--border-card > .el-tabs__header { + background-color: #f5f7fa; + border-bottom: 1px solid #dfe4ed; + margin: 0; +} +.custom-theme + .el-tabs--border-card + > .el-tabs__header + .el-tabs__nav-wrap::after { + content: none; +} +.custom-theme .el-tabs--border-card > .el-tabs__header .el-tabs__item { + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + border: 1px solid transparent; + margin: -1px -1px 0; + color: #878d99; +} +.custom-theme + .el-tabs--border-card + > .el-tabs__header + .el-tabs__item.is-active { + color: #262729; + background-color: #fff; + border-right-color: #d8dce5; + border-left-color: #d8dce5; +} +.custom-theme .el-tabs--border-card > .el-tabs__header .el-tabs__item:hover { + color: #262729; +} +.custom-theme + .el-tabs--bottom:not(.el-tabs--border-card):not(.el-tabs--card) + .el-tabs__item:nth-child(2), +.custom-theme + .el-tabs--top:not(.el-tabs--border-card):not(.el-tabs--card) + .el-tabs__item:nth-child(2) { + padding-left: 0; +} +.custom-theme .el-tabs--bottom .el-tabs__header { + margin-bottom: 0; + margin-top: 10px; +} +.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__header { + border-bottom: 0; + border-top: 1px solid #d8dce5; +} +.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap { + margin-top: -1px; + margin-bottom: 0; +} +.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__item { + border: 1px solid transparent; + margin: 0 -1px -1px -1px; +} +.custom-theme .el-tabs--left, +.custom-theme .el-tabs--right { + overflow: hidden; +} +.custom-theme .el-tabs--left .el-tabs__header, +.custom-theme .el-tabs--left .el-tabs__nav-scroll, +.custom-theme .el-tabs--left .el-tabs__nav-wrap, +.custom-theme .el-tabs--right .el-tabs__header, +.custom-theme .el-tabs--right .el-tabs__nav-scroll, +.custom-theme .el-tabs--right .el-tabs__nav-wrap { + height: 100%; +} +.custom-theme .el-tabs--left .el-tabs__active-bar, +.custom-theme .el-tabs--right .el-tabs__active-bar { + top: 0; + bottom: auto; + width: 2px; + height: auto; +} +.custom-theme .el-tabs--left .el-tabs__nav-wrap, +.custom-theme .el-tabs--right .el-tabs__nav-wrap { + margin-bottom: 0; +} +.custom-theme .el-tabs--left .el-tabs__nav-wrap.is-scrollable, +.custom-theme .el-tabs--right .el-tabs__nav-wrap.is-scrollable { + padding: 30px 0; +} +.custom-theme .el-tabs--left .el-tabs__nav-wrap::after, +.custom-theme .el-tabs--right .el-tabs__nav-wrap::after { + height: 100%; + width: 2px; + bottom: auto; + top: 0; +} +.custom-theme .el-tabs--left .el-tabs__nav, +.custom-theme .el-tabs--right .el-tabs__nav { + float: none; +} +.custom-theme .el-tabs--left .el-tabs__item, +.custom-theme .el-tabs--right .el-tabs__item { + display: block; +} +.custom-theme .el-tabs--left .el-tabs__nav-next, +.custom-theme .el-tabs--left .el-tabs__nav-prev, +.custom-theme .el-tabs--right .el-tabs__nav-next, +.custom-theme .el-tabs--right .el-tabs__nav-prev { + height: 30px; + line-height: 30px; + width: 100%; + text-align: center; + cursor: pointer; +} +.custom-theme .el-tabs--left .el-tabs__nav-next i, +.custom-theme .el-tabs--left .el-tabs__nav-prev i, +.custom-theme .el-tabs--right .el-tabs__nav-next i, +.custom-theme .el-tabs--right .el-tabs__nav-prev i { + -webkit-transform: rotateZ(90deg); + transform: rotateZ(90deg); +} +.custom-theme .el-tabs--left .el-tabs__nav-prev, +.custom-theme .el-tabs--right .el-tabs__nav-prev { + left: auto; + top: 0; +} +.custom-theme .el-tabs--left .el-tabs__nav-next, +.custom-theme .el-tabs--right .el-tabs__nav-next { + right: auto; + bottom: 0; +} +.custom-theme .el-tabs--left .el-tabs__header { + float: left; + margin-bottom: 0; + margin-right: 10px; +} +.custom-theme .el-tabs--left .el-tabs__nav-wrap { + margin-right: -1px; +} +.custom-theme .el-tabs--left .el-tabs__nav-wrap::after { + left: auto; + right: 0; +} +.custom-theme .el-tabs--left .el-tabs__active-bar { + right: 0; + left: auto; +} +.custom-theme .el-tabs--left .el-tabs__item { + text-align: right; +} +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__active-bar { + display: none; +} +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item { + border-left: none; + border-right: 1px solid #dfe4ed; + border-bottom: none; + border-top: 1px solid #dfe4ed; +} +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item:first-child { + border-right: 1px solid #dfe4ed; + border-top: none; +} +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active { + border: 1px solid #dfe4ed; + border-right-color: #fff; + border-left: none; + border-bottom: none; +} +.custom-theme + .el-tabs--left.el-tabs--card + .el-tabs__item.is-active:first-child { + border-top: none; +} +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active:last-child { + border-bottom: none; +} +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__nav { + border-radius: 4px 0 0 4px; + border-bottom: 1px solid #dfe4ed; + border-right: none; +} +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__new-tab { + float: none; +} +.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__header { + border-right: 1px solid #dfe4ed; +} +.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item { + border: 1px solid transparent; + margin: -1px 0 -1px -1px; +} +.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item.is-active { + border-color: transparent; + border-top-color: #d1dbe5; + border-bottom-color: #d1dbe5; +} +.custom-theme .el-tabs--right .el-tabs__header { + float: right; + margin-bottom: 0; + margin-left: 10px; +} +.custom-theme .el-tabs--right .el-tabs__nav-wrap { + margin-left: -1px; +} +.custom-theme .el-tabs--right .el-tabs__nav-wrap::after { + left: 0; + right: auto; +} +.custom-theme .el-tabs--right .el-tabs__active-bar { + left: 0; +} +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__active-bar { + display: none; +} +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item { + border-bottom: none; + border-top: 1px solid #dfe4ed; +} +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item:first-child { + border-left: 1px solid #dfe4ed; + border-top: none; +} +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active { + border: 1px solid #dfe4ed; + border-left-color: #fff; + border-right: none; + border-bottom: none; +} +.custom-theme + .el-tabs--right.el-tabs--card + .el-tabs__item.is-active:first-child { + border-top: none; +} +.custom-theme + .el-tabs--right.el-tabs--card + .el-tabs__item.is-active:last-child { + border-bottom: none; +} +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__nav { + border-radius: 0 4px 4px 0; + border-bottom: 1px solid #dfe4ed; + border-left: none; +} +.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__header { + border-left: 1px solid #dfe4ed; +} +.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item { + border: 1px solid transparent; + margin: -1px -1px -1px 0; +} +.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item.is-active { + border-color: transparent; + border-top-color: #d1dbe5; + border-bottom-color: #d1dbe5; +} +.custom-theme .slideInLeft-transition, +.custom-theme .slideInRight-transition { + display: inline-block; +} +.custom-theme .slideInRight-enter { + -webkit-animation: slideInRight-enter 0.3s; + animation: slideInRight-enter 0.3s; +} +.custom-theme .slideInRight-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInRight-leave 0.3s; + animation: slideInRight-leave 0.3s; +} +.custom-theme .slideInLeft-enter { + -webkit-animation: slideInLeft-enter 0.3s; + animation: slideInLeft-enter 0.3s; +} +.custom-theme .slideInLeft-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInLeft-leave 0.3s; + animation: slideInLeft-leave 0.3s; +} +@-webkit-keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +@keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +@-webkit-keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; + } +} +@keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; + } +} +@-webkit-keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +@keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +@-webkit-keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; + } +} +@keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; + } +} +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} +.custom-theme .el-tag .el-icon-close::before { + display: block; +} +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} +.custom-theme .el-tree { + cursor: default; + background: #fff; + color: #5a5e66; +} +.custom-theme .el-tree__empty-block { + position: relative; + min-height: 60px; + text-align: center; + width: 100%; + height: 100%; +} +.custom-theme .el-tree__empty-text { + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + color: #623615; +} +.custom-theme .el-tree-node { + white-space: nowrap; +} +.custom-theme .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 26px; + cursor: pointer; +} +.custom-theme .el-tree-node__content > .el-tree-node__expand-icon { + padding: 6px; +} +.custom-theme .el-tree-node__content > .el-checkbox { + margin-right: 8px; +} +.custom-theme .el-tree-node__content:hover { + background-color: #f5f7fa; +} +.custom-theme .el-tree-node__expand-icon { + cursor: pointer; + color: #b4bccc; + font-size: 12px; + -webkit-transform: rotate(0); + transform: rotate(0); + -webkit-transition: -webkit-transform 0.3s ease-in-out; + transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; +} +.custom-theme .el-tree-node__expand-icon.expanded { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} +.custom-theme .el-tree-node__expand-icon.is-leaf { + color: transparent; + cursor: default; +} +.custom-theme .el-tree-node__label { + font-size: 14px; +} +.custom-theme .el-tree-node__loading-icon { + margin-right: 8px; + font-size: 14px; + color: #b4bccc; +} +.custom-theme .el-tree-node > .el-tree-node__children { + overflow: hidden; + background-color: transparent; +} +.custom-theme .el-tree-node.is-expanded > .el-tree-node__children { + display: block; +} +.custom-theme + .el-tree--highlight-current + .el-tree-node.is-current + > .el-tree-node__content { + background-color: #eee; +} +.custom-theme .el-alert { + width: 100%; + padding: 8px 16px; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + position: relative; + background-color: #fff; + overflow: hidden; + opacity: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-transition: opacity 0.2s; + transition: opacity 0.2s; +} +.custom-theme .el-alert.is-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.custom-theme .el-alert--success { + background-color: #ecf4f0; + color: #409167; +} +.custom-theme .el-alert--success .el-alert__description { + color: #409167; +} +.custom-theme .el-alert--info { + background-color: #e7f1f6; + color: #0a76a4; +} +.custom-theme .el-alert--info .el-alert__description { + color: #0a76a4; +} +.custom-theme .el-alert--warning { + background-color: #f5f6e6; + color: #9da408; +} +.custom-theme .el-alert--warning .el-alert__description { + color: #9da408; +} +.custom-theme .el-alert--error { + background-color: #f7ece7; + color: #b3450e; +} +.custom-theme .el-alert--error .el-alert__description { + color: #b3450e; +} +.custom-theme .el-alert__content { + display: table-cell; + padding: 0 8px; +} +.custom-theme .el-alert__icon { + font-size: 16px; + width: 16px; +} +.custom-theme .el-alert__icon.is-big { + font-size: 28px; + width: 28px; +} +.custom-theme .el-alert__title { + font-size: 13px; + line-height: 18px; +} +.custom-theme .el-alert__title.is-bold { + font-weight: 700; +} +.custom-theme .el-alert .el-alert__description { + font-size: 12px; + margin: 5px 0 0 0; +} +.custom-theme .el-alert__closebtn { + font-size: 12px; + color: #b4bccc; + opacity: 1; + position: absolute; + top: 12px; + right: 15px; + cursor: pointer; +} +.custom-theme .el-alert__closebtn.is-customed { + font-style: normal; + font-size: 13px; + top: 9px; +} +.custom-theme .el-alert-fade-enter, +.custom-theme .el-alert-fade-leave-active { + opacity: 0; +} +.custom-theme .el-notification { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 330px; + padding: 14px 26px 14px 13px; + border-radius: 8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #e6ebf5; + position: fixed; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-transition: opacity 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s, + -webkit-transform 0.3s; + transition: opacity 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s, + -webkit-transform 0.3s; + transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s, + bottom 0.3s; + transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s, + bottom 0.3s, -webkit-transform 0.3s; + overflow: hidden; +} +.custom-theme .el-notification.right { + right: 16px; +} +.custom-theme .el-notification.left { + left: 16px; +} +.custom-theme .el-notification__group { + margin-left: 13px; +} +.custom-theme .el-notification__title { + font-weight: 700; + font-size: 16px; + color: #2d2f33; + margin: 0; +} +.custom-theme .el-notification__content { + font-size: 14px; + line-height: 21px; + margin: 6px 0 0 0; + color: #5a5e66; + text-align: justify; +} +.custom-theme .el-notification__content p { + margin: 0; +} +.custom-theme .el-notification__icon { + height: 24px; + width: 24px; + font-size: 24px; + -webkit-transform: translateY(4px); + transform: translateY(4px); +} +.custom-theme .el-notification__closeBtn { + position: absolute; + top: 15px; + right: 15px; + cursor: pointer; + color: #878d99; + font-size: 16px; +} +.custom-theme .el-notification__closeBtn:hover { + color: #5a5e66; +} +.custom-theme .el-notification .el-icon-success { + color: #409167; +} +.custom-theme .el-notification .el-icon-error { + color: #b3450e; +} +.custom-theme .el-notification .el-icon-info { + color: #0a76a4; +} +.custom-theme .el-notification .el-icon-warning { + color: #9da408; +} +.custom-theme .el-notification-fade-enter.right { + right: 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); +} +.custom-theme .el-notification-fade-enter.left { + left: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} +.custom-theme .el-notification-fade-leave-active { + opacity: 0; +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input-number { + position: relative; + display: inline-block; + width: 180px; + line-height: 38px; +} +.custom-theme .el-input-number .el-input { + display: block; +} +.custom-theme .el-input-number .el-input__inner { + -webkit-appearance: none; + padding-left: 50px; + padding-right: 50px; + text-align: center; +} +.custom-theme .el-input-number__decrease, +.custom-theme .el-input-number__increase { + position: absolute; + z-index: 1; + top: 1px; + width: 40px; + height: auto; + text-align: center; + background: #f5f7fa; + color: #5a5e66; + cursor: pointer; + font-size: 13px; +} +.custom-theme .el-input-number__decrease:hover, +.custom-theme .el-input-number__increase:hover { + color: #262729; +} +.custom-theme + .el-input-number__decrease:hover:not(.is-disabled) + ~ .el-input + .el-input__inner:not(.is-disabled), +.custom-theme + .el-input-number__increase:hover:not(.is-disabled) + ~ .el-input + .el-input__inner:not(.is-disabled) { + border-color: #262729; +} +.custom-theme .el-input-number__decrease.is-disabled, +.custom-theme .el-input-number__increase.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-input-number__increase { + right: 1px; + border-radius: 0 4px 4px 0; + border-left: 1px solid #d8dce5; +} +.custom-theme .el-input-number__decrease { + left: 1px; + border-radius: 4px 0 0 4px; + border-right: 1px solid #d8dce5; +} +.custom-theme .el-input-number.is-disabled .el-input-number__decrease, +.custom-theme .el-input-number.is-disabled .el-input-number__increase { + border-color: #dfe4ed; + color: #dfe4ed; +} +.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover, +.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover { + color: #dfe4ed; + cursor: not-allowed; +} +.custom-theme .el-input-number--medium { + width: 200px; + line-height: 34px; +} +.custom-theme .el-input-number--medium .el-input-number__decrease, +.custom-theme .el-input-number--medium .el-input-number__increase { + width: 36px; + font-size: 14px; +} +.custom-theme .el-input-number--medium .el-input__inner { + padding-left: 43px; + padding-right: 43px; +} +.custom-theme .el-input-number--small { + width: 130px; + line-height: 30px; +} +.custom-theme .el-input-number--small .el-input-number__decrease, +.custom-theme .el-input-number--small .el-input-number__increase { + width: 32px; + font-size: 13px; +} +.custom-theme + .el-input-number--small + .el-input-number__decrease + [class*='el-icon'], +.custom-theme + .el-input-number--small + .el-input-number__increase + [class*='el-icon'] { + -webkit-transform: scale(0.9); + transform: scale(0.9); +} +.custom-theme .el-input-number--small .el-input__inner { + padding-left: 39px; + padding-right: 39px; +} +.custom-theme .el-input-number--mini { + width: 130px; + line-height: 26px; +} +.custom-theme .el-input-number--mini .el-input-number__decrease, +.custom-theme .el-input-number--mini .el-input-number__increase { + width: 28px; + font-size: 12px; +} +.custom-theme + .el-input-number--mini + .el-input-number__decrease + [class*='el-icon'], +.custom-theme + .el-input-number--mini + .el-input-number__increase + [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-input-number--mini .el-input__inner { + padding-left: 35px; + padding-right: 35px; +} +.custom-theme .el-input-number.is-without-controls .el-input__inner { + padding-left: 15px; + padding-right: 15px; +} +.custom-theme .el-input-number.is-controls-right .el-input__inner { + padding-left: 15px; + padding-right: 50px; +} +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease, +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + height: auto; + line-height: 19px; +} +.custom-theme + .el-input-number.is-controls-right + .el-input-number__decrease + [class*='el-icon'], +.custom-theme + .el-input-number.is-controls-right + .el-input-number__increase + [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + border-radius: 0 4px 0 0; + border-bottom: 1px solid #d8dce5; +} +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease { + right: 1px; + bottom: 1px; + top: auto; + left: auto; + border-right: none; + border-left: 1px solid #d8dce5; + border-radius: 0 0 4px 0; +} +.custom-theme + .el-input-number.is-controls-right[class*='medium'] + [class*='decrease'], +.custom-theme + .el-input-number.is-controls-right[class*='medium'] + [class*='increase'] { + line-height: 17px; +} +.custom-theme + .el-input-number.is-controls-right[class*='small'] + [class*='decrease'], +.custom-theme + .el-input-number.is-controls-right[class*='small'] + [class*='increase'] { + line-height: 15px; +} +.custom-theme + .el-input-number.is-controls-right[class*='mini'] + [class*='decrease'], +.custom-theme + .el-input-number.is-controls-right[class*='mini'] + [class*='increase'] { + line-height: 13px; +} +.custom-theme .el-tooltip__popper { + position: absolute; + border-radius: 4px; + padding: 10px; + z-index: 2000; + font-size: 12px; + line-height: 1.2; +} +.custom-theme .el-tooltip__popper .popper__arrow, +.custom-theme .el-tooltip__popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-tooltip__popper .popper__arrow { + border-width: 6px; +} +.custom-theme .el-tooltip__popper .popper__arrow::after { + content: ' '; + border-width: 5px; +} +.custom-theme .el-tooltip__popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -5px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -5px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} +.custom-theme .el-tooltip__popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow { + left: -6px; + border-right-color: #2d2f33; + border-left-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow::after { + bottom: -5px; + left: 1px; + border-right-color: #2d2f33; + border-left-width: 0; +} +.custom-theme .el-tooltip__popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow { + right: -6px; + border-right-width: 0; + border-left-color: #2d2f33; +} +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -5px; + margin-left: -5px; + border-right-width: 0; + border-left-color: #2d2f33; +} +.custom-theme .el-tooltip__popper.is-dark { + background: #2d2f33; + color: #fff; +} +.custom-theme .el-tooltip__popper.is-light { + background: #fff; + border: 1px solid #2d2f33; +} +.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow { + border-top-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='top'] + .popper__arrow::after { + border-top-color: #fff; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='bottom'] + .popper__arrow { + border-bottom-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='bottom'] + .popper__arrow::after { + border-bottom-color: #fff; +} +.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow { + border-left-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='left'] + .popper__arrow::after { + border-left-color: #fff; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='right'] + .popper__arrow { + border-right-color: #2d2f33; +} +.custom-theme + .el-tooltip__popper.is-light[x-placement^='right'] + .popper__arrow::after { + border-right-color: #fff; +} +.custom-theme .el-slider::after, +.custom-theme .el-slider::before { + display: table; + content: ''; +} +.custom-theme .el-slider::after { + clear: both; +} +.custom-theme .el-slider__runway { + width: 100%; + height: 6px; + margin: 16px 0; + background-color: #dfe4ed; + border-radius: 3px; + position: relative; + cursor: pointer; + vertical-align: middle; +} +.custom-theme .el-slider__runway.show-input { + margin-right: 160px; + width: auto; +} +.custom-theme .el-slider__runway.disabled { + cursor: default; +} +.custom-theme .el-slider__runway.disabled .el-slider__bar { + background-color: #b4bccc; +} +.custom-theme .el-slider__runway.disabled .el-slider__button { + border-color: #b4bccc; +} +.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.hover, +.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper:hover { + cursor: not-allowed; +} +.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.dragging { + cursor: not-allowed; +} +.custom-theme .el-slider__runway.disabled .el-slider__button.dragging, +.custom-theme .el-slider__runway.disabled .el-slider__button.hover, +.custom-theme .el-slider__runway.disabled .el-slider__button:hover { + -webkit-transform: scale(1); + transform: scale(1); +} +.custom-theme .el-slider__runway.disabled .el-slider__button.hover, +.custom-theme .el-slider__runway.disabled .el-slider__button:hover { + cursor: not-allowed; +} +.custom-theme .el-slider__runway.disabled .el-slider__button.dragging { + cursor: not-allowed; +} +.custom-theme .el-slider__input { + float: right; + margin-top: 3px; +} +.custom-theme .el-slider__bar { + height: 6px; + background-color: #262729; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + position: absolute; +} +.custom-theme .el-slider__button-wrapper { + height: 36px; + width: 36px; + position: absolute; + z-index: 1001; + top: -15px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + background-color: transparent; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-slider__button-wrapper::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} +.custom-theme .el-slider__button-wrapper .el-tooltip { + vertical-align: middle; + display: inline-block; +} +.custom-theme .el-slider__button-wrapper.hover, +.custom-theme .el-slider__button-wrapper:hover { + cursor: -webkit-grab; + cursor: grab; +} +.custom-theme .el-slider__button-wrapper.dragging { + cursor: -webkit-grabbing; + cursor: grabbing; +} +.custom-theme .el-slider__button { + width: 16px; + height: 16px; + border: solid 2px #262729; + background-color: #fff; + border-radius: 50%; + -webkit-transition: 0.2s; + transition: 0.2s; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-slider__button.dragging, +.custom-theme .el-slider__button.hover, +.custom-theme .el-slider__button:hover { + -webkit-transform: scale(1.2); + transform: scale(1.2); +} +.custom-theme .el-slider__button.hover, +.custom-theme .el-slider__button:hover { + cursor: -webkit-grab; + cursor: grab; +} +.custom-theme .el-slider__button.dragging { + cursor: -webkit-grabbing; + cursor: grabbing; +} +.custom-theme .el-slider__stop { + position: absolute; + height: 6px; + width: 6px; + border-radius: 100%; + background-color: #fff; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} +.custom-theme .el-slider.is-vertical { + position: relative; +} +.custom-theme .el-slider.is-vertical .el-slider__runway { + width: 4px; + height: 100%; + margin: 0 16px; +} +.custom-theme .el-slider.is-vertical .el-slider__bar { + width: 4px; + height: auto; + border-radius: 0 0 3px 3px; +} +.custom-theme .el-slider.is-vertical .el-slider__button-wrapper { + top: auto; + left: -15px; + -webkit-transform: translateY(50%); + transform: translateY(50%); +} +.custom-theme .el-slider.is-vertical .el-slider__stop { + -webkit-transform: translateY(50%); + transform: translateY(50%); +} +.custom-theme .el-slider.is-vertical.el-slider--with-input { + padding-bottom: 58px; +} +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input { + overflow: visible; + float: none; + position: absolute; + bottom: 22px; + width: 36px; + margin-top: 15px; +} +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input + .el-input__inner { + text-align: center; + padding-left: 5px; + padding-right: 5px; +} +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input + .el-input-number__decrease, +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input + .el-input-number__increase { + top: 32px; + margin-top: -1px; + border: 1px solid #d8dce5; + line-height: 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input + .el-input-number__decrease { + width: 18px; + right: 18px; + border-bottom-left-radius: 4px; +} +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input + .el-input-number__increase { + width: 19px; + border-bottom-right-radius: 4px; +} +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input + .el-input-number__increase + ~ .el-input + .el-input__inner { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input:hover + .el-input-number__decrease, +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input:hover + .el-input-number__increase { + border-color: #b4bccc; +} +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input:active + .el-input-number__decrease, +.custom-theme + .el-slider.is-vertical.el-slider--with-input + .el-slider__input:active + .el-input-number__increase { + border-color: #262729; +} +.custom-theme .el-loading-parent--relative { + position: relative !important; +} +.custom-theme .el-loading-parent--hidden { + overflow: hidden !important; +} +.custom-theme .el-loading-mask { + position: absolute; + z-index: 10000; + background-color: rgba(255, 255, 255, 0.9); + margin: 0; + top: 0; + right: 0; + bottom: 0; + left: 0; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; +} +.custom-theme .el-loading-mask.is-fullscreen { + position: fixed; +} +.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner { + margin-top: -25px; +} +.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner .circular { + height: 50px; + width: 50px; +} +.custom-theme .el-loading-spinner { + top: 50%; + margin-top: -21px; + width: 100%; + text-align: center; + position: absolute; +} +.custom-theme .el-loading-spinner .el-loading-text { + color: #262729; + margin: 3px 0; + font-size: 14px; +} +.custom-theme .el-loading-spinner .circular { + height: 42px; + width: 42px; + -webkit-animation: loading-rotate 2s linear infinite; + animation: loading-rotate 2s linear infinite; +} +.custom-theme .el-loading-spinner .path { + -webkit-animation: loading-dash 1.5s ease-in-out infinite; + animation: loading-dash 1.5s ease-in-out infinite; + stroke-dasharray: 90, 150; + stroke-dashoffset: 0; + stroke-width: 2; + stroke: #262729; + stroke-linecap: round; +} +.custom-theme .el-loading-spinner i { + color: #262729; +} +.custom-theme .el-loading-fade-enter, +.custom-theme .el-loading-fade-leave-active { + opacity: 0; +} +@-webkit-keyframes loading-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes loading-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-webkit-keyframes loading-dash { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40px; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120px; + } +} +@keyframes loading-dash { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40px; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120px; + } +} +.custom-theme .el-row { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-row::after, +.custom-theme .el-row::before { + display: table; + content: ''; +} +.custom-theme .el-row::after { + clear: both; +} +.custom-theme .el-row--flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.custom-theme .el-row--flex:after, +.custom-theme .el-row--flex:before { + display: none; +} +.custom-theme .el-row--flex.is-justify-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.custom-theme .el-row--flex.is-justify-end { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} +.custom-theme .el-row--flex.is-justify-space-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} +.custom-theme .el-row--flex.is-justify-space-around { + -ms-flex-pack: distribute; + justify-content: space-around; +} +.custom-theme .el-row--flex.is-align-middle { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.custom-theme .el-row--flex.is-align-bottom { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; +} +.custom-theme [class*='el-col-'] { + float: left; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-col-0 { + display: none; +} +.custom-theme .el-col-1 { + width: 4.16667%; +} +.custom-theme .el-col-offset-1 { + margin-left: 4.16667%; +} +.custom-theme .el-col-pull-1 { + position: relative; + right: 4.16667%; +} +.custom-theme .el-col-push-1 { + position: relative; + left: 4.16667%; +} +.custom-theme .el-col-2 { + width: 8.33333%; +} +.custom-theme .el-col-offset-2 { + margin-left: 8.33333%; +} +.custom-theme .el-col-pull-2 { + position: relative; + right: 8.33333%; +} +.custom-theme .el-col-push-2 { + position: relative; + left: 8.33333%; +} +.custom-theme .el-col-3 { + width: 12.5%; +} +.custom-theme .el-col-offset-3 { + margin-left: 12.5%; +} +.custom-theme .el-col-pull-3 { + position: relative; + right: 12.5%; +} +.custom-theme .el-col-push-3 { + position: relative; + left: 12.5%; +} +.custom-theme .el-col-4 { + width: 16.66667%; +} +.custom-theme .el-col-offset-4 { + margin-left: 16.66667%; +} +.custom-theme .el-col-pull-4 { + position: relative; + right: 16.66667%; +} +.custom-theme .el-col-push-4 { + position: relative; + left: 16.66667%; +} +.custom-theme .el-col-5 { + width: 20.83333%; +} +.custom-theme .el-col-offset-5 { + margin-left: 20.83333%; +} +.custom-theme .el-col-pull-5 { + position: relative; + right: 20.83333%; +} +.custom-theme .el-col-push-5 { + position: relative; + left: 20.83333%; +} +.custom-theme .el-col-6 { + width: 25%; +} +.custom-theme .el-col-offset-6 { + margin-left: 25%; +} +.custom-theme .el-col-pull-6 { + position: relative; + right: 25%; +} +.custom-theme .el-col-push-6 { + position: relative; + left: 25%; +} +.custom-theme .el-col-7 { + width: 29.16667%; +} +.custom-theme .el-col-offset-7 { + margin-left: 29.16667%; +} +.custom-theme .el-col-pull-7 { + position: relative; + right: 29.16667%; +} +.custom-theme .el-col-push-7 { + position: relative; + left: 29.16667%; +} +.custom-theme .el-col-8 { + width: 33.33333%; +} +.custom-theme .el-col-offset-8 { + margin-left: 33.33333%; +} +.custom-theme .el-col-pull-8 { + position: relative; + right: 33.33333%; +} +.custom-theme .el-col-push-8 { + position: relative; + left: 33.33333%; +} +.custom-theme .el-col-9 { + width: 37.5%; +} +.custom-theme .el-col-offset-9 { + margin-left: 37.5%; +} +.custom-theme .el-col-pull-9 { + position: relative; + right: 37.5%; +} +.custom-theme .el-col-push-9 { + position: relative; + left: 37.5%; +} +.custom-theme .el-col-10 { + width: 41.66667%; +} +.custom-theme .el-col-offset-10 { + margin-left: 41.66667%; +} +.custom-theme .el-col-pull-10 { + position: relative; + right: 41.66667%; +} +.custom-theme .el-col-push-10 { + position: relative; + left: 41.66667%; +} +.custom-theme .el-col-11 { + width: 45.83333%; +} +.custom-theme .el-col-offset-11 { + margin-left: 45.83333%; +} +.custom-theme .el-col-pull-11 { + position: relative; + right: 45.83333%; +} +.custom-theme .el-col-push-11 { + position: relative; + left: 45.83333%; +} +.custom-theme .el-col-12 { + width: 50%; +} +.custom-theme .el-col-offset-12 { + margin-left: 50%; +} +.custom-theme .el-col-pull-12 { + position: relative; + right: 50%; +} +.custom-theme .el-col-push-12 { + position: relative; + left: 50%; +} +.custom-theme .el-col-13 { + width: 54.16667%; +} +.custom-theme .el-col-offset-13 { + margin-left: 54.16667%; +} +.custom-theme .el-col-pull-13 { + position: relative; + right: 54.16667%; +} +.custom-theme .el-col-push-13 { + position: relative; + left: 54.16667%; +} +.custom-theme .el-col-14 { + width: 58.33333%; +} +.custom-theme .el-col-offset-14 { + margin-left: 58.33333%; +} +.custom-theme .el-col-pull-14 { + position: relative; + right: 58.33333%; +} +.custom-theme .el-col-push-14 { + position: relative; + left: 58.33333%; +} +.custom-theme .el-col-15 { + width: 62.5%; +} +.custom-theme .el-col-offset-15 { + margin-left: 62.5%; +} +.custom-theme .el-col-pull-15 { + position: relative; + right: 62.5%; +} +.custom-theme .el-col-push-15 { + position: relative; + left: 62.5%; +} +.custom-theme .el-col-16 { + width: 66.66667%; +} +.custom-theme .el-col-offset-16 { + margin-left: 66.66667%; +} +.custom-theme .el-col-pull-16 { + position: relative; + right: 66.66667%; +} +.custom-theme .el-col-push-16 { + position: relative; + left: 66.66667%; +} +.custom-theme .el-col-17 { + width: 70.83333%; +} +.custom-theme .el-col-offset-17 { + margin-left: 70.83333%; +} +.custom-theme .el-col-pull-17 { + position: relative; + right: 70.83333%; +} +.custom-theme .el-col-push-17 { + position: relative; + left: 70.83333%; +} +.custom-theme .el-col-18 { + width: 75%; +} +.custom-theme .el-col-offset-18 { + margin-left: 75%; +} +.custom-theme .el-col-pull-18 { + position: relative; + right: 75%; +} +.custom-theme .el-col-push-18 { + position: relative; + left: 75%; +} +.custom-theme .el-col-19 { + width: 79.16667%; +} +.custom-theme .el-col-offset-19 { + margin-left: 79.16667%; +} +.custom-theme .el-col-pull-19 { + position: relative; + right: 79.16667%; +} +.custom-theme .el-col-push-19 { + position: relative; + left: 79.16667%; +} +.custom-theme .el-col-20 { + width: 83.33333%; +} +.custom-theme .el-col-offset-20 { + margin-left: 83.33333%; +} +.custom-theme .el-col-pull-20 { + position: relative; + right: 83.33333%; +} +.custom-theme .el-col-push-20 { + position: relative; + left: 83.33333%; +} +.custom-theme .el-col-21 { + width: 87.5%; +} +.custom-theme .el-col-offset-21 { + margin-left: 87.5%; +} +.custom-theme .el-col-pull-21 { + position: relative; + right: 87.5%; +} +.custom-theme .el-col-push-21 { + position: relative; + left: 87.5%; +} +.custom-theme .el-col-22 { + width: 91.66667%; +} +.custom-theme .el-col-offset-22 { + margin-left: 91.66667%; +} +.custom-theme .el-col-pull-22 { + position: relative; + right: 91.66667%; +} +.custom-theme .el-col-push-22 { + position: relative; + left: 91.66667%; +} +.custom-theme .el-col-23 { + width: 95.83333%; +} +.custom-theme .el-col-offset-23 { + margin-left: 95.83333%; +} +.custom-theme .el-col-pull-23 { + position: relative; + right: 95.83333%; +} +.custom-theme .el-col-push-23 { + position: relative; + left: 95.83333%; +} +.custom-theme .el-col-24 { + width: 100%; +} +.custom-theme .el-col-offset-24 { + margin-left: 100%; +} +.custom-theme .el-col-pull-24 { + position: relative; + right: 100%; +} +.custom-theme .el-col-push-24 { + position: relative; + left: 100%; +} +@media only screen and (max-width: 768px) { + .custom-theme .el-col-xs-0 { + display: none; + } + .custom-theme .el-col-xs-1 { + width: 4.16667%; + } + .custom-theme .el-col-xs-offset-1 { + margin-left: 4.16667%; + } + .custom-theme .el-col-xs-pull-1 { + position: relative; + right: 4.16667%; + } + .custom-theme .el-col-xs-push-1 { + position: relative; + left: 4.16667%; + } + .custom-theme .el-col-xs-2 { + width: 8.33333%; + } + .custom-theme .el-col-xs-offset-2 { + margin-left: 8.33333%; + } + .custom-theme .el-col-xs-pull-2 { + position: relative; + right: 8.33333%; + } + .custom-theme .el-col-xs-push-2 { + position: relative; + left: 8.33333%; + } + .custom-theme .el-col-xs-3 { + width: 12.5%; + } + .custom-theme .el-col-xs-offset-3 { + margin-left: 12.5%; + } + .custom-theme .el-col-xs-pull-3 { + position: relative; + right: 12.5%; + } + .custom-theme .el-col-xs-push-3 { + position: relative; + left: 12.5%; + } + .custom-theme .el-col-xs-4 { + width: 16.66667%; + } + .custom-theme .el-col-xs-offset-4 { + margin-left: 16.66667%; + } + .custom-theme .el-col-xs-pull-4 { + position: relative; + right: 16.66667%; + } + .custom-theme .el-col-xs-push-4 { + position: relative; + left: 16.66667%; + } + .custom-theme .el-col-xs-5 { + width: 20.83333%; + } + .custom-theme .el-col-xs-offset-5 { + margin-left: 20.83333%; + } + .custom-theme .el-col-xs-pull-5 { + position: relative; + right: 20.83333%; + } + .custom-theme .el-col-xs-push-5 { + position: relative; + left: 20.83333%; + } + .custom-theme .el-col-xs-6 { + width: 25%; + } + .custom-theme .el-col-xs-offset-6 { + margin-left: 25%; + } + .custom-theme .el-col-xs-pull-6 { + position: relative; + right: 25%; + } + .custom-theme .el-col-xs-push-6 { + position: relative; + left: 25%; + } + .custom-theme .el-col-xs-7 { + width: 29.16667%; + } + .custom-theme .el-col-xs-offset-7 { + margin-left: 29.16667%; + } + .custom-theme .el-col-xs-pull-7 { + position: relative; + right: 29.16667%; + } + .custom-theme .el-col-xs-push-7 { + position: relative; + left: 29.16667%; + } + .custom-theme .el-col-xs-8 { + width: 33.33333%; + } + .custom-theme .el-col-xs-offset-8 { + margin-left: 33.33333%; + } + .custom-theme .el-col-xs-pull-8 { + position: relative; + right: 33.33333%; + } + .custom-theme .el-col-xs-push-8 { + position: relative; + left: 33.33333%; + } + .custom-theme .el-col-xs-9 { + width: 37.5%; + } + .custom-theme .el-col-xs-offset-9 { + margin-left: 37.5%; + } + .custom-theme .el-col-xs-pull-9 { + position: relative; + right: 37.5%; + } + .custom-theme .el-col-xs-push-9 { + position: relative; + left: 37.5%; + } + .custom-theme .el-col-xs-10 { + width: 41.66667%; + } + .custom-theme .el-col-xs-offset-10 { + margin-left: 41.66667%; + } + .custom-theme .el-col-xs-pull-10 { + position: relative; + right: 41.66667%; + } + .custom-theme .el-col-xs-push-10 { + position: relative; + left: 41.66667%; + } + .custom-theme .el-col-xs-11 { + width: 45.83333%; + } + .custom-theme .el-col-xs-offset-11 { + margin-left: 45.83333%; + } + .custom-theme .el-col-xs-pull-11 { + position: relative; + right: 45.83333%; + } + .custom-theme .el-col-xs-push-11 { + position: relative; + left: 45.83333%; + } + .custom-theme .el-col-xs-12 { + width: 50%; + } + .custom-theme .el-col-xs-offset-12 { + margin-left: 50%; + } + .custom-theme .el-col-xs-pull-12 { + position: relative; + right: 50%; + } + .custom-theme .el-col-xs-push-12 { + position: relative; + left: 50%; + } + .custom-theme .el-col-xs-13 { + width: 54.16667%; + } + .custom-theme .el-col-xs-offset-13 { + margin-left: 54.16667%; + } + .custom-theme .el-col-xs-pull-13 { + position: relative; + right: 54.16667%; + } + .custom-theme .el-col-xs-push-13 { + position: relative; + left: 54.16667%; + } + .custom-theme .el-col-xs-14 { + width: 58.33333%; + } + .custom-theme .el-col-xs-offset-14 { + margin-left: 58.33333%; + } + .custom-theme .el-col-xs-pull-14 { + position: relative; + right: 58.33333%; + } + .custom-theme .el-col-xs-push-14 { + position: relative; + left: 58.33333%; + } + .custom-theme .el-col-xs-15 { + width: 62.5%; + } + .custom-theme .el-col-xs-offset-15 { + margin-left: 62.5%; + } + .custom-theme .el-col-xs-pull-15 { + position: relative; + right: 62.5%; + } + .custom-theme .el-col-xs-push-15 { + position: relative; + left: 62.5%; + } + .custom-theme .el-col-xs-16 { + width: 66.66667%; + } + .custom-theme .el-col-xs-offset-16 { + margin-left: 66.66667%; + } + .custom-theme .el-col-xs-pull-16 { + position: relative; + right: 66.66667%; + } + .custom-theme .el-col-xs-push-16 { + position: relative; + left: 66.66667%; + } + .custom-theme .el-col-xs-17 { + width: 70.83333%; + } + .custom-theme .el-col-xs-offset-17 { + margin-left: 70.83333%; + } + .custom-theme .el-col-xs-pull-17 { + position: relative; + right: 70.83333%; + } + .custom-theme .el-col-xs-push-17 { + position: relative; + left: 70.83333%; + } + .custom-theme .el-col-xs-18 { + width: 75%; + } + .custom-theme .el-col-xs-offset-18 { + margin-left: 75%; + } + .custom-theme .el-col-xs-pull-18 { + position: relative; + right: 75%; + } + .custom-theme .el-col-xs-push-18 { + position: relative; + left: 75%; + } + .custom-theme .el-col-xs-19 { + width: 79.16667%; + } + .custom-theme .el-col-xs-offset-19 { + margin-left: 79.16667%; + } + .custom-theme .el-col-xs-pull-19 { + position: relative; + right: 79.16667%; + } + .custom-theme .el-col-xs-push-19 { + position: relative; + left: 79.16667%; + } + .custom-theme .el-col-xs-20 { + width: 83.33333%; + } + .custom-theme .el-col-xs-offset-20 { + margin-left: 83.33333%; + } + .custom-theme .el-col-xs-pull-20 { + position: relative; + right: 83.33333%; + } + .custom-theme .el-col-xs-push-20 { + position: relative; + left: 83.33333%; + } + .custom-theme .el-col-xs-21 { + width: 87.5%; + } + .custom-theme .el-col-xs-offset-21 { + margin-left: 87.5%; + } + .custom-theme .el-col-xs-pull-21 { + position: relative; + right: 87.5%; + } + .custom-theme .el-col-xs-push-21 { + position: relative; + left: 87.5%; + } + .custom-theme .el-col-xs-22 { + width: 91.66667%; + } + .custom-theme .el-col-xs-offset-22 { + margin-left: 91.66667%; + } + .custom-theme .el-col-xs-pull-22 { + position: relative; + right: 91.66667%; + } + .custom-theme .el-col-xs-push-22 { + position: relative; + left: 91.66667%; + } + .custom-theme .el-col-xs-23 { + width: 95.83333%; + } + .custom-theme .el-col-xs-offset-23 { + margin-left: 95.83333%; + } + .custom-theme .el-col-xs-pull-23 { + position: relative; + right: 95.83333%; + } + .custom-theme .el-col-xs-push-23 { + position: relative; + left: 95.83333%; + } + .custom-theme .el-col-xs-24 { + width: 100%; + } + .custom-theme .el-col-xs-offset-24 { + margin-left: 100%; + } + .custom-theme .el-col-xs-pull-24 { + position: relative; + right: 100%; + } + .custom-theme .el-col-xs-push-24 { + position: relative; + left: 100%; + } +} +@media only screen and (min-width: 768px) { + .custom-theme .el-col-sm-0 { + display: none; + } + .custom-theme .el-col-sm-1 { + width: 4.16667%; + } + .custom-theme .el-col-sm-offset-1 { + margin-left: 4.16667%; + } + .custom-theme .el-col-sm-pull-1 { + position: relative; + right: 4.16667%; + } + .custom-theme .el-col-sm-push-1 { + position: relative; + left: 4.16667%; + } + .custom-theme .el-col-sm-2 { + width: 8.33333%; + } + .custom-theme .el-col-sm-offset-2 { + margin-left: 8.33333%; + } + .custom-theme .el-col-sm-pull-2 { + position: relative; + right: 8.33333%; + } + .custom-theme .el-col-sm-push-2 { + position: relative; + left: 8.33333%; + } + .custom-theme .el-col-sm-3 { + width: 12.5%; + } + .custom-theme .el-col-sm-offset-3 { + margin-left: 12.5%; + } + .custom-theme .el-col-sm-pull-3 { + position: relative; + right: 12.5%; + } + .custom-theme .el-col-sm-push-3 { + position: relative; + left: 12.5%; + } + .custom-theme .el-col-sm-4 { + width: 16.66667%; + } + .custom-theme .el-col-sm-offset-4 { + margin-left: 16.66667%; + } + .custom-theme .el-col-sm-pull-4 { + position: relative; + right: 16.66667%; + } + .custom-theme .el-col-sm-push-4 { + position: relative; + left: 16.66667%; + } + .custom-theme .el-col-sm-5 { + width: 20.83333%; + } + .custom-theme .el-col-sm-offset-5 { + margin-left: 20.83333%; + } + .custom-theme .el-col-sm-pull-5 { + position: relative; + right: 20.83333%; + } + .custom-theme .el-col-sm-push-5 { + position: relative; + left: 20.83333%; + } + .custom-theme .el-col-sm-6 { + width: 25%; + } + .custom-theme .el-col-sm-offset-6 { + margin-left: 25%; + } + .custom-theme .el-col-sm-pull-6 { + position: relative; + right: 25%; + } + .custom-theme .el-col-sm-push-6 { + position: relative; + left: 25%; + } + .custom-theme .el-col-sm-7 { + width: 29.16667%; + } + .custom-theme .el-col-sm-offset-7 { + margin-left: 29.16667%; + } + .custom-theme .el-col-sm-pull-7 { + position: relative; + right: 29.16667%; + } + .custom-theme .el-col-sm-push-7 { + position: relative; + left: 29.16667%; + } + .custom-theme .el-col-sm-8 { + width: 33.33333%; + } + .custom-theme .el-col-sm-offset-8 { + margin-left: 33.33333%; + } + .custom-theme .el-col-sm-pull-8 { + position: relative; + right: 33.33333%; + } + .custom-theme .el-col-sm-push-8 { + position: relative; + left: 33.33333%; + } + .custom-theme .el-col-sm-9 { + width: 37.5%; + } + .custom-theme .el-col-sm-offset-9 { + margin-left: 37.5%; + } + .custom-theme .el-col-sm-pull-9 { + position: relative; + right: 37.5%; + } + .custom-theme .el-col-sm-push-9 { + position: relative; + left: 37.5%; + } + .custom-theme .el-col-sm-10 { + width: 41.66667%; + } + .custom-theme .el-col-sm-offset-10 { + margin-left: 41.66667%; + } + .custom-theme .el-col-sm-pull-10 { + position: relative; + right: 41.66667%; + } + .custom-theme .el-col-sm-push-10 { + position: relative; + left: 41.66667%; + } + .custom-theme .el-col-sm-11 { + width: 45.83333%; + } + .custom-theme .el-col-sm-offset-11 { + margin-left: 45.83333%; + } + .custom-theme .el-col-sm-pull-11 { + position: relative; + right: 45.83333%; + } + .custom-theme .el-col-sm-push-11 { + position: relative; + left: 45.83333%; + } + .custom-theme .el-col-sm-12 { + width: 50%; + } + .custom-theme .el-col-sm-offset-12 { + margin-left: 50%; + } + .custom-theme .el-col-sm-pull-12 { + position: relative; + right: 50%; + } + .custom-theme .el-col-sm-push-12 { + position: relative; + left: 50%; + } + .custom-theme .el-col-sm-13 { + width: 54.16667%; + } + .custom-theme .el-col-sm-offset-13 { + margin-left: 54.16667%; + } + .custom-theme .el-col-sm-pull-13 { + position: relative; + right: 54.16667%; + } + .custom-theme .el-col-sm-push-13 { + position: relative; + left: 54.16667%; + } + .custom-theme .el-col-sm-14 { + width: 58.33333%; + } + .custom-theme .el-col-sm-offset-14 { + margin-left: 58.33333%; + } + .custom-theme .el-col-sm-pull-14 { + position: relative; + right: 58.33333%; + } + .custom-theme .el-col-sm-push-14 { + position: relative; + left: 58.33333%; + } + .custom-theme .el-col-sm-15 { + width: 62.5%; + } + .custom-theme .el-col-sm-offset-15 { + margin-left: 62.5%; + } + .custom-theme .el-col-sm-pull-15 { + position: relative; + right: 62.5%; + } + .custom-theme .el-col-sm-push-15 { + position: relative; + left: 62.5%; + } + .custom-theme .el-col-sm-16 { + width: 66.66667%; + } + .custom-theme .el-col-sm-offset-16 { + margin-left: 66.66667%; + } + .custom-theme .el-col-sm-pull-16 { + position: relative; + right: 66.66667%; + } + .custom-theme .el-col-sm-push-16 { + position: relative; + left: 66.66667%; + } + .custom-theme .el-col-sm-17 { + width: 70.83333%; + } + .custom-theme .el-col-sm-offset-17 { + margin-left: 70.83333%; + } + .custom-theme .el-col-sm-pull-17 { + position: relative; + right: 70.83333%; + } + .custom-theme .el-col-sm-push-17 { + position: relative; + left: 70.83333%; + } + .custom-theme .el-col-sm-18 { + width: 75%; + } + .custom-theme .el-col-sm-offset-18 { + margin-left: 75%; + } + .custom-theme .el-col-sm-pull-18 { + position: relative; + right: 75%; + } + .custom-theme .el-col-sm-push-18 { + position: relative; + left: 75%; + } + .custom-theme .el-col-sm-19 { + width: 79.16667%; + } + .custom-theme .el-col-sm-offset-19 { + margin-left: 79.16667%; + } + .custom-theme .el-col-sm-pull-19 { + position: relative; + right: 79.16667%; + } + .custom-theme .el-col-sm-push-19 { + position: relative; + left: 79.16667%; + } + .custom-theme .el-col-sm-20 { + width: 83.33333%; + } + .custom-theme .el-col-sm-offset-20 { + margin-left: 83.33333%; + } + .custom-theme .el-col-sm-pull-20 { + position: relative; + right: 83.33333%; + } + .custom-theme .el-col-sm-push-20 { + position: relative; + left: 83.33333%; + } + .custom-theme .el-col-sm-21 { + width: 87.5%; + } + .custom-theme .el-col-sm-offset-21 { + margin-left: 87.5%; + } + .custom-theme .el-col-sm-pull-21 { + position: relative; + right: 87.5%; + } + .custom-theme .el-col-sm-push-21 { + position: relative; + left: 87.5%; + } + .custom-theme .el-col-sm-22 { + width: 91.66667%; + } + .custom-theme .el-col-sm-offset-22 { + margin-left: 91.66667%; + } + .custom-theme .el-col-sm-pull-22 { + position: relative; + right: 91.66667%; + } + .custom-theme .el-col-sm-push-22 { + position: relative; + left: 91.66667%; + } + .custom-theme .el-col-sm-23 { + width: 95.83333%; + } + .custom-theme .el-col-sm-offset-23 { + margin-left: 95.83333%; + } + .custom-theme .el-col-sm-pull-23 { + position: relative; + right: 95.83333%; + } + .custom-theme .el-col-sm-push-23 { + position: relative; + left: 95.83333%; + } + .custom-theme .el-col-sm-24 { + width: 100%; + } + .custom-theme .el-col-sm-offset-24 { + margin-left: 100%; + } + .custom-theme .el-col-sm-pull-24 { + position: relative; + right: 100%; + } + .custom-theme .el-col-sm-push-24 { + position: relative; + left: 100%; + } +} +@media only screen and (min-width: 992px) { + .custom-theme .el-col-md-0 { + display: none; + } + .custom-theme .el-col-md-1 { + width: 4.16667%; + } + .custom-theme .el-col-md-offset-1 { + margin-left: 4.16667%; + } + .custom-theme .el-col-md-pull-1 { + position: relative; + right: 4.16667%; + } + .custom-theme .el-col-md-push-1 { + position: relative; + left: 4.16667%; + } + .custom-theme .el-col-md-2 { + width: 8.33333%; + } + .custom-theme .el-col-md-offset-2 { + margin-left: 8.33333%; + } + .custom-theme .el-col-md-pull-2 { + position: relative; + right: 8.33333%; + } + .custom-theme .el-col-md-push-2 { + position: relative; + left: 8.33333%; + } + .custom-theme .el-col-md-3 { + width: 12.5%; + } + .custom-theme .el-col-md-offset-3 { + margin-left: 12.5%; + } + .custom-theme .el-col-md-pull-3 { + position: relative; + right: 12.5%; + } + .custom-theme .el-col-md-push-3 { + position: relative; + left: 12.5%; + } + .custom-theme .el-col-md-4 { + width: 16.66667%; + } + .custom-theme .el-col-md-offset-4 { + margin-left: 16.66667%; + } + .custom-theme .el-col-md-pull-4 { + position: relative; + right: 16.66667%; + } + .custom-theme .el-col-md-push-4 { + position: relative; + left: 16.66667%; + } + .custom-theme .el-col-md-5 { + width: 20.83333%; + } + .custom-theme .el-col-md-offset-5 { + margin-left: 20.83333%; + } + .custom-theme .el-col-md-pull-5 { + position: relative; + right: 20.83333%; + } + .custom-theme .el-col-md-push-5 { + position: relative; + left: 20.83333%; + } + .custom-theme .el-col-md-6 { + width: 25%; + } + .custom-theme .el-col-md-offset-6 { + margin-left: 25%; + } + .custom-theme .el-col-md-pull-6 { + position: relative; + right: 25%; + } + .custom-theme .el-col-md-push-6 { + position: relative; + left: 25%; + } + .custom-theme .el-col-md-7 { + width: 29.16667%; + } + .custom-theme .el-col-md-offset-7 { + margin-left: 29.16667%; + } + .custom-theme .el-col-md-pull-7 { + position: relative; + right: 29.16667%; + } + .custom-theme .el-col-md-push-7 { + position: relative; + left: 29.16667%; + } + .custom-theme .el-col-md-8 { + width: 33.33333%; + } + .custom-theme .el-col-md-offset-8 { + margin-left: 33.33333%; + } + .custom-theme .el-col-md-pull-8 { + position: relative; + right: 33.33333%; + } + .custom-theme .el-col-md-push-8 { + position: relative; + left: 33.33333%; + } + .custom-theme .el-col-md-9 { + width: 37.5%; + } + .custom-theme .el-col-md-offset-9 { + margin-left: 37.5%; + } + .custom-theme .el-col-md-pull-9 { + position: relative; + right: 37.5%; + } + .custom-theme .el-col-md-push-9 { + position: relative; + left: 37.5%; + } + .custom-theme .el-col-md-10 { + width: 41.66667%; + } + .custom-theme .el-col-md-offset-10 { + margin-left: 41.66667%; + } + .custom-theme .el-col-md-pull-10 { + position: relative; + right: 41.66667%; + } + .custom-theme .el-col-md-push-10 { + position: relative; + left: 41.66667%; + } + .custom-theme .el-col-md-11 { + width: 45.83333%; + } + .custom-theme .el-col-md-offset-11 { + margin-left: 45.83333%; + } + .custom-theme .el-col-md-pull-11 { + position: relative; + right: 45.83333%; + } + .custom-theme .el-col-md-push-11 { + position: relative; + left: 45.83333%; + } + .custom-theme .el-col-md-12 { + width: 50%; + } + .custom-theme .el-col-md-offset-12 { + margin-left: 50%; + } + .custom-theme .el-col-md-pull-12 { + position: relative; + right: 50%; + } + .custom-theme .el-col-md-push-12 { + position: relative; + left: 50%; + } + .custom-theme .el-col-md-13 { + width: 54.16667%; + } + .custom-theme .el-col-md-offset-13 { + margin-left: 54.16667%; + } + .custom-theme .el-col-md-pull-13 { + position: relative; + right: 54.16667%; + } + .custom-theme .el-col-md-push-13 { + position: relative; + left: 54.16667%; + } + .custom-theme .el-col-md-14 { + width: 58.33333%; + } + .custom-theme .el-col-md-offset-14 { + margin-left: 58.33333%; + } + .custom-theme .el-col-md-pull-14 { + position: relative; + right: 58.33333%; + } + .custom-theme .el-col-md-push-14 { + position: relative; + left: 58.33333%; + } + .custom-theme .el-col-md-15 { + width: 62.5%; + } + .custom-theme .el-col-md-offset-15 { + margin-left: 62.5%; + } + .custom-theme .el-col-md-pull-15 { + position: relative; + right: 62.5%; + } + .custom-theme .el-col-md-push-15 { + position: relative; + left: 62.5%; + } + .custom-theme .el-col-md-16 { + width: 66.66667%; + } + .custom-theme .el-col-md-offset-16 { + margin-left: 66.66667%; + } + .custom-theme .el-col-md-pull-16 { + position: relative; + right: 66.66667%; + } + .custom-theme .el-col-md-push-16 { + position: relative; + left: 66.66667%; + } + .custom-theme .el-col-md-17 { + width: 70.83333%; + } + .custom-theme .el-col-md-offset-17 { + margin-left: 70.83333%; + } + .custom-theme .el-col-md-pull-17 { + position: relative; + right: 70.83333%; + } + .custom-theme .el-col-md-push-17 { + position: relative; + left: 70.83333%; + } + .custom-theme .el-col-md-18 { + width: 75%; + } + .custom-theme .el-col-md-offset-18 { + margin-left: 75%; + } + .custom-theme .el-col-md-pull-18 { + position: relative; + right: 75%; + } + .custom-theme .el-col-md-push-18 { + position: relative; + left: 75%; + } + .custom-theme .el-col-md-19 { + width: 79.16667%; + } + .custom-theme .el-col-md-offset-19 { + margin-left: 79.16667%; + } + .custom-theme .el-col-md-pull-19 { + position: relative; + right: 79.16667%; + } + .custom-theme .el-col-md-push-19 { + position: relative; + left: 79.16667%; + } + .custom-theme .el-col-md-20 { + width: 83.33333%; + } + .custom-theme .el-col-md-offset-20 { + margin-left: 83.33333%; + } + .custom-theme .el-col-md-pull-20 { + position: relative; + right: 83.33333%; + } + .custom-theme .el-col-md-push-20 { + position: relative; + left: 83.33333%; + } + .custom-theme .el-col-md-21 { + width: 87.5%; + } + .custom-theme .el-col-md-offset-21 { + margin-left: 87.5%; + } + .custom-theme .el-col-md-pull-21 { + position: relative; + right: 87.5%; + } + .custom-theme .el-col-md-push-21 { + position: relative; + left: 87.5%; + } + .custom-theme .el-col-md-22 { + width: 91.66667%; + } + .custom-theme .el-col-md-offset-22 { + margin-left: 91.66667%; + } + .custom-theme .el-col-md-pull-22 { + position: relative; + right: 91.66667%; + } + .custom-theme .el-col-md-push-22 { + position: relative; + left: 91.66667%; + } + .custom-theme .el-col-md-23 { + width: 95.83333%; + } + .custom-theme .el-col-md-offset-23 { + margin-left: 95.83333%; + } + .custom-theme .el-col-md-pull-23 { + position: relative; + right: 95.83333%; + } + .custom-theme .el-col-md-push-23 { + position: relative; + left: 95.83333%; + } + .custom-theme .el-col-md-24 { + width: 100%; + } + .custom-theme .el-col-md-offset-24 { + margin-left: 100%; + } + .custom-theme .el-col-md-pull-24 { + position: relative; + right: 100%; + } + .custom-theme .el-col-md-push-24 { + position: relative; + left: 100%; + } +} +@media only screen and (min-width: 1200px) { + .custom-theme .el-col-lg-0 { + display: none; + } + .custom-theme .el-col-lg-1 { + width: 4.16667%; + } + .custom-theme .el-col-lg-offset-1 { + margin-left: 4.16667%; + } + .custom-theme .el-col-lg-pull-1 { + position: relative; + right: 4.16667%; + } + .custom-theme .el-col-lg-push-1 { + position: relative; + left: 4.16667%; + } + .custom-theme .el-col-lg-2 { + width: 8.33333%; + } + .custom-theme .el-col-lg-offset-2 { + margin-left: 8.33333%; + } + .custom-theme .el-col-lg-pull-2 { + position: relative; + right: 8.33333%; + } + .custom-theme .el-col-lg-push-2 { + position: relative; + left: 8.33333%; + } + .custom-theme .el-col-lg-3 { + width: 12.5%; + } + .custom-theme .el-col-lg-offset-3 { + margin-left: 12.5%; + } + .custom-theme .el-col-lg-pull-3 { + position: relative; + right: 12.5%; + } + .custom-theme .el-col-lg-push-3 { + position: relative; + left: 12.5%; + } + .custom-theme .el-col-lg-4 { + width: 16.66667%; + } + .custom-theme .el-col-lg-offset-4 { + margin-left: 16.66667%; + } + .custom-theme .el-col-lg-pull-4 { + position: relative; + right: 16.66667%; + } + .custom-theme .el-col-lg-push-4 { + position: relative; + left: 16.66667%; + } + .custom-theme .el-col-lg-5 { + width: 20.83333%; + } + .custom-theme .el-col-lg-offset-5 { + margin-left: 20.83333%; + } + .custom-theme .el-col-lg-pull-5 { + position: relative; + right: 20.83333%; + } + .custom-theme .el-col-lg-push-5 { + position: relative; + left: 20.83333%; + } + .custom-theme .el-col-lg-6 { + width: 25%; + } + .custom-theme .el-col-lg-offset-6 { + margin-left: 25%; + } + .custom-theme .el-col-lg-pull-6 { + position: relative; + right: 25%; + } + .custom-theme .el-col-lg-push-6 { + position: relative; + left: 25%; + } + .custom-theme .el-col-lg-7 { + width: 29.16667%; + } + .custom-theme .el-col-lg-offset-7 { + margin-left: 29.16667%; + } + .custom-theme .el-col-lg-pull-7 { + position: relative; + right: 29.16667%; + } + .custom-theme .el-col-lg-push-7 { + position: relative; + left: 29.16667%; + } + .custom-theme .el-col-lg-8 { + width: 33.33333%; + } + .custom-theme .el-col-lg-offset-8 { + margin-left: 33.33333%; + } + .custom-theme .el-col-lg-pull-8 { + position: relative; + right: 33.33333%; + } + .custom-theme .el-col-lg-push-8 { + position: relative; + left: 33.33333%; + } + .custom-theme .el-col-lg-9 { + width: 37.5%; + } + .custom-theme .el-col-lg-offset-9 { + margin-left: 37.5%; + } + .custom-theme .el-col-lg-pull-9 { + position: relative; + right: 37.5%; + } + .custom-theme .el-col-lg-push-9 { + position: relative; + left: 37.5%; + } + .custom-theme .el-col-lg-10 { + width: 41.66667%; + } + .custom-theme .el-col-lg-offset-10 { + margin-left: 41.66667%; + } + .custom-theme .el-col-lg-pull-10 { + position: relative; + right: 41.66667%; + } + .custom-theme .el-col-lg-push-10 { + position: relative; + left: 41.66667%; + } + .custom-theme .el-col-lg-11 { + width: 45.83333%; + } + .custom-theme .el-col-lg-offset-11 { + margin-left: 45.83333%; + } + .custom-theme .el-col-lg-pull-11 { + position: relative; + right: 45.83333%; + } + .custom-theme .el-col-lg-push-11 { + position: relative; + left: 45.83333%; + } + .custom-theme .el-col-lg-12 { + width: 50%; + } + .custom-theme .el-col-lg-offset-12 { + margin-left: 50%; + } + .custom-theme .el-col-lg-pull-12 { + position: relative; + right: 50%; + } + .custom-theme .el-col-lg-push-12 { + position: relative; + left: 50%; + } + .custom-theme .el-col-lg-13 { + width: 54.16667%; + } + .custom-theme .el-col-lg-offset-13 { + margin-left: 54.16667%; + } + .custom-theme .el-col-lg-pull-13 { + position: relative; + right: 54.16667%; + } + .custom-theme .el-col-lg-push-13 { + position: relative; + left: 54.16667%; + } + .custom-theme .el-col-lg-14 { + width: 58.33333%; + } + .custom-theme .el-col-lg-offset-14 { + margin-left: 58.33333%; + } + .custom-theme .el-col-lg-pull-14 { + position: relative; + right: 58.33333%; + } + .custom-theme .el-col-lg-push-14 { + position: relative; + left: 58.33333%; + } + .custom-theme .el-col-lg-15 { + width: 62.5%; + } + .custom-theme .el-col-lg-offset-15 { + margin-left: 62.5%; + } + .custom-theme .el-col-lg-pull-15 { + position: relative; + right: 62.5%; + } + .custom-theme .el-col-lg-push-15 { + position: relative; + left: 62.5%; + } + .custom-theme .el-col-lg-16 { + width: 66.66667%; + } + .custom-theme .el-col-lg-offset-16 { + margin-left: 66.66667%; + } + .custom-theme .el-col-lg-pull-16 { + position: relative; + right: 66.66667%; + } + .custom-theme .el-col-lg-push-16 { + position: relative; + left: 66.66667%; + } + .custom-theme .el-col-lg-17 { + width: 70.83333%; + } + .custom-theme .el-col-lg-offset-17 { + margin-left: 70.83333%; + } + .custom-theme .el-col-lg-pull-17 { + position: relative; + right: 70.83333%; + } + .custom-theme .el-col-lg-push-17 { + position: relative; + left: 70.83333%; + } + .custom-theme .el-col-lg-18 { + width: 75%; + } + .custom-theme .el-col-lg-offset-18 { + margin-left: 75%; + } + .custom-theme .el-col-lg-pull-18 { + position: relative; + right: 75%; + } + .custom-theme .el-col-lg-push-18 { + position: relative; + left: 75%; + } + .custom-theme .el-col-lg-19 { + width: 79.16667%; + } + .custom-theme .el-col-lg-offset-19 { + margin-left: 79.16667%; + } + .custom-theme .el-col-lg-pull-19 { + position: relative; + right: 79.16667%; + } + .custom-theme .el-col-lg-push-19 { + position: relative; + left: 79.16667%; + } + .custom-theme .el-col-lg-20 { + width: 83.33333%; + } + .custom-theme .el-col-lg-offset-20 { + margin-left: 83.33333%; + } + .custom-theme .el-col-lg-pull-20 { + position: relative; + right: 83.33333%; + } + .custom-theme .el-col-lg-push-20 { + position: relative; + left: 83.33333%; + } + .custom-theme .el-col-lg-21 { + width: 87.5%; + } + .custom-theme .el-col-lg-offset-21 { + margin-left: 87.5%; + } + .custom-theme .el-col-lg-pull-21 { + position: relative; + right: 87.5%; + } + .custom-theme .el-col-lg-push-21 { + position: relative; + left: 87.5%; + } + .custom-theme .el-col-lg-22 { + width: 91.66667%; + } + .custom-theme .el-col-lg-offset-22 { + margin-left: 91.66667%; + } + .custom-theme .el-col-lg-pull-22 { + position: relative; + right: 91.66667%; + } + .custom-theme .el-col-lg-push-22 { + position: relative; + left: 91.66667%; + } + .custom-theme .el-col-lg-23 { + width: 95.83333%; + } + .custom-theme .el-col-lg-offset-23 { + margin-left: 95.83333%; + } + .custom-theme .el-col-lg-pull-23 { + position: relative; + right: 95.83333%; + } + .custom-theme .el-col-lg-push-23 { + position: relative; + left: 95.83333%; + } + .custom-theme .el-col-lg-24 { + width: 100%; + } + .custom-theme .el-col-lg-offset-24 { + margin-left: 100%; + } + .custom-theme .el-col-lg-pull-24 { + position: relative; + right: 100%; + } + .custom-theme .el-col-lg-push-24 { + position: relative; + left: 100%; + } +} +@media only screen and (min-width: 1920px) { + .custom-theme .el-col-xl-0 { + display: none; + } + .custom-theme .el-col-xl-1 { + width: 4.16667%; + } + .custom-theme .el-col-xl-offset-1 { + margin-left: 4.16667%; + } + .custom-theme .el-col-xl-pull-1 { + position: relative; + right: 4.16667%; + } + .custom-theme .el-col-xl-push-1 { + position: relative; + left: 4.16667%; + } + .custom-theme .el-col-xl-2 { + width: 8.33333%; + } + .custom-theme .el-col-xl-offset-2 { + margin-left: 8.33333%; + } + .custom-theme .el-col-xl-pull-2 { + position: relative; + right: 8.33333%; + } + .custom-theme .el-col-xl-push-2 { + position: relative; + left: 8.33333%; + } + .custom-theme .el-col-xl-3 { + width: 12.5%; + } + .custom-theme .el-col-xl-offset-3 { + margin-left: 12.5%; + } + .custom-theme .el-col-xl-pull-3 { + position: relative; + right: 12.5%; + } + .custom-theme .el-col-xl-push-3 { + position: relative; + left: 12.5%; + } + .custom-theme .el-col-xl-4 { + width: 16.66667%; + } + .custom-theme .el-col-xl-offset-4 { + margin-left: 16.66667%; + } + .custom-theme .el-col-xl-pull-4 { + position: relative; + right: 16.66667%; + } + .custom-theme .el-col-xl-push-4 { + position: relative; + left: 16.66667%; + } + .custom-theme .el-col-xl-5 { + width: 20.83333%; + } + .custom-theme .el-col-xl-offset-5 { + margin-left: 20.83333%; + } + .custom-theme .el-col-xl-pull-5 { + position: relative; + right: 20.83333%; + } + .custom-theme .el-col-xl-push-5 { + position: relative; + left: 20.83333%; + } + .custom-theme .el-col-xl-6 { + width: 25%; + } + .custom-theme .el-col-xl-offset-6 { + margin-left: 25%; + } + .custom-theme .el-col-xl-pull-6 { + position: relative; + right: 25%; + } + .custom-theme .el-col-xl-push-6 { + position: relative; + left: 25%; + } + .custom-theme .el-col-xl-7 { + width: 29.16667%; + } + .custom-theme .el-col-xl-offset-7 { + margin-left: 29.16667%; + } + .custom-theme .el-col-xl-pull-7 { + position: relative; + right: 29.16667%; + } + .custom-theme .el-col-xl-push-7 { + position: relative; + left: 29.16667%; + } + .custom-theme .el-col-xl-8 { + width: 33.33333%; + } + .custom-theme .el-col-xl-offset-8 { + margin-left: 33.33333%; + } + .custom-theme .el-col-xl-pull-8 { + position: relative; + right: 33.33333%; + } + .custom-theme .el-col-xl-push-8 { + position: relative; + left: 33.33333%; + } + .custom-theme .el-col-xl-9 { + width: 37.5%; + } + .custom-theme .el-col-xl-offset-9 { + margin-left: 37.5%; + } + .custom-theme .el-col-xl-pull-9 { + position: relative; + right: 37.5%; + } + .custom-theme .el-col-xl-push-9 { + position: relative; + left: 37.5%; + } + .custom-theme .el-col-xl-10 { + width: 41.66667%; + } + .custom-theme .el-col-xl-offset-10 { + margin-left: 41.66667%; + } + .custom-theme .el-col-xl-pull-10 { + position: relative; + right: 41.66667%; + } + .custom-theme .el-col-xl-push-10 { + position: relative; + left: 41.66667%; + } + .custom-theme .el-col-xl-11 { + width: 45.83333%; + } + .custom-theme .el-col-xl-offset-11 { + margin-left: 45.83333%; + } + .custom-theme .el-col-xl-pull-11 { + position: relative; + right: 45.83333%; + } + .custom-theme .el-col-xl-push-11 { + position: relative; + left: 45.83333%; + } + .custom-theme .el-col-xl-12 { + width: 50%; + } + .custom-theme .el-col-xl-offset-12 { + margin-left: 50%; + } + .custom-theme .el-col-xl-pull-12 { + position: relative; + right: 50%; + } + .custom-theme .el-col-xl-push-12 { + position: relative; + left: 50%; + } + .custom-theme .el-col-xl-13 { + width: 54.16667%; + } + .custom-theme .el-col-xl-offset-13 { + margin-left: 54.16667%; + } + .custom-theme .el-col-xl-pull-13 { + position: relative; + right: 54.16667%; + } + .custom-theme .el-col-xl-push-13 { + position: relative; + left: 54.16667%; + } + .custom-theme .el-col-xl-14 { + width: 58.33333%; + } + .custom-theme .el-col-xl-offset-14 { + margin-left: 58.33333%; + } + .custom-theme .el-col-xl-pull-14 { + position: relative; + right: 58.33333%; + } + .custom-theme .el-col-xl-push-14 { + position: relative; + left: 58.33333%; + } + .custom-theme .el-col-xl-15 { + width: 62.5%; + } + .custom-theme .el-col-xl-offset-15 { + margin-left: 62.5%; + } + .custom-theme .el-col-xl-pull-15 { + position: relative; + right: 62.5%; + } + .custom-theme .el-col-xl-push-15 { + position: relative; + left: 62.5%; + } + .custom-theme .el-col-xl-16 { + width: 66.66667%; + } + .custom-theme .el-col-xl-offset-16 { + margin-left: 66.66667%; + } + .custom-theme .el-col-xl-pull-16 { + position: relative; + right: 66.66667%; + } + .custom-theme .el-col-xl-push-16 { + position: relative; + left: 66.66667%; + } + .custom-theme .el-col-xl-17 { + width: 70.83333%; + } + .custom-theme .el-col-xl-offset-17 { + margin-left: 70.83333%; + } + .custom-theme .el-col-xl-pull-17 { + position: relative; + right: 70.83333%; + } + .custom-theme .el-col-xl-push-17 { + position: relative; + left: 70.83333%; + } + .custom-theme .el-col-xl-18 { + width: 75%; + } + .custom-theme .el-col-xl-offset-18 { + margin-left: 75%; + } + .custom-theme .el-col-xl-pull-18 { + position: relative; + right: 75%; + } + .custom-theme .el-col-xl-push-18 { + position: relative; + left: 75%; + } + .custom-theme .el-col-xl-19 { + width: 79.16667%; + } + .custom-theme .el-col-xl-offset-19 { + margin-left: 79.16667%; + } + .custom-theme .el-col-xl-pull-19 { + position: relative; + right: 79.16667%; + } + .custom-theme .el-col-xl-push-19 { + position: relative; + left: 79.16667%; + } + .custom-theme .el-col-xl-20 { + width: 83.33333%; + } + .custom-theme .el-col-xl-offset-20 { + margin-left: 83.33333%; + } + .custom-theme .el-col-xl-pull-20 { + position: relative; + right: 83.33333%; + } + .custom-theme .el-col-xl-push-20 { + position: relative; + left: 83.33333%; + } + .custom-theme .el-col-xl-21 { + width: 87.5%; + } + .custom-theme .el-col-xl-offset-21 { + margin-left: 87.5%; + } + .custom-theme .el-col-xl-pull-21 { + position: relative; + right: 87.5%; + } + .custom-theme .el-col-xl-push-21 { + position: relative; + left: 87.5%; + } + .custom-theme .el-col-xl-22 { + width: 91.66667%; + } + .custom-theme .el-col-xl-offset-22 { + margin-left: 91.66667%; + } + .custom-theme .el-col-xl-pull-22 { + position: relative; + right: 91.66667%; + } + .custom-theme .el-col-xl-push-22 { + position: relative; + left: 91.66667%; + } + .custom-theme .el-col-xl-23 { + width: 95.83333%; + } + .custom-theme .el-col-xl-offset-23 { + margin-left: 95.83333%; + } + .custom-theme .el-col-xl-pull-23 { + position: relative; + right: 95.83333%; + } + .custom-theme .el-col-xl-push-23 { + position: relative; + left: 95.83333%; + } + .custom-theme .el-col-xl-24 { + width: 100%; + } + .custom-theme .el-col-xl-offset-24 { + margin-left: 100%; + } + .custom-theme .el-col-xl-pull-24 { + position: relative; + right: 100%; + } + .custom-theme .el-col-xl-push-24 { + position: relative; + left: 100%; + } +} +.custom-theme .el-progress { + position: relative; + line-height: 1; +} +.custom-theme .el-progress__text { + font-size: 14px; + color: #5a5e66; + display: inline-block; + vertical-align: middle; + margin-left: 10px; + line-height: 1; +} +.custom-theme .el-progress__text i { + vertical-align: middle; + display: block; +} +.custom-theme .el-progress--circle { + display: inline-block; +} +.custom-theme .el-progress--circle .el-progress__text { + position: absolute; + top: 50%; + left: 0; + width: 100%; + text-align: center; + margin: 0; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); +} +.custom-theme .el-progress--circle .el-progress__text i { + vertical-align: middle; + display: inline-block; +} +.custom-theme .el-progress--without-text .el-progress__text { + display: none; +} +.custom-theme .el-progress--without-text .el-progress-bar { + padding-right: 0; + margin-right: 0; + display: block; +} +.custom-theme .el-progress--text-inside .el-progress-bar { + padding-right: 0; + margin-right: 0; +} +.custom-theme .el-progress.is-success .el-progress-bar__inner { + background-color: #409167; +} +.custom-theme .el-progress.is-success .el-progress__text { + color: #409167; +} +.custom-theme .el-progress.is-exception .el-progress-bar__inner { + background-color: #b3450e; +} +.custom-theme .el-progress.is-exception .el-progress__text { + color: #b3450e; +} +.custom-theme .el-progress-bar { + padding-right: 50px; + display: inline-block; + vertical-align: middle; + width: 100%; + margin-right: -55px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-progress-bar__outer { + height: 6px; + border-radius: 100px; + background-color: #e6ebf5; + overflow: hidden; + position: relative; + vertical-align: middle; +} +.custom-theme .el-progress-bar__inner { + position: absolute; + left: 0; + top: 0; + height: 100%; + background-color: #262729; + text-align: right; + border-radius: 100px; + line-height: 1; + white-space: nowrap; +} +.custom-theme .el-progress-bar__inner::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} +.custom-theme .el-progress-bar__innerText { + display: inline-block; + vertical-align: middle; + color: #fff; + font-size: 12px; + margin: 0 5px; +} +@-webkit-keyframes progress { + 0% { + background-position: 0 0; + } + 100% { + background-position: 32px 0; + } +} +@keyframes progress { + 0% { + background-position: 0 0; + } + 100% { + background-position: 32px 0; + } +} +.custom-theme .el-upload { + display: inline-block; + text-align: center; + cursor: pointer; +} +.custom-theme .el-upload__input { + display: none; +} +.custom-theme .el-upload__tip { + font-size: 12px; + color: #5a5e66; + margin-top: 7px; +} +.custom-theme .el-upload iframe { + position: absolute; + z-index: -1; + top: 0; + left: 0; + opacity: 0; +} +.custom-theme .el-upload--picture-card { + background-color: #fbfdff; + border: 1px dashed #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 148px; + height: 148px; + cursor: pointer; + line-height: 146px; + vertical-align: top; +} +.custom-theme .el-upload--picture-card i { + font-size: 28px; + color: #8c939d; +} +.custom-theme .el-upload--picture-card:hover { + border-color: #262729; + color: #262729; +} +.custom-theme .el-upload-dragger { + background-color: #fff; + border: 1px dashed #d9d9d9; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 360px; + height: 180px; + text-align: center; + cursor: pointer; + position: relative; + overflow: hidden; +} +.custom-theme .el-upload-dragger .el-icon-upload { + font-size: 67px; + color: #b4bccc; + margin: 40px 0 16px; + line-height: 50px; +} +.custom-theme .el-upload-dragger + .el-upload__tip { + text-align: center; +} +.custom-theme .el-upload-dragger ~ .el-upload__files { + border-top: 1px solid #d8dce5; + margin-top: 7px; + padding-top: 5px; +} +.custom-theme .el-upload-dragger .el-upload__text { + color: #5a5e66; + font-size: 14px; + text-align: center; +} +.custom-theme .el-upload-dragger .el-upload__text em { + color: #262729; + font-style: normal; +} +.custom-theme .el-upload-dragger:hover { + border-color: #262729; +} +.custom-theme .el-upload-dragger.is-dragover { + background-color: rgba(32, 159, 255, 0.06); + border: 2px dashed #262729; +} +.custom-theme .el-upload-list { + margin: 0; + padding: 0; + list-style: none; +} +.custom-theme .el-upload-list__item { + -webkit-transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1); + font-size: 14px; + color: #5a5e66; + line-height: 1.8; + margin-top: 5px; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + width: 100%; +} +.custom-theme .el-upload-list__item .el-progress { + position: absolute; + top: 20px; + width: 100%; +} +.custom-theme .el-upload-list__item .el-progress__text { + position: absolute; + right: 0; + top: -13px; +} +.custom-theme .el-upload-list__item .el-progress-bar { + margin-right: 0; + padding-right: 0; +} +.custom-theme .el-upload-list__item:first-child { + margin-top: 10px; +} +.custom-theme .el-upload-list__item .el-icon-upload-success { + color: #409167; +} +.custom-theme .el-upload-list__item .el-icon-close { + display: none; + position: absolute; + top: 5px; + right: 5px; + cursor: pointer; + opacity: 0.75; + color: #5a5e66; +} +.custom-theme .el-upload-list__item .el-icon-close:hover { + opacity: 1; +} +.custom-theme .el-upload-list__item .el-icon-close-tip { + display: none; + position: absolute; + top: 5px; + right: 0; + cursor: pointer; + opacity: 1; + color: #262729; + -webkit-transform: translate(15%, 0); + transform: translate(15%, 0); +} +.custom-theme .el-upload-list__item:hover { + background-color: #f5f7fa; +} +.custom-theme .el-upload-list__item:hover .el-icon-close { + display: inline-block; +} +.custom-theme .el-upload-list__item:hover .el-progress__text { + display: none; +} +.custom-theme + .el-upload-list__item.is-success + .el-upload-list__item-status-label { + display: block; +} +.custom-theme .el-upload-list__item.is-success .el-upload-list__item-name:focus, +.custom-theme + .el-upload-list__item.is-success + .el-upload-list__item-name:hover { + color: #262729; + cursor: pointer; +} +.custom-theme .el-upload-list__item.is-success:focus .el-icon-close-tip { + display: inline-block; +} +.custom-theme .el-upload-list__item.is-success:active, +.custom-theme .el-upload-list__item.is-success:focus:not(.focusing) { + outline-width: 0; +} +.custom-theme .el-upload-list__item.is-success:active .el-icon-close-tip, +.custom-theme + .el-upload-list__item.is-success:focus:not(.focusing) + .el-icon-close-tip { + display: none; +} +.custom-theme + .el-upload-list__item.is-success:focus + .el-upload-list__item-status-label, +.custom-theme + .el-upload-list__item.is-success:hover + .el-upload-list__item-status-label { + display: none; +} +.custom-theme + .el-upload-list.is-disabled + .el-upload-list__item:hover + .el-upload-list__item-status-label { + display: block; +} +.custom-theme .el-upload-list__item-name { + color: #5a5e66; + display: block; + margin-right: 40px; + overflow: hidden; + padding-left: 4px; + text-overflow: ellipsis; + -webkit-transition: color 0.3s; + transition: color 0.3s; + white-space: nowrap; +} +.custom-theme .el-upload-list__item-name [class^='el-icon'] { + height: 100%; + margin-right: 7px; + color: #878d99; + line-height: inherit; +} +.custom-theme .el-upload-list__item-status-label { + position: absolute; + right: 5px; + top: 0; + line-height: inherit; + display: none; +} +.custom-theme .el-upload-list__item-delete { + position: absolute; + right: 10px; + top: 0; + font-size: 12px; + color: #5a5e66; + display: none; +} +.custom-theme .el-upload-list__item-delete:hover { + color: #262729; +} +.custom-theme .el-upload-list--picture-card { + margin: 0; + display: inline; + vertical-align: top; +} +.custom-theme .el-upload-list--picture-card .el-upload-list__item { + overflow: hidden; + background-color: #fff; + border: 1px solid #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 148px; + height: 148px; + margin: 0 8px 8px 0; + display: inline-block; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item + .el-icon-check, +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item + .el-icon-circle-check { + color: #fff; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item + .el-icon-close { + display: none; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item:hover + .el-upload-list__item-status-label { + display: none; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item:hover + .el-progress__text { + display: block; +} +.custom-theme .el-upload-list--picture-card .el-upload-list__item-name { + display: none; +} +.custom-theme .el-upload-list--picture-card .el-upload-list__item-thumbnail { + width: 100%; + height: 100%; +} +.custom-theme .el-upload-list--picture-card .el-upload-list__item-status-label { + position: absolute; + right: -15px; + top: -6px; + width: 40px; + height: 24px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item-status-label + i { + font-size: 12px; + margin-top: 11px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + cursor: default; + text-align: center; + color: #fff; + opacity: 0; + font-size: 20px; + background-color: rgba(0, 0, 0, 0.5); + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item-actions::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions span { + display: none; + cursor: pointer; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item-actions + span + + span { + margin-left: 15px; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item-actions + .el-upload-list__item-delete { + position: static; + font-size: inherit; + color: inherit; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item-actions:hover { + opacity: 1; +} +.custom-theme + .el-upload-list--picture-card + .el-upload-list__item-actions:hover + span { + display: inline-block; +} +.custom-theme .el-upload-list--picture-card .el-progress { + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + bottom: auto; + width: 126px; +} +.custom-theme .el-upload-list--picture-card .el-progress .el-progress__text { + top: 50%; +} +.custom-theme .el-upload-list--picture .el-upload-list__item { + overflow: hidden; + background-color: #fff; + border: 1px solid #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; + padding: 10px 10px 10px 90px; + height: 92px; +} +.custom-theme .el-upload-list--picture .el-upload-list__item .el-icon-check, +.custom-theme + .el-upload-list--picture + .el-upload-list__item + .el-icon-circle-check { + color: #fff; +} +.custom-theme + .el-upload-list--picture + .el-upload-list__item:hover + .el-upload-list__item-status-label { + background: 0 0; + -webkit-box-shadow: none; + box-shadow: none; + top: -2px; + right: -12px; +} +.custom-theme + .el-upload-list--picture + .el-upload-list__item:hover + .el-progress__text { + display: block; +} +.custom-theme + .el-upload-list--picture + .el-upload-list__item.is-success + .el-upload-list__item-name { + line-height: 70px; + margin-top: 0; +} +.custom-theme + .el-upload-list--picture + .el-upload-list__item.is-success + .el-upload-list__item-name + i { + display: none; +} +.custom-theme .el-upload-list--picture .el-upload-list__item-thumbnail { + vertical-align: middle; + display: inline-block; + width: 70px; + height: 70px; + float: left; + position: relative; + z-index: 1; + margin-left: -80px; +} +.custom-theme .el-upload-list--picture .el-upload-list__item-name { + display: block; + margin-top: 20px; +} +.custom-theme .el-upload-list--picture .el-upload-list__item-name i { + font-size: 70px; + line-height: 1; + position: absolute; + left: 9px; + top: 10px; +} +.custom-theme .el-upload-list--picture .el-upload-list__item-status-label { + position: absolute; + right: -17px; + top: -7px; + width: 46px; + height: 26px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 1px 1px #ccc; + box-shadow: 0 1px 1px #ccc; +} +.custom-theme .el-upload-list--picture .el-upload-list__item-status-label i { + font-size: 12px; + margin-top: 12px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.custom-theme .el-upload-list--picture .el-progress { + position: relative; + top: -7px; +} +.custom-theme .el-upload-cover { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + z-index: 10; + cursor: default; +} +.custom-theme .el-upload-cover::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} +.custom-theme .el-upload-cover img { + display: block; + width: 100%; + height: 100%; +} +.custom-theme .el-upload-cover__label { + position: absolute; + right: -15px; + top: -6px; + width: 40px; + height: 24px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); +} +.custom-theme .el-upload-cover__label i { + font-size: 12px; + margin-top: 11px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + color: #fff; +} +.custom-theme .el-upload-cover__progress { + display: inline-block; + vertical-align: middle; + position: static; + width: 243px; +} +.custom-theme .el-upload-cover__progress + .el-upload__inner { + opacity: 0; +} +.custom-theme .el-upload-cover__content { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.custom-theme .el-upload-cover__interact { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.72); + text-align: center; +} +.custom-theme .el-upload-cover__interact .btn { + display: inline-block; + color: #fff; + font-size: 14px; + cursor: pointer; + vertical-align: middle; + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + margin-top: 60px; +} +.custom-theme .el-upload-cover__interact .btn i { + margin-top: 0; +} +.custom-theme .el-upload-cover__interact .btn span { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.custom-theme .el-upload-cover__interact .btn:not(:first-child) { + margin-left: 35px; +} +.custom-theme .el-upload-cover__interact .btn:hover { + -webkit-transform: translateY(-13px); + transform: translateY(-13px); +} +.custom-theme .el-upload-cover__interact .btn:hover span { + opacity: 1; +} +.custom-theme .el-upload-cover__interact .btn i { + color: #fff; + display: block; + font-size: 24px; + line-height: inherit; + margin: 0 auto 5px; +} +.custom-theme .el-upload-cover__title { + position: absolute; + bottom: 0; + left: 0; + background-color: #fff; + height: 36px; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 400; + text-align: left; + padding: 0 10px; + margin: 0; + line-height: 36px; + font-size: 14px; + color: #2d2f33; +} +.custom-theme .el-upload-cover + .el-upload__inner { + opacity: 0; + position: relative; + z-index: 1; +} +.custom-theme .el-progress { + position: relative; + line-height: 1; +} +.custom-theme .el-progress__text { + font-size: 14px; + color: #5a5e66; + display: inline-block; + vertical-align: middle; + margin-left: 10px; + line-height: 1; +} +.custom-theme .el-progress__text i { + vertical-align: middle; + display: block; +} +.custom-theme .el-progress--circle { + display: inline-block; +} +.custom-theme .el-progress--circle .el-progress__text { + position: absolute; + top: 50%; + left: 0; + width: 100%; + text-align: center; + margin: 0; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); +} +.custom-theme .el-progress--circle .el-progress__text i { + vertical-align: middle; + display: inline-block; +} +.custom-theme .el-progress--without-text .el-progress__text { + display: none; +} +.custom-theme .el-progress--without-text .el-progress-bar { + padding-right: 0; + margin-right: 0; + display: block; +} +.custom-theme .el-progress--text-inside .el-progress-bar { + padding-right: 0; + margin-right: 0; +} +.custom-theme .el-progress.is-success .el-progress-bar__inner { + background-color: #409167; +} +.custom-theme .el-progress.is-success .el-progress__text { + color: #409167; +} +.custom-theme .el-progress.is-exception .el-progress-bar__inner { + background-color: #b3450e; +} +.custom-theme .el-progress.is-exception .el-progress__text { + color: #b3450e; +} +.custom-theme .el-progress-bar { + padding-right: 50px; + display: inline-block; + vertical-align: middle; + width: 100%; + margin-right: -55px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-progress-bar__outer { + height: 6px; + border-radius: 100px; + background-color: #e6ebf5; + overflow: hidden; + position: relative; + vertical-align: middle; +} +.custom-theme .el-progress-bar__inner { + position: absolute; + left: 0; + top: 0; + height: 100%; + background-color: #262729; + text-align: right; + border-radius: 100px; + line-height: 1; + white-space: nowrap; +} +.custom-theme .el-progress-bar__inner::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} +.custom-theme .el-progress-bar__innerText { + display: inline-block; + vertical-align: middle; + color: #fff; + font-size: 12px; + margin: 0 5px; +} +@keyframes progress { + 0% { + background-position: 0 0; + } + 100% { + background-position: 32px 0; + } +} +.custom-theme .el-time-spinner { + width: 100%; + white-space: nowrap; +} +.custom-theme .el-spinner { + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-spinner-inner { + -webkit-animation: rotate 2s linear infinite; + animation: rotate 2s linear infinite; + width: 50px; + height: 50px; +} +.custom-theme .el-spinner-inner .path { + stroke: #ececec; + stroke-linecap: round; + -webkit-animation: dash 1.5s ease-in-out infinite; + animation: dash 1.5s ease-in-out infinite; +} +@-webkit-keyframes rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-webkit-keyframes dash { + 0% { + stroke-dasharray: 1, 150; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -35; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -124; + } +} +@keyframes dash { + 0% { + stroke-dasharray: 1, 150; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -35; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -124; + } +} +.custom-theme .el-message { + min-width: 380px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + border-width: 1px; + border-style: solid; + border-color: #e6ebf5; + position: fixed; + left: 50%; + top: 20px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + background-color: #edf2fc; + -webkit-transition: opacity 0.3s, -webkit-transform 0.4s; + transition: opacity 0.3s, -webkit-transform 0.4s; + transition: opacity 0.3s, transform 0.4s; + transition: opacity 0.3s, transform 0.4s, -webkit-transform 0.4s; + overflow: hidden; + padding: 15px 15px 15px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.custom-theme .el-message.is-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.custom-theme .el-message p { + margin: 0; +} +.custom-theme .el-message--info .el-message__content { + color: #0a76a4; +} +.custom-theme .el-message--success { + background-color: #ecf4f0; + border-color: #d9e9e1; +} +.custom-theme .el-message--success .el-message__content { + color: #409167; +} +.custom-theme .el-message--warning { + background-color: #f5f6e6; + border-color: #ebedce; +} +.custom-theme .el-message--warning .el-message__content { + color: #9da408; +} +.custom-theme .el-message--error { + background-color: #f7ece7; + border-color: #f0dacf; +} +.custom-theme .el-message--error .el-message__content { + color: #b3450e; +} +.custom-theme .el-message__icon { + margin-right: 10px; +} +.custom-theme .el-message__content { + padding: 0; + font-size: 14px; + line-height: 1; +} +.custom-theme .el-message__content:focus { + outline-width: 0; +} +.custom-theme .el-message__closeBtn { + position: absolute; + top: 50%; + right: 15px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + cursor: pointer; + color: #b4bccc; + font-size: 16px; +} +.custom-theme .el-message__closeBtn:focus { + outline-width: 0; +} +.custom-theme .el-message__closeBtn:hover { + color: #878d99; +} +.custom-theme .el-message .el-icon-success { + color: #409167; +} +.custom-theme .el-message .el-icon-error { + color: #b3450e; +} +.custom-theme .el-message .el-icon-info { + color: #0a76a4; +} +.custom-theme .el-message .el-icon-warning { + color: #9da408; +} +.custom-theme .el-message-fade-enter, +.custom-theme .el-message-fade-leave-active { + opacity: 0; + -webkit-transform: translate(-50%, -100%); + transform: translate(-50%, -100%); +} +.custom-theme .el-badge { + position: relative; + vertical-align: middle; + display: inline-block; +} +.custom-theme .el-badge__content { + background-color: #b3450e; + border-radius: 10px; + color: #fff; + display: inline-block; + font-size: 12px; + height: 18px; + line-height: 18px; + padding: 0 6px; + text-align: center; + white-space: nowrap; + border: 1px solid #fff; +} +.custom-theme .el-badge__content.is-fixed { + position: absolute; + top: 0; + right: 10px; + -webkit-transform: translateY(-50%) translateX(100%); + transform: translateY(-50%) translateX(100%); +} +.custom-theme .el-badge__content.is-fixed.is-dot { + right: 5px; +} +.custom-theme .el-badge__content.is-dot { + height: 8px; + width: 8px; + padding: 0; + right: 0; + border-radius: 50%; +} +.custom-theme .el-card { + border-radius: 4px; + border: 1px solid #e6ebf5; + background-color: #fff; + overflow: hidden; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + color: #2d2f33; +} +.custom-theme .el-card__header { + padding: 18px 20px; + border-bottom: 1px solid #e6ebf5; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-card__body { + padding: 20px; +} +.custom-theme .el-rate { + height: 20px; + line-height: 1; +} +.custom-theme .el-rate:active, +.custom-theme .el-rate:focus { + outline-width: 0; +} +.custom-theme .el-rate__item { + display: inline-block; + position: relative; + font-size: 0; + vertical-align: middle; +} +.custom-theme .el-rate__icon { + position: relative; + display: inline-block; + font-size: 18px; + margin-right: 6px; + color: #b4bccc; + -webkit-transition: 0.3s; + transition: 0.3s; +} +.custom-theme .el-rate__icon.hover { + -webkit-transform: scale(1.15); + transform: scale(1.15); +} +.custom-theme .el-rate__icon .path2 { + position: absolute; + left: 0; + top: 0; +} +.custom-theme .el-rate__decimal { + position: absolute; + top: 0; + left: 0; + display: inline-block; + overflow: hidden; +} +.custom-theme .el-rate__text { + font-size: 14px; + vertical-align: middle; +} +.custom-theme .el-steps { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.custom-theme .el-steps--simple { + padding: 13px 8%; + border-radius: 4px; + background: #f5f7fa; +} +.custom-theme .el-steps--horizontal { + white-space: nowrap; +} +.custom-theme .el-steps--vertical { + height: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-flow: column; + flex-flow: column; +} +.custom-theme .el-step { + position: relative; + -ms-flex-negative: 1; + flex-shrink: 1; +} +.custom-theme .el-step:last-of-type .el-step__line { + display: none; +} +.custom-theme .el-step:last-of-type.is-flex { + -ms-flex-preferred-size: auto !important; + flex-basis: auto !important; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; +} +.custom-theme .el-step:last-of-type .el-step__description, +.custom-theme .el-step:last-of-type .el-step__main { + padding-right: 0; +} +.custom-theme .el-step__head { + position: relative; + width: 100%; +} +.custom-theme .el-step__head.is-process { + color: #2d2f33; + border-color: #2d2f33; +} +.custom-theme .el-step__head.is-wait { + color: #b4bccc; + border-color: #b4bccc; +} +.custom-theme .el-step__head.is-success { + color: #409167; + border-color: #409167; +} +.custom-theme .el-step__head.is-error { + color: #b3450e; + border-color: #b3450e; +} +.custom-theme .el-step__head.is-finish { + color: #262729; + border-color: #262729; +} +.custom-theme .el-step__icon { + position: relative; + z-index: 1; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 24px; + height: 24px; + font-size: 14px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #fff; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; +} +.custom-theme .el-step__icon.is-text { + border-radius: 50%; + border: 2px solid; + border-color: inherit; +} +.custom-theme .el-step__icon.is-icon { + width: 40px; +} +.custom-theme .el-step__icon-inner { + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + text-align: center; + font-weight: 700; + line-height: 1; + color: inherit; +} +.custom-theme .el-step__icon-inner[class*='el-icon']:not(.is-status) { + font-size: 25px; + font-weight: 400; +} +.custom-theme .el-step__icon-inner.is-status { + -webkit-transform: translateY(1px); + transform: translateY(1px); +} +.custom-theme .el-step__line { + position: absolute; + border-color: inherit; + background-color: #b4bccc; +} +.custom-theme .el-step__line-inner { + display: block; + border-width: 1px; + border-style: solid; + border-color: inherit; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 0; + height: 0; +} +.custom-theme .el-step__main { + white-space: normal; + text-align: left; +} +.custom-theme .el-step__title { + font-size: 16px; + line-height: 38px; +} +.custom-theme .el-step__title.is-process { + font-weight: 700; + color: #2d2f33; +} +.custom-theme .el-step__title.is-wait { + color: #b4bccc; +} +.custom-theme .el-step__title.is-success { + color: #409167; +} +.custom-theme .el-step__title.is-error { + color: #b3450e; +} +.custom-theme .el-step__title.is-finish { + color: #262729; +} +.custom-theme .el-step__description { + padding-right: 10%; + margin-top: -5px; + font-size: 12px; + line-height: 20px; + font-weight: 400; +} +.custom-theme .el-step__description.is-process { + color: #2d2f33; +} +.custom-theme .el-step__description.is-wait { + color: #b4bccc; +} +.custom-theme .el-step__description.is-success { + color: #409167; +} +.custom-theme .el-step__description.is-error { + color: #b3450e; +} +.custom-theme .el-step__description.is-finish { + color: #262729; +} +.custom-theme .el-step.is-horizontal { + display: inline-block; +} +.custom-theme .el-step.is-horizontal .el-step__line { + height: 2px; + top: 11px; + left: 0; + right: 0; +} +.custom-theme .el-step.is-vertical { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.custom-theme .el-step.is-vertical .el-step__head { + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + width: 24px; +} +.custom-theme .el-step.is-vertical .el-step__main { + padding-left: 10px; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.custom-theme .el-step.is-vertical .el-step__title { + line-height: 24px; + padding-bottom: 8px; +} +.custom-theme .el-step.is-vertical .el-step__line { + width: 2px; + top: 0; + bottom: 0; + left: 11px; +} +.custom-theme .el-step.is-vertical .el-step__icon.is-icon { + width: 24px; +} +.custom-theme .el-step.is-center .el-step__head { + text-align: center; +} +.custom-theme .el-step.is-center .el-step__main { + text-align: center; +} +.custom-theme .el-step.is-center .el-step__description { + padding-left: 20%; + padding-right: 20%; +} +.custom-theme .el-step.is-center .el-step__line { + left: 50%; + right: -50%; +} +.custom-theme .el-step.is-simple { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.custom-theme .el-step.is-simple .el-step__head { + width: auto; + font-size: 0; + padding-right: 10px; +} +.custom-theme .el-step.is-simple .el-step__icon { + background: 0 0; + width: 16px; + height: 16px; + font-size: 12px; +} +.custom-theme + .el-step.is-simple + .el-step__icon-inner[class*='el-icon']:not(.is-status) { + font-size: 18px; +} +.custom-theme .el-step.is-simple .el-step__icon-inner.is-status { + -webkit-transform: scale(0.8) translateY(1px); + transform: scale(0.8) translateY(1px); +} +.custom-theme .el-step.is-simple .el-step__main { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.custom-theme .el-step.is-simple .el-step__title { + font-size: 16px; + line-height: 20px; +} +.custom-theme .el-step.is-simple:not(:last-of-type) .el-step__title { + max-width: 50%; + word-break: break-all; +} +.custom-theme .el-step.is-simple .el-step__arrow { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.custom-theme .el-step.is-simple .el-step__arrow::after, +.custom-theme .el-step.is-simple .el-step__arrow::before { + content: ''; + display: inline-block; + position: absolute; + height: 15px; + width: 1px; + background: #b4bccc; +} +.custom-theme .el-step.is-simple .el-step__arrow::before { + -webkit-transform: rotate(-45deg) translateY(-4px); + transform: rotate(-45deg) translateY(-4px); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; +} +.custom-theme .el-step.is-simple .el-step__arrow::after { + -webkit-transform: rotate(45deg) translateY(4px); + transform: rotate(45deg) translateY(4px); + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; +} +.custom-theme .el-step.is-simple:last-of-type .el-step__arrow { + display: none; +} +.custom-theme .el-carousel { + overflow-x: hidden; + position: relative; +} +.custom-theme .el-carousel__container { + position: relative; + height: 300px; +} +.custom-theme .el-carousel__arrow { + border: none; + outline: 0; + padding: 0; + margin: 0; + height: 36px; + width: 36px; + cursor: pointer; + -webkit-transition: 0.3s; + transition: 0.3s; + border-radius: 50%; + background-color: rgba(31, 45, 61, 0.11); + color: #fff; + position: absolute; + top: 50%; + z-index: 10; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + text-align: center; + font-size: 12px; +} +.custom-theme .el-carousel__arrow--left { + left: 16px; +} +.custom-theme .el-carousel__arrow--right { + right: 16px; +} +.custom-theme .el-carousel__arrow:hover { + background-color: rgba(31, 45, 61, 0.23); +} +.custom-theme .el-carousel__arrow i { + cursor: pointer; +} +.custom-theme .el-carousel__indicators { + position: absolute; + list-style: none; + bottom: 0; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + margin: 0; + padding: 0; + z-index: 2; +} +.custom-theme .el-carousel__indicators--outside { + bottom: 26px; + text-align: center; + position: static; + -webkit-transform: none; + transform: none; +} +.custom-theme + .el-carousel__indicators--outside + .el-carousel__indicator:hover + button { + opacity: 0.64; +} +.custom-theme .el-carousel__indicators--outside button { + background-color: #b4bccc; + opacity: 0.24; +} +.custom-theme .el-carousel__indicators--labels { + left: 0; + right: 0; + -webkit-transform: none; + transform: none; + text-align: center; +} +.custom-theme .el-carousel__indicators--labels .el-carousel__button { + height: auto; + width: auto; + padding: 2px 18px; + font-size: 12px; +} +.custom-theme .el-carousel__indicators--labels .el-carousel__indicator { + padding: 6px 4px; +} +.custom-theme .el-carousel__indicator { + display: inline-block; + background-color: transparent; + padding: 12px 4px; + cursor: pointer; +} +.custom-theme .el-carousel__indicator:hover button { + opacity: 0.72; +} +.custom-theme .el-carousel__indicator.is-active button { + opacity: 1; +} +.custom-theme .el-carousel__button { + display: block; + opacity: 0.48; + width: 30px; + height: 2px; + background-color: #fff; + border: none; + outline: 0; + padding: 0; + margin: 0; + cursor: pointer; + -webkit-transition: 0.3s; + transition: 0.3s; +} +.custom-theme .carousel-arrow-left-enter, +.custom-theme .carousel-arrow-left-leave-active { + -webkit-transform: translateY(-50%) translateX(-10px); + transform: translateY(-50%) translateX(-10px); + opacity: 0; +} +.custom-theme .carousel-arrow-right-enter, +.custom-theme .carousel-arrow-right-leave-active { + -webkit-transform: translateY(-50%) translateX(10px); + transform: translateY(-50%) translateX(10px); + opacity: 0; +} +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} +.custom-theme .el-carousel__item { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: inline-block; + overflow: hidden; + z-index: 0; +} +.custom-theme .el-carousel__item.is-active { + z-index: 2; +} +.custom-theme .el-carousel__item.is-animating { + -webkit-transition: -webkit-transform 0.4s ease-in-out; + transition: -webkit-transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out; +} +.custom-theme .el-carousel__item--card { + width: 50%; + -webkit-transition: -webkit-transform 0.4s ease-in-out; + transition: -webkit-transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out; +} +.custom-theme .el-carousel__item--card.is-in-stage { + cursor: pointer; + z-index: 1; +} +.custom-theme .el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask, +.custom-theme .el-carousel__item--card.is-in-stage:hover .el-carousel__mask { + opacity: 0.12; +} +.custom-theme .el-carousel__item--card.is-active { + z-index: 2; +} +.custom-theme .el-carousel__mask { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + background-color: #fff; + opacity: 0.24; + -webkit-transition: 0.2s; + transition: 0.2s; +} +.custom-theme .el-collapse { + border-top: 1px solid #e6ebf5; + border-bottom: 1px solid #e6ebf5; +} +.custom-theme .el-collapse-item__header { + height: 48px; + line-height: 48px; + background-color: #fff; + color: #2d2f33; + cursor: pointer; + border-bottom: 1px solid #e6ebf5; + font-size: 13px; + font-weight: 500; + -webkit-transition: border-bottom-color 0.3s; + transition: border-bottom-color 0.3s; +} +.custom-theme .el-collapse-item__header:active, +.custom-theme .el-collapse-item__header:focus:not(.focusing) { + outline-width: 0; +} +.custom-theme .el-collapse-item__arrow { + margin-right: 8px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + float: right; + line-height: 48px; + font-weight: 300; +} +.custom-theme .el-collapse-item__wrap { + will-change: height; + background-color: #fff; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-bottom: 1px solid #e6ebf5; +} +.custom-theme .el-collapse-item__content { + padding-bottom: 25px; + font-size: 13px; + color: #2d2f33; + line-height: 1.769230769230769; +} +.custom-theme .el-collapse-item.is-active .el-collapse-item__header { + border-bottom-color: transparent; +} +.custom-theme + .el-collapse-item.is-active + .el-collapse-item__header + .el-collapse-item__arrow { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} +.custom-theme .el-collapse-item:last-child { + margin-bottom: -1px; +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} +.custom-theme .el-cascader { + display: inline-block; + position: relative; + font-size: 14px; + line-height: 40px; +} +.custom-theme .el-cascader .el-input, +.custom-theme .el-cascader .el-input__inner { + cursor: pointer; +} +.custom-theme .el-cascader .el-input__icon { + -webkit-transition: none; + transition: none; +} +.custom-theme .el-cascader .el-icon-arrow-down { + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + font-size: 14px; +} +.custom-theme .el-cascader .el-icon-arrow-down.is-reverse { + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +.custom-theme .el-cascader .el-icon-circle-close { + z-index: 2; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-cascader .el-icon-circle-close:hover { + color: #878d99; +} +.custom-theme .el-cascader__clearIcon { + z-index: 2; + position: relative; +} +.custom-theme .el-cascader__label { + position: absolute; + left: 0; + top: 0; + height: 100%; + padding: 0 25px 0 15px; + color: #5a5e66; + width: 100%; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + text-align: left; + font-size: inherit; +} +.custom-theme .el-cascader__label span { + color: #000; +} +.custom-theme .el-cascader--medium { + font-size: 14px; + line-height: 36px; +} +.custom-theme .el-cascader--small { + font-size: 13px; + line-height: 32px; +} +.custom-theme .el-cascader--mini { + font-size: 12px; + line-height: 28px; +} +.custom-theme .el-cascader.is-disabled .el-cascader__label { + z-index: 2; + color: #b4bccc; +} +.custom-theme .el-cascader-menus { + white-space: nowrap; + background: #fff; + position: absolute; + margin: 5px 0; + z-index: 2; + border: solid 1px #dfe4ed; + border-radius: 2px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} +.custom-theme .el-cascader-menus .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} +.custom-theme .el-cascader-menu { + display: inline-block; + vertical-align: top; + height: 204px; + overflow: auto; + border-right: solid 1px #dfe4ed; + background-color: #fff; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 6px 0; + min-width: 160px; +} +.custom-theme .el-cascader-menu:last-child { + border-right: 0; +} +.custom-theme .el-cascader-menu__item { + font-size: 14px; + padding: 8px 20px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #5a5e66; + height: 34px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} +.custom-theme .el-cascader-menu__item--extensible:after { + font-family: element-icons; + content: '\e604'; + font-size: 14px; + color: #bfcbd9; + position: absolute; + right: 15px; +} +.custom-theme .el-cascader-menu__item.is-disabled { + color: #b4bccc; + background-color: #fff; + cursor: not-allowed; +} +.custom-theme .el-cascader-menu__item.is-disabled:hover { + background-color: #fff; +} +.custom-theme .el-cascader-menu__item.is-active { + color: #262729; +} +.custom-theme .el-cascader-menu__item:hover { + background-color: #f5f7fa; +} +.custom-theme .el-cascader-menu__item.selected { + color: #fff; + background-color: #f5f7fa; +} +.custom-theme .el-cascader-menu__item__keyword { + font-weight: 700; +} +.custom-theme .el-cascader-menu--flexible { + height: auto; + max-height: 180px; + overflow: auto; +} +.custom-theme .el-cascader-menu--flexible .el-cascader-menu__item { + overflow: visible; +} +.custom-theme .el-color-hue-slider { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 280px; + height: 12px; + background-color: red; + padding: 0 2px; +} +.custom-theme .el-color-hue-slider__bar { + position: relative; + background: -webkit-gradient( + linear, + left top, + right top, + from(red), + color-stop(17%, #ff0), + color-stop(33%, #0f0), + color-stop(50%, #0ff), + color-stop(67%, #00f), + color-stop(83%, #f0f), + to(red) + ); + background: linear-gradient( + to right, + red 0, + #ff0 17%, + #0f0 33%, + #0ff 50%, + #00f 67%, + #f0f 83%, + red 100% + ); + height: 100%; +} +.custom-theme .el-color-hue-slider__thumb { + position: absolute; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + left: 0; + top: 0; + width: 4px; + height: 100%; + border-radius: 1px; + background: #fff; + border: 1px solid #f0f0f0; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + z-index: 1; +} +.custom-theme .el-color-hue-slider.is-vertical { + width: 12px; + height: 180px; + padding: 2px 0; +} +.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__bar { + background: -webkit-gradient( + linear, + left top, + left bottom, + from(red), + color-stop(17%, #ff0), + color-stop(33%, #0f0), + color-stop(50%, #0ff), + color-stop(67%, #00f), + color-stop(83%, #f0f), + to(red) + ); + background: linear-gradient( + to bottom, + red 0, + #ff0 17%, + #0f0 33%, + #0ff 50%, + #00f 67%, + #f0f 83%, + red 100% + ); +} +.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__thumb { + left: 0; + top: 0; + width: 100%; + height: 4px; +} +.custom-theme .el-color-svpanel { + position: relative; + width: 280px; + height: 180px; +} +.custom-theme .el-color-svpanel__black, +.custom-theme .el-color-svpanel__white { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} +.custom-theme .el-color-svpanel__white { + background: -webkit-gradient( + linear, + left top, + right top, + from(#fff), + to(rgba(255, 255, 255, 0)) + ); + background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)); +} +.custom-theme .el-color-svpanel__black { + background: -webkit-gradient( + linear, + left bottom, + left top, + from(#000), + to(transparent) + ); + background: linear-gradient(to top, #000, transparent); +} +.custom-theme .el-color-svpanel__cursor { + position: absolute; +} +.custom-theme .el-color-svpanel__cursor > div { + cursor: head; + width: 4px; + height: 4px; + -webkit-box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), + 0 0 1px 2px rgba(0, 0, 0, 0.4); + box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), + 0 0 1px 2px rgba(0, 0, 0, 0.4); + border-radius: 50%; + -webkit-transform: translate(-2px, -2px); + transform: translate(-2px, -2px); +} +.custom-theme .el-color-alpha-slider { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 280px; + height: 12px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); +} +.custom-theme .el-color-alpha-slider__bar { + position: relative; + background: -webkit-gradient( + linear, + left top, + right top, + from(rgba(255, 255, 255, 0)), + to(white) + ); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, #fff 100%); + height: 100%; +} +.custom-theme .el-color-alpha-slider__thumb { + position: absolute; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + left: 0; + top: 0; + width: 4px; + height: 100%; + border-radius: 1px; + background: #fff; + border: 1px solid #f0f0f0; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + z-index: 1; +} +.custom-theme .el-color-alpha-slider.is-vertical { + width: 20px; + height: 180px; +} +.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar { + background: -webkit-gradient( + linear, + left top, + left bottom, + from(rgba(255, 255, 255, 0)), + to(white) + ); + background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, #fff 100%); +} +.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb { + left: 0; + top: 0; + width: 100%; + height: 4px; +} +.custom-theme .el-color-dropdown { + width: 300px; +} +.custom-theme .el-color-dropdown__main-wrapper { + margin-bottom: 6px; +} +.custom-theme .el-color-dropdown__main-wrapper::after { + content: ''; + display: table; + clear: both; +} +.custom-theme .el-color-dropdown__btns { + margin-top: 6px; + text-align: right; +} +.custom-theme .el-color-dropdown__value { + float: left; + line-height: 26px; + font-size: 12px; + color: #000; + width: 160px; +} +.custom-theme .el-color-dropdown__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; +} +.custom-theme .el-color-dropdown__btn[disabled] { + color: #ccc; + cursor: not-allowed; +} +.custom-theme .el-color-dropdown__btn:hover { + color: #262729; + border-color: #262729; +} +.custom-theme .el-color-dropdown__link-btn { + cursor: pointer; + color: #262729; + text-decoration: none; + padding: 15px; + font-size: 12px; +} +.custom-theme .el-color-dropdown__link-btn:hover { + color: tint(#262729, 20%); +} +.custom-theme .el-color-picker { + display: inline-block; + position: relative; + line-height: normal; + height: 40px; +} +.custom-theme .el-color-picker.is-disabled .el-color-picker__trigger { + cursor: not-allowed; +} +.custom-theme .el-color-picker--medium { + height: 36px; +} +.custom-theme .el-color-picker--medium .el-color-picker__trigger { + height: 36px; + width: 36px; +} +.custom-theme .el-color-picker--medium .el-color-picker__mask { + height: 34px; + width: 34px; +} +.custom-theme .el-color-picker--small { + height: 32px; +} +.custom-theme .el-color-picker--small .el-color-picker__trigger { + height: 32px; + width: 32px; +} +.custom-theme .el-color-picker--small .el-color-picker__mask { + height: 30px; + width: 30px; +} +.custom-theme .el-color-picker--small .el-color-picker__empty, +.custom-theme .el-color-picker--small .el-color-picker__icon { + -webkit-transform: translate3d(-50%, -50%, 0) scale(0.8); + transform: translate3d(-50%, -50%, 0) scale(0.8); +} +.custom-theme .el-color-picker--mini { + height: 28px; +} +.custom-theme .el-color-picker--mini .el-color-picker__trigger { + height: 28px; + width: 28px; +} +.custom-theme .el-color-picker--mini .el-color-picker__mask { + height: 26px; + width: 26px; +} +.custom-theme .el-color-picker--mini .el-color-picker__empty, +.custom-theme .el-color-picker--mini .el-color-picker__icon { + -webkit-transform: translate3d(-50%, -50%, 0) scale(0.8); + transform: translate3d(-50%, -50%, 0) scale(0.8); +} +.custom-theme .el-color-picker__mask { + height: 38px; + width: 38px; + border-radius: 4px; + position: absolute; + top: 1px; + left: 1px; + z-index: 1; + cursor: not-allowed; + background-color: rgba(255, 255, 255, 0.7); +} +.custom-theme .el-color-picker__trigger { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 40px; + width: 40px; + padding: 4px; + border: 1px solid #e6e6e6; + border-radius: 4px; + font-size: 0; + position: relative; + cursor: pointer; +} +.custom-theme .el-color-picker__color { + position: relative; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #999; + border-radius: 2px; + width: 100%; + height: 100%; + text-align: center; +} +.custom-theme .el-color-picker__color.is-alpha { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); +} +.custom-theme .el-color-picker__color-inner { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; +} +.custom-theme .el-color-picker__empty { + font-size: 12px; + color: #999; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); +} +.custom-theme .el-color-picker__icon { + display: inline-block; + position: absolute; + width: 100%; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + color: #fff; + text-align: center; + font-size: 12px; +} +.custom-theme .el-color-picker__panel { + position: absolute; + z-index: 10; + padding: 6px; + background-color: #fff; + border: 1px solid #e6ebf5; + border-radius: 4px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-input__validateIcon { + pointer-events: none; +} +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-input.is-disabled + .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} +.custom-theme .el-input--medium { + font-size: 14px; +} +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} +.custom-theme .el-input--small { + font-size: 13px; +} +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} +.custom-theme .el-input--mini { + font-size: 12px; +} +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme + .el-textarea.is-disabled + .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button + .el-button { + margin-left: 10px; +} +.custom-theme .el-button.is-round { + padding: 12px 20px; +} +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} +.custom-theme .el-button-group::after { + clear: both; +} +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} +.custom-theme + .el-button-group + .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--small + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} +.custom-theme + .el-checkbox.is-bordered.el-checkbox--mini + .el-checkbox__inner::after { + height: 6px; + width: 2px; +} +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled + .el-checkbox__inner + + .el-checkbox__label { + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-checked + .el-checkbox__inner::after { + border-color: #b4bccc; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} +.custom-theme + .el-checkbox__input.is-disabled.is-indeterminate + .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s + cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} +.custom-theme .el-checkbox-group { + font-size: 0; +} +.custom-theme .el-transfer { + font-size: 14px; +} +.custom-theme .el-transfer__buttons { + display: inline-block; + vertical-align: middle; + padding: 0 30px; +} +.custom-theme .el-transfer__button { + display: block; + margin: 0 auto; + padding: 10px; + border-radius: 50%; + color: #fff; + background-color: #262729; + font-size: 0; +} +.custom-theme .el-transfer__button.is-with-texts { + border-radius: 4px; +} +.custom-theme .el-transfer__button.is-disabled { + border: 1px solid #d8dce5; + background-color: #f5f7fa; + color: #b4bccc; +} +.custom-theme .el-transfer__button.is-disabled:hover { + border: 1px solid #d8dce5; + background-color: #f5f7fa; + color: #b4bccc; +} +.custom-theme .el-transfer__button:first-child { + margin-bottom: 10px; +} +.custom-theme .el-transfer__button:nth-child(2) { + margin: 0; +} +.custom-theme .el-transfer__button i, +.custom-theme .el-transfer__button span { + font-size: 14px; +} +.custom-theme .el-transfer__button [class*='el-icon-'] + span { + margin-left: 0; +} +.custom-theme .el-transfer-panel { + border: 1px solid #e6ebf5; + border-radius: 4px; + overflow: hidden; + background: #fff; + display: inline-block; + vertical-align: middle; + width: 200px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; +} +.custom-theme .el-transfer-panel__body { + height: 246px; +} +.custom-theme .el-transfer-panel__body.is-with-footer { + padding-bottom: 40px; +} +.custom-theme .el-transfer-panel__list { + margin: 0; + padding: 6px 0; + list-style: none; + height: 246px; + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-transfer-panel__list.is-filterable { + height: 194px; + padding-top: 0; +} +.custom-theme .el-transfer-panel__item { + height: 30px; + line-height: 30px; + padding-left: 15px; + display: block; +} +.custom-theme .el-transfer-panel__item + .el-transfer-panel__item { + margin-left: 0; +} +.custom-theme .el-transfer-panel__item.el-checkbox { + color: #5a5e66; +} +.custom-theme .el-transfer-panel__item:hover { + color: #262729; +} +.custom-theme .el-transfer-panel__item.el-checkbox .el-checkbox__label { + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-left: 24px; + line-height: 30px; +} +.custom-theme .el-transfer-panel__item .el-checkbox__input { + position: absolute; + top: 8px; +} +.custom-theme .el-transfer-panel__filter { + text-align: center; + margin: 15px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + width: auto; +} +.custom-theme .el-transfer-panel__filter .el-input__inner { + height: 32px; + width: 100%; + font-size: 12px; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 16px; + padding-right: 10px; + padding-left: 30px; +} +.custom-theme .el-transfer-panel__filter .el-input__icon { + margin-left: 5px; +} +.custom-theme .el-transfer-panel__filter .el-icon-circle-close { + cursor: pointer; +} +.custom-theme .el-transfer-panel .el-transfer-panel__header { + height: 40px; + line-height: 40px; + background: #f5f7fa; + margin: 0; + padding-left: 15px; + border-bottom: 1px solid #e6ebf5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #000; +} +.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox { + display: block; + line-height: 40px; +} +.custom-theme + .el-transfer-panel + .el-transfer-panel__header + .el-checkbox + .el-checkbox__label { + font-size: 16px; + color: #2d2f33; + font-weight: 400; +} +.custom-theme + .el-transfer-panel + .el-transfer-panel__header + .el-checkbox + .el-checkbox__label + span { + position: absolute; + right: 15px; + color: #878d99; + font-size: 12px; + font-weight: 400; +} +.custom-theme .el-transfer-panel .el-transfer-panel__footer { + height: 40px; + background: #fff; + margin: 0; + padding: 0; + border-top: 1px solid #e6ebf5; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + z-index: 1; +} +.custom-theme .el-transfer-panel .el-transfer-panel__footer::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} +.custom-theme .el-transfer-panel .el-transfer-panel__footer .el-checkbox { + padding-left: 20px; + color: #5a5e66; +} +.custom-theme .el-transfer-panel .el-transfer-panel__empty { + margin: 0; + height: 30px; + line-height: 30px; + padding: 6px 15px 0; + color: #878d99; +} +.custom-theme .el-transfer-panel .el-checkbox__label { + padding-left: 8px; +} +.custom-theme .el-transfer-panel .el-checkbox__inner { + height: 14px; + width: 14px; + border-radius: 3px; +} +.custom-theme .el-transfer-panel .el-checkbox__inner::after { + height: 6px; + width: 3px; + left: 4px; +} +.custom-theme .el-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-container.is-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} +.custom-theme .el-header { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-aside { + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.custom-theme .el-main { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 20px; +} +.custom-theme .el-footer { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} diff --git a/WebSite/src/assets/logo.png b/WebSite/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 literal 0 HcmV?d00001 diff --git a/WebSite/src/components/BackToTop/index.vue b/WebSite/src/components/BackToTop/index.vue deleted file mode 100644 index eb313d5d..00000000 --- a/WebSite/src/components/BackToTop/index.vue +++ /dev/null @@ -1,128 +0,0 @@ -<template> - <transition :name="transitionName"> - <div - v-show="visible" - :style="customStyle" - class="back-to-ceiling" - @click="backToTop" - > - <svg - width="16" - height="16" - viewBox="0 0 17 17" - xmlns="http://www.w3.org/2000/svg" - class="Icon Icon--backToTopArrow" - aria-hidden="true" - style="height:16px;width:16px" - > - <path - d="M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" - /> - </svg> - </div> - </transition> -</template> - -<script> -export default { - name: "BackToTop", - props: { - visibilityHeight: { - type: Number, - default: 400 - }, - backPosition: { - type: Number, - default: 0 - }, - customStyle: { - type: Object, - default: function() { - return { - right: "50px", - bottom: "50px", - width: "40px", - height: "40px", - "border-radius": "4px", - "line-height": "45px", - background: "#e7eaf1" - }; - } - }, - transitionName: { - type: String, - default: "fade" - } - }, - data() { - return { - visible: false, - interval: null, - isMoving: false - }; - }, - mounted() { - window.addEventListener("scroll", this.handleScroll); - }, - beforeDestroy() { - window.removeEventListener("scroll", this.handleScroll); - if (this.interval) { - clearInterval(this.interval); - } - }, - methods: { - handleScroll() { - this.visible = window.pageYOffset > this.visibilityHeight; - }, - backToTop() { - if (this.isMoving) return; - const start = window.pageYOffset; - let i = 0; - this.isMoving = true; - this.interval = setInterval(() => { - const next = Math.floor(this.easeInOutQuad(10 * i, start, -start, 500)); - if (next <= this.backPosition) { - window.scrollTo(0, this.backPosition); - clearInterval(this.interval); - this.isMoving = false; - } else { - window.scrollTo(0, next); - } - i++; - }, 16.7); - }, - easeInOutQuad(t, b, c, d) { - if ((t /= d / 2) < 1) return (c / 2) * t * t + b; - return (-c / 2) * (--t * (t - 2) - 1) + b; - } - } -}; -</script> - -<style scoped> -.back-to-ceiling { - position: fixed; - display: inline-block; - text-align: center; - cursor: pointer; -} - -.back-to-ceiling:hover { - background: #d5dbe7; -} - -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.5s; -} - -.fade-enter, -.fade-leave-to { - opacity: 0; -} - -.back-to-ceiling .Icon { - fill: #9aaabf; - background: none; -} -</style> diff --git a/WebSite/src/components/Breadcrumb/index.vue b/WebSite/src/components/Breadcrumb/index.vue deleted file mode 100644 index 4a73c702..00000000 --- a/WebSite/src/components/Breadcrumb/index.vue +++ /dev/null @@ -1,142 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 12:38:19 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-15 11:27:38 ---> -<template> - <el-breadcrumb class="app-breadcrumb" separator="/"> - <transition-group name="breadcrumb"> - <el-breadcrumb-item v-for="(item, index) in levelList" :key="item.id"> - <span - v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" - class="no-redirect" - >{{ item.meta.title }}</span - > - <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> - </el-breadcrumb-item> - </transition-group> - </el-breadcrumb> -</template> - -<script> -import { deepClone } from "@/utils/index.js"; -import pathToRegexp from "path-to-regexp"; -import { mapGetters } from "vuex"; -export default { - data() { - return { - levelList: null - }; - }, - computed: { - ...mapGetters(["menuTree"]) - }, - watch: { - $route(route) { - // if you go to the redirect page, do not update the breadcrumbs - if (route.path.startsWith("/redirect/")) { - return; - } - // this.getBreadcrumb(); - this.getBreadcrumbFromMenu(); - } - }, - created() { - // this.getBreadcrumb(); - this.getBreadcrumbFromMenu(); - }, - methods: { - getBreadcrumbFromMenu() { - this.levelList = []; - const matched = this.$route.matched.filter( - item => item.meta && item.meta.title - ); - if (matched && matched.length === 1 && matched[0].name === "Home") { - this.levelList.unshift({ - id: "0", - redirect: "noRedirect", - path: `/i/`, - meta: { title: "首页" } - }); - } else { - const menu = deepClone(this.menuTree); - menu.forEach(m => this.filterMenuNode(m, this.$route.path)); - } - }, - filterMenuNode(node, path) { - if (node.children && node.children.length > 0) { - node.children.forEach(c => this.filterMenuNode(c, path)); - node.children = node.children.filter( - c => - `/i/${c.routingUrl}` === path || - (c.children && c.children.length > 0) - ); - } - if ( - `/i/${node.routingUrl}` === path || - (node.children && node.children.length > 0) - ) { - this.levelList.unshift({ - id: node.id, - redirect: "noRedirect", - path: `/i/${node.routingUrl}`, - meta: { title: node.name } - }); - } - }, - // getBreadcrumb() { - // // only show routes with meta.title - // let matched = this.$route.matched.filter( - // item => item.meta && item.meta.title - // ); - // const first = matched[0]; - // if (!this.isDashboard(first)) { - // matched = [{ path: "/", meta: { title: "首页" } }].concat(matched); - // } - - // this.levelList = matched.filter( - // item => item.meta && item.meta.title && item.meta.breadcrumb !== false - // ); - // }, - // isDashboard(route) { - // const name = route && route.name; - // if (!name) { - // return false; - // } - // return ( - // name.trim().toLocaleLowerCase() === "Dashboard".toLocaleLowerCase() - // ); - // }, - pathCompile(path) { - // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561 - const { params } = this.$route; - var toPath = pathToRegexp.compile(path); - return toPath(params); - }, - handleLink(item) { - const { redirect, path } = item; - if (redirect) { - this.$router.push(redirect); - return; - } - this.$router.push(this.pathCompile(path)); - } - } -}; -</script> - -<style lang="scss" scoped> -.app-breadcrumb.el-breadcrumb { - display: inline-block; - font-size: 14px; - line-height: 50px; - margin-left: 8px; - - .no-redirect { - color: #97a8be; - cursor: text; - } -} -</style> diff --git a/WebSite/src/components/Charts/Keyboard.vue b/WebSite/src/components/Charts/Keyboard.vue deleted file mode 100644 index 05af3110..00000000 --- a/WebSite/src/components/Charts/Keyboard.vue +++ /dev/null @@ -1,169 +0,0 @@ -<template> - <div :id="id" :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - id: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "200px" - }, - height: { - type: String, - default: "200px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.initChart(); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(document.getElementById(this.id)); - - const xAxisData = []; - const data = []; - const data2 = []; - for (let i = 0; i < 50; i++) { - xAxisData.push(i); - data.push((Math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5); - data2.push((Math.sin(i / 5) * (i / 5 + 10) + i / 6) * 3); - } - this.chart.setOption({ - backgroundColor: "#08263a", - grid: { - left: "5%", - right: "5%" - }, - xAxis: [ - { - show: false, - data: xAxisData - }, - { - show: false, - data: xAxisData - } - ], - visualMap: { - show: false, - min: 0, - max: 50, - dimension: 0, - inRange: { - color: [ - "#4a657a", - "#308e92", - "#b1cfa5", - "#f5d69f", - "#f5898b", - "#ef5055" - ] - } - }, - yAxis: { - axisLine: { - show: false - }, - axisLabel: { - textStyle: { - color: "#4a657a" - } - }, - splitLine: { - show: true, - lineStyle: { - color: "#08263f" - } - }, - axisTick: { - show: false - } - }, - series: [ - { - name: "back", - type: "bar", - data: data2, - z: 1, - itemStyle: { - normal: { - opacity: 0.4, - barBorderRadius: 5, - shadowBlur: 3, - shadowColor: "#111" - } - } - }, - { - name: "Simulate Shadow", - type: "line", - data, - z: 2, - showSymbol: false, - animationDelay: 0, - animationEasing: "linear", - animationDuration: 1200, - lineStyle: { - normal: { - color: "transparent" - } - }, - areaStyle: { - normal: { - color: "#08263a", - shadowBlur: 50, - shadowColor: "#000" - } - } - }, - { - name: "front", - type: "bar", - data, - xAxisIndex: 1, - z: 3, - itemStyle: { - normal: { - barBorderRadius: 5 - } - } - } - ], - animationEasing: "elasticOut", - animationEasingUpdate: "elasticOut", - animationDelay(idx) { - return idx * 20; - }, - animationDelayUpdate(idx) { - return idx * 20; - } - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Charts/LineMarker.vue b/WebSite/src/components/Charts/LineMarker.vue deleted file mode 100644 index a4e86f87..00000000 --- a/WebSite/src/components/Charts/LineMarker.vue +++ /dev/null @@ -1,276 +0,0 @@ -<template> - <div :id="id" :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - id: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "200px" - }, - height: { - type: String, - default: "200px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.initChart(); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(document.getElementById(this.id)); - - this.chart.setOption({ - backgroundColor: "#394056", - title: { - top: 20, - text: "Requests", - textStyle: { - fontWeight: "normal", - fontSize: 16, - color: "#F1F1F3" - }, - left: "1%" - }, - tooltip: { - trigger: "axis", - axisPointer: { - lineStyle: { - color: "#57617B" - } - } - }, - legend: { - top: 20, - icon: "rect", - itemWidth: 14, - itemHeight: 5, - itemGap: 13, - data: ["CMCC", "CTCC", "CUCC"], - right: "4%", - textStyle: { - fontSize: 12, - color: "#F1F1F3" - } - }, - grid: { - top: 100, - left: "2%", - right: "2%", - bottom: "2%", - containLabel: true - }, - xAxis: [ - { - type: "category", - boundaryGap: false, - axisLine: { - lineStyle: { - color: "#57617B" - } - }, - data: [ - "13:00", - "13:05", - "13:10", - "13:15", - "13:20", - "13:25", - "13:30", - "13:35", - "13:40", - "13:45", - "13:50", - "13:55" - ] - } - ], - yAxis: [ - { - type: "value", - name: "(%)", - axisTick: { - show: false - }, - axisLine: { - lineStyle: { - color: "#57617B" - } - }, - axisLabel: { - margin: 10, - textStyle: { - fontSize: 14 - } - }, - splitLine: { - lineStyle: { - color: "#57617B" - } - } - } - ], - series: [ - { - name: "CMCC", - type: "line", - smooth: true, - symbol: "circle", - symbolSize: 5, - showSymbol: false, - lineStyle: { - normal: { - width: 1 - } - }, - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "rgba(137, 189, 27, 0.3)" - }, - { - offset: 0.8, - color: "rgba(137, 189, 27, 0)" - } - ], - false - ), - shadowColor: "rgba(0, 0, 0, 0.1)", - shadowBlur: 10 - } - }, - itemStyle: { - normal: { - color: "rgb(137,189,27)", - borderColor: "rgba(137,189,2,0.27)", - borderWidth: 12 - } - }, - data: [220, 182, 191, 134, 150, 120, 110, 125, 145, 122, 165, 122] - }, - { - name: "CTCC", - type: "line", - smooth: true, - symbol: "circle", - symbolSize: 5, - showSymbol: false, - lineStyle: { - normal: { - width: 1 - } - }, - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "rgba(0, 136, 212, 0.3)" - }, - { - offset: 0.8, - color: "rgba(0, 136, 212, 0)" - } - ], - false - ), - shadowColor: "rgba(0, 0, 0, 0.1)", - shadowBlur: 10 - } - }, - itemStyle: { - normal: { - color: "rgb(0,136,212)", - borderColor: "rgba(0,136,212,0.2)", - borderWidth: 12 - } - }, - data: [120, 110, 125, 145, 122, 165, 122, 220, 182, 191, 134, 150] - }, - { - name: "CUCC", - type: "line", - smooth: true, - symbol: "circle", - symbolSize: 5, - showSymbol: false, - lineStyle: { - normal: { - width: 1 - } - }, - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "rgba(219, 50, 51, 0.3)" - }, - { - offset: 0.8, - color: "rgba(219, 50, 51, 0)" - } - ], - false - ), - shadowColor: "rgba(0, 0, 0, 0.1)", - shadowBlur: 10 - } - }, - itemStyle: { - normal: { - color: "rgb(219,50,51)", - borderColor: "rgba(219,50,51,0.2)", - borderWidth: 12 - } - }, - data: [220, 182, 125, 145, 122, 191, 134, 150, 120, 110, 165, 122] - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Charts/MixChart.vue b/WebSite/src/components/Charts/MixChart.vue deleted file mode 100644 index 865755f8..00000000 --- a/WebSite/src/components/Charts/MixChart.vue +++ /dev/null @@ -1,277 +0,0 @@ -<template> - <div :id="id" :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - id: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "200px" - }, - height: { - type: String, - default: "200px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.initChart(); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(document.getElementById(this.id)); - const xData = (function() { - const data = []; - for (let i = 1; i < 13; i++) { - data.push(i + "month"); - } - return data; - })(); - this.chart.setOption({ - backgroundColor: "#344b58", - title: { - text: "statistics", - x: "20", - top: "20", - textStyle: { - color: "#fff", - fontSize: "22" - }, - subtextStyle: { - color: "#90979c", - fontSize: "16" - } - }, - tooltip: { - trigger: "axis", - axisPointer: { - textStyle: { - color: "#fff" - } - } - }, - grid: { - left: "5%", - right: "5%", - borderWidth: 0, - top: 150, - bottom: 95, - textStyle: { - color: "#fff" - } - }, - legend: { - x: "5%", - top: "10%", - textStyle: { - color: "#90979c" - }, - data: ["female", "male", "average"] - }, - calculable: true, - xAxis: [ - { - type: "category", - axisLine: { - lineStyle: { - color: "#90979c" - } - }, - splitLine: { - show: false - }, - axisTick: { - show: false - }, - splitArea: { - show: false - }, - axisLabel: { - interval: 0 - }, - data: xData - } - ], - yAxis: [ - { - type: "value", - splitLine: { - show: false - }, - axisLine: { - lineStyle: { - color: "#90979c" - } - }, - axisTick: { - show: false - }, - axisLabel: { - interval: 0 - }, - splitArea: { - show: false - } - } - ], - dataZoom: [ - { - show: true, - height: 30, - xAxisIndex: [0], - bottom: 30, - start: 10, - end: 80, - handleIcon: - "path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z", - handleSize: "110%", - handleStyle: { - color: "#d3dee5" - }, - textStyle: { - color: "#fff" - }, - borderColor: "#90979c" - }, - { - type: "inside", - show: true, - height: 15, - start: 1, - end: 35 - } - ], - series: [ - { - name: "female", - type: "bar", - stack: "total", - barMaxWidth: 35, - barGap: "10%", - itemStyle: { - normal: { - color: "rgba(255,144,128,1)", - label: { - show: true, - textStyle: { - color: "#fff" - }, - position: "insideTop", - formatter(p) { - return p.value > 0 ? p.value : ""; - } - } - } - }, - data: [ - 709, - 1917, - 2455, - 2610, - 1719, - 1433, - 1544, - 3285, - 5208, - 3372, - 2484, - 4078 - ] - }, - - { - name: "male", - type: "bar", - stack: "total", - itemStyle: { - normal: { - color: "rgba(0,191,183,1)", - barBorderRadius: 0, - label: { - show: true, - position: "top", - formatter(p) { - return p.value > 0 ? p.value : ""; - } - } - } - }, - data: [ - 327, - 1776, - 507, - 1200, - 800, - 482, - 204, - 1390, - 1001, - 951, - 381, - 220 - ] - }, - { - name: "average", - type: "line", - stack: "total", - symbolSize: 10, - symbol: "circle", - itemStyle: { - normal: { - color: "rgba(252,230,48,1)", - barBorderRadius: 0, - label: { - show: true, - position: "top", - formatter(p) { - return p.value > 0 ? p.value : ""; - } - } - } - }, - data: [ - 1036, - 3693, - 2962, - 3810, - 2519, - 1915, - 1748, - 4675, - 6209, - 4323, - 2865, - 4298 - ] - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Charts/mixins/resize.js b/WebSite/src/components/Charts/mixins/resize.js deleted file mode 100644 index 77d662d7..00000000 --- a/WebSite/src/components/Charts/mixins/resize.js +++ /dev/null @@ -1,66 +0,0 @@ -import { debounce } from "@/utils"; - -export default { - data() { - return { - $_sidebarElm: null, - $_resizeHandler: null - }; - }, - mounted() { - this.initListener(); - }, - activated() { - if (!this.$_resizeHandler) { - // avoid duplication init - this.initListener(); - } - - // when keep-alive chart activated, auto resize - this.resize(); - }, - beforeDestroy() { - this.destroyListener(); - }, - deactivated() { - this.destroyListener(); - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_sidebarResizeHandler(e) { - if (e.propertyName === "width") { - this.$_resizeHandler(); - } - }, - initListener() { - this.$_resizeHandler = debounce(() => { - this.resize(); - }, 100); - window.addEventListener("resize", this.$_resizeHandler); - - this.$_sidebarElm = document.getElementsByClassName( - "sidebar-container" - )[0]; - this.$_sidebarElm && - this.$_sidebarElm.addEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - }, - destroyListener() { - window.removeEventListener("resize", this.$_resizeHandler); - this.$_resizeHandler = null; - - this.$_sidebarElm && - this.$_sidebarElm.removeEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - }, - resize() { - const { chart } = this; - chart && chart.resize(); - } - } -}; diff --git a/WebSite/src/components/DeptGroup/index.vue b/WebSite/src/components/DeptGroup/index.vue deleted file mode 100644 index 4220bc63..00000000 --- a/WebSite/src/components/DeptGroup/index.vue +++ /dev/null @@ -1,105 +0,0 @@ -<template> - <div class="deptGroup" style="position:relative"> - <el-input - :placeholder="holder" - name="treeInfo" - @click.native="showDeptInfo" - v-model="deptName" - :suffix-icon="treeVisble ? 'el-icon-caret-top' : 'el-icon-caret-bottom'" - ></el-input> - <div class="deptInfo" v-if="treeVisble"> - <el-input - placeholder="输入关键å—进行过滤" - name="treeInfo" - v-model="filterText" - @click.native="showDeptInfo" - > - </el-input> - <el-tree - class="filter-tree" - :data="deptList" - :props="defaultProps" - highlight-current - :default-expand-all="true" - :filter-node-method="filterNode" - ref="tree" - @node-click="handleNodeClick" - > - </el-tree> - </div> - </div> -</template> - -<script> -export default { - props: { - holder: { - type: String - }, - deptList: { - type: Array - } - }, - data() { - return { - treeVisble: false, - deptName: "", //部门åç§° - filterText: "", - defaultProps: { - children: "children", - label: "fullName" - }, - event: null - }; - }, - mounted() { - document.body.addEventListener("click", e => { - if (this.event) { - if (e.target.name !== "treeInfo" || e.target !== this.event.target) { - this.treeVisble = false; - } - } - }); - }, - watch: { - filterText(val) { - this.$refs.tree.filter(val); - }, - deptName(val) { - if (val == "") { - this.$emit("clearGroupId"); - } - } - }, - methods: { - showDeptInfo(e) { - this.event = e; - this.treeVisble = true; - }, - // æ ‘èŠ‚ç‚¹ç‚¹å‡» - handleNodeClick(data) { - this.deptName = data.fullName; - this.$emit("handleSetVal", data); - this.treeVisble = false; - }, - filterNode(value, data) { - if (!value) return true; - return data.fullName.indexOf(value) !== -1; - } - } -}; -</script> - -<style lang="scss" scoped> -.deptInfo { - // position: absolute; - position: fixed; - width: 209px; - height: 200px; - z-index: 10; - .el-tree { - height: 200px; - overflow: scroll; - } -} -</style> diff --git a/WebSite/src/components/DndList/index.vue b/WebSite/src/components/DndList/index.vue deleted file mode 100644 index c30eb14f..00000000 --- a/WebSite/src/components/DndList/index.vue +++ /dev/null @@ -1,182 +0,0 @@ -<template> - <div class="dndList"> - <div :style="{ width: width1 }" class="dndList-list"> - <h3>{{ list1Title }}</h3> - <draggable - :set-data="setData" - :list="list1" - group="article" - class="dragArea" - > - <div - v-for="element in list1" - :key="element.id" - class="list-complete-item" - > - <div class="list-complete-item-handle"> - {{ element.id }}[{{ element.author }}] {{ element.title }} - </div> - <div style="position:absolute;right:0px;"> - <span - style="float: right ;margin-top: -20px;margin-right:5px;" - @click="deleteEle(element)" - > - <i style="color:#ff4949" class="el-icon-delete" /> - </span> - </div> - </div> - </draggable> - </div> - <div :style="{ width: width2 }" class="dndList-list"> - <h3>{{ list2Title }}</h3> - <draggable :list="list2" group="article" class="dragArea"> - <div - v-for="element in list2" - :key="element.id" - class="list-complete-item" - > - <div class="list-complete-item-handle2" @click="pushEle(element)"> - {{ element.id }} [{{ element.author }}] {{ element.title }} - </div> - </div> - </draggable> - </div> - </div> -</template> - -<script> -import draggable from "vuedraggable"; - -export default { - name: "DndList", - components: { draggable }, - props: { - list1: { - type: Array, - default() { - return []; - } - }, - list2: { - type: Array, - default() { - return []; - } - }, - list1Title: { - type: String, - default: "list1" - }, - list2Title: { - type: String, - default: "list2" - }, - width1: { - type: String, - default: "48%" - }, - width2: { - type: String, - default: "48%" - } - }, - methods: { - isNotInList1(v) { - return this.list1.every(k => v.id !== k.id); - }, - isNotInList2(v) { - return this.list2.every(k => v.id !== k.id); - }, - deleteEle(ele) { - for (const item of this.list1) { - if (item.id === ele.id) { - const index = this.list1.indexOf(item); - this.list1.splice(index, 1); - break; - } - } - if (this.isNotInList2(ele)) { - this.list2.unshift(ele); - } - }, - pushEle(ele) { - for (const item of this.list2) { - if (item.id === ele.id) { - const index = this.list2.indexOf(item); - this.list2.splice(index, 1); - break; - } - } - if (this.isNotInList1(ele)) { - this.list1.push(ele); - } - }, - setData(dataTransfer) { - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - dataTransfer.setData("Text", ""); - } - } -}; -</script> - -<style lang="scss" scoped> -.dndList { - background: #fff; - padding-bottom: 40px; - &:after { - content: ""; - display: table; - clear: both; - } - .dndList-list { - float: left; - padding-bottom: 30px; - &:first-of-type { - margin-right: 2%; - } - .dragArea { - margin-top: 15px; - min-height: 50px; - padding-bottom: 30px; - } - } -} - -.list-complete-item { - cursor: pointer; - position: relative; - font-size: 14px; - padding: 5px 12px; - margin-top: 4px; - border: 1px solid #bfcbd9; - transition: all 1s; -} - -.list-complete-item-handle { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - margin-right: 50px; -} - -.list-complete-item-handle2 { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - margin-right: 20px; -} - -.list-complete-item.sortable-chosen { - background: #4ab7bd; -} - -.list-complete-item.sortable-ghost { - background: #30b08f; -} - -.list-complete-enter, -.list-complete-leave-active { - opacity: 0; -} -</style> diff --git a/WebSite/src/components/DragSelect/index.vue b/WebSite/src/components/DragSelect/index.vue deleted file mode 100644 index b255f2fc..00000000 --- a/WebSite/src/components/DragSelect/index.vue +++ /dev/null @@ -1,70 +0,0 @@ -<template> - <el-select - ref="dragSelect" - v-model="selectVal" - v-bind="$attrs" - class="drag-select" - multiple - v-on="$listeners" - > - <slot /> - </el-select> -</template> - -<script> -import Sortable from "sortablejs"; - -export default { - name: "DragSelect", - props: { - value: { - type: Array, - required: true - } - }, - computed: { - selectVal: { - get() { - return [...this.value]; - }, - set(val) { - this.$emit("input", [...val]); - } - } - }, - mounted() { - this.setSort(); - }, - methods: { - setSort() { - const el = this.$refs.dragSelect.$el.querySelectorAll( - ".el-select__tags > span" - )[0]; - this.sortable = Sortable.create(el, { - ghostClass: "sortable-ghost", // Class name for the drop placeholder, - setData: function(dataTransfer) { - dataTransfer.setData("Text", ""); - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - }, - onEnd: evt => { - const targetRow = this.value.splice(evt.oldIndex, 1)[0]; - this.value.splice(evt.newIndex, 0, targetRow); - } - }); - } - } -}; -</script> - -<style scoped> -.drag-select >>> .sortable-ghost { - opacity: 0.8; - color: #fff !important; - background: #42b983 !important; -} - -.drag-select >>> .el-tag { - cursor: pointer; -} -</style> diff --git a/WebSite/src/components/Dropzone/index.vue b/WebSite/src/components/Dropzone/index.vue deleted file mode 100644 index 2fadc741..00000000 --- a/WebSite/src/components/Dropzone/index.vue +++ /dev/null @@ -1,312 +0,0 @@ -<template> - <div :id="id" :ref="id" :action="url" class="dropzone"> - <input type="file" name="file" /> - </div> -</template> - -<script> -import Dropzone from "dropzone"; -import "dropzone/dist/dropzone.css"; -// import { getToken } from 'api/qiniu'; - -Dropzone.autoDiscover = false; - -export default { - props: { - id: { - type: String, - required: true - }, - url: { - type: String, - required: true - }, - clickable: { - type: Boolean, - default: true - }, - defaultMsg: { - type: String, - default: "ä¸Šä¼ å›¾ç‰‡" - }, - acceptedFiles: { - type: String, - default: "" - }, - thumbnailHeight: { - type: Number, - default: 200 - }, - thumbnailWidth: { - type: Number, - default: 200 - }, - showRemoveLink: { - type: Boolean, - default: true - }, - maxFilesize: { - type: Number, - default: 2 - }, - maxFiles: { - type: Number, - default: 3 - }, - autoProcessQueue: { - type: Boolean, - default: true - }, - useCustomDropzoneOptions: { - type: Boolean, - default: false - }, - defaultImg: { - default: "", - type: [String, Array] - }, - couldPaste: { - type: Boolean, - default: false - } - }, - data() { - return { - dropzone: "", - initOnce: true - }; - }, - watch: { - defaultImg(val) { - if (val.length === 0) { - this.initOnce = false; - return; - } - if (!this.initOnce) return; - this.initImages(val); - this.initOnce = false; - } - }, - mounted() { - const element = document.getElementById(this.id); - const vm = this; - this.dropzone = new Dropzone(element, { - clickable: this.clickable, - thumbnailWidth: this.thumbnailWidth, - thumbnailHeight: this.thumbnailHeight, - maxFiles: this.maxFiles, - maxFilesize: this.maxFilesize, - dictRemoveFile: "Remove", - addRemoveLinks: this.showRemoveLink, - acceptedFiles: this.acceptedFiles, - autoProcessQueue: this.autoProcessQueue, - dictDefaultMessage: - '<i style="margin-top: 3em;display: inline-block" class="material-icons">' + - this.defaultMsg + - "</i><br>Drop files here to upload", - dictMaxFilesExceeded: "åªèƒ½ä¸€ä¸ªå›¾", - previewTemplate: - '<div class="dz-preview dz-file-preview"> <div class="dz-image" style="width:' + - this.thumbnailWidth + - "px;height:" + - this.thumbnailHeight + - 'px" ><img style="width:' + - this.thumbnailWidth + - "px;height:" + - this.thumbnailHeight + - 'px" data-dz-thumbnail /></div> <div class="dz-details"><div class="dz-size"><span data-dz-size></span></div> <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div> <div class="dz-error-message"><span data-dz-errormessage></span></div> <div class="dz-success-mark"> <i class="material-icons">done</i> </div> <div class="dz-error-mark"><i class="material-icons">error</i></div></div>', - init() { - const val = vm.defaultImg; - if (!val) return; - if (Array.isArray(val)) { - if (val.length === 0) return; - val.map((v, i) => { - const mockFile = { name: "name" + i, size: 12345, url: v }; - this.options.addedfile.call(this, mockFile); - this.options.thumbnail.call(this, mockFile, v); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - vm.initOnce = false; - return true; - }); - } else { - const mockFile = { name: "name", size: 12345, url: val }; - this.options.addedfile.call(this, mockFile); - this.options.thumbnail.call(this, mockFile, val); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - vm.initOnce = false; - } - }, - accept: (file, done) => { - /* 七牛*/ - // const token = this.$store.getters.token; - // getToken(token).then(response => { - // file.token = response.data.qiniu_token; - // file.key = response.data.qiniu_key; - // file.url = response.data.qiniu_url; - // done(); - // }) - done(); - }, - sending: (file, xhr, formData) => { - // formData.append('token', file.token); - // formData.append('key', file.key); - vm.initOnce = false; - } - }); - - if (this.couldPaste) { - document.addEventListener("paste", this.pasteImg); - } - - this.dropzone.on("success", file => { - vm.$emit("dropzone-success", file, vm.dropzone.element); - }); - this.dropzone.on("addedfile", file => { - vm.$emit("dropzone-fileAdded", file); - }); - this.dropzone.on("removedfile", file => { - vm.$emit("dropzone-removedFile", file); - }); - this.dropzone.on("error", (file, error, xhr) => { - vm.$emit("dropzone-error", file, error, xhr); - }); - this.dropzone.on("successmultiple", (file, error, xhr) => { - vm.$emit("dropzone-successmultiple", file, error, xhr); - }); - }, - destroyed() { - document.removeEventListener("paste", this.pasteImg); - this.dropzone.destroy(); - }, - methods: { - removeAllFiles() { - this.dropzone.removeAllFiles(true); - }, - processQueue() { - this.dropzone.processQueue(); - }, - pasteImg(event) { - const items = (event.clipboardData || event.originalEvent.clipboardData) - .items; - if (items[0].kind === "file") { - this.dropzone.addFile(items[0].getAsFile()); - } - }, - initImages(val) { - if (!val) return; - if (Array.isArray(val)) { - val.map((v, i) => { - const mockFile = { name: "name" + i, size: 12345, url: v }; - this.dropzone.options.addedfile.call(this.dropzone, mockFile); - this.dropzone.options.thumbnail.call(this.dropzone, mockFile, v); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - return true; - }); - } else { - const mockFile = { name: "name", size: 12345, url: val }; - this.dropzone.options.addedfile.call(this.dropzone, mockFile); - this.dropzone.options.thumbnail.call(this.dropzone, mockFile, val); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - } - } - } -}; -</script> - -<style scoped> -.dropzone { - border: 2px solid #e5e5e5; - font-family: "Roboto", sans-serif; - color: #777; - transition: background-color 0.2s linear; - padding: 5px; -} - -.dropzone:hover { - background-color: #f6f6f6; -} - -i { - color: #ccc; -} - -.dropzone .dz-image img { - width: 100%; - height: 100%; -} - -.dropzone input[name="file"] { - display: none; -} - -.dropzone .dz-preview .dz-image { - border-radius: 0px; -} - -.dropzone .dz-preview:hover .dz-image img { - transform: none; - filter: none; - width: 100%; - height: 100%; -} - -.dropzone .dz-preview .dz-details { - bottom: 0px; - top: 0px; - color: white; - background-color: rgba(33, 150, 243, 0.8); - transition: opacity 0.2s linear; - text-align: left; -} - -.dropzone .dz-preview .dz-details .dz-filename span, -.dropzone .dz-preview .dz-details .dz-size span { - background-color: transparent; -} - -.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span { - border: none; -} - -.dropzone .dz-preview .dz-details .dz-filename:hover span { - background-color: transparent; - border: none; -} - -.dropzone .dz-preview .dz-remove { - position: absolute; - z-index: 30; - color: white; - margin-left: 15px; - padding: 10px; - top: inherit; - bottom: 15px; - border: 2px white solid; - text-decoration: none; - text-transform: uppercase; - font-size: 0.8rem; - font-weight: 800; - letter-spacing: 1.1px; - opacity: 0; -} - -.dropzone .dz-preview:hover .dz-remove { - opacity: 1; -} - -.dropzone .dz-preview .dz-success-mark, -.dropzone .dz-preview .dz-error-mark { - margin-left: -40px; - margin-top: -50px; -} - -.dropzone .dz-preview .dz-success-mark i, -.dropzone .dz-preview .dz-error-mark i { - color: white; - font-size: 5rem; -} -</style> diff --git a/WebSite/src/components/ErrorLog/index.vue b/WebSite/src/components/ErrorLog/index.vue deleted file mode 100644 index 5cf626b9..00000000 --- a/WebSite/src/components/ErrorLog/index.vue +++ /dev/null @@ -1,92 +0,0 @@ -<template> - <div v-if="errorLogs.length > 0"> - <el-badge - :is-dot="true" - style="line-height: 25px;margin-top: -5px;" - @click.native="dialogTableVisible = true" - > - <el-button style="padding: 8px 10px;" size="small" type="danger"> - <svg-icon icon-class="bug" /> - </el-button> - </el-badge> - - <el-dialog :visible.sync="dialogTableVisible" width="80%" append-to-body> - <div slot="title"> - <span style="padding-right: 10px;">Error Log</span> - <el-button - size="mini" - type="primary" - icon="el-icon-delete" - @click="clearAll" - >Clear All</el-button - > - </div> - <el-table :data="errorLogs" border> - <el-table-column label="Message"> - <template slot-scope="{ row }"> - <div> - <span class="message-title">Msg:</span> - <el-tag type="danger"> - {{ row.err.message }} - </el-tag> - </div> - <br /> - <div> - <span class="message-title" style="padding-right: 10px;" - >Info: - </span> - <el-tag type="warning"> - {{ row.vm.$vnode.tag }} error in {{ row.info }} - </el-tag> - </div> - <br /> - <div> - <span class="message-title" style="padding-right: 16px;" - >Url: - </span> - <el-tag type="success"> - {{ row.url }} - </el-tag> - </div> - </template> - </el-table-column> - <el-table-column label="Stack"> - <template slot-scope="scope"> - {{ scope.row.err.stack }} - </template> - </el-table-column> - </el-table> - </el-dialog> - </div> -</template> - -<script> -export default { - name: "ErrorLog", - data() { - return { - dialogTableVisible: false - }; - }, - computed: { - errorLogs() { - return this.$store.getters.errorLogs; - } - }, - methods: { - clearAll() { - this.dialogTableVisible = false; - this.$store.dispatch("errorLog/clearErrorLog"); - } - } -}; -</script> - -<style scoped> -.message-title { - font-size: 16px; - color: #333; - font-weight: bold; - padding-right: 8px; -} -</style> diff --git a/WebSite/src/components/GithubCorner/index.vue b/WebSite/src/components/GithubCorner/index.vue deleted file mode 100644 index 22662b80..00000000 --- a/WebSite/src/components/GithubCorner/index.vue +++ /dev/null @@ -1,59 +0,0 @@ -<template> - <a - href="https://github.com/PanJiaChen/vue-element-admin" - target="_blank" - class="github-corner" - aria-label="View source on Github" - > - <svg - width="80" - height="80" - viewBox="0 0 250 250" - style="fill:#40c9c6; color:#fff;" - aria-hidden="true" - > - <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" /> - <path - d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" - fill="currentColor" - style="transform-origin: 130px 106px;" - class="octo-arm" - /> - <path - d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" - fill="currentColor" - class="octo-body" - /> - </svg> - </a> -</template> - -<style scoped> -.github-corner:hover .octo-arm { - animation: octocat-wave 560ms ease-in-out; -} - -@keyframes octocat-wave { - 0%, - 100% { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } -} - -@media (max-width: 500px) { - .github-corner:hover .octo-arm { - animation: none; - } - .github-corner .octo-arm { - animation: octocat-wave 560ms ease-in-out; - } -} -</style> diff --git a/WebSite/src/components/Hamburger/index.vue b/WebSite/src/components/Hamburger/index.vue deleted file mode 100644 index cc798b5c..00000000 --- a/WebSite/src/components/Hamburger/index.vue +++ /dev/null @@ -1,46 +0,0 @@ -<template> - <div style="padding: 0 15px;" @click="toggleClick"> - <svg - :class="{ 'is-active': isActive }" - class="hamburger" - viewBox="0 0 1024 1024" - xmlns="http://www.w3.org/2000/svg" - width="64" - height="64" - > - <path - d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" - /> - </svg> - </div> -</template> - -<script> -export default { - name: "Hamburger", - props: { - isActive: { - type: Boolean, - default: false - } - }, - methods: { - toggleClick() { - this.$emit("toggleClick"); - } - } -}; -</script> - -<style scoped> -.hamburger { - display: inline-block; - vertical-align: middle; - width: 20px; - height: 20px; -} - -.hamburger.is-active { - transform: rotate(180deg); -} -</style> diff --git a/WebSite/src/components/HeaderSearch/index.vue b/WebSite/src/components/HeaderSearch/index.vue deleted file mode 100644 index 336e1789..00000000 --- a/WebSite/src/components/HeaderSearch/index.vue +++ /dev/null @@ -1,198 +0,0 @@ -<template> - <div :class="{ show: show }" class="header-search"> - <svg-icon - class-name="search-icon" - icon-class="search" - @click.stop="click" - /> - <el-select - ref="headerSearchSelect" - v-model="search" - :remote-method="querySearch" - filterable - default-first-option - remote - placeholder="Search" - class="header-search-select" - @change="change" - > - <el-option - v-for="item in options" - :key="item.path" - :value="item" - :label="item.title.join(' > ')" - /> - </el-select> - </div> -</template> - -<script> -// fuse is a lightweight fuzzy-search module -// make search results more in line with expectations -import Fuse from "fuse.js"; -import path from "path"; - -export default { - name: "HeaderSearch", - data() { - return { - search: "", - options: [], - searchPool: [], - show: false, - fuse: undefined - }; - }, - computed: { - routes() { - return this.$store.getters.permissionRoutes; - } - }, - watch: { - routes() { - this.searchPool = this.generateRoutes(this.routes); - }, - searchPool(list) { - this.initFuse(list); - }, - show(value) { - if (value) { - document.body.addEventListener("click", this.close); - } else { - document.body.removeEventListener("click", this.close); - } - } - }, - mounted() { - this.searchPool = this.generateRoutes(this.routes); - }, - methods: { - click() { - this.show = !this.show; - if (this.show) { - this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.focus(); - } - }, - close() { - this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.blur(); - this.options = []; - this.show = false; - }, - change(val) { - this.$router.push(val.path); - this.search = ""; - this.options = []; - this.$nextTick(() => { - this.show = false; - }); - }, - initFuse(list) { - this.fuse = new Fuse(list, { - shouldSort: true, - threshold: 0.4, - location: 0, - distance: 100, - maxPatternLength: 32, - minMatchCharLength: 1, - keys: [ - { - name: "title", - weight: 0.7 - }, - { - name: "path", - weight: 0.3 - } - ] - }); - }, - // Filter out the routes that can be displayed in the sidebar - // And generate the internationalized title - generateRoutes(routes, basePath = "/", prefixTitle = []) { - let res = []; - - for (const router of routes) { - // skip hidden router - if (router.hidden) { - continue; - } - - const data = { - path: path.resolve(basePath, router.path), - title: [...prefixTitle] - }; - - if (router.meta && router.meta.title) { - data.title = [...data.title, router.meta.title]; - - if (router.redirect !== "noRedirect") { - // only push the routes with title - // special case: need to exclude parent router without redirect - res.push(data); - } - } - - // recursive child routes - if (router.children) { - const tempRoutes = this.generateRoutes( - router.children, - data.path, - data.title - ); - if (tempRoutes.length >= 1) { - res = [...res, ...tempRoutes]; - } - } - } - return res; - }, - querySearch(query) { - if (query !== "") { - this.options = this.fuse.search(query); - } else { - this.options = []; - } - } - } -}; -</script> - -<style lang="scss" scoped> -.header-search { - font-size: 0 !important; - - .search-icon { - cursor: pointer; - font-size: 18px; - vertical-align: middle; - } - - .header-search-select { - font-size: 18px; - transition: width 0.2s; - width: 0; - overflow: hidden; - background: transparent; - border-radius: 0; - display: inline-block; - vertical-align: middle; - - /deep/ .el-input__inner { - border-radius: 0; - border: 0; - padding-left: 0; - padding-right: 0; - box-shadow: none !important; - border-bottom: 1px solid #d9d9d9; - vertical-align: middle; - } - } - - &.show { - .header-search-select { - width: 210px; - margin-left: 10px; - } - } -} -</style> diff --git a/WebSite/src/components/HelloWorld.vue b/WebSite/src/components/HelloWorld.vue new file mode 100644 index 00000000..36a4e466 --- /dev/null +++ b/WebSite/src/components/HelloWorld.vue @@ -0,0 +1,130 @@ +<template> + <div class="hello"> + <h1>{{ msg }}</h1> + <p> + For a guide and recipes on how to configure / customize this project,<br /> + check out the + <a href="https://cli.vuejs.org" target="_blank" rel="noopener" + >vue-cli documentation</a + >. + </p> + <h3>Installed CLI Plugins</h3> + <ul> + <li> + <a + href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" + target="_blank" + rel="noopener" + >babel</a + > + </li> + <li> + <a + href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" + target="_blank" + rel="noopener" + >router</a + > + </li> + <li> + <a + href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex" + target="_blank" + rel="noopener" + >vuex</a + > + </li> + <li> + <a + href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" + target="_blank" + rel="noopener" + >eslint</a + > + </li> + </ul> + <h3>Essential Links</h3> + <ul> + <li> + <a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a> + </li> + <li> + <a href="https://forum.vuejs.org" target="_blank" rel="noopener" + >Forum</a + > + </li> + <li> + <a href="https://chat.vuejs.org" target="_blank" rel="noopener" + >Community Chat</a + > + </li> + <li> + <a href="https://twitter.com/vuejs" target="_blank" rel="noopener" + >Twitter</a + > + </li> + <li> + <a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a> + </li> + </ul> + <h3>Ecosystem</h3> + <ul> + <li> + <a href="https://router.vuejs.org" target="_blank" rel="noopener" + >vue-router</a + > + </li> + <li> + <a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a> + </li> + <li> + <a + href="https://github.com/vuejs/vue-devtools#vue-devtools" + target="_blank" + rel="noopener" + >vue-devtools</a + > + </li> + <li> + <a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener" + >vue-loader</a + > + </li> + <li> + <a + href="https://github.com/vuejs/awesome-vue" + target="_blank" + rel="noopener" + >awesome-vue</a + > + </li> + </ul> + </div> +</template> + +<script> +export default { + name: 'HelloWorld', + props: { + msg: String + } +}; +</script> + +<!-- Add "scoped" attribute to limit CSS to this component only --> +<style scoped lang="scss"> +h3 { + margin: 40px 0 0; +} +ul { + list-style-type: none; + padding: 0; +} +li { + display: inline-block; + margin: 0 10px; +} +a { + color: #42b983; +} +</style> diff --git a/WebSite/src/components/ImageCropper/index.vue b/WebSite/src/components/ImageCropper/index.vue deleted file mode 100644 index 06a60aaf..00000000 --- a/WebSite/src/components/ImageCropper/index.vue +++ /dev/null @@ -1,1816 +0,0 @@ -<template> - <div v-show="value" class="vue-image-crop-upload"> - <div class="vicp-wrap"> - <div class="vicp-close" @click="off"> - <i class="vicp-icon4" /> - </div> - - <div v-show="step == 1" class="vicp-step1"> - <div - class="vicp-drop-area" - @dragleave="preventDefault" - @dragover="preventDefault" - @dragenter="preventDefault" - @click="handleClick" - @drop="handleChange" - > - <i v-show="loading != 1" class="vicp-icon1"> - <i class="vicp-icon1-arrow" /> - <i class="vicp-icon1-body" /> - <i class="vicp-icon1-bottom" /> - </i> - <span v-show="loading !== 1" class="vicp-hint">{{ lang.hint }}</span> - <span v-show="!isSupported" class="vicp-no-supported-hint">{{ - lang.noSupported - }}</span> - <input - v-show="false" - v-if="step == 1" - ref="fileinput" - type="file" - @change="handleChange" - /> - </div> - <div v-show="hasError" class="vicp-error"> - <i class="vicp-icon2" /> - {{ errorMsg }} - </div> - <div class="vicp-operate"> - <a @click="off" @mousedown="ripple">{{ lang.btn.off }}</a> - </div> - </div> - - <div v-if="step == 2" class="vicp-step2"> - <div class="vicp-crop"> - <div v-show="true" class="vicp-crop-left"> - <div class="vicp-img-container"> - <img - ref="img" - :src="sourceImgUrl" - :style="sourceImgStyle" - class="vicp-img" - draggable="false" - @drag="preventDefault" - @dragstart="preventDefault" - @dragend="preventDefault" - @dragleave="preventDefault" - @dragover="preventDefault" - @dragenter="preventDefault" - @drop="preventDefault" - @touchstart="imgStartMove" - @touchmove="imgMove" - @touchend="createImg" - @touchcancel="createImg" - @mousedown="imgStartMove" - @mousemove="imgMove" - @mouseup="createImg" - @mouseout="createImg" - /> - <div - :style="sourceImgShadeStyle" - class="vicp-img-shade vicp-img-shade-1" - /> - <div - :style="sourceImgShadeStyle" - class="vicp-img-shade vicp-img-shade-2" - /> - </div> - - <div class="vicp-range"> - <input - :value="scale.range" - type="range" - step="1" - min="0" - max="100" - @input="zoomChange" - /> - <i - class="vicp-icon5" - @mousedown="startZoomSub" - @mouseout="endZoomSub" - @mouseup="endZoomSub" - /> - <i - class="vicp-icon6" - @mousedown="startZoomAdd" - @mouseout="endZoomAdd" - @mouseup="endZoomAdd" - /> - </div> - - <div v-if="!noRotate" class="vicp-rotate"> - <i - @mousedown="startRotateLeft" - @mouseout="endRotate" - @mouseup="endRotate" - >↺</i - > - <i - @mousedown="startRotateRight" - @mouseout="endRotate" - @mouseup="endRotate" - >↻</i - > - </div> - </div> - <div v-show="true" class="vicp-crop-right"> - <div class="vicp-preview"> - <div v-if="!noSquare" class="vicp-preview-item"> - <img :src="createImgUrl" :style="previewStyle" /> - <span>{{ lang.preview }}</span> - </div> - <div - v-if="!noCircle" - class="vicp-preview-item vicp-preview-item-circle" - > - <img :src="createImgUrl" :style="previewStyle" /> - <span>{{ lang.preview }}</span> - </div> - </div> - </div> - </div> - <div class="vicp-operate"> - <a @click="setStep(1)" @mousedown="ripple">{{ lang.btn.back }}</a> - <a - class="vicp-operate-btn" - @click="prepareUpload" - @mousedown="ripple" - >{{ lang.btn.save }}</a - > - </div> - </div> - - <div v-if="step == 3" class="vicp-step3"> - <div class="vicp-upload"> - <span v-show="loading === 1" class="vicp-loading">{{ - lang.loading - }}</span> - <div class="vicp-progress-wrap"> - <span - v-show="loading === 1" - :style="progressStyle" - class="vicp-progress" - /> - </div> - <div v-show="hasError" class="vicp-error"> - <i class="vicp-icon2" /> - {{ errorMsg }} - </div> - <div v-show="loading === 2" class="vicp-success"> - <i class="vicp-icon3" /> - {{ lang.success }} - </div> - </div> - <div class="vicp-operate"> - <a @click="setStep(2)" @mousedown="ripple">{{ lang.btn.back }}</a> - <a @click="off" @mousedown="ripple">{{ lang.btn.close }}</a> - </div> - </div> - <canvas v-show="false" ref="canvas" :width="width" :height="height" /> - </div> - </div> -</template> - -<script> -"use strict"; -import request from "@/utils/request"; -import language from "./utils/language.js"; -import mimes from "./utils/mimes.js"; -import data2blob from "./utils/data2blob.js"; -import effectRipple from "./utils/effectRipple.js"; -export default { - props: { - // åŸŸï¼Œä¸Šä¼ æ–‡ä»¶name,触å‘事件会带上(如果一个页é¢å¤šä¸ªå›¾ç‰‡ä¸Šä¼ 控件,å¯ä»¥åšåŒºåˆ† - field: { - type: String, - default: "avatar" - }, - // 原åkey,类似于id,触å‘事件会带上(如果一个页é¢å¤šä¸ªå›¾ç‰‡ä¸Šä¼ 控件,å¯ä»¥åšåŒºåˆ† - ki: { - type: Number, - default: 0 - }, - // æ˜¾ç¤ºè¯¥æŽ§ä»¶ä¸Žå¦ - value: { - type: Boolean, - default: true - }, - // ä¸Šä¼ åœ°å€ - url: { - type: String, - default: "" - }, - // å…¶ä»–è¦ä¸Šä¼ 文件附带的数æ®ï¼Œå¯¹è±¡æ ¼å¼ - params: { - type: Object, - default: null - }, - // Add custom headers - headers: { - type: Object, - default: null - }, - // 剪è£å›¾ç‰‡çš„宽 - width: { - type: Number, - default: 200 - }, - // 剪è£å›¾ç‰‡çš„高 - height: { - type: Number, - default: 200 - }, - // 䏿˜¾ç¤ºæ—‹è½¬åŠŸèƒ½ - noRotate: { - type: Boolean, - default: true - }, - // ä¸é¢„览圆形图片 - noCircle: { - type: Boolean, - default: false - }, - // ä¸é¢„览方形图片 - noSquare: { - type: Boolean, - default: false - }, - // 啿–‡ä»¶å¤§å°é™åˆ¶ - maxSize: { - type: Number, - default: 10240 - }, - // è¯è¨€ç±»åž‹ - langType: { - type: String, - default: "zh" - }, - // è¯è¨€åŒ… - langExt: { - type: Object, - default: null - }, - // å›¾ç‰‡ä¸Šä¼ æ ¼å¼ - imgFormat: { - type: String, - default: "png" - }, - // æ˜¯å¦æ”¯æŒè·¨åŸŸ - withCredentials: { - type: Boolean, - default: false - } - }, - data() { - const { imgFormat, langType, langExt, width, height } = this; - let isSupported = true; - const allowImgFormat = ["jpg", "png"]; - const tempImgFormat = - allowImgFormat.indexOf(imgFormat) === -1 ? "jpg" : imgFormat; - const lang = language[langType] ? language[langType] : language["en"]; - const mime = mimes[tempImgFormat]; - // è§„èŒƒå›¾ç‰‡æ ¼å¼ - this.imgFormat = tempImgFormat; - if (langExt) { - Object.assign(lang, langExt); - } - if (typeof FormData !== "function") { - isSupported = false; - } - return { - // 图片的mime - mime, - // è¯è¨€åŒ… - lang, - // æµè§ˆå™¨æ˜¯å¦æ”¯æŒè¯¥æŽ§ä»¶ - isSupported, - // æµè§ˆå™¨æ˜¯å¦æ”¯æŒè§¦å±äº‹ä»¶ - isSupportTouch: document.hasOwnProperty("ontouchstart"), - // æ¥éª¤ - step: 1, // 1选择文件 2å‰ªè£ 3ä¸Šä¼ - // ä¸Šä¼ çŠ¶æ€åŠè¿›åº¦ - loading: 0, // 0未开始 1æ£åœ¨ 2æˆåŠŸ 3错误 - progress: 0, - // æ˜¯å¦æœ‰é”™è¯¯åŠé”™è¯¯ä¿¡æ¯ - hasError: false, - errorMsg: "", - // 需求图宽高比 - ratio: width / height, - // 原图地å€ã€ç”Ÿæˆå›¾ç‰‡åœ°å€ - sourceImg: null, - sourceImgUrl: "", - createImgUrl: "", - // 原图片拖动事件åˆå§‹å€¼ - sourceImgMouseDown: { - on: false, - mX: 0, // é¼ æ ‡æŒ‰ä¸‹çš„åæ ‡ - mY: 0, - x: 0, // scaleåŽŸå›¾åæ ‡ - y: 0 - }, - // 生æˆå›¾ç‰‡é¢„è§ˆçš„å®¹å™¨å¤§å° - previewContainer: { - width: 100, - height: 100 - }, - // 原图容器宽高 - sourceImgContainer: { - // sic - width: 240, - height: 184 // 如果生æˆå›¾æ¯”例与æ¤ä¸€è‡´ä¼šå‡ºçްbug,先改æˆç‰¹æ®Šçš„æ ¼å¼å§ï¼Œå“ˆå“ˆå“ˆ - }, - // 原图展示属性 - scale: { - zoomAddOn: false, // æŒ‰é’®ç¼©æ”¾äº‹ä»¶å¼€å¯ - zoomSubOn: false, // æŒ‰é’®ç¼©æ”¾äº‹ä»¶å¼€å¯ - range: 1, // 最大100 - rotateLeft: false, // 按钮å‘å·¦æ—‹è½¬äº‹ä»¶å¼€å¯ - rotateRight: false, // 按钮å‘峿—‹è½¬äº‹ä»¶å¼€å¯ - degree: 0, // 旋转度数 - x: 0, - y: 0, - width: 0, - height: 0, - maxWidth: 0, - maxHeight: 0, - minWidth: 0, // 最宽 - minHeight: 0, - naturalWidth: 0, // 原宽 - naturalHeight: 0 - } - }; - }, - computed: { - // è¿›åº¦æ¡æ ·å¼ - progressStyle() { - const { progress } = this; - return { - width: progress + "%" - }; - }, - // åŽŸå›¾æ ·å¼ - sourceImgStyle() { - const { scale, sourceImgMasking } = this; - const top = scale.y + sourceImgMasking.y + "px"; - const left = scale.x + sourceImgMasking.x + "px"; - return { - top, - left, - width: scale.width + "px", - height: scale.height + "px", - transform: "rotate(" + scale.degree + "deg)", // 旋转时 å·¦ä¾§åŽŸå§‹å›¾æ—‹è½¬æ ·å¼ - "-ms-transform": "rotate(" + scale.degree + "deg)", // 兼容IE9 - "-moz-transform": "rotate(" + scale.degree + "deg)", // 兼容FireFox - "-webkit-transform": "rotate(" + scale.degree + "deg)", // 兼容Safari å’Œ chrome - "-o-transform": "rotate(" + scale.degree + "deg)" // 兼容 Opera - }; - }, - // 原图蒙版属性 - sourceImgMasking() { - const { width, height, ratio, sourceImgContainer } = this; - const sic = sourceImgContainer; - const sicRatio = sic.width / sic.height; // 原图容器宽高比 - let x = 0; - let y = 0; - let w = sic.width; - let h = sic.height; - let scale = 1; - if (ratio < sicRatio) { - scale = sic.height / height; - w = sic.height * ratio; - x = (sic.width - w) / 2; - } - if (ratio > sicRatio) { - scale = sic.width / width; - h = sic.width / ratio; - y = (sic.height - h) / 2; - } - return { - scale, // 蒙版相对需求宽高的缩放 - x, - y, - width: w, - height: h - }; - }, - // 原图é®ç½©æ ·å¼ - sourceImgShadeStyle() { - const { sourceImgMasking, sourceImgContainer } = this; - const sic = sourceImgContainer; - const sim = sourceImgMasking; - const w = - sim.width === sic.width ? sim.width : (sic.width - sim.width) / 2; - const h = - sim.height === sic.height ? sim.height : (sic.height - sim.height) / 2; - return { - width: w + "px", - height: h + "px" - }; - }, - previewStyle() { - const { ratio, previewContainer } = this; - const pc = previewContainer; - let w = pc.width; - let h = pc.height; - const pcRatio = w / h; - if (ratio < pcRatio) { - w = pc.height * ratio; - } - if (ratio > pcRatio) { - h = pc.width / ratio; - } - return { - width: w + "px", - height: h + "px" - }; - } - }, - watch: { - value(newValue) { - if (newValue && this.loading !== 1) { - this.reset(); - } - } - }, - created() { - // 绑定按键escéšè—æ¤æ’件事件 - document.addEventListener("keyup", this.closeHandler); - }, - destroyed() { - document.removeEventListener("keyup", this.closeHandler); - }, - methods: { - // 点击波纹效果 - ripple(e) { - effectRipple(e); - }, - // 关闿ާ件 - off() { - setTimeout(() => { - this.$emit("input", false); - this.$emit("close"); - if (this.step === 3 && this.loading === 2) { - this.setStep(1); - } - }, 200); - }, - // 设置æ¥éª¤ - setStep(no) { - // 延时是为了显示动画效果呢,哈哈哈 - setTimeout(() => { - this.step = no; - }, 200); - }, - /* 图片选择区域函数绑定 - ---------------------------------------------------------------*/ - preventDefault(e) { - e.preventDefault(); - return false; - }, - handleClick(e) { - if (this.loading !== 1) { - if (e.target !== this.$refs.fileinput) { - e.preventDefault(); - if (document.activeElement !== this.$refs) { - this.$refs.fileinput.click(); - } - } - } - }, - handleChange(e) { - e.preventDefault(); - if (this.loading !== 1) { - const files = e.target.files || e.dataTransfer.files; - this.reset(); - if (this.checkFile(files[0])) { - this.setSourceImg(files[0]); - } - } - }, - /* ---------------------------------------------------------------*/ - // 检测选择的文件是å¦åˆé€‚ - checkFile(file) { - const { lang, maxSize } = this; - // ä»…é™å›¾ç‰‡ - if (file.type.indexOf("image") === -1) { - this.hasError = true; - this.errorMsg = lang.error.onlyImg; - return false; - } - // è¶…å‡ºå¤§å° - if (file.size / 1024 > maxSize) { - this.hasError = true; - this.errorMsg = lang.error.outOfSize + maxSize + "kb"; - return false; - } - return true; - }, - // é‡ç½®æŽ§ä»¶ - reset() { - this.loading = 0; - this.hasError = false; - this.errorMsg = ""; - this.progress = 0; - }, - // è®¾ç½®å›¾ç‰‡æº - setSourceImg(file) { - const fr = new FileReader(); - fr.onload = e => { - this.sourceImgUrl = fr.result; - this.startCrop(); - }; - fr.readAsDataURL(file); - }, - // 剪è£å‰å‡†å¤‡å·¥ä½œ - startCrop() { - const { - width, - height, - ratio, - scale, - sourceImgUrl, - sourceImgMasking, - lang - } = this; - const sim = sourceImgMasking; - const img = new Image(); - img.src = sourceImgUrl; - img.onload = () => { - const nWidth = img.naturalWidth; - const nHeight = img.naturalHeight; - const nRatio = nWidth / nHeight; - let w = sim.width; - let h = sim.height; - let x = 0; - let y = 0; - // 图片åƒç´ ä¸è¾¾æ ‡ - if (nWidth < width || nHeight < height) { - this.hasError = true; - this.errorMsg = lang.error.lowestPx + width + "*" + height; - return false; - } - if (ratio > nRatio) { - h = w / nRatio; - y = (sim.height - h) / 2; - } - if (ratio < nRatio) { - w = h * nRatio; - x = (sim.width - w) / 2; - } - scale.range = 0; - scale.x = x; - scale.y = y; - scale.width = w; - scale.height = h; - scale.degree = 0; - scale.minWidth = w; - scale.minHeight = h; - scale.maxWidth = nWidth * sim.scale; - scale.maxHeight = nHeight * sim.scale; - scale.naturalWidth = nWidth; - scale.naturalHeight = nHeight; - this.sourceImg = img; - this.createImg(); - this.setStep(2); - }; - }, - // é¼ æ ‡æŒ‰ä¸‹å›¾ç‰‡å‡†å¤‡ç§»åŠ¨ - imgStartMove(e) { - e.preventDefault(); - // 支æŒè§¦æ‘¸äº‹ä»¶ï¼Œåˆ™é¼ æ ‡äº‹ä»¶æ— æ•ˆ - if (this.isSupportTouch && !e.targetTouches) { - return false; - } - const et = e.targetTouches ? e.targetTouches[0] : e; - const { sourceImgMouseDown, scale } = this; - const simd = sourceImgMouseDown; - simd.mX = et.screenX; - simd.mY = et.screenY; - simd.x = scale.x; - simd.y = scale.y; - simd.on = true; - }, - // é¼ æ ‡æŒ‰ä¸‹çŠ¶æ€ä¸‹ç§»åŠ¨ï¼Œå›¾ç‰‡ç§»åŠ¨ - imgMove(e) { - e.preventDefault(); - // 支æŒè§¦æ‘¸äº‹ä»¶ï¼Œåˆ™é¼ æ ‡äº‹ä»¶æ— æ•ˆ - if (this.isSupportTouch && !e.targetTouches) { - return false; - } - const et = e.targetTouches ? e.targetTouches[0] : e; - const { - sourceImgMouseDown: { on, mX, mY, x, y }, - scale, - sourceImgMasking - } = this; - const sim = sourceImgMasking; - const nX = et.screenX; - const nY = et.screenY; - const dX = nX - mX; - const dY = nY - mY; - let rX = x + dX; - let rY = y + dY; - if (!on) return; - if (rX > 0) { - rX = 0; - } - if (rY > 0) { - rY = 0; - } - if (rX < sim.width - scale.width) { - rX = sim.width - scale.width; - } - if (rY < sim.height - scale.height) { - rY = sim.height - scale.height; - } - scale.x = rX; - scale.y = rY; - }, - // 按钮按下开始å‘峿—‹è½¬ - startRotateRight(e) { - const { scale } = this; - scale.rotateRight = true; - const rotate = () => { - if (scale.rotateRight) { - const degree = ++scale.degree; - this.createImg(degree); - setTimeout(function() { - rotate(); - }, 60); - } - }; - rotate(); - }, - // 按钮按下开始å‘左旋转 - startRotateLeft(e) { - const { scale } = this; - scale.rotateLeft = true; - const rotate = () => { - if (scale.rotateLeft) { - const degree = --scale.degree; - this.createImg(degree); - setTimeout(function() { - rotate(); - }, 60); - } - }; - rotate(); - }, - // åœæ¢æ—‹è½¬ - endRotate() { - const { scale } = this; - scale.rotateLeft = false; - scale.rotateRight = false; - }, - // 按钮按下开始放大 - startZoomAdd(e) { - const { scale } = this; - scale.zoomAddOn = true; - const zoom = () => { - if (scale.zoomAddOn) { - const range = scale.range >= 100 ? 100 : ++scale.range; - this.zoomImg(range); - setTimeout(function() { - zoom(); - }, 60); - } - }; - zoom(); - }, - // 按钮æ¾å¼€æˆ–ç§»å¼€å–æ¶ˆæ”¾å¤§ - endZoomAdd(e) { - this.scale.zoomAddOn = false; - }, - // æŒ‰é’®æŒ‰ä¸‹å¼€å§‹ç¼©å° - startZoomSub(e) { - const { scale } = this; - scale.zoomSubOn = true; - const zoom = () => { - if (scale.zoomSubOn) { - const range = scale.range <= 0 ? 0 : --scale.range; - this.zoomImg(range); - setTimeout(function() { - zoom(); - }, 60); - } - }; - zoom(); - }, - // 按钮æ¾å¼€æˆ–ç§»å¼€å–æ¶ˆç¼©å° - endZoomSub(e) { - const { scale } = this; - scale.zoomSubOn = false; - }, - zoomChange(e) { - this.zoomImg(e.target.value); - }, - // 缩放原图 - zoomImg(newRange) { - const { sourceImgMasking, scale } = this; - const { - maxWidth, - maxHeight, - minWidth, - minHeight, - width, - height, - x, - y - } = scale; - const sim = sourceImgMasking; - // 蒙版宽高 - const sWidth = sim.width; - const sHeight = sim.height; - // 新宽高 - const nWidth = minWidth + ((maxWidth - minWidth) * newRange) / 100; - const nHeight = minHeight + ((maxHeight - minHeight) * newRange) / 100; - // æ–°åæ ‡ï¼ˆæ ¹æ®è’™ç‰ˆä¸å¿ƒç‚¹ç¼©æ”¾ï¼‰ - let nX = sWidth / 2 - (nWidth / width) * (sWidth / 2 - x); - let nY = sHeight / 2 - (nHeight / height) * (sHeight / 2 - y); - // åˆ¤æ–æ–°åæ ‡æ˜¯å¦è¶…过蒙版é™åˆ¶ - if (nX > 0) { - nX = 0; - } - if (nY > 0) { - nY = 0; - } - if (nX < sWidth - nWidth) { - nX = sWidth - nWidth; - } - if (nY < sHeight - nHeight) { - nY = sHeight - nHeight; - } - // èµ‹å€¼å¤„ç† - scale.x = nX; - scale.y = nY; - scale.width = nWidth; - scale.height = nHeight; - scale.range = newRange; - setTimeout(() => { - if (scale.range === newRange) { - this.createImg(); - } - }, 300); - }, - // 生æˆéœ€æ±‚图片 - createImg(e) { - const { - mime, - sourceImg, - scale: { x, y, width, height, degree }, - sourceImgMasking: { scale } - } = this; - const canvas = this.$refs.canvas; - const ctx = canvas.getContext("2d"); - if (e) { - // å–æ¶ˆé¼ æ ‡æŒ‰ä¸‹ç§»åŠ¨çŠ¶æ€ - this.sourceImgMouseDown.on = false; - } - canvas.width = this.width; - canvas.height = this.height; - ctx.clearRect(0, 0, this.width, this.height); - // 将逿˜ŽåŒºåŸŸè®¾ç½®ä¸ºç™½è‰²åº•è¾¹ - ctx.fillStyle = "#fff"; - ctx.fillRect(0, 0, this.width, this.height); - ctx.translate(this.width * 0.5, this.height * 0.5); - ctx.rotate((Math.PI * degree) / 180); - ctx.translate(-this.width * 0.5, -this.height * 0.5); - ctx.drawImage( - sourceImg, - x / scale, - y / scale, - width / scale, - height / scale - ); - this.createImgUrl = canvas.toDataURL(mime); - }, - prepareUpload() { - const { url, createImgUrl, field, ki } = this; - this.$emit("crop-success", createImgUrl, field, ki); - if (typeof url === "string" && url) { - this.upload(); - } else { - this.off(); - } - }, - // ä¸Šä¼ å›¾ç‰‡ - upload() { - const { - lang, - imgFormat, - mime, - url, - params, - field, - ki, - createImgUrl - } = this; - const fmData = new FormData(); - fmData.append( - field, - data2blob(createImgUrl, mime), - field + "." + imgFormat - ); - // æ·»åŠ å…¶ä»–å‚æ•° - if (typeof params === "object" && params) { - Object.keys(params).forEach(k => { - fmData.append(k, params[k]); - }); - } - // 监å¬è¿›åº¦å›žè°ƒ - // const uploadProgress = (event) => { - // if (event.lengthComputable) { - // this.progress = 100 * Math.round(event.loaded) / event.total - // } - // } - // ä¸Šä¼ æ–‡ä»¶ - this.reset(); - this.loading = 1; - this.setStep(3); - request({ - url, - method: "post", - data: fmData - }) - .then(resData => { - this.loading = 2; - this.$emit("crop-upload-success", resData.data); - }) - .catch(err => { - if (this.value) { - this.loading = 3; - this.hasError = true; - this.errorMsg = lang.fail; - this.$emit("crop-upload-fail", err, field, ki); - } - }); - }, - closeHandler(e) { - if (this.value && (e.key === "Escape" || e.keyCode === 27)) { - this.off(); - } - } - } -}; -</script> - -<style lang="scss"> -@charset "UTF-8"; -@-webkit-keyframes vicp_progress { - 0% { - background-position-y: 0; - } - 100% { - background-position-y: 40px; - } -} -@keyframes vicp_progress { - 0% { - background-position-y: 0; - } - 100% { - background-position-y: 40px; - } -} -@-webkit-keyframes vicp { - 0% { - opacity: 0; - -webkit-transform: scale(0) translatey(-60px); - transform: scale(0) translatey(-60px); - } - 100% { - opacity: 1; - -webkit-transform: scale(1) translatey(0); - transform: scale(1) translatey(0); - } -} -@keyframes vicp { - 0% { - opacity: 0; - -webkit-transform: scale(0) translatey(-60px); - transform: scale(0) translatey(-60px); - } - 100% { - opacity: 1; - -webkit-transform: scale(1) translatey(0); - transform: scale(1) translatey(0); - } -} -.vue-image-crop-upload { - position: fixed; - display: block; - -webkit-box-sizing: border-box; - box-sizing: border-box; - z-index: 10000; - top: 0; - bottom: 0; - left: 0; - right: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.65); - -webkit-tap-highlight-color: transparent; - -moz-tap-highlight-color: transparent; -} -.vue-image-crop-upload .vicp-wrap { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - position: fixed; - display: block; - -webkit-box-sizing: border-box; - box-sizing: border-box; - z-index: 10000; - top: 0; - bottom: 0; - left: 0; - right: 0; - margin: auto; - width: 600px; - height: 330px; - padding: 25px; - background-color: #fff; - border-radius: 2px; - -webkit-animation: vicp 0.12s ease-in; - animation: vicp 0.12s ease-in; -} -.vue-image-crop-upload .vicp-wrap .vicp-close { - position: absolute; - right: -30px; - top: -30px; -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4 { - position: relative; - display: block; - width: 30px; - height: 30px; - cursor: pointer; - -webkit-transition: -webkit-transform 0.18s; - transition: -webkit-transform 0.18s; - transition: transform 0.18s; - transition: transform 0.18s, -webkit-transform 0.18s; - -webkit-transform: rotate(0); - -ms-transform: rotate(0); - transform: rotate(0); -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4::after, -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4::before { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - content: ""; - position: absolute; - top: 12px; - left: 4px; - width: 20px; - height: 3px; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - background-color: #fff; -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4::after { - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4:hover { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area { - position: relative; - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 35px; - height: 170px; - background-color: rgba(0, 0, 0, 0.03); - text-align: center; - border: 1px dashed rgba(0, 0, 0, 0.08); - overflow: hidden; -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area .vicp-icon1 { - display: block; - margin: 0 auto 6px; - width: 42px; - height: 42px; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-icon1 - .vicp-icon1-arrow { - display: block; - margin: 0 auto; - width: 0; - height: 0; - border-bottom: 14.7px solid rgba(0, 0, 0, 0.3); - border-left: 14.7px solid transparent; - border-right: 14.7px solid transparent; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-icon1 - .vicp-icon1-body { - display: block; - width: 12.6px; - height: 14.7px; - margin: 0 auto; - background-color: rgba(0, 0, 0, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-icon1 - .vicp-icon1-bottom { - -webkit-box-sizing: border-box; - box-sizing: border-box; - display: block; - height: 12.6px; - border: 6px solid rgba(0, 0, 0, 0.3); - border-top: none; -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area .vicp-hint { - display: block; - padding: 15px; - font-size: 14px; - color: #666; - line-height: 30px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-no-supported-hint { - display: block; - position: absolute; - top: 0; - left: 0; - padding: 30px; - width: 100%; - height: 60px; - line-height: 30px; - background-color: #eee; - text-align: center; - color: #666; - font-size: 14px; -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area:hover { - cursor: pointer; - border-color: rgba(0, 0, 0, 0.1); - background-color: rgba(0, 0, 0, 0.05); -} -.vue-image-crop-upload .vicp-wrap .vicp-step2 .vicp-crop { - overflow: hidden; -} -.vue-image-crop-upload .vicp-wrap .vicp-step2 .vicp-crop .vicp-crop-left { - float: left; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container { - position: relative; - display: block; - width: 240px; - height: 180px; - background-color: #e5e5e0; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img { - position: absolute; - display: block; - cursor: move; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img-shade { - -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - position: absolute; - background-color: rgba(241, 242, 243, 0.8); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img-shade.vicp-img-shade-1 { - top: 0; - left: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img-shade.vicp-img-shade-2 { - bottom: 0; - right: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate { - position: relative; - width: 240px; - height: 18px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i { - display: block; - width: 18px; - height: 18px; - border-radius: 100%; - line-height: 18px; - text-align: center; - font-size: 12px; - font-weight: bold; - background-color: rgba(0, 0, 0, 0.08); - color: #fff; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i:hover { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - cursor: pointer; - background-color: rgba(0, 0, 0, 0.14); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i:first-child { - float: left; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i:last-child { - float: right; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range { - position: relative; - margin: 30px 0 10px 0; - width: 240px; - height: 18px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5, -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6 { - position: absolute; - top: 0; - width: 18px; - height: 18px; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.08); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5:hover, -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6:hover { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - cursor: pointer; - background-color: rgba(0, 0, 0, 0.14); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5 { - left: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5::before { - position: absolute; - content: ""; - display: block; - left: 3px; - top: 8px; - width: 12px; - height: 2px; - background-color: #fff; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6 { - right: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6::before { - position: absolute; - content: ""; - display: block; - left: 3px; - top: 8px; - width: 12px; - height: 2px; - background-color: #fff; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6::after { - position: absolute; - content: ""; - display: block; - top: 3px; - left: 8px; - width: 2px; - height: 12px; - background-color: #fff; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"] { - display: block; - padding-top: 5px; - margin: 0 auto; - width: 180px; - height: 8px; - vertical-align: top; - background: transparent; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - cursor: pointer; - /* æ»‘å— - ---------------------------------------------------------------*/ - /* è½¨é“ - ---------------------------------------------------------------*/ -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus { - outline: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-webkit-slider-thumb { - -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - -webkit-appearance: none; - appearance: none; - margin-top: -3px; - width: 12px; - height: 12px; - background-color: #61c091; - border-radius: 100%; - border: none; - -webkit-transition: 0.2s; - transition: 0.2s; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-moz-range-thumb { - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - -moz-appearance: none; - appearance: none; - width: 12px; - height: 12px; - background-color: #61c091; - border-radius: 100%; - border: none; - -webkit-transition: 0.2s; - transition: 0.2s; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-thumb { - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - appearance: none; - width: 12px; - height: 12px; - background-color: #61c091; - border: none; - border-radius: 100%; - -webkit-transition: 0.2s; - transition: 0.2s; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:active::-moz-range-thumb { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - width: 14px; - height: 14px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:active::-ms-thumb { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - width: 14px; - height: 14px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:active::-webkit-slider-thumb { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - margin-top: -4px; - width: 14px; - height: 14px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-webkit-slider-runnable-track { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - width: 100%; - height: 6px; - cursor: pointer; - border-radius: 2px; - border: none; - background-color: rgba(68, 170, 119, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-moz-range-track { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - width: 100%; - height: 6px; - cursor: pointer; - border-radius: 2px; - border: none; - background-color: rgba(68, 170, 119, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-track { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - width: 100%; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; - height: 6px; - border-radius: 2px; - border: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-fill-lower { - background-color: rgba(68, 170, 119, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-fill-upper { - background-color: rgba(68, 170, 119, 0.15); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-webkit-slider-runnable-track { - background-color: rgba(68, 170, 119, 0.5); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-moz-range-track { - background-color: rgba(68, 170, 119, 0.5); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-ms-fill-lower { - background-color: rgba(68, 170, 119, 0.45); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-ms-fill-upper { - background-color: rgba(68, 170, 119, 0.25); -} -.vue-image-crop-upload .vicp-wrap .vicp-step2 .vicp-crop .vicp-crop-right { - float: right; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview { - height: 150px; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item { - position: relative; - padding: 5px; - width: 100px; - height: 100px; - float: left; - margin-right: 16px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item - span { - position: absolute; - bottom: -30px; - width: 100%; - font-size: 14px; - color: #bbb; - display: block; - text-align: center; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item - img { - position: absolute; - display: block; - top: 0; - bottom: 0; - left: 0; - right: 0; - margin: auto; - padding: 3px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.15); - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item.vicp-preview-item-circle { - margin-right: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item.vicp-preview-item-circle - img { - border-radius: 100%; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload { - position: relative; - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 35px; - height: 170px; - background-color: rgba(0, 0, 0, 0.03); - text-align: center; - border: 1px dashed #ddd; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-loading { - display: block; - padding: 15px; - font-size: 16px; - color: #999; - line-height: 30px; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-progress-wrap { - margin-top: 12px; - background-color: rgba(0, 0, 0, 0.08); - border-radius: 3px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step3 - .vicp-upload - .vicp-progress-wrap - .vicp-progress { - position: relative; - display: block; - height: 5px; - border-radius: 3px; - background-color: #4a7; - -webkit-box-shadow: 0 2px 6px 0 rgba(68, 170, 119, 0.3); - box-shadow: 0 2px 6px 0 rgba(68, 170, 119, 0.3); - -webkit-transition: width 0.15s linear; - transition: width 0.15s linear; - background-image: -webkit-linear-gradient( - 135deg, - rgba(255, 255, 255, 0.2) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.2) 50%, - rgba(255, 255, 255, 0.2) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - -45deg, - rgba(255, 255, 255, 0.2) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.2) 50%, - rgba(255, 255, 255, 0.2) 75%, - transparent 75%, - transparent - ); - background-size: 40px 40px; - -webkit-animation: vicp_progress 0.5s linear infinite; - animation: vicp_progress 0.5s linear infinite; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step3 - .vicp-upload - .vicp-progress-wrap - .vicp-progress::after { - content: ""; - position: absolute; - display: block; - top: -3px; - right: -3px; - width: 9px; - height: 9px; - border: 1px solid rgba(245, 246, 247, 0.7); - -webkit-box-shadow: 0 1px 4px 0 rgba(68, 170, 119, 0.7); - box-shadow: 0 1px 4px 0 rgba(68, 170, 119, 0.7); - border-radius: 100%; - background-color: #4a7; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-error, -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-success { - height: 100px; - line-height: 100px; -} -.vue-image-crop-upload .vicp-wrap .vicp-operate { - position: absolute; - right: 20px; - bottom: 20px; -} -.vue-image-crop-upload .vicp-wrap .vicp-operate a { - position: relative; - float: left; - display: block; - margin-left: 10px; - width: 100px; - height: 36px; - line-height: 36px; - text-align: center; - cursor: pointer; - font-size: 14px; - color: #4a7; - border-radius: 2px; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.vue-image-crop-upload .vicp-wrap .vicp-operate a:hover { - background-color: rgba(0, 0, 0, 0.03); -} -.vue-image-crop-upload .vicp-wrap .vicp-error, -.vue-image-crop-upload .vicp-wrap .vicp-success { - display: block; - font-size: 14px; - line-height: 24px; - height: 24px; - color: #d10; - text-align: center; - vertical-align: top; -} -.vue-image-crop-upload .vicp-wrap .vicp-success { - color: #4a7; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon3 { - position: relative; - display: inline-block; - width: 20px; - height: 20px; - top: 4px; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon3::after { - position: absolute; - top: 3px; - left: 6px; - width: 6px; - height: 10px; - border-width: 0 2px 2px 0; - border-color: #4a7; - border-style: solid; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - content: ""; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon2 { - position: relative; - display: inline-block; - width: 20px; - height: 20px; - top: 4px; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon2::after, -.vue-image-crop-upload .vicp-wrap .vicp-icon2::before { - content: ""; - position: absolute; - top: 9px; - left: 4px; - width: 13px; - height: 2px; - background-color: #d10; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); -} -.vue-image-crop-upload .vicp-wrap .vicp-icon2::after { - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); -} -.e-ripple { - position: absolute; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.15); - background-clip: padding-box; - pointer-events: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transform: scale(0); - -ms-transform: scale(0); - transform: scale(0); - opacity: 1; -} -.e-ripple.z-active { - opacity: 0; - -webkit-transform: scale(2); - -ms-transform: scale(2); - transform: scale(2); - -webkit-transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out, - -webkit-transform 0.6s ease-out; -} -</style> diff --git a/WebSite/src/components/ImageCropper/utils/data2blob.js b/WebSite/src/components/ImageCropper/utils/data2blob.js deleted file mode 100644 index 59092dca..00000000 --- a/WebSite/src/components/ImageCropper/utils/data2blob.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * database64æ–‡ä»¶æ ¼å¼è½¬æ¢ä¸º2进制 - * - * @param {[String]} data dataURL çš„æ ¼å¼ä¸º “data:image/png;base64,****â€,逗å·ä¹‹å‰éƒ½æ˜¯ä¸€äº›è¯´æ˜Žæ€§çš„æ–‡å—,我们åªéœ€è¦é€—å·ä¹‹åŽçš„就行了 - * @param {[String]} mime [description] - * @return {[blob]} [description] - */ -export default function(data, mime) { - data = data.split(",")[1]; - data = window.atob(data); - var ia = new Uint8Array(data.length); - for (var i = 0; i < data.length; i++) { - ia[i] = data.charCodeAt(i); - } - // canvas.toDataURL è¿”å›žçš„é»˜è®¤æ ¼å¼å°±æ˜¯ image/png - return new Blob([ia], { - type: mime - }); -} diff --git a/WebSite/src/components/ImageCropper/utils/effectRipple.js b/WebSite/src/components/ImageCropper/utils/effectRipple.js deleted file mode 100644 index 3d42d003..00000000 --- a/WebSite/src/components/ImageCropper/utils/effectRipple.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * 点击波纹效果 - * - * @param {[event]} e [description] - * @param {[Object]} arg_opts [description] - * @return {[bollean]} [description] - */ -export default function(e, arg_opts) { - var opts = Object.assign( - { - ele: e.target, // æ³¢çº¹ä½œç”¨å…ƒç´ - type: "hit", // hit点击ä½ç½®æ‰©æ•£centerä¸å¿ƒç‚¹æ‰©å±• - bgc: "rgba(0, 0, 0, 0.15)" // 波纹颜色 - }, - arg_opts - ); - var target = opts.ele; - if (target) { - var rect = target.getBoundingClientRect(); - var ripple = target.querySelector(".e-ripple"); - if (!ripple) { - ripple = document.createElement("span"); - ripple.className = "e-ripple"; - ripple.style.height = ripple.style.width = - Math.max(rect.width, rect.height) + "px"; - target.appendChild(ripple); - } else { - ripple.className = "e-ripple"; - } - switch (opts.type) { - case "center": - ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + "px"; - ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + "px"; - break; - default: - ripple.style.top = - e.pageY - - rect.top - - ripple.offsetHeight / 2 - - document.body.scrollTop + - "px"; - ripple.style.left = - e.pageX - - rect.left - - ripple.offsetWidth / 2 - - document.body.scrollLeft + - "px"; - } - ripple.style.backgroundColor = opts.bgc; - ripple.className = "e-ripple z-active"; - return false; - } -} diff --git a/WebSite/src/components/ImageCropper/utils/language.js b/WebSite/src/components/ImageCropper/utils/language.js deleted file mode 100644 index 36cb3001..00000000 --- a/WebSite/src/components/ImageCropper/utils/language.js +++ /dev/null @@ -1,240 +0,0 @@ -export default { - zh: { - hint: "点击,或拖动图片至æ¤å¤„", - loading: "æ£åœ¨ä¸Šä¼ ……", - noSupported: "æµè§ˆå™¨ä¸æ”¯æŒè¯¥åŠŸèƒ½ï¼Œè¯·ä½¿ç”¨IE10以上或其他现在æµè§ˆå™¨ï¼", - success: "ä¸Šä¼ æˆåŠŸ", - fail: "å›¾ç‰‡ä¸Šä¼ å¤±è´¥", - preview: "头åƒé¢„览", - btn: { - off: "å–æ¶ˆ", - close: "å…³é—", - back: "上一æ¥", - save: "ä¿å˜" - }, - error: { - onlyImg: "ä»…é™å›¾ç‰‡æ ¼å¼", - outOfSize: "啿–‡ä»¶å¤§å°ä¸èƒ½è¶…过 ", - lowestPx: "图片最低åƒç´ 为(宽*高):" - } - }, - "zh-tw": { - hint: "點擊,或拖動圖片至æ¤è™•", - loading: "æ£åœ¨ä¸Šå‚³â€¦â€¦", - noSupported: "ç€è¦½å™¨ä¸æ”¯æŒè©²åŠŸèƒ½ï¼Œè«‹ä½¿ç”¨IE10以上或其他ç¾ä»£ç€è¦½å™¨ï¼", - success: "上傳æˆåŠŸ", - fail: "圖片上傳失敗", - preview: "é åƒé 覽", - btn: { - off: "å–æ¶ˆ", - close: "關閉", - back: "上一æ¥", - save: "ä¿å˜" - }, - error: { - onlyImg: "僅é™åœ–ç‰‡æ ¼å¼", - outOfSize: "單文件大å°ä¸èƒ½è¶…éŽ ", - lowestPx: "圖片最低åƒç´ 為(寬*高):" - } - }, - en: { - hint: "Click or drag the file here to upload", - loading: "Uploading…", - noSupported: "Browser is not supported, please use IE10+ or other browsers", - success: "Upload success", - fail: "Upload failed", - preview: "Preview", - btn: { - off: "Cancel", - close: "Close", - back: "Back", - save: "Save" - }, - error: { - onlyImg: "Image only", - outOfSize: "Image exceeds size limit: ", - lowestPx: "Image's size is too low. Expected at least: " - } - }, - ro: { - hint: "Atinge sau trage fiÈ™ierul aici", - loading: "Se încarcă", - noSupported: - "Browser-ul tău nu suportă acest feature. Te rugăm încearcă cu alt browser.", - success: "S-a încărcat cu succes", - fail: "A apărut o problemă la încărcare", - preview: "Previzualizează", - - btn: { - off: "Anulează", - close: "ÃŽnchide", - back: "ÃŽnapoi", - save: "Salvează" - }, - - error: { - onlyImg: "Doar imagini", - outOfSize: "Imaginea depășeÈ™te limita de: ", - loewstPx: "Imaginea este prea mică; Minim: " - } - }, - ru: { - hint: "Ðажмите, или перетащите файл в Ñто окно", - loading: "Загружаю……", - noSupported: - "Ваш браузер не поддерживаетÑÑ, пожалуйÑта, иÑпользуйте IE10 + или другие браузеры", - success: "Загрузка выполнена уÑпешно", - fail: "Ошибка загрузки", - preview: "ПредпроÑмотр", - btn: { - off: "Отменить", - close: "Закрыть", - back: "Ðазад", - save: "Сохранить" - }, - error: { - onlyImg: "Только изображениÑ", - outOfSize: "Изображение превышает предельный размер: ", - lowestPx: "Минимальный размер изображениÑ: " - } - }, - "pt-br": { - hint: "Clique ou arraste o arquivo aqui para carregar", - loading: "Carregando…", - noSupported: "Browser não suportado, use o IE10+ ou outro browser", - success: "Sucesso ao carregar imagem", - fail: "Falha ao carregar imagem", - preview: "Pré-visualizar", - btn: { - off: "Cancelar", - close: "Fechar", - back: "Voltar", - save: "Salvar" - }, - error: { - onlyImg: "Apenas imagens", - outOfSize: "A imagem excede o limite de tamanho: ", - lowestPx: "O tamanho da imagem é muito pequeno. Tamanho mÃnimo: " - } - }, - fr: { - hint: "Cliquez ou glissez le fichier ici.", - loading: "Téléchargement…", - noSupported: - "Votre navigateur n'est pas supporté. Utilisez IE10 + ou un autre navigateur s'il vous plaît.", - success: "Téléchargement réussit", - fail: "Téléchargement echoué", - preview: "Aperçu", - btn: { - off: "Annuler", - close: "Fermer", - back: "Retour", - save: "Enregistrer" - }, - error: { - onlyImg: "Image uniquement", - outOfSize: "L'image sélectionnée dépasse la taille maximum: ", - lowestPx: "L'image sélectionnée est trop petite. Dimensions attendues: " - } - }, - nl: { - hint: "Klik hier of sleep een afbeelding in dit vlak", - loading: "Uploaden…", - noSupported: - "Je browser wordt helaas niet ondersteund. Gebruik IE10+ of een andere browser.", - success: "Upload succesvol", - fail: "Upload mislukt", - preview: "Voorbeeld", - btn: { - off: "Annuleren", - close: "Sluiten", - back: "Terug", - save: "Opslaan" - }, - error: { - onlyImg: "Alleen afbeeldingen", - outOfSize: "De afbeelding is groter dan: ", - lowestPx: "De afbeelding is te klein! Minimale afmetingen: " - } - }, - tr: { - hint: "Tıkla veya yüklemek istediÄŸini buraya sürükle", - loading: "Yükleniyor…", - noSupported: - "Tarayıcı desteklenmiyor, lütfen IE10+ veya farklı tarayıcı kullanın", - success: "Yükleme baÅŸarılı", - fail: "Yüklemede hata oluÅŸtu", - preview: "Önizle", - btn: { - off: "İptal", - close: "Kapat", - back: "Geri", - save: "Kaydet" - }, - error: { - onlyImg: "Sadece resim", - outOfSize: "Resim yükleme limitini aşıyor: ", - lowestPx: "Resmin boyutu çok küçük. En az olması gereken: " - } - }, - "es-MX": { - hint: "Selecciona o arrastra una imagen", - loading: "Subiendo...", - noSupported: - "Tu navegador no es soportado, porfavor usa IE10+ u otros navegadores mas recientes", - success: "Subido exitosamente", - fail: "Sucedió un error", - preview: "Vista previa", - btn: { - off: "Cancelar", - close: "Cerrar", - back: "Atras", - save: "Guardar" - }, - error: { - onlyImg: "Unicamente imagenes", - outOfSize: "La imagen excede el tamaño maximo:", - lowestPx: "La imagen es demasiado pequeño. Se espera por lo menos:" - } - }, - de: { - hint: "Klick hier oder zieh eine Datei hier rein zum Hochladen", - loading: "Hochladen…", - noSupported: - "Browser wird nicht unterstützt, bitte verwende IE10+ oder andere Browser", - success: "Upload erfolgreich", - fail: "Upload fehlgeschlagen", - preview: "Vorschau", - btn: { - off: "Abbrechen", - close: "Schließen", - back: "Zurück", - save: "Speichern" - }, - error: { - onlyImg: "Nur Bilder", - outOfSize: "Das Bild ist zu groß: ", - lowestPx: "Das Bild ist zu klein. Mindestens: " - } - }, - ja: { - hint: "クリック・ドラッグã—ã¦ãƒ•ァイルをアップãƒãƒ¼ãƒ‰", - loading: "アップãƒãƒ¼ãƒ‰ä¸...", - noSupported: - "ã“ã®ãƒ–ラウザã¯å¯¾å¿œã•れã¦ã„ã¾ã›ã‚“。IE10+ã‹ãã®ä»–ã®ä¸»è¦ãƒ–ラウザをãŠä½¿ã„ãã ã•ã„。", - success: "アップãƒãƒ¼ãƒ‰æˆåŠŸ", - fail: "アップãƒãƒ¼ãƒ‰å¤±æ•—", - preview: "プレビュー", - btn: { - off: "ã‚ャンセル", - close: "é–‰ã˜ã‚‹", - back: "戻る", - save: "ä¿å˜" - }, - error: { - onlyImg: "ç”»åƒã®ã¿", - outOfSize: "ç”»åƒã‚µã‚¤ã‚ºãŒä¸Šé™ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚上é™: ", - lowestPx: "ç”»åƒãŒå°ã•ã™ãŽã¾ã™ã€‚最å°ã‚µã‚¤ã‚º: " - } - } -}; diff --git a/WebSite/src/components/ImageCropper/utils/mimes.js b/WebSite/src/components/ImageCropper/utils/mimes.js deleted file mode 100644 index 049d6bc5..00000000 --- a/WebSite/src/components/ImageCropper/utils/mimes.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - jpg: "image/jpeg", - png: "image/png", - gif: "image/gif", - svg: "image/svg+xml", - psd: "image/photoshop" -}; diff --git a/WebSite/src/components/JcRange/index.vue b/WebSite/src/components/JcRange/index.vue deleted file mode 100644 index c75301b0..00000000 --- a/WebSite/src/components/JcRange/index.vue +++ /dev/null @@ -1,170 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-18 16:39:04 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-19 16:21:56 ---> -<template> - <div class="jc-component__range"> - <div class="jc-range" :class="rangeStatus ? 'success' : ''"> - <div - :class="{ 'jc-range-block': true, login: rangeStatus }" - @mousedown="rangeMove" - @click="handleConfirm" - > - <i :class="rangeStatus ? successIcon : startIcon"></i> - <span> ç™» 录</span> - </div> - {{ rangeStatus ? successText : startText }} - </div> - </div> -</template> - -<script> -export default { - name: "JcRange", - props: { - // æˆåŠŸä¹‹åŽçš„函数 - successFun: { - type: Function - }, - //æˆåŠŸå›¾æ ‡ - successIcon: { - type: String, - default: "el-icon-mouse" - }, - //æˆåŠŸæ–‡å— - successText: { - type: String, - default: "éªŒè¯æˆåŠŸ" - }, - //å¼€å§‹çš„å›¾æ ‡ - startIcon: { - type: String, - default: "el-icon-right" - }, - //å¼€å§‹çš„æ–‡å— - startText: { - type: String, - default: "拖动滑å—至最å³ä»¥ç™»å½•" - }, - //失败之åŽçš„函数 - errorFun: { - type: Function - }, - //或者用值æ¥è¿›è¡Œç›‘å¬ - status: { - type: Boolean, - default: false - } - }, - data() { - return { - disX: 0, - rangeStatus: false - }; - }, - methods: { - handleConfirm() { - this.$emit("handle-confirm"); - }, - //滑å—移动 - rangeMove(e) { - let ele = document.querySelector(".jc-range-block"); - let startX = e.clientX; - let eleWidth = ele.offsetWidth; - let parentWidth = ele.parentElement.offsetWidth; - let MaxX = parentWidth - eleWidth; - if (this.rangeStatus) { - //ä¸è¿è¡Œ - return false; - } - document.onmousemove = e => { - let endX = e.clientX; - this.disX = endX - startX; - if (this.disX <= 0) { - this.disX = 0; - } - if (this.disX >= MaxX - eleWidth) { - //å‡åŽ»æ»‘å—的宽度,体验效果更好 - this.disX = MaxX; - } - ele.style.transition = ".1s all"; - ele.style.transform = "translateX(" + this.disX + "px)"; - e.preventDefault(); - }; - document.onmouseup = () => { - if (this.disX !== MaxX) { - ele.style.transition = ".5s all"; - ele.style.transform = "translateX(0)"; - //执行æˆåŠŸçš„å‡½æ•° - this.errorFun && this.errorFun(); - } else { - this.rangeStatus = true; - if (!this.status) { - this.$emit("update:status", true); - } - //执行æˆåŠŸçš„å‡½æ•° - this.successFun && this.successFun(); - } - document.onmousemove = null; - document.onmouseup = null; - }; - } - } -}; -</script> - -<style lang="scss" scoped> -@mixin jc-flex { - display: flex; - justify-content: center; - align-items: center; -} -.jc-component__range { - .jc-range { - background-color: #e9e9e9; - position: relative; - transition: 1s all; - user-select: none; - color: #585858; - border-radius: 3px; - @include jc-flex; - height: 40px; /*no*/ - &.success { - background-color: rgb(24, 144, 255); - color: #fff; - i { - color: rgb(24, 144, 255); - } - } - .jc-range-block { - position: absolute; - left: 0; - width: 50px; /*no*/ - height: 100%; - color: #409eff; - border-radius: 3px; - background-color: #fff; - border: 1px solid #d8d8d8; - cursor: pointer; - font-size: 20px; - @include jc-flex; - - span { - position: absolute; - left: 50px; - font-size: 14px; - margin-left: 5px; - opacity: 0; - } - } - - .login { - left: -50px; - width: 100px; - } - } -} -</style> diff --git a/WebSite/src/components/JsonEditor/index.vue b/WebSite/src/components/JsonEditor/index.vue deleted file mode 100644 index 851e32c1..00000000 --- a/WebSite/src/components/JsonEditor/index.vue +++ /dev/null @@ -1,72 +0,0 @@ -<template> - <div class="json-editor"> - <textarea ref="textarea" /> - </div> -</template> - -<script> -import CodeMirror from "codemirror"; -import "codemirror/addon/lint/lint.css"; -import "codemirror/lib/codemirror.css"; -import "codemirror/theme/rubyblue.css"; -require("script-loader!jsonlint"); -import "codemirror/mode/javascript/javascript"; -import "codemirror/addon/lint/lint"; -import "codemirror/addon/lint/json-lint"; - -export default { - name: "JsonEditor", - /* eslint-disable vue/require-prop-types */ - props: ["value"], - data() { - return { - jsonEditor: false - }; - }, - watch: { - value(value) { - const editorValue = this.jsonEditor.getValue(); - if (value !== editorValue) { - this.jsonEditor.setValue(JSON.stringify(this.value, null, 2)); - } - } - }, - mounted() { - this.jsonEditor = CodeMirror.fromTextArea(this.$refs.textarea, { - lineNumbers: true, - mode: "application/json", - gutters: ["CodeMirror-lint-markers"], - theme: "rubyblue", - lint: true - }); - - this.jsonEditor.setValue(JSON.stringify(this.value, null, 2)); - this.jsonEditor.on("change", cm => { - this.$emit("changed", cm.getValue()); - this.$emit("input", cm.getValue()); - }); - }, - methods: { - getValue() { - return this.jsonEditor.getValue(); - } - } -}; -</script> - -<style scoped> -.json-editor { - height: 100%; - position: relative; -} -.json-editor >>> .CodeMirror { - height: auto; - min-height: 300px; -} -.json-editor >>> .CodeMirror-scroll { - min-height: 300px; -} -.json-editor >>> .cm-s-rubyblue span.cm-string { - color: #f08047; -} -</style> diff --git a/WebSite/src/components/JumpDialog/components/JumpDialogItem.vue b/WebSite/src/components/JumpDialog/components/JumpDialogItem.vue deleted file mode 100644 index 8335599b..00000000 --- a/WebSite/src/components/JumpDialog/components/JumpDialogItem.vue +++ /dev/null @@ -1,39 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-20 08:32:52 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 12:55:38 ---> -<template> - <div v-if="visible"> - <slot></slot> - </div> -</template> - -<script> -import { eventBus } from "../event-bus"; -export default { - name: "JumpDialogItem", - data() { - return { - visible: false - }; - }, - props: { - name: { - type: String - }, - label: { - type: String - } - }, - created() { - eventBus.$on("activeChange", activeName => { - this.visible = this.name === activeName; - this.visible && eventBus.$emit("setTitle", this.label); - }); - }, - mounted() {} -}; -</script> diff --git a/WebSite/src/components/JumpDialog/event-bus.js b/WebSite/src/components/JumpDialog/event-bus.js deleted file mode 100644 index 03c63fd5..00000000 --- a/WebSite/src/components/JumpDialog/event-bus.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-20 08:42:33 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 08:44:20 - */ -import Vue from "vue"; -export const eventBus = new Vue(); diff --git a/WebSite/src/components/JumpDialog/index.vue b/WebSite/src/components/JumpDialog/index.vue deleted file mode 100644 index 2ddcd163..00000000 --- a/WebSite/src/components/JumpDialog/index.vue +++ /dev/null @@ -1,103 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-16 15:43:55 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 12:32:54 ---> -<template> - <div class="jump-dialog-outer-container" :style="{ width }"> - <transition name="jump-dialog" mode="out-in"> - <div class="jump-dialog-inner-container" v-show="!visible"> - <slot name="layout"></slot> - </div> - </transition> - <transition name="jump-dialog" mode="out-in"> - <div class="jump-dialog-inner-container" v-show="visible"> - <el-card shadow="hover"> - <el-page-header @back="goBack" :content="title"></el-page-header> - <div class="content-container"> - <slot></slot> - </div> - </el-card> - </div> - </transition> - </div> -</template> - -<script> -import { eventBus } from "./event-bus"; -export default { - name: "JumpDialog", - props: { - visible: { - type: Boolean, - default: false - }, - width: { - type: String, - default: "100%" - }, - activeName: { - type: String - } - }, - data() { - return { - title: "" - }; - }, - watch: { - activeName(val) { - eventBus.$emit("activeChange", val); - } - }, - created() { - eventBus.$on("setTitle", title => { - this.title = title; - }); - }, - mounted() {}, - beforeDestroy() { - eventBus.$off(); - }, - methods: { - goBack() { - this.$emit("update:visible", false); - } - } -}; -</script> - -<style scoped> -.jump-dialog-outer-container { - position: relative; - width: 100%; -} -.jump-dialog-inner-container { - position: absolute; - width: 100%; -} -.content-container { - width: 100%; - margin-top: 20px; -} - -.jump-dialog-leave-active { - transition: all 0.6s ease; -} - -.jump-dialog-enter-active { - transition: all 0.6s ease; -} - -.jump-dialog-enter { - opacity: 0; - transform: translateX(-30px); -} - -.jump-dialog-leave-to { - opacity: 0; - transform: translateX(30px); -} -</style> diff --git a/WebSite/src/components/Kanban/index.vue b/WebSite/src/components/Kanban/index.vue deleted file mode 100644 index a858ac9b..00000000 --- a/WebSite/src/components/Kanban/index.vue +++ /dev/null @@ -1,98 +0,0 @@ -<template> - <div class="board-column"> - <div class="board-column-header"> - {{ headerText }} - </div> - <draggable - :list="list" - v-bind="$attrs" - class="board-column-content" - :set-data="setData" - > - <div v-for="element in list" :key="element.id" class="board-item"> - {{ element.name }} {{ element.id }} - </div> - </draggable> - </div> -</template> - -<script> -import draggable from "vuedraggable"; - -export default { - name: "DragKanbanDemo", - components: { - draggable - }, - props: { - headerText: { - type: String, - default: "Header" - }, - options: { - type: Object, - default() { - return {}; - } - }, - list: { - type: Array, - default() { - return []; - } - } - }, - methods: { - setData(dataTransfer) { - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - dataTransfer.setData("Text", ""); - } - } -}; -</script> -<style lang="scss" scoped> -.board-column { - min-width: 300px; - min-height: 100px; - height: auto; - overflow: hidden; - background: #f0f0f0; - border-radius: 3px; - - .board-column-header { - height: 50px; - line-height: 50px; - overflow: hidden; - padding: 0 20px; - text-align: center; - background: #333; - color: #fff; - border-radius: 3px 3px 0 0; - } - - .board-column-content { - height: auto; - overflow: hidden; - border: 10px solid transparent; - min-height: 60px; - display: flex; - justify-content: flex-start; - flex-direction: column; - align-items: center; - - .board-item { - cursor: pointer; - width: 100%; - height: 64px; - margin: 5px 0; - background-color: #fff; - text-align: left; - line-height: 54px; - padding: 5px 10px; - box-sizing: border-box; - box-shadow: 0px 1px 3px 0 rgba(0, 0, 0, 0.2); - } - } -} -</style> diff --git a/WebSite/src/components/LayoutCard/index.vue b/WebSite/src/components/LayoutCard/index.vue deleted file mode 100644 index 58617761..00000000 --- a/WebSite/src/components/LayoutCard/index.vue +++ /dev/null @@ -1,103 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-19 09:00:48 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-19 11:01:53 ---> -<template> - <div :class="['container', type]"> - <header> - <div class="title-container" v-if="showTitle"> - <slot name="title"></slot> - </div> - </header> - <main> - <div class="filter-container" v-if="showFilter"> - <slot name="filter"></slot> - </div> - <div class="button-container" v-if="showButton"> - <slot name="button"></slot> - </div> - <div class="content-container"> - <slot name="content"></slot> - </div> - </main> - </div> -</template> - -<script> -export default { - name: "LayoutCard", - props: { - type: { - type: String - }, - showTitle: { - type: Boolean, - default: true - }, - showFilter: { - type: Boolean, - default: true - }, - showButton: { - type: Boolean, - default: true - } - } -}; -</script> - -<style scoped> -.container { - width: 100%; - border-radius: 4px; - border: 1px solid #e6ebf5; - background-color: #fff; - overflow: hidden; - color: #303133; - transition: 0.3s; - box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); - padding: 20px; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; -} -.clearfix:after { - clear: both; -} -.primary { - border-top: 3px solid #409eff; -} -.success { - border-top: 3px solid #67c23a; -} -.warning { - border-top: 3px solid #e6a23c; -} -.danger { - border-top: 3px solid #f56c6c; -} -.info { - border-top: 3px solid #909399; -} -.title-container { - padding-bottom: 20px; - margin-bottom: 20px; - border-bottom: 1px solid #dcdfe6; -} -.filter-container { - padding-bottom: 20px; - margin-bottom: 20px; - border-bottom: 1px solid #dcdfe6; -} -.button-container { - padding-bottom: 20px; -} -.content-container { - padding-bottom: 10px; -} -</style> diff --git a/WebSite/src/components/MDinput/index.vue b/WebSite/src/components/MDinput/index.vue deleted file mode 100644 index 822d19af..00000000 --- a/WebSite/src/components/MDinput/index.vue +++ /dev/null @@ -1,364 +0,0 @@ -<template> - <div :class="computedClasses" class="material-input__component"> - <div :class="{ iconClass: icon }"> - <i - v-if="icon" - :class="['el-icon-' + icon]" - class="el-input__icon material-input__icon" - /> - <input - v-if="type === 'email'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :required="required" - type="email" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'url'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :required="required" - type="url" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'number'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :step="step" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :max="max" - :min="min" - :minlength="minlength" - :maxlength="maxlength" - :required="required" - type="number" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'password'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :max="max" - :min="min" - :required="required" - type="password" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'tel'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :required="required" - type="tel" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'text'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :minlength="minlength" - :maxlength="maxlength" - :required="required" - type="text" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <span class="material-input-bar" /> - <label class="material-label"> - <slot /> - </label> - </div> - </div> -</template> - -<script> -// source:https://github.com/wemake-services/vue-material-input/blob/master/src/components/MaterialInput.vue - -export default { - name: "MdInput", - props: { - /* eslint-disable */ - icon: String, - name: String, - type: { - type: String, - default: 'text' - }, - value: [String, Number], - placeholder: String, - readonly: Boolean, - disabled: Boolean, - min: String, - max: String, - step: String, - minlength: Number, - maxlength: Number, - required: { - type: Boolean, - default: true - }, - autoComplete: { - type: String, - default: 'off' - }, - validateEvent: { - type: Boolean, - default: true - } - }, - data() { - return { - currentValue: this.value, - focus: false, - fillPlaceHolder: null - } - }, - computed: { - computedClasses() { - return { - 'material--active': this.focus, - 'material--disabled': this.disabled, - 'material--raised': Boolean(this.focus || this.currentValue) // has value - } - } - }, - watch: { - value(newValue) { - this.currentValue = newValue - } - }, - methods: { - handleModelInput(event) { - const value = event.target.value - this.$emit('input', value) - if (this.$parent.$options.componentName === 'ElFormItem') { - if (this.validateEvent) { - this.$parent.$emit('el.form.change', [value]) - } - } - this.$emit('change', value) - }, - handleMdFocus(event) { - this.focus = true - this.$emit('focus', event) - if (this.placeholder && this.placeholder !== '') { - this.fillPlaceHolder = this.placeholder - } - }, - handleMdBlur(event) { - this.focus = false - this.$emit('blur', event) - this.fillPlaceHolder = null - if (this.$parent.$options.componentName === 'ElFormItem') { - if (this.validateEvent) { - this.$parent.$emit('el.form.blur', [this.currentValue]) - } - } - } - } -} -</script> - -<style lang="scss" scoped> - // Fonts: - $font-size-base: 16px; - $font-size-small: 18px; - $font-size-smallest: 12px; - $font-weight-normal: normal; - $font-weight-bold: bold; - $apixel: 1px; - // Utils - $spacer: 12px; - $transition: 0.2s ease all; - $index: 0px; - $index-has-icon: 30px; - // Theme: - $color-white: white; - $color-grey: #9E9E9E; - $color-grey-light: #E0E0E0; - $color-blue: #2196F3; - $color-red: #F44336; - $color-black: black; - // Base clases: - %base-bar-pseudo { - content: ''; - height: 1px; - width: 0; - bottom: 0; - position: absolute; - transition: $transition; - } - - // Mixins: - @mixin slided-top() { - top: - ($font-size-base + $spacer); - left: 0; - font-size: $font-size-base; - font-weight: $font-weight-bold; - } - - // Component: - .material-input__component { - margin-top: 36px; - position: relative; - * { - box-sizing: border-box; - } - .iconClass { - .material-input__icon { - position: absolute; - left: 0; - line-height: $font-size-base; - color: $color-blue; - top: $spacer; - width: $index-has-icon; - height: $font-size-base; - font-size: $font-size-base; - font-weight: $font-weight-normal; - pointer-events: none; - } - .material-label { - left: $index-has-icon; - } - .material-input { - text-indent: $index-has-icon; - } - } - .material-input { - font-size: $font-size-base; - padding: $spacer $spacer $spacer - $apixel * 10 $spacer / 2; - display: block; - width: 100%; - border: none; - line-height: 1; - border-radius: 0; - &:focus { - outline: none; - border: none; - border-bottom: 1px solid transparent; // fixes the height issue - } - } - .material-label { - font-weight: $font-weight-normal; - position: absolute; - pointer-events: none; - left: $index; - top: 0; - transition: $transition; - font-size: $font-size-small; - } - .material-input-bar { - position: relative; - display: block; - width: 100%; - &:before { - @extend %base-bar-pseudo; - left: 50%; - } - &:after { - @extend %base-bar-pseudo; - right: 50%; - } - } - // Disabled state: - &.material--disabled { - .material-input { - border-bottom-style: dashed; - } - } - // Raised state: - &.material--raised { - .material-label { - @include slided-top(); - } - } - // Active state: - &.material--active { - .material-input-bar { - &:before, - &:after { - width: 50%; - } - } - } - } - - .material-input__component { - background: $color-white; - .material-input { - background: none; - color: $color-black; - text-indent: $index; - border-bottom: 1px solid $color-grey-light; - } - .material-label { - color: $color-grey; - } - .material-input-bar { - &:before, - &:after { - background: $color-blue; - } - } - // Active state: - &.material--active { - .material-label { - color: $color-blue; - } - } - // Errors: - &.material--has-errors { - &.material--active .material-label { - color: $color-red; - } - .material-input-bar { - &:before, - &:after { - background: transparent; - } - } - } - } -</style> diff --git a/WebSite/src/components/MarkdownEditor/default-options.js b/WebSite/src/components/MarkdownEditor/default-options.js deleted file mode 100644 index e1da02d5..00000000 --- a/WebSite/src/components/MarkdownEditor/default-options.js +++ /dev/null @@ -1,31 +0,0 @@ -// doc: https://nhnent.github.io/tui.editor/api/latest/ToastUIEditor.html#ToastUIEditor -export default { - minHeight: "200px", - previewStyle: "vertical", - useCommandShortcut: true, - useDefaultHTMLSanitizer: true, - usageStatistics: false, - hideModeSwitch: false, - toolbarItems: [ - "heading", - "bold", - "italic", - "strike", - "divider", - "hr", - "quote", - "divider", - "ul", - "ol", - "task", - "indent", - "outdent", - "divider", - "table", - "image", - "link", - "divider", - "code", - "codeblock" - ] -}; diff --git a/WebSite/src/components/MarkdownEditor/index.vue b/WebSite/src/components/MarkdownEditor/index.vue deleted file mode 100644 index 7343da70..00000000 --- a/WebSite/src/components/MarkdownEditor/index.vue +++ /dev/null @@ -1,122 +0,0 @@ -<template> - <div :id="id" /> -</template> - -<script> -// deps for editor -import "codemirror/lib/codemirror.css"; // codemirror -import "tui-editor/dist/tui-editor.css"; // editor ui -import "tui-editor/dist/tui-editor-contents.css"; // editor content - -import Editor from "tui-editor"; -import defaultOptions from "./default-options"; - -export default { - name: "MarkdownEditor", - props: { - value: { - type: String, - default: "" - }, - id: { - type: String, - required: false, - default() { - return ( - "markdown-editor-" + - +new Date() + - ((Math.random() * 1000).toFixed(0) + "") - ); - } - }, - options: { - type: Object, - default() { - return defaultOptions; - } - }, - mode: { - type: String, - default: "markdown" - }, - height: { - type: String, - required: false, - default: "300px" - }, - language: { - type: String, - required: false, - default: "en_US" // https://github.com/nhnent/tui.editor/tree/master/src/js/langs - } - }, - data() { - return { - editor: null - }; - }, - computed: { - editorOptions() { - const options = Object.assign({}, defaultOptions, this.options); - options.initialEditType = this.mode; - options.height = this.height; - options.language = this.language; - return options; - } - }, - watch: { - value(newValue, preValue) { - if (newValue !== preValue && newValue !== this.editor.getValue()) { - this.editor.setValue(newValue); - } - }, - language(val) { - this.destroyEditor(); - this.initEditor(); - }, - height(newValue) { - this.editor.height(newValue); - }, - mode(newValue) { - this.editor.changeMode(newValue); - } - }, - mounted() { - this.initEditor(); - }, - destroyed() { - this.destroyEditor(); - }, - methods: { - initEditor() { - this.editor = new Editor({ - el: document.getElementById(this.id), - ...this.editorOptions - }); - if (this.value) { - this.editor.setValue(this.value); - } - this.editor.on("change", () => { - this.$emit("input", this.editor.getValue()); - }); - }, - destroyEditor() { - if (!this.editor) return; - this.editor.off("change"); - this.editor.remove(); - }, - setValue(value) { - this.editor.setValue(value); - }, - getValue() { - return this.editor.getValue(); - }, - setHtml(value) { - this.editor.setHtml(value); - }, - getHtml() { - return this.editor.getHtml(); - } - } -}; -</script> diff --git a/WebSite/src/components/ModifyPassword/index.vue b/WebSite/src/components/ModifyPassword/index.vue deleted file mode 100644 index 9357e155..00000000 --- a/WebSite/src/components/ModifyPassword/index.vue +++ /dev/null @@ -1,132 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-07 13:04:03 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-08 10:28:36 ---> - -<template> - <el-dialog - :loading="loading" - :before-close="handleCloseDialog" - :close-on-click-modal="false" - width="30%" - :title="`${isInitial ? '首次登录请先' : ''}修改密ç `" - :visible.sync="visible" - > - <el-form - ref="dataForm" - :model="data" - label-position="top" - size="large" - :rules="rules" - > - <el-form-item label="旧密ç " style="width: 100%;" prop="oldPassword"> - <el-input - show-password - placeholder="请输入旧密ç " - v-model="data.oldPassword" - autocomplete="new-password" - ></el-input> - </el-form-item> - <el-form-item label="新密ç " style="width: 100%;" prop="password"> - <el-input - show-password - placeholder="请输入新密ç " - v-model="data.password" - autocomplete="new-password" - ></el-input> - </el-form-item> - <el-form-item label="确认密ç " style="width: 100%;" prop="passwordAgain"> - <el-input - show-password - placeholder="è¯·è¾“å†æ¬¡å…¥æ–°å¯†ç " - v-model="data.passwordAgain" - autocomplete="new-password" - ></el-input> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button @click="handleCloseDialog()"> - å–æ¶ˆ - </el-button> - <el-button type="primary" @click="handleComfirm"> - 确认 - </el-button> - </div> - </el-dialog> -</template> - -<script> -export default { - name: "ModifyPassword", - props: { - visible: { - type: Boolean, - default: false - }, - isInitial: { - type: Boolean, - default: false - } - }, - watch: { - visible(val) { - if (val) { - this.$refs["dataForm"] && this.$refs["dataForm"].resetFields(); - this.data.id = this.$store.getters.accountId; - } - } - }, - data() { - const validPasswordAgain = (rule, value, callback) => { - if (!value) { - callback(new Error("è¯·å†æ¬¡è¾“入新密ç ")); - } else { - if (this.data.password !== this.data.passwordAgain) { - callback(new Error("新密ç 两次输入必须一致")); - } - callback(); - } - }; - return { - loading: false, - data: { - id: "", - oldPassword: "", - password: "", - passwordAgain: "" - }, - rules: { - oldPassword: [ - { required: true, message: "请输入旧密ç ", trigger: "blur" } - ], - password: [ - { required: true, message: "请输入新密ç ", trigger: "blur" } - ], - passwordAgain: [ - { required: true, validator: validPasswordAgain, trigger: "blur" } - ] - } - }; - }, - methods: { - handleComfirm() { - this.$refs["dataForm"].validate(async valid => { - if (valid) { - try { - await this.$service.Account.modifyPassword(this.data); - this.$message.success("ä¿®æ”¹å¯†ç æˆåŠŸ"); - this.$emit("update:visible", false); - this.$emit("handle-confirm"); - } catch (_) {} - } - }); - }, - handleCloseDialog() { - this.$emit("update:visible", false); - } - } -}; -</script> diff --git a/WebSite/src/components/OrganizationSelectTree/index.vue b/WebSite/src/components/OrganizationSelectTree/index.vue deleted file mode 100644 index 947daf8f..00000000 --- a/WebSite/src/components/OrganizationSelectTree/index.vue +++ /dev/null @@ -1,55 +0,0 @@ -<!-- - @Descripttion: - @Author: gong qun - @Date: 2020-06-18 10:25:12 - @LastEditors: gong qun - @LastEditTime: 2020-06-18 10:25:12 ---> -<template> - <SelectTree - ref="selectTree" - :options="options" - placeholder="请选择部门" - @change="change" - :props="props" - ></SelectTree> -</template> - -<script> -import SelectTree from "@/components/SelectTree"; -export default { - components: { - SelectTree - }, - name: "organization-select-tree", - data() { - return { - options: [], - props: { - value: "id", - label: "fullName", - children: "children" - } - }; - }, - mounted() { - let deptTree = sessionStorage.getItem("deptTree"); - if (deptTree) { - this.options = JSON.parse(deptTree); - return; - } - this.$service.Organization.getTreeList().then(res => { - this.options = res.data; - sessionStorage.setItem("deptTree", JSON.stringify(this.options)); - }); - }, - methods: { - change(value) { - this.$emit("change", value); - }, - clearSelect() { - this.$refs.selectTree.clearSelect(); - } - } -}; -</script> diff --git a/WebSite/src/components/Pagination/index.vue b/WebSite/src/components/Pagination/index.vue deleted file mode 100644 index 99c6f1f7..00000000 --- a/WebSite/src/components/Pagination/index.vue +++ /dev/null @@ -1,101 +0,0 @@ -<template> - <div :class="{ hidden: hidden }" class="pagination-container"> - <el-pagination - :background="background" - :current-page.sync="currentPage" - :page-size.sync="pageSize" - :layout="layout" - :page-sizes="pageSizes" - :total="total" - v-bind="$attrs" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> -</template> - -<script> -import { scrollTo } from "@/utils/scroll-to"; - -export default { - name: "Pagination", - props: { - total: { - required: true, - type: Number - }, - page: { - type: Number, - default: 1 - }, - limit: { - type: Number, - default: 20 - }, - pageSizes: { - type: Array, - default() { - return [10, 20, 30, 50]; - } - }, - layout: { - type: String, - default: "total, sizes, prev, pager, next, jumper" - }, - background: { - type: Boolean, - default: true - }, - autoScroll: { - type: Boolean, - default: true - }, - hidden: { - type: Boolean, - default: false - } - }, - computed: { - currentPage: { - get() { - return this.page; - }, - set(val) { - this.$emit("update:page", val); - } - }, - pageSize: { - get() { - return this.limit; - }, - set(val) { - this.$emit("update:limit", val); - } - } - }, - methods: { - handleSizeChange(val) { - this.$emit("pagination", { page: this.currentPage, limit: val }); - if (this.autoScroll) { - scrollTo(0, 800); - } - }, - handleCurrentChange(val) { - this.$emit("pagination", { page: val, limit: this.pageSize }); - if (this.autoScroll) { - scrollTo(0, 800); - } - } - } -}; -</script> - -<style scoped> -.pagination-container { - background: #fff; - /* padding: 32px 16px; */ -} -.pagination-container.hidden { - display: none; -} -</style> diff --git a/WebSite/src/components/PanThumb/index.vue b/WebSite/src/components/PanThumb/index.vue deleted file mode 100644 index fc945ba1..00000000 --- a/WebSite/src/components/PanThumb/index.vue +++ /dev/null @@ -1,146 +0,0 @@ -<template> - <div - :style="{ zIndex: zIndex, height: height, width: width }" - class="pan-item" - > - <div class="pan-info"> - <div class="pan-info-roles-container"> - <slot /> - </div> - </div> - <!-- eslint-disable-next-line --> - <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div> - </div> -</template> - -<script> -export default { - name: "PanThumb", - props: { - image: { - type: String, - required: true - }, - zIndex: { - type: Number, - default: 1 - }, - width: { - type: String, - default: "150px" - }, - height: { - type: String, - default: "150px" - } - } -}; -</script> - -<style scoped> -.pan-item { - width: 200px; - height: 200px; - border-radius: 50%; - display: inline-block; - position: relative; - cursor: default; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); -} - -.pan-info-roles-container { - padding: 20px; - text-align: center; -} - -.pan-thumb { - width: 100%; - height: 100%; - background-position: center center; - background-size: cover; - border-radius: 50%; - overflow: hidden; - position: absolute; - transform-origin: 95% 40%; - transition: all 0.3s ease-in-out; -} - -/* .pan-thumb:after { - content: ''; - width: 8px; - height: 8px; - position: absolute; - border-radius: 50%; - top: 40%; - left: 95%; - margin: -4px 0 0 -4px; - background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%); - box-shadow: 0 0 1px rgba(255, 255, 255, 0.9); -} */ - -.pan-info { - position: absolute; - width: inherit; - height: inherit; - border-radius: 50%; - overflow: hidden; - box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05); -} - -.pan-info h3 { - color: #fff; - text-transform: uppercase; - position: relative; - letter-spacing: 2px; - font-size: 18px; - margin: 0 60px; - padding: 22px 0 0 0; - height: 85px; - font-family: "Open Sans", Arial, sans-serif; - text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3); -} - -.pan-info p { - color: #fff; - padding: 10px 5px; - font-style: italic; - margin: 0 30px; - font-size: 12px; - border-top: 1px solid rgba(255, 255, 255, 0.5); -} - -.pan-info p a { - display: block; - color: #333; - width: 80px; - height: 80px; - background: rgba(255, 255, 255, 0.3); - border-radius: 50%; - color: #fff; - font-style: normal; - font-weight: 700; - text-transform: uppercase; - font-size: 9px; - letter-spacing: 1px; - padding-top: 24px; - margin: 7px auto 0; - font-family: "Open Sans", Arial, sans-serif; - opacity: 0; - transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s, - background 0.2s linear 0s; - transform: translateX(60px) rotate(90deg); -} - -.pan-info p a:hover { - background: rgba(255, 255, 255, 0.5); -} - -.pan-item:hover .pan-thumb { - transform: rotate(-110deg); -} - -.pan-item:hover .pan-info p a { - opacity: 1; - transform: translateX(0px) rotate(0deg); -} -</style> diff --git a/WebSite/src/components/RightPanel/index.vue b/WebSite/src/components/RightPanel/index.vue deleted file mode 100644 index 3e9fb032..00000000 --- a/WebSite/src/components/RightPanel/index.vue +++ /dev/null @@ -1,149 +0,0 @@ -<template> - <div ref="rightPanel" :class="{ show: show }" class="rightPanel-container"> - <div class="rightPanel-background" /> - <div class="rightPanel"> - <div - class="handle-button" - :style="{ top: buttonTop + 'px', 'background-color': theme }" - @click="show = !show" - > - <i :class="show ? 'el-icon-close' : 'el-icon-setting'" /> - </div> - <div class="rightPanel-items"> - <slot /> - </div> - </div> - </div> -</template> - -<script> -import { addClass, removeClass } from "@/utils"; - -export default { - name: "RightPanel", - props: { - clickNotClose: { - default: false, - type: Boolean - }, - buttonTop: { - default: 250, - type: Number - } - }, - data() { - return { - show: false - }; - }, - computed: { - theme() { - return this.$store.state.settings.theme; - } - }, - watch: { - show(value) { - if (value && !this.clickNotClose) { - this.addEventClick(); - } - if (value) { - addClass(document.body, "showRightPanel"); - } else { - removeClass(document.body, "showRightPanel"); - } - } - }, - mounted() { - this.insertToBody(); - }, - beforeDestroy() { - const elx = this.$refs.rightPanel; - elx.remove(); - }, - methods: { - addEventClick() { - window.addEventListener("click", this.closeSidebar); - }, - closeSidebar(evt) { - const parent = evt.target.closest(".rightPanel"); - if (!parent) { - this.show = false; - window.removeEventListener("click", this.closeSidebar); - } - }, - insertToBody() { - const elx = this.$refs.rightPanel; - const body = document.querySelector("body"); - body.insertBefore(elx, body.firstChild); - } - } -}; -</script> - -<style> -.showRightPanel { - overflow: hidden; - position: relative; - width: calc(100% - 15px); -} -</style> - -<style lang="scss" scoped> -.rightPanel-background { - position: fixed; - top: 0; - left: 0; - opacity: 0; - transition: opacity 0.3s cubic-bezier(0.7, 0.3, 0.1, 1); - background: rgba(0, 0, 0, 0.2); - z-index: -1; -} - -.rightPanel { - width: 100%; - max-width: 260px; - height: 100vh; - position: fixed; - top: 0; - right: 0; - box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.05); - transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1); - transform: translate(100%); - background: #fff; - z-index: 40000; -} - -.show { - transition: all 0.3s cubic-bezier(0.7, 0.3, 0.1, 1); - - .rightPanel-background { - z-index: 20000; - opacity: 1; - width: 100%; - height: 100%; - } - - .rightPanel { - transform: translate(0); - } -} - -.handle-button { - width: 48px; - height: 48px; - position: absolute; - left: -48px; - text-align: center; - font-size: 24px; - border-radius: 6px 0 0 6px !important; - z-index: 0; - pointer-events: auto; - cursor: pointer; - color: #fff; - line-height: 48px; - i { - font-size: 24px; - line-height: 48px; - } -} -</style> diff --git a/WebSite/src/components/Screenfull/index.vue b/WebSite/src/components/Screenfull/index.vue deleted file mode 100644 index 69e328be..00000000 --- a/WebSite/src/components/Screenfull/index.vue +++ /dev/null @@ -1,63 +0,0 @@ -<template> - <div> - <svg-icon - :icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'" - @click="click" - /> - </div> -</template> - -<script> -import screenfull from "screenfull"; - -export default { - name: "Screenfull", - data() { - return { - isFullscreen: false - }; - }, - mounted() { - this.init(); - }, - beforeDestroy() { - this.destroy(); - }, - methods: { - click() { - if (!screenfull.enabled) { - this.$message({ - message: "you browser can not work", - type: "warning" - }); - return false; - } - screenfull.toggle(); - }, - change() { - this.isFullscreen = screenfull.isFullscreen; - }, - init() { - if (screenfull.enabled) { - screenfull.on("change", this.change); - } - }, - destroy() { - if (screenfull.enabled) { - screenfull.off("change", this.change); - } - } - } -}; -</script> - -<style scoped> -.screenfull-svg { - display: inline-block; - cursor: pointer; - fill: #5a5e66; - width: 20px; - height: 20px; - vertical-align: 10px; -} -</style> diff --git a/WebSite/src/components/SelectTree/index.vue b/WebSite/src/components/SelectTree/index.vue deleted file mode 100644 index 28637e02..00000000 --- a/WebSite/src/components/SelectTree/index.vue +++ /dev/null @@ -1,201 +0,0 @@ -<!-- - @Descripttion: - @Author: gong qun - @Date: 2020-06-18 10:25:12 - @LastEditors: gong qun - @LastEditTime: 2020-06-18 10:25:12 ---> -<template> - <el-select - :value="valueTitle" - :clearable="clearable" - @clear="clearSelect" - :placeholder="placeholder" - ref="select" - :filterable="filterable" - :filter-method="filterMethod" - style="width:100%" - > - <el-option :value="valueTitle" :label="valueTitle"> - <el-tree - id="tree-option" - ref="selectTree" - :data="options" - :props="props" - :node-key="props.value" - :default-expanded-keys="defaultExpandedKey" - :default-expand-all="true" - @node-click="handleNodeClick" - :filter-node-method="filterNode" - :expand-on-click-node="false" - > - </el-tree> - </el-option> - </el-select> -</template> - -<script> -export default { - name: "select-tree", - props: { - /* é…置项 */ - props: { - type: Object, - default: () => { - return { - value: "id", // IDå—æ®µå - label: "name", // 显示åç§° - children: "children" // åçº§å—æ®µå - }; - } - }, - /* é€‰é¡¹åˆ—è¡¨ï¼ˆæ ‘ï¼‰ */ - options: { - type: Array, - default: () => { - return []; - } - }, - /* åˆå§‹å€¼ */ - value: { - type: String, - default: () => { - return null; - } - }, - /* 坿¸…空选项 */ - clearable: { - type: Boolean, - default: () => { - return true; - } - }, - /* 选ä¸åŽéšè—下拉框 */ - autoHide: { - type: Boolean, - default: () => { - return true; - } - }, - /* 是å¦å¯æœç´¢ */ - filterable: { - type: Boolean, - default: () => { - return true; - } - }, - /* æç¤ºæ–‡å— */ - placeholder: { - type: String, - default: () => { - return "请选择"; - } - } - }, - data() { - return { - valueId: this.value, // åˆå§‹å€¼ - valueTitle: "", - defaultExpandedKey: [] - }; - }, - mounted() { - this.initHandle(); - }, - methods: { - // åˆå§‹åŒ–值 - initHandle() { - if (this.valueId) { - this.valueTitle = this.$refs.selectTree.getNode(this.valueId).data[ - this.props.label - ]; // åˆå§‹åŒ–显示 - this.$refs.selectTree.setCurrentKey(this.valueId); // è®¾ç½®é»˜è®¤é€‰ä¸ - this.defaultExpandedKey = [this.valueId]; // 设置默认展开 - } - this.$nextTick(() => { - let scrollWrap = document.querySelectorAll( - ".el-scrollbar .el-select-dropdown__wrap" - )[0]; - let scrollBar = document.querySelectorAll( - ".el-scrollbar .el-scrollbar__bar" - ); - scrollWrap.style.cssText = - "margin: 0px; max-height: none; overflow: hidden;"; - scrollBar.forEach(ele => (ele.style.width = 0)); - }); - }, - // 切æ¢é€‰é¡¹ - handleNodeClick(node) { - this.valueTitle = node[this.props.label]; - this.valueId = node[this.props.value]; - this.$emit("change", this.valueId); - this.defaultExpandedKey = []; - if (this.autoHide) { - this.$refs.select.blur(); - } - this.filterMethod(null); - }, - // æ¸…é™¤é€‰ä¸ - clearSelect() { - this.valueTitle = ""; - this.valueId = null; - this.defaultExpandedKey = []; - this.clearSelected(); - this.$emit("change", null); - this.filterMethod(null); - }, - /* æ¸…ç©ºé€‰ä¸æ ·å¼ */ - clearSelected() { - let allNode = document.querySelectorAll("#tree-option .el-tree-node"); - allNode.forEach(element => element.classList.remove("is-current")); - }, - /* ç›é€‰èŠ‚ç‚¹ */ - filterMethod(val) { - this.$refs.selectTree.filter(val); - }, - filterNode(value, data) { - if (!value) return true; - return ( - data[this.props.label].toLowerCase().indexOf(value.toLowerCase()) !== -1 - ); - } - }, - watch: { - value() { - this.valueId = this.value; - this.initHandle(); - } - } -}; -</script> - -<style scoped> -.el-scrollbar .el-scrollbar__view .el-select-dropdown__item { - height: auto; - max-height: 274px; - padding: 0; - overflow: hidden; - overflow-y: auto; -} -.el-select-dropdown__item.selected { - font-weight: normal; -} -ul li >>> .el-tree .el-tree-node__content { - height: auto; - padding: 0 20px; -} -.el-tree-node__label { - font-weight: normal; -} -.el-tree >>> .is-current .el-tree-node__label { - color: #409eff; - font-weight: 700; -} -.el-tree >>> .is-current .el-tree-node__children .el-tree-node__label { - color: #606266; - font-weight: normal; -} -.el-select-dropdown__list { - padding: 0px; -} -</style> diff --git a/WebSite/src/components/SelectUser/index.vue b/WebSite/src/components/SelectUser/index.vue deleted file mode 100644 index b909e8de..00000000 --- a/WebSite/src/components/SelectUser/index.vue +++ /dev/null @@ -1,97 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-11 13:21:28 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:33:39 ---> -<template> - <el-dialog - :visible.sync="visible" - width="30%" - :show-close="false" - :close-on-click-modal="false" - > - <span slot="title"> - <i class="el-icon-user"> 选择用户</i> - </span> - <el-row :gutter="20"> - <el-col - v-for="item in userList" - :key="item.id" - :item="item" - :sm="24" - :md="12" - :lg="8" - > - <div @click="handleSelectUser(item.id)"> - <el-card - :class="{ - 'box-card': true, - 'box-card-selected': selectedUserId === item.id - }" - :shadow="selectedUserId === item.id ? 'always' : 'hover'" - > - <el-radio v-model="selectedUserId" :label="item.id"> - {{ `${item.name}` }} - </el-radio> - </el-card> - </div> - </el-col> - </el-row> - <span slot="footer" class="dialog-footer tright"> - <el-button type="primary" @click="handleConfirm">确定</el-button> - </span> - </el-dialog> -</template> - -<script> -export default { - name: "SelectUser", - props: { - visible: { - type: Boolean, - default: false - }, - userList: { - type: Array, - default: () => [] - } - }, - data() { - return { - selectedUserId: "" - }; - }, - watch: { - visible(val) { - if (val) { - this.selectedUserId = this.userList[0].id; - } - } - }, - methods: { - handleSelectUser(id) { - this.selectedUserId = id; - }, - handleConfirm() { - this.$emit("handle-confirm", this.selectedUserId); - this.$emit("update:visible", false); - } - } -}; -</script> - -<style scoped> -.el-col { - margin-bottom: 10px; -} -.box-card { - cursor: pointer; - border-color: #dcdfe6; -} -.box-card-selected { - background: rgb(236, 245, 255); - border-color: rgb(102, 177, 255); -} -</style> diff --git a/WebSite/src/components/Share/DropdownMenu.vue b/WebSite/src/components/Share/DropdownMenu.vue deleted file mode 100644 index 20214e66..00000000 --- a/WebSite/src/components/Share/DropdownMenu.vue +++ /dev/null @@ -1,111 +0,0 @@ -<template> - <div :class="{ active: isActive }" class="share-dropdown-menu"> - <div class="share-dropdown-menu-wrapper"> - <span class="share-dropdown-menu-title" @click.self="clickTitle">{{ - title - }}</span> - <div - v-for="(item, index) of items" - :key="index" - class="share-dropdown-menu-item" - > - <a v-if="item.href" :href="item.href" target="_blank">{{ - item.title - }}</a> - <span v-else>{{ item.title }}</span> - </div> - </div> - </div> -</template> - -<script> -export default { - props: { - items: { - type: Array, - default: function() { - return []; - } - }, - title: { - type: String, - default: "vue" - } - }, - data() { - return { - isActive: false - }; - }, - methods: { - clickTitle() { - this.isActive = !this.isActive; - } - } -}; -</script> - -<style lang="scss"> -$n: 9; //å’Œitems.length ç›¸åŒ -$t: 0.1s; -.share-dropdown-menu { - width: 250px; - position: relative; - z-index: 1; - height: auto !important; - &-title { - width: 100%; - display: block; - cursor: pointer; - background: black; - color: white; - height: 60px; - line-height: 60px; - font-size: 20px; - text-align: center; - z-index: 2; - transform: translate3d(0, 0, 0); - } - &-wrapper { - position: relative; - } - &-item { - text-align: center; - position: absolute; - width: 100%; - background: #e0e0e0; - color: #000; - line-height: 60px; - height: 60px; - cursor: pointer; - font-size: 18px; - overflow: hidden; - opacity: 1; - transition: transform 0.28s ease; - &:hover { - background: black; - color: white; - } - @for $i from 1 through $n { - &:nth-of-type(#{$i}) { - z-index: -1; - transition-delay: $i * $t; - transform: translate3d(0, -60px, 0); - } - } - } - &.active { - .share-dropdown-menu-wrapper { - z-index: 1; - } - .share-dropdown-menu-item { - @for $i from 1 through $n { - &:nth-of-type(#{$i}) { - transition-delay: ($n - $i) * $t; - transform: translate3d(0, ($i - 1) * 60px, 0); - } - } - } - } -} -</style> diff --git a/WebSite/src/components/SizeSelect/index.vue b/WebSite/src/components/SizeSelect/index.vue deleted file mode 100644 index d4aa5ba9..00000000 --- a/WebSite/src/components/SizeSelect/index.vue +++ /dev/null @@ -1,60 +0,0 @@ -<template> - <el-dropdown trigger="click" @command="handleSetSize"> - <div> - <svg-icon class-name="size-icon" icon-class="size" /> - </div> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item - v-for="item of sizeOptions" - :key="item.value" - :disabled="size === item.value" - :command="item.value" - > - {{ item.label }} - </el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> -</template> - -<script> -export default { - data() { - return { - sizeOptions: [ - { label: "Default", value: "default" }, - { label: "Medium", value: "medium" }, - { label: "Small", value: "small" }, - { label: "Mini", value: "mini" } - ] - }; - }, - computed: { - size() { - return this.$store.getters.size; - } - }, - methods: { - handleSetSize(size) { - this.$ELEMENT.size = size; - this.$store.dispatch("app/setSize", size); - this.refreshView(); - this.$message({ - message: "Switch Size Success", - type: "success" - }); - }, - refreshView() { - // In order to make the cached page re-rendered - this.$store.dispatch("tagsView/delAllCachedViews", this.$route); - - const { fullPath } = this.$route; - - this.$nextTick(() => { - this.$router.replace({ - path: "/redirect" + fullPath - }); - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Sticky/index.vue b/WebSite/src/components/Sticky/index.vue deleted file mode 100644 index 332c613d..00000000 --- a/WebSite/src/components/Sticky/index.vue +++ /dev/null @@ -1,97 +0,0 @@ -<template> - <div :style="{ height: height + 'px', zIndex: zIndex }"> - <div - :class="className" - :style="{ - top: isSticky ? stickyTop + 'px' : '', - zIndex: zIndex, - position: position, - width: width, - height: height + 'px' - }" - > - <slot> - <div>sticky</div> - </slot> - </div> - </div> -</template> - -<script> -export default { - name: "Sticky", - props: { - stickyTop: { - type: Number, - default: 0 - }, - zIndex: { - type: Number, - default: 1 - }, - className: { - type: String, - default: "" - } - }, - data() { - return { - active: false, - position: "", - width: undefined, - height: undefined, - isSticky: false - }; - }, - mounted() { - this.height = this.$el.getBoundingClientRect().height; - window.addEventListener("scroll", this.handleScroll); - window.addEventListener("resize", this.handleResize); - }, - activated() { - this.handleScroll(); - }, - destroyed() { - window.removeEventListener("scroll", this.handleScroll); - window.removeEventListener("resize", this.handleResize); - }, - methods: { - sticky() { - if (this.active) { - return; - } - this.position = "fixed"; - this.active = true; - this.width = this.width + "px"; - this.isSticky = true; - }, - handleReset() { - if (!this.active) { - return; - } - this.reset(); - }, - reset() { - this.position = ""; - this.width = "auto"; - this.active = false; - this.isSticky = false; - }, - handleScroll() { - const width = this.$el.getBoundingClientRect().width; - this.width = width || "auto"; - const offsetTop = this.$el.getBoundingClientRect().top; - if (offsetTop < this.stickyTop) { - this.sticky(); - return; - } - this.handleReset(); - }, - handleResize() { - if (this.isSticky) { - this.width = this.$el.getBoundingClientRect().width + "px"; - } - } - } -}; -</script> diff --git a/WebSite/src/components/SvgIcon/index.vue b/WebSite/src/components/SvgIcon/index.vue index 1f16cb80..909549eb 100644 --- a/WebSite/src/components/SvgIcon/index.vue +++ b/WebSite/src/components/SvgIcon/index.vue @@ -1,21 +1,28 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 10:56:19 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-05 16:51:44 +--> <template> <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" - v-on="$listeners" + v-bind="$attrs" /> - <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> - <use :href="iconName" /> + <svg v-else :class="svgClass" aria-hidden="true" v-bind="$attrs"> + <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"; +import { isExternal } from '@/utils/validate'; export default { - name: "SvgIcon", + name: 'SvgIcon', props: { iconClass: { type: String, @@ -23,7 +30,7 @@ export default { }, className: { type: String, - default: "" + default: '' } }, computed: { @@ -35,15 +42,15 @@ export default { }, svgClass() { if (this.className) { - return "svg-icon " + this.className; + return 'svg-icon ' + this.className; } else { - return "svg-icon"; + return 'svg-icon'; } }, styleExternalIcon() { return { mask: `url(${this.iconClass}) no-repeat 50% 50%`, - "-webkit-mask": `url(${this.iconClass}) no-repeat 50% 50%` + '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%` }; } } diff --git a/WebSite/src/components/TextField/index.vue b/WebSite/src/components/TextField/index.vue deleted file mode 100644 index 4f1995a5..00000000 --- a/WebSite/src/components/TextField/index.vue +++ /dev/null @@ -1,31 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-16 13:43:13 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 15:18:40 ---> -<template> - <div class="text-field"> - <slot></slot> - </div> -</template> -<script> -export default { - name: "TextField" -}; -</script> -<style scoped> -.text-field { - width: 100%; - border: 1px solid #ebeef5; - border-radius: 4px; - background-color: #fafafa; - padding: 20px; - font-size: 12px; -} - -.text-field span { - line-height: 24px; -} -</style> diff --git a/WebSite/src/components/TextHoverEffect/Mallki.vue b/WebSite/src/components/TextHoverEffect/Mallki.vue deleted file mode 100644 index 7a7efab2..00000000 --- a/WebSite/src/components/TextHoverEffect/Mallki.vue +++ /dev/null @@ -1,113 +0,0 @@ -<template> - <a :class="className" class="link--mallki" href="#"> - {{ text }} - <span :data-letters="text" /> - <span :data-letters="text" /> - </a> -</template> - -<script> -export default { - props: { - className: { - type: String, - default: "" - }, - text: { - type: String, - default: "vue-element-admin" - } - } -}; -</script> - -<style> -/* Mallki */ - -.link--mallki { - font-weight: 800; - color: #4dd9d5; - font-family: "Dosis", sans-serif; - -webkit-transition: color 0.5s 0.25s; - transition: color 0.5s 0.25s; - overflow: hidden; - position: relative; - display: inline-block; - line-height: 1; - outline: none; - text-decoration: none; -} - -.link--mallki:hover { - -webkit-transition: none; - transition: none; - color: transparent; -} - -.link--mallki::before { - content: ""; - width: 100%; - height: 6px; - margin: -3px 0 0 0; - background: #3888fa; - position: absolute; - left: 0; - top: 50%; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition: -webkit-transform 0.4s; - transition: transform 0.4s; - -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); - transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); -} - -.link--mallki:hover::before { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} - -.link--mallki span { - position: absolute; - height: 50%; - width: 100%; - left: 0; - top: 0; - overflow: hidden; -} - -.link--mallki span::before { - content: attr(data-letters); - color: red; - position: absolute; - left: 0; - width: 100%; - color: #3888fa; - -webkit-transition: -webkit-transform 0.5s; - transition: transform 0.5s; -} - -.link--mallki span:nth-child(2) { - top: 50%; -} - -.link--mallki span:first-child::before { - top: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} - -.link--mallki span:nth-child(2)::before { - bottom: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} - -.link--mallki:hover span::before { - -webkit-transition-delay: 0.3s; - transition-delay: 0.3s; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); -} -</style> diff --git a/WebSite/src/components/ThemePicker/index.vue b/WebSite/src/components/ThemePicker/index.vue deleted file mode 100644 index 3fc0c26e..00000000 --- a/WebSite/src/components/ThemePicker/index.vue +++ /dev/null @@ -1,198 +0,0 @@ -<template> - <el-color-picker - v-model="theme" - :predefine="[ - '#409EFF', - '#1890ff', - '#304156', - '#212121', - '#11a983', - '#13c2c2', - '#6959CD', - '#f5222d' - ]" - class="theme-picker" - popper-class="theme-picker-dropdown" - /> -</template> - -<script> -const version = require("element-ui/package.json").version; // element-ui version from node_modules -const ORIGINAL_THEME = "#409EFF"; // default color - -export default { - data() { - return { - chalk: "", // content of theme-chalk css - theme: "" - }; - }, - computed: { - defaultTheme() { - return this.$store.state.settings.theme; - } - }, - watch: { - defaultTheme: { - handler: function(val, oldVal) { - this.theme = val; - }, - immediate: true - }, - async theme(val) { - const oldVal = this.chalk ? this.theme : ORIGINAL_THEME; - if (typeof val !== "string") return; - const themeCluster = this.getThemeCluster(val.replace("#", "")); - const originalCluster = this.getThemeCluster(oldVal.replace("#", "")); - console.log(themeCluster, originalCluster); - - const $message = this.$message({ - message: " Compiling the theme", - customClass: "theme-message", - type: "success", - duration: 0, - iconClass: "el-icon-loading" - }); - - const getHandler = (variable, id) => { - return () => { - const originalCluster = this.getThemeCluster( - ORIGINAL_THEME.replace("#", "") - ); - const newStyle = this.updateStyle( - this[variable], - originalCluster, - themeCluster - ); - - let styleTag = document.getElementById(id); - if (!styleTag) { - styleTag = document.createElement("style"); - styleTag.setAttribute("id", id); - document.head.appendChild(styleTag); - } - styleTag.innerText = newStyle; - }; - }; - - if (!this.chalk) { - const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`; - await this.getCSSString(url, "chalk"); - } - - const chalkHandler = getHandler("chalk", "chalk-style"); - - chalkHandler(); - - const styles = [].slice - .call(document.querySelectorAll("style")) - .filter(style => { - const text = style.innerText; - return ( - new RegExp(oldVal, "i").test(text) && !/Chalk Variables/.test(text) - ); - }); - styles.forEach(style => { - const { innerText } = style; - if (typeof innerText !== "string") return; - style.innerText = this.updateStyle( - innerText, - originalCluster, - themeCluster - ); - }); - - this.$emit("change", val); - - $message.close(); - } - }, - - methods: { - updateStyle(style, oldCluster, newCluster) { - let newStyle = style; - oldCluster.forEach((color, index) => { - newStyle = newStyle.replace(new RegExp(color, "ig"), newCluster[index]); - }); - return newStyle; - }, - - getCSSString(url, variable) { - return new Promise(resolve => { - const xhr = new XMLHttpRequest(); - xhr.onreadystatechange = () => { - if (xhr.readyState === 4 && xhr.status === 200) { - this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, ""); - resolve(); - } - }; - xhr.open("GET", url); - xhr.send(); - }); - }, - - getThemeCluster(theme) { - const tintColor = (color, tint) => { - let red = parseInt(color.slice(0, 2), 16); - let green = parseInt(color.slice(2, 4), 16); - let blue = parseInt(color.slice(4, 6), 16); - - if (tint === 0) { - // when primary color is in its rgb space - return [red, green, blue].join(","); - } else { - red += Math.round(tint * (255 - red)); - green += Math.round(tint * (255 - green)); - blue += Math.round(tint * (255 - blue)); - - red = red.toString(16); - green = green.toString(16); - blue = blue.toString(16); - - return `#${red}${green}${blue}`; - } - }; - - const shadeColor = (color, shade) => { - let red = parseInt(color.slice(0, 2), 16); - let green = parseInt(color.slice(2, 4), 16); - let blue = parseInt(color.slice(4, 6), 16); - - red = Math.round((1 - shade) * red); - green = Math.round((1 - shade) * green); - blue = Math.round((1 - shade) * blue); - - red = red.toString(16); - green = green.toString(16); - blue = blue.toString(16); - - return `#${red}${green}${blue}`; - }; - - const clusters = [theme]; - for (let i = 0; i <= 9; i++) { - clusters.push(tintColor(theme, Number((i / 10).toFixed(2)))); - } - clusters.push(shadeColor(theme, 0.1)); - return clusters; - } - } -}; -</script> - -<style> -.theme-message, -.theme-picker-dropdown { - z-index: 99999 !important; -} - -.theme-picker .el-color-picker__trigger { - height: 26px !important; - width: 26px !important; - padding: 2px; -} - -.theme-picker-dropdown .el-color-dropdown__link-btn { - display: none; -} -</style> diff --git a/WebSite/src/components/Tinymce/components/EditorImage.vue b/WebSite/src/components/Tinymce/components/EditorImage.vue deleted file mode 100644 index 6cb6389d..00000000 --- a/WebSite/src/components/Tinymce/components/EditorImage.vue +++ /dev/null @@ -1,126 +0,0 @@ -<template> - <div class="upload-container"> - <el-button - :style="{ background: color, borderColor: color }" - icon="el-icon-upload" - size="mini" - type="primary" - @click="dialogVisible = true" - > - upload - </el-button> - <el-dialog :visible.sync="dialogVisible"> - <el-upload - :multiple="true" - :file-list="fileList" - :show-file-list="true" - :on-remove="handleRemove" - :on-success="handleSuccess" - :before-upload="beforeUpload" - class="editor-slide-upload" - action="https://httpbin.org/post" - list-type="picture-card" - > - <el-button size="small" type="primary"> - Click upload - </el-button> - </el-upload> - <el-button @click="dialogVisible = false"> - Cancel - </el-button> - <el-button type="primary" @click="handleSubmit"> - Confirm - </el-button> - </el-dialog> - </div> -</template> - -<script> -// import { getToken } from 'api/qiniu' - -export default { - name: "EditorSlideUpload", - props: { - color: { - type: String, - default: "#1890ff" - } - }, - data() { - return { - dialogVisible: false, - listObj: {}, - fileList: [] - }; - }, - methods: { - checkAllSuccess() { - return Object.keys(this.listObj).every( - item => this.listObj[item].hasSuccess - ); - }, - handleSubmit() { - const arr = Object.keys(this.listObj).map(v => this.listObj[v]); - if (!this.checkAllSuccess()) { - this.$message( - "Please wait for all images to be uploaded successfully. If there is a network problem, please refresh the page and upload again!" - ); - return; - } - this.$emit("successCBK", arr); - this.listObj = {}; - this.fileList = []; - this.dialogVisible = false; - }, - handleSuccess(response, file) { - const uid = file.uid; - const objKeyArr = Object.keys(this.listObj); - for (let i = 0, len = objKeyArr.length; i < len; i++) { - if (this.listObj[objKeyArr[i]].uid === uid) { - this.listObj[objKeyArr[i]].url = response.files.file; - this.listObj[objKeyArr[i]].hasSuccess = true; - return; - } - } - }, - handleRemove(file) { - const uid = file.uid; - const objKeyArr = Object.keys(this.listObj); - for (let i = 0, len = objKeyArr.length; i < len; i++) { - if (this.listObj[objKeyArr[i]].uid === uid) { - delete this.listObj[objKeyArr[i]]; - return; - } - } - }, - beforeUpload(file) { - const _self = this; - const _URL = window.URL || window.webkitURL; - const fileName = file.uid; - this.listObj[fileName] = {}; - return new Promise((resolve, reject) => { - const img = new Image(); - img.src = _URL.createObjectURL(file); - img.onload = function() { - _self.listObj[fileName] = { - hasSuccess: false, - uid: file.uid, - width: this.width, - height: this.height - }; - }; - resolve(true); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -.editor-slide-upload { - margin-bottom: 20px; - /deep/ .el-upload--picture-card { - width: 100%; - } -} -</style> diff --git a/WebSite/src/components/Tinymce/dynamicLoadScript.js b/WebSite/src/components/Tinymce/dynamicLoadScript.js deleted file mode 100644 index 667657db..00000000 --- a/WebSite/src/components/Tinymce/dynamicLoadScript.js +++ /dev/null @@ -1,61 +0,0 @@ -let callbacks = []; - -function loadedTinymce() { - // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144 - // check is successfully downloaded script - return window.tinymce; -} - -const dynamicLoadScript = (src, callback) => { - const existingScript = document.getElementById(src); - const cb = callback || function() {}; - - if (!existingScript) { - const script = document.createElement("script"); - script.src = src; // src url for the third-party library being loaded. - script.id = src; - document.body.appendChild(script); - callbacks.push(cb); - const onEnd = "onload" in script ? stdOnEnd : ieOnEnd; - onEnd(script); - } - - if (existingScript && cb) { - if (loadedTinymce()) { - cb(null, existingScript); - } else { - callbacks.push(cb); - } - } - - function stdOnEnd(script) { - script.onload = function() { - // this.onload = null here is necessary - // because even IE9 works not like others - this.onerror = this.onload = null; - for (const cb of callbacks) { - cb(null, script); - } - callbacks = null; - }; - script.onerror = function() { - this.onerror = this.onload = null; - cb(new Error("Failed to load " + src), script); - }; - } - - function ieOnEnd(script) { - script.onreadystatechange = function() { - if (this.readyState !== "complete" && this.readyState !== "loaded") { - return; - } - this.onreadystatechange = null; - for (const cb of callbacks) { - cb(null, script); // there is no way to catch loading errors in IE8 - } - callbacks = null; - }; - } -}; - -export default dynamicLoadScript; diff --git a/WebSite/src/components/Tinymce/index.vue b/WebSite/src/components/Tinymce/index.vue deleted file mode 100644 index 628e057c..00000000 --- a/WebSite/src/components/Tinymce/index.vue +++ /dev/null @@ -1,254 +0,0 @@ -<template> - <div - :class="{ fullscreen: fullscreen }" - class="tinymce-container" - :style="{ width: containerWidth }" - > - <textarea :id="tinymceId" class="tinymce-textarea" /> - <div class="editor-custom-btn-container"> - <editorImage - color="#1890ff" - class="editor-upload-btn" - @successCBK="imageSuccessCBK" - /> - </div> - </div> -</template> - -<script> -/** - * docs: - * https://panjiachen.github.io/vue-element-admin-site/feature/component/rich-editor.html#tinymce - */ -import editorImage from "./components/EditorImage"; -import plugins from "./plugins"; -import toolbar from "./toolbar"; -import load from "./dynamicLoadScript"; - -// why use this cdn, detail see https://github.com/PanJiaChen/tinymce-all-in-one -const tinymceCDN = - "https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js"; - -export default { - name: "Tinymce", - components: { editorImage }, - props: { - id: { - type: String, - default: function() { - return ( - "vue-tinymce-" + - +new Date() + - ((Math.random() * 1000).toFixed(0) + "") - ); - } - }, - value: { - type: String, - default: "" - }, - toolbar: { - type: Array, - required: false, - default() { - return []; - } - }, - menubar: { - type: String, - default: "file edit insert view format table" - }, - height: { - type: [Number, String], - required: false, - default: 360 - }, - width: { - type: [Number, String], - required: false, - default: "auto" - } - }, - data() { - return { - hasChange: false, - hasInit: false, - tinymceId: this.id, - fullscreen: false, - languageTypeList: { - en: "en", - zh: "zh_CN", - es: "es_MX", - ja: "ja" - } - }; - }, - computed: { - containerWidth() { - const width = this.width; - if (/^[\d]+(\.[\d]+)?$/.test(width)) { - // matches `100`, `'100'` - return `${width}px`; - } - return width; - } - }, - watch: { - value(val) { - if (!this.hasChange && this.hasInit) { - this.$nextTick(() => - window.tinymce.get(this.tinymceId).setContent(val || "") - ); - } - } - }, - mounted() { - this.init(); - }, - activated() { - if (window.tinymce) { - this.initTinymce(); - } - }, - deactivated() { - this.destroyTinymce(); - }, - destroyed() { - this.destroyTinymce(); - }, - methods: { - init() { - // dynamic load tinymce from cdn - load(tinymceCDN, err => { - if (err) { - this.$message.error(err.message); - return; - } - this.initTinymce(); - }); - }, - initTinymce() { - const _this = this; - window.tinymce.init({ - selector: `#${this.tinymceId}`, - language: this.languageTypeList["en"], - height: this.height, - body_class: "panel-body ", - object_resizing: false, - toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar, - menubar: this.menubar, - plugins: plugins, - end_container_on_empty_block: true, - powerpaste_word_import: "clean", - code_dialog_height: 450, - code_dialog_width: 1000, - advlist_bullet_styles: "square", - advlist_number_styles: "default", - imagetools_cors_hosts: ["www.tinymce.com", "codepen.io"], - default_link_target: "_blank", - link_title: false, - nonbreaking_force_tab: true, // inserting nonbreaking space need Nonbreaking Space Plugin - init_instance_callback: editor => { - if (_this.value) { - editor.setContent(_this.value); - } - _this.hasInit = true; - editor.on("NodeChange Change KeyUp SetContent", () => { - this.hasChange = true; - this.$emit("input", editor.getContent()); - }); - }, - setup(editor) { - editor.on("FullscreenStateChanged", e => { - _this.fullscreen = e.state; - }); - } - // æ•´åˆä¸ƒç‰›ä¸Šä¼ - // images_dataimg_filter(img) { - // setTimeout(() => { - // const $image = $(img); - // $image.removeAttr('width'); - // $image.removeAttr('height'); - // if ($image[0].height && $image[0].width) { - // $image.attr('data-wscntype', 'image'); - // $image.attr('data-wscnh', $image[0].height); - // $image.attr('data-wscnw', $image[0].width); - // $image.addClass('wscnph'); - // } - // }, 0); - // return img - // }, - // images_upload_handler(blobInfo, success, failure, progress) { - // progress(0); - // const token = _this.$store.getters.token; - // getToken(token).then(response => { - // const url = response.data.qiniu_url; - // const formData = new FormData(); - // formData.append('token', response.data.qiniu_token); - // formData.append('key', response.data.qiniu_key); - // formData.append('file', blobInfo.blob(), url); - // upload(formData).then(() => { - // success(url); - // progress(100); - // }) - // }).catch(err => { - // failure('出现未知问题,刷新页é¢ï¼Œæˆ–者è”系程åºå‘˜') - // console.log(err); - // }); - // }, - }); - }, - destroyTinymce() { - const tinymce = window.tinymce.get(this.tinymceId); - if (this.fullscreen) { - tinymce.execCommand("mceFullScreen"); - } - - if (tinymce) { - tinymce.destroy(); - } - }, - setContent(value) { - window.tinymce.get(this.tinymceId).setContent(value); - }, - getContent() { - window.tinymce.get(this.tinymceId).getContent(); - }, - imageSuccessCBK(arr) { - const _this = this; - arr.forEach(v => { - window.tinymce - .get(_this.tinymceId) - .insertContent(`<img class="wscnph" src="${v.url}" >`); - }); - } - } -}; -</script> - -<style scoped> -.tinymce-container { - position: relative; - line-height: normal; -} -.tinymce-container >>> .mce-fullscreen { - z-index: 10000; -} -.tinymce-textarea { - visibility: hidden; - z-index: -1; -} -.editor-custom-btn-container { - position: absolute; - right: 4px; - top: 4px; - /*z-index: 2005;*/ -} -.fullscreen .editor-custom-btn-container { - z-index: 10000; - position: fixed; -} -.editor-upload-btn { - display: inline-block; -} -</style> diff --git a/WebSite/src/components/Tinymce/plugins.js b/WebSite/src/components/Tinymce/plugins.js deleted file mode 100644 index 2ad5e17c..00000000 --- a/WebSite/src/components/Tinymce/plugins.js +++ /dev/null @@ -1,9 +0,0 @@ -// Any plugins you want to use has to be imported -// Detail plugins list see https://www.tinymce.com/docs/plugins/ -// Custom builds see https://www.tinymce.com/download/custom-builds/ - -const plugins = [ - "advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount" -]; - -export default plugins; diff --git a/WebSite/src/components/Tinymce/toolbar.js b/WebSite/src/components/Tinymce/toolbar.js deleted file mode 100644 index 46196ed7..00000000 --- a/WebSite/src/components/Tinymce/toolbar.js +++ /dev/null @@ -1,9 +0,0 @@ -// Here is a list of the toolbar -// Detail list see https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols - -const toolbar = [ - "searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote undo redo removeformat subscript superscript code codesample", - "hr bullist numlist link image charmap preview anchor pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen" -]; - -export default toolbar; diff --git a/WebSite/src/components/UnionUser/index.vue b/WebSite/src/components/UnionUser/index.vue deleted file mode 100644 index a42cfd8e..00000000 --- a/WebSite/src/components/UnionUser/index.vue +++ /dev/null @@ -1,285 +0,0 @@ -<!-- - @Descripttion: - @Author: gong qun - @Date: 2020-06-16 14:11:45 - @LastEditors: gong qun - @LastEditTime: 2020-06-18 10:25:12 ---> -<template> - <div v-if="isShow"> - <layout-card :show-title="true" type="primary"> - <div slot="title">{{ tableTitle }} 下用户</div> - <el-row slot="filter" :gutter="5"> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-input - v-model="searchUserModel.code" - placeholder="请输入工å·" - :clearable="true" - ></el-input> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-input - v-model="searchUserModel.name" - placeholder="请输入姓å" - :clearable="true" - ></el-input> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-select - v-model="searchUserModel.userType" - placeholder="请选择用户类型" - :clearable="true" - style="width:100%" - > - <el-option - v-for="item in userTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <OrganizationSelectTree - ref="organizationTree" - @change="onOrganizationTreeChange" - > - </OrganizationSelectTree> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-button - type="default" - plain - icon="el-icon-search" - @click="onSearchUnion" - > - 查询 - </el-button> - </el-col> - </el-row> - <div slot="button" style="text-align: right;"> - <el-button - type="primary" - plain - icon="el-icon-plus" - @click="onSelectUser" - > - æ·»åŠ - </el-button> - <el-button - type="danger" - plain - icon="el-icon-delete" - @click="onDeleteUnion" - > - åˆ é™¤ - </el-button> - </div> - <div slot="content"> - <el-table - stripe - :data="userPageInfo.data" - style="width: 100%" - class="mtop" - ref="userTable" - fit - @selection-change="onSelectionChange" - > - <el-table-column type="selection" width="55"> </el-table-column> - <el-table-column label="å·¥å·" prop="code"></el-table-column> - <el-table-column label="å§“å" prop="name"></el-table-column> - <el-table-column label="类型" prop="userType"> - <template slot-scope="scope"> - <span>{{ userTypeFilters(scope.row.userType) }}</span> - </template> - </el-table-column> - </el-table> - <Pagination - v-show="userPageInfo.total > 0" - :total="userPageInfo.total" - :page.sync="searchUserModel.pageIndex" - :limit.sync="searchUserModel.pageSize" - @pagination="getUserPageInfo" - /> - </div> - </layout-card> - - <SelectUser - ref="selectUser" - :dialogSelectUser="dialogSelectUser" - @onCloseSelectUser="onCloseSelectUser" - @onSelectUserChange="onSelectUserChange" - ></SelectUser> - </div> -</template> -<script> -import SelectUser from "@/components/SelectUser"; -import OrganizationSelectTree from "@/components/OrganizationSelectTree"; -import Pagination from "@/components/Pagination"; -export default { - components: { - SelectUser, - OrganizationSelectTree, - Pagination - }, - props: { - tableTitle: { - type: String, - default: "å…³è”关系" - } - }, - data() { - return { - activeNames: ["1"], - searchUserModel: { - pageIndex: 1, - pageSize: 10 - }, - userTypeOptions: [ - { value: "ADMIN", label: "管ç†å‘˜" }, - { value: "TEACHER", label: "教工" }, - { value: "STUDENT", label: "å¦ç”Ÿ" }, - { value: "EXTERNAL", label: "外è˜" }, - { value: "OTHER", label: "å…¶ä»–" } - ], - userPageInfo: { - total: 0 - }, - multipleSelectionUser: [], - dialogSelectUser: false, - isShow: false - }; - }, - methods: { - searchUser(val) { - if (this.$refs.organizationTree) { - this.$refs.organizationTree.clearSelect(); - } - this.searchUserModel = { - pageIndex: 1, - pageSize: 10, - enabled: "YES" - }; - if (val) { - if (val.roleId) { - this.searchUserModel.roleIds = [val.roleId]; - } else { - this.searchUserModel.roleIds = []; - } - if (val.accountId) { - this.searchUserModel.accountIds = [val.accountId]; - } else { - this.searchUserModel.accountIds = []; - } - } - this.getUserPageInfo(); - }, - getUserPageInfo() { - if (!this.getIsSelect()) { - this.userPageInfo = {}; - this.$message.warning("请选择" + this.tableTitle); - return; - } - this.$service.User.getPageByRelation(this.searchUserModel).then(res => { - this.userPageInfo = res; - }); - }, - onUserSizeChange(val) { - this.searchUserModel.pageIndex = 1; - this.searchUserModel.pageSize = val; - this.getUserPageInfo(); - }, - onUserCurrentChange(val) { - this.searchUserModel.pageIndex = val; - this.getUserPageInfo(); - }, - onSelectionChange(val) { - this.multipleSelectionUser = val; - }, - onDeleteUnion() { - if (this.multipleSelectionUser.length === 0) { - this.$message.warning("请勾选用户ï¼"); - return; - } - this.$emit("onRemoveUnion", this.multipleSelectionUser); - }, - clearSelection() { - this.$refs.userTable.clearSelection(); - this.onSearchUnion(); - }, - userTypeFilters(value) { - if (!value) return ""; - let userType = this.userTypeOptions.filter(t => t.value === value); - if (userType.length === 0) { - return ""; - } - return userType[0].label; - }, - onSearchUnion() { - this.searchUserModel.pageIndex = 1; - this.getUserPageInfo(); - }, - onSelectUser() { - if (!this.getIsSelect()) { - this.$message.warning("请选择" + this.tableTitle); - return; - } - this.$refs.selectUser.onShowSelectUser(); - }, - onCloseSelectUser() { - this.onSearchUnion(); - this.$refs.selectUser.onCloseSelectUser(); - }, - onSelectUserChange(val) { - this.$emit("onAddUnion", val); - }, - getIsSelect() { - let isNotRole = - this.searchUserModel.roleIds == null || - this.searchUserModel.roleIds.length === 0; - let isNotAccount = - this.searchUserModel.accountIds == null || - this.searchUserModel.accountIds.length === 0; - this.isShow = !(isNotRole && isNotAccount); - return this.isShow; - }, - onOrganizationTreeChange(val) { - this.searchUserModel.organizationIds = !val ? null : [val]; - } - } -}; -</script> - -<style lang="scss" scoped> -.account { - width: 100%; - // min-height: calc(100vh - 90px); - display: flex; - .mtop { - margin-top: 20px; - } - .fl { - width: 50%; - margin-right: 20px; - } - .fr { - width: 50%; - } - .header { - padding-bottom: 10px; - border-bottom: 1px solid #f2f2f2; - } - .el-collapse { - border-top: none; - } -} -.el-button + .el-button { - margin-left: 0px; -} -.el-col { - margin-bottom: 5px; - // &:last-child { - // margin-bottom: 0; - // } -} -</style> diff --git a/WebSite/src/components/Upload/SingleImage.vue b/WebSite/src/components/Upload/SingleImage.vue deleted file mode 100644 index f81d71c5..00000000 --- a/WebSite/src/components/Upload/SingleImage.vue +++ /dev/null @@ -1,133 +0,0 @@ -<template> - <div class="upload-container"> - <el-upload - :data="dataObj" - :multiple="false" - :show-file-list="false" - :on-success="handleImageSuccess" - class="image-uploader" - drag - action="https://httpbin.org/post" - > - <i class="el-icon-upload" /> - <div class="el-upload__text">将文件拖到æ¤å¤„,或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> - <div class="image-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl + '?imageView2/1/w/200/h/200'" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - </div> -</template> - -<script> -import { getToken } from "@/api/qiniu"; - -export default { - name: "SingleImageUpload", - props: { - value: { - type: String, - default: "" - } - }, - data() { - return { - tempUrl: "", - dataObj: { token: "", key: "" } - }; - }, - computed: { - imageUrl() { - return this.value; - } - }, - methods: { - rmImage() { - this.emitInput(""); - }, - emitInput(val) { - this.$emit("input", val); - }, - handleImageSuccess() { - this.emitInput(this.tempUrl); - }, - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - this.tempUrl = response.data.qiniu_url; - resolve(true); - }) - .catch(err => { - console.log(err); - reject(false); - }); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -@import "~@/styles/mixin.scss"; -.upload-container { - width: 100%; - position: relative; - @include clearfix; - .image-uploader { - width: 60%; - float: left; - } - .image-preview { - width: 200px; - height: 200px; - position: relative; - border: 1px dashed #d9d9d9; - float: left; - margin-left: 50px; - .image-preview-wrapper { - position: relative; - width: 100%; - height: 100%; - img { - width: 100%; - height: 100%; - } - } - .image-preview-action { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - cursor: default; - text-align: center; - color: #fff; - opacity: 0; - font-size: 20px; - background-color: rgba(0, 0, 0, 0.5); - transition: opacity 0.3s; - cursor: pointer; - text-align: center; - line-height: 200px; - .el-icon-delete { - font-size: 36px; - } - } - &:hover { - .image-preview-action { - opacity: 1; - } - } - } -} -</style> diff --git a/WebSite/src/components/Upload/SingleImage2.vue b/WebSite/src/components/Upload/SingleImage2.vue deleted file mode 100644 index e9456ed7..00000000 --- a/WebSite/src/components/Upload/SingleImage2.vue +++ /dev/null @@ -1,130 +0,0 @@ -<template> - <div class="singleImageUpload2 upload-container"> - <el-upload - :data="dataObj" - :multiple="false" - :show-file-list="false" - :on-success="handleImageSuccess" - class="image-uploader" - drag - action="https://httpbin.org/post" - > - <i class="el-icon-upload" /> - <div class="el-upload__text">Drag或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> - <div v-show="imageUrl.length > 0" class="image-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - </div> -</template> - -<script> -import { getToken } from "@/api/qiniu"; - -export default { - name: "SingleImageUpload2", - props: { - value: { - type: String, - default: "" - } - }, - data() { - return { - tempUrl: "", - dataObj: { token: "", key: "" } - }; - }, - computed: { - imageUrl() { - return this.value; - } - }, - methods: { - rmImage() { - this.emitInput(""); - }, - emitInput(val) { - this.$emit("input", val); - }, - handleImageSuccess() { - this.emitInput(this.tempUrl); - }, - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - this.tempUrl = response.data.qiniu_url; - resolve(true); - }) - .catch(() => { - reject(false); - }); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -.upload-container { - width: 100%; - height: 100%; - position: relative; - .image-uploader { - height: 100%; - } - .image-preview { - width: 100%; - height: 100%; - position: absolute; - left: 0px; - top: 0px; - border: 1px dashed #d9d9d9; - .image-preview-wrapper { - position: relative; - width: 100%; - height: 100%; - img { - width: 100%; - height: 100%; - } - } - .image-preview-action { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - cursor: default; - text-align: center; - color: #fff; - opacity: 0; - font-size: 20px; - background-color: rgba(0, 0, 0, 0.5); - transition: opacity 0.3s; - cursor: pointer; - text-align: center; - line-height: 200px; - .el-icon-delete { - font-size: 36px; - } - } - &:hover { - .image-preview-action { - opacity: 1; - } - } - } -} -</style> diff --git a/WebSite/src/components/Upload/SingleImage3.vue b/WebSite/src/components/Upload/SingleImage3.vue deleted file mode 100644 index 7a9757da..00000000 --- a/WebSite/src/components/Upload/SingleImage3.vue +++ /dev/null @@ -1,157 +0,0 @@ -<template> - <div class="upload-container"> - <el-upload - :data="dataObj" - :multiple="false" - :show-file-list="false" - :on-success="handleImageSuccess" - class="image-uploader" - drag - action="https://httpbin.org/post" - > - <i class="el-icon-upload" /> - <div class="el-upload__text">将文件拖到æ¤å¤„,或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> - <div class="image-preview image-app-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - <div class="image-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - </div> -</template> - -<script> -import { getToken } from "@/api/qiniu"; - -export default { - name: "SingleImageUpload3", - props: { - value: { - type: String, - default: "" - } - }, - data() { - return { - tempUrl: "", - dataObj: { token: "", key: "" } - }; - }, - computed: { - imageUrl() { - return this.value; - } - }, - methods: { - rmImage() { - this.emitInput(""); - }, - emitInput(val) { - this.$emit("input", val); - }, - handleImageSuccess(file) { - this.emitInput(file.files.file); - }, - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - this.tempUrl = response.data.qiniu_url; - resolve(true); - }) - .catch(err => { - console.log(err); - reject(false); - }); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -@import "~@/styles/mixin.scss"; -.upload-container { - width: 100%; - position: relative; - @include clearfix; - .image-uploader { - width: 35%; - float: left; - } - .image-preview { - width: 200px; - height: 200px; - position: relative; - border: 1px dashed #d9d9d9; - float: left; - margin-left: 50px; - .image-preview-wrapper { - position: relative; - width: 100%; - height: 100%; - img { - width: 100%; - height: 100%; - } - } - .image-preview-action { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - cursor: default; - text-align: center; - color: #fff; - opacity: 0; - font-size: 20px; - background-color: rgba(0, 0, 0, 0.5); - transition: opacity 0.3s; - cursor: pointer; - text-align: center; - line-height: 200px; - .el-icon-delete { - font-size: 36px; - } - } - &:hover { - .image-preview-action { - opacity: 1; - } - } - } - .image-app-preview { - width: 320px; - height: 180px; - position: relative; - border: 1px dashed #d9d9d9; - float: left; - margin-left: 50px; - .app-fake-conver { - height: 44px; - position: absolute; - width: 100%; // background: rgba(0, 0, 0, .1); - text-align: center; - line-height: 64px; - color: #fff; - } - } -} -</style> diff --git a/WebSite/src/components/UploadExcel/index.vue b/WebSite/src/components/UploadExcel/index.vue deleted file mode 100644 index 94d45fd2..00000000 --- a/WebSite/src/components/UploadExcel/index.vue +++ /dev/null @@ -1,158 +0,0 @@ -<template> - <div> - <input - ref="excel-upload-input" - class="excel-upload-input" - type="file" - accept=".xlsx, .xls" - @change="handleClick" - /> - <div - class="drop" - @drop="handleDrop" - @dragover="handleDragover" - @dragenter="handleDragover" - > - Drop excel file here or - <el-button - :loading="loading" - style="margin-left:16px;" - size="mini" - type="primary" - @click="handleUpload" - > - Browse - </el-button> - </div> - </div> -</template> - -<script> -import XLSX from "xlsx"; - -export default { - props: { - beforeUpload: Function, // eslint-disable-line - onSuccess: Function// eslint-disable-line - }, - data() { - return { - loading: false, - excelData: { - header: null, - results: null - } - }; - }, - methods: { - generateData({ header, results }) { - this.excelData.header = header; - this.excelData.results = results; - this.onSuccess && this.onSuccess(this.excelData); - }, - handleDrop(e) { - e.stopPropagation(); - e.preventDefault(); - if (this.loading) return; - const files = e.dataTransfer.files; - if (files.length !== 1) { - this.$message.error("Only support uploading one file!"); - return; - } - const rawFile = files[0]; // only use files[0] - - if (!this.isExcel(rawFile)) { - this.$message.error( - "Only supports upload .xlsx, .xls, .csv suffix files" - ); - return false; - } - this.upload(rawFile); - e.stopPropagation(); - e.preventDefault(); - }, - handleDragover(e) { - e.stopPropagation(); - e.preventDefault(); - e.dataTransfer.dropEffect = "copy"; - }, - handleUpload() { - this.$refs["excel-upload-input"].click(); - }, - handleClick(e) { - const files = e.target.files; - const rawFile = files[0]; // only use files[0] - if (!rawFile) return; - this.upload(rawFile); - }, - upload(rawFile) { - this.$refs["excel-upload-input"].value = null; // fix can't select the same excel - - if (!this.beforeUpload) { - this.readerData(rawFile); - return; - } - const before = this.beforeUpload(rawFile); - if (before) { - this.readerData(rawFile); - } - }, - readerData(rawFile) { - this.loading = true; - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onload = e => { - const data = e.target.result; - const workbook = XLSX.read(data, { type: "array" }); - const firstSheetName = workbook.SheetNames[0]; - const worksheet = workbook.Sheets[firstSheetName]; - const header = this.getHeaderRow(worksheet); - const results = XLSX.utils.sheet_to_json(worksheet); - this.generateData({ header, results }); - this.loading = false; - resolve(); - }; - reader.readAsArrayBuffer(rawFile); - }); - }, - getHeaderRow(sheet) { - const headers = []; - const range = XLSX.utils.decode_range(sheet["!ref"]); - let C; - const R = range.s.r; - /* start in the first row */ - for (C = range.s.c; C <= range.e.c; ++C) { - /* walk every column in the range */ - const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]; - /* find the cell in the first row */ - let hdr = "UNKNOWN " + C; // <-- replace with your desired default - if (cell && cell.t) hdr = XLSX.utils.format_cell(cell); - headers.push(hdr); - } - return headers; - }, - isExcel(file) { - return /\.(xlsx|xls|csv)$/.test(file.name); - } - } -}; -</script> - -<style scoped> -.excel-upload-input { - display: none; - z-index: -9999; -} -.drop { - border: 2px dashed #bbb; - width: 600px; - height: 160px; - line-height: 160px; - margin: 0 auto; - font-size: 24px; - border-radius: 5px; - text-align: center; - color: #bbb; - position: relative; -} -</style> diff --git a/WebSite/src/config/index.js b/WebSite/src/config/index.js new file mode 100644 index 00000000..0c7de194 --- /dev/null +++ b/WebSite/src/config/index.js @@ -0,0 +1,100 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 14:51:38 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-09-08 09:46:58 + */ +const npmConfig = require('../../package.json'); + +module.exports = { + /** + * 应用识别id + */ + recognizeId: 'noctua_admin', + /** + * 应用åç§° + */ + applicationName: 'Noctua Admin' || npmConfig.name, + /** + * 版本 + */ + releaseCycle: 'beta', + /** + * ç‰ˆæœ¬å· + */ + version: npmConfig.version, + /** + * Vueç‰ˆæœ¬å· + */ + coreVersion: npmConfig.dependencies.vue.replace(/\./g, ''), + /** + * çŽ¯å¢ƒæ ‡è¯† + */ + device: 'desktop', + /** + * 是å¦å¼€å¯ç™»å½•页é¢åЍæ€èƒŒæ™¯ + */ + enableDynamicBg: true, + /** + * ä¾§è¾¹æ é…置(侧边èœå•) + * 开坿—¶è¯·å…³é—导航æ + */ + sidebar: { + enabled: true, + showLogo: false + }, + /** + * 导航æ é…置(顶部èœå•) + * 开坿—¶è¯·å…³é—ä¾§è¾¹æ + */ + navbar: { + enabled: false + }, + /** + * å¯¼èˆªä¿¡æ¯æ é…ç½® + */ + navigation: { + enabled: true + }, + /** + * æ ‡ç¾é¡µé…ç½® + */ + tagsView: { + enabled: true, + type: 'default' // é£Žæ ¼ default / type-1 + }, + /** + * é…ç½®ä¸å¿ƒé…ç½® + */ + settings: { + enabled: true + }, + /** + * 登录模å¼ï¼ˆdefault: 默认/sso: å•点登录) + */ + loginType: 'default', + /** + * å•ç‚¹ç™»å½•åœ°å€ + */ + ssoAddress: '', + /** + * ä¼šè¯æœ‰æ•ˆæ—¶é—´ï¼ˆå•ä½ï¼šms,设为0时永久有效) + */ + loginValidDuration: 0, + /** + * 缓å˜åР坆 + */ + storageEncrypt: false, + /** + * ElementUI全局é…ç½® + */ + element: { + size: 'mini', + zIndex: 3000 + }, + /** + * 生产环境是å¦å¼€å¯mock + */ + useMock: true +}; diff --git a/WebSite/src/config/theme.js b/WebSite/src/config/theme.js new file mode 100644 index 00000000..9fc803b2 --- /dev/null +++ b/WebSite/src/config/theme.js @@ -0,0 +1,99 @@ +/* + * @Description: + * @Author: dongjunhua + * @Date: 2021-02-14 16:58:25 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-09-04 11:23:53 + * 新增自定义é…色时注æ„,name:localä¸ºæœ¬åœ°ç¼“å˜æ ‡è¯†ï¼Œè¯·å‹¿å 用 + */ + +module.exports = { + themeConfigs: [ + { + name: 'classic', // 主题åç§° + titleName: 'ç»å…¸', + // default: true, // 是å¦é»˜è®¤ä¸»é¢˜ï¼ˆå¯é€‰ï¼‰ + styleColor: { + menuBg: '#303a4b', // 主色调(一级èœå•背景色,登录界é¢èƒŒæ™¯è‰²ï¼‰ + menuHover: '#263445', // 一级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + subMenuBg: '#1f2d3d', // 二级èœå•背景色 + subMenuHover: '#001528', // 二级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + menuText: '#bfcbd9', // èœå•æ–‡å—颜色 + menuActiveText: '#508aff', // èœå•激活时文å—颜色 + subMenuActiveText: '#f4f4f5', // èœå•激活时父级文å—颜色 + activeColor: '#508aff' // æ¿€æ´»æ ‡å¿—é¢œè‰² + } + }, + { + name: 'light', + titleName: '象牙白', + default: true, + styleColor: { + menuBg: '#fafafa', + menuHover: '#e6e6e6', + subMenuBg: '#f0f0f0', + subMenuHover: '#e1e1e1', + menuText: '#707276', + menuActiveText: '#508aff', + subMenuActiveText: '#495060', + activeColor: '#508aff' + } + }, + { + name: 'dark', + titleName: 'åˆå¤œé»‘', + styleColor: { + menuBg: '#292732', + menuHover: '#53525a', + subMenuBg: '#3d3b46', + subMenuHover: '#5b5a62', + menuText: '#bfcbd9', + menuActiveText: '#508aff', + subMenuActiveText: '#f4f4f5', + activeColor: '#508aff' + } + }, + { + name: 'blue-dark', + titleName: 'æ–¯å ªçš„çº³ç»´äºšè“', + styleColor: { + menuBg: '#2E55B1', + menuHover: '#3A69D9', + subMenuBg: '#3D68CB', + subMenuHover: '#6185D9', + menuText: '#EFEFEF', + menuActiveText: '#FFFFFF', + subMenuActiveText: '#FFFFFF', + activeColor: '#B5B5B5' + } + }, + { + name: 'blue', + titleName: '波罗的海è“', + styleColor: { + menuBg: '#70D2EF', + menuHover: '#44A6C4', + subMenuBg: '#4ABDE0', + subMenuHover: '#29AAD2', + menuText: '#000000', + menuActiveText: '#FFFFFF', + subMenuActiveText: '#000000', + activeColor: '#508AFF' + } + }, + { + name: 'cyan', + titleName: 'ç¿ çŽ‰ç»¿', + styleColor: { + menuBg: '#29C4B2', + menuHover: '#13C8B3', + subMenuBg: '#00B8A2', + subMenuHover: '#009684', + menuText: '#003731', + menuActiveText: '#FFFFFF', + subMenuActiveText: '#003731', + activeColor: '#007669' + } + } + ] +}; diff --git a/WebSite/src/core/base/Realm.js b/WebSite/src/core/base/Realm.js new file mode 100644 index 00000000..240b1e9c --- /dev/null +++ b/WebSite/src/core/base/Realm.js @@ -0,0 +1,66 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 17:18:58 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-11 14:14:39 + */ + +import AuthenticationInfo from '../model/AuthenticationInfo'; +import AuthorizationInfo from '../model/AuthorizationInfo'; +import Account from '@/api/Account'; +import User from '@/api/User'; + +/** + * safety data source + * @class Realm + */ +class Realm { + /** + * @method doGetAuthenticationInfo + * @for Realm + * @param {*} authenticationToken + * @return {Promise} + */ + static async doGetAuthenticationInfo(authenticationToken) { + const { principals, credentials } = authenticationToken; + if (principals && credentials) { + // do somethings here + const res = await Account.login({ principals, credentials }); + return new AuthenticationInfo(res.data[0]); + } + // you must return an AuthenticationInfo instance + return null; + } + + /** + * @method doGetAuthorizationInfo + * @for Realm + * @param {*} authorizationToken + * @return {Promise} + */ + static async doGetAuthorizationInfo(authorizationToken) { + if (authorizationToken) { + // do somethings here + await User.setCurrent({ id: authorizationToken }); + const res = await User.getCurrent(); + return new AuthorizationInfo(res.data[0], 'token'); + } + // you must return an AuthorizationInfo instance + return null; + } + + /** + * @method beforeLogout + * @for Realm + * @return {String} ssoAddress + */ + static async beforeLogout() { + // do somethings here if need + // e.g., http request such as logout api + // you may return a ssoAddress when login type using sso + return; + } +} + +export default Realm; diff --git a/WebSite/src/core/base/request.js b/WebSite/src/core/base/request.js new file mode 100644 index 00000000..79831291 --- /dev/null +++ b/WebSite/src/core/base/request.js @@ -0,0 +1,48 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-15 13:34:15 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-17 14:22:16 + */ +import axios from 'axios'; +import store from '@/store'; +import { ElNotification } from 'element-plus'; + +const axiosInstance = axios.create({ + baseURL: process.env.VUE_APP_BASE_API, + timeout: 60000 +}); + +axiosInstance.interceptors.request.use( + config => { + store.dispatch('app/startLoading'); + return config; + }, + error => { + store.dispatch('app/endLoading'); + return Promise.reject(error); + } +); + +axiosInstance.interceptors.response.use( + response => { + store.dispatch('app/endLoading'); + return response.data; + }, + error => { + store.dispatch('app/endLoading'); + // console.log(error.response); + ElNotification({ + message: error.response.statusText, + type: 'error', + duration: 5 * 1000 + }); + if (error.response.status === 401) { + // set beforeLogout option as empty function so Relam.beforeLogout will not execute + store.dispatch('subject/logout', { beforeLogout: () => {} }); + } + } +); + +export default axiosInstance; diff --git a/WebSite/src/core/model/Account.js b/WebSite/src/core/model/Account.js new file mode 100644 index 00000000..2d842ca2 --- /dev/null +++ b/WebSite/src/core/model/Account.js @@ -0,0 +1,18 @@ +/* + * @Description: + * @Author: dongjunhua + * @Date: 2021-02-09 16:35:07 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-09 16:37:27 + */ + +class Account { + constructor(id, username, isInitial, users = []) { + this.id = id; + this.username = username; + this.isInitial = isInitial; + this.users = users; + } +} + +export default Account; diff --git a/WebSite/src/core/model/App.js b/WebSite/src/core/model/App.js new file mode 100644 index 00000000..9c6b5846 --- /dev/null +++ b/WebSite/src/core/model/App.js @@ -0,0 +1,214 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-02-01 10:38:02 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-09-04 11:34:07 + */ +import Storage from '@/utils/Storage'; + +/** + * @class App + */ +class App { + constructor( + recognizeId, + applicationName, + releaseCycle, + version, + coreVersion, + device, + layout, + sidebar = { + enabled: true, + showLogo: false, + opened: true, + withoutAnimation: true + }, + navbar = { + enabled: true + }, + navigation = { + enabled: false + }, + tagsView = { + enabled: true, + type: 'default', + cachedViews: [] + }, + settings = { + enabled: true + }, + themes = [], + enableDynamicBg + ) { + this.recognizeId = recognizeId; //应用识别id + this.applicationName = applicationName; //应用åç§° + this.releaseCycle = releaseCycle; //版本 + this.version = version; //ç‰ˆæœ¬å· + this.coreVersion = coreVersion; //Vueç‰ˆæœ¬å· + this.device = device; //çŽ¯å¢ƒæ ‡è¯† + this._layout = layout; //布局 + this.sidebar = sidebar; //ä¾§è¾¹æ + this.navbar = navbar; //导航æ + this.navigation = navigation; //å¯¼èˆªä¿¡æ¯æ + this.tagsView = tagsView; //æ ‡ç¾é¡µ + this.settings = settings; //设置æ + this.themes = themes; //主题列表 + this.enableDynamicBg = enableDynamicBg; //是å¦å¼€å¯ç™»å½•动æ€èƒŒæ™¯ + this.loading = false; //å…¨å±€åŠ è½½ + this.destoryRoute = null; //需è¦å–消缓å˜çš„路由 + this._setLayout(); + } + + get layout() { + return this._layout; + } + set layout(value) { + this._layout = value; + this._setLayout(); + } + + /** + * @method loadConfig + * @for App + * @param {object} config + * @param {Array} themeConfigs + */ + loadConfig(config, themeConfigs = []) { + // åŠ è½½åŸºç¡€é…ç½® + config.recognizeId && (this.recognizeId = config.recognizeId); + config.applicationName && (this.applicationName = config.applicationName); + config.releaseCycle && (this.releaseCycle = config.releaseCycle); + config.version && (this.version = config.version); + config.coreVersion && (this.coreVersion = config.coreVersion); + config.device && (this.device = config.device); + if (config.sidebar) { + this.sidebar.enabled = !!config.sidebar.enabled; + this.sidebar.showLogo = !!config.sidebar.showLogo; + } + config.navbar && (this.navbar.enabled = !!config.navbar.enabled); + config.navigation && + (this.navigation.enabled = !!config.navigation.enabled); + if (config.tagsView) { + this.tagsView.enabled = !!config.tagsView.enabled; + this.tagsView.type = config.tagsView.type; + } + config.settings && (this.settings.enabled = !!config.settings.enabled); + this.enableDynamicBg = !!config.enableDynamicBg; + // åŠ è½½ä¸»é¢˜é…ç½® + let activeIndex = themeConfigs.findIndex(t => t.default); + activeIndex < 0 && (activeIndex = 0); + this.themes = themeConfigs.map((t, i) => { + return { + name: t.name, + titleName: t.titleName, + styleColor: t.styleColor, + active: i === activeIndex + }; + }); + } + + /** + * @method saveStorage + * @for App + */ + saveStorage() { + let sidebar = { + enabled: this.sidebar.enabled, + showLogo: this.sidebar.showLogo + }; + let tagsView = { + enabled: this.tagsView.enabled, + type: this.tagsView.type + }; + Storage.setLocal('app', { + layout: this.layout, + sidebar, + navbar: this.navbar, + navigation: this.navigation, + tagsView, + settings: this.settings, + themes: this.themes, + enableDynamicBg: this.enableDynamicBg + }); + sidebar = { + opened: this.sidebar.opened + }; + tagsView = { + cachedViews: this.tagsView.cachedViews + }; + Storage.setSession('app', { sidebar, tagsView }); + } + + /** + * @method loadStorage + * @for App + */ + loadStorage() { + const localStorage = Storage.getLocal('app'); + if (localStorage) { + this.layout = localStorage.layout; + this.sidebar.enabled = localStorage.sidebar.enabled; + this.sidebar.showLogo = localStorage.sidebar.showLogo; + this.navbar = localStorage.navbar; + this.navigation = localStorage.navigation; + this.tagsView.enabled = localStorage.tagsView.enabled; + this.tagsView.type = localStorage.tagsView.type; + this.settings = localStorage.settings; + this.themes = localStorage.themes; + this.enableDynamicBg = localStorage.enableDynamicBg; + } + const sessionStorage = Storage.getSession('app'); + if (sessionStorage) { + this.sidebar.opened = sessionStorage.sidebar.opened; + this.tagsView.cachedViews = sessionStorage.tagsView.cachedViews; + } + } + + /** + * @method applyTheme + * @for App + */ + applyTheme() { + const activeTheme = this.themes.find(t => t.active); + if (activeTheme) { + const styleColor = activeTheme.styleColor; + let varCss = ''; + for (let key of Object.keys(styleColor)) { + varCss += `--color-${key}:${styleColor[key]};`; + } + varCss += `--menu-border-width:${ + activeTheme.name === 'light' ? '1' : '0' + }px;`; + document.documentElement.style.cssText = varCss; + } + } + + /** + * @internal + * @method _setLayout + * @for App + */ + _setLayout() { + if (!this._layout) { + return; + } + switch (this._layout) { + case 'top': + this.sidebar.enabled = false; + this.navbar.enabled = true; + break; + case 'hidden': + this.sidebar.enabled = false; + this.navbar.enabled = false; + break; + default: + this.sidebar.enabled = true; + this.navbar.enabled = false; + break; + } + } +} + +export default App; diff --git a/WebSite/src/core/model/AuthenticationInfo.js b/WebSite/src/core/model/AuthenticationInfo.js new file mode 100644 index 00000000..831d3eaf --- /dev/null +++ b/WebSite/src/core/model/AuthenticationInfo.js @@ -0,0 +1,16 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-22 09:41:37 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-22 13:40:09 + */ + +class AuthenticationInfo { + constructor(account, expired = null) { + this.account = account; + this.expired = expired; + } +} + +export default AuthenticationInfo; diff --git a/WebSite/src/core/model/AuthenticationToken.js b/WebSite/src/core/model/AuthenticationToken.js new file mode 100644 index 00000000..4844cbf1 --- /dev/null +++ b/WebSite/src/core/model/AuthenticationToken.js @@ -0,0 +1,16 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-22 09:14:52 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-22 09:47:03 + */ + +class AuthenticationToken { + constructor(principals, credentials) { + this.principals = principals; + this.credentials = credentials; + } +} + +export default AuthenticationToken; diff --git a/WebSite/src/core/model/AuthorizationInfo.js b/WebSite/src/core/model/AuthorizationInfo.js new file mode 100644 index 00000000..99b4acb3 --- /dev/null +++ b/WebSite/src/core/model/AuthorizationInfo.js @@ -0,0 +1,16 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-24 13:01:26 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-10 23:02:38 + */ + +class AuthorizationInfo { + constructor(user, token) { + this.user = user; + this.token = token; + } +} + +export default AuthorizationInfo; diff --git a/WebSite/src/core/model/Menu.js b/WebSite/src/core/model/Menu.js new file mode 100644 index 00000000..1a42e06c --- /dev/null +++ b/WebSite/src/core/model/Menu.js @@ -0,0 +1,31 @@ +/* + * @Description: + * @Author: dongjunhua + * @Date: 2021-02-09 16:29:33 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-09 16:34:03 + */ + +class Menu { + constructor( + id, + applicationId, + parentId, + menuNo, + name, + icon, + routingUrl, + children = [] + ) { + this.id = id; + this.applicationId = applicationId; + this.parentId = parentId; + this.menuNo = menuNo; + this.name = name; + this.icon = icon; + this.routingUrl = routingUrl; + this.children = children; + } +} + +export default Menu; diff --git a/WebSite/src/core/model/Subject.js b/WebSite/src/core/model/Subject.js new file mode 100644 index 00000000..56fd4d22 --- /dev/null +++ b/WebSite/src/core/model/Subject.js @@ -0,0 +1,32 @@ +/* + * @Description: + * @Author: dongjunhua + * @Date: 2021-01-23 11:15:40 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-11 10:38:20 + */ + +class Subject { + constructor( + loginType = 'default', + ssoAddress = '', + account = {}, + user = {}, + isAuthenticated = false, + isPermitted = false, + permittedRoutes = [], + token = '' + ) { + this.initialized = true; + this.loginType = loginType; + this.ssoAddress = ssoAddress; + this.account = account; + this.user = user; + this.isAuthenticated = isAuthenticated; + this.isPermitted = isPermitted; + this.permittedRoutes = permittedRoutes; + this.token = token; + } +} + +export default Subject; diff --git a/WebSite/src/core/model/TagView.js b/WebSite/src/core/model/TagView.js new file mode 100644 index 00000000..05c5c474 --- /dev/null +++ b/WebSite/src/core/model/TagView.js @@ -0,0 +1,21 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-30 10:53:42 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-06-04 10:48:43 + */ + +class TagView { + constructor(id, name, path, icon, params, active = true, allowClose = true) { + this.id = id; + this.name = name; + this.path = path; + this.icon = icon; + this.params = params; + this.active = active; + this.allowClose = allowClose; + } +} + +export default TagView; diff --git a/WebSite/src/core/model/User.js b/WebSite/src/core/model/User.js new file mode 100644 index 00000000..0cfa8454 --- /dev/null +++ b/WebSite/src/core/model/User.js @@ -0,0 +1,18 @@ +/* + * @Description: + * @Author: dongjunhua + * @Date: 2021-02-09 16:24:16 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-09 16:28:27 + */ + +class User { + constructor(id, code, name, userType) { + this.id = id; + this.code = code; + this.name = name; + this.userType = userType; + } +} + +export default User; diff --git a/WebSite/src/directive/clipboard/clipboard.js b/WebSite/src/directive/clipboard/clipboard.js deleted file mode 100644 index 80bdc546..00000000 --- a/WebSite/src/directive/clipboard/clipboard.js +++ /dev/null @@ -1,57 +0,0 @@ -// Inspired by https://github.com/Inndy/vue-clipboard2 -const Clipboard = require("clipboard"); -if (!Clipboard) { - throw new Error("you should npm install `clipboard` --save at first "); -} - -export default { - bind(el, binding) { - if (binding.arg === "success") { - el._v_clipboard_success = binding.value; - } else if (binding.arg === "error") { - el._v_clipboard_error = binding.value; - } else { - const clipboard = new Clipboard(el, { - text() { - return binding.value; - }, - action() { - return binding.arg === "cut" ? "cut" : "copy"; - } - }); - clipboard.on("success", e => { - const callback = el._v_clipboard_success; - callback && callback(e) // eslint-disable-line - }); - clipboard.on("error", e => { - const callback = el._v_clipboard_error; - callback && callback(e) // eslint-disable-line - }); - el._v_clipboard = clipboard; - } - }, - update(el, binding) { - if (binding.arg === "success") { - el._v_clipboard_success = binding.value; - } else if (binding.arg === "error") { - el._v_clipboard_error = binding.value; - } else { - el._v_clipboard.text = function() { - return binding.value; - }; - el._v_clipboard.action = function() { - return binding.arg === "cut" ? "cut" : "copy"; - }; - } - }, - unbind(el, binding) { - if (binding.arg === "success") { - delete el._v_clipboard_success; - } else if (binding.arg === "error") { - delete el._v_clipboard_error; - } else { - el._v_clipboard.destroy(); - delete el._v_clipboard; - } - } -}; diff --git a/WebSite/src/directive/clipboard/index.js b/WebSite/src/directive/clipboard/index.js deleted file mode 100644 index d44c7d2b..00000000 --- a/WebSite/src/directive/clipboard/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import Clipboard from "./clipboard"; - -const install = function(Vue) { - Vue.directive("Clipboard", Clipboard); -}; - -if (window.Vue) { - window.clipboard = Clipboard; - Vue.use(install); // eslint-disable-line -} - -Clipboard.install = install; -export default Clipboard; diff --git a/WebSite/src/directive/el-drag-dialog/drag.js b/WebSite/src/directive/el-drag-dialog/drag.js deleted file mode 100644 index 7eb2742b..00000000 --- a/WebSite/src/directive/el-drag-dialog/drag.js +++ /dev/null @@ -1,77 +0,0 @@ -export default { - bind(el, binding, vnode) { - const dialogHeaderEl = el.querySelector(".el-dialog__header"); - const dragDom = el.querySelector(".el-dialog"); - dialogHeaderEl.style.cssText += ";cursor:move;"; - dragDom.style.cssText += ";top:0px;"; - - // 获å–原有属性 ie domå…ƒç´ .currentStyle ç«ç‹è°·æŒ window.getComputedStyle(domå…ƒç´ , null); - const getStyle = (function() { - if (window.document.currentStyle) { - return (dom, attr) => dom.currentStyle[attr]; - } else { - return (dom, attr) => getComputedStyle(dom, false)[attr]; - } - })(); - - dialogHeaderEl.onmousedown = e => { - // é¼ æ ‡æŒ‰ä¸‹ï¼Œè®¡ç®—å½“å‰å…ƒç´ è·ç¦»å¯è§†åŒºçš„è·ç¦» - const disX = e.clientX - dialogHeaderEl.offsetLeft; - const disY = e.clientY - dialogHeaderEl.offsetTop; - - const dragDomWidth = dragDom.offsetWidth; - const dragDomHeight = dragDom.offsetHeight; - - const screenWidth = document.body.clientWidth; - const screenHeight = document.body.clientHeight; - - const minDragDomLeft = dragDom.offsetLeft; - const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth; - - const minDragDomTop = dragDom.offsetTop; - const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight; - - // 获å–到的值带px æ£åˆ™åŒ¹é…æ›¿æ¢ - let styL = getStyle(dragDom, "left"); - let styT = getStyle(dragDom, "top"); - - if (styL.includes("%")) { - styL = +document.body.clientWidth * (+styL.replace(/\%/g, "") / 100); - styT = +document.body.clientHeight * (+styT.replace(/\%/g, "") / 100); - } else { - styL = +styL.replace(/\px/g, ""); - styT = +styT.replace(/\px/g, ""); - } - - document.onmousemove = function(e) { - // 通过事件委托,计算移动的è·ç¦» - let left = e.clientX - disX; - let top = e.clientY - disY; - - // è¾¹ç•Œå¤„ç† - if (-left > minDragDomLeft) { - left = -minDragDomLeft; - } else if (left > maxDragDomLeft) { - left = maxDragDomLeft; - } - - if (-top > minDragDomTop) { - top = -minDragDomTop; - } else if (top > maxDragDomTop) { - top = maxDragDomTop; - } - - // 移动当å‰å…ƒç´ - dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`; - - // emit onDrag event - vnode.child.$emit("dragDialog"); - }; - - document.onmouseup = function(e) { - document.onmousemove = null; - document.onmouseup = null; - }; - }; - } -}; diff --git a/WebSite/src/directive/el-drag-dialog/index.js b/WebSite/src/directive/el-drag-dialog/index.js deleted file mode 100644 index 9ccbea6d..00000000 --- a/WebSite/src/directive/el-drag-dialog/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import drag from "./drag"; - -const install = function(Vue) { - Vue.directive("el-drag-dialog", drag); -}; - -if (window.Vue) { - window["el-drag-dialog"] = drag; - Vue.use(install); // eslint-disable-line -} - -drag.install = install; -export default drag; diff --git a/WebSite/src/directive/el-table/adaptive.js b/WebSite/src/directive/el-table/adaptive.js deleted file mode 100644 index 38e30f8a..00000000 --- a/WebSite/src/directive/el-table/adaptive.js +++ /dev/null @@ -1,45 +0,0 @@ -import { - addResizeListener, - removeResizeListener -} from "element-ui/src/utils/resize-event"; - -/** - * How to use - * <el-table height="100px" v-el-height-adaptive-table="{bottomOffset: 30}">...</el-table> - * el-table height is must be set - * bottomOffset: 30(default) // The height of the table from the bottom of the page. - */ - -const doResize = (el, binding, vnode) => { - const { componentInstance: $table } = vnode; - - const { value } = binding; - - if (!$table.height) { - throw new Error(`el-$table must set the height. Such as height='100px'`); - } - const bottomOffset = (value && value.bottomOffset) || 30; - - if (!$table) return; - - const height = - window.innerHeight - el.getBoundingClientRect().top - bottomOffset; - $table.layout.setHeight(height); - $table.doLayout(); -}; - -export default { - bind(el, binding, vnode) { - el.resizeListener = () => { - doResize(el, binding, vnode); - }; - // parameter 1 is must be "Element" type - addResizeListener(window.document.body, el.resizeListener); - }, - inserted(el, binding, vnode) { - doResize(el, binding, vnode); - }, - unbind(el) { - removeResizeListener(window.document.body, el.resizeListener); - } -}; diff --git a/WebSite/src/directive/el-table/index.js b/WebSite/src/directive/el-table/index.js deleted file mode 100644 index ad0577f7..00000000 --- a/WebSite/src/directive/el-table/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import adaptive from "./adaptive"; - -const install = function(Vue) { - Vue.directive("el-height-adaptive-table", adaptive); -}; - -if (window.Vue) { - window["el-height-adaptive-table"] = adaptive; - Vue.use(install); // eslint-disable-line -} - -adaptive.install = install; -export default adaptive; diff --git a/WebSite/src/directive/permission/index.js b/WebSite/src/directive/permission/index.js deleted file mode 100644 index 7565e68b..00000000 --- a/WebSite/src/directive/permission/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import permission from "./permission"; - -const install = function(Vue) { - Vue.directive("permission", permission); -}; - -if (window.Vue) { - window["permission"] = permission; - Vue.use(install); // eslint-disable-line -} - -permission.install = install; -export default permission; diff --git a/WebSite/src/directive/permission/permission.js b/WebSite/src/directive/permission/permission.js deleted file mode 100644 index 41ec77e3..00000000 --- a/WebSite/src/directive/permission/permission.js +++ /dev/null @@ -1,22 +0,0 @@ -import store from "@/store"; - -export default { - inserted(el, binding, vnode) { - const { value } = binding; - const roles = store.getters && store.getters.roles; - - if (value && value instanceof Array && value.length > 0) { - const permissionRoles = value; - - const hasPermission = roles.some(role => { - return permissionRoles.includes(role); - }); - - if (!hasPermission) { - el.parentNode && el.parentNode.removeChild(el); - } - } else { - throw new Error(`need roles! Like v-permission="['admin','editor']"`); - } - } -}; diff --git a/WebSite/src/directive/sticky.js b/WebSite/src/directive/sticky.js deleted file mode 100644 index 6be81aef..00000000 --- a/WebSite/src/directive/sticky.js +++ /dev/null @@ -1,90 +0,0 @@ -const vueSticky = {}; -let listenAction; -vueSticky.install = Vue => { - Vue.directive("sticky", { - inserted(el, binding) { - const params = binding.value || {}; - const stickyTop = params.stickyTop || 0; - const zIndex = params.zIndex || 1000; - const elStyle = el.style; - - elStyle.position = "-webkit-sticky"; - elStyle.position = "sticky"; - // if the browser support css sticky(Currently Safari, Firefox and Chrome Canary) - // if (~elStyle.position.indexOf('sticky')) { - // elStyle.top = `${stickyTop}px`; - // elStyle.zIndex = zIndex; - // return - // } - const elHeight = el.getBoundingClientRect().height; - const elWidth = el.getBoundingClientRect().width; - elStyle.cssText = `top: ${stickyTop}px; z-index: ${zIndex}`; - - const parentElm = el.parentNode || document.documentElement; - const placeholder = document.createElement("div"); - placeholder.style.display = "none"; - placeholder.style.width = `${elWidth}px`; - placeholder.style.height = `${elHeight}px`; - parentElm.insertBefore(placeholder, el); - - let active = false; - - const getScroll = (target, top) => { - const prop = top ? "pageYOffset" : "pageXOffset"; - const method = top ? "scrollTop" : "scrollLeft"; - let ret = target[prop]; - if (typeof ret !== "number") { - ret = window.document.documentElement[method]; - } - return ret; - }; - - const sticky = () => { - if (active) { - return; - } - if (!elStyle.height) { - elStyle.height = `${el.offsetHeight}px`; - } - - elStyle.position = "fixed"; - elStyle.width = `${elWidth}px`; - placeholder.style.display = "inline-block"; - active = true; - }; - - const reset = () => { - if (!active) { - return; - } - - elStyle.position = ""; - placeholder.style.display = "none"; - active = false; - }; - - const check = () => { - const scrollTop = getScroll(window, true); - const offsetTop = el.getBoundingClientRect().top; - if (offsetTop < stickyTop) { - sticky(); - } else { - if (scrollTop < elHeight + stickyTop) { - reset(); - } - } - }; - listenAction = () => { - check(); - }; - - window.addEventListener("scroll", listenAction); - }, - - unbind() { - window.removeEventListener("scroll", listenAction); - } - }); -}; - -export default vueSticky; diff --git a/WebSite/src/directive/waves/index.js b/WebSite/src/directive/waves/index.js deleted file mode 100644 index bafd2cbf..00000000 --- a/WebSite/src/directive/waves/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import waves from "./waves"; - -const install = function(Vue) { - Vue.directive("waves", waves); -}; - -if (window.Vue) { - window.waves = waves; - Vue.use(install); // eslint-disable-line -} - -waves.install = install; -export default waves; diff --git a/WebSite/src/directive/waves/waves.css b/WebSite/src/directive/waves/waves.css deleted file mode 100644 index af7a7efd..00000000 --- a/WebSite/src/directive/waves/waves.css +++ /dev/null @@ -1,26 +0,0 @@ -.waves-ripple { - position: absolute; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.15); - background-clip: padding-box; - pointer-events: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transform: scale(0); - -ms-transform: scale(0); - transform: scale(0); - opacity: 1; -} - -.waves-ripple.z-active { - opacity: 0; - -webkit-transform: scale(2); - -ms-transform: scale(2); - transform: scale(2); - -webkit-transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out, -webkit-transform 0.6s ease-out; -} \ No newline at end of file diff --git a/WebSite/src/directive/waves/waves.js b/WebSite/src/directive/waves/waves.js deleted file mode 100644 index ca1ca265..00000000 --- a/WebSite/src/directive/waves/waves.js +++ /dev/null @@ -1,80 +0,0 @@ -import "./waves.css"; - -const context = "@@wavesContext"; - -function handleClick(el, binding) { - function handle(e) { - const customOpts = Object.assign({}, binding.value); - const opts = Object.assign( - { - ele: el, // æ³¢çº¹ä½œç”¨å…ƒç´ - type: "hit", // hit 点击ä½ç½®æ‰©æ•£ centerä¸å¿ƒç‚¹æ‰©å±• - color: "rgba(0, 0, 0, 0.15)" // 波纹颜色 - }, - customOpts - ); - const target = opts.ele; - if (target) { - target.style.position = "relative"; - target.style.overflow = "hidden"; - const rect = target.getBoundingClientRect(); - let ripple = target.querySelector(".waves-ripple"); - if (!ripple) { - ripple = document.createElement("span"); - ripple.className = "waves-ripple"; - ripple.style.height = ripple.style.width = - Math.max(rect.width, rect.height) + "px"; - target.appendChild(ripple); - } else { - ripple.className = "waves-ripple"; - } - switch (opts.type) { - case "center": - ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + "px"; - ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + "px"; - break; - default: - ripple.style.top = - (e.pageY - - rect.top - - ripple.offsetHeight / 2 - - document.documentElement.scrollTop || document.body.scrollTop) + - "px"; - ripple.style.left = - (e.pageX - - rect.left - - ripple.offsetWidth / 2 - - document.documentElement.scrollLeft || document.body.scrollLeft) + - "px"; - } - ripple.style.backgroundColor = opts.color; - ripple.className = "waves-ripple z-active"; - return false; - } - } - - if (!el[context]) { - el[context] = { - removeHandle: handle - }; - } else { - el[context].removeHandle = handle; - } - - return handle; -} - -export default { - bind(el, binding) { - el.addEventListener("click", handleClick(el, binding), false); - }, - update(el, binding) { - el.removeEventListener("click", el[context].removeHandle, false); - el.addEventListener("click", handleClick(el, binding), false); - }, - unbind(el) { - el.removeEventListener("click", el[context].removeHandle, false); - el[context] = null; - delete el[context]; - } -}; diff --git a/WebSite/src/filters/index.js b/WebSite/src/filters/index.js deleted file mode 100644 index 8d40f2b2..00000000 --- a/WebSite/src/filters/index.js +++ /dev/null @@ -1,124 +0,0 @@ -/* - * @Description: - * @Autor: dong - * @Date: 2020-03-13 10:03:57 - * @LastEditors: dong - * @LastEditTime: 2020-04-13 09:00:20 - */ - -// import parseTime, formatTime and set to filter -export { parseTime, formatTime } from "@/utils"; -import moment from "moment"; // moment - -/** - * Show plural label if time is plural number - * @param {number} time - * @param {string} label - * @return {string} - */ -function pluralize(time, label) { - if (time === 1) { - return time + label; - } - return time + label + "s"; -} - -/** - * @param {number} time - */ -export function timeAgo(time) { - const between = Date.now() / 1000 - Number(time); - if (between < 3600) { - return pluralize(~~(between / 60), " minute"); - } else if (between < 86400) { - return pluralize(~~(between / 3600), " hour"); - } else { - return pluralize(~~(between / 86400), " day"); - } -} - -/** - * date formatting - * @method: dateFormatter - * @param {String} date 日期 - * @param {String} pattern æ ¼å¼åŒ–å—符串 - * @return {String} - */ -export function dateFormatter(date, pattern = "YYYY-MM-DD HH:mm:ss") { - return moment(date).format(pattern); -} - -/** - * money formatting - * @method: moneyFormatter - * @param {Number} number è¦æ ¼å¼åŒ–çš„æ•°å— - * @param {Number} decimals ä¿ç•™å‡ ä½å°æ•° - * @param {String} thousandsSep åƒåˆ†ä½ç¬¦å· - * @return {String} - */ -export function moneyFormatter(number, decimals, thousandsSep = "") { - number = (number + "").replace(/[^0-9+-Ee.]/g, ""); - const n = !isFinite(+number) ? 0 : +number, - prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), - toFixedFix = function(n, prec) { - const k = Math.pow(10, prec); - return "" + Math.ceil(n * k) / k; - }; - - const s = (prec ? toFixedFix(n, prec) : "" + Math.round(n)).split("."); - const re = /(-?\d+)(\d{3})/; - while (re.test(s[0]) && thousandsSep) { - s[0] = s[0].replace(re, `$1${thousandsSep}$2`); - } - - if ((s[1] || "").length < prec) { - s[1] = s[1] || ""; - s[1] += new Array(prec - s[1].length + 1).join("0"); - } - return s.join("."); -} - -/** - * Number formatting - * like 10000 => 10k - * @param {number} num - * @param {number} digits - */ -export function numberFormatter(num, digits) { - const si = [ - { value: 1e18, symbol: "E" }, - { value: 1e15, symbol: "P" }, - { value: 1e12, symbol: "T" }, - { value: 1e9, symbol: "G" }, - { value: 1e6, symbol: "M" }, - { value: 1e3, symbol: "k" } - ]; - for (let i = 0; i < si.length; i++) { - if (num >= si[i].value) { - return ( - (num / si[i].value) - .toFixed(digits) - .replace(/\.0+$|(\.[0-9]*[1-9])0+$/, "$1") + si[i].symbol - ); - } - } - return num.toString(); -} - -/** - * 10000 => "10,000" - * @param {number} num - */ -export function toThousandFilter(num) { - return (+num || 0) - .toString() - .replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ",")); -} - -/** - * Upper case first char - * @param {String} string - */ -export function uppercaseFirst(string) { - return string.charAt(0).toUpperCase() + string.slice(1); -} diff --git a/WebSite/src/icons/index.js b/WebSite/src/icons/index.js index d7029404..1a6401bd 100644 --- a/WebSite/src/icons/index.js +++ b/WebSite/src/icons/index.js @@ -1,9 +1,11 @@ -import Vue from "vue"; -import SvgIcon from "@/components/SvgIcon"; // svg component +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 10:16:38 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 11:33:17 + */ -// register globally -Vue.component("svg-icon", SvgIcon); - -const req = require.context("./svg", false, /\.svg$/); +const req = require.context('./svg', false, /\.svg$/); const requireAll = requireContext => requireContext.keys().map(requireContext); requireAll(req); diff --git a/WebSite/src/icons/svg/001-adwords.svg b/WebSite/src/icons/svg/001-adwords.svg new file mode 100644 index 00000000..7d9765ca --- /dev/null +++ b/WebSite/src/icons/svg/001-adwords.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<path style="fill:#28B446;" d="M512,503.496H381.656c-20.394,0-38.558-12.871-45.302-32.096l-71.392-203.336L256,242.552 + l2.687-124.567l79.494-109.48l23.565,67.12L512,503.496z"/> +<polygon style="fill:#219B38;" points="361.745,75.624 264.961,268.064 256,242.552 258.687,117.984 338.181,8.504 "/> +<path style="fill:#518EF8;" d="M338.181,8.504L256,242.552l-80.367,228.835c-6.744,19.239-24.908,32.109-45.302,32.109H0 + L173.806,8.504H338.181z"/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/002-rgb-1.svg b/WebSite/src/icons/svg/002-rgb-1.svg new file mode 100644 index 00000000..4929fc10 --- /dev/null +++ b/WebSite/src/icons/svg/002-rgb-1.svg @@ -0,0 +1 @@ +<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m256 0c-89.365 0-162.193 72.459-164.758 161.212l164.758-5.318 164.758 5.317c-2.565-88.752-75.393-161.211-164.758-161.211z" fill="#ff641a"/><path d="m256 0v155.894l164.758 5.317c-2.565-88.752-75.393-161.211-164.758-161.211z" fill="#f03800"/><g><path d="m15 91c-8.291 0-15-6.709-15-15v-61c0-8.291 6.709-15 15-15h61c8.291 0 15 6.709 15 15s-6.709 15-15 15h-46v46c0 8.291-6.709 15-15 15z" fill="#3b4a51"/></g><g><path d="m76 512h-61c-8.291 0-15-6.709-15-15v-61c0-8.291 6.709-15 15-15s15 6.709 15 15v46h46c8.291 0 15 6.709 15 15s-6.709 15-15 15z" fill="#3b4a51"/></g><g><path d="m497 91c-8.291 0-15-6.709-15-15v-46h-46c-8.291 0-15-6.709-15-15s6.709-15 15-15h61c8.291 0 15 6.709 15 15v61c0 8.291-6.709 15-15 15z" fill="#293939"/></g><g><path d="m497 512h-61c-8.291 0-15-6.709-15-15s6.709-15 15-15h46v-46c0-8.291 6.709-15 15-15s15 6.709 15 15v61c0 8.291-6.709 15-15 15z" fill="#293939"/></g><g><path d="m420.758 161.212-78.312 145.063-86.446 139.801c77.882 41.647 177.116 14.874 221.84-62.576 44.579-77.225 18.118-175.558-57.082-222.288z" fill="#80bfff"/><path d="m169.554 306.275-78.312-145.063c-75.2 46.73-101.66 145.063-57.082 222.288 44.398 76.91 143.202 104.998 221.84 62.576z" fill="#fed843"/></g><path d="m420.758 161.212c-53.625-33.307-115.135-32.032-164.758-5.318l86.446 150.381c48.214-29.823 80.073-83.311 78.312-145.063z" fill="#6aa9ff"/><path d="m91.242 161.212c-1.754 61.529 29.901 115.118 78.312 145.063l86.446-150.381c-49.284-26.307-111.138-27.986-164.758 5.318z" fill="#ff9100"/><path d="m256 306.275h-86.446c1.893 56.074 31.599 110.477 86.446 139.801 55.007-29.68 84.549-83.644 86.446-139.801z" fill="#97de3d"/><path d="m342.446 306.275h-86.446v139.801c55.007-29.679 84.549-83.644 86.446-139.801z" fill="#59c36a"/><path d="m320.951 218.5c-16.011-27.74-38.712-48.6-64.951-62.606-26.065 14.031-49.067 35.081-64.951 62.606-15.956 27.642-22.5 58.006-21.495 87.775 25.177 15.573 54.728 24.725 86.446 24.725s61.269-9.152 86.446-24.725c1.005-29.769-5.539-60.133-21.495-87.775z" fill="#f0f7ff"/><path d="m320.951 218.5c-16.011-27.74-38.712-48.6-64.951-62.606v175.106c31.718 0 61.269-9.152 86.446-24.725 1.005-29.769-5.539-60.133-21.495-87.775z" fill="#dfe7f4"/></g></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/002-rgb.svg b/WebSite/src/icons/svg/002-rgb.svg new file mode 100644 index 00000000..54527584 --- /dev/null +++ b/WebSite/src/icons/svg/002-rgb.svg @@ -0,0 +1,11 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="511pt" version="1.1" viewBox="1 -10 511.99999 511" width="511pt"> +<g id="surface1"> +<path d="M 405.5 150 C 405.5 232.566406 338.566406 299.5 256 299.5 C 173.433594 299.5 106.5 232.566406 106.5 150 C 106.5 67.433594 173.433594 0.5 256 0.5 C 338.566406 0.5 405.5 67.433594 405.5 150 Z M 405.5 150 " style=" stroke:none;fill-rule:nonzero;fill:rgb(25.882353%,75.294118%,88.627451%);fill-opacity:1;" /> +<path d="M 512 342.921875 C 512 425.488281 445.066406 492.421875 362.5 492.421875 C 279.933594 492.421875 213 425.488281 213 342.921875 C 213 260.355469 279.933594 193.421875 362.5 193.421875 C 445.066406 193.421875 512 260.355469 512 342.921875 Z M 512 342.921875 " style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,81.568627%,38.039216%);fill-opacity:1;" /> +<path d="M 220.746094 295.308594 C 232.050781 298.039062 243.855469 299.5 256 299.5 C 321.917969 299.5 377.871094 256.835938 397.753906 197.613281 C 386.449219 194.878906 374.644531 193.421875 362.5 193.421875 C 296.582031 193.421875 240.628906 236.085938 220.746094 295.308594 Z M 220.746094 295.308594 " style=" stroke:none;fill-rule:nonzero;fill:rgb(28.627451%,74.117647%,56.470588%);fill-opacity:1;" /> +<path d="M 299 342.921875 C 299 425.488281 232.066406 492.421875 149.5 492.421875 C 66.933594 492.421875 0 425.488281 0 342.921875 C 0 260.355469 66.933594 193.421875 149.5 193.421875 C 232.066406 193.421875 299 260.355469 299 342.921875 Z M 299 342.921875 " style=" stroke:none;fill-rule:nonzero;fill:rgb(98.039216%,43.921569%,69.803922%);fill-opacity:1;" /> +<path d="M 114.246094 197.613281 C 134.128906 256.835938 190.082031 299.5 256 299.5 C 268.144531 299.5 279.949219 298.039062 291.253906 295.308594 C 271.371094 236.085938 215.417969 193.421875 149.5 193.421875 C 137.355469 193.421875 125.550781 194.878906 114.246094 197.613281 Z M 114.246094 197.613281 " style=" stroke:none;fill-rule:nonzero;fill:rgb(68.627451%,48.235294%,77.647059%);fill-opacity:1;" /> +<path d="M 213 342.921875 C 213 383.800781 229.414062 420.839844 256 447.828125 C 282.585938 420.839844 299 383.800781 299 342.921875 C 299 302.042969 282.585938 265.003906 256 238.015625 C 229.414062 265.003906 213 302.042969 213 342.921875 Z M 213 342.921875 " style=" stroke:none;fill-rule:nonzero;fill:rgb(93.72549%,38.039216%,13.333333%);fill-opacity:1;" /> +<path d="M 291.253906 295.320312 C 279.949219 298.046875 268.140625 299.5 256 299.5 C 243.859375 299.5 232.050781 298.046875 220.746094 295.320312 C 228.058594 273.542969 240.242188 254.015625 256 238.015625 C 271.757812 254.015625 283.941406 273.542969 291.253906 295.320312 Z M 291.253906 295.320312 " style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" /> +</g> +</svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/003-color-1.svg b/WebSite/src/icons/svg/003-color-1.svg new file mode 100644 index 00000000..77350551 --- /dev/null +++ b/WebSite/src/icons/svg/003-color-1.svg @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<path style="fill:#D9D9D9;" d="M270.757,240.229c5.936,5.936,5.725,15.48,0,21.204l-21.204,21.204 + c-5.938,5.938-15.268,5.936-21.204,0c-5.726-5.726-5.938-15.267,0-21.204l21.204-21.204 + C255.276,234.505,265.031,234.503,270.757,240.229z"/> +<path style="fill:#C8C6CD;" d="M270.757,240.229c5.936,5.936,5.725,15.48,0,21.204l-21.204,21.204 + c-5.938,5.938-15.268,5.936-21.204,0L270.757,240.229z"/> +<path style="fill:#54E360;" d="M119.949,255.021l-61.225-18.742L0,255.021c0,70.275,28.585,135.998,74.739,182.152l71.449,1.02 + l13.328-85.797C135.082,327.962,119.949,292.227,119.949,255.021z"/> +<path style="fill:#FDBF00;" d="M418.074,371.971l-65.806-19.575c-24.435,24.435-59.17,39.567-96.375,39.567l-39.358,78.717 + l39.358,41.232c70.275,0,134.998-28.585,181.153-74.739L418.074,371.971z"/> +<path style="fill:#E61E14;" d="M461.405,102.985c0,0,0-0.3-0.3-0.3c-7.497-9.897-15.294-19.192-23.99-27.587l-50.905,6.871 + l-34.261,77.992c25.49,24.59,39.884,58.776,39.884,95.061l81.841,36.234l38.108-36.235 + C511.784,190.263,483.346,124.925,461.405,102.985z"/> +<path style="fill:#3AAAFF;" d="M255.892,0.128c-70.275,0-134.998,28.585-181.153,74.739c0,0,4.601,65.201,0.229,69.575 + c-4.372,4.372,84.548,15.203,84.548,15.203c24.435-24.435,59.17-39.567,96.375-39.567l41.856-51.229L255.892,0.128z"/> +<path style="fill:#00CC71;" d="M159.517,159.645L74.739,74.868C28.585,121.022,0,184.745,0,255.021h119.949 + C119.949,217.814,135.082,184.079,159.517,159.645z"/> +<path style="fill:#FD4E26;" d="M391.835,255.021c0,37.206-15.133,72.941-39.567,97.375l84.777,84.777 + c46.155-46.155,74.739-111.877,74.739-182.152H391.835z"/> +<path style="fill:#FFD400;" d="M159.517,352.396l-84.777,84.777c46.155,46.155,110.877,74.739,181.153,74.739V391.963 + C218.686,391.963,183.95,376.83,159.517,352.396z"/> +<path style="fill:#0095FF;" d="M437.116,75.097l-85.165,84.863c-6.296-6.896-13.194-12.294-20.691-17.392l-0.3-0.3 + c-22.191-14.694-48.678-22.191-75.067-22.191V0.128C324.863,0.128,389.736,27.116,437.116,75.097z"/> +<path style="fill:#D9D9D9;" d="M356.361,92.011l-86.029,85.029l-20.567,20.992c-16.965,16.115-18.66,44.528-0.212,63.4l0.212,0.212 + c17.811,17.81,47.012,17.176,64.4-0.212l105.809-105.808l-31.594-32.018l-31.595-31.595H356.361z"/> +<path style="fill:#5A5A5A;" d="M494.401,17.585C505.852,29.035,512,44.091,512,60.206c-0.212,23.536-13.57,43.681-33.291,53.646 + c-21.84,10.392-41.559,24.598-58.31,41.349c-0.212,0.212-0.212,0.212-0.425,0.425l-31.594-32.018l-31.807-31.807 + c16.751-16.751,31.382-36.895,41.771-58.311C416.58-3.407,465.564-11.253,494.401,17.585z"/> +<path style="fill:#C8C6CD;" d="M388.38,123.606l31.594,32.018L314.164,261.434c-17.388,17.388-46.589,18.023-64.4,0.212 + l-0.212-0.212L388.38,123.606z"/> +<g> + <path style="fill:#444444;" d="M494.401,17.585C505.852,29.035,512,44.091,512,60.206c-0.212,23.536-13.57,43.681-33.291,53.646 + c-21.84,10.392-41.559,24.598-58.31,41.349c-0.212,0.212-0.212,0.212-0.425,0.425l-31.594-32.018L494.401,17.585z"/> + <path style="fill:#444444;" d="M356.574,70.595l84.817,84.817c5.936,5.936,5.725,15.48,0,21.204 + c-5.938,5.938-15.268,5.936-21.204,0L335.37,91.8c-5.726-5.726-5.938-15.267,0-21.204C341.093,64.871,350.848,64.87,356.574,70.595 + z"/> +</g> +<path style="fill:#2B292C;" d="M398.982,113.004l42.408,42.408c5.936,5.936,5.725,15.48,0,21.204 + c-5.938,5.938-15.268,5.936-21.204,0l-42.408-42.408L398.982,113.004z"/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/003-color-2.svg b/WebSite/src/icons/svg/003-color-2.svg new file mode 100644 index 00000000..a2244609 --- /dev/null +++ b/WebSite/src/icons/svg/003-color-2.svg @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<path style="fill:#FC3E81;" d="M512,325.723c0,61.955-50.221,112.187-112.176,112.187c-22.829,0-44.071-6.82-61.79-18.554 + c-30.359-20.068-50.386-54.507-50.386-93.633c0-27.66,22.355-82.054,47.1-133.79c23.346-48.791,48.819-95.229,59.682-114.677 + c2.358-4.222,8.431-4.22,10.789,0.002C427.602,117.333,512,271.993,512,325.723z"/> +<path style="fill:#F01054;" d="M380.539,325.723c0,37.282-16.462,70.784-42.505,93.633c-30.359-20.068-50.386-54.507-50.386-93.633 + c0-27.66,22.355-82.054,47.1-133.79c3.472,7.325,6.882,14.68,10.168,21.974C368.887,267.147,380.539,303.719,380.539,325.723z"/> +<path style="fill:#FDB659;" d="M368.176,325.723c0,61.955-50.221,112.187-112.176,112.187c-17.626,0-34.305-4.069-49.15-11.322 + c-4.389-2.143-8.612-4.564-12.651-7.232c-30.359-20.078-50.376-54.517-50.376-93.633c0-27.66,22.355-82.054,47.11-133.79 + c23.338-48.791,48.808-95.229,59.672-114.676c2.359-4.222,8.429-4.224,10.787-0.001c12.863,23.03,46.212,83.913,72.252,141.73 + C352.909,261.77,368.176,302.874,368.176,325.723z"/> +<path style="fill:#FD9E28;" d="M368.176,325.723c0,61.955-50.221,112.187-112.176,112.187c-17.626,0-34.305-4.069-49.15-11.322 + c0.041,0,0.072-0.01,0.113-0.01c127.598-13.876,139.435-120.263,126.681-207.592C352.909,261.77,368.176,302.874,368.176,325.723z" + /> +<path style="fill:#F01054;" d="M512,325.723c0,61.955-50.221,112.187-112.176,112.187c-17.626,0-34.305-4.069-49.15-11.322 + c0.041,0,0.072-0.01,0.113-0.01c127.598-13.876,139.435-120.263,126.681-207.592C496.733,261.77,512,302.874,512,325.723z"/> +<path style="fill:#FD8724;" d="M368.176,325.723c0,34.583-15.648,65.52-40.259,86.102c-9.972-8.334-18.471-18.368-25.054-29.659 + c-9.673-16.576-15.216-35.861-15.216-56.444c0-25.075,18.378-72.144,40.259-119.274c1.947,4.193,3.874,8.396,5.748,12.578 + C352.93,261.79,368.176,302.884,368.176,325.723z"/> +<path style="fill:#FC5820;" d="M368.176,325.723c0,34.583-15.648,65.52-40.259,86.102c-9.972-8.334-18.471-18.368-25.054-29.659 + c36.984-42.227,39.034-106.665,30.792-163.14C352.93,261.79,368.176,302.884,368.176,325.723z"/> +<path style="fill:#FD9E28;" d="M236.715,325.723c0,37.282-16.462,70.794-42.516,93.633c-30.359-20.078-50.376-54.517-50.376-93.633 + c0-27.66,22.355-82.054,47.11-133.79c3.4,7.17,6.727,14.371,9.952,21.51C224.992,266.91,236.715,303.636,236.715,325.723z"/> +<path style="fill:#43A3F9;" d="M224.353,325.723c0,61.955-50.221,112.187-112.176,112.187c-17.647,0-34.336-4.069-49.181-11.332 + C25.693,408.354,0,370.031,0,325.723c0-53.73,84.397-208.39,106.781-248.464c2.358-4.221,8.431-4.224,10.789-0.003 + c12.829,22.968,46.036,83.588,72.045,141.266C208.983,261.471,224.353,302.792,224.353,325.723z"/> +<path style="fill:#1685FB;" d="M224.502,325.723c0,61.955-50.221,112.187-112.176,112.187c-17.647,0-34.336-4.069-49.181-11.332 + c127.825-13.897,139.476-120.634,126.62-208.055C209.132,261.471,224.502,302.792,224.502,325.723z"/> +<path style="fill:#5BE167;" d="M224.353,325.723c0,34.583-15.648,65.52-40.26,86.102c-9.993-8.355-18.512-18.42-25.116-29.752 + c-9.632-16.555-15.154-35.809-15.154-56.351c0-25.075,18.378-72.144,40.27-119.274c1.875,4.028,3.719,8.056,5.522,12.074 + C208.983,261.471,224.353,302.792,224.353,325.723z"/> +<path style="fill:#1FC974;" d="M224.353,325.723c0,34.583-15.648,65.52-40.26,86.102c-9.993-8.355-18.512-18.42-25.116-29.752 + c37.014-42.351,38.951-106.995,30.638-163.552C208.983,261.471,224.353,302.792,224.353,325.723z"/> +<path style="fill:#64BDFF;" d="M68.852,396.558c-1.489,0-2.994-0.43-4.321-1.327c-23.161-15.66-36.989-41.643-36.989-69.504 + c0-4.267,3.459-7.726,7.726-7.726s7.726,3.459,7.726,7.726c0,22.722,11.287,43.92,30.192,56.703 + c3.535,2.39,4.463,7.193,2.072,10.728C73.767,395.367,71.331,396.558,68.852,396.558z"/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/003-color-palette.svg b/WebSite/src/icons/svg/003-color-palette.svg new file mode 100644 index 00000000..106356a0 --- /dev/null +++ b/WebSite/src/icons/svg/003-color-palette.svg @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512.001 512.001" style="enable-background:new 0 0 512.001 512.001;" xml:space="preserve"> +<path style="fill:#FFE470;" d="M105.115,421.105c-4.653,0-9.341-0.38-14.038-1.152c-26.396-4.339-48.741-20.391-61.303-44.041 + C9.765,338.247-0.523,295.635,0.021,252.685C0.893,183.887,28.443,119.75,77.597,72.089C126.799,24.38,191.838-1.209,260.732,0.044 + c67.385,1.223,130.542,28.391,177.835,76.5C485.921,124.713,512,188.445,512,256.001c0,41.739-10.277,83.168-29.719,119.809 + c-12.574,23.697-34.943,39.784-61.37,44.134c-26.423,4.35-52.765-3.716-72.268-22.129c-25.144-23.739-58.045-36.813-92.643-36.813 + s-67.499,13.074-92.643,36.813C147.318,412.956,126.649,421.104,105.115,421.105z"/> +<path style="fill:#FFB64C;" d="M438.568,76.528c-47.293-48.108-110.45-75.276-177.835-76.5C259.152,0,257.576,0,256,0v360.986 + c34.597,0,67.498,13.074,92.642,36.813c19.503,18.413,45.845,26.479,72.268,22.129c26.427-4.35,48.796-20.437,61.37-44.134 + c19.443-36.64,29.72-78.069,29.72-119.808C512,188.43,485.921,124.698,438.568,76.528z"/> +<path style="fill:#B35F49;" d="M407.433,512.001c-22.453,0-40.506-17.582-41.1-40.027L362,308.001v-31h90l-0.003,31.317 + l-3.459,163.438C448.068,493.948,429.628,512.001,407.433,512.001z"/> +<path style="fill:#D97F4A;" d="M447.395,247.001h-80.79l-38.392-102.377l12.079-6.039c41.771-20.885,91.646-20.885,133.416,0 + l12.079,6.039L447.395,247.001z"/> +<path style="fill:#FF3980;" d="M256,150.001c-24.813,0-45-20.187-45-45s20.187-45,45-45s45,20.187,45,45 + S280.813,150.001,256,150.001z"/> +<path style="fill:#00E7F0;" d="M139,205.001c-24.813,0-45-20.187-45-45s20.187-45,45-45s45,20.187,45,45 + S163.813,205.001,139,205.001z"/> +<path style="fill:#0091BF;" d="M107,325.001c-24.813,0-45-20.187-45-45s20.187-45,45-45s45,20.187,45,45 + S131.813,325.001,107,325.001z"/> +<path style="fill:#FF0059;" d="M256,60.001v90c24.813,0,45-20.187,45-45S280.813,60.001,256,60.001z"/> +<path style="fill:#AD5E2E;" d="M485.787,144.623l-12.079-6.039C452.823,128.142,429.911,122.92,407,122.92V247h40.395 + L485.787,144.623z"/> +<path style="fill:#99503D;" d="M407,511.99c0.145,0.001,0.287,0.01,0.433,0.01c22.195,0,40.635-18.053,41.105-40.244l3.459-163.438 + L452,277.001h-45V511.99z"/> +<path style="fill:#DEDEE0;" d="M452,307.001h-90v-70h90V307.001z"/> +<path style="fill:#C5C3CB;" d="M452,307.001h-45v-70h45V307.001z"/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/003-color-wheel.svg b/WebSite/src/icons/svg/003-color-wheel.svg new file mode 100644 index 00000000..defe103f --- /dev/null +++ b/WebSite/src/icons/svg/003-color-wheel.svg @@ -0,0 +1 @@ +<svg id="Capa_1" enable-background="new 0 0 500.238 500.238" height="512" viewBox="0 0 500.238 500.238" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m462.702 179.884-25.827-23.063-52.623 20.224-7.16 29.548-27.519 124.838 89.36 38.929 11.089-14.317c15.3-31.38 23.88-66.64 23.88-103.91 0-25.189-3.94-49.459-11.2-72.249z" fill="#fe7d43"/><g><g id="XMLID_855_"><g><path d="m370.7 316.284-31.362 15.148-80.628 56.792 35.935 80.173 25.655 6.357v.01c57.33-21.32 103.462-64.83 130.042-119.38z" fill="#ee6161"/><path d="m289.59 390.514-17.107-11.991-102.233-15.526-49.118 78.911 22.609 28.476v.01c28.76 12.37 60.45 19.22 93.74 19.22 29.13 0 57.03-5.24 82.82-14.85v-.01z" fill="#c2a1d5"/><path d="m174.961 360.978-56.824-89.264-99.147 30.675v42.954c23.93 56.03 68.79 100.99 124.75 125.05v-.01l35.93-82.16z" fill="#8ac9fe"/><path d="m41.982 138.94-26.922 29.834h-.01c-9.73 25.94-15.05 54.03-15.05 83.36 0 33.09 6.77 64.59 18.99 93.21h.01l82.71-34.64 10.814-24.84 6.493-122.186z" fill="#75cdd5"/><path d="m181.916 38.284h-47.836c-54.62 26.46-97.57 73.22-119.03 130.49h.01l83.75 32.02 54.76-27.722 72.418-65.143z" fill="#6cf5c2"/><path d="m378.15 206.594-4.387-19.506-54.061 13.706-2.912 24.95c2.77 8.29 4.26 17.17 4.26 26.39 0 12.76-2.86 24.84-7.97 35.65l1.17 19.907 35.323 18.797 21.126-10.204c9.36-19.4 14.61-41.16 14.61-64.15.001-15.89-2.519-31.19-7.159-45.54z" fill="#fd6930"/><path d="m313.08 287.784c-9.13 19.33-25.45 34.59-45.51 42.33l-7.711 14.505 16.073 41.16 13.658 4.735c35.63-13.42 64.7-40.19 81.11-74.23z" fill="#e94444"/><path d="m267.57 330.114c-9.33 3.61-19.48 5.59-30.09 5.59-11.36 0-22.18-2.26-32.05-6.38l-16.865 1.828-20.06 40.896 11.165 16.176c17.76 7.56 37.3 11.74 57.81 11.74 18.34 0 35.9-3.34 52.11-9.45z" fill="#a274bf"/><path d="m161 285.864-13.195-9.541-43.061 14.922-3.034 19.459c15.03 34.81 43.05 62.68 77.96 77.52l25.76-58.9c-19.81-8.22-35.78-23.87-44.43-43.46z" fill="#26a6fe"/><path d="m351.33 43.684c-33.8-18.5-72.6-29.03-113.85-29.03-37.07 0-72.15 8.49-103.4 23.63l38.51 81 38.259 17.158 120.38 20.38 35.027-74.33z" fill="#fee97d"/></g></g></g><path d="m499.882 161.534c1.19 3.43-.71 7.16-4.17 8.24l-32.4 10.11-61.37 19.15c-13.72-42.64-43.5-78.07-82.24-99.15l31.18-56.2 16.5-29.74c1.74-3.15 5.74-4.26 8.85-2.45 57.36 33.25 101.73 86.42 123.65 150.04z" fill="#fec165"/><path d="m153.91 252.134c0-9.97 1.74-19.53 4.95-28.39l-.738-34.835h-35.835l-23.477 11.885c-5.92 15.99-9.16 33.29-9.16 51.34 0 20.81 4.3 40.61 12.06 58.57l59.29-24.84c-4.56-10.31-7.09-21.72-7.09-33.73z" fill="#2abcc8"/><path d="m202.588 128.977-29.999-9.694c-33.93 16.58-60.56 45.79-73.78 81.51l60.05 22.95c7.32-20.26 22.24-36.88 41.33-46.41v-.01l13.756-15.489z" fill="#00f2a6"/><path d="m307.84 122.084-.013-.002c-20.919-11.339-44.878-17.778-70.347-17.778-23.28 0-45.3 5.38-64.89 14.98l27.6 58.05c11.22-5.6 23.89-8.77 37.29-8.77 14.16 0 27.49 3.52 39.17 9.74l21.032 1.035 20.579-27.438z" fill="#fedf30"/><path d="m401.942 199.034-24.24 7.56-60.912 19.15c-6.81-20.49-21.686-37.633-40.486-47.623l31.088-56.037 12.31-22.2c38.74 21.08 68.52 56.51 82.24 99.15z" fill="#fdb441"/></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/003-color.svg b/WebSite/src/icons/svg/003-color.svg new file mode 100644 index 00000000..70ecbaa3 --- /dev/null +++ b/WebSite/src/icons/svg/003-color.svg @@ -0,0 +1 @@ +<svg height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m512 256c0 68.378906-26.628906 132.671875-74.980469 181.019531-48.347656 48.351563-112.640625 74.980469-181.019531 74.980469s-132.671875-26.628906-181.019531-74.980469c-48.351563-48.347656-74.980469-112.640625-74.980469-181.019531s26.628906-132.671875 74.980469-181.019531c48.347656-48.351563 112.640625-74.980469 181.019531-74.980469s132.671875 26.628906 181.019531 74.980469c48.351563 48.347656 74.980469 112.640625 74.980469 181.019531zm0 0" fill="#84caff"/><path d="m127.375 377.4375 134.488281 134.492188c66.1875-1.480469 128.191407-27.945313 175.15625-74.910157 34.269531-34.269531 57.613281-76.554687 68.3125-122.621093l-178.835937-178.835938zm0 0" fill="#00a6ff"/><path d="m256 227.75c16.519531-12.367188 37.015625-19.703125 59.191406-19.703125 13.917969 0 27.167969 2.894531 39.195313 8.101563.410156-3.664063.628906-7.382813.628906-11.152344 0-54.5625-44.390625-98.957032-98.953125-98.957032-54.566406 0-98.957031 44.394532-98.957031 98.957032 0 3.753906.214843 7.453125.625 11.101562 11.996093-5.175781 25.207031-8.050781 39.078125-8.050781 22.175781 0 42.671875 7.335937 59.191406 19.703125zm0 0" fill="#ffc473"/><path d="m216.238281 307.003906c0-3.769531.21875-7.488281.628907-11.152344-31.878907-13.804687-55.117188-43.914062-59.136719-79.753906-35.183594 15.183594-59.878907 50.210938-59.878907 90.90625 0 54.5625 44.390626 98.957032 98.957032 98.957032 22.175781 0 42.671875-7.335938 59.191406-19.703126-24.125-18.0625-39.761719-46.867187-39.761719-79.253906zm0 0" fill="#00989e"/><path d="m216.867188 295.851562c3.132812-27.792968 17.816406-52.140624 39.132812-68.101562-16.519531-12.367188-37.015625-19.703125-59.191406-19.703125-13.871094 0-27.082032 2.875-39.078125 8.050781 4.019531 35.839844 27.257812 65.949219 59.136719 79.753906zm0 0" fill="#006569"/><path d="m354.386719 216.148438c-4.042969 35.859374-27.324219 65.976562-59.25 79.753906.410156 3.644531.625 7.347656.625 11.101562 0 32.386719-15.640625 61.191406-39.761719 79.253906 16.519531 12.371094 37.015625 19.703126 59.191406 19.703126 54.566406 0 98.957032-44.390626 98.957032-98.957032 0-40.648437-24.636719-75.644531-59.761719-90.855468zm0 0" fill="#ff738e"/><path d="m256 227.75c21.328125 15.96875 36.019531 40.339844 39.136719 68.152344 31.925781-13.777344 55.207031-43.894532 59.25-79.753906-12.027344-5.207032-25.277344-8.101563-39.195313-8.101563-22.175781 0-42.671875 7.335937-59.191406 19.703125zm0 0" fill="#ffaa20"/><path d="m295.761719 307.003906c0-3.753906-.214844-7.453125-.625-11.101562-11.992188 5.175781-25.203125 8.050781-39.074219 8.050781-13.917969 0-27.167969-2.894531-39.195312-8.101563-.410157 3.664063-.628907 7.382813-.628907 11.152344 0 32.386719 15.640625 61.191406 39.761719 79.253906 24.125-18.0625 39.761719-46.867187 39.761719-79.253906zm0 0" fill="#ff0435"/><path d="m256 227.75c-21.316406 15.960938-36 40.308594-39.132812 68.101562 12.027343 5.207032 25.277343 8.101563 39.195312 8.101563 13.871094 0 27.082031-2.875 39.074219-8.050781-3.121094-27.8125-17.808594-52.179688-39.136719-68.152344zm0 0" fill="#00459f"/></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/004-venn-diagram.svg b/WebSite/src/icons/svg/004-venn-diagram.svg new file mode 100644 index 00000000..90b3f4fb --- /dev/null +++ b/WebSite/src/icons/svg/004-venn-diagram.svg @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<path style="fill:#FEDB41;" d="M421,181c0,1.199,0,2.1-0.3,2.999L376,226H136l-44.7-42.001C91,183.1,91,182.199,91,181 + c0-90.901,74.099-165,165-165h0.901C347.5,16.599,421,90.399,421,181z"/> +<path style="fill:#FFCC33;" d="M421,181c0,1.199,0,2.1-0.3,2.999L376,226H256.901V16C347.5,16.599,421,90.399,421,181z"/> +<path style="fill:#EF2E2E;" d="M262.639,420.659L155.997,220.838l-64.838-36.7C37.731,211.48,0,266.974,0,331 + c0,90.981,75.019,165,166,165c33.203,0,64.089-9.944,90-26.887L262.639,420.659z"/> +<path style="fill:#136EF1;" d="M420.841,184.138l-63.572,31.219L246.792,423.042L256,469.113C281.911,486.056,312.797,496,346,496 + c90.981,0,166-74.019,166-165C512,266.974,474.269,211.48,420.841,184.138z"/> +<path style="fill:#B758CE;" d="M331,331c0,57.599-29.7,107.999-74.099,137.399c-0.3,0.3-0.601,0.3-0.901,0.601 + c-45-29.4-75-80.1-75-138c0-1.201,0-2.1,0.3-3.001l15.601-23.099h117.9l15.899,23.099C331,328.9,331,329.799,331,331z"/> +<path style="fill:#FEA832;" d="M166,166c-26.955,0-52.346,6.627-74.841,18.138c1.188,62.69,37.456,116.834,90,143.723l32.097-23.348 + l29.788-72.233L256,192.887C230.089,175.944,199.203,166,166,166z"/> +<path style="fill:#10BB67;" d="M346,166c-33.203,0-64.089,9.944-90,26.887l-11.212,44.291l54.655,72.089l31.397,18.594 + c52.544-26.889,88.812-81.033,90-143.723C398.346,172.627,372.955,166,346,166z"/> +<path style="fill:#AA3DC8;" d="M331,331c0,57.599-29.7,107.999-74.099,137.399V304.9h57.9l15.899,23.099 + C331,328.9,331,329.799,331,331z"/> +<path style="fill:#495A79;" d="M330.7,327.999c-22.2,11.4-47.1,17.701-73.799,18.001H256c-27.001,0-52.2-6.601-74.7-18.001 + c0.899-56.699,30.3-106.199,74.7-135c0.3,0.3,0.601,0.3,0.901,0.601C300.7,222.4,329.801,271.599,330.7,327.999z"/> +<path style="fill:#42516D;" d="M330.7,327.999c-22.2,11.4-47.1,17.701-73.799,18.001V193.599 + C300.7,222.4,329.801,271.599,330.7,327.999z"/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/005-photos-1.svg b/WebSite/src/icons/svg/005-photos-1.svg new file mode 100644 index 00000000..d2fbadc3 --- /dev/null +++ b/WebSite/src/icons/svg/005-photos-1.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<circle style="fill:#F2F2F2;" cx="256" cy="256" r="256"/> +<path style="fill:#FCAB1A;" d="M255.997,0.001L255.997,0.001c-46.657,0-84.48,37.823-84.48,84.48v78.222 + c0,46.657,37.823,84.48,84.48,84.48l0,0c46.657,0,84.48-37.823,84.48-84.48V84.481C340.477,37.824,302.654,0.001,255.997,0.001z"/> +<path style="fill:#74AEE0;" d="M340.48,375.474v78.221c0,5.402-0.502,10.679-1.473,15.788c-2.299,12.173-7.21,23.427-14.137,33.144 + C302.958,508.74,279.865,512,256,512s-46.958-3.26-68.869-9.373c-6.928-9.718-11.839-20.971-14.137-33.155 + c-0.972-5.11-1.473-10.386-1.473-15.778v-78.221c0-9.07,1.432-17.795,4.075-25.987c8.307-25.767,28.662-46.122,54.429-54.429 + c5.35-1.735,10.93-2.936,16.687-3.563c3.051-0.345,6.154-0.512,9.289-0.512c3.145,0,6.238,0.167,9.289,0.512 + c5.757,0.627,11.337,1.829,16.687,3.563c25.767,8.317,46.111,28.662,54.429,54.429C339.048,357.679,340.48,366.404,340.48,375.474z" + /> +<path style="fill:#F0E400;" d="M446.269,78.815L446.269,78.815c-32.992-32.992-86.481-32.992-119.473,0l-55.312,55.312 + c-32.992,32.992-32.992,86.481,0,119.473l0,0c32.992,32.992,86.481,32.992,119.473,0l55.312-55.312 + C479.26,165.296,479.26,111.806,446.269,78.815z"/> +<path style="fill:#A78DC4;" d="M256,382.788c-3.918,7.659-9.08,14.838-15.485,21.253l-55.317,55.317 + c-3.814,3.814-7.899,7.189-12.204,10.115c-10.71,7.314-22.737,11.88-35.088,13.709c-0.01,0-0.01,0-0.01,0 + c-39.372-20.501-72.746-50.949-96.799-88.012c0.794-15.12,5.632-30.062,14.514-43.081c2.926-4.294,6.301-8.391,10.115-12.204 + l55.317-55.306c30.772-30.783,79.381-32.852,112.546-6.196c2.393,1.912,4.702,3.981,6.917,6.196h0.01 + c2.215,2.215,4.284,4.524,6.196,6.917c3.636,4.514,6.729,9.32,9.289,14.336C268.34,329.916,268.34,358.703,256,382.788z"/> +<path style="fill:#B6D949;" d="M512,256c0,24.68-3.49,48.536-10.01,71.116c0,0.01,0,0.01,0,0.01 + c-11.975,12.654-27.805,21.598-45.61,24.963c-5.11,0.972-10.386,1.473-15.778,1.473h-78.221c-9.059,0-17.795-1.432-25.976-4.075 + c-12.884-4.148-24.409-11.316-33.761-20.668s-16.52-20.877-20.668-33.761c-1.735-5.35-2.936-10.93-3.563-16.687 + c-0.345-3.051-0.512-6.154-0.512-9.289c0-46.655,37.825-84.48,84.48-84.48h78.221c28.442,0,53.593,14.054,68.911,35.6 + c0,0,0,0,0,0.01C511.154,231.905,512,243.858,512,256z"/> +<path style="fill:#D884A9;" d="M234.099,269.082c0,3.145-0.167,6.249-0.512,9.3c-0.627,5.757-1.829,11.327-3.563,16.677 + c-8.307,25.767-28.662,46.122-54.429,54.429c-8.182,2.644-16.917,4.075-25.976,4.075H71.387c-5.392,0-10.668-0.502-15.778-1.473 + c-17-3.208-32.204-11.515-43.959-23.27c-0.554-0.554-1.097-1.108-1.63-1.682C3.49,304.556,0,280.68,0,256 + c0-12.152,0.846-24.106,2.487-35.798c-0.01-0.01,0-0.01,0-0.01c15.308-21.535,40.469-35.589,68.901-35.589h78.232 + C196.274,184.602,234.099,222.427,234.099,269.082z"/> +<path style="fill:#68C29A;" d="M470.904,395.17c-24.054,37.063-57.417,67.5-96.789,88.022c0,0,0,0-0.01,0 + c-12.351-1.829-24.377-6.395-35.098-13.709c-4.305-2.926-8.401-6.311-12.215-10.125l-55.306-55.317 + c-6.416-6.416-11.577-13.594-15.485-21.253c-6.175-12.048-9.258-25.255-9.258-38.484c0-13.208,3.082-26.436,9.258-38.473 + c2.55-5.016,5.653-9.822,9.289-14.336c1.912-2.393,3.981-4.702,6.196-6.917s4.535-4.294,6.928-6.207 + c33.165-26.645,81.763-24.576,112.546,6.207l55.306,55.306c3.814,3.814,7.189,7.91,10.115,12.204 + C465.272,365.108,470.11,380.05,470.904,395.17z"/> +<path style="fill:#F57858;" d="M240.509,253.599L240.509,253.599c32.992-32.992,32.992-86.481,0-119.473l-55.312-55.312 + c-32.992-32.992-86.481-32.992-119.473,0l0,0c-32.992,32.992-32.992,86.481,0,119.473l55.312,55.312 + C154.028,286.59,207.518,286.59,240.509,253.599z"/> +<path style="fill:#7DB400;" d="M456.34,186.108c-2.91,4.286-6.258,8.354-10.075,12.171l-55.319,55.319 + c-6.415,6.415-13.579,11.576-21.245,15.489c-24.092-12.328-52.878-12.328-76.97,0c-5.006-2.535-9.794-5.632-14.299-9.262 + c0.595-5.757,1.815-11.358,3.536-16.708c12.891-4.162,24.406-11.327,33.761-20.682c9.355-9.324,16.521-20.87,20.682-33.761 + c8.167-2.628,16.896-4.068,25.97-4.068h78.222C445.983,184.606,451.24,185.107,456.34,186.108z"/> +<path style="fill:#399752;" d="M446.264,339.893c3.817,3.817,7.165,7.885,10.075,12.171c-5.1,1.001-10.357,1.502-15.738,1.502 + h-78.222c-9.074,0-17.803-1.439-25.97-4.068c-8.323-25.782-28.661-46.12-54.442-54.442c-1.721-5.351-2.941-10.92-3.536-16.677 + c4.506-3.63,9.293-6.727,14.299-9.293c12.047,6.195,25.281,9.262,38.486,9.262c13.204,0,26.439-3.067,38.486-9.262 + c7.665,3.911,14.831,9.074,21.245,15.488L446.264,339.893z"/> +<path style="fill:#37769C;" d="M340.477,375.468v78.222c0,5.381-0.501,10.638-1.502,15.738c-4.286-2.91-8.354-6.258-12.171-10.075 + l-55.319-55.319c-6.415-6.415-11.576-13.579-15.489-21.245c12.328-24.092,12.328-52.878,0-76.97 + c2.565-5.006,5.632-9.794,9.293-14.299c5.757,0.595,11.327,1.815,16.677,3.536c4.162,12.891,11.327,24.437,20.682,33.761 + c9.355,9.355,20.87,16.521,33.761,20.682C339.038,357.697,340.477,366.426,340.477,375.468z"/> +<path style="fill:#E0B100;" d="M340.477,84.481v78.222c0,9.043-1.439,17.772-4.068,25.97c-25.782,8.323-46.12,28.661-54.442,54.442 + c-5.35,1.721-10.92,2.941-16.677,3.536c-3.661-4.506-6.727-9.293-9.293-14.299c12.328-24.092,12.328-52.878,0-76.97 + c3.911-7.665,9.074-14.831,15.489-21.245l55.319-55.319c3.817-3.817,7.885-7.165,12.171-10.075 + C339.976,73.843,340.477,79.1,340.477,84.481z"/> +<path style="fill:#055302;" d="M292.73,269.086c24.092-12.328,52.878-12.328,76.97,0c-12.047,6.195-25.281,9.262-38.486,9.262 + C318.012,278.348,304.776,275.281,292.73,269.086z"/> +<path style="fill:#548100;" d="M336.409,188.674c-4.162,12.891-11.327,24.437-20.682,33.761 + c-9.355,9.355-20.87,16.521-33.761,20.682C290.289,217.335,310.627,196.997,336.409,188.674z"/> +<path style="fill:#0C4422;" d="M281.967,295.056c25.782,8.323,46.12,28.661,54.442,54.442 + c-12.891-4.162-24.406-11.327-33.761-20.682C293.293,319.493,286.128,307.947,281.967,295.056z"/> +<path style="fill:#90FC9F;" d="M278.431,259.824c4.506,3.63,9.293,6.727,14.299,9.262c-5.006,2.565-9.794,5.663-14.299,9.293 + c-0.375-3.067-0.532-6.164-0.532-9.293S278.056,262.86,278.431,259.824z"/> +<path style="fill:#FFDC8D;" d="M281.967,243.116c-1.721,5.35-2.941,10.952-3.536,16.708c-2.41-1.909-4.725-4.005-6.946-6.227 + c-2.221-2.221-4.286-4.537-6.195-6.946C271.047,246.058,276.616,244.837,281.967,243.116z"/> +<path style="fill:#5BD3A2;" d="M278.431,278.38c0.595,5.757,1.815,11.327,3.536,16.677c-5.35-1.721-10.92-2.941-16.677-3.536 + c1.909-2.41,3.974-4.725,6.195-6.947C273.707,282.352,276.021,280.288,278.431,278.38z"/> +<path style="fill:#F9AF6B;" d="M265.289,246.652c-3.035,0.375-6.133,0.532-9.293,0.532c-3.161,0-6.258-0.157-9.293-0.532 + c3.66-4.506,6.727-9.293,9.293-14.299C258.562,237.359,261.629,242.147,265.289,246.652z"/> +<path style="fill:#75ADDF;" d="M255.997,290.988c3.16,0,6.258,0.157,9.293,0.532c-3.661,4.506-6.727,9.293-9.293,14.299 + c-2.565-5.006-5.632-9.794-9.293-14.299C249.739,291.145,252.837,290.988,255.997,290.988z"/> +<path style="fill:#A75000;" d="M255.997,155.383c12.328,24.092,12.328,52.878,0,76.97 + C243.669,208.261,243.669,179.475,255.997,155.383z"/> +<path style="fill:#231F63;" d="M255.997,305.82c12.328,24.092,12.328,52.878,0,76.97c-6.164-12.047-9.262-25.281-9.262-38.486 + C246.735,331.101,249.833,317.865,255.997,305.82z"/> +<path style="fill:#F95500;" d="M255.997,232.353c-2.565,5.006-5.632,9.794-9.293,14.299c-5.757-0.595-11.327-1.815-16.677-3.536 + c-8.323-25.782-28.661-46.12-54.442-54.442c-2.628-8.197-4.068-16.927-4.068-25.97V84.481c0-5.381,0.501-10.638,1.502-15.738 + c4.286,2.91,8.354,6.258,12.171,10.075l55.319,55.319c6.415,6.415,11.576,13.579,15.489,21.245 + C243.669,179.475,243.669,208.261,255.997,232.353z"/> +<path style="fill:#68549D;" d="M246.704,291.52c3.66,4.506,6.727,9.293,9.293,14.299c-6.164,12.047-9.262,25.281-9.262,38.486 + c0,13.204,3.098,26.439,9.262,38.486c-3.911,7.665-9.074,14.831-15.489,21.245l-55.319,55.319 + c-3.817,3.817-7.885,7.165-12.171,10.075c-1.001-5.1-1.502-10.357-1.502-15.738V375.47c0-9.043,1.439-17.772,4.068-25.97 + c25.782-8.323,46.12-28.661,54.442-54.442C235.378,293.335,240.947,292.115,246.704,291.52z"/> +<path style="fill:#FF6E7C;" d="M233.563,259.824c-0.595-5.757-1.815-11.358-3.536-16.708c5.351,1.721,10.92,2.941,16.677,3.536 + c-1.909,2.41-3.974,4.725-6.195,6.946S235.971,257.916,233.563,259.824z"/> +<path style="fill:#A18DC5;" d="M246.704,291.52c-5.757,0.595-11.327,1.815-16.677,3.536c1.721-5.351,2.941-10.92,3.536-16.677 + c2.41,1.909,4.725,3.974,6.946,6.195C242.73,286.796,244.796,289.111,246.704,291.52z"/> +<path style="fill:#D884A9;" d="M233.563,259.824c0.375,3.035,0.532,6.133,0.532,9.262s-0.157,6.227-0.532,9.293 + c-4.506-3.63-9.293-6.727-14.299-9.293C224.27,266.551,229.057,263.454,233.563,259.824z"/> +<path style="fill:#CE1501;" d="M230.027,243.116c1.721,5.35,2.941,10.952,3.536,16.708c-4.506,3.63-9.293,6.727-14.299,9.262 + c-24.092-12.328-52.878-12.328-76.97,0c-7.665-3.911-14.831-9.074-21.245-15.489l-55.32-55.318 + c-3.817-3.817-7.165-7.885-10.075-12.171c5.1-1.001,10.357-1.502,15.738-1.502h78.222c9.074,0,17.803,1.439,25.97,4.068 + C183.907,214.456,204.245,234.794,230.027,243.116z"/> +<path style="fill:#A93D64;" d="M233.563,278.38c-0.595,5.757-1.815,11.327-3.536,16.677c-25.782,8.323-46.12,28.661-54.442,54.442 + c-8.167,2.628-16.896,4.068-25.97,4.068H71.392c-5.381,0-10.638-0.501-15.738-1.502c2.91-4.286,6.258-8.354,10.075-12.171 + l55.319-55.319c6.415-6.415,13.579-11.576,21.245-15.489c24.092,12.359,52.878,12.359,76.97,0 + C224.27,271.652,229.057,274.75,233.563,278.38z"/> +<path style="fill:#AC0000;" d="M175.585,188.674c25.782,8.323,46.12,28.661,54.442,54.442 + C204.245,234.794,183.907,214.456,175.585,188.674z"/> +<path style="fill:#511031;" d="M230.027,295.056c-8.323,25.782-28.661,46.12-54.442,54.442 + C183.907,323.717,204.245,303.379,230.027,295.056z"/> +<path style="fill:#860700;" d="M142.293,269.086c24.092-12.328,52.878-12.328,76.97,0 + C195.171,281.445,166.385,281.445,142.293,269.086z"/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/005-photos.svg b/WebSite/src/icons/svg/005-photos.svg new file mode 100644 index 00000000..876e2e97 --- /dev/null +++ b/WebSite/src/icons/svg/005-photos.svg @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<polygon style="fill:#D32E2A;" points="385.829,128 385.829,256 347.429,291.072 307.2,256 272.457,241.371 306.59,165.51 "/> +<polygon style="fill:#3A5BBC;" points="384,385.219 256,385.219 255.39,383.391 226.133,356.291 255.39,308.041 270.629,271.848 + 355.962,302.043 "/> +<polygon style="fill:#FBBB00;" points="256.61,128.61 288.305,164.901 256.61,203.959 241.371,240.152 161.524,200.253 128,126.781 + 256,126.781 "/> +<polygon style="fill:#28B446;" points="239.543,270.629 204.495,346.843 126.171,384 126.171,256 163.962,232.558 204.8,256 "/> +<polygon style="fill:#518EF8;" points="512,256 384,385.219 270.629,271.848 307.2,256 385.829,256 "/> +<polygon style="fill:#91C646;" points="255.39,383.391 255.39,512 126.171,384 239.543,270.629 255.39,307.2 255.39,308.041 "/> +<polygon style="fill:#FFD837;" points="241.371,240.152 204.8,256 126.171,256 0,256 128,126.781 "/> +<polygon style="fill:#F14336;" points="385.829,128 272.457,241.371 256.61,204.8 256.61,203.959 256.61,128.61 256.61,0 "/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/006-google-chrome.svg b/WebSite/src/icons/svg/006-google-chrome.svg new file mode 100644 index 00000000..c24594c7 --- /dev/null +++ b/WebSite/src/icons/svg/006-google-chrome.svg @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512.023 512.023" style="enable-background:new 0 0 512.023 512.023;" xml:space="preserve"> +<path style="fill:#F44336;" d="M493.248,160.021H256.021c-53.019-0.052-96.042,42.886-96.095,95.905 + c-0.016,16.468,4.204,32.663,12.255,47.028L53.568,99.434c86.393-111.815,247.073-132.423,358.888-46.03 + C448.365,81.149,476.249,117.946,493.248,160.021z"/> +<path style="fill:#FFC107;" d="M512.021,256.021c-0.118,141.336-114.664,255.882-256,256c-10.704,0.04-21.397-0.673-32-2.133 + l115.2-205.867c26.403-45.964,10.664-104.625-35.2-131.2c-14.521-8.407-31.008-12.824-47.787-12.8h237.013 + C505.705,190.491,512.083,223.103,512.021,256.021z"/> +<path style="fill:#4CAF50;" d="M339.221,304.021l-115.2,205.867h-0.213C83.62,492.176-15.666,364.172,2.046,223.984 + C7.779,178.609,25.57,135.6,53.568,99.434l118.613,203.52l0.64,1.067c26.451,45.95,85.143,61.757,131.093,35.307 + C318.592,330.879,330.773,318.698,339.221,304.021z"/> +<path style="fill:#F44336;" d="M339.221,304.021c-26.451,45.95-85.143,61.757-131.093,35.307 + c-14.677-8.449-26.858-20.63-35.307-35.307l-0.64-1.067c-25.921-46.251-9.439-104.758,36.812-130.679 + c14.366-8.051,30.561-12.271,47.028-12.255h0.213c16.779-0.024,33.266,4.393,47.787,12.8 + C349.886,199.396,365.624,258.057,339.221,304.021z"/> +<path style="fill:#2196F3;" d="M339.221,304.021c-26.451,45.95-85.143,61.757-131.093,35.307 + c-14.677-8.449-26.858-20.63-35.307-35.307l-0.64-1.067c-25.921-46.251-9.439-104.758,36.812-130.679 + c14.366-8.051,30.561-12.271,47.028-12.255h0.213c16.779-0.024,33.266,4.393,47.787,12.8 + C349.886,199.396,365.624,258.057,339.221,304.021z"/> +<path style="fill:#FAFAFA;" d="M255.659,362.688c-18.598-0.002-36.868-4.903-52.971-14.208 + c-16.237-9.391-29.722-22.883-39.104-39.125c-29.455-51.018-11.975-116.254,39.043-145.709c16.233-9.372,34.65-14.301,53.395-14.291 + c58.91-0.046,106.704,47.674,106.749,106.584c0.015,18.752-4.915,37.176-14.291,53.416l0,0 + C329.256,342.405,293.893,362.724,255.659,362.688z M256.213,170.688c-30.613-0.163-58.955,16.13-74.219,42.667 + c-23.564,40.86-9.543,93.087,31.317,116.651s93.087,9.543,116.651-31.317l0,0c23.564-40.814,9.58-93.003-31.234-116.568 + c-12.922-7.46-27.574-11.402-42.494-11.432H256.213z"/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/006-google-drive.svg b/WebSite/src/icons/svg/006-google-drive.svg new file mode 100644 index 00000000..6ce237dd --- /dev/null +++ b/WebSite/src/icons/svg/006-google-drive.svg @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<polygon style="fill:#FFC107;" points="341.344,352 512,352 341.344,32 170.656,32 "/> +<polygon style="fill:#2196F3;" points="158.464,352 85.344,480 432,480 512,352 "/> +<polygon style="fill:#4CAF50;" points="170.656,32 0,330.656 85.344,480 253.056,186.496 "/> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/WebSite/src/icons/svg/006-google-maps.svg b/WebSite/src/icons/svg/006-google-maps.svg new file mode 100644 index 00000000..4490d6ed --- /dev/null +++ b/WebSite/src/icons/svg/006-google-maps.svg @@ -0,0 +1 @@ +<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m421.181 93.611-225.181 60 60 358.389 153.718-203.621c24.341-32.239 38.782-72.37 38.782-115.879 0-36.16-9.979-69.985-27.319-98.889z" fill="#0f9d58"/><path d="m181.016 412.674 74.984 99.326v-198.943z" fill="#31aa52"/><path d="m256 313.057 57.926-76.955-57.926-43.602-60 60.278z" fill="#f69411"/><path d="m256 0-60 65.969 60 65.969 49.338-125.545c-15.748-4.164-32.282-6.393-49.338-6.393z" fill="#4175df"/><path d="m102.198 76.73v115.77h153.802v-192.5c-62.856 0-118.669 30.13-153.802 76.73z" fill="#4086f4"/><path d="m102.198 76.73c-24.291 32.22-38.698 72.311-38.698 115.77 0 36.158 9.981 69.979 27.322 98.88l137.25-119.902z" fill="#eb4132"/><path d="m305.338 6.393-49.338 65.546-72.5 164.163h130.426l107.255-142.49c-25.465-42.444-66.82-74.257-115.843-87.219z" fill="#4086f4"/><path d="m256 71.939-57.928 76.958 57.928 43.603z" fill="#609af6"/><path d="m196 192.5 60 120.557 57.926-76.955z" fill="#f8a808"/><path d="m198.072 148.897-107.25 142.483c3.525 5.875 7.347 11.552 11.46 16.998l78.734 104.295 74.984-99.616v-120.557z" fill="#fbbd00"/><path d="m256 120-36.25 72.5 36.25 72.5c40.041 0 72.5-32.459 72.5-72.5s-32.459-72.5-72.5-72.5z" fill="#e3e7ea"/><path d="m183.5 192.5c0 40.041 32.459 72.5 72.5 72.5v-145c-40.041 0-72.5 32.459-72.5 72.5z" fill="#fff"/></g></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/007-paint-brush.svg b/WebSite/src/icons/svg/007-paint-brush.svg new file mode 100644 index 00000000..1495aa4e --- /dev/null +++ b/WebSite/src/icons/svg/007-paint-brush.svg @@ -0,0 +1 @@ +<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m171.193 130.226c-2.209 0-3.448 0-5.657 0l-12.743 12.743c-29.242 29.252-29.242 76.836 0 106.089l7.831 7.831c6.56 6.55 5.67 17.361-1.84 22.772-53.114 38.273-119.969 87.447-136.86 104.338-29.232 29.242-29.232 76.826.01 106.079 29.242 29.232 76.826 29.232 106.078-.01 17.821-17.832 73.016-93.398 104.328-136.851 5.44-7.551 16.251-8.361 22.772-1.84l7.831 7.831c29.252 29.242 76.836 29.242 106.088 0l12.743-12.743c0-2.209 0-3.448 0-5.657zm-95.226 320.808c-8.285 0-15.001-6.716-15.001-15.001s6.716-15.001 15.001-15.001 15.001 6.716 15.001 15.001-6.716 15.001-15.001 15.001z" fill="#1c6c94"/><path d="m276.482 235.516-189.914 189.916c2.72 2.71 4.4 6.46 4.4 10.601 0 8.281-6.72 15.001-15.001 15.001-4.14 0-7.891-1.68-10.601-4.4l-43.433 43.434v.01c29.242 29.232 76.826 29.232 106.078-.01 17.821-17.832 73.016-93.398 104.328-136.851 5.44-7.551 16.251-8.361 22.772-1.84l7.831 7.831c29.252 29.242 76.836 29.242 106.088 0l12.571-12.571.17-.17v-5.66z" fill="#165771"/><path d="m507.61 220.625-126.01 126.01-216.236-216.237 126.01-126.01c5.86-5.851 15.361-5.851 21.222 0l30.002 30.002c4.24 4.25 5.55 10.611 3.32 16.181l-17.001 42.503 42.503-17.001c5.57-2.22 11.931-.92 16.181 3.32l120.009 120.01c5.85 5.861 5.85 15.362 0 21.222z" fill="#fed941"/><path d="m507.61 220.625-125.84 125.84-.17.17-108.118-108.118 136.62-136.621 97.507 97.508c5.851 5.86 5.851 15.361.001 21.221z" fill="#fcbe29"/><path d="m512 210.014v165.013c0 25.382-20.986 45.691-46.063 44.994-24.232-.57-43.943-21.022-43.943-45.604v-98.187l-27.432-27.422c-29.274-29.295-29.364-76.703 0-106.089l28.182-28.182 84.866 84.867c2.81 2.82 4.39 6.63 4.39 10.61z" fill="#ee3616"/></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/element.svg b/WebSite/src/icons/svg/element.svg new file mode 100644 index 00000000..b63bffad --- /dev/null +++ b/WebSite/src/icons/svg/element.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 153.71 38"><defs><style>.cls-1,.cls-2{fill:#409eff;}.cls-1{fill-rule:evenodd;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path id="Shape-Copy" class="cls-1" d="M142,26.16s.28,0,.82,0a.72.72,0,0,1,.69.41s1.08,2,1.37,2.48,0,.42-.12.41h0s-.31,0-3.45,0a4.93,4.93,0,0,1-4.54-4.54v-7H134.3V15.28c0-.36.41-.41.41-.41h2.07V12.25a.6.6,0,0,1,.41-.55l2.3-.66c.34-.1.59,0,.59.35V15h3.58c.34,0,.41.41.41.41V18h-4v6.06c0,1.76,1.93,2.07,1.93,2.07Zm-10.6,3h-2.2c-.43,0-.41-.55-.41-.55V18.45c0-.62-.83-.83-.83-.83h-4.54c-.68,0-.69.83-.69.83V28.77a.41.41,0,0,1-.41.42h-2.2c-.48,0-.41-.55-.41-.55V15.83c0-1,1.24-1.24,1.24-1.24h9.63c1,0,1.23,1.24,1.23,1.24V28.5c0,.72-.41.69-.41.69ZM115.73,23.4H107.2v2.07c0,.74,1,1,1,1H115a1.16,1.16,0,0,1,.82.42s.61,1.25.83,1.79-.41.55-.41.55H106c-1.24,0-1.51-1.52-1.51-1.52V16c0-.67,1-1,1-1h10.32c1,0,1.24,1.23,1.24,1.23v5.93c0,1-1.24,1.23-1.24,1.23Zm-1.52-4.95s-.08-.69-.68-.69h-5.65s-.68.18-.68.69V20a.69.69,0,0,0,.68.69h5.65a.9.9,0,0,0,.68-.83V18.45ZM101.28,29.19h-2.2c-.29,0-.41-.42-.41-.42V18.45c0-.64-.83-.83-.83-.83H95.78c-.58,0-.69.83-.69.83V28.77c0,.35-.41.42-.41.42h-2.2c-.31,0-.42-.42-.42-.42V18.45c0-.66-.82-.83-.82-.83H89.17c-.63,0-.68.83-.68.83V28.77a.39.39,0,0,1-.42.42h-2.2a.41.41,0,0,1-.41-.42V15.69c0-.75,1.1-1.1,1.1-1.1h13.76c1.1,0,1.37,1.38,1.37,1.38v12.8c0,.48-.41.42-.41.42Zm-20-5.79H72.8v2.07c0,.74,1,1,1,1h6.88a1.19,1.19,0,0,1,.83.42s.6,1.25.82,1.79-.41.55-.41.55H71.56c-1.24,0-1.51-1.52-1.51-1.52V16c0-.67,1-1,1-1H81.33c1,0,1.24,1.23,1.24,1.23v5.93c0,1-1.24,1.23-1.24,1.23Zm-1.51-4.95s-.09-.69-.69-.69H73.49s-.69.18-.69.69V20a.69.69,0,0,0,.69.69h5.64a.91.91,0,0,0,.69-.83V18.45ZM68,29.19H62.76a4.35,4.35,0,0,1-4.13-4c0-3.91,0-16.1,0-16.1h2.48a.79.79,0,0,1,.82.82V24.37A2.58,2.58,0,0,0,63.86,26h2.2s.72-.23,1.24.69l1.1,1.93s.08.55-.41.55Zm-26.56-.83V10.19a1,1,0,0,1,.69-1H55.05c.73,0,.42.83.42.83s-.41,1.12-.69,1.65a1,1,0,0,1-.83.55H45.56a.77.77,0,0,0-.83.69v4.54h9.5c.55,0,.27.69.27.69s-.71,1.52-1,1.93a1.05,1.05,0,0,1-.83.41h-8v4.82a.91.91,0,0,0,.69.83h8.81a.85.85,0,0,1,.82.41l1.24,1.93c.37.56-.14.69-.14.69H42.26C41.68,29.19,41.43,28.36,41.43,28.36Zm-8.14-1.14c0,1.57-.83,1.93-.83,1.93S18.32,37.31,17.4,37.83a1.68,1.68,0,0,1-1.52,0S1.09,29.25.55,28.87a1.29,1.29,0,0,1-.55-1s0-17,0-17.78S1,8.76,1,8.76L15.75.21a2,2,0,0,1,1.79,0S30.6,7.8,32,8.62a2.08,2.08,0,0,1,1.25,2.06s0,15.07,0,16.54Zm-5.9-17c-3-1.74-10.16-5.87-10.16-5.87a1.58,1.58,0,0,0-1.41,0L4.22,11s-.77.46-.76,1.08S3.46,26,3.46,26a1,1,0,0,0,.43.75c.43.3,12,7,12,7a1.3,1.3,0,0,0,1.19,0c.72-.4,11.82-6.79,11.82-6.79s.65-.28.65-1.51c0-.36,0-1.74,0-3.47L16.53,29.88v-3a3,3,0,0,1,1-2.07l11.56-7a2.49,2.49,0,0,0,.55-1.46c0-1.27,0-2.37,0-3.07L16.53,21.2V18a2.17,2.17,0,0,1,.83-1.79Z"/><path class="cls-1" d="M150.32,11.21h-2.24v-5c0-.11.12-.21.29-.24l1.44-.26c.26,0,.51.07.51.24Z"/><path class="cls-1" d="M148.08,9h2.24v5.11c0,.11-.11.21-.28.25l-1.45.26c-.26.05-.51-.07-.51-.24Z"/><path class="cls-2" d="M145.09,9h8.22a.4.4,0,0,1,.4.4v1.85a0,0,0,0,1,0,0h-9a0,0,0,0,1,0,0V9.36A.4.4,0,0,1,145.09,9Z"/></g></g></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/gitlab.svg b/WebSite/src/icons/svg/gitlab.svg new file mode 100644 index 00000000..bf1bffe4 --- /dev/null +++ b/WebSite/src/icons/svg/gitlab.svg @@ -0,0 +1,15 @@ +<svg height="36" viewBox="0 0 1231 342" + xmlns="http://www.w3.org/2000/svg" class="nav-logo"> + <g fill="none" fill-rule="evenodd"> + <g fill="#8C929D" class="wordmark"> + <path d="M764.367 94.13h-20.803l.066 154.74h84.155v-19.136h-63.352l-.066-135.603zM907.917 221.7c-5.2 5.434-13.946 10.87-25.766 10.87-15.838 0-22.22-7.797-22.22-17.957 0-15.354 10.637-22.678 33.332-22.678 4.255 0 11.11.472 14.655 1.18v28.586zm-21.51-93.787c-16.8 0-32.208 5.952-44.23 15.858l7.352 12.73c8.51-4.962 18.91-9.924 33.802-9.924 17.02 0 24.585 8.742 24.585 23.39v7.56c-3.31-.71-10.164-1.184-14.42-1.184-36.404 0-54.842 12.757-54.842 39.454 0 23.86 14.656 35.908 36.876 35.908 14.97 0 29.314-6.852 34.278-17.954l3.782 15.118h14.657v-79.14c0-25.04-10.874-41.815-41.84-41.815zM995.368 233.277c-7.802 0-14.657-.945-19.858-3.308v-71.58c7.093-5.908 15.84-10.16 26.95-10.16 20.092 0 27.893 14.174 27.893 37.09 0 32.6-12.53 47.957-34.985 47.957m8.742-105.364c-18.592 0-28.6 12.64-28.6 12.64V120.59l-.066-26.458H955.116l.066 150.957c10.164 4.25 24.11 6.613 39.24 6.613 38.768 0 57.442-24.804 57.442-67.564 0-33.783-17.26-56.227-47.754-56.227M538.238 110.904c18.438 0 30.258 6.142 38.06 12.285l8.938-15.477c-12.184-10.678-28.573-16.417-46.053-16.417-44.204 0-75.17 26.932-75.17 81.267 0 56.935 33.407 79.14 71.624 79.14 19.148 0 35.46-4.488 46.096-8.976l-.435-60.832V162.76h-56.734v19.135h36.167l.437 46.184c-4.727 2.362-13 4.252-24.11 4.252-30.73 0-51.297-19.32-51.297-60.006 0-41.34 21.275-61.422 52.478-61.422M684.534 94.13h-20.33l.066 25.988v89.771c0 25.04 10.874 41.814 41.84 41.814 4.28 0 8.465-.39 12.53-1.126v-18.245c-2.943.45-6.083.707-9.455.707-17.02 0-24.585-8.74-24.585-23.387v-61.895h34.04v-17.01H684.6l-.066-36.617zM612.62 248.87h20.33V130.747h-20.33v118.12zM612.62 114.448h20.33V94.13h-20.33v20.318z"></path> + </g> + <path d="M185.398 341.13l68.013-209.322H117.39L185.4 341.13z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"></path> + <path d="M185.398 341.13l-68.013-209.322h-95.32L185.4 341.128z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"></path> + <path d="M22.066 131.808l-20.67 63.61c-1.884 5.803.18 12.16 5.117 15.744L185.398 341.13 22.066 131.807z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"></path> + <path d="M22.066 131.808h95.32L76.42 5.735c-2.107-6.487-11.284-6.487-13.39 0L22.065 131.808z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"></path> + <path d="M185.398 341.13l68.013-209.322h95.32L185.4 341.128z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"></path> + <path d="M348.73 131.808l20.67 63.61c1.884 5.803-.18 12.16-5.117 15.744L185.398 341.13 348.73 131.807z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"></path> + <path d="M348.73 131.808h-95.32L294.376 5.735c2.108-6.487 11.285-6.487 13.392 0l40.963 126.073z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"></path> + </g> +</svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/noctua.svg b/WebSite/src/icons/svg/noctua.svg new file mode 100644 index 00000000..404d6744 --- /dev/null +++ b/WebSite/src/icons/svg/noctua.svg @@ -0,0 +1 @@ +<svg id="图层_5" data-name="图层 5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 366.26 236.5"><defs><style>.cls-1{fill:#4c6071;}.cls-2{fill:url(#未命åçš„æ¸å˜_5);}.cls-3{fill:url(#未命åçš„æ¸å˜_45);}.cls-4{fill:url(#未命åçš„æ¸å˜_6);}.cls-5{fill:#eee;}.cls-6{fill:#5c171d;}.cls-7{fill:#ff9109;}.cls-8{fill:#354950;}.cls-9{fill:url(#未命åçš„æ¸å˜_36);}.cls-10{fill:#ffb909;}</style><linearGradient id="未命åçš„æ¸å˜_5" x1="679.23" y1="314.04" x2="863.45" y2="314.04" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00c464"/><stop offset="1" stop-color="#009e50"/></linearGradient><linearGradient id="未命åçš„æ¸å˜_45" x1="520.61" y1="362.81" x2="668.41" y2="362.81" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#157eff"/><stop offset="1" stop-color="aqua"/></linearGradient><linearGradient id="未命åçš„æ¸å˜_6" x1="497.19" y1="314.04" x2="681.41" y2="314.04" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#009e50"/><stop offset="1" stop-color="#00c464"/></linearGradient><linearGradient id="未命åçš„æ¸å˜_36" x1="692.23" y1="362.81" x2="839.05" y2="362.81" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="aqua"/><stop offset="1" stop-color="#157eff"/></linearGradient></defs><path class="cls-1" d="M792.87,239.29c-8,23-81,46-113,46-35.14,0,0,88.16,0,181C774.87,466.29,900.87,384.29,792.87,239.29Z" transform="translate(-497.19 -229.79)"/><path class="cls-1" d="M567.32,239.29c8,23,81,46,113,46,35.14,0,0,88.16,0,181C585.32,466.29,459.32,384.29,567.32,239.29Z" transform="translate(-497.19 -229.79)"/><path class="cls-2" d="M863.45,229.79c-1.61,71.5-91,89-130,106-46,20-44,59-44,59s-12,17-10-24c13-63,58.39-88.5,102.39-91.5-10,11-11.39,14.5-11.39,14.5S843.45,276.79,863.45,229.79Z" transform="translate(-497.19 -229.79)"/><path class="cls-3" d="M524.32,308.29c71.5-9.5,123.09,22.42,144.09,92.42C620.41,441.71,497.82,414.79,524.32,308.29Z" transform="translate(-497.19 -229.79)"/><path class="cls-4" d="M497.19,229.79c1.61,71.5,91,89,130,106,46,20,44,59,44,59s12,17,10-24c-13-63-58.39-88.5-102.39-91.5,10,11,11.39,14.5,11.39,14.5S517.19,276.79,497.19,229.79Z" transform="translate(-497.19 -229.79)"/><path class="cls-5" d="M541.19,300.79c71.5-9.5,111.5,23.5,132.5,93.5C625.69,435.29,514.69,407.29,541.19,300.79Z" transform="translate(-497.19 -229.79)"/><path class="cls-6" d="M572.69,337.32c52.31,3.92,72.54,23.43,83,47C623,397.37,576.61,384.4,572.69,337.32Z" transform="translate(-497.19 -229.79)"/><circle class="cls-5" cx="134.5" cy="129.5" r="19.5"/><path class="cls-7" d="M680.19,384.79c-38.39-.5,0,62,0,62Z" transform="translate(-497.19 -229.79)"/><path class="cls-8" d="M578.8,279.29c74.72,2.34,115.15,64.53,101.47,102C673.91,358.26,655.62,294.91,578.8,279.29Z" transform="translate(-497.19 -229.79)"/><path class="cls-9" d="M835.32,308.29c-71.5-9.5-122.09,22.42-143.09,92.42C740.23,441.71,861.82,414.79,835.32,308.29Z" transform="translate(-497.19 -229.79)"/><path class="cls-5" d="M819.45,300.79c-71.5-9.5-111.5,23.5-132.5,93.5C735,435.29,846,407.29,819.45,300.79Z" transform="translate(-497.19 -229.79)"/><path class="cls-6" d="M788,337.32c-52.31,3.92-72.54,23.43-83,47C737.64,397.37,784,384.4,788,337.32Z" transform="translate(-497.19 -229.79)"/><circle class="cls-5" cx="231.76" cy="129.5" r="19.5"/><path class="cls-10" d="M680.45,384.79c38.39-.5,0,62,0,62Z" transform="translate(-497.19 -229.79)"/><path class="cls-8" d="M781.84,279.29c-75.4,2.34-115.2,64.53-101.4,102C686.86,358.26,704.31,294.91,781.84,279.29Z" transform="translate(-497.19 -229.79)"/></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/noctua_s.svg b/WebSite/src/icons/svg/noctua_s.svg new file mode 100644 index 00000000..66d7452c --- /dev/null +++ b/WebSite/src/icons/svg/noctua_s.svg @@ -0,0 +1 @@ +<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 168 187"><defs><style>.cls-1{fill:none;}.cls-2{fill:#009e50;}.cls-3{fill:#157eff;}.cls-4{clip-path:url(#clip-path);}.cls-5{fill:#4c6071;}</style><clipPath id="clip-path" transform="translate(-1014.35 -111.8)"><rect class="cls-1" x="1077.35" y="111.8" width="42" height="187" transform="translate(176.53 836.78) rotate(-45)"/></clipPath></defs><polygon class="cls-2" points="42 187 0 177 0 10 42 0 42 187"/><polygon class="cls-3" points="168 177 126 187 126 0 168 10 168 177"/><g class="cls-4"><rect class="cls-5" x="54" width="60" height="187"/></g></svg> \ No newline at end of file diff --git a/WebSite/src/icons/svg/vant.svg b/WebSite/src/icons/svg/vant.svg new file mode 100644 index 00000000..1cdfb14a --- /dev/null +++ b/WebSite/src/icons/svg/vant.svg @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve"> <image id="image0" width="100" height="100" x="0" y="0" + href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABGdBTUEAALGPC/xhBQAAACBjSFJN +AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAA +CXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5QYJFTQCN9xp+wAAEX5JREFUeNrtXX1wXFd1/51z +39u3Wq1WH1b0LceTEEgLDAM2sWUntkhIho8CnaGEEuKPaTIhHmgDHQolYzuOnSZ/QGDa0IbJ1BTb +SQpJy7RNIaWYWP6KJNuZ8lEK+QASW4q/LWm1u9rd9+45/WOVkARblnb3aVcWv393395z7k/nd849 +974rUlXMZVy6/9HLrOQ/T372b45ed/twpe0pFU6lDSgWVx7YVpei6Oc5Qn+FtHiisY2VtqkcmJOE +dB189GNEka0cdd+CbB5QPV1pm8qFOUVI96HvvE2tvYcNfURBkLNJUMQBCFRp28qFOUHIor5vNVjP +fFFF7+BIpEbG04AqLh4afouqJ6S7/5GbNGK2sOddjvE0ZGIcoIuQiUlULSEd/Q+/yzBtJcd8AHmB +nE0WIuIiJgOoQkI6D+5YwAHdycCniY0n4ylAcVHK07lQVYQs7H94LSttpqi3SJNpSCZ70UfEG1EV +hHQN7FxKylvJda5HzoecHSsQMc/IACpMSNvTO1scYAOA9eSwI2OpwgfzkIhXUDFCuvsfvtUFbaJo +pFuSqXkpT+fCrBPSsX/H1caYrRRxe3UiN6/l6VyYNUIWHtjWoextMMDtxEwyOl744PdEvA4c9gBE +oIUH//l2Ye8QRdz16gck46lK+z1jdPSheVEfomGPEyohXQMP93Y9/cheGPMgWemQkSQgMqeiorcP +Tuc+XQ/Sn/jA/u7duirM8UKRrK7Bh7ugdBdZvZUchowmCx/MISIAoHOPfgiqdxHzYuQBOOgQS31d +u/XBwMfm4zfQyXKPWdYIob7NTvfgtz9DFofZdW/VvA8Zz8zaBJYLnXv0nZ19+m8g+g8QL5YxQHMK +TSnUB+DRenb0cNceXVPusctGSMf+ndd3Rd60n1x+ANa2ysjYpDzN6lyWhO5+7ezo069roINk6COa +BjSjKPRuUPBFFDKiIOVuGNre2Sf/2d2nbyuXDSVLVtvAtxa5cDcbQ2uJCDIy9+Sp4wnEKKG3Q/AF +9qhVxgmSnaK9T5MRkyNwgj8ovvZ27tYv26ETXzm+ui1dii1FR8hbf/54ZOHBR//SFecwuc5azeYh +qYmKTmwx6Nxjb6QaPUQu3Q9LrTKigJ3uXotCxhTwqZY82mw6Wwa69ugHSrGnqAjpGnjk/SRyD3ne +u5CbgIxMTC7uKjGlxaFjt64g6CZyzA1qABkBQEVsehGggUJHCFTLbwPwvc4+3QHGhuGVdHSmds2I +kIUHvn25mGALg25SnpvV06W7cFngyp0kdAtFGDIOAGXYfSSFZgBlAtfRGs3r+zr7dPNwLz04k5+Z +FiHd/Y/VEOXvUMIX2XEbJJkqbKHOISwY1EQ0g8/C4LPkcKNMAJoNYRtYFDIKkEctFMM/dO7RG0nx +paFeGpjO41PmENq8mVufeujDarMHEYnchyBokNHknCOjsw/rvDSeoSjdjYAaZVQBCXFPngDNTxJD +1CuCfR1P6f2Xfg+NF3x0qoNyK470LRlNjh1KJpOw6Qkwh95pmbnvrgO19oxa9y3D711z5rWfde7W +6wBsIpdWah7QiQocjFAADoHrAPX1VyK45dh7aM/5vn4ByaKaxoYmRGHsqJKdyGQcImKqwpyhE86r +RnUe0LfAYhNANxEDkpycmUqYTQCsQkYA00aXY1TfB6A4QixUKQgQ8TzTckkLpdPpYHRslIJ83mVj +KuDdeaAUOVb3ydHuH3yiSTz6AgSfpgjFJQOoVIm8EqBZAIQp1ylTapCCCASICESE47XxSFtbOyfq +6/MKtSJSOQdVAcPgRC3AwZF2jK63Hp4jD19Un+IyNpknqgmFRf+URk1JiLGvX1xYsWAi09i4wG1t +a5doTcwXa3XWD2wTwIk4yHWsZHIPGk5fz6j/GUH/DwFA7uyaMyPTCVP+FU8pWepYgrxeeFUVqpY8 +N+K2XNIi6UwqGBsdpcD3ndBlTAGKRUGugYo+qUJ3D11z8+Dkp8cAXtm9Vz+phLu4ka7QFKB+dZ1w +FKHiI0RywudzRkSgKhyvrXPb2tqprr4+r6oSioypglwH3JQAVH8JxcePLr3pA0PXrB5841ePrqRH +YjEskZxshavj3FBl28OkU07Q1HXsNMopEQtmNk2NTW5re7uNRmvKJ2MKgBncmIA6zlnJ5e7041hy +5KpPPDbVY88vpeTL7+FNULwbeXmMYgDVEqohVOgCOWRqyYIl4MIyVJAxLchYa6uk0qkgOTrCgR+Y +UmSM62qhQQD4/jaHnXteXPanL87k+eFr6VmAPt71lG5Xoi3cgMWaIWiugjJ2gRwydVInmtGSoyBj +ynW1cbetrQN1iXp/xjKmANV44EQcKvIUSFYdWXbzrTMl47UYupa+3/48esTqX8DICW4kwBBQiSKs +tAgpYgmoClEtyFhTE8dqa+3o2IjkMhOGmM/PsCrIdUF1MchE/gUNZOtQzyd3lGseDt8GH6AHun+E +79qcbiAXt1ENsaQKns4WVEuIEKXie+qqChGhqOc5rS1t3NR8ScCGrX1jtCgAJnBDAnBNUrL+Fm8i +s2So56aykfFaHL2Ohl9+D60HgmvEyi5OABSd1WgpPkKMtQS3tE1FKZwy4bp4nGtqauzY2GiQTqVY +VZmZwXUxqAgk8B8Bm7uHlt30/GzMyvC17tMAru/q09UolMmXz0qZXEoOEdLydBML0QLDbBY0LTAt +LW3qeZ5FxIWK7Bfw9UPLbr55tsh4LYZ6aWc0QYuR17+BoymKhRwtpeSQchfwr1Rj0ahn2i+/TMfH +ktt/9ocfXBei+9PCrxZjDKANHX14GFa3UQ0t12w4rJCKTlW5Tp1DLELZlxURsOtSoi7x61C8LhIv +9+KXsLqLvBAHUS5espiUw9JTVYUVP0zXiwIRopWUrGlUWb9H2aCAoBRCIPzqL80XEIfq7IW6vVNX +WVKmKuu8A1RjBIa8x+NP/fsXyCFc2K6dRwEConC9NSVESDGdkxmh+s5MhB4gUkrrhKxU45SFjPAC +RBUgKqHsVdFQMxyJVGEOCc3byZsoSmkuOvOw7mXSsNZeVOohBwaFtjAsDFCNihhuTicuJUJUOdTW +p9p5F4AipST1sNch1Vhmabhlr7nAyb0LrNTDJmT+oSTJAplQJaW6TkwVIGHmEAVsKWUvhdjtrVYY +Dk+yFACVkkPm3Htq5UCIK3UCALUl5BAz39gAqrrs5bDPYIrOH8Ine7SWTCmtEwqvyiKCMmcrMzvn +h41QNlRdKEmyQuycqO+DCW/v/XlfPET3Z4zE2fQVCADhEFxXgLiECOEQayybTIGI/zgb10PLh/d/ +LKxxpouebw6/d+n24/uazo6uaf7VUUSzExAmaLn/JkvbUw9xYUgEm86Ama8kpsd6hvY+0fPSj94V +2njnwbJ/Grpi6Y6TO9XwD4n56sDPwstOoOX4EJrOnATbALaMyzHiUs72ht06IYJNF26BcOrjfyRW +buh5ae+Dav37Bi677kSYQy956Nf1HI19jok/x8ZJBOkUoBYAQSabnnVjI6jJpDDWsACpunoAAJfy +mlzJ3V6i2bnmXhXBSBKa9yMmFrmDHedwz9DeT83s7P30sXTHydUmEj1s3OhdYv1EMH4GUMEb11xi +DIy1WHDqOFqODyGSy8KaEmWspKTO4bZOXgciqLXwT49ARbpMJPKNniN9+5a/tO+6cg1x1bajK5dt +P/EjNmYHgDcFyVPQwJ/ygKYSQYxBzUQabceOovHsabBYSJFTU9oLO1qB5iIRJJuDZHMwdbUrANm1 +/OV9201AW/YtvLqok47LvnV8EZg2kOFbiBlBauSVwab9G8IGUEX9yBnE0uMYa2hGOl5XuK9mJm+L +mZI2qCq7UrfJFGQiB3actQHZwz1De7/0jp/8d+10n3/HzuO1y3ac/GuFPkNO5Bb18wgyo8UbNBkt +TuCj+dTLuOTEMFw/B5mujJVa9oIrvINLBBWBf2YU8ING40XujTW4h1YcO/DRCz3as/3UjVErh9h1 +74P1m4LkaagUknapUGIIG8QyKbQeO4r6kTMglWmtXYIL7LdUn2SdC0SQvA85PQITj/0BgH9ZPrT3 +CQpk04FFvT9+7VcXf3NoqeO4d7Ex7ydL8JOnUThgEMKhcTYgVTScPY1YulCNZWrjU8pY4XKZ89sy +JSGEMJarJeB1ZXLdh8Tmb1h2ZM9DkUjua+l/f2fWifgbHdBtzGyCzNjkrUXhuqBEUGPg5nO45OQw +0rUJjDU2w4+4YMHv3pxkSnrHMOQ99aJnQRGMJuEuaPBg8Of+GU2yZj5sahrfHoyfQZDKzPq76cqF +FV9tKonoRAbJhiakEg0Qpt+uXfTVHuN5UdmTi0XCxGNwEnWQbP77Nju62P/Km+9VspcG6dFCnqig +2WIMWAVNZ06i5dhRRCcyk0l/8gsaFB8hzBQj13nlyF3FnCw4ouCoBxOPwWayPxXo3QPdq74LAFe9 +/RcLBJ5fWQNfYyoRrDHwclm0nBhCOl6PscZm2KgBqVPC1RpKP9F8fsJpTFTQOwU5Bm5zI+CYl8X3 +7zidn7hqoKtARjVDmKHEiCdH0H7qJBryJW5QDSxc+R0/m14ugfzAaaoHR73Zu95PUUjejfVAxMna +TPZv80JLnu645u+ev+L9uVmb1RKdIDbghlYYyKnGo0OfXXhi6MdTPUHTvZNk+dE9fwbFFq7xOoOR +JNSGq9Wm7tX137/CmM1Pty3/3/N996qv/2KBuN6z7DgLNMiHZtOMfYgloDYAEW0LSLccXtNx5ELP +TPsl9Ke7V31z8Uv/9WQkS5upxruNmWGT6fIWYargWA1MjQeb8wcM6Zb9XauerMhsluKDVwP2YtDA +30fgTQNr2/qm+/iMFn7PXPq+Y/3dKz8F1euhethtbgC5bukyNnn9ktvcBGJ6UfL5Tw1se2rFnCJD +C/Lk1jcDZIbF928fXNu2amDd9MkAZiBZb8Rbf/54pK6+5XMsuJO8SCIo5vpYVZAxMPV1kFxunAgP +KLz7+7t7zs7kZ6pBspxYPSTIW2L+hqi55+C6luPF/E7RhLw6Gb/e9WbHi95Lhj4q+QCSnv6izEnE +IUEAGN5pQfcc7LzmuaJsqBQhqmAvBo5EIX5+F2A3Dq7rmtaFyeedk1JtOnjZe58D8Cc9w/tvBOFe +t7nx8mB0vHDP1bmIUYBra8CeC8kHu0Xs1sGFvbtnbxbLAFWQ48LUNsDmMr8RsZsH17WX5bKcsjUP ++zuvfsxR8+4gm/saeU7g1Nf9jhMcceE2NwCqz0F0dX/3ymsHF103t8ggghNvBJlI1mYnvmwCu2Rw +dUvZbi4qWbLOhRUv7ulRh+7jSGSVTWegfgCnMQGZyJ1Rxlc5NfrAgSs/Ml6u8WZHshQmGgcZF2Lt +EwRsGFjb+tNyjxLK/6A6sGhVP4DeFcP71pMx95Bjmmw2/5CK3jewsPfFkGYsHKiC3AicWD1sLvOs +qm4cXNv6eFjDhfp/DA90XvNgzwt9PzRRNO/vWlVSspt9KEAMJ94ECbLjgZ/9qmuT9x9Yd2XZIvtc +CP0fS/a/qfcFAC+EPU55oTDROoAJGuQfl0A3Hrql7VmgLfSRq+K/RVcNVMGuBxOrQ5Cd+Kkybzi0 +tu2J2TShOrZoKw4FmOEkFgCOe9b6/hdilF96aPXskgH8PkIAAKYmAahA8/kdMLR5cHXLbyply/wl +RBUciYKjcaifGyDijf1rW3dV2qx5KFmFJqCTaAaMc1ys/5mF39t3df+aypMBzMMIcWINkCCnms89 +xBRs7V/dPozVFX8b4rf2VdqAWcErTUCvBuLn+gDZNLCubV+lzToXLm5CVEGOA6e2ATaXPSI2v2Vw +bfu2Sps1FS5qQpx4I8TP+ZLP/n1ecO//rGs7VWmbLmhzpQ0oPxTs1YKdCKD2SWLeOLC2/ZlKWzVd +XDSEkELJuHBidbC57AsQe1f/mtZHK23XTHHREAKmRnKcrOZz99t89MuDtzWOVdqkYnBREGIcE7WG +/5Gy2a/039o9xxqZr8f/A/XOxoITmoVTAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTA2LTA5VDEz +OjUyOjAyKzA4OjAwXF/P/gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wNi0wOVQxMzo1MjowMisw +ODowMC0Cd0IAAAAgdEVYdHNvZnR3YXJlAGh0dHBzOi8vaW1hZ2VtYWdpY2sub3JnvM8dnQAAABh0 +RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpIZWln +aHQAMTAwf5GrMAAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAxMDDsYPttAAAAGXRFWHRUaHVt +Yjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE2MjMyMTc5MjJP +VOqgAAAAEnRFWHRUaHVtYjo6U2l6ZQA0NTk1QkIyxFrvAAAARnRFWHRUaHVtYjo6VVJJAGZpbGU6 +Ly8vYXBwL3RtcC9pbWFnZWxjL2ltZ3ZpZXcyXzlfMTYyMTkyNDI4NTg4MTE5NDNfMTZfWzBd1XsW +eQAAAABJRU5ErkJggg==" ></image> +</svg> diff --git a/WebSite/src/icons/svg/vue.svg b/WebSite/src/icons/svg/vue.svg new file mode 100644 index 00000000..a6f74dba --- /dev/null +++ b/WebSite/src/icons/svg/vue.svg @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400" enable-background="new 0 0 400 400" xml:space="preserve"> <image id="image0" width="400" height="400" x="0" y="0" + href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAMAAAC3Ycb+AAAABGdBTUEAALGPC/xhBQAAACBjSFJN +AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACMVBMVEVMaXFBuIM8dnBBuINB +uIM4XGZBuIM7cW5BuINBuIM3VGM8enJBuIM6a2xBuINBuIM1TWA8eHBBuIM5Y2lBuIM8dG9BuINB +uIM4WmU8enJBuIM6b21BuINBuIM2UmI7eXFBuIM6aGpBuINBuIM8d3BBuIM5YGdBuIM7cm5BuINB +uIM3V2Q8enJBuIM6bGxBuINBuIM8eXFBuIM5ZGlBuIM7dXBBuINBuINBuIM8enJBuIM6amw8eHBB +uINBuIM5YWhBuINBuIM8dG9BuIM3WGRBuIM7bm1BuIM2UGFBuINBuINBuINBuIM8dnBBuIM4XmdB +uIM7cW5BuINBuINBuIM8eHFBuINBuINBuINBuINBuIM7b21BuINBuIM6aWs8d3A/nnxBuINBuIM8 +c29BuINBuIM7bW1BuINBuINBuIM6ZmpBuINBuIM7cW9BuINBuINBuIM6a2xBuIM8eXFBuINBuIM8 +dG9BuINBuINBuINBuIM8enJBuINBuINBuINBuINBuINBuINBuINBuINBuIM5YGc1SV41Sl5Ct4I/ +nnw7cG5Aqn82T2A9g3Q8gXNBtoI3WGQ+lHo6Zmo5ZGk/o301S147dnBBr4A2U2I2UWE9iXY4W2U1 +TF8/mXs6a2xBqH41TWA8fHJBs4E3VWNCsYA+j3g5YWg/oH1BrH86Z2pApn47eHA4Xmc+m3s7bW09 +fnM+kXk8c29BroA/l3o6aGo8enI+i3c7bm09hnU+jHf///8JM+bGAAAAhHRSTlMAwk0v/u+ZiRXv ++w1wuQTW/jFI3LRiJfr0AoqbDur9GmLHAsw/Oueldxr2+Ah8rgjeIlPWv1b8lhISbbw000XiRLBn +IfaHn+b9C14Bx0Y36qF883gHKlC7uiuSk+1pwDgDQKxv94Smg+Ra0DOdgRfydbXaLEu3XSj7jxAW +Zs8+qB6A4lcH2z2lAAAAAWJLR0S6o7FH2gAAAAd0SU1FB+QMEwExEvJ7+okAAA6VSURBVHja7d2H +fxZFGsDxlUQUS2xRRBEQK1gCGhFUFMWCYkFFz94Pu6LGXpAWLFGwABZURMTeY/vv7iAEkry77+7O +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 +OCswMDowMFjQ6VAAAAAASUVORK5CYII=" /> +</svg> diff --git a/WebSite/src/layout/MicroLayout.vue b/WebSite/src/layout/MicroLayout.vue new file mode 100644 index 00000000..2869a643 --- /dev/null +++ b/WebSite/src/layout/MicroLayout.vue @@ -0,0 +1,147 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 08:50:10 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-16 09:03:46 +--> +<template> + <div + :class="{ + hideSidebar: !sidebar.opened || !sidebar.enabled, + openSidebar: sidebar.opened && sidebar.enabled, + withoutAnimation: sidebar.withoutAnimation, + mobile: device === 'mobile' || !sidebar.enabled + }" + class="app-wrapper" + > + <div + v-if="device === 'mobile' && sidebar.opened" + class="drawer-bg" + @click="handleClickOutside" + /> + <sidebar-section v-if="sidebar.enabled" class="sidebar-container" /> + <div class="main-container"> + <navbar-section v-if="navbar.enabled" /> + <navigation-section v-if="navigation.enabled" /> + <tags-view-section v-if="tagsView.enabled" /> + <!-- <app-main-section /> --> + </div> + <settings-section /> + </div> +</template> + +<script> +import { + // AppMainSection, + NavbarSection, + NavigationSection, + SidebarSection, + TagsViewSection, + SettingsSection +} from './components'; +import { useStore } from 'vuex'; +import { computed, ref, provide, onUnmounted, onMounted } from 'vue'; +import ResizeMixin from './mixin/ResizeHandler'; + +export default { + name: 'LayoutForMicroApp', + components: { + // AppMainSection, + NavigationSection, + NavbarSection, + SidebarSection, + TagsViewSection, + SettingsSection + }, + mixins: [ResizeMixin], + setup() { + const store = useStore(); + + // !! the name of variable in steup can not be same with the name in components + // even they are diff in case on initial (case-insensitive) + const device = computed(() => store.state.app.device); + const navbar = computed(() => store.state.app.navbar); + const navigation = computed(() => store.state.app.navigation); + const sidebar = computed(() => store.state.app.sidebar); + const tagsView = computed(() => store.state.app.tagsView); + const cachedViews = computed(() => { + return store.state.app.tagsView.cachedViews; + }); + + const handleClickOutside = () => { + store.dispatch('app/closeSideBar', { withoutAnimation: false }); + }; + + onMounted(() => { + console.log('onMounted'); + }); + onUnmounted(() => { + console.log('onUnmounted'); + }); + + const isOpenedSettings = ref(false); + provide('isOpenedSettings', isOpenedSettings); + provide('openSettings', () => { + isOpenedSettings.value = true; + }); + provide('closeSettings', () => { + isOpenedSettings.value = false; + }); + + return { + device, + sidebar, + navigation, + navbar, + tagsView, + cachedViews, + handleClickOutside + }; + } +}; +</script> + +<style lang="scss" scoped> +@import '~@/styles/mixin.scss'; +@import '~@/styles/variables.scss'; + +.app-wrapper { + @include clearfix; + position: relative; + height: 100%; + width: 100%; + + &.mobile.openSidebar { + position: fixed; + top: 0; + } +} + +.drawer-bg { + background: #000; + opacity: 0.3; + width: 100%; + top: 0; + height: 100%; + position: absolute; + z-index: 999; +} + +.fixed-header { + position: fixed; + top: 0; + right: 0; + z-index: 9; + width: calc(100% - #{$sideBarWidth}); + transition: width 0.28s; +} + +.hideSidebar .fixed-header { + width: calc(100% - 54px); +} + +.mobile .fixed-header { + width: 100%; +} +</style> diff --git a/WebSite/src/layout/components/AppMain.vue b/WebSite/src/layout/components/AppMain.vue deleted file mode 100644 index c5fcc5d4..00000000 --- a/WebSite/src/layout/components/AppMain.vue +++ /dev/null @@ -1,66 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-04-21 18:54:20 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 13:54:22 ---> -<template> - <section class="app-main"> - <transition name="fade-transform" mode="out-in"> - <keep-alive :include="cachedViews"> - <router-view :key="key" /> - </keep-alive> - </transition> - </section> -</template> - -<script> -export default { - name: "AppMain", - computed: { - cachedViews() { - return this.$store.state.tagsView.cachedViews; - }, - key() { - return this.$route.path; - } - } -}; -</script> - -<style lang="scss" scoped> -.app-main { - /* 50= navbar 50 */ - min-height: calc(100vh - 50px); - width: 100%; - position: relative; - overflow: hidden; - // padding: 20px; - background: #f5f5f5; -} - -.fixed-header + .app-main { - padding-top: 50px; -} - -.hasTagsView { - .app-main { - /* 84 = navbar + tags-view = 50 + 34 */ - min-height: calc(100vh - 84px); - } - - .fixed-header + .app-main { - padding-top: 84px; - } -} -</style> - -<style lang="scss"> -// fix css style bug in open el-dialog -.el-popup-parent--hidden { - .fixed-header { - padding-right: 15px; - } -} -</style> diff --git a/WebSite/src/layout/components/AppMain/components/MicroApp.vue b/WebSite/src/layout/components/AppMain/components/MicroApp.vue new file mode 100644 index 00000000..bdd7c9f0 --- /dev/null +++ b/WebSite/src/layout/components/AppMain/components/MicroApp.vue @@ -0,0 +1,16 @@ +<!-- + * @Description: + * @Author: dongjunhua + * @Date: 2021-10-16 11:25:48 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-16 11:25:48 +--> +<template> + <div id="micro-container"></div> +</template> + +<script> +export default { + name: 'MicroApp' +}; +</script> diff --git a/WebSite/src/layout/components/AppMain/components/Normal.vue b/WebSite/src/layout/components/AppMain/components/Normal.vue new file mode 100644 index 00000000..c39f5c07 --- /dev/null +++ b/WebSite/src/layout/components/AppMain/components/Normal.vue @@ -0,0 +1,38 @@ +<!-- + * @Description: + * @Author: dongjunhua + * @Date: 2021-10-16 11:20:45 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-16 11:23:37 +--> +<template> + <router-view v-slot="{ Component }" v-loading="appLoading"> + <transition name="fade-transform-s" mode="out-in"> + <keep-alive :exclude="destoryRoute"> + <component :is="Component" /> + </keep-alive> + </transition> + </router-view> +</template> + +<script> +import { computed } from 'vue'; +import { useRoute } from 'vue-router'; +import { useStore } from 'vuex'; +export default { + name: 'Normal', + setup() { + const store = useStore(); + const route = useRoute(); + + // !! can't use loading as it will cause v-loading dosen't work + const appLoading = computed(() => store.state.app.loading); + const key = computed(() => route.path); + const destoryRoute = computed(() => { + return store.state.app.destoryRoute; + }); + + return { appLoading, key, destoryRoute }; + } +}; +</script> diff --git a/WebSite/src/layout/components/AppMain/index.vue b/WebSite/src/layout/components/AppMain/index.vue new file mode 100644 index 00000000..efd8f9c6 --- /dev/null +++ b/WebSite/src/layout/components/AppMain/index.vue @@ -0,0 +1,112 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 09:01:58 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-19 11:03:07 +--> +<template> + <section class="app-main"> + <transition name="fade-transform-s" mode="out-in"> + <micro-app v-show="showMicroApp" /> + </transition> + <nomal /> + </section> +</template> + +<script> +import { watch, ref } from 'vue'; +import { useRoute } from 'vue-router'; +import MicroApp from './components/MicroApp.vue'; +import Nomal from './components/Normal.vue'; +export default { + name: 'AppMain', + components: { MicroApp, Nomal }, + setup() { + const route = useRoute(); + + const showMicroApp = ref(route.name.indexOf('LayoutFor') === 0); + watch( + () => route.name, + () => { + setTimeout( + () => { + showMicroApp.value = route.name.indexOf('LayoutFor') === 0; + }, + route.name.indexOf('LayoutFor') === 0 ? 180 : 0 + ); + }, + { immediate: false } + ); + + return { showMicroApp }; + } +}; +</script> + +<style lang="scss" scoped> +.app-main { + /* 50= navbar 50 */ + // min-height: calc(100vh - 50px); + // min-height: 100vh; + width: 100%; + position: relative; + overflow: hidden; + flex-grow: 1; +} + +// .sub-34 { +// .app-main { +// min-height: calc(100vh - 34px); +// } +// } +// .sub-50 { +// .app-main { +// min-height: calc(100vh - 50px); +// } +// } +// .sub-84 { +// .app-main { +// min-height: calc(100vh - 84px); +// } +// } +// .sub-90 { +// .app-main { +// min-height: calc(100vh - 90px); +// } +// } +// .sub-106 { +// .app-main { +// min-height: calc(100vh - 106px); +// } +// } +// .sub-140 { +// .app-main { +// min-height: calc(100vh - 140px); +// } +// } + +// .fixed-header + .app-main { +// padding-top: 50px; +// } + +// .hasTagsView { +// .app-main { +// /* 84 = navbar + tags-view = 50 + 34 */ +// min-height: calc(100vh - 84px); +// } + +// .fixed-header + .app-main { +// padding-top: 84px; +// } +// } +</style> + +<style lang="scss"> +// fix css style bug in open el-dialog +// .el-popup-parent--hidden { +// .fixed-header { +// padding-right: 15px; +// } +// } +</style> diff --git a/WebSite/src/layout/components/Navbar.vue b/WebSite/src/layout/components/Navbar.vue deleted file mode 100644 index c4d98166..00000000 --- a/WebSite/src/layout/components/Navbar.vue +++ /dev/null @@ -1,250 +0,0 @@ -<template> - <div class="navbar"> - <hamburger - id="hamburger-container" - :is-active="sidebar.opened" - class="hamburger-container" - @toggleClick="toggleSideBar" - /> - - <breadcrumb id="breadcrumb-container" class="breadcrumb-container" /> - - <div class="right-menu"> - <template v-if="false"> - <!-- device !== 'mobile' --> - <search id="header-search" class="right-menu-item" /> - - <error-log class="errLog-container right-menu-item hover-effect" /> - - <screenfull id="screenfull" class="right-menu-item hover-effect" /> - - <el-tooltip content="Global Size" effect="dark" placement="bottom"> - <size-select id="size-select" class="right-menu-item hover-effect" /> - </el-tooltip> - </template> - - <el-dropdown - class="avatar-container right-menu-item hover-effect" - trigger="click" - > - <div class="avatar-wrapper"> - <!-- <img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" /> --> - <span class="text-avatar"><i class="el-icon-user-solid"></i></span> - <i class="el-icon-caret-bottom" /> - </div> - <el-dropdown-menu slot="dropdown"> - <!-- <router-link to="/profile/index"> - <el-dropdown-item>Profile</el-dropdown-item> - </router-link> - <router-link to="/"> - <el-dropdown-item>Dashboard</el-dropdown-item> - </router-link> - <a - target="_blank" - href="https://github.com/PanJiaChen/vue-element-admin/" - > - <el-dropdown-item>Github</el-dropdown-item> - </a> - <a - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/#/" - > - <el-dropdown-item>Docs</el-dropdown-item> - </a> - <el-dropdown-item divided @click.native="logout"> - <span style="display:block;">Log Out</span> - </el-dropdown-item> --> - <!-- <el-dropdown-item @click.native="handleSelectUser" - >{{ name - }}<span style="color:#409EFF"> 切æ¢</span></el-dropdown-item - > --> - <el-dropdown-item - ><span style="display:block; font-size:12px" - ><i class="el-icon-user-solid" /> {{ name }}</span - ></el-dropdown-item - > - <el-dropdown-item divided @click.native="handleModifyPassword"> - <span style="display:block; font-size:12px"> - <i class="el-icon-s-cooperation" /> - 修改密ç </span - > - </el-dropdown-item> - <el-dropdown-item @click.native="logout"> - <span style="display:block; font-size:12px" - ><i class="el-icon-switch-button" /> 注销</span - > - </el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> - </div> - <select-user - :visible.sync="dialogSelectUser.visible" - :userList="dialogSelectUser.userList" - @handle-confirm="setUser" - /> - <modify-password :visible.sync="dialogModifyPassword.visible" /> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import Breadcrumb from "@/components/Breadcrumb"; -import Hamburger from "@/components/Hamburger"; -import ErrorLog from "@/components/ErrorLog"; -import Screenfull from "@/components/Screenfull"; -import SizeSelect from "@/components/SizeSelect"; -import Search from "@/components/HeaderSearch"; -import ModifyPassword from "@/components/ModifyPassword"; -import SelectUser from "@/components/SelectUser"; - -export default { - data() { - return { - dialogSelectUser: { - visible: false, - userList: [] - }, - dialogModifyPassword: { - visible: false - } - }; - }, - components: { - Breadcrumb, - Hamburger, - ErrorLog, - Screenfull, - SizeSelect, - Search, - ModifyPassword, - SelectUser - }, - computed: { - ...mapGetters(["sidebar", "avatar", "device", "name"]) - }, - methods: { - toggleSideBar() { - this.$store.dispatch("app/toggleSideBar"); - }, - async logout() { - await this.$store.dispatch("user/logout"); - this.$router.push("/login"); - }, - async handleSelectUser() { - const { users } = await this.$store.dispatch("user/login", {}); - this.dialogSelectUser.userList = users; - if (this.dialogSelectUser.userList.length > 1) { - this.dialogSelectUser.visible = true; - } - }, - async setUser(id) { - await this.$store.dispatch("user/setUser", id); - await this.$store.dispatch("user/getInfo"); - this.$router.push({ - path: "/", - query: { - t: new Date().valueOf() - } - }); - }, - handleModifyPassword() { - this.dialogModifyPassword.visible = true; - } - } -}; -</script> - -<style lang="scss" scoped> -.navbar { - height: 50px; - overflow: hidden; - position: relative; - background: #fff; - box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); - - .hamburger-container { - line-height: 46px; - height: 100%; - float: left; - cursor: pointer; - transition: background 0.3s; - -webkit-tap-highlight-color: transparent; - - &:hover { - background: rgba(0, 0, 0, 0.025); - } - } - - .breadcrumb-container { - float: left; - } - - .errLog-container { - display: inline-block; - vertical-align: top; - } - - .right-menu { - float: right; - height: 100%; - line-height: 50px; - - &:focus { - outline: none; - } - - .right-menu-item { - display: inline-block; - padding: 0 8px; - height: 100%; - font-size: 18px; - color: #5a5e66; - vertical-align: text-bottom; - - &.hover-effect { - cursor: pointer; - transition: background 0.3s; - - &:hover { - background: rgba(0, 0, 0, 0.025); - } - } - } - - .avatar-container { - margin-right: 30px; - - .avatar-wrapper { - margin-top: 5px; - position: relative; - - .user-avatar { - cursor: pointer; - width: 40px; - height: 40px; - border-radius: 10px; - } - - .el-icon-caret-bottom { - cursor: pointer; - position: absolute; - right: -20px; - top: 25px; - font-size: 12px; - } - - .text-avatar { - display: flex; - cursor: pointer; - width: 40px; - height: 40px; - border-radius: 20px; - justify-content: center; - align-items: center; - background-color: #eeeeee; - } - } - } - } -} -</style> diff --git a/WebSite/src/layout/components/Navbar/index.vue b/WebSite/src/layout/components/Navbar/index.vue new file mode 100644 index 00000000..3e1215e8 --- /dev/null +++ b/WebSite/src/layout/components/Navbar/index.vue @@ -0,0 +1,48 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2021-02-24 09:44:14 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-26 09:59:13 +--> + +<template> + <div class="navbar-container"> + <scroll-pane> + <el-menu + :default-active="activeMenu" + :unique-opened="false" + mode="horizontal" + > + <sidebar-item v-for="root in menuList" :key="root.id" :item="root" /> + </el-menu> + </scroll-pane> + </div> +</template> + +<script> +import { useStore } from 'vuex'; +import { useRoute } from 'vue-router'; +import SidebarItem from '@/layout/components/Sidebar/components/SidebarItem'; +import ScrollPane from '../ScrollPane'; +import variablesStyle from '@/styles/variables.scss'; +import { computed } from 'vue'; +export default { + name: 'Navbar', + components: { SidebarItem, ScrollPane }, + setup() { + const store = useStore(); + const route = useRoute(); + + const activeMenu = computed(() => route.path); + const variables = computed(() => variablesStyle); + const menuList = computed(() => store.state.subject.user.menuList || []); + + return { + activeMenu, + variables, + menuList + }; + } +}; +</script> diff --git a/WebSite/src/layout/components/Navigation/components/Breadcrumb.vue b/WebSite/src/layout/components/Navigation/components/Breadcrumb.vue new file mode 100644 index 00000000..88ca1538 --- /dev/null +++ b/WebSite/src/layout/components/Navigation/components/Breadcrumb.vue @@ -0,0 +1,105 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-29 15:32:29 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-14 14:50:07 +--> + +<template> + <el-breadcrumb class="app-breadcrumb" separator-class="el-icon-arrow-right"> + <transition-group name="breadcrumb"> + <el-breadcrumb-item v-for="item in levelList" :key="item.id"> + <span class="no-redirect">{{ item.name }}</span> + </el-breadcrumb-item> + </transition-group> + </el-breadcrumb> +</template> + +<script> +import { useStore } from 'vuex'; +import { useRoute } from 'vue-router'; +import { computed, reactive, toRefs, watch } from 'vue'; +import { getOriginalPath } from '@/router'; +export default { + name: 'Breadcrumb', + setup() { + const store = useStore(); + const route = useRoute(); + const menuList = computed(() => + store.state.subject.user ? store.state.subject.user.menuList : [] + ).value; + + const data = reactive({ + levelList: [] + }); + + const getLevelList = () => { + data.levelList = []; + if (route.path === '/i') { + data.levelList.unshift({ + id: 0, + name: '首页' + }); + } else if (route.path === '/i/workplace') { + data.levelList.unshift({ + id: 'workplace', + name: '用户ä¸å¿ƒ' + }); + } + const menus = JSON.parse(JSON.stringify(menuList)); + const path = getOriginalPath(route.path); + menus.forEach(m => filterMenuNode(m, path)); + }; + + const filterMenuNode = (node, path) => { + if (node.children && node.children.length > 0) { + node.children.forEach(c => filterMenuNode(c, path)); + node.children = node.children.filter( + c => + (c.routingUrl && path.indexOf(c.routingUrl) === 0) || + (c.children && c.children.length > 0) + ); + } + if ( + (node.routingUrl && path.indexOf(node.routingUrl) === 0) || + (node.children && node.children.length > 0) + ) { + data.levelList.unshift({ + id: node.id, + name: node.name + }); + } + }; + + // watch route will cause a warn, you should avoid watching the whole route object + // see detail: https://github.com/vuejs/vue-next/issues/2027 + watch( + () => route.path, + () => { + getLevelList(); + }, + { immediate: true } + ); + + return { + ...toRefs(data), + getLevelList + }; + } +}; +</script> + +<style lang="scss" scoped> +.app-breadcrumb.el-breadcrumb { + display: inline-block; + font-size: 14px; + line-height: 50px; + margin-left: 8px; + + .no-redirect { + color: #606266; + cursor: text; + } +} +</style> diff --git a/WebSite/src/layout/components/Navigation/components/Hamburger.vue b/WebSite/src/layout/components/Navigation/components/Hamburger.vue new file mode 100644 index 00000000..e3fc33dc --- /dev/null +++ b/WebSite/src/layout/components/Navigation/components/Hamburger.vue @@ -0,0 +1,79 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-30 09:39:55 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-06-15 16:44:19 +--> + +<template> + <div class="hamburger" @click="toggleClick"> + <i :class="{ 'fas fa-indent': !isActive, 'fas fa-outdent': isActive }"></i> + <!-- <svg + :class="{ 'is-active': isActive }" + class="hamburger" + viewBox="0 0 1024 1024" + xmlns="http://www.w3.org/2000/svg" + width="64" + height="64" + > + <path + d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" + /> + </svg> --> + </div> +</template> + +<script> +export default { + name: 'Hamburger', + props: { + isActive: { + type: Boolean, + default: false + } + }, + methods: { + toggleClick() { + this.$emit('toggleClick'); + } + } +}; +</script> + +<style lang="scss" scoped> +// .hamburger { +// display: inline-block; +// vertical-align: middle; +// width: 20px; +// height: 20px; +// } + +// .hamburger.is-active { +// transform: rotate(180deg); +// } + +.hamburger { + float: left; + height: 100%; + width: 50px; + color: #606266; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + transition: background 0.3s; + &:hover { + background-color: #eee !important; + } + + .avatar-text { + margin-left: 10px; + font-size: 14px; + } + + i.icon-rotate-180 { + transform: rotate(180deg); + } +} +</style> diff --git a/WebSite/src/layout/components/Navigation/index.vue b/WebSite/src/layout/components/Navigation/index.vue new file mode 100644 index 00000000..b4096915 --- /dev/null +++ b/WebSite/src/layout/components/Navigation/index.vue @@ -0,0 +1,307 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 09:02:04 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-16 14:26:14 +--> +<template> + <div class="navigation-container"> + <hamburger + id="hamburger-container" + v-if="sidebar.enabled" + :is-active="sidebar.opened" + class="hamburger-container" + @toggleClick="toggleSideBar" + /> + + <breadcrumb id="breadcrumb-container" class="breadcrumb-container" /> + + <el-dropdown + size="small" + trigger="click" + @visible-change=" + visible => { + rotateEllipsisIcon = visible; + } + " + class="function" + > + <i + :class="{ + 'fas fa-ellipsis-h': true, + 'icon-rotate-90': rotateEllipsisIcon + }" + ></i> + <template #dropdown> + <el-dropdown-menu> + <div @click="about"> + <el-dropdown-item + ><span class="dropdown-menu-item" + ><i class="far fa-hdd" />版本: {{ version }}({{ + coreVersion + }})</span + ></el-dropdown-item + > + </div> + <div @click="logout"> + <el-dropdown-item divided + ><span class="dropdown-menu-item" + ><i class="fas fa-power-off" />注销</span + ></el-dropdown-item + > + </div> + </el-dropdown-menu> + </template> + </el-dropdown> + + <div class="function" @click="openWorkplace()"> + <i class="fas fa-user-circle rotate"></i + ><span class="avatar-text">{{ user.name }}</span> + </div> + + <div class="function" @click="openSettings()"> + <i class="fas fa-cog rotate"></i> + </div> + + <el-tooltip + v-if="sso" + class="item" + effect="dark" + content="sso mode" + placement="bottom-start" + > + <div class="function" v-if="sso"> + <i class="fas fa-fingerprint"></i></div + ></el-tooltip> + + <el-tooltip + v-if="isMicroApp" + class="item" + effect="dark" + content="微应用æ£åœ¨è¿è¡Œ" + placement="bottom-start" + > + <div class="function" v-if="isMicroApp"> + <i class="fab fa-codepen rotate scale"></i></div + ></el-tooltip> + </div> +</template> + +<script> +import Hamburger from './components/Hamburger'; +import Breadcrumb from './components/Breadcrumb'; +import { useStore } from 'vuex'; +import { computed, reactive, toRefs, inject } from 'vue'; +import { ElNotification } from 'element-plus'; +import { useRoute, useRouter } from 'vue-router'; +export default { + name: 'Navigation', + components: { Hamburger, Breadcrumb }, + setup() { + const store = useStore(); + const router = useRouter(); + const route = useRoute(); + + const applicationName = computed(() => store.state.app.applicationName); + const version = computed(() => store.state.app.version); + const coreVersion = computed(() => store.state.app.coreVersion); + const sidebar = computed(() => store.state.app.sidebar); + const user = computed(() => store.state.subject.user); + const sso = computed(() => store.state.subject.loginType === 'sso'); + const mock = computed(() => process.env.NODE_ENV === 'mock'); + const isMicroApp = computed(() => { + return route.name.indexOf('LayoutFor') === 0; + }); + + const data = reactive({ + rotateEllipsisIcon: false + }); + + const toggleSideBar = () => { + store.dispatch('app/toggleSideBar'); + }; + const toggleTheme = () => { + store.dispatch('app/toggleTheme'); + }; + const logout = () => { + store.dispatch('subject/logout', { ssoLogout: true }); + }; + const about = () => { + ElNotification({ + title: applicationName.value, + message: `版本: ${version.value}(${coreVersion.value})`, + type: 'info', + duration: 10 * 1000 + }); + }; + const openSettings = inject('openSettings'); + const openWorkplace = () => router.push('/i/workplace'); + return { + ...toRefs(data), + version, + coreVersion, + mock, + isMicroApp, + sso, + sidebar, + user, + toggleTheme, + toggleSideBar, + about, + logout, + openSettings, + openWorkplace + }; + } +}; +</script> + +<style lang="scss" scoped> +.theme-icon { + width: 1em !important; + height: 1em !important; +} + +.navigation-container { + height: 50px; + overflow: hidden; + position: relative; + z-index: 11; + background: rgb(250, 250, 250); + border-bottom: 1px solid#d8dce5; + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + + .hamburger-container { + line-height: 46px; + height: 100%; + float: left; + cursor: pointer; + transition: background 0.3s; + -webkit-tap-highlight-color: transparent; + + &:hover { + background: rgba(0, 0, 0, 0.025); + } + } + + .breadcrumb-container { + float: left; + } + + .errLog-container { + display: inline-block; + vertical-align: top; + } + + ::v-deep(.function), + .function { + float: right; + height: 100%; + min-width: 40px; + padding: 0 12px; + color: #606266; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + transition: background 0.3s; + &:hover { + background-color: #eee; + i.rotate { + animation: function-icon-shake 0.5s; + transform: scale(1.3); + } + } + + .avatar-text { + margin-left: 10px; + font-size: 14px; + } + + i { + transition: all 0.12s; + } + svg { + transition: all 0.36s; + &:focus { + outline: none !important; + } + } + i.rotate { + transition: all 0.3s; + } + i.scale { + animation: function-scale 0.3s; + } + + .icon-rotate-90 { + transform: rotate(90deg); + } + .icon-rotate-360 { + transform: rotate(360deg); + } + } + ::v-deep(.el-dropdown) { + padding: 0; + .el-dropdown-menu__item { + &:hover { + background: none !important; + } + } + .dropdown-menu-item { + font-size: 14px; + + i { + margin-right: 12px !important; + } + } + i { + line-height: 50px; + width: 40px; + text-align: center; + outline: 0px; + } + } +} +@keyframes function-scale { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} +@keyframes function-icon-shake { + 0% { + transform: rotate(0deg); + } + 10% { + transform: rotate(-20deg); + } + 20% { + transform: rotate(0deg); + } + 30% { + transform: rotate(20deg); + } + 40% { + transform: rotate(0deg); + } + 50% { + transform: rotate(-20deg); + } + 60% { + transform: rotate(0deg); + } + 70% { + transform: rotate(20deg) scale(1.1); + } + 80% { + transform: rotate(0deg) scale(1.2); + } + 90% { + transform: rotate(-20deg) scale(1.3); + } +} +</style> diff --git a/WebSite/src/layout/components/TagsView/ScrollPane.vue b/WebSite/src/layout/components/ScrollPane/index.vue similarity index 89% rename from WebSite/src/layout/components/TagsView/ScrollPane.vue rename to WebSite/src/layout/components/ScrollPane/index.vue index a513290f..7f304278 100644 --- a/WebSite/src/layout/components/TagsView/ScrollPane.vue +++ b/WebSite/src/layout/components/ScrollPane/index.vue @@ -1,9 +1,17 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2021-02-25 09:17:44 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-25 09:28:16 +--> + <template> <el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" - @wheel.native.prevent="handleScroll" + @wheel.prevent="handleScroll" > <slot /> </el-scrollbar> @@ -13,7 +21,7 @@ const tagAndTagSpacing = 4; // tagAndTagSpacing export default { - name: "ScrollPane", + name: 'ScrollPane', data() { return { left: 0 @@ -78,19 +86,15 @@ export default { }; </script> -<style lang="scss" scoped> +<style lang="scss"> .scroll-container { white-space: nowrap; position: relative; overflow: hidden; width: 100%; - /deep/ { - .el-scrollbar__bar { - bottom: 0px; - } - .el-scrollbar__wrap { - height: 49px; - } + + .el-scrollbar__bar { + bottom: 0px; } } </style> diff --git a/WebSite/src/layout/components/Settings/index.vue b/WebSite/src/layout/components/Settings/index.vue index e09ff9c7..d478acac 100644 --- a/WebSite/src/layout/components/Settings/index.vue +++ b/WebSite/src/layout/components/Settings/index.vue @@ -1,110 +1,537 @@ +<!-- + * @Description: + * @Autor: Qun + * @Date: 2021-08-17 9:07:30 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-09-04 11:40:56 +--> + <template> - <div class="drawer-container"> - <div> - <h3 class="drawer-title">Page style setting</h3> + <div class="settings-container"> + <el-drawer v-model="opened" size="300px"> + <template #title> + <span><i class="fas fa-cog"></i>é…ç½®ä¸å¿ƒ</span> + </template> + <el-scrollbar class="settings-content"> + <el-divider content-position="left">èœå•布局</el-divider> + <div class="settings-item"> + <div + class="settings-item-content" + :class="{ + 'settings-item-active': layout === 'default' + }" + @click="layout = 'default'" + > + <div class="settings-item-content-label">默认</div> + <section class="el-container el-circular"> + <aside class="el-aside" style="width: 18px"></aside> + <section class="el-container is-vertical"> + <header class="el-header" style="height: 10px"></header> + <main class="el-main"></main> + </section> + </section> + </div> + <div + class="settings-item-content" + :class="{ + 'settings-item-active': layout === 'top' + }" + @click="layout = 'top'" + > + <div class="settings-item-content-label">顶部</div> + <section class="el-container is-vertical"> + <aside class="el-aside" style="height: 10px; width: 100%"></aside> + <section class="el-container is-vertical"> + <header class="el-header" style="height: 10px;"></header> + <main class="el-main" style="--el-main-padding: none;"></main> + </section> + </section> + </div> + <div + class="settings-item-content" + :class="{ + 'settings-item-active': layout === 'hidden' + }" + @click="layout = 'hidden'" + > + <div class="settings-item-content-label">éšè—</div> + <section class="el-container is-vertical"> + <section class="el-container is-vertical"> + <header class="el-header" style="height: 10px"></header> + <main class="el-main"></main> + </section> + </section> + </div> + </div> + + <el-divider content-position="left">æ ‡ç¾é¡µé£Žæ ¼</el-divider> + <div class="settings-item"> + <div + class="settings-item-content tags-view-type" + :class="{ + 'settings-item-active': tagsViewType === 'default' + }" + @click="tagsViewType = 'default'" + > + <div class="settings-item-content-label">默认</div> + <section class="tags-view default"> + <section class="tags-view-item active"></section> + <section class="tags-view-item"></section> + </section> + <section class="main"> + <span class="main-content-1"></span> + <span class="main-content-2"></span> + <span class="main-content-3"></span> + <span class="main-content-4"></span> + </section> + </div> + <div + class="settings-item-content tags-view-type" + :class="{ + 'settings-item-active': tagsViewType === 'type-1' + }" + @click="tagsViewType = 'type-1'" + > + <div class="settings-item-content-label">é£Žæ ¼1</div> + <section class="tags-view type-1"> + <section class="tags-view-item active"></section> + <section class="tags-view-item"></section> + </section> + <section class="main"> + <span class="main-content-1"></span> + <span class="main-content-2"></span> + <span class="main-content-3"></span> + <span class="main-content-4"></span> + </section> + </div> + </div> - <div class="drawer-item"> - <span>Theme Color</span> - <theme-picker - style="float: right;height: 26px;margin: -3px 8px 0 0;" - @change="themeChange" - /> - </div> + <el-divider content-position="left">预置é…色</el-divider> + <div class="settings-item settings-item-theme"> + <el-tooltip + class="item" + effect="dark" + placement="top" + :content="theme.titleName" + v-for="theme in themes" + :key="theme.name" + > + <div + class="theme-selection" + :class="{ active: theme.active }" + :style="{ 'background-color': theme.styleColor.menuBg }" + @click="setTheme(theme)" + ></div> + </el-tooltip> + </div> - <div class="drawer-item"> - <span>Open Tags-View</span> - <el-switch v-model="tagsView" class="drawer-switch" /> - </div> + <el-divider content-position="left">自定义é…色</el-divider> + <div + class="settings-item" + v-for="(item, index) in enumColor" + :key="index" + > + <div class="settings-item-label"> + {{ item.label }} + </div> + <div class="settings-item-value"> + <el-color-picker + size="small" + v-model="themeStyleColor[item.prop]" + @change="setStyleColor(item.prop)" + /> + </div> + </div> + <div class="copy-theme"> + <!-- <el-alert + title="新增自定义é…色,点击下方å¤åˆ¶é…色,粘贴至‘config/theme.js’新增节点å³å¯" + type="warning" + :closable="false" + /> --> + <el-tooltip class="item" effect="dark" placement="top-start"> + <template #content> + <i class="el-icon-info"></i> + 点击下方å¤åˆ¶é…色,粘贴至 config/theme.js + 新增节点,å³å¯å°†å½“å‰é…è‰²æ·»åŠ åˆ°é¢„ç½®é…色 + </template> + <el-button + icon="el-icon-document-copy" + type="primary" + plain + @click="onCopyTheme" + > + å¤åˆ¶é…色 + </el-button> + </el-tooltip> + </div> - <div class="drawer-item"> - <span>Fixed Header</span> - <el-switch v-model="fixedHeader" class="drawer-switch" /> - </div> + <el-divider content-position="left">å…¶ä»–é…ç½®</el-divider> + <div class="settings-item other" v-if="layout === 'default'"> + <div class="settings-item-label">å¼€å¯ä¾§è¾¹æ Logo</div> + <div class="settings-item-value"> + <el-switch v-model="showLogo" disabled> </el-switch> + </div> + </div> + <div class="settings-item other"> + <div class="settings-item-label">开坿 ‡ç¾é¡µ</div> + <div class="settings-item-value"> + <el-switch v-model="tagsView"> </el-switch> + </div> + </div> + <div class="settings-item other"> + <div class="settings-item-label">å¼€å¯ç™»å½•页é¢åЍæ€èƒŒæ™¯</div> + <div class="settings-item-value"> + <el-switch v-model="enableDynamicBg"> </el-switch> + </div> + </div> - <div class="drawer-item"> - <span>Sidebar Logo</span> - <el-switch v-model="sidebarLogo" class="drawer-switch" /> - </div> - </div> + <div class="clear-storage"> + <el-button + icon="el-icon-delete" + type="danger" + plain + @click="onClearStorage" + > + æ¸…ç©ºç¼“å˜ + </el-button> + </div> + </el-scrollbar> + </el-drawer> </div> </template> <script> -import ThemePicker from "@/components/ThemePicker"; - +import { computed, inject, ref } from 'vue'; +import { useStore } from 'vuex'; +import { ElMessage } from 'element-plus'; +import Storage from '@/utils/Storage'; +import { useRouter } from 'vue-router'; export default { - components: { ThemePicker }, - data() { - return {}; - }, - computed: { - fixedHeader: { + name: 'Settings', + setup() { + const enumColor = [ + { label: '一级èœå•/登录界é¢èƒŒæ™¯è‰²', prop: 'menuBg' }, + { label: '一级èœå•æ‚¬åœæ—¶é«˜äº®è‰²', prop: 'menuHover' }, + { label: '二级èœå•背景色', prop: 'subMenuBg' }, + { label: '二级èœå•æ‚¬åœæ—¶é«˜äº®è‰²', prop: 'subMenuHover' }, + { label: 'èœå•æ–‡å—颜色', prop: 'menuText' }, + { label: 'èœå•激活时文å—颜色', prop: 'menuActiveText' }, + { label: 'èœå•激活时父级文å—颜色', prop: 'subMenuActiveText' }, + { label: 'æ¿€æ´»æ ‡å¿—é¢œè‰²', prop: 'activeColor' } + ]; + const store = useStore(); + const router = useRouter(); + const isOpenedSettings = inject('isOpenedSettings'); + const closeSettings = inject('closeSettings'); + const opened = computed({ get() { - return this.$store.state.settings.fixedHeader; + return isOpenedSettings.value; }, - set(val) { - this.$store.dispatch("settings/changeSetting", { - key: "fixedHeader", - value: val - }); + set() { + closeSettings(); } - }, - tagsView: { + }); + const layout = computed({ get() { - return this.$store.state.settings.tagsView; + if (!store.state.app.navbar.enabled) { + if (!store.state.app.sidebar.enabled) { + return 'hidden'; + } + return 'default'; + } + return 'top'; }, - set(val) { - this.$store.dispatch("settings/changeSetting", { - key: "tagsView", - value: val - }); + set(value) { + store.dispatch('app/setLayout', value); } - }, - sidebarLogo: { + }); + const showLogo = computed({ get() { - return this.$store.state.settings.sidebarLogo; + return store.state.app.sidebar.showLogo; }, - set(val) { - this.$store.dispatch("settings/changeSetting", { - key: "sidebarLogo", - value: val - }); + set(value) { + store.dispatch('app/setShowLogo', value); } - } - }, - methods: { - themeChange(val) { - this.$store.dispatch("settings/changeSetting", { - key: "theme", - value: val + }); + const tagsView = computed({ + get() { + return store.state.app.tagsView.enabled; + }, + set(value) { + store.dispatch('app/setTagsViewEnabled', value); + } + }); + const tagsViewType = computed({ + get() { + return store.state.app.tagsView.type; + }, + set(value) { + store.dispatch('app/setTagsViewType', value); + } + }); + const enableDynamicBg = computed({ + get() { + return store.state.app.enableDynamicBg; + }, + set(value) { + store.dispatch('app/setEnableDynamicBg', value); + } + }); + const themes = computed(() => store.state.app.themes); + const setTheme = theme => { + const styleColor = theme.styleColor; + let varCss = ''; + for (let key of Object.keys(styleColor)) { + varCss += `--color-${key}:${styleColor[key]};`; + } + varCss += `--menu-border-width:${theme.name === 'light' ? '1' : '0'}px;`; + document.documentElement.style.cssText = varCss; + themeStyleColor.value = { ...styleColor }; + store.dispatch('app/setTheme', theme); + }; + const themeStyleColor = ref({ + ...themes.value.find(t => t.active).styleColor + }); + const setStyleColor = key => { + document.documentElement.style.setProperty( + `--color-${key}`, + themeStyleColor.value[key] + ); + setTheme({ + name: 'local', + titleName: '自定义', + active: true, + styleColor: themeStyleColor.value }); - } + }; + const onCopyTheme = () => { + var oInput = document.createElement('textarea'); + oInput.value = JSON.stringify({ + name: `theme${themes.value.length + 1}`, + titleName: '自定义', + styleColor: themeStyleColor.value + }); + document.body.appendChild(oInput); + oInput.select(); + document.execCommand('Copy'); + oInput.remove(); + ElMessage.success({ + message: 'å¤åˆ¶æˆåŠŸ', + type: 'success' + }); + }; + const onClearStorage = () => { + Storage.delLocal(); + Storage.delSession(); + router.go(0); + }; + return { + opened, + themes, + setTheme, + layout, + showLogo, + tagsView, + themeStyleColor, + setStyleColor, + enumColor, + onCopyTheme, + onClearStorage, + enableDynamicBg, + tagsViewType + }; } }; </script> <style lang="scss" scoped> -.drawer-container { - padding: 24px; +.settings-container { font-size: 14px; - line-height: 1.5; - word-wrap: break-word; - - .drawer-title { - margin-bottom: 12px; - color: rgba(0, 0, 0, 0.85); - font-size: 14px; - line-height: 22px; + ::v-deep(.el-drawer__header) { + padding: 0 15px !important; + height: 50px; + display: flex; + align-items: center; + margin-bottom: 0 !important; + border-bottom: 1px solid #e6e6e6; + i { + line-height: 0px; + } + span > i { + margin-right: 10px; + } } + .settings-content { + height: calc(100vh - 50px); + padding: 0 15px; + .settings-item { + display: flex; + align-items: center; + padding: 5px 0; + .settings-item-label { + flex: 1; + color: #666666; + padding-right: 5px; + } + + .settings-item-content { + width: 50%; + position: relative; + margin: 5px; + height: 60px; + border: #40a0ff00 solid 1px; + transition: all 0.3s ease-in-out; + .el-container { + height: 100%; + .el-header { + background-color: #d3dce6; + border-radius: 0; + } + .el-aside { + background-color: #b3c0d1; + padding: 0; + margin-bottom: 0; + border-radius: 0; + } + .el-main { + background-color: #e9eef3; + border-radius: 0; + } + } + &:hover { + cursor: pointer; + } + &:hover, + &.settings-item-active { + border: #409eff solid 1px; + // margin: 4px; + .settings-item-content-label { + background: #409eff42; + } + } + .settings-item-content-label { + transition: all 0.3s ease-in-out; + position: absolute; + right: 0px; + bottom: 0px; + background: #ffffff7d; + padding: 5px; + border-top-left-radius: 5px; + } + &.tags-view-type { + height: 80px; + background-color: #e9eef3; + .settings-item-content-label { + padding: 3px; + } + .tags-view { + display: flex; + background-color: #d3dce6; + height: 13px; + .tags-view-item { + background-color: #aeb9c8; + width: 35px; + height: 100%; + margin-right: 2px; + &.active::after { + background-color: #747b86; + position: absolute; + left: 4px; + bottom: 66px; + content: ''; + height: 3px; + width: 27px; + } + } + &.type-1 { + .tags-view-item { + height: 9px; + margin: 2px; + &.active { + background-color: #7f8287; + &::after { + background-color: #ffffff00; + } + } + } + } + } + .main { + height: 65px; + width: 100%; + padding: 10px; + span { + height: 5px; + display: block; + margin: 5px 5px 5px 0; + } + .main-content-1 { + background-color: #d3dce6; + width: 100%; + } + .main-content-2 { + background-color: #d3dce6; + width: 80%; + } + .main-content-3 { + background-color: #d3dce6; + width: 70%; + } + .main-content-4 { + background-color: #d3dce6; + width: 25%; + } + } + } + } - .drawer-item { - color: rgba(0, 0, 0, 0.65); - font-size: 14px; - padding: 12px 0; + &.other { + padding: 10px; + } + } } + .settings-item-theme { + justify-content: center; + margin: 2px 0; + + .theme-selection { + display: flex; + justify-content: center; + align-items: center; + width: 20px; + height: 20px; + border-radius: 10px; + margin-right: 10px; + border: 3px solid #bbb; - .drawer-switch { - float: right; + &:last-of-type { + margin-right: 0; + } + &.active { + position: relative; + &::after { + content: ''; + position: absolute; + display: block; + bottom: -10px; + width: 12px; + height: 3px; + background-color: rgba(80, 138, 255, 1); + } + } + &:hover { + cursor: pointer; + } + } + } + .copy-theme, + .clear-storage { + margin-top: 10px; + margin-bottom: 15px; + button { + width: 100%; + margin-top: 10px; + } } } </style> diff --git a/WebSite/src/layout/components/Sidebar/FixiOSBug.js b/WebSite/src/layout/components/Sidebar/FixiOSBug.js deleted file mode 100644 index c9c5d2a5..00000000 --- a/WebSite/src/layout/components/Sidebar/FixiOSBug.js +++ /dev/null @@ -1,26 +0,0 @@ -export default { - computed: { - device() { - return this.$store.state.app.device; - } - }, - mounted() { - // In order to fix the click on menu on the ios device will trigger the mouseleave bug - // https://github.com/PanJiaChen/vue-element-admin/issues/1135 - this.fixBugIniOS(); - }, - methods: { - fixBugIniOS() { - const $subMenu = this.$refs.subMenu; - if ($subMenu) { - const handleMouseleave = $subMenu.handleMouseleave; - $subMenu.handleMouseleave = e => { - if (this.device === "mobile") { - return; - } - handleMouseleave(e); - }; - } - } - } -}; diff --git a/WebSite/src/layout/components/Sidebar/Item.vue b/WebSite/src/layout/components/Sidebar/Item.vue deleted file mode 100644 index ecd826be..00000000 --- a/WebSite/src/layout/components/Sidebar/Item.vue +++ /dev/null @@ -1,29 +0,0 @@ -<script> -export default { - name: "MenuItem", - functional: true, - props: { - icon: { - type: String, - default: "" - }, - title: { - type: String, - default: "" - } - }, - render(h, context) { - const { icon, title } = context.props; - const vnodes = []; - - if (icon) { - vnodes.push(<svg-icon icon-class={icon} />); - } - - if (title) { - vnodes.push(<span slot="title">{title}</span>); - } - return vnodes; - } -}; -</script> diff --git a/WebSite/src/layout/components/Sidebar/Link.vue b/WebSite/src/layout/components/Sidebar/Link.vue deleted file mode 100644 index 3be5ba60..00000000 --- a/WebSite/src/layout/components/Sidebar/Link.vue +++ /dev/null @@ -1,35 +0,0 @@ -<template> - <!-- eslint-disable vue/require-component-is --> - <component v-bind="linkProps(to)"> - <slot /> - </component> -</template> - -<script> -import { isExternal } from "@/utils/validate"; - -export default { - props: { - to: { - type: String, - required: true - } - }, - methods: { - linkProps(url) { - if (isExternal(url)) { - return { - is: "a", - href: url, - target: "_blank", - rel: "noopener" - }; - } - return { - is: "router-link", - to: url - }; - } - } -}; -</script> diff --git a/WebSite/src/layout/components/Sidebar/SidebarItem.vue b/WebSite/src/layout/components/Sidebar/SidebarItem.vue deleted file mode 100644 index c6293c85..00000000 --- a/WebSite/src/layout/components/Sidebar/SidebarItem.vue +++ /dev/null @@ -1,69 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-15 11:18:22 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:01:05 ---> -<template> - <div> - <!-- å¯å±•å¼€ --> - <el-submenu - v-if="item.children && item.children.length > 0" - ref="subMenu" - :index="item.id" - popper-append-to-body - > - <template slot="title"> - <item :icon="item.icon" :title="item.name" /> - </template> - <sidebar-item - v-for="child in item.children" - :key="child.id" - :item="child" - class="nest-menu" - /> - </el-submenu> - - <template v-else> - <app-link :to="`${path}${params}`"> - <el-menu-item :index="path"> - <item :icon="item.icon" :title="item.name" /> - </el-menu-item> - </app-link> - </template> - </div> -</template> - -<script> -// import path from "path"; -import { isExternal } from "@/utils/validate"; -import Item from "./Item"; -import AppLink from "./Link"; -import FixiOSBug from "./FixiOSBug"; - -export default { - name: "SidebarItem", - components: { Item, AppLink }, - mixins: [FixiOSBug], - props: { - // route object - item: { - type: Object, - required: true - } - }, - computed: { - path() { - return `/i/${this.item.routingUrl}`; - }, - params() { - return this.item.redirectUrl ? `?url=${this.item.redirectUrl}` : ""; - } - }, - data() { - return {}; - }, - methods: {} -}; -</script> diff --git a/WebSite/src/layout/components/Sidebar/components/AppLink.vue b/WebSite/src/layout/components/Sidebar/components/AppLink.vue new file mode 100644 index 00000000..d2e2e5b2 --- /dev/null +++ b/WebSite/src/layout/components/Sidebar/components/AppLink.vue @@ -0,0 +1,52 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 13:37:40 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-08-31 14:24:34 +--> +<template> + <component :is="type" v-bind="linkProps(to)"> + <slot /> + </component> +</template> + +<script> +// import { isExternal } from '@/utils/validate'; + +export default { + props: { + to: { + type: Object, + default() { + return {}; + } + } + }, + computed: { + isExternal() { + return !!this.to.externalUrl; + }, + type() { + if (this.isExternal) { + return 'a'; + } + return 'router-link'; + } + }, + methods: { + linkProps(to) { + if (this.isExternal) { + return { + href: this.to.externalUrl, + target: '_blank', + rel: 'noopener' + }; + } + return { + to: to + }; + } + } +}; +</script> diff --git a/WebSite/src/layout/components/Sidebar/Logo.vue b/WebSite/src/layout/components/Sidebar/components/Logo.vue similarity index 58% rename from WebSite/src/layout/components/Sidebar/Logo.vue rename to WebSite/src/layout/components/Sidebar/components/Logo.vue index 0bb917eb..b35e6458 100644 --- a/WebSite/src/layout/components/Sidebar/Logo.vue +++ b/WebSite/src/layout/components/Sidebar/components/Logo.vue @@ -1,9 +1,9 @@ <!-- * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-15 11:18:22 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-15 14:11:55 + * @Autor: dongjunhua + * @Date: 2020-12-21 13:22:08 + * @LastEditors: Qun + * @LastEditTime: 2021-08-30 14:59:07 --> <template> <div class="sidebar-logo-container" :class="{ collapse: collapse }"> @@ -12,13 +12,15 @@ v-if="collapse" key="collapse" class="sidebar-logo-link" - to="/" + to="/i" > - <img v-if="logo" :src="logo" class="sidebar-logo" /> + <!-- <img v-if="logo" :src="logo" class="sidebar-logo" /> --> + <svg-icon v-if="logo" icon-class="noctua_s" className="sidebar-logo" /> <h1 v-else class="sidebar-title">{{ title }}</h1> </router-link> - <router-link v-else key="expand" class="sidebar-logo-link" to="/"> - <img v-if="logo" :src="logo" class="sidebar-logo" /> + <router-link v-else key="expand" class="sidebar-logo-link" to="/i"> + <!-- <img v-if="logo" :src="logo" class="sidebar-logo" /> --> + <svg-icon v-if="logo" icon-class="noctua_s" className="sidebar-logo" /> <h1 class="sidebar-title">{{ title }}</h1> </router-link> </transition> @@ -26,25 +28,39 @@ </template> <script> +import { reactive, toRefs } from 'vue'; +import { useStore } from 'vuex'; export default { - name: "SidebarLogo", + name: 'SidebarLogo', props: { collapse: { type: Boolean, required: true } }, - data() { - return { - title: "Vue Element Admin", + setup() { + const store = useStore(); + const data = reactive({ + title: store.state.app.applicationName, logo: - "https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png" + 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png' + }); + + return { + ...toRefs(data) }; } }; </script> <style lang="scss" scoped> +.logo-icon { + position: relative; + transform: rotate(180deg); + // width: 28px !important; + // height: 28px !important; +} + .sidebarLogoFade-enter-active { transition: opacity 1.5s; } @@ -59,7 +75,6 @@ export default { width: 100%; height: 50px; line-height: 50px; - background: #2b2f3a; text-align: center; overflow: hidden; @@ -68,15 +83,16 @@ export default { width: 100%; & .sidebar-logo { - width: 32px; - height: 32px; + transform: rotate(180deg); + width: 24px; + height: 24px; vertical-align: middle; - margin-right: 12px; + margin-right: 0 !important; } & .sidebar-title { display: inline-block; - margin: 0; + margin: 0 0 0 16px; color: #fff; font-weight: 600; line-height: 50px; diff --git a/WebSite/src/layout/components/Sidebar/components/SidebarItem.vue b/WebSite/src/layout/components/Sidebar/components/SidebarItem.vue new file mode 100644 index 00000000..f5187fe5 --- /dev/null +++ b/WebSite/src/layout/components/Sidebar/components/SidebarItem.vue @@ -0,0 +1,81 @@ +<!-- + * @Description: + * @Autor: dong jun hua + * @Date: 2020-06-15 11:18:22 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-09-03 10:59:32 +--> +<template> + <div> + <!-- å¯å±•å¼€ --> + <el-sub-menu + v-if="item.children && item.children.length > 0" + ref="subMenu" + :index="item.id" + popper-append-to-body + > + <template v-slot:title> + <unit :icon="item.icon" :title="item.name" /> + </template> + <sidebar-item + v-for="child in item.children" + :key="child.id" + :item="child" + class="nest-menu" + /> + </el-sub-menu> + + <template v-else> + <app-link :to="to"> + <el-menu-item :index="path"> + <unit :icon="item.icon" :title="item.name" /> + </el-menu-item> + </app-link> + </template> + </div> +</template> + +<script> +import Unit from './Unit'; +import AppLink from './AppLink'; +import { computed } from 'vue'; +export default { + name: 'SidebarItem', + components: { Unit, AppLink }, + props: { + // route object + item: { + type: Object, + required: true + } + }, + setup(props) { + const path = computed(() => { + return `/i/${props.item.routingUrl}`; + }); + const params = computed(() => { + return props.item.redirectUrl ? `?url=${props.item.redirectUrl}` : ''; + }); + const to = computed(() => { + const to = { + path: `/i/${props.item.routingUrl}` + }; + if (props.item.redirectUrl) { + to.query = { + url: props.item.redirectUrl + }; + } + if (props.item.isNewWindow === 'YES') { + to.externalUrl = props.item.redirectUrl; + } + return to; + }); + + return { + path, + params, + to + }; + } +}; +</script> diff --git a/WebSite/src/layout/components/Sidebar/components/Unit.vue b/WebSite/src/layout/components/Sidebar/components/Unit.vue new file mode 100644 index 00000000..4beb08d0 --- /dev/null +++ b/WebSite/src/layout/components/Sidebar/components/Unit.vue @@ -0,0 +1,48 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 13:34:03 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-24 16:34:22 +--> +<script> +export default { + name: 'Unit', + functional: true, + props: { + icon: { + type: String, + default: '' + }, + title: { + type: String, + default: '' + } + }, + render() { + const vnodes = []; + + if (this.icon) { + // vnodes.push(<svg-icon icon-class={this.icon} />); + vnodes.push( + <i + class={this.icon + ' svg-icon'} + style="color: inherit; margin-right: 16px; font-size: inherit" + /> + ); + } + + if (this.title) { + vnodes.push(<span slot="title">{this.title}</span>); + } + return vnodes; + } +}; +</script> + +<style lang="scss" scoped> +.menu-icon { + color: inherit; + margin-right: 16px; +} +</style> diff --git a/WebSite/src/layout/components/Sidebar/index.vue b/WebSite/src/layout/components/Sidebar/index.vue index 959591e5..a059ac5e 100644 --- a/WebSite/src/layout/components/Sidebar/index.vue +++ b/WebSite/src/layout/components/Sidebar/index.vue @@ -1,63 +1,64 @@ <!-- * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-15 11:18:22 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:31:21 + * @Autor: dongjunhua + * @Date: 2020-12-21 09:02:09 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-14 14:35:39 --> <template> - <div :class="{ 'has-logo': showLogo }"> - <logo v-if="showLogo" :collapse="isCollapse" /> + <div :class="{ 'has-logo': sidebar.showLogo }"> + <logo v-if="sidebar.showLogo" :collapse="isCollapse" /> <el-scrollbar wrap-class="scrollbar-wrapper"> <el-menu :default-active="activeMenu" :collapse="isCollapse" - :background-color="variables.menuBg" - :text-color="variables.menuText" :unique-opened="false" - :active-text-color="variables.menuActiveText" :collapse-transition="false" mode="vertical" > - <sidebar-item v-for="root in menuTree" :key="root.id" :item="root" /> + <sidebar-item v-for="root in menuList" :key="root.id" :item="root" /> </el-menu> </el-scrollbar> </div> </template> <script> -import { mapGetters } from "vuex"; -import Logo from "./Logo"; -import SidebarItem from "./SidebarItem"; -import variables from "@/styles/variables.scss"; +import { useStore } from 'vuex'; +import { useRoute } from 'vue-router'; +import Logo from './components/Logo'; +import SidebarItem from './components/SidebarItem'; +import variablesStyle from '@/styles/variables.scss'; +import { computed } from 'vue'; +import { getOriginalPath } from '@/router'; export default { - name: "MenuTree", + name: 'Sidebar', components: { SidebarItem, Logo }, - computed: { - ...mapGetters(["menuTree", "sidebar"]), - activeMenu() { - const route = this.$route; - const { meta, path } = route; - // if set path, the sidebar will highlight the path you set - if (meta.activeMenu) { - return meta.activeMenu; - } - return path; - }, - showLogo() { - return this.$store.state.settings.sidebarLogo; - }, - variables() { - return variables; - }, - isCollapse() { - return !this.sidebar.opened; - } - }, - data() { - return {}; - }, - mounted() {}, - methods: {} + setup() { + const store = useStore(); + const route = useRoute(); + + const variables = computed(() => variablesStyle); + const menuList = computed(() => store.state.subject.user.menuList || []); + const sidebar = computed(() => store.state.app.sidebar); + const isCollapse = computed(() => !sidebar.value.opened); + const activeMenu = computed(() => { + const path = getOriginalPath(route.path); + let menu; + store.dispatch('subject/eachMenu', m => { + if (m.routingUrl && path.indexOf(m.routingUrl) === 0) { + menu = m; + } + }); + return menu ? `/i/${menu.routingUrl}` : ''; + }); + + return { + activeMenu, + variables, + sidebar, + menuList, + isCollapse + }; + } }; </script> diff --git a/WebSite/src/layout/components/TagsView/index.vue b/WebSite/src/layout/components/TagsView/index.vue index 2b7c05e5..dea52dc1 100644 --- a/WebSite/src/layout/components/TagsView/index.vue +++ b/WebSite/src/layout/components/TagsView/index.vue @@ -1,281 +1,309 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 09:02:14 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-14 15:07:11 +--> <template> - <div id="tags-view-container" class="tags-view-container"> - <scroll-pane ref="scrollPane" class="tags-view-wrapper"> - <router-link - v-for="tag in visitedViews" - ref="tag" - :key="tag.path" - :class="isActive(tag) ? 'active' : ''" - :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" - tag="span" - class="tags-view-item" - @click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''" - @contextmenu.prevent.native="openMenu(tag, $event)" - > - {{ tag.title }} - <span - v-if="!isAffix(tag)" - class="el-icon-close" - @click.prevent.stop="closeSelectedTag(tag)" - /> - </router-link> - </scroll-pane> - <ul - v-show="visible" - :style="{ left: left + 'px', top: top + 'px' }" - class="contextmenu" - > - <li @click="refreshSelectedTag(selectedTag)">Refresh</li> - <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"> - Close - </li> - <li @click="closeOthersTags">Close Others</li> - <li @click="closeAllTags(selectedTag)">Close All</li> - </ul> - </div> + <transition name="fade-transform-top"> + <div class="tags-view-container" v-if="cachedViews.length > 1"> + <scroll-pane> + <draggable + v-model="cachedViews" + class="router-link-container" + animation="300" + item-key="id" + :move="onMove" + handle=".draggable" + filter=".not-draggable" + :disabled="device === 'mobile'" + > + <template #item="{ element }"> + <router-link + :class="{ + 'tags-view-item': true, + draggable: element.id !== '0', + 'not-draggable': element.id === '0', + active: element.active, + [tagsViewType]: true + }" + :to="path(element)" + > + <i v-if="element.icon" :class="element.icon"></i> + <span v-if="element.name" class="context">{{ + element.name + }}</span> + <div + class="close-icon-container" + v-if="element.allowClose" + @click.prevent="closeTag(element)" + > + <i class="fas fa-times"></i> + </div> + </router-link> + </template> + </draggable> + </scroll-pane> + </div> + </transition> </template> - <script> -import ScrollPane from "./ScrollPane"; -import path from "path"; - +import { useStore } from 'vuex'; +import { useRoute, useRouter } from 'vue-router'; +import { computed, watch } from 'vue'; +import ScrollPane from '../ScrollPane'; +import TagView from '@/core/model/TagView'; +import draggable from 'vuedraggable'; +import { getOriginalPath } from '@/router'; export default { - components: { ScrollPane }, - data() { - return { - visible: false, - top: 0, - left: 0, - selectedTag: {}, - affixTags: [] + name: 'TagsView', + components: { ScrollPane, draggable }, + setup() { + const store = useStore(); + const route = useRoute(); + const router = useRouter(); + const cachedViews = computed({ + get() { + return store.state.app.tagsView.cachedViews; + }, + set(value) { + store.dispatch('app/setCachedViews', value); + } + }); + + const path = view => { + const to = { + path: view.path ? `/i/${view.path}` : '/i' + }; + view.params && (to.query = view.params); + return to; }; - }, - computed: { - visitedViews() { - return this.$store.state.tagsView.visitedViews; - }, - routes() { - return this.$store.state.permission.routes; - } - }, - watch: { - $route() { - this.addTags(); - this.moveToCurrentTag(); - }, - visible(value) { - if (value) { - document.body.addEventListener("click", this.closeMenu); + const getTag = () => { + store.dispatch( + 'app/addTagView', + new TagView('0', '', '', 'fas fa-home', null, true, false) + ); + if (route.path === '/i/workplace') { + store.dispatch( + 'app/addTagView', + new TagView( + 'workplace', + '用户ä¸å¿ƒ', + 'workplace', + 'fas fa-user-circle', + null, + true, + true + ) + ); } else { - document.body.removeEventListener("click", this.closeMenu); - } - } - }, - mounted() { - this.initTags(); - this.addTags(); - }, - methods: { - isActive(route) { - return route.path === this.$route.path; - }, - isAffix(tag) { - return tag.meta && tag.meta.affix; - }, - filterAffixTags(routes, basePath = "/") { - let tags = []; - routes.forEach(route => { - if (route.meta && route.meta.affix) { - const tagPath = path.resolve(basePath, route.path); - tags.push({ - fullPath: tagPath, - path: tagPath, - name: route.name, - meta: { ...route.meta } - }); - } - if (route.children) { - const tempTags = this.filterAffixTags(route.children, route.path); - if (tempTags.length >= 1) { - tags = [...tags, ...tempTags]; - } - } - }); - return tags; - }, - initTags() { - const affixTags = (this.affixTags = this.filterAffixTags(this.routes)); - for (const tag of affixTags) { - // Must have tag name - if (tag.name) { - this.$store.dispatch("tagsView/addVisitedView", tag); - } - } - }, - addTags() { - const { name } = this.$route; - if (name) { - this.$store.dispatch("tagsView/addView", this.$route); - } - return false; - }, - moveToCurrentTag() { - const tags = this.$refs.tag; - this.$nextTick(() => { - for (const tag of tags) { - if (tag.to.path === this.$route.path) { - this.$refs.scrollPane.moveToTarget(tag); - // when query is different then update - if (tag.to.fullPath !== this.$route.fullPath) { - this.$store.dispatch("tagsView/updateVisitedView", this.$route); - } - break; + const path = getOriginalPath(route.path); + store.dispatch('subject/eachMenu', m => { + if (m.routingUrl && path.indexOf(m.routingUrl) === 0) { + const params = {}; + m.redirectUrl && (params.url = m.redirectUrl); + store.dispatch( + 'app/addTagView', + new TagView(m.id, m.name, path, m.icon, params) + ); } - } - }); - }, - refreshSelectedTag(view) { - this.$store.dispatch("tagsView/delCachedView", view).then(() => { - const { fullPath } = view; - this.$nextTick(() => { - this.$router.replace({ - path: "/redirect" + fullPath - }); }); - }); - }, - closeSelectedTag(view) { - this.$store - .dispatch("tagsView/delView", view) - .then(({ visitedViews }) => { - if (this.isActive(view)) { - this.toLastView(visitedViews, view); - } - }); - }, - closeOthersTags() { - this.$router.push(this.selectedTag); - this.$store - .dispatch("tagsView/delOthersViews", this.selectedTag) - .then(() => { - this.moveToCurrentTag(); - }); - }, - closeAllTags(view) { - this.$store.dispatch("tagsView/delAllViews").then(({ visitedViews }) => { - if (this.affixTags.some(tag => tag.path === view.path)) { - return; - } - this.toLastView(visitedViews, view); - }); - }, - toLastView(visitedViews, view) { - const latestView = visitedViews.slice(-1)[0]; - if (latestView) { - this.$router.push(latestView.fullPath); - } else { - // now the default is to redirect to the home page if there is no tags-view, - // you can adjust it according to your needs. - if (view.name === "Dashboard") { - // to reload home page - this.$router.replace({ path: "/redirect" + view.fullPath }); - } else { - this.$router.push("/"); - } } - }, - openMenu(tag, e) { - const menuMinWidth = 105; - const offsetLeft = this.$el.getBoundingClientRect().left; // container margin left - const offsetWidth = this.$el.offsetWidth; // container width - const maxLeft = offsetWidth - menuMinWidth; // left boundary - const left = e.clientX - offsetLeft + 15; // 15: margin right - - if (left > maxLeft) { - this.left = maxLeft; + }; + const closeTag = view => { + // 关闿 ‡ç¾æ—¶å°†å¯¹åº”路由从keep-aliveç»„ä»¶ä¸æŽ’é™¤ + store.dispatch('app/setDestoryRoute', route.name); + store.dispatch('app/delTagView', view); + const activeView = cachedViews.value.find(v => v.active); + if (activeView) { + router.push(path(activeView)); } else { - this.left = left; + router.push('/'); } - - this.top = e.clientY; - this.visible = true; - this.selectedTag = tag; - }, - closeMenu() { - this.visible = false; - } + }; + watch( + () => route.path, + () => { + getTag(); + }, + { immediate: true } + ); + const onMove = e => e.relatedContext.element.id !== '0'; + const tagsViewType = computed(() => store.state.app.tagsView.type); + const device = computed(() => store.state.app.device); + return { + path, + cachedViews, + closeTag, + onMove, + tagsViewType, + device + }; } }; </script> - <style lang="scss" scoped> .tags-view-container { height: 34px; width: 100%; - background: #fff; + position: relative; + z-index: 10; + background: rgb(245, 245, 245); border-bottom: 1px solid #d8dce5; - // box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 3px 0 rgba(0, 0, 0, 0.04); - .tags-view-wrapper { + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + .router-link-container { + display: flex; + .no-transition { + transition: none !important; + } .tags-view-item { - display: inline-block; + // transition: all 0.18s; + display: flex; position: relative; cursor: pointer; - height: 26px; + height: 33px; line-height: 26px; - border: 1px solid #d8dce5; - color: #495060; - background: #fff; - padding: 0 8px; + justify-content: center; + align-items: center; + color: #777; + padding: 1px 2px 0 8px; font-size: 12px; - margin-left: 5px; - margin-top: 4px; + margin-right: 10px; + font-weight: bold; + background-color: #f5f5f5; &:first-of-type { - margin-left: 15px; + margin-left: 5px; + padding-left: 15px; + padding-right: 15px; + &::before { + position: absolute; + left: -5px; + content: ''; + width: 0px; + height: 16px; + border-right: none; + } } &:last-of-type { - margin-right: 15px; + margin-right: 5px; + } + &::after { + transition: all 0.18s; + position: absolute; + left: 0; + bottom: 0; + content: ''; + height: 0; + width: 100%; + } + &::before { + position: absolute; + left: -6px; + content: ''; + width: 1px; + height: 16px; + border-right: 1px solid #ccc; + } + &:hover { + color: #495060; } &.active { - background-color: #42b983; - color: #fff; - border-color: #42b983; + color: #495060; + &::after { + position: absolute; + left: 0; + bottom: 0; + content: ''; + height: 3px; + width: 100%; + background-color: rgb(80, 138, 255); + } + } + // é£Žæ ¼1 + &.type-1 { + height: 25px; + line-height: 25px; + padding: 1px 8px 0px 10px; + margin: 4px 0 4px 5px; + border-radius: 2px; + justify-content: center; + align-items: center; + color: #777; + background-color: #f5f5f5; + border: 1px solid #cbcbcb; + &:first-of-type { + margin-left: 10px; + padding-right: 10px; + &::before { + content: none; + } + } + &:last-of-type { + margin-right: 5px; + } + &::after { + content: none; + } &::before { - content: ""; - background: #fff; - display: inline-block; - width: 8px; - height: 8px; - border-radius: 50%; - position: relative; - margin-right: 2px; + content: none; + } + &:hover { + color: var(--color-activeColor); + border: 1px solid var(--color-activeColor); + } + &.active { + color: rgb(255, 255, 255); + background-color: var(--color-activeColor); + border: 1px solid var(--color-activeColor); + &::after { + content: none; + } } } } - } - .contextmenu { - margin: 0; - background: #fff; - z-index: 3000; - position: absolute; - list-style-type: none; - padding: 5px 0; - border-radius: 4px; - font-size: 12px; - font-weight: 400; - color: #333; - box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); - li { - margin: 0; - padding: 7px 16px; - cursor: pointer; + .context { + display: inline-block; + padding: 0 10px; + } + .close-icon-container { + position: relative; + display: flex; + justify-content: center; + align-items: center; + width: 18px; + height: 18px; + border-radius: 9px; + transition: all 0.3s; &:hover { - background: #eee; + color: rgb(94, 94, 94); + background-color: #ccc; + } + } + .contextmenu { + margin: 0; + background: #fff; + z-index: 3000; + position: absolute; + list-style-type: none; + padding: 5px 0; + border-radius: 4px; + font-size: 12px; + font-weight: 400; + color: #333; + box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); + li { + margin: 0; + padding: 7px 16px; + cursor: pointer; + &:hover { + background: #eee; + } } } } } </style> - <style lang="scss"> //reset element css of el-icon-close .tags-view-wrapper { @@ -299,5 +327,8 @@ export default { } } } + .not-draggable { + cursor: no-drop; + } } </style> diff --git a/WebSite/src/layout/components/index.js b/WebSite/src/layout/components/index.js index 750be802..c0f3911f 100644 --- a/WebSite/src/layout/components/index.js +++ b/WebSite/src/layout/components/index.js @@ -1,13 +1,13 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:04 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-16 10:35:57 + * @Autor: dongjunhua + * @Date: 2020-12-21 09:01:40 + * @LastEditors: Qun + * @LastEditTime: 2021-08-18 09:24:39 */ - -export { default as AppMain } from "./AppMain"; -export { default as Navbar } from "./Navbar"; -export { default as Settings } from "./Settings"; -export { default as Sidebar } from "./Sidebar"; -export { default as TagsView } from "./TagsView"; +export { default as AppMainSection } from './AppMain/index.vue'; +export { default as NavbarSection } from './Navbar/index.vue'; +export { default as NavigationSection } from './Navigation/index.vue'; +export { default as SidebarSection } from './Sidebar/index.vue'; +export { default as TagsViewSection } from './TagsView/index.vue'; +export { default as SettingsSection } from './Settings/index.vue'; diff --git a/WebSite/src/layout/index.vue b/WebSite/src/layout/index.vue index a65534b1..7d577053 100644 --- a/WebSite/src/layout/index.vue +++ b/WebSite/src/layout/index.vue @@ -1,69 +1,111 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 08:50:10 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-19 10:35:50 +--> <template> - <div :class="classObj" class="app-wrapper"> + <div + :class="{ + hideSidebar: !sidebar.opened || !sidebar.enabled, + openSidebar: sidebar.opened && sidebar.enabled, + withoutAnimation: sidebar.withoutAnimation, + mobile: device === 'mobile' || !sidebar.enabled + }" + class="app-wrapper" + > <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> - <sidebar class="sidebar-container" /> - <div :class="{ hasTagsView: needTagsView }" class="main-container"> - <div :class="{ 'fixed-header': fixedHeader }"> - <navbar /> - <tags-view v-if="needTagsView" /> - </div> - <app-main /> - <right-panel v-if="showSettings"> - <settings /> - </right-panel> + <sidebar-section v-if="sidebar.enabled" class="sidebar-container" /> + <div class="main-container"> + <navbar-section v-if="navbar.enabled" /> + <navigation-section v-if="navigation.enabled" /> + <tags-view-section v-if="tagsView.enabled" /> + <app-main-section /> </div> + <settings-section /> </div> </template> <script> -import RightPanel from "@/components/RightPanel"; -import { AppMain, Navbar, Settings, TagsView, Sidebar } from "./components"; -import ResizeMixin from "./mixin/ResizeHandler"; -import { mapState } from "vuex"; - +import { + AppMainSection, + NavbarSection, + NavigationSection, + SidebarSection, + TagsViewSection, + SettingsSection +} from './components'; +import { useStore } from 'vuex'; +import { computed, ref, provide, onMounted } from 'vue'; +import ResizeMixin from './mixin/ResizeHandler'; +import { start } from 'qiankun'; export default { - name: "Layout", + name: 'Layout', components: { - AppMain, - Navbar, - RightPanel, - Settings, - TagsView, - Sidebar + AppMainSection, + NavigationSection, + NavbarSection, + SidebarSection, + TagsViewSection, + SettingsSection }, mixins: [ResizeMixin], - computed: { - ...mapState({ - sidebar: state => state.app.sidebar, - device: state => state.app.device, - showSettings: state => state.settings.showSettings, - needTagsView: state => state.settings.tagsView, - fixedHeader: state => state.settings.fixedHeader - }), - classObj() { - return { - hideSidebar: !this.sidebar.opened, - openSidebar: this.sidebar.opened, - withoutAnimation: this.sidebar.withoutAnimation, - mobile: this.device === "mobile" - }; - } - }, - methods: { - handleClickOutside() { - this.$store.dispatch("app/closeSideBar", { withoutAnimation: false }); - } + setup() { + const store = useStore(); + + // !! the name of variable in steup can not be same with the name in components + // even they are diff in case on initial (case-insensitive) + const device = computed(() => store.state.app.device); + const navbar = computed(() => store.state.app.navbar); + const navigation = computed(() => store.state.app.navigation); + const sidebar = computed(() => store.state.app.sidebar); + const tagsView = computed(() => store.state.app.tagsView); + const cachedViews = computed(() => { + return store.state.app.tagsView.cachedViews; + }); + + const handleClickOutside = () => { + store.dispatch('app/closeSideBar', { withoutAnimation: false }); + }; + + onMounted(() => { + if (!window.qiankunStarted) { + window.qiankunStarted = true; + start({ sandbox: { experimentalStyleIsolation: true } }); + console.log('qiankun started'); + } + }); + + const isOpenedSettings = ref(false); + provide('isOpenedSettings', isOpenedSettings); + provide('openSettings', () => { + isOpenedSettings.value = true; + }); + provide('closeSettings', () => { + isOpenedSettings.value = false; + }); + + return { + device, + sidebar, + navigation, + navbar, + tagsView, + cachedViews, + handleClickOutside + }; } }; </script> <style lang="scss" scoped> -@import "~@/styles/mixin.scss"; -@import "~@/styles/variables.scss"; +@import '~@/styles/mixin.scss'; +@import '~@/styles/variables.scss'; .app-wrapper { @include clearfix; diff --git a/WebSite/src/layout/mixin/ResizeHandler.js b/WebSite/src/layout/mixin/ResizeHandler.js index 48f79594..cdd08588 100644 --- a/WebSite/src/layout/mixin/ResizeHandler.js +++ b/WebSite/src/layout/mixin/ResizeHandler.js @@ -1,27 +1,34 @@ -import store from "@/store"; +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-02-03 09:24:05 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-03 09:29:57 + */ +import store from '@/store'; const { body } = document; const WIDTH = 992; // refer to Bootstrap's responsive design export default { watch: { - $route(route) { - if (this.device === "mobile" && this.sidebar.opened) { - store.dispatch("app/closeSideBar", { withoutAnimation: false }); + $route() { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('app/closeSideBar', { withoutAnimation: false }); } } }, beforeMount() { - window.addEventListener("resize", this.$_resizeHandler); + window.addEventListener('resize', this.$_resizeHandler); }, - beforeDestroy() { - window.removeEventListener("resize", this.$_resizeHandler); + beforeUnmount() { + window.removeEventListener('resize', this.$_resizeHandler); }, mounted() { const isMobile = this.$_isMobile(); if (isMobile) { - store.dispatch("app/toggleDevice", "mobile"); - store.dispatch("app/closeSideBar", { withoutAnimation: true }); + store.dispatch('app/setDevice', 'mobile'); + store.dispatch('app/closeSideBar', { withoutAnimation: true }); } }, methods: { @@ -34,10 +41,10 @@ export default { $_resizeHandler() { if (!document.hidden) { const isMobile = this.$_isMobile(); - store.dispatch("app/toggleDevice", isMobile ? "mobile" : "desktop"); + store.dispatch('app/setDevice', isMobile ? 'mobile' : 'desktop'); if (isMobile) { - store.dispatch("app/closeSideBar", { withoutAnimation: true }); + store.dispatch('app/closeSideBar', { withoutAnimation: true }); } } } diff --git a/WebSite/src/main.js b/WebSite/src/main.js index 4cf333af..82f15597 100644 --- a/WebSite/src/main.js +++ b/WebSite/src/main.js @@ -1,58 +1,86 @@ /* - * @Descripttion: - * @Author: dong - * @Date: 2020-04-21 18:54:20 + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 08:39:38 + * @LastEditTime: 2021-10-19 10:35:41 */ -import Vue from "vue"; -import Cookies from "js-cookie"; -import "normalize.css/normalize.css"; // a modern alternative to CSS resets -import Element from "element-ui"; -import "./styles/element-variables.scss"; -import "@/styles/index.scss"; // global css -import App from "./App"; -import store from "./store"; -import router from "./router"; -import "./icons"; // icon -import "./permission"; // permission control -import "./utils/error-log"; // error log -import * as filters from "./filters"; // global filters -import VueJsonp from "vue-jsonp"; // jsonp -import service from "./service"; -import LayoutCard from "./components/LayoutCard"; -import JumpDialog from "./components/JumpDialog"; -import JumpDialogItem from "./components/JumpDialog/components/JumpDialogItem"; - -// æ‰“åŒ…åŽæä¾›mockæ•°æ®ï¼Œå¦‚使用真实api,请注释 -if (process.env.NODE_ENV === "test") { - const { mockXHR } = require("../mock"); - mockXHR(); + +/**Vue */ +import { createApp } from 'vue'; +import App from './App.vue'; +import router from './router'; +import store from './store'; +import defaultConfig from './config'; +/**style */ +import 'normalize.css/normalize.css'; // a modern alternative to CSS resets +import '@/styles/index.scss'; // global css +/**ElementPlus */ +import ElementPlus from 'element-plus'; +import 'element-plus/dist/index.css'; +import 'dayjs/locale/zh-cn'; // for element zh-cn +import locale from 'element-plus/lib/locale/lang/zh-cn'; +/**Vant */ +import Vant from 'vant'; +import 'vant/lib/index.css'; +/**icons */ +import './icons'; // icon +import SvgIcon from './components/SvgIcon/index.vue'; +import '@fortawesome/fontawesome-free/css/all.css'; +/**others */ +import VueParticles from 'vue-particles'; +/**micro app */ +import { registerMicroApps } from 'qiankun'; +import { microAppOptions, generateMicroAppOptions } from '@/router/micro-app'; + +let app = null; + +function init(props = {}) { + if ( + (process.env.NODE_ENV === 'production' && defaultConfig.useMock) || + (process.env.NODE_ENV === 'mock' && window.__POWERED_BY_QIANKUN__) + ) { + const { mockXHR } = require('../mock'); + mockXHR(); + } + + const { container } = props; + + app = createApp(App); + + // register plugins + app + .use(store) + .use(router) + .use(ElementPlus, { ...defaultConfig.element, locale }) + .use(Vant) + .use(VueParticles); + + // register global component + app.component('SvgIcon', SvgIcon); + + // mount instance + app.mount(container ? container.querySelector('#app') : '#app'); } -//全局注册组件 -Vue.component("LayoutCard", LayoutCard); -Vue.component("JumpDialog", JumpDialog); -Vue.component("JumpDialogItem", JumpDialogItem); - -Vue.use(service); -Vue.use(Element, { - //size: Cookies.get("size") || "medium" // set element-ui default size - size: "mini" -}); -// use jsonp -Vue.use(VueJsonp); - -// register global utility filters -Object.keys(filters).forEach(key => { - Vue.filter(key, filters[key]); -}); - -Vue.config.productionTip = false; - -new Vue({ - el: "#app", - router, - store, - render: h => h(App) -}); +// 独立è¿è¡Œ +if (!window.__POWERED_BY_QIANKUN__) { + if (microAppOptions && microAppOptions.length > 0) { + registerMicroApps(generateMicroAppOptions(microAppOptions)); + } + + init(); +} +// 以微应用方å¼è¿è¡Œæ—¶çš„é’©å函数 +export async function bootstrap() { + console.log(`[${defaultConfig.applicationName}] micro app bootstraped`); +} +export async function mount(props) { + console.log(`[${defaultConfig.applicationName}] micro app mount`); + init(props); +} +export async function unmount() { + console.log(`[${defaultConfig.applicationName}] micro app unmount`); + app.unmount(); + app = null; +} diff --git a/WebSite/src/permission.js b/WebSite/src/permission.js deleted file mode 100644 index 9b2325ba..00000000 --- a/WebSite/src/permission.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:56 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-10 13:07:55 - */ -import router from "./router"; -import store from "./store"; -import { Message } from "element-ui"; -import NProgress from "nprogress"; // progress bar -import "nprogress/nprogress.css"; // progress bar style -import { getToken } from "@/utils/auth"; // get token from cookie -import getPageTitle from "@/utils/get-page-title"; - -NProgress.configure({ showSpinner: false }); // NProgress Configuration - -const whiteList = ["/login", "/auth-redirect"]; // no redirect whitelist - -router.beforeEach(async (to, from, next) => { - // start progress bar - NProgress.start(); - - // set page title - document.title = getPageTitle(to.meta.title); - - // determine whether the user has logged in - const hasToken = getToken(); - - if (hasToken) { - if (to.path === "/login") { - // if is logged in, redirect to the home page - next({ path: "/" }); - NProgress.done(); - } else { - // determine whether the user has existed through getInfo - if (store.getters.user) { - next(); - } else { - try { - // get user info - await store.dispatch("user/getInfo"); - // store.dispatch("permission/generateRoutes"); - - // hack method to ensure that addRoutes is complete - // set the replace: true, so the navigation will not leave a history record - next({ ...to, replace: true }); - } catch (error) { - // remove token and go to login page to re-login - await store.dispatch("user/resetCache"); - Message.error(error || "Has Error"); - next("/login"); - NProgress.done(); - } - } - } - } else { - /* has no token*/ - - if (whiteList.indexOf(to.path) !== -1) { - // in the free login whitelist, go directly - next(); - } else { - // other pages that do not have permission to access are redirected to the login page. - next("/login"); - NProgress.done(); - } - } -}); - -router.afterEach(() => { - // finish progress bar - NProgress.done(); -}); diff --git a/WebSite/src/public-path.js b/WebSite/src/public-path.js new file mode 100644 index 00000000..ba8185ea --- /dev/null +++ b/WebSite/src/public-path.js @@ -0,0 +1,10 @@ +/* + * @Description: + * @Author: dongjunhua + * @Date: 2021-10-16 09:36:46 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-16 09:36:47 + */ +if (window.__POWERED_BY_QIANKUN__) { + __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__; +} diff --git a/WebSite/src/router/guards.js b/WebSite/src/router/guards.js new file mode 100644 index 00000000..7eec6744 --- /dev/null +++ b/WebSite/src/router/guards.js @@ -0,0 +1,103 @@ +/* + * @Description: global router guards + * @Autor: dongjunhua + * @Date: 2020-12-17 13:02:54 + * @LastEditors: dongjunhua + * @LastEditTime: 2022-04-14 09:39:49 + */ + +import NProgress from 'nprogress'; // progress bar +import 'nprogress/nprogress.css'; // progress bar style +import store from '@/store'; + +// NProgress Configuration +NProgress.configure({ showSpinner: false }); + +// not authenticated +// 未认è¯çжæ€ç™½åå• +const whiteListLv1 = ['/login', '/auth-redirect']; +// authenticated +// 已认è¯çжæ€ç™½åå• +const whiteListLv2 = [ + '/login', + '/auth-redirect', + '/i', + '/401', + '/404', + '/404', + '/i/workplace', + '/workplace' +]; + +const before = async (to, from, next) => { + // console.log('into guard', to.name); + // start progress bar + NProgress.start(); + // if (!to.name) { + // next({ path: '/404', replace: true }); + // } + + if (store.state.subject.initialized) { + // try to get persistence data from storage when subject is initialized, e.g., refresh + // 当会è¯å¤„于åˆå§‹åŒ–çŠ¶æ€æ—¶å°è¯•从storage䏿¢å¤ + await store.dispatch('subject/recovery'); + next({ ...to, replace: true }); + } else if ( + store.state.subject.isAuthenticated && + store.state.subject.isPermitted + ) { + // authenticated and permitted + // 已认è¯å’ŒæŽˆæƒ + if (whiteListLv1.includes(to.path)) { + // when current path in whitelist + // 当å‰è·¯ç”±å±žäºŽç™½åå• + if (to.query.redirect_uri) { + next(); + NProgress.done(); + const { sso_logout, ...query } = to.query; + if (sso_logout === 'true') { + store.dispatch('subject/logout', { query }); + } else { + window.location.href = `${to.query.redirect_uri}?code=${store.state.subject.token}`; + } + } else { + next({ path: '/i', replace: true }); + } + } else { + // check for permission of current path when not in whitelist + // 当å‰è·¯ç”±ä¸å±žäºŽç™½å啿—¶æ£€æŸ¥æƒé™ + const hasPermission = await store.dispatch('subject/checkPermission', { + path: to.path, + whiteList: whiteListLv2 + }); + if (hasPermission) { + next(); + NProgress.done(); + // document.title = to.name; + } else { + next({ path: '/401', replace: true }); + } + } + } else { + // not authenticated + // æœªè®¤è¯ + NProgress.done(); + if (whiteListLv1.includes(to.path)) { + next(); + } else { + const redirect = await store.dispatch('subject/logout', { + doRouterPush: false + }); + next(redirect); + } + } +}; + +const after = () => { + // 清空keep-alive排除路由 + store.dispatch('app/setDestoryRoute', null); + // end progress bar + NProgress.done(); +}; + +export { before, after }; diff --git a/WebSite/src/router/index.js b/WebSite/src/router/index.js index 510c2407..800c04fc 100644 --- a/WebSite/src/router/index.js +++ b/WebSite/src/router/index.js @@ -1,119 +1,131 @@ -import Vue from "vue"; -import Router from "vue-router"; - -Vue.use(Router); - -/* Layout */ -import Layout from "@/layout"; - -/** - * Note: sub-menu only appear when route children.length >= 1 - * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html - * - * hidden: true if set true, item will not show in the sidebar(default is false) - * alwaysShow: true if set true, will always show the root menu - * if not set alwaysShow, when item has more than one children route, - * it will becomes nested mode, otherwise not show the root menu - * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb - * name:'router-name' the name is used by <keep-alive> (must set!!!) - * meta : { - roles: ['admin','editor'] control the page roles (you can set multiple roles) - title: 'title' the name show in sidebar and breadcrumb (recommend set) - icon: 'svg-name' the icon show in the sidebar - noCache: true if set true, the page will no be cached(default is false) - affix: true if set true, the tag will affix in the tags-view - breadcrumb: false if set false, the item will hidden in breadcrumb(default is true) - activeMenu: '/example/list' if set path, the sidebar will highlight the path you set - } +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-19 10:17:22 */ +import { createRouter, createWebHistory } from 'vue-router'; +import { before, after } from './guards'; +import Storage from '@/utils/Storage'; +import Layout from '@/layout'; +// import LayoutForMicroApp from '@/layout/MicroLayout.vue'; +import { microAppOptions } from './micro-app'; -/** - * 基础路由 - */ -export const constantRoutes = [ - { - path: "/redirect", +// get routes from modules +const modulesFiles = require.context('./modules', true, /\.js$/); +// router for layout +const moduleRoutes = modulesFiles.keys().reduce((moduleRoutes, modulePath) => { + const value = modulesFiles(modulePath); + return [...moduleRoutes, ...value.default]; +}, []); +// router for outer +const moduleRoutesForOuter = moduleRoutes.map(r => { + return { + path: `/${r.path}`, + component: r.component, + name: `${r.name}ForOuter` + }; +}); +// router for micro app +const routesForMicroApp = microAppOptions.map(o => { + return { + path: `/${o.activeRule}/:pathMatch(.*)*`, component: Layout, - hidden: true, - children: [ - { - path: "/redirect/:path(.*)", - component: () => import("@/views/redirect/index") - } - ] - }, + name: `LayoutFor${o.name}` + }; +}); + +const routes = [ { - path: "/login", - component: () => import("@/views/login/index"), - hidden: true + path: '/login', + name: 'Login', + component: () => import('@/views/login/index') }, { - path: "/auth-redirect", - component: () => import("@/views/login/auth-redirect"), - hidden: true + path: '/auth-redirect', + name: 'AuthRedirect', + component: () => import('@/views/auth-redirect') }, { - path: "/404", - component: () => import("@/views/error-page/404"), - hidden: true + path: '/401', + name: 'NoPermission', + component: () => import('@/views/error-page/401') }, { - path: "/401", - component: () => import("@/views/error-page/401"), - hidden: true + path: '/404', + name: 'NotFound', + component: () => import('@/views/error-page/404') }, { - path: "/", - component: Layout, - redirect: "/i" - } -]; - -import { demoRoutes } from "./modules/demo"; - -/** - * 需è¦åЍæ€åŠ è½½çš„è·¯ç”± - */ -export const asyncRoutes = [...demoRoutes]; - -/** - * 外层框架路由 - */ -export const layoutRoutes = [ - { - path: "/i", + path: '/i', + name: 'Layout', component: Layout, children: [ { - path: "", - component: () => import("@/views/home"), - name: "Home", - meta: { title: "首页", affix: true } - } + path: '', + name: 'Home', + component: () => import('@/views/home') + }, + ...moduleRoutes ] - } + }, + ...moduleRoutesForOuter, + ...routesForMicroApp, + { + path: '/', + redirect: '/i' + }, + // catch all routes (*, /*) must now be defined using a parameter with a custom regex + { path: '/:pathMatch(.*)*', redirect: { name: 'NotFound' } } + // { + // path: '/i/:pathMatch(.*)*', + // name: 'LayoutForMicroApp', + // component: Layout + // } ]; -/** - * 404页é¢ï¼Œå¿…须在最åŽåŠ è½½ - */ -export const notFoundRoutes = [{ path: "*", redirect: "/404", hidden: true }]; +const router = createRouter({ + history: createWebHistory( + window.__POWERED_BY_QIANKUN__ ? '' : process.env.VUE_APP_BASE_URI + ), + routes +}); -export const routes = [...constantRoutes]; +// set global router guards +router.beforeEach(before); +router.afterEach(after); -const createRouter = () => - new Router({ - // mode: 'history', // require service support - scrollBehavior: () => ({ y: 0 }), - routes +const addFrameRoute = frameMenu => { + router.addRoute('Layout', { + path: frameMenu.routingUrl, + component: () => import('@/views/frame'), + name: `Frame_${frameMenu.id}` }); +}; -const router = createRouter(); +const getOriginalPath = path => { + path.indexOf('/i/') === 0 && (path = path.replace(new RegExp('/i/'), '')); + path.indexOf('i/') === 0 && (path = path.replace(new RegExp('i/'), '')); + path.indexOf('/') === 0 && (path = path.replace(new RegExp('/'), '')); + return path; +}; -// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 -export function resetRouter() { - const newRouter = createRouter(); - router.matcher = newRouter.matcher; // reset router -} +(() => { + const subject = Storage.getLocal('subject'); + if (!subject || !subject.user || !subject.user.menuList) { + return; + } + const eachMenu = (menuList, callback) => { + menuList.forEach(m => { + callback(m); + m.children && m.children.length > 0 && eachMenu(m.children, callback); + }); + }; + eachMenu(subject.user.menuList, m => { + m.routingUrl && m.redirectUrl && addFrameRoute(m); + }); +})(); +export { moduleRoutes, addFrameRoute, getOriginalPath }; export default router; diff --git a/WebSite/src/router/micro-app.js b/WebSite/src/router/micro-app.js new file mode 100644 index 00000000..c86890a3 --- /dev/null +++ b/WebSite/src/router/micro-app.js @@ -0,0 +1,34 @@ +/* + * @Description: + * @Author: dongjunhua + * @Date: 2021-10-14 15:43:18 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-12-01 09:43:05 + */ + +const microAppOptions = [ + { + name: 'MicroApp1', + entry: 'http://localhost:3001/micro-app-1/', + container: '#micro-container', + activeRule: 'i/micro1' + } +]; + +const generateMicroAppOptions = (microAppOptions = []) => { + return microAppOptions.map(o => { + const { name, entry, container, activeRule } = o; + return { + name, + entry, + container, + activeRule: location => { + return location.pathname.startsWith( + `${process.env.VUE_APP_BASE_URI}${activeRule}` + ); + } + }; + }); +}; + +export { microAppOptions, generateMicroAppOptions }; diff --git a/WebSite/src/router/modules/demo.js b/WebSite/src/router/modules/demo.js deleted file mode 100644 index 67b8006d..00000000 --- a/WebSite/src/router/modules/demo.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:40:16 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:56:32 - */ - -export const demoRoutes = [ - { - path: "icon", - component: () => import("@/views/icons"), - name: "Icon" - }, - { - path: "dashboard", - component: () => import("@/views/dashboard"), - name: "Dashboard" - }, - { - path: "example/index", - component: () => import("@/views/example/index"), - name: "Example" - }, - { - path: "example/button", - component: () => import("@/views/example/button"), - name: "Button" - }, - { - path: "example/table", - component: () => import("@/views/example/table"), - name: "Table" - }, - { - path: "example/dialog", - component: () => import("@/views/example/dialog"), - name: "Dialog" - }, - { - path: "example/icon", - component: () => import("@/views/example/icon"), - name: "Icon" - }, - { - path: "example/layout", - component: () => import("@/views/example/layout"), - name: "Layout" - }, - { - path: "example/form", - component: () => import("@/views/example/form"), - name: "Form" - } -]; diff --git a/WebSite/src/router/modules/hello.js b/WebSite/src/router/modules/hello.js new file mode 100644 index 00000000..baad05c7 --- /dev/null +++ b/WebSite/src/router/modules/hello.js @@ -0,0 +1,32 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 12:47:25 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-23 15:39:45 + */ + +const helloRoutes = [ + { + path: 'hello/helloa', + component: () => import('@/views/hello/HelloA'), + name: 'HelloA' + }, + { + path: 'hello/hellob', + component: () => import('@/views/hello/HelloB'), + name: 'HelloB' + }, + { + path: 'hello/helloc', + component: () => import('@/views/hello/HelloC'), + name: 'HelloC' + }, + { + path: 'hello/hellod', + component: () => import('@/views/hello/HelloC'), + name: 'HelloD' + } +]; + +export default helloRoutes; diff --git a/WebSite/src/router/modules/workplace.js b/WebSite/src/router/modules/workplace.js new file mode 100644 index 00000000..3b4ea3cb --- /dev/null +++ b/WebSite/src/router/modules/workplace.js @@ -0,0 +1,17 @@ +/* + * @Description: + * @Autor: Qun + * @Date: 2021-09-01 09:30:17 + * @LastEditors: Qun + * @LastEditTime: 2021-09-01 09:59:40 + */ + +const workplaceRoutes = [ + { + path: 'workplace', + component: () => import('@/views/workplace'), + name: 'Workplace' + } +]; + +export default workplaceRoutes; diff --git a/WebSite/src/service/base/base.js b/WebSite/src/service/base/base.js deleted file mode 100644 index 675890d8..00000000 --- a/WebSite/src/service/base/base.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * @Description: - * @Autor: qun - * @Date: 2020-06-10 14:23:40 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:15:06 - */ - -class Base { - static downloadFile(res) { - if (!res.data) return; - var blob = new Blob([res.data], { type: res.data.type }); - // 针对于IEæµè§ˆå™¨çš„处ç†, å› éƒ¨åˆ†IEæµè§ˆå™¨ä¸æ”¯æŒcreateObjectURL - if (window.navigator && window.navigator.msSaveOrOpenBlob) { - window.navigator.msSaveOrOpenBlob(blob, res.fileName); - } else { - var downloadElement = document.createElement("a"); - var href = window.URL.createObjectURL(blob); // 创建下载的链接 - downloadElement.href = href; - downloadElement.download = res.fileName; // ä¸‹è½½åŽæ–‡ä»¶å - document.body.appendChild(downloadElement); - downloadElement.click(); // 点击下载 - document.body.removeChild(downloadElement); // 下载完æˆç§»é™¤å…ƒç´ - window.URL.revokeObjectURL(href); // 释放掉blob对象 - } - } - - static processRequestData(data) { - if (!data.enabled) { - delete data.enabled; - } - } -} -export { Base }; diff --git a/WebSite/src/service/index.js b/WebSite/src/service/index.js deleted file mode 100644 index f890cc7e..00000000 --- a/WebSite/src/service/index.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * @Descripttion: global service module ver .1 - * @Author: dong - * @Date: 2020-05-11 19:56:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-17 14:39:39 - */ - -const modulesFiles = require.context("./modules", true, /\.js$/); - -const modules = modulesFiles.keys().reduce((modules, modulePath) => { - const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1"); - const value = modulesFiles(modulePath); - - const key = moduleName.charAt(0).toUpperCase() + moduleName.slice(1); - modules[key] = value.default; - - return modules; -}, {}); - -// import Organization from "@/service/modules/organization"; -// const modules = { Organization }; - -Object.defineProperty(modules, "invoke", { - value: function(method, ...params) { - let im; - eachMethod(this, (name, m) => { - name === method && (im = m); - }); - if (im) { - return im(...params); - } - }, - writable: false, - enumerable: false, - configurable: false -}); - -function eachMethod(modules, cb) { - Object.keys(modules).forEach(cKey => { - const c = modules[cKey]; - typeof c === "function" && - Object.getOwnPropertyNames(c).forEach(mKey => { - const m = c[mKey]; - typeof m === "function" && cb(`${c.name}/${m.name}`, m); - }); - }); -} - -const service = { - install(Vue) { - Vue.prototype.$service = modules; - } -}; - -export default service; diff --git a/WebSite/src/service/modules/account.js b/WebSite/src/service/modules/account.js deleted file mode 100644 index 78b6caac..00000000 --- a/WebSite/src/service/modules/account.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-11 11:13:25 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:21:52 - */ -import request from "@/utils/request"; -import { Base } from "../base/base"; - -class Account extends Base { - static login(data) { - return request.post("/account/pc/v1/login", data); - } - - static modifyPassword(data) { - return Promise.resolve("success"); - } -} - -export default Account; diff --git a/WebSite/src/service/modules/user.js b/WebSite/src/service/modules/user.js deleted file mode 100644 index 8f7e8778..00000000 --- a/WebSite/src/service/modules/user.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Descripttion: - * @Author: dong - * @Date: 2020-05-11 19:57:33 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:14:35 - */ -import request from "@/utils/request"; -import { Base } from "../base/base"; - -class User extends Base { - static setCurrent(data) { - return request.post("/user/pc/v1/setCurrent", data); - } - - static getCurrent() { - return request.post("/user/pc/v1/getCurrent"); - } -} - -export default User; diff --git a/WebSite/src/settings.js b/WebSite/src/settings.js deleted file mode 100644 index a96eb551..00000000 --- a/WebSite/src/settings.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:56 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:31:37 - */ -module.exports = { - title: "Vue Element Admin", - - /** - * @type {boolean} true | false - * @description Whether show the settings right-panel - */ - showSettings: false, - - /** - * @type {boolean} true | false - * @description Whether need tagsView - */ - tagsView: true, - - /** - * @type {boolean} true | false - * @description Whether fix the header - */ - fixedHeader: false, - - /** - * @type {boolean} true | false - * @description Whether show the logo in sidebar - */ - sidebarLogo: false, - - /** - * @type {boolean} true | false - * @description Whether show when there is only one root menu - */ - sidebarRootMenu: true, - - /** - * @type {string | array} 'production' | ['production', 'development'] - * @description Need show err logs component. - * The default is only used in the production env - * If you want to also use it in dev, you can pass ['production', 'development'] - */ - errorLog: "production" -}; diff --git a/WebSite/src/store/getters.js b/WebSite/src/store/getters.js index 8e765c5d..69ea6ead 100644 --- a/WebSite/src/store/getters.js +++ b/WebSite/src/store/getters.js @@ -1,34 +1,15 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:57 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:30:05 + * @Autor: dongjunhua + * @Date: 2021-01-27 13:17:54 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-27 13:21:36 */ -import { sidebarRootMenu } from "@/settings"; const getters = { sidebar: state => state.app.sidebar, - size: state => state.app.size, - device: state => state.app.device, - visitedViews: state => state.tagsView.visitedViews, - cachedViews: state => state.tagsView.cachedViews, - token: state => state.user.token, - avatar: state => state.user.avatar, - name: state => state.user.name, - introduction: state => state.user.introduction, - roles: state => state.user.roles, - user: state => state.user.user, - accountId: state => state.user.accountId, - permissionRoutes: state => state.permission.routes, - menuTree: state => { - if (!sidebarRootMenu) { - if (state.user.menuTree.length === 1 && state.user.menuTree[0].children) { - return state.user.menuTree[0].children; - } - } - return state.user.menuTree; - }, - errorLogs: state => state.errorLog.logs + user: state => state.subject.user, + menuList: state => (state.subject.user ? state.subject.user.menuList : []) }; + export default getters; diff --git a/WebSite/src/store/index.js b/WebSite/src/store/index.js index cb6eb462..088dd367 100644 --- a/WebSite/src/store/index.js +++ b/WebSite/src/store/index.js @@ -1,25 +1,27 @@ -import Vue from "vue"; -import Vuex from "vuex"; -import getters from "./getters"; - -Vue.use(Vuex); +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-27 13:26:54 + */ +import { createStore } from 'vuex'; +import getters from '@/store/getters'; // https://webpack.js.org/guides/dependency-management/#requirecontext -const modulesFiles = require.context("./modules", true, /\.js$/); +const modulesFiles = require.context('./modules', true, /\.js$/); // you do not need `import app from './modules/app'` // it will auto require all vuex module from modules file const modules = modulesFiles.keys().reduce((modules, modulePath) => { // set './app.js' => 'app' - const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1"); + const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1'); const value = modulesFiles(modulePath); modules[moduleName] = value.default; return modules; }, {}); -const store = new Vuex.Store({ +export default createStore({ modules, getters }); - -export default store; diff --git a/WebSite/src/store/modules/app.js b/WebSite/src/store/modules/app.js index 692dcada..8d806f7d 100644 --- a/WebSite/src/store/modules/app.js +++ b/WebSite/src/store/modules/app.js @@ -1,58 +1,281 @@ -import Cookies from "js-cookie"; +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 09:34:12 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-14 15:06:39 + */ +import App from '@/core/model/App'; +import * as config from '@/config'; +import { themeConfigs } from '@/config/theme'; -const state = { - sidebar: { - opened: Cookies.get("sidebarStatus") - ? !!+Cookies.get("sidebarStatus") - : true, - withoutAnimation: false - }, - device: "desktop", - size: Cookies.get("size") || "medium" +const state = new App(); +(() => { + state.loadConfig(config, themeConfigs); + state.loadStorage(); + state.applyTheme(); +})(); + +const cacheable = (mutations = {}) => { + const cacheableMutations = {}; + for (let key in mutations) { + if (typeof mutations[key] === 'function') { + cacheableMutations[key] = new Proxy(mutations[key], { + apply: function(target, ctx, args) { + target(...args); + const state = args[0]; + state.saveStorage(); + } + }); + } + } + return cacheableMutations; }; const mutations = { + SET_TITLE: state => { + const activeView = state.tagsView.cachedViews.find(item => item.active); + document.title = + activeView && activeView.name ? activeView.name : state.applicationName; + }, + SET_LOADING: (state, loading) => { + state.loading = loading; + }, + SET_DESTORY_ROUTE: (state, routeName) => { + state.destoryRoute = routeName; + }, + CLEAR_TAGVIEW: state => { + state.tagsView.cachedViews = []; + } +}; + +const cacheableMutations = cacheable({ + SET_DEVICE: (state, device) => { + state.device = device; + }, + CHANGE_THEME: (state, theme) => { + state.sidebar.withoutAnimation = false; + if (theme.name === 'local') { + const localIndex = state.themes.findIndex(t => t.name === 'local'); + if (localIndex < 0) { + state.themes.push(theme); + } + state.themes[localIndex] = theme; + } + state.themes.forEach(t => { + t.active = t.name === theme.name; + }); + }, + SET_LAYOUT: (state, layout) => { + state.sidebar.withoutAnimation = false; + state.layout = layout; + }, TOGGLE_SIDEBAR: state => { - state.sidebar.opened = !state.sidebar.opened; state.sidebar.withoutAnimation = false; - if (state.sidebar.opened) { - Cookies.set("sidebarStatus", 1); + state.sidebar.opened = !state.sidebar.opened; + }, + CLOSE_SIDEBAR: (state, withoutAnimation = true) => { + state.sidebar.withoutAnimation = withoutAnimation; + state.sidebar.opened = false; + }, + ADD_TAGVIEW: (state, view) => { + const index = state.tagsView.cachedViews.findIndex(v => v.id === view.id); + state.tagsView.cachedViews.forEach(v => (v.active = false)); + if (index < 0) { + state.tagsView.cachedViews.push(view); } else { - Cookies.set("sidebarStatus", 0); + state.tagsView.cachedViews[index].path = view.path; + state.tagsView.cachedViews[index].active = true; } }, - CLOSE_SIDEBAR: (state, withoutAnimation) => { - Cookies.set("sidebarStatus", 0); - state.sidebar.opened = false; - state.sidebar.withoutAnimation = withoutAnimation; + DEL_TAGVIEW: (state, view) => { + const index = state.tagsView.cachedViews.findIndex(v => v.id === view.id); + if (index > -1) { + const [{ active }] = state.tagsView.cachedViews.splice(index, 1); + if (active) { + // if the view has been deleted is active, change the active view + if (index - 1 > -1) { + state.tagsView.cachedViews[index - 1].active = true; + } else if (index < state.tagsView.cachedViews.length) { + state.tagsView.cachedViews[index].active = true; + } + } + } }, - TOGGLE_DEVICE: (state, device) => { - state.device = device; + CHANGE_TAGVIEW_INDEX: (state, config) => { + const { start, end } = config; + if (start < end) { + for (let i = start; i < end; i++) { + const temp = state.tagsView.cachedViews[i]; + state.tagsView.cachedViews[i] = state.tagsView.cachedViews[i + 1]; + state.tagsView.cachedViews[i + 1] = temp; + } + } + if (start > end) { + for (let i = start; i > end; i--) { + const temp = state.tagsView.cachedViews[i]; + state.tagsView.cachedViews[i] = state.tagsView.cachedViews[i - 1]; + state.tagsView.cachedViews[i - 1] = temp; + } + } + }, + SET_CACHEDVIEWS: (state, cachedViews) => { + state.tagsView.cachedViews = [...cachedViews]; }, - SET_SIZE: (state, size) => { - state.size = size; - Cookies.set("size", size); + SET_SHOWLOGO: (state, showLogo) => { + state.sidebar.showLogo = showLogo; + }, + SET_TAGSVIEW_ENABLED: (state, enabled) => { + state.tagsView.enabled = enabled; + }, + SET_TAGSVIEW_TYPE: (state, type) => { + state.tagsView.type = type; + }, + SET_ENABLE_DYNAMIC_BG: (state, enableDynamicBg) => { + state.enableDynamicBg = enableDynamicBg; } -}; +}); const actions = { - toggleSideBar({ commit }) { - commit("TOGGLE_SIDEBAR"); + /** + * @method toggleDevice + * @param {*} context + * @param {string} device + */ + setDevice: ({ commit }, device) => { + commit('SET_DEVICE', device); + }, + /** + * @method setTheme + * @param {*} context + * @param {string} theme + */ + setTheme: ({ commit }, theme) => { + commit('CHANGE_THEME', theme); + }, + /** + * @method toggleSideBar + * @param {*} context + */ + toggleSideBar: ({ commit }) => { + commit('TOGGLE_SIDEBAR'); + }, + /** + * @method closeSideBar + * @param {*} context + * @param {*} payload + */ + closeSideBar: ({ commit }, { withoutAnimation }) => { + commit('CLOSE_SIDEBAR', withoutAnimation); + }, + /** + * @method closeSideBar + * @param {*} context + * @param {TagView} view + */ + addTagView: ({ commit }, view) => { + commit('ADD_TAGVIEW', view); + commit('SET_TITLE'); + }, + /** + * @method delTagView + * @param {*} context + * @param {TagView} view + */ + delTagView: ({ commit }, view) => { + commit('DEL_TAGVIEW', view); + commit('SET_TITLE'); + }, + /** + * @method clearTagView + * @param {*} context + */ + clearTagView: ({ commit }) => { + commit('CLEAR_TAGVIEW'); + commit('SET_TITLE'); + }, + /** + * @method changeTagViewIndex + * @param {*} context + * @param {object} config + */ + changeTagViewIndex: ({ commit }, config) => { + commit('CHANGE_TAGVIEW_INDEX', config); + }, + /** + * @method startLoading + * @param {*} context + */ + startLoading: ({ commit }) => { + commit('SET_LOADING', true); + }, + /** + * @method endLoading + * @param {*} context + */ + endLoading: ({ commit }) => { + commit('SET_LOADING', false); + }, + /** + * @method setDestoryRoute + * @param {string} routeName + */ + setDestoryRoute: ({ commit }, routeName) => { + commit('SET_DESTORY_ROUTE', routeName); + }, + /** + * @method setCachedViews + * @param {*} context + * @param {Array} cachedViews + */ + setCachedViews: ({ commit }, cachedViews) => { + commit('SET_CACHEDVIEWS', cachedViews); + }, + /** + * @method setLayout + * @param {*} context + * @param {String} layout + */ + setLayout: ({ commit }, layout) => { + commit('SET_LAYOUT', layout); + }, + /** + * @method setShowLogo + * @param {*} context + * @param {Boolean} showLogo + */ + setShowLogo: ({ commit }, showLogo) => { + commit('SET_SHOWLOGO', showLogo); }, - closeSideBar({ commit }, { withoutAnimation }) { - commit("CLOSE_SIDEBAR", withoutAnimation); + /** + * @method setTagsViewEnabled + * @param {*} context + * @param {Boolean} enabled + */ + setTagsViewEnabled: ({ commit }, enabled) => { + commit('SET_TAGSVIEW_ENABLED', enabled); }, - toggleDevice({ commit }, device) { - commit("TOGGLE_DEVICE", device); + /** + * @method setTagsViewType + * @param {*} context + * @param {Boolean} enabled + */ + setTagsViewType: ({ commit }, type) => { + commit('SET_TAGSVIEW_TYPE', type); }, - setSize({ commit }, size) { - commit("SET_SIZE", size); + /** + * @method setEnableDynamicBg + * @param {*} context + * @param {Boolean} enableDynamicBg + */ + setEnableDynamicBg: ({ commit }, enableDynamicBg) => { + commit('SET_ENABLE_DYNAMIC_BG', enableDynamicBg); } }; export default { namespaced: true, state, - mutations, + mutations: { ...mutations, ...cacheableMutations }, actions }; diff --git a/WebSite/src/store/modules/errorLog.js b/WebSite/src/store/modules/errorLog.js deleted file mode 100644 index 72bdb4af..00000000 --- a/WebSite/src/store/modules/errorLog.js +++ /dev/null @@ -1,28 +0,0 @@ -const state = { - logs: [] -}; - -const mutations = { - ADD_ERROR_LOG: (state, log) => { - state.logs.push(log); - }, - CLEAR_ERROR_LOG: state => { - state.logs.splice(0); - } -}; - -const actions = { - addErrorLog({ commit }, log) { - commit("ADD_ERROR_LOG", log); - }, - clearErrorLog({ commit }) { - commit("CLEAR_ERROR_LOG"); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/permission.js b/WebSite/src/store/modules/permission.js deleted file mode 100644 index 025b302a..00000000 --- a/WebSite/src/store/modules/permission.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:05 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-10 13:48:29 - */ -import { deepClone } from "@/utils/index.js"; -import router, { - constantRoutes, - asyncRoutes, - layoutRoutes, - notFoundRoutes -} from "@/router"; - -const state = { - routes: [] -}; - -const mutations = { - SET_ROUTES: (state, routes) => { - state.routes = routes; - } -}; - -const component = () => import("@/views/outer"); - -function eachMenu(menuList, cb) { - menuList.forEach(m => { - cb(m); - m.children && m.children.length > 0 && eachMenu(m.children, cb); - }); -} - -function getDynamicRoutes(menuList) { - const dynamicRoutes = []; - const layoutRoute = deepClone(layoutRoutes[0]); - - eachMenu(menuList, m => { - if (m.routingUrl && !m.redirectUrl) { - const asyncRoute = asyncRoutes.find(r => r.path === m.routingUrl); - if (asyncRoute) { - const route = deepClone(asyncRoute); - // 设置meta - route.meta = { - icon: m.icon, - title: m.name - }; - // 系统内部路由 - layoutRoute.children.push(route); - // 供外部调用的路由 - const routeForOuter = deepClone(route); - routeForOuter.path = `/${routeForOuter.path}`; - routeForOuter.name = `${routeForOuter.name}ForOuter`; - dynamicRoutes.push(routeForOuter); - } - } - if (m.routingUrl && m.redirectUrl) { - const routeToOuter = { - path: m.routingUrl, - component, - name: `${m.id}ToOuter`, - meta: { - icon: m.icon, - title: m.name - } - }; - layoutRoute.children.push(routeToOuter); - } - }); - dynamicRoutes.push(layoutRoute); - return dynamicRoutes; -} - -const actions = { - /** - * æ ¹æ®å½“å‰ç”¨æˆ·æƒé™åŠ¨æ€æ·»åŠ è·¯ç”± - */ - generateRoutes({ commit }, menuList) { - // - const dynamicRoutes = getDynamicRoutes(menuList); - router.addRoutes(dynamicRoutes); - router.addRoutes(notFoundRoutes); - commit("SET_ROUTES", [ - ...constantRoutes, - ...dynamicRoutes, - ...notFoundRoutes - ]); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/settings.js b/WebSite/src/store/modules/settings.js deleted file mode 100644 index c287845b..00000000 --- a/WebSite/src/store/modules/settings.js +++ /dev/null @@ -1,33 +0,0 @@ -import variables from "@/styles/element-variables.scss"; -import defaultSettings from "@/settings"; - -const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings; - -const state = { - theme: variables.theme, - showSettings: showSettings, - tagsView: tagsView, - fixedHeader: fixedHeader, - sidebarLogo: sidebarLogo -}; - -const mutations = { - CHANGE_SETTING: (state, { key, value }) => { - if (state.hasOwnProperty(key)) { - state[key] = value; - } - } -}; - -const actions = { - changeSetting({ commit }, data) { - commit("CHANGE_SETTING", data); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/subject.js b/WebSite/src/store/modules/subject.js new file mode 100644 index 00000000..53a3ad67 --- /dev/null +++ b/WebSite/src/store/modules/subject.js @@ -0,0 +1,263 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 11:37:15 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-10-14 14:31:19 + */ + +import Subject from '@/core/model/Subject'; +import AuthenticationToken from '@/core/model/AuthenticationToken'; +import AuthenticationInfo from '@/core/model/AuthenticationInfo'; +import AuthorizationInfo from '@/core/model/AuthorizationInfo'; +import Realm from '@/core/base/Realm'; +import Storage from '@/utils/Storage'; +import { moduleRoutes, addFrameRoute, getOriginalPath } from '@/router'; +import { loginType, ssoAddress, loginValidDuration } from '@/config'; +import router from '@/router'; +import { ElNotification } from 'element-plus'; + +const state = new Subject(loginType, ssoAddress); + +const mutations = { + SET_INITIALIZED: (state, initialized) => { + state.initialized = initialized; + }, + SET_SSO_ADDRESS: (state, ssoAddress) => { + state.ssoAddress = ssoAddress; + }, + SET_ACCOUNT: (state, account) => { + state.account = account; + }, + SET_USER: (state, user) => { + state.user = user; + }, + SET_IS_AUTHENTICATED: (state, isAuthenticated) => { + state.isAuthenticated = isAuthenticated; + }, + SET_IS_PERMITTED: (state, isPermitted) => { + state.isPermitted = isPermitted; + }, + SET_PERMITTED_ROUTES: (state, permittedRoutes) => { + state.permittedRoutes = permittedRoutes; + }, + SET_TOKEN: (state, token) => { + state.token = token; + } +}; + +const afterStorageChange = () => { + const subject = Storage.getLocal('subject'); + if (!subject) { + router.go(0); + } +}; + +const eachMenu = (menuList = [], callback = () => {}) => { + menuList.forEach(m => { + callback(m); + m.children && m.children.length > 0 && eachMenu(m.children, callback); + }); +}; + +const permitRoutes = (menuList = []) => { + const permittedRoutes = []; + if (menuList.length === 0) { + return []; + } + eachMenu(menuList, m => { + if (!m.routingUrl) { + return; + } + if (m.redirectUrl) { + addFrameRoute(m); + permittedRoutes.push(m.routingUrl); + } else { + const childrenPath = ['/micro1', '/micro2']; + if ( + moduleRoutes.findIndex(r => r.path === m.routingUrl) > -1 || + childrenPath.some(item => item.includes(m.routingUrl)) + ) { + permittedRoutes.push(m.routingUrl); + } + } + }); + return permittedRoutes; +}; + +const actions = { + /** + * @method login èº«ä»½è®¤è¯ + * @param {*} context + * @param {*} token + * @return {Promise} + */ + login: async ({ commit, state }, token) => { + try { + // token must be an AuthenticationToken instance when use default login mode + // å½“ä½¿ç”¨é»˜è®¤ç™»å½•æ¨¡å¼æ—¶ï¼Œtoken必须是一个AuthenticationToken的实例 + // 当使用å•ç‚¹ç™»å½•æ¨¡å¼æ—¶ï¼Œtoken应该是一个由å•点登录æœåŠ¡ç«¯é¢å‘的令牌(授æƒç ) + if ( + state.loginType === 'default' && + token.constructor !== AuthenticationToken + ) { + throw new Error('Invalid Token'); + } + // get authentication info from realm + // ä»Žå®‰å…¨æ•°æ®æºèŽ·å¾—èº«ä»½è®¤è¯ä¿¡æ¯ + const info = await Realm.doGetAuthenticationInfo(token); + if (info.constructor !== AuthenticationInfo) { + throw new Error('Invalid AuthenticationInfo'); + } + commit('SET_INITIALIZED', false); + commit('SET_ACCOUNT', info.account); + commit('SET_IS_AUTHENTICATED', true); + Storage.setLocal('subject', state, info.expired || loginValidDuration); + // add storage listener + // æ·»åŠ storage监å¬å™¨ï¼Œç”¨äºŽåœ¨ä»»æ„æ ‡ç¾é¡µä¼šè¯å¤±æ•ˆæ—¶è§¦å‘å…¶ä½™æ ‡ç¾é¡µæ›´æ–° + Storage.addListener(afterStorageChange); + } catch (error) { + ElNotification({ + message: error, + type: 'error', + duration: 5 * 1000 + }); + } + }, + /** + * @method permit æŽˆæƒ + * @param {*} context + * @param {object} payload + * @return {Promise} + */ + permit: async ({ commit, state }, payload = {}) => { + try { + let { authorizationToken, afterPermitted } = payload; + typeof afterPermitted !== 'function' && + (afterPermitted = () => { + router.push('/i'); + }); + const info = await Realm.doGetAuthorizationInfo(authorizationToken); + if (info.constructor !== AuthorizationInfo) { + throw new Error('Invalid AuthorizationInfo'); + } + const permittedRoutes = permitRoutes(info.user.menuList); + commit('SET_USER', info.user); + commit('SET_IS_PERMITTED', true); + commit('SET_PERMITTED_ROUTES', permittedRoutes); + commit('SET_TOKEN', info.token); + Storage.setLocal('subject', state); + // permit complete, do redirect or custom action + // 授æƒå®Œæˆï¼Œæ‰§è¡Œé»˜è®¤çš„跳转或一个自定义的回调 + afterPermitted(info.token); + } catch (error) { + ElNotification({ + message: error, + type: 'error', + duration: 5 * 1000 + }); + } + }, + /** + * @method permit é历èœå• + * @param {*} context + * @param {Function} payload + */ + eachMenu: ({ state }, payload = () => {}) => { + if (state.user && state.user.menuList) { + eachMenu(state.user.menuList, payload); + } + }, + /** + * @method checkPermission æ ¡éªŒè·¯ç”±æƒé™ + * @param {*} context + * @param {object} payload + * @return {boolean} + */ + checkPermission: ({ state }, payload = {}) => { + let { path, whiteList = [] } = payload; + if (!path) { + return false; + } + if (whiteList.includes(path)) { + return true; + } + path = getOriginalPath(path); + return state.permittedRoutes.some(item => path.indexOf(item) === 0); + }, + /** + * @method recovery æ¢å¤ä¼šè¯ + * @param {*} context + */ + recovery: ({ commit }) => { + // get persistence data from storage + // å°è¯•从storage䏿¢å¤å‰ç«¯ä¼šè¯ + const subject = Storage.getLocal('subject'); + commit('SET_INITIALIZED', false); + if (!subject) { + commit('SET_IS_AUTHENTICATED', false); + return; + } + commit('SET_ACCOUNT', subject.account); + commit('SET_IS_AUTHENTICATED', subject.isAuthenticated); + commit('SET_USER', subject.user); + commit('SET_IS_PERMITTED', subject.isPermitted); + commit('SET_PERMITTED_ROUTES', subject.permittedRoutes); + commit('SET_TOKEN', subject.token); + Storage.addListener(afterStorageChange); + }, + /** + * @method logout 注销 + * @param {*} context + * @param {object} payload + * @return {Promise} + */ + logout: async ({ commit, dispatch, state }, payload = {}) => { + let { + beforeLogout, + ssoAddress, + ssoLogout = false, + query = {}, + doRouterPush = true + } = payload; + // action before logout + typeof beforeLogout !== 'function' && (beforeLogout = Realm.beforeLogout); + const realmSsoAddress = await beforeLogout(); + // ssoAddress priority: option > relam > setting + realmSsoAddress && commit('SET_SSO_ADDRESS', realmSsoAddress); + ssoAddress && commit('SET_SSO_ADDRESS', ssoAddress); + // remove storage listener + Storage.removeListener(afterStorageChange); + // clear storage + Storage.delLocal('subject'); + Storage.delSession(); + // reset subject + commit('SET_ACCOUNT', {}); + commit('SET_IS_AUTHENTICATED', false); + commit('SET_USER', {}); + commit('SET_IS_PERMITTED', false); + commit('SET_PERMITTED_ROUTES', []); + // clear tagsView + dispatch('app/clearTagView', null, { root: true }); + // redirect + const redirect = + state.loginType === 'sso' && state.ssoAddress + ? { + path: '/auth-redirect', + query: { ssoAddress: state.ssoAddress, ssoLogout } + } + : { path: '/login', query }; + if (doRouterPush) { + router.push(redirect); + } else { + return redirect; + } + } +}; + +export default { + namespaced: true, + state, + mutations, + actions +}; diff --git a/WebSite/src/store/modules/tagsView.js b/WebSite/src/store/modules/tagsView.js deleted file mode 100644 index 97bd2e75..00000000 --- a/WebSite/src/store/modules/tagsView.js +++ /dev/null @@ -1,160 +0,0 @@ -const state = { - visitedViews: [], - cachedViews: [] -}; - -const mutations = { - ADD_VISITED_VIEW: (state, view) => { - if (state.visitedViews.some(v => v.path === view.path)) return; - state.visitedViews.push( - Object.assign({}, view, { - title: view.meta.title || "no-name" - }) - ); - }, - ADD_CACHED_VIEW: (state, view) => { - if (state.cachedViews.includes(view.name)) return; - if (!view.meta.noCache) { - state.cachedViews.push(view.name); - } - }, - - DEL_VISITED_VIEW: (state, view) => { - for (const [i, v] of state.visitedViews.entries()) { - if (v.path === view.path) { - state.visitedViews.splice(i, 1); - break; - } - } - }, - DEL_CACHED_VIEW: (state, view) => { - const index = state.cachedViews.indexOf(view.name); - index > -1 && state.cachedViews.splice(index, 1); - }, - - DEL_OTHERS_VISITED_VIEWS: (state, view) => { - state.visitedViews = state.visitedViews.filter(v => { - return v.meta.affix || v.path === view.path; - }); - }, - DEL_OTHERS_CACHED_VIEWS: (state, view) => { - const index = state.cachedViews.indexOf(view.name); - if (index > -1) { - state.cachedViews = state.cachedViews.slice(index, index + 1); - } else { - // if index = -1, there is no cached tags - state.cachedViews = []; - } - }, - - DEL_ALL_VISITED_VIEWS: state => { - // keep affix tags - const affixTags = state.visitedViews.filter(tag => tag.meta.affix); - state.visitedViews = affixTags; - }, - DEL_ALL_CACHED_VIEWS: state => { - state.cachedViews = []; - }, - - UPDATE_VISITED_VIEW: (state, view) => { - for (let v of state.visitedViews) { - if (v.path === view.path) { - v = Object.assign(v, view); - break; - } - } - } -}; - -const actions = { - addView({ dispatch }, view) { - dispatch("addVisitedView", view); - dispatch("addCachedView", view); - }, - addVisitedView({ commit }, view) { - commit("ADD_VISITED_VIEW", view); - }, - addCachedView({ commit }, view) { - commit("ADD_CACHED_VIEW", view); - }, - - delView({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch("delVisitedView", view); - dispatch("delCachedView", view); - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }); - }); - }, - delVisitedView({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_VISITED_VIEW", view); - resolve([...state.visitedViews]); - }); - }, - delCachedView({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_CACHED_VIEW", view); - resolve([...state.cachedViews]); - }); - }, - - delOthersViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch("delOthersVisitedViews", view); - dispatch("delOthersCachedViews", view); - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }); - }); - }, - delOthersVisitedViews({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_OTHERS_VISITED_VIEWS", view); - resolve([...state.visitedViews]); - }); - }, - delOthersCachedViews({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_OTHERS_CACHED_VIEWS", view); - resolve([...state.cachedViews]); - }); - }, - - delAllViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch("delAllVisitedViews", view); - dispatch("delAllCachedViews", view); - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }); - }); - }, - delAllVisitedViews({ commit, state }) { - return new Promise(resolve => { - commit("DEL_ALL_VISITED_VIEWS"); - resolve([...state.visitedViews]); - }); - }, - delAllCachedViews({ commit, state }) { - return new Promise(resolve => { - commit("DEL_ALL_CACHED_VIEWS"); - resolve([...state.cachedViews]); - }); - }, - - updateVisitedView({ commit }, view) { - commit("UPDATE_VISITED_VIEW", view); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/user.js b/WebSite/src/store/modules/user.js deleted file mode 100644 index 0fcbaa28..00000000 --- a/WebSite/src/store/modules/user.js +++ /dev/null @@ -1,142 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:58 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-10 13:17:16 - */ -import { getToken, setToken, removeToken } from "@/utils/auth"; -import router, { resetRouter } from "@/router"; -import Account from "@/service/modules/account"; -import User from "@/service/modules/user"; -import { Message } from "element-ui"; -import { getConfig } from "@/utils/config"; - -const state = { - token: getToken(), - name: "", - avatar: "", - introduction: "", - roles: [], - menuTree: [], - user: null, - accountId: "", - userId: "" -}; - -const mutations = { - SET_TOKEN: (state, token) => { - state.token = token; - }, - SET_INTRODUCTION: (state, introduction) => { - state.introduction = introduction; - }, - SET_NAME: (state, name) => { - state.name = name; - }, - SET_AVATAR: (state, avatar) => { - state.avatar = avatar; - }, - SET_ROLES: (state, roles) => { - state.roles = roles; - }, - SET_MENUTREE: (state, menuTree) => { - state.menuTree = menuTree; - }, - SET_USER: (state, user) => { - state.user = user; - }, - SET_ACCOUNTID: (state, accountId) => { - state.accountId = accountId; - }, - SET_USERID: (state, userId) => { - state.userId = userId; - } -}; - -const actions = { - async login({ commit }, loginInfo) { - loginInfo.rememberMe = true; - const { recognizeId } = await getConfig(); - if (!recognizeId) { - Message.error("请先é…置应用识别id"); - return Promise.reject(); - } - const resLogin = await Account.login({ recognizeId, ...loginInfo }); - const account = resLogin.data[0]; - const { id, users } = resLogin.data[0]; - if (!users || users.length === 0) { - Message.error("当å‰ç™»å½•è´¦å·æ— å¯é€‰ç”¨æˆ·"); - return Promise.reject(); - } - commit("SET_ACCOUNTID", id); - localStorage.setItem("accountId", id); - return account; - }, - - async setUser({ commit }, id) { - await User.setCurrent({ id }); - commit("SET_USERID", id); - commit("SET_TOKEN", id); - setToken(id); - }, - - async getInfo({ commit, dispatch }) { - const accountId = localStorage.getItem("accountId"); - commit("SET_ACCOUNTID", accountId); - - const res = await User.getCurrent(); - const { id, name } = res.data[0]; - const menuTree = res.data[0].menuList; - const roles = ["admin"]; - const avatar = - "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"; - const introduction = ""; - - const data = { roles, menuTree, id, name, avatar, introduction }; - - commit("SET_ROLES", roles); - commit("SET_MENUTREE", menuTree); - commit("SET_NAME", name); - commit("SET_AVATAR", avatar); - commit("SET_INTRODUCTION", introduction); - commit("SET_USER", res.data[0]); - commit("SET_USERID", id); - - dispatch("permission/generateRoutes", menuTree, { root: true }); - - return data; - }, - - // user logout - async logout({ dispatch }) { - await dispatch("resetCache"); - resetRouter(); - - // reset visited views and cached views - // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485 - dispatch("tagsView/delAllViews", null, { root: true }); - }, - - // resst all cache - async resetCache({ commit }) { - commit("SET_ACCOUNTID", null); - commit("SET_TOKEN", null); - commit("SET_ROLES", null); - commit("SET_MENUTREE", null); - commit("SET_NAME", null); - commit("SET_AVATAR", null); - commit("SET_INTRODUCTION", null); - commit("SET_USER", null); - commit("SET_USERID", null); - localStorage.clear(); - removeToken(); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/styles/element-ui.scss b/WebSite/src/styles/element-ui.scss index 955d3cab..e631084b 100644 --- a/WebSite/src/styles/element-ui.scss +++ b/WebSite/src/styles/element-ui.scss @@ -6,7 +6,7 @@ } .el-upload { - input[type="file"] { + input[type='file'] { display: none !important; } } @@ -31,7 +31,7 @@ .fixed-width { .el-button--mini { padding: 7px 10px; - width: 60px; + min-width: 60px; } } @@ -69,7 +69,7 @@ // dropdown .el-dropdown-menu { a { - display: block + display: block; } } @@ -82,3 +82,23 @@ .el-range-separator { box-sizing: content-box; } + +// notification +.el-notification { + background-color: rgba(0, 0, 0, 0.6) !important; + border: 0 !important; + + .el-notification__title { + color: #fff !important; + } + + .el-notification__content { + color: #eee !important; + } + + .el-notification__closeBtn { + &:hover { + color: #ddd !important; + } + } +} diff --git a/WebSite/src/styles/element-variables.scss b/WebSite/src/styles/element-variables.scss index 30a0e6bc..5bdc4dad 100644 --- a/WebSite/src/styles/element-variables.scss +++ b/WebSite/src/styles/element-variables.scss @@ -6,7 +6,7 @@ /* theme color */ $--color-primary: #1890ff; $--color-success: #13ce66; -$--color-warning: #FFBA00; +$--color-warning: #ffba00; $--color-danger: #ff4949; // $--color-info: #1E1E1E; @@ -17,10 +17,10 @@ $--button-font-weight: 400; $--border-color-light: #dfe4ed; $--border-color-lighter: #e6ebf5; -$--table-border:1px solid#dfe6ec; +$--table-border: 1px solid #dfe6ec; /* icon font path, required */ -$--font-path: '~element-ui/lib/theme-chalk/fonts'; +$--font-path: "~element-ui/lib/theme-chalk/fonts"; @import "~element-ui/packages/theme-chalk/src/index"; diff --git a/WebSite/src/styles/index.scss b/WebSite/src/styles/index.scss index 96095ef6..1d105ee3 100644 --- a/WebSite/src/styles/index.scss +++ b/WebSite/src/styles/index.scss @@ -4,6 +4,8 @@ @import './element-ui.scss'; @import './sidebar.scss'; @import './btn.scss'; +@import './var-theme.scss'; +@import './navbar.scss'; body { height: 100%; @@ -22,7 +24,7 @@ html { box-sizing: border-box; } -#app { +#app,#app-inner { height: 100%; } diff --git a/WebSite/src/styles/mixin-theme.scss b/WebSite/src/styles/mixin-theme.scss new file mode 100644 index 00000000..997a2a11 --- /dev/null +++ b/WebSite/src/styles/mixin-theme.scss @@ -0,0 +1,181 @@ +@mixin theme( + // 主题åç§° + $theme: default, + // 主色调(一级èœå•背景色,登录界é¢èƒŒæ™¯è‰²ï¼‰ + $menuBg: #303a4b, + // 一级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + $menuHover: #263445, + // 二级èœå•背景色 + $subMenuBg: #1f2d3d, + // 二级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + $subMenuHover: #001528, + // èœå•æ–‡å—颜色 + $menuText: #bfcbd9, + // èœå•激活时文å—颜色 + $menuActiveText: #508aff, + // èœå•激活时父级文å—颜色 + $subMenuActiveText: #f4f4f5, + // æ¿€æ´»æ ‡å¿—é¢œè‰² + $activeColor: #508aff +) { + // loginPage + .login-container { + background-color: $menuBg !important; + + .login-form { + color: $subMenuActiveText !important; + } + + .el-input { + input { + color: $subMenuActiveText !important; + caret-color: $subMenuActiveText !important; + } + } + + @if ($theme==light) { + .selection-container { + .selection { + &:hover { + background: rgba(55, 55, 55, 0.3) !important; + } + } + } + } + } + + // siderbar && navbar + .sidebar-container, + .navbar-container { + background-color: $menuBg !important; + + & .nest-menu .el-sub-menu > .el-sub-menu__title, + & .el-sub-menu .el-menu-item { + color: $menuText !important; + background-color: $subMenuBg !important; + border-left: 0 solid $activeColor !important; + + &:hover { + background-color: $subMenuHover !important; + } + } + & .el-sub-menu .el-menu-item.is-active { + border-left: 5px solid $activeColor !important; + } + + .submenu-title-noDropdown, + .el-sub-menu__title, + .el-menu-item { + color: $menuText !important; + background-color: $menuBg !important; + &:hover { + background-color: $menuHover !important; + } + } + + .is-active > .el-sub-menu__title { + color: $subMenuActiveText !important; + } + + .el-menu-item.is-active { + color: $menuActiveText !important; + } + } + + .sidebar-container { + @if ($theme==light) { + border-right: 1px solid #d8dce5 !important; + } + + .sidebar-logo-container { + background-color: $menuBg !important; + .sidebar-title { + color: $menuText !important; + } + } + } + + .navbar-container { + @if ($theme==light) { + border-bottom: 1px solid #d8dce5 !important; + } + } + + // tagsView + .tags-view-container { + .tags-view-item { + &::after { + background-color: $activeColor !important; + } + } + } + + // popMenu + > .el-menu--vertical, + > .el-menu--horizontal { + .el-menu { + background-color: $subMenuBg !important; + } + + .nest-menu .el-sub-menu > .el-sub-menu__title, + .el-menu-item { + color: $menuText !important; + background-color: $subMenuBg !important; + + &:hover { + background-color: $subMenuHover !important; + } + } + + .is-active.el-menu-item { + color: $menuActiveText !important; + } + } +} + +/* theme: default */ +.default, +.default ~ .el-popper { + @include theme(); +} +.default.theme-selection { + background-color: rgba(48, 65, 86, 0.6); +} + +/* theme: light */ +.light, +.light ~ .el-popper { + @include theme( + light, + #fafafa, + #e6e6e6, + #f0f0f0, + #e1e1e1, + #707276, + #508aff, + #495060, + #508aff + ); +} +.light.theme-selection { + background-color: rgba(230, 230, 230, 1); +} + +/* theme: dark */ +.dark, +.dark ~ .el-popper { + @include theme( + dark, + #292732, + #53525a, + #3d3b46, + #5b5a62, + #bfcbd9, + #508aff, + #f4f4f5, + #508aff + ); +} +.dark.theme-selection { + background-color: rgba(41, 39, 50, 0.7); +} diff --git a/WebSite/src/styles/navbar.scss b/WebSite/src/styles/navbar.scss new file mode 100644 index 00000000..f70788ab --- /dev/null +++ b/WebSite/src/styles/navbar.scss @@ -0,0 +1,41 @@ +#app { + .main-container { + .navbar-container { + height: 56px; + width: 100%; + transition: background-color 0.28s; + + .el-scrollbar__wrap { + height: 73px !important; + overflow-y: hidden !important; + } + + .el-menu { + display: flex !important; + background-color: transparent !important; + border-bottom: 0; + + .el-sub-menu__title { + padding: 0 40px 0 18px !important; + + .svg-icon { + margin-left: 0 !important; + } + + .el-sub-menu__icon-arrow { + right: 12px !important; + display: block !important; + } + } + } + } + } +} + +.el-menu--horizontal { + .el-menu-item { + height: 56px !important; + padding: 0 20px !important; + line-height: 56px !important; + } +} diff --git a/WebSite/src/styles/reset.scss b/WebSite/src/styles/reset.scss deleted file mode 100644 index b796962d..00000000 --- a/WebSite/src/styles/reset.scss +++ /dev/null @@ -1,67 +0,0 @@ -.mtNone { - .el-card__body { - padding-top: 0; - } -} -.tright { - text-align: right; -} -.filter-tree { - .custom-tree-node { - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - font-size: 14px; - padding-right: 8px; - } -} -.mt20 { - margin-top: 20px; -} -.btop { - border-top: 3px solid #3c8dbc; -} -.pd10 { - .el-card__body { - padding: 10px; - } -} -.pnone { - .el-card__body { - padding-top: 0; - } - .el-collapse-item__wrap { - border: none; - } -} - -.overAuto { - overflow: inherit; -} -/* 滚动æ¡ç¾ŽåŒ– */ -::-webkit-scrollbar { - width: 5px; - height: 5px; -} -/*外层轨é“。å¯ä»¥ç”¨display:noneè®©å…¶ä¸æ˜¾ç¤ºï¼Œä¹Ÿå¯ä»¥æ·»åŠ èƒŒæ™¯å›¾ç‰‡ï¼Œé¢œè‰²æ”¹å˜æ˜¾ç¤ºæ•ˆæžœ*/ -::-webkit-scrollbar-track { - width: 6px; - background-color: #fff; - -webkit-border-radius: 2em; - -moz-border-radius: 2em; - border-radius: 2em; -} -/*滚动æ¡çš„设置*/ -::-webkit-scrollbar-thumb { - background-color: #409eff; - background-clip: padding-box; - min-height: 28px; - -webkit-border-radius: 2em; - -moz-border-radius: 2em; - border-radius: 2em; -} -/*滚动æ¡ç§»ä¸ŠåŽ»çš„èƒŒæ™¯*/ -::-webkit-scrollbar-thumb:hover { - background-color: #409eff; -} diff --git a/WebSite/src/styles/sidebar.scss b/WebSite/src/styles/sidebar.scss index 3dad4c39..364a3f9d 100644 --- a/WebSite/src/styles/sidebar.scss +++ b/WebSite/src/styles/sidebar.scss @@ -1,14 +1,17 @@ #app { - .main-container { min-height: 100%; - transition: margin-left .28s; + transition: margin-left 0.28s; margin-left: $sideBarWidth; position: relative; + display: flex; + flex-direction: column; + background-color: #f0f2f5; } .sidebar-container { - transition: width 0.28s; + transition-property: width, background-color; + transition-duration: 0.28s; width: $sideBarWidth !important; background-color: $menuBg; height: 100%; @@ -22,11 +25,23 @@ // reset element-ui css .horizontal-collapse-transition { - transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; + transition: 0s width ease-in-out, 0s padding-left ease-in-out, + 0s padding-right ease-in-out; } .scrollbar-wrapper { overflow-x: hidden !important; + + // fixd on 1.0.2-beta.31 + // scrollbar-width: none will be set on firefox, maybe a bug + // this may cause the display problem on sidebar menu + // set auto to fix + // scrollbar-width: auto !important; + + // fixd on 1.0.2-beta.31 + // margin will lose on m1 mac, maybe a bug + // force set margin + // margin: 0 -17px -17px 0 !important; } .el-scrollbar__bar.is-vertical { @@ -57,38 +72,42 @@ margin-right: 16px; } + .sub-el-icon { + margin-right: 12px; + margin-left: -2px; + } + .el-menu { border: none; height: 100%; width: 100% !important; } - // menu hover - .submenu-title-noDropdown, - .el-submenu__title { - &:hover { - background-color: $menuHover !important; - } - } - - .is-active>.el-submenu__title { - color: $subMenuActiveText !important; - } - - & .nest-menu .el-submenu>.el-submenu__title, - & .el-submenu .el-menu-item { + & .nest-menu .el-sub-menu > .el-sub-menu__title, + & .el-sub-menu .el-menu-item { min-width: $sideBarWidth !important; - background-color: $subMenuBg !important; + } - &:hover { - background-color: $subMenuHover !important; - } + .el-menu-item, + .sidebar-logo-container, + .el-sub-menu__title { + transition: all 0.28s; } } .hideSidebar { .sidebar-container { width: 54px !important; + + .el-menu-item { + & > span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; + } + } } .main-container { @@ -105,29 +124,37 @@ .svg-icon { margin-left: 20px; } + + .sub-el-icon { + margin-left: 19px; + } } } - .el-submenu { + .el-sub-menu { overflow: hidden; - &>.el-submenu__title { + & > .el-sub-menu__title { padding: 0 !important; .svg-icon { margin-left: 20px; } - .el-submenu__icon-arrow { + .sub-el-icon { + margin-left: 19px; + } + + .el-sub-menu__icon-arrow { display: none; } } } .el-menu--collapse { - .el-submenu { - &>.el-submenu__title { - &>span { + .el-sub-menu { + & > .el-sub-menu__title { + & > span { height: 0; width: 0; overflow: hidden; @@ -139,7 +166,7 @@ } } - .el-menu--collapse .el-menu .el-submenu { + .el-menu--collapse .el-menu .el-sub-menu { min-width: $sideBarWidth !important; } @@ -150,7 +177,7 @@ } .sidebar-container { - transition: transform .28s; + transition: transform 0.28s; width: $sideBarWidth !important; } @@ -164,7 +191,6 @@ } .withoutAnimation { - .main-container, .sidebar-container { transition: none; @@ -174,22 +200,26 @@ // when menu collapsed .el-menu--vertical { - &>.el-menu { + & > .el-menu { .svg-icon { margin-right: 16px; } - } - - .nest-menu .el-submenu>.el-submenu__title, - .el-menu-item { - &:hover { - // you can use $subMenuHover - background-color: $menuHover !important; + .sub-el-icon { + margin-right: 12px; + margin-left: -2px; } } + // .nest-menu .el-sub-menu>.el-sub-menu__title, + // .el-menu-item { + // &:hover { + // // you can use $subMenuHover + // background-color: $menuHover !important; + // } + // } + // the scroll bar appears when the subMenu is too long - >.el-menu--popup { + > .el-menu--popup { max-height: 100vh; overflow-y: auto; diff --git a/WebSite/src/styles/transition.scss b/WebSite/src/styles/transition.scss index 4cb27cc8..50dab1a6 100644 --- a/WebSite/src/styles/transition.scss +++ b/WebSite/src/styles/transition.scss @@ -1,46 +1,101 @@ // global transition css +// !! there are only six classes can be used in Vue.js 3.x +// v-enter-active,v-enter-from,v-enter-to +// v-leave-active,v-leave-from,v-leave-to +// see detail: https://v3.vuejs.org/guide/transitions-enterleave.html#transition-classes /* fade */ -.fade-enter-active, -.fade-leave-active { +.fade-leave-active, +.fade-enter-active { transition: opacity 0.28s; } -.fade-enter, -.fade-leave-active { +.fade-enter-from, +.fade-leave-to { opacity: 0; } /* fade-transform */ -.fade-transform-leave-active, -.fade-transform-enter-active { - transition: all .5s; +.fade-transform-s-leave-active, +.fade-transform-s-enter-active { + transition: all 0.18s; } -.fade-transform-enter { +.fade-transform-s-enter-from, +.fade-transform-s-leave-to { opacity: 0; - transform: translateX(-30px); + transform: translateX(20px); +} + +.fade-transform-leave-active, +.fade-transform-enter-active { + transition: all 0.5s; } +.fade-transform-enter-from, .fade-transform-leave-to { opacity: 0; transform: translateX(30px); } +.fade-transform-bottom-s-leave-active, +.fade-transform-bottom-s-enter-active { + transition: all 0.18s; +} + +.fade-transform-bottom-s-enter-from, +.fade-transform-bottom-s-leave-to { + opacity: 0; + transform: translateY(20px); +} + +.fade-transform-bottom-leave-active, +.fade-transform-bottom-enter-active { + transition: all 0.5s; +} + +.fade-transform-bottom-enter-from, +.fade-transform-bottom-leave-to { + opacity: 0; + transform: translateY(30px); +} + +.fade-transform-top-s-leave-active, +.fade-transform-top-s-enter-active { + transition: all 0.18s; +} + +.fade-transform-top-s-enter-from, +.fade-transform-top-s-leave-to { + opacity: 0; + transform: translateY(-20px); +} + +.fade-transform-top-leave-active, +.fade-transform-top-enter-active { + transition: all 0.5s; +} + +.fade-transform-top-enter-from, +.fade-transform-top-leave-to { + opacity: 0; + transform: translateY(-30px); +} + /* breadcrumb transition */ .breadcrumb-enter-active, .breadcrumb-leave-active { - transition: all .5s; + transition: all 0.5s; } -.breadcrumb-enter, -.breadcrumb-leave-active { +.breadcrumb-enter-from, +.breadcrumb-leave-to { opacity: 0; transform: translateX(20px); } .breadcrumb-move { - transition: all .5s; + transition: all 0.5s; } .breadcrumb-leave-active { diff --git a/WebSite/src/styles/var-theme.scss b/WebSite/src/styles/var-theme.scss new file mode 100644 index 00000000..d4bc61fc --- /dev/null +++ b/WebSite/src/styles/var-theme.scss @@ -0,0 +1,149 @@ +/* åˆå§‹ä¸»é¢˜é¢œè‰² +------------------------------- */ +:root { + // 主色调(一级èœå•背景色,登录界é¢èƒŒæ™¯è‰²ï¼‰ + --color-menuBg: #303a4b; + // 一级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + --color-menuHover: #263445; + // 二级èœå•背景色 + --color-subMenuBg: #1f2d3d; + // 二级èœå•æ‚¬åœæ—¶é«˜äº®è‰² + --color-subMenuHover: #001528; + // èœå•æ–‡å—颜色 + --color-menuText: #bfcbd9; + // èœå•激活时文å—颜色 + --color-menuActiveText: #508aff; + // èœå•激活时父级文å—颜色 + --color-subMenuActiveText: #f4f4f5; + // æ¿€æ´»æ ‡å¿—é¢œè‰² + --color-activeColor: #508aff; + // èœå•侧边框 + --menu-border-width: 0px; +} + +// loginPage +.login-container { + background-color: var(--color-menuBg) !important; + + .login-form { + color: var(--color-subMenuActiveText) !important; + } + + .el-input { + input { + color: var(--color-subMenuActiveText) !important; + caret-color: var(--color-subMenuActiveText) !important; + } + } +} + +// siderbar && navbar +.sidebar-container, +.navbar-container { + background-color: var(--color-menuBg) !important; + + & .nest-menu .el-sub-menu > .el-sub-menu__title, + & .el-sub-menu .el-menu-item { + color: var(--color-menuText) !important; + background-color: var(--color-subMenuBg) !important; + border-left: 0 solid var(--color-activeColor) !important; + + &:hover { + background-color: var(--color-subMenuHover) !important; + } + } + & .el-sub-menu .el-menu-item.is-active { + border-left: 5px solid var(--color-activeColor) !important; + } + + .submenu-title-noDropdown, + .el-sub-menu__title, + .el-menu-item { + color: var(--color-menuText) !important; + background-color: var(--color-menuBg) !important; + &:hover { + background-color: var(--color-menuHover) !important; + } + } + + .is-active > .el-sub-menu__title { + color: var(--color-subMenuActiveText) !important; + } + + .el-menu-item.is-active { + color: var(--color-menuActiveText) !important; + } + + .el-icon-arrow-down::before { + color: var(--color-menuText) !important; + } +} + +.sidebar-container { + border-right: var(--menu-border-width) solid #d8dce5 !important; + + .sidebar-logo-container { + background-color: var(--color-menuBg) !important; + .sidebar-title { + color: var(--color-menuText) !important; + } + } +} + +.navbar-container { + border-bottom: var(--menu-border-width) solid #d8dce5 !important; +} + +body > .el-popper { + .el-menu { + background-color: var(--color-subMenuBg) !important; + } + + .el-sub-menu__title, + .el-menu-item { + color: var(--color-menuText) !important; + background-color: var(--color-subMenuBg) !important; + &:hover { + background-color: var(--color-subMenuHover) !important; + } + } + + .is-active > .el-sub-menu__title { + color: var(--color-subMenuActiveText) !important; + } + + .el-menu-item.is-active { + color: var(--color-menuActiveText) !important; + } +} + +// tagsView +.tags-view-container { + .tags-view-item { + &::after { + background-color: var(--color-activeColor) !important; + } + } +} + +// popMenu +> .el-menu--vertical, +> .el-menu--horizontal { + .el-menu { + background-color: var(--color-subMenuBg) !important; + } + + .nest-menu .el-sub-menu > .el-sub-menu__title, + .el-menu-item { + color: var(--color-menuText) !important; + background-color: var(--color-subMenuBg) !important; + + &:hover { + background-color: var(--color-subMenuHover) !important; + } + } + + .is-active.el-menu-item { + color: var(--color-menuActiveText) !important; + } +} diff --git a/WebSite/src/styles/variables.scss b/WebSite/src/styles/variables.scss index a19c27c1..a2f3b190 100644 --- a/WebSite/src/styles/variables.scss +++ b/WebSite/src/styles/variables.scss @@ -1,17 +1,17 @@ // base color -$blue:#324157; -$light-blue:#3A71A8; -$red:#C03639; -$pink: #E65D6E; -$green: #30B08F; -$tiffany: #4AB7BD; -$yellow:#FEC171; -$panGreen: #30B08F; +$blue: #324157; +$light-blue: #3a71a8; +$red: #c03639; +$pink: #e65d6e; +$green: #30b08f; +$tiffany: #4ab7bd; +$yellow: #fec171; +$panGreen: #30b08f; // sidebar -$menuText:#bfcbd9; -$menuActiveText:#409EFF; -$subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951 +$menuText: #bfcbd9; +$menuActiveText: #409eff; +$subMenuActiveText: #f4f4f5; // https://github.com/ElemeFE/element/issues/12951 $menuBg:#304156; $menuHover:#263445; diff --git a/WebSite/src/utils/Common.js b/WebSite/src/utils/Common.js new file mode 100644 index 00000000..c0cd7d5f --- /dev/null +++ b/WebSite/src/utils/Common.js @@ -0,0 +1,26 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-20 09:34:35 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-20 11:17:54 + */ + +class Common { + static deepClone(source) { + if (!source && typeof source !== 'object') { + throw new Error('error arguments', 'deepClone'); + } + const targetObj = source.constructor === Array ? [] : {}; + Object.keys(source).forEach(keys => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = this.deepClone(source[keys]); + } else { + targetObj[keys] = source[keys]; + } + }); + return targetObj; + } +} + +export default Common; diff --git a/WebSite/src/utils/Storage.js b/WebSite/src/utils/Storage.js new file mode 100644 index 00000000..812a440a --- /dev/null +++ b/WebSite/src/utils/Storage.js @@ -0,0 +1,233 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 09:37:43 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-08-21 09:34:55 + */ + +import CryptoJS from 'crypto-js'; +import { recognizeId, storageEncrypt } from '@/config'; + +/** + * storage util + * @class Storage + */ +class Storage { + /** + * @internal + * @method _getFullKey + * @for Storage + * @param {string} key + * @return {*} + */ + static _getFullKey(key) { + if (typeof key !== 'string' || !key) { + return false; + } + return `${this.recognizeId}:${key}`; + } + + /** + * @todo + * @internal + * @method _encrypt + * @for Storage + * @param {string} value + * @return {string} + */ + static _encrypt(value) { + if (!this.encrypt) { + return value; + } + const encryptedValue = CryptoJS.AES.encrypt(value, recognizeId).toString(); + return encryptedValue; + } + + /** + * @internal + * @method _decrypt + * @for Storage + * @param {string} value + * @return {string} + */ + static _decrypt(encryptedValue) { + if (!this.encrypt) { + return encryptedValue; + } + const value = CryptoJS.AES.decrypt(encryptedValue, recognizeId).toString( + CryptoJS.enc.Utf8 + ); + return value; + } + + /** + * @internal + * @method _setStorage + * @for Storage + * @param {string} type + * @param {string} key + * @param {*} value + * @param {number} expired + */ + static _setStorage(type, key, value, expired = 0) { + if (!['localStorage', 'sessionStorage'].includes(type)) { + return; + } + const fullKey = this._getFullKey(key); + if (!fullKey) { + return; + } + if (!value && value !== 0 && value !== false) { + return; + } + const valueObj = { + value + }; + if (expired) { + valueObj.expiredTime = Date.now() + expired; + } else { + const exists = window[type].getItem(fullKey); + if (exists) { + const existsObj = JSON.parse(this._decrypt(exists)); + const { expiredTime } = existsObj; + expiredTime && (valueObj.expiredTime = expiredTime); + } + } + const storageValue = this._encrypt(JSON.stringify(valueObj)); + window[type].setItem(fullKey, storageValue); + } + + /** + * @method _getStorage + * @for Storage + * @param {string} type + * @param {string} key + * @return {*} + */ + static _getStorage(type, key) { + if (!['localStorage', 'sessionStorage'].includes(type)) { + return; + } + const fullKey = this._getFullKey(key); + if (!fullKey) { + return null; + } + const exists = window[type].getItem(fullKey); + if (!exists) { + return null; + } + const existsObj = JSON.parse(this._decrypt(exists)); + const { value, expiredTime } = existsObj; + if (expiredTime && expiredTime < Date.now()) { + this.delLocal(key); + return null; + } + return value; + } + + /** + * @method _delStorage + * @for Storage + * @param {string} type + * @param {string} key + */ + static _delStorage(type, key) { + if (!['localStorage', 'sessionStorage'].includes(type)) { + return; + } + const fullKey = this._getFullKey(key); + if (fullKey) { + window[type].removeItem(fullKey); + } else { + window[type].clear(); + } + } + + /** + * @method addListener + * @for Storage + * @param {function} callback + */ + static addListener(callback) { + if (typeof callback === 'function') { + window.addEventListener('storage', callback); + } + } + + /** + * @method removeListener + * @for Storage + * @param {function} callback + */ + static removeListener(callback) { + if (typeof callback === 'function') { + window.removeEventListener('storage', callback); + } + } + + /** + * @method setLocal + * @for Storage + * @param {string} key + * @param {*} value + * @param {number} expired + */ + static setLocal(key, value, expired = 0) { + this._setStorage('localStorage', key, value, expired); + } + + /** + * @method getLocal + * @for Storage + * @param {string} key + * @return {*} + */ + static getLocal(key) { + return this._getStorage('localStorage', key); + } + + /** + * @method delLocal + * @for Storage + * @param {string} key + */ + static delLocal(key) { + this._delStorage('localStorage', key); + } + + /** + * @method setSession + * @for Storage + * @param {string} key + * @param {*} value + * @param {number} expired + */ + static setSession(key, value, expired = 0) { + this._setStorage('sessionStorage', key, value, expired); + } + + /** + * @method getSession + * @for Storage + * @param {string} key + * @return {*} + */ + static getSession(key) { + return this._getStorage('sessionStorage', key); + } + + /** + * @method delSession + * @for Storage + * @param {string} key + */ + static delSession(key) { + this._delStorage('sessionStorage', key); + } +} + +Storage.recognizeId = recognizeId || 'default'; +Storage.encrypt = storageEncrypt && true; + +export default Storage; diff --git a/WebSite/src/utils/auth.js b/WebSite/src/utils/auth.js deleted file mode 100644 index ba92eea2..00000000 --- a/WebSite/src/utils/auth.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:58 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-04-21 09:25:25 - */ -import Cookies from "js-cookie"; - -const TokenKey = "Admin-Token"; - -export function getToken() { - return Cookies.get(TokenKey); -} - -export function setToken(token) { - return Cookies.set(TokenKey, token); -} - -export function removeToken() { - return Cookies.remove(TokenKey); -} - -export function getStorage(key) { - return JSON.parse(localStorage.getItem(key)); -} - -export function setStorage(key, value) { - return localStorage.setItem(key, JSON.stringify(value)); -} - -export function removeStorage(key) { - return localStorage.removeItem(key); -} diff --git a/WebSite/src/utils/clipboard.js b/WebSite/src/utils/clipboard.js index a44307c6..cc22b5ca 100644 --- a/WebSite/src/utils/clipboard.js +++ b/WebSite/src/utils/clipboard.js @@ -1,18 +1,25 @@ -import Vue from "vue"; -import Clipboard from "clipboard"; +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 10:12:27 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 10:12:34 + */ +import Vue from 'vue'; +import Clipboard from 'clipboard'; function clipboardSuccess() { Vue.prototype.$message({ - message: "Copy successfully", - type: "success", + message: 'Copy successfully', + type: 'success', duration: 1500 }); } function clipboardError() { Vue.prototype.$message({ - message: "Copy failed", - type: "error" + message: 'Copy failed', + type: 'error' }); } @@ -20,11 +27,11 @@ export default function handleClipboard(text, event) { const clipboard = new Clipboard(event.target, { text: () => text }); - clipboard.on("success", () => { + clipboard.on('success', () => { clipboardSuccess(); clipboard.destroy(); }); - clipboard.on("error", () => { + clipboard.on('error', () => { clipboardError(); clipboard.destroy(); }); diff --git a/WebSite/src/utils/config.js b/WebSite/src/utils/config.js deleted file mode 100644 index 720d3006..00000000 --- a/WebSite/src/utils/config.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-14 10:47:00 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-10 08:49:59 - */ - -import axios from "axios"; - -async function getConfig() { - try { - const res = await axios.get("./config.json"); - return res.data; - } catch (err) { - console.log(`no config: ${err}`); - return null; - } -} - -export { getConfig }; diff --git a/WebSite/src/utils/enum.js b/WebSite/src/utils/enum.js deleted file mode 100644 index 529a002e..00000000 --- a/WebSite/src/utils/enum.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-17 15:42:24 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-17 16:12:16 - */ -export const EnableInfo = { - YES: "ç¦ç”¨", - NO: "å¯ç”¨" -}; - -export const UserType = { - ADMIN: "管ç†å‘˜", - TEACHER: "教工", - STUDENT: "å¦ç”Ÿ", - EXTERNAL: "外è˜", - OTHER: "å…¶ä»–" -}; diff --git a/WebSite/src/utils/error-log.js b/WebSite/src/utils/error-log.js deleted file mode 100644 index c1f5614b..00000000 --- a/WebSite/src/utils/error-log.js +++ /dev/null @@ -1,35 +0,0 @@ -import Vue from "vue"; -import store from "@/store"; -import { isString, isArray } from "@/utils/validate"; -import settings from "@/settings"; - -// you can set in settings.js -// errorLog:'production' | ['production', 'development'] -const { errorLog: needErrorLog } = settings; - -function checkNeed() { - const env = process.env.NODE_ENV; - if (isString(needErrorLog)) { - return env === needErrorLog; - } - if (isArray(needErrorLog)) { - return needErrorLog.includes(env); - } - return false; -} - -if (checkNeed()) { - Vue.config.errorHandler = function(err, vm, info, a) { - // Don't ask me why I use Vue.nextTick, it just a hack. - // detail see https://forum.vuejs.org/t/dispatch-in-vue-config-errorhandler-has-some-problem/23500 - Vue.nextTick(() => { - store.dispatch("errorLog/addErrorLog", { - err, - vm, - info, - url: window.location.href - }); - console.error(err, info); - }); - }; -} diff --git a/WebSite/src/utils/formatter.js b/WebSite/src/utils/formatter.js new file mode 100644 index 00000000..96f3ac14 --- /dev/null +++ b/WebSite/src/utils/formatter.js @@ -0,0 +1,54 @@ +/* + * @Author: Qun + * @Date: 2021-08-30 15:14:23 + * @LastEditTime: 2021-08-31 17:55:41 + * @LastEditors: Qun + */ + +/** + * money formatting + * @method: moneyFormatter + * @param {Number} number è¦æ ¼å¼åŒ–çš„æ•°å— + * @param {Number} decimals ä¿ç•™å‡ ä½å°æ•° + * @param {String} thousandsSep åƒåˆ†ä½ç¬¦å· + * @return {String} + */ +export function moneyFormatter(number, decimals, thousandsSep = '') { + number = (number + '').replace(/[^0-9+-Ee.]/g, ''); + const n = !isFinite(+number) ? 0 : +number, + prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), + toFixedFix = function(n, prec) { + const k = Math.pow(10, prec); + return '' + Math.ceil(n * k) / k; + }; + + const s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); + const re = /(-?\d+)(\d{3})/; + while (re.test(s[0]) && thousandsSep) { + s[0] = s[0].replace(re, `$1${thousandsSep}$2`); + } + + if ((s[1] || '').length < prec) { + s[1] = s[1] || ''; + s[1] += new Array(prec - s[1].length + 1).join('0'); + } + return s.join('.'); +} + +/** + * date formatting to text + * @param param 当剿—¶é—´ï¼Œnew Date() æ ¼å¼ + * @description param 调用 `formatAxis(new Date())` 输出 `上åˆå¥½` + * @returns 返回拼接åŽçš„æ—¶é—´å—符串 + */ +export function formatAxis(param) { + const hour = new Date(param).getHours(); + if (hour < 6) return '凌晨'; + else if (hour < 9) return '早上'; + else if (hour < 11) return '上åˆ'; + else if (hour < 13) return 'ä¸åˆ'; + else if (hour < 17) return '下åˆ'; + else if (hour < 19) return '傿™š'; + else if (hour < 22) return '晚上'; + else return '夜里好'; +} diff --git a/WebSite/src/utils/get-page-title.js b/WebSite/src/utils/get-page-title.js deleted file mode 100644 index 119d994d..00000000 --- a/WebSite/src/utils/get-page-title.js +++ /dev/null @@ -1,10 +0,0 @@ -import defaultSettings from "@/settings"; - -const title = defaultSettings.title || "Vue Element Admin"; - -export default function getPageTitle(pageTitle) { - if (pageTitle) { - return `${pageTitle} - ${title}`; - } - return `${title}`; -} diff --git a/WebSite/src/utils/index.js b/WebSite/src/utils/index.js deleted file mode 100644 index 27dcdf34..00000000 --- a/WebSite/src/utils/index.js +++ /dev/null @@ -1,362 +0,0 @@ -/** - * Created by PanJiaChen on 16/11/18. - */ - -/** - * Parse the time to string - * @param {(Object|string|number)} time - * @param {string} cFormat - * @returns {string | null} - */ -export function parseTime(time, cFormat) { - if (arguments.length === 0) { - return null; - } - const format = cFormat || "{y}-{m}-{d} {h}:{i}:{s}"; - let date; - if (typeof time === "object") { - date = time; - } else { - if (typeof time === "string" && /^[0-9]+$/.test(time)) { - time = parseInt(time); - } - if (typeof time === "number" && time.toString().length === 10) { - time = time * 1000; - } - date = new Date(time); - } - const formatObj = { - y: date.getFullYear(), - m: date.getMonth() + 1, - d: date.getDate(), - h: date.getHours(), - i: date.getMinutes(), - s: date.getSeconds(), - a: date.getDay() - }; - const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { - const value = formatObj[key]; - // Note: getDay() returns 0 on Sunday - if (key === "a") { - return ["æ—¥", "一", "二", "三", "å››", "五", "å…"][value]; - } - return value.toString().padStart(2, "0"); - }); - return time_str; -} - -/** - * @param {number} time - * @param {string} option - * @returns {string} - */ -export function formatTime(time, option) { - if (("" + time).length === 10) { - time = parseInt(time) * 1000; - } else { - time = +time; - } - const d = new Date(time); - const now = Date.now(); - - const diff = (now - d) / 1000; - - if (diff < 30) { - return "刚刚"; - } else if (diff < 3600) { - // less 1 hour - return Math.ceil(diff / 60) + "分钟å‰"; - } else if (diff < 3600 * 24) { - return Math.ceil(diff / 3600) + "å°æ—¶å‰"; - } else if (diff < 3600 * 24 * 2) { - return "1天å‰"; - } - if (option) { - return parseTime(time, option); - } else { - return ( - d.getMonth() + - 1 + - "月" + - d.getDate() + - "æ—¥" + - d.getHours() + - "æ—¶" + - d.getMinutes() + - "分" - ); - } -} - -/** - * @param {string} url - * @returns {Object} - */ -export function getQueryObject(url) { - url = url == null ? window.location.href : url; - const search = url.substring(url.lastIndexOf("?") + 1); - const obj = {}; - const reg = /([^?&=]+)=([^?&=]*)/g; - search.replace(reg, (rs, $1, $2) => { - const name = decodeURIComponent($1); - let val = decodeURIComponent($2); - val = String(val); - obj[name] = val; - return rs; - }); - return obj; -} - -/** - * @param {string} input value - * @returns {number} output value - */ -export function byteLength(str) { - // returns the byte length of an utf8 string - let s = str.length; - for (var i = str.length - 1; i >= 0; i--) { - const code = str.charCodeAt(i); - if (code > 0x7f && code <= 0x7ff) s++; - else if (code > 0x7ff && code <= 0xffff) s += 2; - if (code >= 0xdc00 && code <= 0xdfff) i--; - } - return s; -} - -/** - * @param {Array} actual - * @returns {Array} - */ -export function cleanArray(actual) { - const newArray = []; - for (let i = 0; i < actual.length; i++) { - if (actual[i]) { - newArray.push(actual[i]); - } - } - return newArray; -} - -/** - * @param {Object} json - * @returns {Array} - */ -export function param(json) { - if (!json) return ""; - return cleanArray( - Object.keys(json).map(key => { - if (json[key] === undefined) return ""; - return encodeURIComponent(key) + "=" + encodeURIComponent(json[key]); - }) - ).join("&"); -} - -/** - * @param {string} url - * @returns {Object} - */ -export function param2Obj(url) { - const search = url.split("?")[1]; - if (!search) { - return {}; - } - return JSON.parse( - '{"' + - decodeURIComponent(search) - .replace(/"/g, '\\"') - .replace(/&/g, '","') - .replace(/=/g, '":"') - .replace(/\+/g, " ") + - '"}' - ); -} - -/** - * @param {string} val - * @returns {string} - */ -export function html2Text(val) { - const div = document.createElement("div"); - div.innerHTML = val; - return div.textContent || div.innerText; -} - -/** - * Merges two objects, giving the last one precedence - * @param {Object} target - * @param {(Object|Array)} source - * @returns {Object} - */ -export function objectMerge(target, source) { - if (typeof target !== "object") { - target = {}; - } - if (Array.isArray(source)) { - return source.slice(); - } - Object.keys(source).forEach(property => { - const sourceProperty = source[property]; - if (typeof sourceProperty === "object") { - target[property] = objectMerge(target[property], sourceProperty); - } else { - target[property] = sourceProperty; - } - }); - return target; -} - -/** - * @param {HTMLElement} element - * @param {string} className - */ -export function toggleClass(element, className) { - if (!element || !className) { - return; - } - let classString = element.className; - const nameIndex = classString.indexOf(className); - if (nameIndex === -1) { - classString += "" + className; - } else { - classString = - classString.substr(0, nameIndex) + - classString.substr(nameIndex + className.length); - } - element.className = classString; -} - -/** - * @param {string} type - * @returns {Date} - */ -export function getTime(type) { - if (type === "start") { - return new Date().getTime() - 3600 * 1000 * 24 * 90; - } else { - return new Date(new Date().toDateString()); - } -} - -/** - * @param {Function} func - * @param {number} wait - * @param {boolean} immediate - * @return {*} - */ -export function debounce(func, wait, immediate) { - let timeout, args, context, timestamp, result; - - const later = function() { - // æ®ä¸Šä¸€æ¬¡è§¦å‘æ—¶é—´é—´éš” - const last = +new Date() - timestamp; - - // 上次被包装函数被调用时间间隔 last å°äºŽè®¾å®šæ—¶é—´é—´éš” wait - if (last < wait && last > 0) { - timeout = setTimeout(later, wait - last); - } else { - timeout = null; - // 如果设定为immediate===trueï¼Œå› ä¸ºå¼€å§‹è¾¹ç•Œå·²ç»è°ƒç”¨è¿‡äº†æ¤å¤„æ— éœ€è°ƒç”¨ - if (!immediate) { - result = func.apply(context, args); - if (!timeout) context = args = null; - } - } - }; - - return function(...args) { - context = this; - timestamp = +new Date(); - const callNow = immediate && !timeout; - // 如果延时ä¸å˜åœ¨ï¼Œé‡æ–°è®¾å®šå»¶æ—¶ - if (!timeout) timeout = setTimeout(later, wait); - if (callNow) { - result = func.apply(context, args); - context = args = null; - } - - return result; - }; -} - -/** - * This is just a simple version of deep copy - * Has a lot of edge cases bug - * If you want to use a perfect deep copy, use lodash's _.cloneDeep - * @param {Object} source - * @returns {Object} - */ -export function deepClone(source) { - if (!source && typeof source !== "object") { - throw new Error("error arguments", "deepClone"); - } - const targetObj = source.constructor === Array ? [] : {}; - Object.keys(source).forEach(keys => { - if (source[keys] && typeof source[keys] === "object") { - targetObj[keys] = deepClone(source[keys]); - } else { - targetObj[keys] = source[keys]; - } - }); - return targetObj; -} -// export function deepClone(p) { -// if (typeof p === "object" && p !== null) { -// if (Array.isArray(p)) { -// return p.map(item => deepClone(item)); -// } else { -// const newObj = {}; -// Object.keys(p).forEach(key => (newObj[key] = deepCopy(p[key]))); -// return newObj; -// } -// } else { -// return p; -// } -// } - -/** - * @param {Array} arr - * @returns {Array} - */ -export function uniqueArr(arr) { - return Array.from(new Set(arr)); -} - -/** - * @returns {string} - */ -export function createUniqueString() { - const timestamp = +new Date() + ""; - const randomNum = parseInt((1 + Math.random()) * 65536) + ""; - return (+(randomNum + timestamp)).toString(32); -} - -/** - * Check if an element has a class - * @param {HTMLElement} elm - * @param {string} cls - * @returns {boolean} - */ -export function hasClass(ele, cls) { - return !!ele.className.match(new RegExp("(\\s|^)" + cls + "(\\s|$)")); -} - -/** - * Add class to element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function addClass(ele, cls) { - if (!hasClass(ele, cls)) ele.className += " " + cls; -} - -/** - * Remove class from element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function removeClass(ele, cls) { - if (hasClass(ele, cls)) { - const reg = new RegExp("(\\s|^)" + cls + "(\\s|$)"); - ele.className = ele.className.replace(reg, " "); - } -} diff --git a/WebSite/src/utils/loading.js b/WebSite/src/utils/loading.js deleted file mode 100644 index e761c217..00000000 --- a/WebSite/src/utils/loading.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * @Description: - * @Autor: wang chao - * @Date: 2020-06-18 12:35:45 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-18 13:01:12 - */ - -import { Loading } from "element-ui"; -let loading; -let loadCount = 0; -export function startLoading() { - if (loadCount === 0) { - const target = document.querySelector(".app-main"); - const background = target ? "rgba(255,255,255,.5)" : "rgba(0,0,0,.5)"; - //使用Element loading-start 方法 - loading = Loading.service({ - target, - lock: true, - text: "Loading", - spinner: "el-icon-loading", - background - }); - } - loadCount++; -} -export function endLoading() { - //使用Element loading-close 方法 - loadCount--; - if (loadCount <= 0) { - loading.close(); - } -} diff --git a/WebSite/src/utils/open-window.js b/WebSite/src/utils/open-window.js deleted file mode 100644 index 18536da1..00000000 --- a/WebSite/src/utils/open-window.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - *Created by PanJiaChen on 16/11/29. - * @param {Sting} url - * @param {Sting} title - * @param {Number} w - * @param {Number} h - */ -export default function openWindow(url, title, w, h) { - // Fixes dual-screen position Most browsers Firefox - const dualScreenLeft = - window.screenLeft !== undefined ? window.screenLeft : screen.left; - const dualScreenTop = - window.screenTop !== undefined ? window.screenTop : screen.top; - - const width = window.innerWidth - ? window.innerWidth - : document.documentElement.clientWidth - ? document.documentElement.clientWidth - : screen.width; - const height = window.innerHeight - ? window.innerHeight - : document.documentElement.clientHeight - ? document.documentElement.clientHeight - : screen.height; - - const left = width / 2 - w / 2 + dualScreenLeft; - const top = height / 2 - h / 2 + dualScreenTop; - const newWindow = window.open( - url, - title, - "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=" + - w + - ", height=" + - h + - ", top=" + - top + - ", left=" + - left - ); - - // Puts focus on the newWindow - if (window.focus) { - newWindow.focus(); - } -} diff --git a/WebSite/src/utils/permission.js b/WebSite/src/utils/permission.js deleted file mode 100644 index 8d252a78..00000000 --- a/WebSite/src/utils/permission.js +++ /dev/null @@ -1,25 +0,0 @@ -import store from "@/store"; - -/** - * @param {Array} value - * @returns {Boolean} - * @example see @/views/permission/directive.vue - */ -export default function checkPermission(value) { - if (value && value instanceof Array && value.length > 0) { - const roles = store.getters && store.getters.roles; - const permissionRoles = value; - - const hasPermission = roles.some(role => { - return permissionRoles.includes(role); - }); - - if (!hasPermission) { - return false; - } - return true; - } else { - console.error(`need roles! Like v-permission="['admin','editor']"`); - return false; - } -} diff --git a/WebSite/src/utils/request.js b/WebSite/src/utils/request.js deleted file mode 100644 index 60b03421..00000000 --- a/WebSite/src/utils/request.js +++ /dev/null @@ -1,130 +0,0 @@ -import axios from "axios"; -import { MessageBox, Message } from "element-ui"; -import store from "@/store"; -import { getToken } from "@/utils/auth"; -import { getConfig } from "@/utils/config"; -import { startLoading, endLoading } from "@/utils/loading"; -import router from "@/router"; - -// try to get baseURL from config -let baseURL; -if (process.env.NODE_ENV === "test" || process.env.NODE_ENV === "production") { - getConfig().then(config => { - if (config.baseURL) { - baseURL = config.baseURL; - } - }); -} - -// create an axios instance -const service = axios.create({ - baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url - // withCredentials: true, // send cookies when cross-domain requests - timeout: 60000 // request timeout -}); - -// request interceptor -service.interceptors.request.use( - config => { - startLoading(); - // do something before request is sent - // use baseURL - if (baseURL) { - config.baseURL = baseURL; - } - - return config; - }, - error => { - // do something with request error - console.log(error); // for debug - return Promise.reject(error); - } -); - -// response interceptor -service.interceptors.response.use( - /** - * If you want to get http information such as headers or status - * Please return response => response - */ - - /** - * Determine the request status by custom code - * Here is just an example - * You can also judge the status by HTTP Status Code - */ - response => { - setTimeout(() => { - endLoading(); - }, 500); - // blob类型需在调用api傿•°ä½ç½®ä¼ 入傿•° responseType: 'blob' - if (response.config.responseType === "blob") { - const fileName = decodeURI( - response.headers["content-disposition"].split("filename=")[1] - ); - // 返回文件æµå†…容,以åŠèŽ·å–æ–‡ä»¶å - return Promise.resolve({ data: response.data, fileName: fileName }); - } - - const res = response.data; - - // if the custom code is not 20000, it is judged as an error. - if (res.code !== 20000 && res.code !== "00000") { - Message({ - message: res.message || res.description || "Error", - type: "error", - duration: 5 * 1000 - }); - - // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; - if (res.code === "10000") { - // to re-login - store.dispatch("user/logout").then(() => { - router.push("/login"); - }); - } - return Promise.reject( - new Error(res.message || res.description || "Error") - ); - } else { - return res; - } - }, - error => { - endLoading(); - let errMsg = ""; - if ( - error.code == "ECONNABORTED" && - error.message.indexOf("timeout") != -1 - ) { - errMsg = "no response from server"; - } else { - switch (error.response.status) { - case 401: - errMsg = "no login or login is invalid"; - break; - case 403: - errMsg = "server reject"; - break; - default: - errMsg = error.response.statusText; - break; - } - } - - const msg = `${error.response.status}: ${errMsg}`; - - console.log(error); // for debug - - Message({ - message: msg, - type: "error", - duration: 5 * 1000 - }); - - return Promise.reject(error); - } -); - -export default service; diff --git a/WebSite/src/utils/scroll-to.js b/WebSite/src/utils/scroll-to.js deleted file mode 100644 index dc2e8732..00000000 --- a/WebSite/src/utils/scroll-to.js +++ /dev/null @@ -1,69 +0,0 @@ -Math.easeInOutQuad = function(t, b, c, d) { - t /= d / 2; - if (t < 1) { - return (c / 2) * t * t + b; - } - t--; - return (-c / 2) * (t * (t - 2) - 1) + b; -}; - -// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts -var requestAnimFrame = (function() { - return ( - window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - function(callback) { - window.setTimeout(callback, 1000 / 60); - } - ); -})(); - -/** - * Because it's so fucking difficult to detect the scrolling element, just move them all - * @param {number} amount - */ -function move(amount) { - document.documentElement.scrollTop = amount; - document.body.parentNode.scrollTop = amount; - document.body.scrollTop = amount; -} - -function position() { - return ( - document.documentElement.scrollTop || - document.body.parentNode.scrollTop || - document.body.scrollTop - ); -} - -/** - * @param {number} to - * @param {number} duration - * @param {Function} callback - */ -export function scrollTo(to, duration, callback) { - const start = position(); - const change = to - start; - const increment = 20; - let currentTime = 0; - duration = typeof duration === "undefined" ? 500 : duration; - var animateScroll = function() { - // increment the time - currentTime += increment; - // find the value with the quadratic in-out easing function - var val = Math.easeInOutQuad(currentTime, start, change, duration); - // move the document.body - move(val); - // do the animation unless its over - if (currentTime < duration) { - requestAnimFrame(animateScroll); - } else { - if (callback && typeof callback === "function") { - // the animation is done so lets callback - callback(); - } - } - }; - animateScroll(); -} diff --git a/WebSite/src/utils/validate.js b/WebSite/src/utils/validate.js index c86a80c6..79389f9b 100644 --- a/WebSite/src/utils/validate.js +++ b/WebSite/src/utils/validate.js @@ -1,3 +1,10 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 11:17:43 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 11:19:03 + */ /** * Created by PanJiaChen on 16/11/18. */ @@ -15,7 +22,7 @@ export function isExternal(path) { * @returns {Boolean} */ export function validUsername(str) { - const valid_map = ["admin", "editor"]; + const valid_map = ['admin', 'editor']; return valid_map.indexOf(str.trim()) >= 0; } @@ -60,7 +67,7 @@ export function validAlphabets(str) { * @returns {Boolean} */ export function validEmail(email) { - const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + const reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return reg.test(email); } @@ -69,7 +76,7 @@ export function validEmail(email) { * @returns {Boolean} */ export function isString(str) { - if (typeof str === "string" || str instanceof String) { + if (typeof str === 'string' || str instanceof String) { return true; } return false; @@ -80,8 +87,8 @@ export function isString(str) { * @returns {Boolean} */ export function isArray(arg) { - if (typeof Array.isArray === "undefined") { - return Object.prototype.toString.call(arg) === "[object Array]"; + if (typeof Array.isArray === 'undefined') { + return Object.prototype.toString.call(arg) === '[object Array]'; } return Array.isArray(arg); } diff --git a/WebSite/src/vendor/Export2Excel.js b/WebSite/src/vendor/Export2Excel.js deleted file mode 100644 index d8a2af3d..00000000 --- a/WebSite/src/vendor/Export2Excel.js +++ /dev/null @@ -1,220 +0,0 @@ -/* eslint-disable */ -import { saveAs } from 'file-saver' -import XLSX from 'xlsx' - -function generateArray(table) { - var out = []; - var rows = table.querySelectorAll('tr'); - var ranges = []; - for (var R = 0; R < rows.length; ++R) { - var outRow = []; - var row = rows[R]; - var columns = row.querySelectorAll('td'); - for (var C = 0; C < columns.length; ++C) { - var cell = columns[C]; - var colspan = cell.getAttribute('colspan'); - var rowspan = cell.getAttribute('rowspan'); - var cellValue = cell.innerText; - if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue; - - //Skip ranges - ranges.forEach(function (range) { - if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) { - for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null); - } - }); - - //Handle Row Span - if (rowspan || colspan) { - rowspan = rowspan || 1; - colspan = colspan || 1; - ranges.push({ - s: { - r: R, - c: outRow.length - }, - e: { - r: R + rowspan - 1, - c: outRow.length + colspan - 1 - } - }); - }; - - //Handle Value - outRow.push(cellValue !== "" ? cellValue : null); - - //Handle Colspan - if (colspan) - for (var k = 0; k < colspan - 1; ++k) outRow.push(null); - } - out.push(outRow); - } - return [out, ranges]; -}; - -function datenum(v, date1904) { - if (date1904) v += 1462; - var epoch = Date.parse(v); - return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); -} - -function sheet_from_array_of_arrays(data, opts) { - var ws = {}; - var range = { - s: { - c: 10000000, - r: 10000000 - }, - e: { - c: 0, - r: 0 - } - }; - for (var R = 0; R != data.length; ++R) { - for (var C = 0; C != data[R].length; ++C) { - if (range.s.r > R) range.s.r = R; - if (range.s.c > C) range.s.c = C; - if (range.e.r < R) range.e.r = R; - if (range.e.c < C) range.e.c = C; - var cell = { - v: data[R][C] - }; - if (cell.v == null) continue; - var cell_ref = XLSX.utils.encode_cell({ - c: C, - r: R - }); - - if (typeof cell.v === 'number') cell.t = 'n'; - else if (typeof cell.v === 'boolean') cell.t = 'b'; - else if (cell.v instanceof Date) { - cell.t = 'n'; - cell.z = XLSX.SSF._table[14]; - cell.v = datenum(cell.v); - } else cell.t = 's'; - - ws[cell_ref] = cell; - } - } - if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range); - return ws; -} - -function Workbook() { - if (!(this instanceof Workbook)) return new Workbook(); - this.SheetNames = []; - this.Sheets = {}; -} - -function s2ab(s) { - var buf = new ArrayBuffer(s.length); - var view = new Uint8Array(buf); - for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; - return buf; -} - -export function export_table_to_excel(id) { - var theTable = document.getElementById(id); - var oo = generateArray(theTable); - var ranges = oo[1]; - - /* original data */ - var data = oo[0]; - var ws_name = "SheetJS"; - - var wb = new Workbook(), - ws = sheet_from_array_of_arrays(data); - - /* add ranges to worksheet */ - // ws['!cols'] = ['apple', 'banan']; - ws['!merges'] = ranges; - - /* add worksheet to workbook */ - wb.SheetNames.push(ws_name); - wb.Sheets[ws_name] = ws; - - var wbout = XLSX.write(wb, { - bookType: 'xlsx', - bookSST: false, - type: 'binary' - }); - - saveAs(new Blob([s2ab(wbout)], { - type: "application/octet-stream" - }), "test.xlsx") -} - -export function export_json_to_excel({ - multiHeader = [], - header, - data, - filename, - merges = [], - autoWidth = true, - bookType = 'xlsx' -} = {}) { - /* original data */ - filename = filename || 'excel-list' - data = [...data] - data.unshift(header); - - for (let i = multiHeader.length - 1; i > -1; i--) { - data.unshift(multiHeader[i]) - } - - var ws_name = "SheetJS"; - var wb = new Workbook(), - ws = sheet_from_array_of_arrays(data); - - if (merges.length > 0) { - if (!ws['!merges']) ws['!merges'] = []; - merges.forEach(item => { - ws['!merges'].push(XLSX.utils.decode_range(item)) - }) - } - - if (autoWidth) { - /*设置worksheetæ¯åˆ—的最大宽度*/ - const colWidth = data.map(row => row.map(val => { - /*å…ˆåˆ¤æ–æ˜¯å¦ä¸ºnull/undefined*/ - if (val == null) { - return { - 'wch': 10 - }; - } - /*å†åˆ¤æ–是å¦ä¸ºä¸æ–‡*/ - else if (val.toString().charCodeAt(0) > 255) { - return { - 'wch': val.toString().length * 2 - }; - } else { - return { - 'wch': val.toString().length - }; - } - })) - /*以第一行为åˆå§‹å€¼*/ - let result = colWidth[0]; - for (let i = 1; i < colWidth.length; i++) { - for (let j = 0; j < colWidth[i].length; j++) { - if (result[j]['wch'] < colWidth[i][j]['wch']) { - result[j]['wch'] = colWidth[i][j]['wch']; - } - } - } - ws['!cols'] = result; - } - - /* add worksheet to workbook */ - wb.SheetNames.push(ws_name); - wb.Sheets[ws_name] = ws; - - var wbout = XLSX.write(wb, { - bookType: bookType, - bookSST: false, - type: 'binary' - }); - saveAs(new Blob([s2ab(wbout)], { - type: "application/octet-stream" - }), `${filename}.${bookType}`); -} diff --git a/WebSite/src/vendor/Export2Zip.js b/WebSite/src/vendor/Export2Zip.js deleted file mode 100644 index db70707d..00000000 --- a/WebSite/src/vendor/Export2Zip.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ -import { saveAs } from 'file-saver' -import JSZip from 'jszip' - -export function export_txt_to_zip(th, jsonData, txtName, zipName) { - const zip = new JSZip() - const txt_name = txtName || 'file' - const zip_name = zipName || 'file' - const data = jsonData - let txtData = `${th}\r\n` - data.forEach((row) => { - let tempStr = '' - tempStr = row.toString() - txtData += `${tempStr}\r\n` - }) - zip.file(`${txt_name}.txt`, txtData) - zip.generateAsync({ - type: "blob" - }).then((blob) => { - saveAs(blob, `${zip_name}.zip`) - }, (err) => { - alert('导出失败') - }) -} diff --git a/WebSite/src/views/auth-redirect/index.vue b/WebSite/src/views/auth-redirect/index.vue new file mode 100644 index 00000000..46dff6b5 --- /dev/null +++ b/WebSite/src/views/auth-redirect/index.vue @@ -0,0 +1,57 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-20 09:06:24 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-11 15:06:27 +--> + +<template> + <div></div> +</template> + +<script> +import { reactive, toRefs } from 'vue'; +import { useRoute } from 'vue-router'; +import { useStore } from 'vuex'; +import AuthenticationToken from '@/core/model/AuthenticationToken'; +export default { + name: 'AuthRedirect', + setup() { + const route = useRoute(); + const store = useStore(); + const data = reactive({ + ssoAddress: route.query.ssoAddress, + ssoLogout: route.query.ssoLogout, + code: route.query.code + }); + + const login = async () => { + await store.dispatch( + 'subject/login', + new AuthenticationToken('admin', '123456') + ); + store.dispatch('subject/permit', { authorizationToken: '1' }); + }; + + const goSso = () => { + const redirect_uri = window.location.href.split('?')[0]; + window.location.href = `${ + data.ssoAddress + }?redirect_uri=${encodeURIComponent( + redirect_uri + )}&response_type=code&scope=1&state=1${ + data.ssoLogout === 'true' ? 'sso_logout=true' : '' + }`; + }; + + if (data.code) { + login(); + } else if (data.ssoAddress) { + goSso(); + } + + return { ...toRefs(data) }; + } +}; +</script> diff --git a/WebSite/src/views/charts/keyboard.vue b/WebSite/src/views/charts/keyboard.vue deleted file mode 100644 index 82522119..00000000 --- a/WebSite/src/views/charts/keyboard.vue +++ /dev/null @@ -1,22 +0,0 @@ -<template> - <div class="chart-container"> - <chart height="100%" width="100%" /> - </div> -</template> - -<script> -import Chart from "@/components/Charts/Keyboard"; - -export default { - name: "KeyboardChart", - components: { Chart } -}; -</script> - -<style scoped> -.chart-container { - position: relative; - width: 100%; - height: calc(100vh - 84px); -} -</style> diff --git a/WebSite/src/views/charts/line.vue b/WebSite/src/views/charts/line.vue deleted file mode 100644 index e6380101..00000000 --- a/WebSite/src/views/charts/line.vue +++ /dev/null @@ -1,22 +0,0 @@ -<template> - <div class="chart-container"> - <chart height="100%" width="100%" /> - </div> -</template> - -<script> -import Chart from "@/components/Charts/LineMarker"; - -export default { - name: "LineChart", - components: { Chart } -}; -</script> - -<style scoped> -.chart-container { - position: relative; - width: 100%; - height: calc(100vh - 84px); -} -</style> diff --git a/WebSite/src/views/charts/mix-chart.vue b/WebSite/src/views/charts/mix-chart.vue deleted file mode 100644 index 7bdc487c..00000000 --- a/WebSite/src/views/charts/mix-chart.vue +++ /dev/null @@ -1,22 +0,0 @@ -<template> - <div class="chart-container"> - <chart height="100%" width="100%" /> - </div> -</template> - -<script> -import Chart from "@/components/Charts/MixChart"; - -export default { - name: "MixChart", - components: { Chart } -}; -</script> - -<style scoped> -.chart-container { - position: relative; - width: 100%; - height: calc(100vh - 84px); -} -</style> diff --git a/WebSite/src/views/clipboard/index.vue b/WebSite/src/views/clipboard/index.vue deleted file mode 100644 index e296dda0..00000000 --- a/WebSite/src/views/clipboard/index.vue +++ /dev/null @@ -1,65 +0,0 @@ -<template> - <div class="app-container"> - <el-tabs v-model="activeName"> - <el-tab-pane label="use clipboard directly" name="directly"> - <el-input - v-model="inputData" - placeholder="Please input" - style="width:400px;max-width:100%;" - /> - <el-button - type="primary" - icon="el-icon-document" - @click="handleCopy(inputData, $event)" - > - copy - </el-button> - </el-tab-pane> - <el-tab-pane label="use clipboard by v-directive" name="v-directive"> - <el-input - v-model="inputData" - placeholder="Please input" - style="width:400px;max-width:100%;" - /> - <el-button - v-clipboard:copy="inputData" - v-clipboard:success="clipboardSuccess" - type="primary" - icon="el-icon-document" - > - copy - </el-button> - </el-tab-pane> - </el-tabs> - </div> -</template> - -<script> -import clip from "@/utils/clipboard"; // use clipboard directly -import clipboard from "@/directive/clipboard/index.js"; // use clipboard by v-directive - -export default { - name: "ClipboardDemo", - directives: { - clipboard - }, - data() { - return { - activeName: "directly", - inputData: "https://github.com/PanJiaChen/vue-element-admin" - }; - }, - methods: { - handleCopy(text, event) { - clip(text, event); - }, - clipboardSuccess() { - this.$message({ - message: "Copy successfully", - type: "success", - duration: 1500 - }); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/avatar-upload.vue b/WebSite/src/views/components-demo/avatar-upload.vue deleted file mode 100644 index ea122535..00000000 --- a/WebSite/src/views/components-demo/avatar-upload.vue +++ /dev/null @@ -1,69 +0,0 @@ -<template> - <div class="components-container"> - <aside> - This is based on - <a class="link-type" href="//github.com/dai-siki/vue-image-crop-upload"> - vue-image-crop-upload</a - >. Since I was using only the vue@1 version, and it is not compatible with - mockjs at the moment, I modified it myself, and if you are going to use - it, it is better to use official version. - </aside> - - <pan-thumb :image="image" /> - - <el-button - type="primary" - icon="el-icon-upload" - style="position: absolute;bottom: 15px;margin-left: 40px;" - @click="imagecropperShow = true" - > - Change Avatar - </el-button> - - <image-cropper - v-show="imagecropperShow" - :key="imagecropperKey" - :width="300" - :height="300" - url="https://httpbin.org/post" - lang-type="en" - @close="close" - @crop-upload-success="cropSuccess" - /> - </div> -</template> - -<script> -import ImageCropper from "@/components/ImageCropper"; -import PanThumb from "@/components/PanThumb"; - -export default { - name: "AvatarUploadDemo", - components: { ImageCropper, PanThumb }, - data() { - return { - imagecropperShow: false, - imagecropperKey: 0, - image: "https://wpimg.wallstcn.com/577965b9-bb9e-4e02-9f0c-095b41417191" - }; - }, - methods: { - cropSuccess(resData) { - this.imagecropperShow = false; - this.imagecropperKey = this.imagecropperKey + 1; - this.image = resData.files.avatar; - }, - close() { - this.imagecropperShow = false; - } - } -}; -</script> - -<style scoped> -.avatar { - width: 200px; - height: 200px; - border-radius: 50%; -} -</style> diff --git a/WebSite/src/views/components-demo/back-to-top.vue b/WebSite/src/views/components-demo/back-to-top.vue deleted file mode 100644 index 9ab1057a..00000000 --- a/WebSite/src/views/components-demo/back-to-top.vue +++ /dev/null @@ -1,162 +0,0 @@ -<template> - <div class="components-container"> - <aside> - When the page is scrolled to the specified position, the Back to Top - button appears in the lower right corner - </aside> - <aside> - You can customize the style of the button, show / hide, height of - appearance, height of the return. If you need a text prompt, you can use - element-ui el-tooltip elements externally - </aside> - <div class="placeholder-container"> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - </div> - <!-- you can add element-ui's tooltip --> - <el-tooltip placement="top" content="tooltip"> - <back-to-top - :custom-style="myBackToTopStyle" - :visibility-height="300" - :back-position="50" - transition-name="fade" - /> - </el-tooltip> - </div> -</template> - -<script> -import BackToTop from "@/components/BackToTop"; - -export default { - name: "BackToTopDemo", - components: { BackToTop }, - data() { - return { - // customizable button style, show/hide critical point, return position - myBackToTopStyle: { - right: "50px", - bottom: "50px", - width: "40px", - height: "40px", - "border-radius": "4px", - "line-height": "45px", // è¯·ä¿æŒä¸Žé«˜åº¦ä¸€è‡´ä»¥åž‚ç›´å±…ä¸ Please keep consistent with height to center vertically - background: "#e7eaf1" // 按钮的背景颜色 The background color of the button - } - }; - } -}; -</script> - -<style scoped> -.placeholder-container div { - margin: 10px; -} -</style> diff --git a/WebSite/src/views/components-demo/count-to.vue b/WebSite/src/views/components-demo/count-to.vue deleted file mode 100644 index b7f29f3b..00000000 --- a/WebSite/src/views/components-demo/count-to.vue +++ /dev/null @@ -1,244 +0,0 @@ -<template> - <div class="components-container"> - <aside> - <a href="https://github.com/PanJiaChen/vue-countTo" target="_blank" - >countTo-component</a - > - </aside> - <count-to - ref="example" - :start-val="_startVal" - :end-val="_endVal" - :duration="_duration" - :decimals="_decimals" - :separator="_separator" - :prefix="_prefix" - :suffix="_suffix" - :autoplay="false" - class="example" - /> - <div style="margin-left: 25%;margin-top: 40px;"> - <label class="label" for="startValInput" - >startVal: - <input - v-model.number="setStartVal" - type="number" - name="startValInput" - /> - </label> - <label class="label" for="endValInput" - >endVal: - <input v-model.number="setEndVal" type="number" name="endVaInput" /> - </label> - <label class="label" for="durationInput" - >duration: - <input - v-model.number="setDuration" - type="number" - name="durationInput" - /> - </label> - <div class="startBtn example-btn" @click="start"> - Start - </div> - <div class="pause-resume-btn example-btn" @click="pauseResume"> - pause/resume - </div> - <br /> - <label class="label" for="decimalsInput" - >decimals: - <input - v-model.number="setDecimals" - type="number" - name="decimalsInput" - /> - </label> - <label class="label" for="separatorInput" - >separator: - <input v-model="setSeparator" name="separatorInput" /> - </label> - <label class="label" for="prefixInput" - >prefix: - <input v-model="setPrefix" name="prefixInput" /> - </label> - <label class="label" for="suffixInput" - >suffix: - <input v-model="setSuffix" name="suffixInput" /> - </label> - </div> - <aside> - <count-to :start-val='{{ _startVal }}' :end-val='{{ - _endVal - }}' :duration='{{ _duration }}' :decimals='{{ - _decimals - }}' :separator='{{ _separator }}' :prefix='{{ - _prefix - }}' :suffix='{{ _suffix }}' :autoplay=false> - </aside> - </div> -</template> - -<script> -import countTo from "vue-count-to"; - -export default { - name: "CountToDemo", - components: { countTo }, - data() { - return { - setStartVal: 0, - setEndVal: 2017, - setDuration: 4000, - setDecimals: 0, - setSeparator: ",", - setSuffix: " rmb", - setPrefix: "Â¥ " - }; - }, - computed: { - _startVal() { - if (this.setStartVal) { - return this.setStartVal; - } else { - return 0; - } - }, - _endVal() { - if (this.setEndVal) { - return this.setEndVal; - } else { - return 0; - } - }, - _duration() { - if (this.setDuration) { - return this.setDuration; - } else { - return 100; - } - }, - _decimals() { - if (this.setDecimals) { - if (this.setDecimals < 0 || this.setDecimals > 20) { - alert("digits argument must be between 0 and 20"); - return 0; - } - return this.setDecimals; - } else { - return 0; - } - }, - _separator() { - return this.setSeparator; - }, - _suffix() { - return this.setSuffix; - }, - _prefix() { - return this.setPrefix; - } - }, - methods: { - start() { - this.$refs.example.start(); - }, - pauseResume() { - this.$refs.example.pauseResume(); - } - } -}; -</script> - -<style scoped> -.example-btn { - display: inline-block; - margin-bottom: 0; - font-weight: 500; - text-align: center; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - line-height: 1.5; - padding: 4px 15px; - font-size: 12px; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - position: relative; - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - border-color: #d9d9d9; -} - -.example-btn:hover { - color: #4ab7bd; - background-color: #fff; - border-color: #4ab7bd; -} -.example { - font-size: 50px; - color: #f6416c; - display: block; - margin: 10px 0; - text-align: center; - font-size: 80px; - font-weight: 500; -} - -.label { - color: #2f4f4f; - font-size: 16px; - display: inline-block; - margin: 15px 30px 15px 0; -} - -input { - position: relative; - display: inline-block; - padding: 4px 7px; - width: 70px; - height: 28px; - cursor: text; - font-size: 12px; - line-height: 1.5; - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; - -webkit-transition: all 0.3s; - transition: all 0.3s; -} - -.startBtn { - margin-left: 20px; - font-size: 20px; - color: #30b08f; - background-color: #fff; -} - -.startBtn:hover { - background-color: #30b08f; - color: #fff; - border-color: #30b08f; -} - -.pause-resume-btn { - font-size: 20px; - color: #e65d6e; - background-color: #fff; -} - -.pause-resume-btn:hover { - background-color: #e65d6e; - color: #fff; - border-color: #e65d6e; -} -</style> diff --git a/WebSite/src/views/components-demo/dnd-list.vue b/WebSite/src/views/components-demo/dnd-list.vue deleted file mode 100644 index 61cfa114..00000000 --- a/WebSite/src/views/components-demo/dnd-list.vue +++ /dev/null @@ -1,46 +0,0 @@ -<template> - <div class="components-container"> - <aside> - drag-list base on - <a href="https://github.com/SortableJS/Vue.Draggable" target="_blank" - >Vue.Draggable</a - > - </aside> - <div class="editor-container"> - <dnd-list - :list1="list1" - :list2="list2" - list1-title="List" - list2-title="Article pool" - /> - </div> - </div> -</template> - -<script> -import DndList from "@/components/DndList"; -import { fetchList } from "@/api/article"; - -export default { - name: "DndListDemo", - components: { DndList }, - data() { - return { - list1: [], - list2: [] - }; - }, - created() { - this.getData(); - }, - methods: { - getData() { - this.listLoading = true; - fetchList().then(response => { - this.list1 = response.data.items.splice(0, 5); - this.list2 = response.data.items; - }); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/drag-dialog.vue b/WebSite/src/views/components-demo/drag-dialog.vue deleted file mode 100644 index 698239c8..00000000 --- a/WebSite/src/views/components-demo/drag-dialog.vue +++ /dev/null @@ -1,76 +0,0 @@ -<template> - <div class="components-container"> - <el-button type="primary" @click="dialogTableVisible = true"> - open a Drag Dialog - </el-button> - <el-dialog - v-el-drag-dialog - :visible.sync="dialogTableVisible" - title="Shipping address" - @dragDialog="handleDrag" - > - <el-select ref="select" v-model="value" placeholder="请选择"> - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-select> - <el-table :data="gridData"> - <el-table-column property="date" label="Date" width="150" /> - <el-table-column property="name" label="Name" width="200" /> - <el-table-column property="address" label="Address" /> - </el-table> - </el-dialog> - </div> -</template> - -<script> -import elDragDialog from "@/directive/el-drag-dialog"; // base on element-ui - -export default { - name: "DragDialogDemo", - directives: { elDragDialog }, - data() { - return { - dialogTableVisible: false, - options: [ - { value: "选项1", label: "黄金糕" }, - { value: "选项2", label: "åŒçš®å¥¶" }, - { value: "选项3", label: "蚵仔煎" }, - { value: "选项4", label: "龙须é¢" } - ], - value: "", - gridData: [ - { - date: "2016-05-02", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - }, - { - date: "2016-05-04", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - }, - { - date: "2016-05-01", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - }, - { - date: "2016-05-03", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - } - ] - }; - }, - methods: { - // v-el-drag-dialog onDrag callback function - handleDrag() { - this.$refs.select.blur(); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/drag-kanban.vue b/WebSite/src/views/components-demo/drag-kanban.vue deleted file mode 100644 index 7d732148..00000000 --- a/WebSite/src/views/components-demo/drag-kanban.vue +++ /dev/null @@ -1,83 +0,0 @@ -<template> - <div class="components-container board"> - <Kanban - :key="1" - :list="list1" - :group="group" - class="kanban todo" - header-text="Todo" - /> - <Kanban - :key="2" - :list="list2" - :group="group" - class="kanban working" - header-text="Working" - /> - <Kanban - :key="3" - :list="list3" - :group="group" - class="kanban done" - header-text="Done" - /> - </div> -</template> -<script> -import Kanban from "@/components/Kanban"; - -export default { - name: "DragKanbanDemo", - components: { - Kanban - }, - data() { - return { - group: "mission", - list1: [ - { name: "Mission", id: 1 }, - { name: "Mission", id: 2 }, - { name: "Mission", id: 3 }, - { name: "Mission", id: 4 } - ], - list2: [ - { name: "Mission", id: 5 }, - { name: "Mission", id: 6 }, - { name: "Mission", id: 7 } - ], - list3: [ - { name: "Mission", id: 8 }, - { name: "Mission", id: 9 }, - { name: "Mission", id: 10 } - ] - }; - } -}; -</script> -<style lang="scss"> -.board { - width: 1000px; - margin-left: 20px; - display: flex; - justify-content: space-around; - flex-direction: row; - align-items: flex-start; -} -.kanban { - &.todo { - .board-column-header { - background: #4a9ff9; - } - } - &.working { - .board-column-header { - background: #f9944a; - } - } - &.done { - .board-column-header { - background: #2ac06d; - } - } -} -</style> diff --git a/WebSite/src/views/components-demo/drag-select.vue b/WebSite/src/views/components-demo/drag-select.vue deleted file mode 100644 index 6caa5ba9..00000000 --- a/WebSite/src/views/components-demo/drag-select.vue +++ /dev/null @@ -1,59 +0,0 @@ -<template> - <div class="components-container"> - <el-drag-select - v-model="value" - style="width:500px;" - multiple - placeholder="请选择" - > - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-drag-select> - - <div style="margin-top:30px;"> - <el-tag v-for="item of value" :key="item" style="margin-right:15px;"> - {{ item }} - </el-tag> - </div> - </div> -</template> - -<script> -import ElDragSelect from "@/components/DragSelect"; // base on element-ui - -export default { - name: "DragSelectDemo", - components: { ElDragSelect }, - data() { - return { - value: ["Apple", "Banana", "Orange"], - options: [ - { - value: "Apple", - label: "Apple" - }, - { - value: "Banana", - label: "Banana" - }, - { - value: "Orange", - label: "Orange" - }, - { - value: "Pear", - label: "Pear" - }, - { - value: "Strawberry", - label: "Strawberry" - } - ] - }; - } -}; -</script> diff --git a/WebSite/src/views/components-demo/dropzone.vue b/WebSite/src/views/components-demo/dropzone.vue deleted file mode 100644 index e70d78e4..00000000 --- a/WebSite/src/views/components-demo/dropzone.vue +++ /dev/null @@ -1,39 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Based on - <a class="link-type" href="https://github.com/rowanwins/vue-dropzone"> - dropzone </a - >. Because my business has special needs, and has to upload images to - qiniu, so instead of a third party, I chose encapsulate it by myself. It - is very simple, you can see the detail code in @/components/Dropzone. - </aside> - <div class="editor-container"> - <dropzone - id="myVueDropzone" - url="https://httpbin.org/post" - @dropzone-removedFile="dropzoneR" - @dropzone-success="dropzoneS" - /> - </div> - </div> -</template> - -<script> -import Dropzone from "@/components/Dropzone"; - -export default { - name: "DropzoneDemo", - components: { Dropzone }, - methods: { - dropzoneS(file) { - console.log(file); - this.$message({ message: "Upload success", type: "success" }); - }, - dropzoneR(file) { - console.log(file); - this.$message({ message: "Delete success", type: "success" }); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/json-editor.vue b/WebSite/src/views/components-demo/json-editor.vue deleted file mode 100644 index e9d21ec6..00000000 --- a/WebSite/src/views/components-demo/json-editor.vue +++ /dev/null @@ -1,42 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Json-Editor is base on - <a href="https://github.com/codemirror/CodeMirror" target="_blank" - >CodeMirrorr</a - >. Lint base on - <a - href="https://github.com/codemirror/CodeMirror/blob/master/addon/lint/json-lint.js" - target="_blank" - >json-lint</a - >. - </aside> - <div class="editor-container"> - <json-editor ref="jsonEditor" v-model="value" /> - </div> - </div> -</template> - -<script> -import JsonEditor from "@/components/JsonEditor"; - -const jsonData = - '[{"items":[{"market_type":"forexdata","symbol":"XAUUSD"},{"market_type":"forexdata","symbol":"UKOIL"},{"market_type":"forexdata","symbol":"CORN"}],"name":""},{"items":[{"market_type":"forexdata","symbol":"XAUUSD"},{"market_type":"forexdata","symbol":"XAGUSD"},{"market_type":"forexdata","symbol":"AUTD"},{"market_type":"forexdata","symbol":"AGTD"}],"name":"贵金属"},{"items":[{"market_type":"forexdata","symbol":"CORN"},{"market_type":"forexdata","symbol":"WHEAT"},{"market_type":"forexdata","symbol":"SOYBEAN"},{"market_type":"forexdata","symbol":"SUGAR"}],"name":"农产å“"},{"items":[{"market_type":"forexdata","symbol":"UKOIL"},{"market_type":"forexdata","symbol":"USOIL"},{"market_type":"forexdata","symbol":"NGAS"}],"name":"能æºåŒ–å·¥"}]'; - -export default { - name: "JsonEditorDemo", - components: { JsonEditor }, - data() { - return { - value: JSON.parse(jsonData) - }; - } -}; -</script> - -<style scoped> -.editor-container { - position: relative; - height: 100%; -} -</style> diff --git a/WebSite/src/views/components-demo/markdown.vue b/WebSite/src/views/components-demo/markdown.vue deleted file mode 100644 index 4ad7f9a7..00000000 --- a/WebSite/src/views/components-demo/markdown.vue +++ /dev/null @@ -1,124 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Markdown is based on - <a href="https://github.com/nhnent/tui.editor" target="_blank" - >tui.editor</a - > - ,simply wrapped with Vue. - <a - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/feature/component/markdown-editor.html" - > - Documentation - </a> - </aside> - - <div class="editor-container"> - <el-tag class="tag-title"> - Basic: - </el-tag> - <markdown-editor v-model="content1" height="300px" /> - </div> - - <div class="editor-container"> - <el-tag class="tag-title"> - Markdown Mode: - </el-tag> - <markdown-editor - ref="markdownEditor" - v-model="content2" - :options="{ hideModeSwitch: true, previewStyle: 'tab' }" - height="200px" - /> - </div> - - <div class="editor-container"> - <el-tag class="tag-title"> - Customize Toolbar: - </el-tag> - <markdown-editor - v-model="content3" - :options="{ toolbarItems: ['heading', 'bold', 'italic'] }" - /> - </div> - - <div class="editor-container"> - <el-tag class="tag-title"> - I18n: - </el-tag> - <el-alert - :closable="false" - title="You can change the language of the admin system to see the effect" - type="success" - /> - <markdown-editor - ref="markdownEditor" - v-model="content4" - :language="language" - height="300px" - /> - </div> - - <el-button - style="margin-top:80px;" - type="primary" - icon="el-icon-document" - @click="getHtml" - > - Get HTML - </el-button> - <div v-html="html" /> - </div> -</template> - -<script> -import MarkdownEditor from "@/components/MarkdownEditor"; - -const content = ` -**This is test** - -* vue -* element -* webpack - -`; -export default { - name: "MarkdownDemo", - components: { MarkdownEditor }, - data() { - return { - content1: content, - content2: content, - content3: content, - content4: content, - html: "", - languageTypeList: { - en: "en_US", - zh: "zh_CN", - es: "es_ES" - } - }; - }, - computed: { - language() { - return this.languageTypeList["en"]; - } - }, - methods: { - getHtml() { - this.html = this.$refs.markdownEditor.getHtml(); - console.log(this.html); - } - } -}; -</script> - -<style scoped> -.editor-container { - margin-bottom: 30px; -} -.tag-title { - margin-bottom: 5px; -} -</style> diff --git a/WebSite/src/views/components-demo/mixin.vue b/WebSite/src/views/components-demo/mixin.vue deleted file mode 100644 index 18691eb5..00000000 --- a/WebSite/src/views/components-demo/mixin.vue +++ /dev/null @@ -1,200 +0,0 @@ -<template> - <div class="mixin-components-container"> - <el-row> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>Buttons</span> - </div> - <div style="margin-bottom:50px;"> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn blue-btn" to="/documentation/index"> - Documentation - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn light-blue-btn" to="/icon/index"> - Icons - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn pink-btn" to="/excel/export-excel"> - Excel - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn green-btn" to="/table/complex-table"> - Table - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn tiffany-btn" to="/example/create"> - Form - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn yellow-btn" to="/theme/index"> - Theme - </router-link> - </el-col> - </div> - </el-card> - </el-row> - - <el-row :gutter="20" style="margin-top:50px;"> - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>Material Design çš„input</span> - </div> - <div style="height:100px;"> - <el-form :model="demo" :rules="demoRules"> - <el-form-item prop="title"> - <md-input - v-model="demo.title" - icon="el-icon-search" - name="title" - placeholder="è¾“å…¥æ ‡é¢˜" - > - æ ‡é¢˜ - </md-input> - </el-form-item> - </el-form> - </div> - </el-card> - </el-col> - - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>图片hover效果</span> - </div> - <div class="component-item"> - <pan-thumb - width="100px" - height="100px" - image="https://wpimg.wallstcn.com/577965b9-bb9e-4e02-9f0c-095b41417191" - > - vue-element-admin - </pan-thumb> - </div> - </el-card> - </el-col> - - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>水波纹 waves v-directive</span> - </div> - <div class="component-item"> - <el-button v-waves type="primary"> - 水波纹效果 - </el-button> - </div> - </el-card> - </el-col> - - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>hover text</span> - </div> - <div class="component-item"> - <mallki class-name="mallki-text" text="vue-element-admin" /> - </div> - </el-card> - </el-col> - </el-row> - - <el-row :gutter="20" style="margin-top:50px;"> - <el-col :span="8"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>Share</span> - </div> - <div class="component-item" style="height:420px;"> - <dropdown-menu - :items="articleList" - style="margin:0 auto;" - title="ç³»åˆ—æ–‡ç« " - /> - </div> - </el-card> - </el-col> - </el-row> - </div> -</template> - -<script> -import PanThumb from "@/components/PanThumb"; -import MdInput from "@/components/MDinput"; -import Mallki from "@/components/TextHoverEffect/Mallki"; -import DropdownMenu from "@/components/Share/DropdownMenu"; -import waves from "@/directive/waves/index.js"; // 水波纹指令 - -export default { - name: "ComponentMixinDemo", - components: { - PanThumb, - MdInput, - Mallki, - DropdownMenu - }, - directives: { - waves - }, - data() { - const validate = (rule, value, callback) => { - if (value.length !== 6) { - callback(new Error("请输入å…个å—符")); - } else { - callback(); - } - }; - return { - demo: { - title: "" - }, - demoRules: { - title: [{ required: true, trigger: "change", validator: validate }] - }, - articleList: [ - { - title: "基础篇", - href: "https://juejin.im/post/59097cd7a22b9d0065fb61d2" - }, - { - title: "登录æƒé™ç¯‡", - href: "https://juejin.im/post/591aa14f570c35006961acac" - }, - { - title: "实战篇", - href: "https://juejin.im/post/593121aa0ce4630057f70d35" - }, - { - title: "vue-admin-template 篇", - href: "https://juejin.im/post/595b4d776fb9a06bbe7dba56" - }, - { - title: "v4.0 篇", - href: "https://juejin.im/post/5c92ff94f265da6128275a85" - }, - { - title: "优雅的使用 icon", - href: "https://juejin.im/post/59bb864b5188257e7a427c09" - } - ] - }; - } -}; -</script> - -<style scoped> -.mixin-components-container { - background-color: #f0f2f5; - padding: 30px; - min-height: calc(100vh - 84px); -} -.component-item { - min-height: 100px; -} -</style> diff --git a/WebSite/src/views/components-demo/split-pane.vue b/WebSite/src/views/components-demo/split-pane.vue deleted file mode 100644 index 59ba5995..00000000 --- a/WebSite/src/views/components-demo/split-pane.vue +++ /dev/null @@ -1,71 +0,0 @@ -<template> - <div class="components-container"> - <aside> - <strong>SplitPane</strong> If you've used - <a href="https://codepen.io/" target="_blank"> codepen</a>, - <a href="https://jsfiddle.net/" target="_blank"> jsfiddle </a>will not be - unfamiliar. - <a href="https://github.com/PanJiaChen/vue-split-pane" target="_blank"> - Github repository</a - > - </aside> - <split-pane split="vertical" @resize="resize"> - <template slot="paneL"> - <div class="left-container" /> - </template> - <template slot="paneR"> - <split-pane split="horizontal"> - <template slot="paneL"> - <div class="top-container" /> - </template> - <template slot="paneR"> - <div class="bottom-container" /> - </template> - </split-pane> - </template> - </split-pane> - </div> -</template> - -<script> -import splitPane from "vue-splitpane"; - -export default { - name: "SplitpaneDemo", - components: { splitPane }, - methods: { - resize() { - console.log("resize"); - } - } -}; -</script> - -<style scoped> -.components-container { - position: relative; - height: 100vh; -} - -.left-container { - background-color: #f38181; - height: 100%; -} - -.right-container { - background-color: #fce38a; - height: 200px; -} - -.top-container { - background-color: #fce38a; - width: 100%; - height: 100%; -} - -.bottom-container { - width: 100%; - background-color: #95e1d3; - height: 100%; -} -</style> diff --git a/WebSite/src/views/components-demo/sticky.vue b/WebSite/src/views/components-demo/sticky.vue deleted file mode 100644 index 882c6c3f..00000000 --- a/WebSite/src/views/components-demo/sticky.vue +++ /dev/null @@ -1,149 +0,0 @@ -<template> - <div> - <sticky :z-index="10" class-name="sub-navbar"> - <el-dropdown trigger="click"> - <el-button plain> - Platform<i class="el-icon-caret-bottom el-icon--right" /> - </el-button> - <el-dropdown-menu slot="dropdown" class="no-border"> - <el-checkbox-group v-model="platforms" style="padding: 5px 15px;"> - <el-checkbox - v-for="item in platformsOptions" - :key="item.key" - :label="item.key" - > - {{ item.name }} - </el-checkbox> - </el-checkbox-group> - </el-dropdown-menu> - </el-dropdown> - - <el-dropdown trigger="click"> - <el-button plain> - Link<i class="el-icon-caret-bottom el-icon--right" /> - </el-button> - <el-dropdown-menu - slot="dropdown" - class="no-padding no-border" - style="width:300px" - > - <el-input v-model="url" placeholder="Please enter the content"> - <template slot="prepend"> - Url - </template> - </el-input> - </el-dropdown-menu> - </el-dropdown> - - <div class="time-container"> - <el-date-picker - v-model="time" - type="datetime" - format="yyyy-MM-dd HH:mm:ss" - placeholder="Release time" - /> - </div> - - <el-button style="margin-left: 10px;" type="success"> - publish - </el-button> - </sticky> - - <div class="components-container"> - <aside> - Sticky header, When the page is scrolled to the preset position will be - sticky on the top. - </aside> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <sticky :sticky-top="200"> - <el-button type="primary"> placeholder</el-button> - </sticky> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - </div> - </div> -</template> - -<script> -import Sticky from "@/components/Sticky"; - -export default { - name: "StickyDemo", - components: { Sticky }, - data() { - return { - time: "", - url: "", - platforms: ["a-platform"], - platformsOptions: [ - { key: "a-platform", name: "platformA" }, - { key: "b-platform", name: "platformB" }, - { key: "c-platform", name: "platformC" } - ], - pickerOptions: { - disabledDate(time) { - return time.getTime() > Date.now(); - } - } - }; - } -}; -</script> - -<style scoped> -.components-container div { - margin: 10px; -} - -.time-container { - display: inline-block; -} -</style> diff --git a/WebSite/src/views/components-demo/tinymce.vue b/WebSite/src/views/components-demo/tinymce.vue deleted file mode 100644 index aa1a9d84..00000000 --- a/WebSite/src/views/components-demo/tinymce.vue +++ /dev/null @@ -1,43 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Rich text is a core feature of the management backend, but at the same - time it is a place with lots of pits. In the process of selecting rich - texts, I also took a lot of detours. The common rich texts on the market - have been basically used, and I finally chose Tinymce. See the more - detailed rich text comparison and introduction. - <a - target="_blank" - class="link-type" - href="https://panjiachen.github.io/vue-element-admin-site/component/rich-editor.html" - >Documentation</a - > - </aside> - <div> - <tinymce v-model="content" :height="300" /> - </div> - <div class="editor-content" v-html="content" /> - </div> -</template> - -<script> -import Tinymce from "@/components/Tinymce"; - -export default { - name: "TinymceDemo", - components: { Tinymce }, - data() { - return { - content: `<h1 style="text-align: center;">Welcome to the TinyMCE demo!</h1><p style="text-align: center; font-size: 15px;"><img title="TinyMCE Logo" src="//www.tinymce.com/images/glyph-tinymce@2x.png" alt="TinyMCE Logo" width="110" height="97" /><ul> - <li>Our <a href="//www.tinymce.com/docs/">documentation</a> is a great resource for learning how to configure TinyMCE.</li><li>Have a specific question? Visit the <a href="https://community.tinymce.com/forum/">Community Forum</a>.</li><li>We also offer enterprise grade support as part of <a href="https://tinymce.com/pricing">TinyMCE premium subscriptions</a>.</li> - </ul>` - }; - } -}; -</script> - -<style scoped> -.editor-content { - margin-top: 20px; -} -</style> diff --git a/WebSite/src/views/dashboard/admin/components/BarChart.vue b/WebSite/src/views/dashboard/admin/components/BarChart.vue deleted file mode 100644 index df33a08e..00000000 --- a/WebSite/src/views/dashboard/admin/components/BarChart.vue +++ /dev/null @@ -1,111 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -const animationDuration = 6000; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "300px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - - this.chart.setOption({ - tooltip: { - trigger: "axis", - axisPointer: { - // åæ ‡è½´æŒ‡ç¤ºå™¨ï¼Œåæ ‡è½´è§¦å‘æœ‰æ•ˆ - type: "shadow" // 默认为直线,å¯é€‰ä¸ºï¼š'line' | 'shadow' - } - }, - grid: { - top: 10, - left: "2%", - right: "2%", - bottom: "3%", - containLabel: true - }, - xAxis: [ - { - type: "category", - data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], - axisTick: { - alignWithLabel: true - } - } - ], - yAxis: [ - { - type: "value", - axisTick: { - show: false - } - } - ], - series: [ - { - name: "pageA", - type: "bar", - stack: "vistors", - barWidth: "60%", - data: [79, 52, 200, 334, 390, 330, 220], - animationDuration - }, - { - name: "pageB", - type: "bar", - stack: "vistors", - barWidth: "60%", - data: [80, 52, 200, 334, 390, 330, 220], - animationDuration - }, - { - name: "pageC", - type: "bar", - stack: "vistors", - barWidth: "60%", - data: [30, 52, 200, 334, 390, 330, 220], - animationDuration - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/BoxCard.vue b/WebSite/src/views/dashboard/admin/components/BoxCard.vue deleted file mode 100644 index 9eb4c311..00000000 --- a/WebSite/src/views/dashboard/admin/components/BoxCard.vue +++ /dev/null @@ -1,116 +0,0 @@ -<template> - <el-card class="box-card-component" style="margin-left:8px;"> - <div slot="header" class="box-card-header"> - <img - src="https://wpimg.wallstcn.com/e7d23d71-cf19-4b90-a1cc-f56af8c0903d.png" - /> - </div> - <div style="position:relative;"> - <pan-thumb :image="avatar" class="panThumb" /> - <mallki class-name="mallki-text" text="vue-element-admin" /> - <div style="padding-top:35px;" class="progress-item"> - <span>Vue</span> - <el-progress :percentage="70" /> - </div> - <div class="progress-item"> - <span>JavaScript</span> - <el-progress :percentage="18" /> - </div> - <div class="progress-item"> - <span>Css</span> - <el-progress :percentage="12" /> - </div> - <div class="progress-item"> - <span>ESLint</span> - <el-progress :percentage="100" status="success" /> - </div> - </div> - </el-card> -</template> - -<script> -import { mapGetters } from "vuex"; -import PanThumb from "@/components/PanThumb"; -import Mallki from "@/components/TextHoverEffect/Mallki"; - -export default { - components: { PanThumb, Mallki }, - - filters: { - statusFilter(status) { - const statusMap = { - success: "success", - pending: "danger" - }; - return statusMap[status]; - } - }, - data() { - return { - statisticsData: { - article_count: 1024, - pageviews_count: 1024 - } - }; - }, - computed: { - ...mapGetters(["name", "avatar", "roles"]) - } -}; -</script> - -<style lang="scss"> -.box-card-component { - .el-card__header { - padding: 0px !important; - } -} -</style> -<style lang="scss" scoped> -.box-card-component { - .box-card-header { - position: relative; - height: 220px; - img { - width: 100%; - height: 100%; - transition: all 0.2s linear; - &:hover { - transform: scale(1.1, 1.1); - filter: contrast(130%); - } - } - } - .mallki-text { - position: absolute; - top: 0px; - right: 0px; - font-size: 20px; - font-weight: bold; - } - .panThumb { - z-index: 100; - height: 70px !important; - width: 70px !important; - position: absolute !important; - top: -45px; - left: 0px; - border: 5px solid #ffffff; - background-color: #fff; - margin: auto; - box-shadow: none !important; - /deep/ .pan-info { - box-shadow: none !important; - } - } - .progress-item { - margin-bottom: 10px; - font-size: 14px; - } - @media only screen and (max-width: 1510px) { - .mallki-text { - display: none; - } - } -} -</style> diff --git a/WebSite/src/views/dashboard/admin/components/LineChart.vue b/WebSite/src/views/dashboard/admin/components/LineChart.vue deleted file mode 100644 index e8cdf897..00000000 --- a/WebSite/src/views/dashboard/admin/components/LineChart.vue +++ /dev/null @@ -1,138 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "350px" - }, - autoResize: { - type: Boolean, - default: true - }, - chartData: { - type: Object, - required: true - } - }, - data() { - return { - chart: null - }; - }, - watch: { - chartData: { - deep: true, - handler(val) { - this.setOptions(val); - } - } - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - this.setOptions(this.chartData); - }, - setOptions({ expectedData, actualData } = {}) { - this.chart.setOption({ - xAxis: { - data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], - boundaryGap: false, - axisTick: { - show: false - } - }, - grid: { - left: 10, - right: 10, - bottom: 20, - top: 30, - containLabel: true - }, - tooltip: { - trigger: "axis", - axisPointer: { - type: "cross" - }, - padding: [5, 10] - }, - yAxis: { - axisTick: { - show: false - } - }, - legend: { - data: ["expected", "actual"] - }, - series: [ - { - name: "expected", - itemStyle: { - normal: { - color: "#FF005A", - lineStyle: { - color: "#FF005A", - width: 2 - } - } - }, - smooth: true, - type: "line", - data: expectedData, - animationDuration: 2800, - animationEasing: "cubicInOut" - }, - { - name: "actual", - smooth: true, - type: "line", - itemStyle: { - normal: { - color: "#3888fa", - lineStyle: { - color: "#3888fa", - width: 2 - }, - areaStyle: { - color: "#f3f8ff" - } - } - }, - data: actualData, - animationDuration: 2800, - animationEasing: "quadraticOut" - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/PanelGroup.vue b/WebSite/src/views/dashboard/admin/components/PanelGroup.vue deleted file mode 100644 index 49ffc004..00000000 --- a/WebSite/src/views/dashboard/admin/components/PanelGroup.vue +++ /dev/null @@ -1,201 +0,0 @@ -<template> - <el-row :gutter="40" class="panel-group"> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('newVisitis')"> - <div class="card-panel-icon-wrapper icon-people"> - <svg-icon icon-class="peoples" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - New Visits - </div> - <count-to - :start-val="0" - :end-val="102400" - :duration="2600" - class="card-panel-num" - /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('messages')"> - <div class="card-panel-icon-wrapper icon-message"> - <svg-icon icon-class="message" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - Messages - </div> - <count-to - :start-val="0" - :end-val="81212" - :duration="3000" - class="card-panel-num" - /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('purchases')"> - <div class="card-panel-icon-wrapper icon-money"> - <svg-icon icon-class="money" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - Purchases - </div> - <count-to - :start-val="0" - :end-val="9280" - :duration="3200" - class="card-panel-num" - /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('shoppings')"> - <div class="card-panel-icon-wrapper icon-shopping"> - <svg-icon icon-class="shopping" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - Shoppings - </div> - <count-to - :start-val="0" - :end-val="13600" - :duration="3600" - class="card-panel-num" - /> - </div> - </div> - </el-col> - </el-row> -</template> - -<script> -import CountTo from "vue-count-to"; - -export default { - components: { - CountTo - }, - methods: { - handleSetLineChartData(type) { - this.$emit("handleSetLineChartData", type); - } - } -}; -</script> - -<style lang="scss" scoped> -.panel-group { - margin-top: 18px; - - .card-panel-col { - margin-bottom: 32px; - } - - .card-panel { - height: 108px; - cursor: pointer; - font-size: 12px; - position: relative; - overflow: hidden; - color: #666; - background: #fff; - box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05); - border-color: rgba(0, 0, 0, 0.05); - - &:hover { - .card-panel-icon-wrapper { - color: #fff; - } - - .icon-people { - background: #40c9c6; - } - - .icon-message { - background: #36a3f7; - } - - .icon-money { - background: #f4516c; - } - - .icon-shopping { - background: #34bfa3; - } - } - - .icon-people { - color: #40c9c6; - } - - .icon-message { - color: #36a3f7; - } - - .icon-money { - color: #f4516c; - } - - .icon-shopping { - color: #34bfa3; - } - - .card-panel-icon-wrapper { - float: left; - margin: 14px 0 0 14px; - padding: 16px; - transition: all 0.38s ease-out; - border-radius: 6px; - } - - .card-panel-icon { - float: left; - font-size: 48px; - } - - .card-panel-description { - float: right; - font-weight: bold; - margin: 26px; - margin-left: 0px; - - .card-panel-text { - line-height: 18px; - color: rgba(0, 0, 0, 0.45); - font-size: 16px; - margin-bottom: 12px; - } - - .card-panel-num { - font-size: 20px; - } - } - } -} - -@media (max-width: 550px) { - .card-panel-description { - display: none; - } - - .card-panel-icon-wrapper { - float: none !important; - width: 100%; - height: 100%; - margin: 0 !important; - - .svg-icon { - display: block; - margin: 14px auto !important; - float: none !important; - } - } -} -</style> diff --git a/WebSite/src/views/dashboard/admin/components/PieChart.vue b/WebSite/src/views/dashboard/admin/components/PieChart.vue deleted file mode 100644 index cd81bc02..00000000 --- a/WebSite/src/views/dashboard/admin/components/PieChart.vue +++ /dev/null @@ -1,79 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "300px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - - this.chart.setOption({ - tooltip: { - trigger: "item", - formatter: "{a} <br/>{b} : {c} ({d}%)" - }, - legend: { - left: "center", - bottom: "10", - data: ["Industries", "Technology", "Forex", "Gold", "Forecasts"] - }, - series: [ - { - name: "WEEKLY WRITE ARTICLES", - type: "pie", - roseType: "radius", - radius: [15, 95], - center: ["50%", "38%"], - data: [ - { value: 320, name: "Industries" }, - { value: 240, name: "Technology" }, - { value: 149, name: "Forex" }, - { value: 100, name: "Gold" }, - { value: 59, name: "Forecasts" } - ], - animationEasing: "cubicInOut", - animationDuration: 2600 - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/RaddarChart.vue b/WebSite/src/views/dashboard/admin/components/RaddarChart.vue deleted file mode 100644 index bf0e1cd6..00000000 --- a/WebSite/src/views/dashboard/admin/components/RaddarChart.vue +++ /dev/null @@ -1,119 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -const animationDuration = 3000; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "300px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - - this.chart.setOption({ - tooltip: { - trigger: "axis", - axisPointer: { - // åæ ‡è½´æŒ‡ç¤ºå™¨ï¼Œåæ ‡è½´è§¦å‘æœ‰æ•ˆ - type: "shadow" // 默认为直线,å¯é€‰ä¸ºï¼š'line' | 'shadow' - } - }, - radar: { - radius: "66%", - center: ["50%", "42%"], - splitNumber: 8, - splitArea: { - areaStyle: { - color: "rgba(127,95,132,.3)", - opacity: 1, - shadowBlur: 45, - shadowColor: "rgba(0,0,0,.5)", - shadowOffsetX: 0, - shadowOffsetY: 15 - } - }, - indicator: [ - { name: "Sales", max: 10000 }, - { name: "Administration", max: 20000 }, - { name: "Information Techology", max: 20000 }, - { name: "Customer Support", max: 20000 }, - { name: "Development", max: 20000 }, - { name: "Marketing", max: 20000 } - ] - }, - legend: { - left: "center", - bottom: "10", - data: ["Allocated Budget", "Expected Spending", "Actual Spending"] - }, - series: [ - { - type: "radar", - symbolSize: 0, - areaStyle: { - normal: { - shadowBlur: 13, - shadowColor: "rgba(0,0,0,.2)", - shadowOffsetX: 0, - shadowOffsetY: 10, - opacity: 1 - } - }, - data: [ - { - value: [5000, 7000, 12000, 11000, 15000, 14000], - name: "Allocated Budget" - }, - { - value: [4000, 9000, 15000, 15000, 13000, 11000], - name: "Expected Spending" - }, - { - value: [5500, 11000, 12000, 15000, 12000, 12000], - name: "Actual Spending" - } - ], - animationDuration: animationDuration - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue b/WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue deleted file mode 100644 index 41123587..00000000 --- a/WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue +++ /dev/null @@ -1,81 +0,0 @@ -<template> - <li :class="{ completed: todo.done, editing: editing }" class="todo"> - <div class="view"> - <input - :checked="todo.done" - class="toggle" - type="checkbox" - @change="toggleTodo(todo)" - /> - <label @dblclick="editing = true" v-text="todo.text" /> - <button class="destroy" @click="deleteTodo(todo)" /> - </div> - <input - v-show="editing" - v-focus="editing" - :value="todo.text" - class="edit" - @keyup.enter="doneEdit" - @keyup.esc="cancelEdit" - @blur="doneEdit" - /> - </li> -</template> - -<script> -export default { - name: "Todo", - directives: { - focus(el, { value }, { context }) { - if (value) { - context.$nextTick(() => { - el.focus(); - }); - } - } - }, - props: { - todo: { - type: Object, - default: function() { - return {}; - } - } - }, - data() { - return { - editing: false - }; - }, - methods: { - deleteTodo(todo) { - this.$emit("deleteTodo", todo); - }, - editTodo({ todo, value }) { - this.$emit("editTodo", { todo, value }); - }, - toggleTodo(todo) { - this.$emit("toggleTodo", todo); - }, - doneEdit(e) { - const value = e.target.value.trim(); - const { todo } = this; - if (!value) { - this.deleteTodo({ - todo - }); - } else if (this.editing) { - this.editTodo({ - todo, - value - }); - this.editing = false; - } - }, - cancelEdit(e) { - e.target.value = this.todo.text; - this.editing = false; - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/TodoList/index.scss b/WebSite/src/views/dashboard/admin/components/TodoList/index.scss deleted file mode 100644 index 74ce0d54..00000000 --- a/WebSite/src/views/dashboard/admin/components/TodoList/index.scss +++ /dev/null @@ -1,320 +0,0 @@ -.todoapp { - font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif; - line-height: 1.4em; - color: #4d4d4d; - min-width: 230px; - max-width: 550px; - margin: 0 auto ; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-weight: 300; - background: #fff; - z-index: 1; - position: relative; - button { - margin: 0; - padding: 0; - border: 0; - background: none; - font-size: 100%; - vertical-align: baseline; - font-family: inherit; - font-weight: inherit; - color: inherit; - -webkit-appearance: none; - appearance: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - :focus { - outline: 0; - } - .hidden { - display: none; - } - .todoapp { - background: #fff; - margin: 130px 0 40px 0; - position: relative; - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); - } - .todoapp input::-webkit-input-placeholder { - font-style: italic; - font-weight: 300; - color: #e6e6e6; - } - .todoapp input::-moz-placeholder { - font-style: italic; - font-weight: 300; - color: #e6e6e6; - } - .todoapp input::input-placeholder { - font-style: italic; - font-weight: 300; - color: #e6e6e6; - } - .todoapp h1 { - position: absolute; - top: -155px; - width: 100%; - font-size: 100px; - font-weight: 100; - text-align: center; - color: rgba(175, 47, 47, 0.15); - -webkit-text-rendering: optimizeLegibility; - -moz-text-rendering: optimizeLegibility; - text-rendering: optimizeLegibility; - } - .new-todo, - .edit { - position: relative; - margin: 0; - width: 100%; - font-size: 18px; - font-family: inherit; - font-weight: inherit; - line-height: 1.4em; - border: 0; - color: inherit; - padding: 6px; - border: 1px solid #999; - box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2); - box-sizing: border-box; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - .new-todo { - padding: 10px 16px 16px 60px; - border: none; - background: rgba(0, 0, 0, 0.003); - box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03); - } - .main { - position: relative; - z-index: 2; - border-top: 1px solid #e6e6e6; - } - .toggle-all { - text-align: center; - border: none; - /* Mobile Safari */ - opacity: 0; - position: absolute; - } - .toggle-all+label { - width: 60px; - height: 34px; - font-size: 0; - position: absolute; - top: -52px; - left: -13px; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - } - .toggle-all+label:before { - content: 'â¯'; - font-size: 22px; - color: #e6e6e6; - padding: 10px 27px 10px 27px; - } - .toggle-all:checked+label:before { - color: #737373; - } - .todo-list { - margin: 0; - padding: 0; - list-style: none; - } - .todo-list li { - position: relative; - font-size: 24px; - border-bottom: 1px solid #ededed; - } - .todo-list li:last-child { - border-bottom: none; - } - .todo-list li.editing { - border-bottom: none; - padding: 0; - } - .todo-list li.editing .edit { - display: block; - width: 506px; - padding: 12px 16px; - margin: 0 0 0 43px; - } - .todo-list li.editing .view { - display: none; - } - .todo-list li .toggle { - text-align: center; - width: 40px; - /* auto, since non-WebKit browsers doesn't support input styling */ - height: auto; - position: absolute; - top: 0; - bottom: 0; - margin: auto 0; - border: none; - /* Mobile Safari */ - -webkit-appearance: none; - appearance: none; - } - .todo-list li .toggle { - opacity: 0; - } - .todo-list li .toggle+label { - /* - Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433 - IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/ - */ - background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E'); - background-repeat: no-repeat; - background-position: center left; - background-size: 36px; - } - .todo-list li .toggle:checked+label { - background-size: 36px; - background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E'); - } - .todo-list li label { - word-break: break-all; - padding: 15px 15px 15px 50px; - display: block; - line-height: 1.0; - font-size: 14px; - transition: color 0.4s; - } - .todo-list li.completed label { - color: #d9d9d9; - text-decoration: line-through; - } - .todo-list li .destroy { - display: none; - position: absolute; - top: 0; - right: 10px; - bottom: 0; - width: 40px; - height: 40px; - margin: auto 0; - font-size: 30px; - color: #cc9a9a; - transition: color 0.2s ease-out; - cursor: pointer; - } - .todo-list li .destroy:hover { - color: #af5b5e; - } - .todo-list li .destroy:after { - content: '×'; - } - .todo-list li:hover .destroy { - display: block; - } - .todo-list li .edit { - display: none; - } - .todo-list li.editing:last-child { - margin-bottom: -1px; - } - .footer { - color: #777; - position: relative; - padding: 10px 15px; - height: 40px; - text-align: center; - border-top: 1px solid #e6e6e6; - } - .footer:before { - content: ''; - position: absolute; - right: 0; - bottom: 0; - left: 0; - height: 40px; - overflow: hidden; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 8px 0 -3px #f6f6f6, 0 9px 1px -3px rgba(0, 0, 0, 0.2), 0 16px 0 -6px #f6f6f6, 0 17px 2px -6px rgba(0, 0, 0, 0.2); - } - .todo-count { - float: left; - text-align: left; - } - .todo-count strong { - font-weight: 300; - } - .filters { - margin: 0; - padding: 0; - position: relative; - z-index: 1; - list-style: none; - } - .filters li { - display: inline; - } - .filters li a { - color: inherit; - font-size: 12px; - padding: 3px 7px; - text-decoration: none; - border: 1px solid transparent; - border-radius: 3px; - } - .filters li a:hover { - border-color: rgba(175, 47, 47, 0.1); - } - .filters li a.selected { - border-color: rgba(175, 47, 47, 0.2); - } - .clear-completed, - html .clear-completed:active { - float: right; - position: relative; - line-height: 20px; - text-decoration: none; - cursor: pointer; - } - .clear-completed:hover { - text-decoration: underline; - } - .info { - margin: 65px auto 0; - color: #bfbfbf; - font-size: 10px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-align: center; - } - .info p { - line-height: 1; - } - .info a { - color: inherit; - text-decoration: none; - font-weight: 400; - } - .info a:hover { - text-decoration: underline; - } - /* - Hack to remove background from Mobile Safari. - Can't use it globally since it destroys checkboxes in Firefox -*/ - @media screen and (-webkit-min-device-pixel-ratio:0) { - .toggle-all, - .todo-list li .toggle { - background: none; - } - .todo-list li .toggle { - height: 40px; - } - } - @media (max-width: 430px) { - .footer { - height: 50px; - } - .filters { - bottom: 10px; - } - } -} diff --git a/WebSite/src/views/dashboard/admin/components/TodoList/index.vue b/WebSite/src/views/dashboard/admin/components/TodoList/index.vue deleted file mode 100644 index 7a320156..00000000 --- a/WebSite/src/views/dashboard/admin/components/TodoList/index.vue +++ /dev/null @@ -1,142 +0,0 @@ -<template> - <section class="todoapp"> - <!-- header --> - <header class="header"> - <input - class="new-todo" - autocomplete="off" - placeholder="Todo List" - @keyup.enter="addTodo" - /> - </header> - <!-- main section --> - <section v-show="todos.length" class="main"> - <input - id="toggle-all" - :checked="allChecked" - class="toggle-all" - type="checkbox" - @change="toggleAll({ done: !allChecked })" - /> - <label for="toggle-all" /> - <ul class="todo-list"> - <todo - v-for="(todo, index) in filteredTodos" - :key="index" - :todo="todo" - @toggleTodo="toggleTodo" - @editTodo="editTodo" - @deleteTodo="deleteTodo" - /> - </ul> - </section> - <!-- footer --> - <footer v-show="todos.length" class="footer"> - <span class="todo-count"> - <strong>{{ remaining }}</strong> - {{ remaining | pluralize("item") }} left - </span> - <ul class="filters"> - <li v-for="(val, key) in filters" :key="key"> - <a - :class="{ selected: visibility === key }" - @click.prevent="visibility = key" - >{{ key | capitalize }}</a - > - </li> - </ul> - <!-- <button class="clear-completed" v-show="todos.length > remaining" @click="clearCompleted"> - Clear completed - </button> --> - </footer> - </section> -</template> - -<script> -import Todo from "./Todo.vue"; - -const STORAGE_KEY = "todos"; -const filters = { - all: todos => todos, - active: todos => todos.filter(todo => !todo.done), - completed: todos => todos.filter(todo => todo.done) -}; -const defalutList = [ - { text: "star this repository", done: false }, - { text: "fork this repository", done: false }, - { text: "follow author", done: false }, - { text: "vue-element-admin", done: true }, - { text: "vue", done: true }, - { text: "element-ui", done: true }, - { text: "axios", done: true }, - { text: "webpack", done: true } -]; -export default { - components: { Todo }, - filters: { - pluralize: (n, w) => (n === 1 ? w : w + "s"), - capitalize: s => s.charAt(0).toUpperCase() + s.slice(1) - }, - data() { - return { - visibility: "all", - filters, - // todos: JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || defalutList - todos: defalutList - }; - }, - computed: { - allChecked() { - return this.todos.every(todo => todo.done); - }, - filteredTodos() { - return filters[this.visibility](this.todos); - }, - remaining() { - return this.todos.filter(todo => !todo.done).length; - } - }, - methods: { - setLocalStorage() { - window.localStorage.setItem(STORAGE_KEY, JSON.stringify(this.todos)); - }, - addTodo(e) { - const text = e.target.value; - if (text.trim()) { - this.todos.push({ - text, - done: false - }); - this.setLocalStorage(); - } - e.target.value = ""; - }, - toggleTodo(val) { - val.done = !val.done; - this.setLocalStorage(); - }, - deleteTodo(todo) { - this.todos.splice(this.todos.indexOf(todo), 1); - this.setLocalStorage(); - }, - editTodo({ todo, value }) { - todo.text = value; - this.setLocalStorage(); - }, - clearCompleted() { - this.todos = this.todos.filter(todo => !todo.done); - this.setLocalStorage(); - }, - toggleAll({ done }) { - this.todos.forEach(todo => { - todo.done = done; - this.setLocalStorage(); - }); - } - } -}; -</script> - -<style lang="scss"> -@import "./index.scss"; -</style> diff --git a/WebSite/src/views/dashboard/admin/components/TransactionTable.vue b/WebSite/src/views/dashboard/admin/components/TransactionTable.vue deleted file mode 100644 index aa6a95c9..00000000 --- a/WebSite/src/views/dashboard/admin/components/TransactionTable.vue +++ /dev/null @@ -1,55 +0,0 @@ -<template> - <el-table :data="list" style="width: 100%;padding-top: 15px;"> - <el-table-column label="Order_No" min-width="200"> - <template slot-scope="scope"> - {{ scope.row.order_no | orderNoFilter }} - </template> - </el-table-column> - <el-table-column label="Price" width="195" align="center"> - <template slot-scope="scope"> - Â¥{{ scope.row.price | toThousandFilter }} - </template> - </el-table-column> - <el-table-column label="Status" width="100" align="center"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - </el-table> -</template> - -<script> -import { transactionList } from "@/api/remote-search"; - -export default { - filters: { - statusFilter(status) { - const statusMap = { - success: "success", - pending: "danger" - }; - return statusMap[status]; - }, - orderNoFilter(str) { - return str.substring(0, 30); - } - }, - data() { - return { - list: null - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - transactionList().then(response => { - this.list = response.data.items.slice(0, 8); - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/mixins/resize.js b/WebSite/src/views/dashboard/admin/components/mixins/resize.js deleted file mode 100644 index 53153bf8..00000000 --- a/WebSite/src/views/dashboard/admin/components/mixins/resize.js +++ /dev/null @@ -1,65 +0,0 @@ -import { debounce } from "@/utils"; - -export default { - data() { - return { - $_sidebarElm: null, - $_resizeHandler: null - }; - }, - mounted() { - this.$_resizeHandler = debounce(() => { - if (this.chart) { - this.chart.resize(); - } - }, 100); - this.$_initResizeEvent(); - this.$_initSidebarResizeEvent(); - }, - beforeDestroy() { - this.$_destroyResizeEvent(); - this.$_destroySidebarResizeEvent(); - }, - // to fixed bug when cached by keep-alive - // https://github.com/PanJiaChen/vue-element-admin/issues/2116 - activated() { - this.$_initResizeEvent(); - this.$_initSidebarResizeEvent(); - }, - deactivated() { - this.$_destroyResizeEvent(); - this.$_destroySidebarResizeEvent(); - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_initResizeEvent() { - window.addEventListener("resize", this.$_resizeHandler); - }, - $_destroyResizeEvent() { - window.removeEventListener("resize", this.$_resizeHandler); - }, - $_sidebarResizeHandler(e) { - if (e.propertyName === "width") { - this.$_resizeHandler(); - } - }, - $_initSidebarResizeEvent() { - this.$_sidebarElm = document.getElementsByClassName( - "sidebar-container" - )[0]; - this.$_sidebarElm && - this.$_sidebarElm.addEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - }, - $_destroySidebarResizeEvent() { - this.$_sidebarElm && - this.$_sidebarElm.removeEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - } - } -}; diff --git a/WebSite/src/views/dashboard/admin/index.vue b/WebSite/src/views/dashboard/admin/index.vue deleted file mode 100644 index ac41376e..00000000 --- a/WebSite/src/views/dashboard/admin/index.vue +++ /dev/null @@ -1,145 +0,0 @@ -<template> - <div class="dashboard-editor-container"> - <github-corner class="github-corner" /> - - <panel-group @handleSetLineChartData="handleSetLineChartData" /> - - <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> - <line-chart :chart-data="lineChartData" /> - </el-row> - - <el-row :gutter="32"> - <el-col :xs="24" :sm="24" :lg="8"> - <div class="chart-wrapper"> - <raddar-chart /> - </div> - </el-col> - <el-col :xs="24" :sm="24" :lg="8"> - <div class="chart-wrapper"> - <pie-chart /> - </div> - </el-col> - <el-col :xs="24" :sm="24" :lg="8"> - <div class="chart-wrapper"> - <bar-chart /> - </div> - </el-col> - </el-row> - - <el-row :gutter="8"> - <el-col - :xs="{ span: 24 }" - :sm="{ span: 24 }" - :md="{ span: 24 }" - :lg="{ span: 12 }" - :xl="{ span: 12 }" - style="padding-right:8px;margin-bottom:30px;" - > - <transaction-table /> - </el-col> - <el-col - :xs="{ span: 24 }" - :sm="{ span: 12 }" - :md="{ span: 12 }" - :lg="{ span: 6 }" - :xl="{ span: 6 }" - style="margin-bottom:30px;" - > - <todo-list /> - </el-col> - <el-col - :xs="{ span: 24 }" - :sm="{ span: 12 }" - :md="{ span: 12 }" - :lg="{ span: 6 }" - :xl="{ span: 6 }" - style="margin-bottom:30px;" - > - <box-card /> - </el-col> - </el-row> - </div> -</template> - -<script> -import GithubCorner from "@/components/GithubCorner"; -import PanelGroup from "./components/PanelGroup"; -import LineChart from "./components/LineChart"; -import RaddarChart from "./components/RaddarChart"; -import PieChart from "./components/PieChart"; -import BarChart from "./components/BarChart"; -import TransactionTable from "./components/TransactionTable"; -import TodoList from "./components/TodoList"; -import BoxCard from "./components/BoxCard"; - -const lineChartData = { - newVisitis: { - expectedData: [100, 120, 161, 134, 105, 160, 165], - actualData: [120, 82, 91, 154, 162, 140, 145] - }, - messages: { - expectedData: [200, 192, 120, 144, 160, 130, 140], - actualData: [180, 160, 151, 106, 145, 150, 130] - }, - purchases: { - expectedData: [80, 100, 121, 104, 105, 90, 100], - actualData: [120, 90, 100, 138, 142, 130, 130] - }, - shoppings: { - expectedData: [130, 140, 141, 142, 145, 150, 160], - actualData: [120, 82, 91, 154, 162, 140, 130] - } -}; - -export default { - name: "DashboardAdmin", - components: { - GithubCorner, - PanelGroup, - LineChart, - RaddarChart, - PieChart, - BarChart, - TransactionTable, - TodoList, - BoxCard - }, - data() { - return { - lineChartData: lineChartData.newVisitis - }; - }, - methods: { - handleSetLineChartData(type) { - this.lineChartData = lineChartData[type]; - } - } -}; -</script> - -<style lang="scss" scoped> -.dashboard-editor-container { - padding: 32px; - background-color: rgb(240, 242, 245); - position: relative; - - .github-corner { - position: absolute; - top: 0px; - border: 0; - right: 0; - } - - .chart-wrapper { - background: #fff; - padding: 16px 16px 0; - margin-bottom: 32px; - } -} - -@media (max-width: 1024px) { - .chart-wrapper { - padding: 8px; - } -} -</style> diff --git a/WebSite/src/views/dashboard/editor/index.vue b/WebSite/src/views/dashboard/editor/index.vue deleted file mode 100644 index 61de4ced..00000000 --- a/WebSite/src/views/dashboard/editor/index.vue +++ /dev/null @@ -1,77 +0,0 @@ -<template> - <div class="dashboard-editor-container"> - <div class=" clearfix"> - <pan-thumb :image="avatar" style="float: left"> - Your roles: - <span v-for="item in roles" :key="item" class="pan-info-roles">{{ - item - }}</span> - </pan-thumb> - <github-corner - style="position: absolute; top: 0px; border: 0; right: 0;" - /> - <div class="info-container"> - <span class="display_name">{{ name }}</span> - <span style="font-size:20px;padding-top:20px;display:inline-block;" - >Editor's Dashboard</span - > - </div> - </div> - <div> - <img :src="emptyGif" class="emptyGif" /> - </div> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import PanThumb from "@/components/PanThumb"; -import GithubCorner from "@/components/GithubCorner"; - -export default { - name: "DashboardEditor", - components: { PanThumb, GithubCorner }, - data() { - return { - emptyGif: - "https://wpimg.wallstcn.com/0e03b7da-db9e-4819-ba10-9016ddfdaed3" - }; - }, - computed: { - ...mapGetters(["name", "avatar", "roles"]) - } -}; -</script> - -<style lang="scss" scoped> -.emptyGif { - display: block; - width: 45%; - margin: 0 auto; -} - -.dashboard-editor-container { - background-color: #e3e3e3; - min-height: 100vh; - padding: 50px 60px 0px; - .pan-info-roles { - font-size: 12px; - font-weight: 700; - color: #333; - display: block; - } - .info-container { - position: relative; - margin-left: 190px; - height: 150px; - line-height: 200px; - .display_name { - font-size: 48px; - line-height: 48px; - color: #212121; - position: absolute; - top: 25px; - } - } -} -</style> diff --git a/WebSite/src/views/dashboard/index.vue b/WebSite/src/views/dashboard/index.vue deleted file mode 100644 index 1f4d5ba5..00000000 --- a/WebSite/src/views/dashboard/index.vue +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dong - * @Date: 2020-04-21 18:54:21 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-05-12 08:28:53 - --> -<template> - <div class="dashboard-container"> - <component :is="currentRole" /> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import adminDashboard from "./admin"; -import editorDashboard from "./editor"; - -export default { - name: "Dashboard", - components: { adminDashboard, editorDashboard }, - data() { - return { - currentRole: "adminDashboard" - }; - }, - computed: { - ...mapGetters(["roles"]) - }, - created() { - if (!this.roles.includes("admin")) { - this.currentRole = "editorDashboard"; - } - } -}; -</script> diff --git a/WebSite/src/views/documentation/index.vue b/WebSite/src/views/documentation/index.vue deleted file mode 100644 index d3d5e32b..00000000 --- a/WebSite/src/views/documentation/index.vue +++ /dev/null @@ -1,103 +0,0 @@ -<template> - <div class="app-container documentation-container"> - <a - class="document-btn" - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/" - >Documentation</a - > - <a - class="document-btn" - target="_blank" - href="https://github.com/PanJiaChen/vue-element-admin/" - >Github Repository</a - > - <a - class="document-btn" - target="_blank" - href="https://panjiachen.gitee.io/vue-element-admin-site/zh/" - >国内文档</a - > - <dropdown-menu class="document-btn" :items="articleList" title="ç³»åˆ—æ–‡ç« " /> - <a - class="document-btn" - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/zh/job/" - >内推招è˜</a - > - </div> -</template> - -<script> -import DropdownMenu from "@/components/Share/DropdownMenu"; - -export default { - name: "Documentation", - components: { DropdownMenu }, - data() { - return { - articleList: [ - { - title: "基础篇", - href: "https://juejin.im/post/59097cd7a22b9d0065fb61d2" - }, - { - title: "登录æƒé™ç¯‡", - href: "https://juejin.im/post/591aa14f570c35006961acac" - }, - { - title: "实战篇", - href: "https://juejin.im/post/593121aa0ce4630057f70d35" - }, - { - title: "vue-admin-template 篇", - href: "https://juejin.im/post/595b4d776fb9a06bbe7dba56" - }, - { - title: "v4.0 篇", - href: "https://juejin.im/post/5c92ff94f265da6128275a85" - }, - { - title: "自行å°è£… component", - href: "https://segmentfault.com/a/1190000009090836" - }, - { - title: "优雅的使用 icon", - href: "https://juejin.im/post/59bb864b5188257e7a427c09" - }, - { - title: "webpack4(上)", - href: "https://juejin.im/post/59bb864b5188257e7a427c09" - }, - { - title: "webpack4(下)", - href: "https://juejin.im/post/5b5d6d6f6fb9a04fea58aabc" - } - ] - }; - } -}; -</script> - -<style lang="scss" scoped> -.documentation-container { - margin: 50px; - display: flex; - flex-wrap: wrap; - justify-content: space-evenly; - - .document-btn { - flex-shrink: 0; - display: block; - cursor: pointer; - background: black; - color: white; - height: 60px; - width: 200px; - margin-bottom: 16px; - line-height: 60px; - font-size: 20px; - text-align: center; - } -} -</style> diff --git a/WebSite/src/views/error-log/components/ErrorTestA.vue b/WebSite/src/views/error-log/components/ErrorTestA.vue deleted file mode 100644 index f2846372..00000000 --- a/WebSite/src/views/error-log/components/ErrorTestA.vue +++ /dev/null @@ -1,13 +0,0 @@ -<template> - <div> - <!--error code--> - {{ a.a }} - <!--error code--> - </div> -</template> - -<script> -export default { - name: "ErrorTestA" -}; -</script> diff --git a/WebSite/src/views/error-log/components/ErrorTestB.vue b/WebSite/src/views/error-log/components/ErrorTestB.vue deleted file mode 100644 index 24a3cd84..00000000 --- a/WebSite/src/views/error-log/components/ErrorTestB.vue +++ /dev/null @@ -1,11 +0,0 @@ -<template> - <div /> -</template> - -<script> -export default { - created() { - this.b = b // eslint-disable-line - } -}; -</script> diff --git a/WebSite/src/views/error-log/index.vue b/WebSite/src/views/error-log/index.vue deleted file mode 100644 index fd1afb4c..00000000 --- a/WebSite/src/views/error-log/index.vue +++ /dev/null @@ -1,42 +0,0 @@ -<template> - <div class="errPage-container"> - <ErrorA /> - <ErrorB /> - <h3>Please click the bug icon in the upper right corner</h3> - <aside> - Now the management system are basically the form of the spa, it enhances - the user experience, but it also increases the possibility of page - problems, a small negligence may lead to the entire page deadlock. - Fortunately Vue provides a way to catch handling exceptions, where you can - handle errors or report exceptions. - <a - target="_blank" - class="link-type" - href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/error.html" - > - Document introduction - </a> - </aside> - <a href="#"> - <img - src="https://wpimg.wallstcn.com/360e4842-4db5-42d0-b078-f9a84a825546.gif" - /> - </a> - </div> -</template> - -<script> -import ErrorA from "./components/ErrorTestA"; -import ErrorB from "./components/ErrorTestB"; - -export default { - name: "ErrorLog", - components: { ErrorA, ErrorB } -}; -</script> - -<style scoped> -.errPage-container { - padding: 30px; -} -</style> diff --git a/WebSite/src/views/error-page/401.vue b/WebSite/src/views/error-page/401.vue index dd7534f2..62dbf1b5 100644 --- a/WebSite/src/views/error-page/401.vue +++ b/WebSite/src/views/error-page/401.vue @@ -1,30 +1,22 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-20 16:39:21 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-20 20:52:00 +--> <template> <div class="errPage-container"> - <el-button icon="el-icon-arrow-left" class="pan-back-btn" @click="back"> - 返回 - </el-button> <el-row> <el-col :span="12"> <h1 class="text-jumbo text-ginormous"> Oops! </h1> - gifæ¥æº<a href="https://zh.airbnb.com/" target="_blank">airbnb</a> é¡µé¢ - <h2>ä½ æ²¡æœ‰æƒé™åŽ»è¯¥é¡µé¢</h2> - <h6>å¦‚æœ‰ä¸æ»¡è¯·è”ç³»ä½ é¢†å¯¼</h6> - <ul class="list-unstyled"> - <li>æˆ–è€…ä½ å¯ä»¥åŽ»:</li> - <li class="link-type"> - <router-link to="/dashboard"> - 回首页 - </router-link> - </li> - <li class="link-type"> - <a href="https://www.taobao.com/">éšä¾¿çœ‹çœ‹</a> - </li> - <li> - <a href="#" @click.prevent="dialogVisible = true">点我看图</a> - </li> - </ul> + <h2>You have no permission !</h2> + <h5>Perhaps you should contact the administrator</h5> + <el-button size="large" class="pan-back-btn" @click="goBack"> + Go Back + </el-button> </el-col> <el-col :span="12"> <img @@ -35,32 +27,25 @@ /> </el-col> </el-row> - <el-dialog :visible.sync="dialogVisible" title="éšä¾¿çœ‹"> - <img :src="ewizardClap" class="pan-img" /> - </el-dialog> </div> </template> <script> -import errGif from "@/assets/401_images/401.gif"; +import errGif from '@/assets/401_images/401.gif'; export default { - name: "Page401", + name: 'Page401', data() { return { - errGif: errGif + "?" + +new Date(), + errGif: errGif + '?' + +new Date(), ewizardClap: - "https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646", + 'https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646', dialogVisible: false }; }, methods: { - back() { - if (this.$route.query.noGoBack) { - this.$router.push({ path: "/dashboard" }); - } else { - this.$router.go(-1); - } + goBack() { + this.$router.go(-1); } } }; @@ -70,7 +55,8 @@ export default { .errPage-container { width: 800px; max-width: 100%; - margin: 100px auto; + margin: 0 auto; + padding-top: 160px; .pan-back-btn { background: #008489; color: #fff; diff --git a/WebSite/src/views/error-page/404.vue b/WebSite/src/views/error-page/404.vue index cb5c47ce..291b4cd8 100644 --- a/WebSite/src/views/error-page/404.vue +++ b/WebSite/src/views/error-page/404.vue @@ -39,7 +39,7 @@ Please check that the URL you entered is correct, or click the button below to return to the homepage. </div> - <a href="" class="bullshit__return-home">Back to home</a> + <a @click="goBack" class="bullshit__return-home">Go Back</a> </div> </div> </div> @@ -47,10 +47,15 @@ <script> export default { - name: "Page404", + name: 'Page404', computed: { message() { - return "The webmaster said that you can not enter this page..."; + return 'The webmaster said that you can not enter this page...'; + } + }, + methods: { + goBack() { + this.$router.go(-1); } } }; diff --git a/WebSite/src/views/example/button/index.vue b/WebSite/src/views/example/button/index.vue deleted file mode 100644 index 1fb98bd7..00000000 --- a/WebSite/src/views/example/button/index.vue +++ /dev/null @@ -1,160 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 14:28:05 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">基本按钮类型</span> - </el-row> - <el-row class="row"> - <el-button>默认按钮</el-button> - <el-button type="primary" plain>ä¸»è¦æŒ‰é’®</el-button> - <el-button type="success" plain>æˆåŠŸæŒ‰é’®</el-button> - <el-button type="info" plain>ä¿¡æ¯æŒ‰é’®</el-button> - <el-button type="warning" plain>è¦å‘ŠæŒ‰é’®</el-button> - <el-button type="danger" plain>å±é™©æŒ‰é’®</el-button> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">å¸¸è§æŒ‰é’®ç¤ºä¾‹</span> - </el-row> - <el-row class="row"> - <el-table :data="tableData" style="width: 100%" stripe> - <el-table-column prop="type" label="类型"> </el-table-column> - <el-table-column prop="text" label="åç§°"> </el-table-column> - <el-table-column prop="icon" label="å›¾æ ‡"> </el-table-column> - <el-table-column label="展示"> - <template slot-scope="scope"> - <el-button - :type="scope.row.type" - :icon="scope.row.icon" - :plain="scope.row.plain" - >{{ scope.row.text }}</el-button - > - </template> - </el-table-column> - </el-table> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼Œæ‰€æœ‰æŒ‰é’®é»˜è®¤ size 为 - miniï¼ˆå·²å…¨å±€è®¾ç½®ï¼Œæ— éœ€å•ç‹¬æ·»åŠ ï¼‰ - </li> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼Œé™¤ â€œå–æ¶ˆâ€ å’Œ â€œç¡®å®šâ€ å¤–çš„æ‰€æœ‰æŒ‰é’®é»˜è®¤æ·»åŠ plain - å±žæ€§ï¼ˆæœ´ç´ æ ·å¼ï¼‰ - </li> - <li> - åœ¨å¸¸è§æŒ‰é’®ä¸å·²åˆ—出的按钮请éµå¾ªå¯¹åº”æ ·å¼ï¼Œæœªåˆ—出的按钮团队æˆå‘˜é—´åº”è¾¾æˆå…±è¯†ï¼Œä¿æŒæ ·å¼ç»Ÿä¸€ - </li> - <li>查询æ¡ä»¶åŒºåŸŸçš„æŒ‰é’®é¡»å•独å¦èµ·ä¸€è¡Œ</li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Button", - components: { TextField }, - data() { - return { - tableData: [ - { - type: "default", - text: "查询", - icon: "el-icon-search", - plain: true - }, - { - type: "default", - text: "查看", - icon: "el-icon-document-copy", - plain: true - }, - { - type: "primary", - text: "新增", - icon: "el-icon-plus", - plain: true - }, - { - type: "primary", - text: "修改", - icon: "el-icon-edit", - plain: true - }, - { - type: "danger", - text: "åˆ é™¤", - icon: "el-icon-delete", - plain: true - }, - { - type: "danger", - text: "é‡ç½®", - icon: "el-icon-refresh-left", - plain: true - }, - { - type: "info", - text: "ä¸Šä¼ ", - icon: "el-icon-upload2", - plain: true - }, - { - type: "info", - text: "下载", - icon: "el-icon-download", - plain: true - }, - { - type: "default", - text: "å–æ¶ˆ", - icon: "", - plain: false - }, - { - type: "primary", - text: "确定", - icon: "", - plain: false - } - ] - }; - } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/dialog/components/Detail.vue b/WebSite/src/views/example/dialog/components/Detail.vue deleted file mode 100644 index 779d188b..00000000 --- a/WebSite/src/views/example/dialog/components/Detail.vue +++ /dev/null @@ -1,39 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-20 12:48:20 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 12:59:30 ---> -<template> - <div> - <span>这是详情页é¢1</span> - <div class="footer-container"> - <el-button type="primary" @click="handleConfirm">ç¡® 定</el-button> - </div> - </div> -</template> - -<script> -export default { - name: "Detail", - props: { - visible: { - type: Boolean - } - }, - methods: { - handleConfirm() { - this.$emit("update:visible", false); - } - } -}; -</script> - -<style scoped> -.footer-container { - width: 100%; - margin-top: 20px; - text-align: right; -} -</style> diff --git a/WebSite/src/views/example/dialog/index.vue b/WebSite/src/views/example/dialog/index.vue deleted file mode 100644 index 9fe4ec02..00000000 --- a/WebSite/src/views/example/dialog/index.vue +++ /dev/null @@ -1,116 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-16 14:45:34 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 14:29:36 ---> -<template> - <div class="app-container"> - <jump-dialog :visible.sync="dialogVisible2" :activeName="activeName"> - <el-card shadow="hover" slot="layout"> - <el-row class="row"> - <span class="text-title">示例</span> - </el-row> - <el-row> - <el-button @click="dialogVisible = true">ç‚¹å‡»å¼¹å‡ºå¯¹è¯æ¡†</el-button> - <el-button @click="handleOpenJump1">ç‚¹å‡»è·³è½¬å¯¹è¯æ¡†1</el-button> - <el-button @click="handleOpenJump2">ç‚¹å‡»è·³è½¬å¯¹è¯æ¡†2</el-button> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 对于 pc 端页é¢ï¼Œé»˜è®¤ä½¿ç”¨ el-dialog - 组件,在å³ä¸‹è§’æ”¾ç½®å–æ¶ˆå’Œç¡®å®šæŒ‰é’®ï¼ˆæŒ‰é’®æ–‡å—æè¿°æ ¹æ®å®žé™…业务场景å¯è¿›è¡Œä¿®æ”¹ï¼ŒæŒ‰é’®å¿…须放在å称为 - footer çš„æ’æ§½ä¸ï¼‰ - </li> - <li> - åº”æ ¹æ®å†…容的实际情况设置 el-dialog 的百分比宽度 - </li> - <li> - 对于手机端页é¢ï¼Œé»˜è®¤ä½¿ç”¨ el-drawer - 组件,方å‘自下往上开å¯ï¼Œåœ¨åº•部防æ¢å–消和确定按钮 - </li> - <li> - å¯¹è¯æ¡†ä¸å†…容较多时,å¯ä½¿ç”¨è‡ªå®šä¹‰ç»„ä»¶ jump-dialog - 进行整页跳转,以下是该组件的使用说明:<br /> - (1) 将原页é¢å†…容放置在å为 layout çš„æ’æ§½ä¸<br /> - (2) æ¯æœ‰ä¸€ä¸ªæ–°çš„è·³è½¬å¯¹è¯æ¡†ï¼Œéœ€åœ¨ jump-dialog 䏿·»åŠ ä¸€ä¸ª - jump-dialog-item å组件<br /> - (3) å组件接收 name å’Œ label ä½œä¸ºå‚æ•°ï¼ˆå¿…é¡»ï¼‰ï¼Œå…¶ä¸ label - ä¼šä½œä¸ºè·³è½¬å¯¹è¯æ¡†çš„æ ‡é¢˜å±•示<br /> - (4) - ä¸€èˆ¬æƒ…å†µä¸‹ï¼Œåº”åœ¨è·³è½¬å¯¹è¯æ¡†çš„å³ä¸‹è§’æ”¾ç½®ç¡®å®šæŒ‰é’®ï¼ˆè·³è½¬å¯¹è¯æ¡†è‡ªå¸¦è¿”回故ä¸éœ€è¦å–消按钮) - </li> - </ul> - </text-field> - </el-row> - </el-card> - <jump-dialog-item name="first" label="详情页é¢1"> - <detail :visible.sync="dialogVisible2"></detail> - </jump-dialog-item> - <jump-dialog-item name="second" label="详情页é¢2"> - <span>这是详情页é¢2</span> - </jump-dialog-item> - </jump-dialog> - <el-dialog title="编辑" :visible.sync="dialogVisible" width="30%"> - <span>这是一段信æ¯</span> - <span slot="footer" class="dialog-footer"> - <el-button @click="dialogVisible = false">å– æ¶ˆ</el-button> - <el-button type="primary" @click="dialogVisible = false" - >ç¡® 定</el-button - > - </span> - </el-dialog> - </div> -</template> -<script> -import Detail from "./components/Detail"; -import TextField from "@/components/TextField"; -export default { - name: "Dialog", - components: { Detail, TextField }, - data() { - return { - dialogVisible: false, - dialogVisible2: false, - activeName: null - }; - }, - methods: { - handleOpenJump1() { - this.dialogVisible2 = true; - this.activeName = "first"; - }, - handleOpenJump2() { - this.dialogVisible2 = true; - this.activeName = "second"; - } - } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/form.vue b/WebSite/src/views/example/form.vue deleted file mode 100644 index 8ab770c8..00000000 --- a/WebSite/src/views/example/form.vue +++ /dev/null @@ -1,205 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 14:23:16 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">示例</span> - </el-row> - <el-row class="row"> - <el-col :sm="24" :md="12" :lg="6"> - <el-form - :model="ruleForm" - :rules="rules" - ref="ruleForm" - label-width="100px" - class="demo-ruleForm" - label-position="top" - > - <el-form-item label="活动åç§°" prop="name"> - <el-input v-model="ruleForm.name"></el-input> - </el-form-item> - <el-form-item label="活动区域" prop="region"> - <el-select v-model="ruleForm.region" placeholder="请选择活动区域"> - <el-option label="区域一" value="shanghai"></el-option> - <el-option label="区域二" value="beijing"></el-option> - </el-select> - </el-form-item> - <el-form-item label="活动时间" required> - <el-col :span="11"> - <el-form-item prop="date1"> - <el-date-picker - type="date" - placeholder="选择日期" - v-model="ruleForm.date1" - style="width: 100%;" - ></el-date-picker> - </el-form-item> - </el-col> - <el-col class="line" :span="2">-</el-col> - <el-col :span="11"> - <el-form-item prop="date2"> - <el-time-picker - placeholder="选择时间" - v-model="ruleForm.date2" - style="width: 100%;" - ></el-time-picker> - </el-form-item> - </el-col> - </el-form-item> - <el-form-item label="峿—¶é…é€" prop="delivery"> - <el-switch v-model="ruleForm.delivery"></el-switch> - </el-form-item> - <el-form-item label="活动性质" prop="type"> - <el-checkbox-group v-model="ruleForm.type"> - <el-checkbox - label="美食/é¤åŽ…çº¿ä¸Šæ´»åŠ¨" - name="type" - ></el-checkbox> - <el-checkbox label="地推活动" name="type"></el-checkbox> - <el-checkbox label="线下主题活动" name="type"></el-checkbox> - <el-checkbox label="å•纯å“牌æ›å…‰" name="type"></el-checkbox> - </el-checkbox-group> - </el-form-item> - <el-form-item label="特殊资æº" prop="resource"> - <el-radio-group v-model="ruleForm.resource"> - <el-radio label="线上å“牌商赞助"></el-radio> - <el-radio label="线下场地å…è´¹"></el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="活动形å¼" prop="desc"> - <el-input type="textarea" v-model="ruleForm.desc"></el-input> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="submitForm('ruleForm')" - >ç«‹å³åˆ›å»º</el-button - > - <el-button @click="resetForm('ruleForm')">é‡ç½®</el-button> - </el-form-item> - </el-form> - </el-col> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - åº”æ ¹æ®å…·ä½“ç›®æ ‡å’Œåˆ¶çº¦å› ç´ ï¼Œé€‰æ‹©æœ€ä½³çš„æ ‡ç¾å¯¹é½æ–¹å¼ï¼ˆä¾‹å¦‚ï¼šå½“æ ‡ç¾æ–‡å—é•¿åº¦è¾ƒçŸæ—¶å¯ä½¿ç”¨å·¦å¯¹é½æˆ–å³å¯¹é½ï¼Œå½“长度较长时å¯ä½¿ç”¨é¡¶éƒ¨å¯¹é½ï¼‰ï¼Œä½†æ•´ä¸ªé¡¹ç›®çš„坹齿–¹å¼åº”å°½å¯èƒ½ä¿æŒä¸€è‡´ - </li> - <li> - è¯·æ ¹æ®å®žé™…业务需求在æäº¤å‰å¯¹è¡¨å•项目进行必è¦çš„æ ¡éªŒå’Œæç¤º - </li> - <li> - 如表å•å¤„äºŽå¯¹è¯æ¡†ä¸ï¼Œåˆ™è¡¨å•çš„æäº¤åº”äº¤ç”±å¯¹è¯æ¡†çš„ç¡®å®šæŒ‰é’®è§¦å‘ - </li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Form", - components: { TextField }, - data() { - return { - ruleForm: { - name: "", - region: "", - date1: "", - date2: "", - delivery: false, - type: [], - resource: "", - desc: "" - }, - rules: { - name: [ - { required: true, message: "请输入活动åç§°", trigger: "blur" }, - { min: 3, max: 5, message: "长度在 3 到 5 个å—符", trigger: "blur" } - ], - region: [ - { required: true, message: "请选择活动区域", trigger: "change" } - ], - date1: [ - { - type: "date", - required: true, - message: "请选择日期", - trigger: "change" - } - ], - date2: [ - { - type: "date", - required: true, - message: "请选择时间", - trigger: "change" - } - ], - type: [ - { - type: "array", - required: true, - message: "请至少选择一个活动性质", - trigger: "change" - } - ], - resource: [ - { required: true, message: "请选择活动资æº", trigger: "change" } - ], - desc: [{ required: true, message: "请填写活动形å¼", trigger: "blur" }] - } - }; - }, - methods: { - submitForm(formName) { - this.$refs[formName].validate(valid => { - if (valid) { - alert("submit!"); - } else { - console.log("error submit!!"); - return false; - } - }); - }, - resetForm(formName) { - this.$refs[formName].resetFields(); - } - } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -.line { - text-align: center; -} -</style> diff --git a/WebSite/src/views/example/icon.vue b/WebSite/src/views/example/icon.vue deleted file mode 100644 index eb9b2ec2..00000000 --- a/WebSite/src/views/example/icon.vue +++ /dev/null @@ -1,61 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:47:36 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">å›¾æ ‡</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 推è使用默认和 element 两ç§å›¾æ ‡æ ·å¼ - </li> - <li> - 如有需è¦å¯å¼•å…¥å¤–éƒ¨å›¾æ ‡åº“ï¼Œä½†éœ€æ³¨æ„ä¿æŒé£Žæ ¼ä¸€è‡´ - </li> - </ul> - </text-field> - </el-row> - <el-row style="margin-top:20px"> - <icons></icons> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -import Icons from "@/views/icons"; -export default { - name: "Icon", - components: { TextField, Icons } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/index.vue b/WebSite/src/views/example/index.vue deleted file mode 100644 index 2168f80b..00000000 --- a/WebSite/src/views/example/index.vue +++ /dev/null @@ -1,350 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 15:17:46 ---> -<template> - <div class="app-container" style="position:relative"> - <div class="tag-outer"> - <div style="color:#ffffff"><b>ver</b></div> - <div style="color:#ffffff"> - <b>1.0</b> - </div> - </div> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">概述</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - æ¤è§„范为å‰ç«¯ UI 规范,基于 element-ui 制定,其目的是ä¿è¯é¡¹ç›® UI - 效果的一致性 ,解决以往开å‘ä¸é¡¹ç›®ç»„ä¸åŒæˆå‘˜é—´æ ·å¼ä¸ç»Ÿä¸€çš„问题 - </li> - <li> - 默认情况下,å‰ç«¯å¼€å‘人员在开å‘过程ä¸éœ€éµå¾ªè§„范所述内容进行页é¢å¼€å‘ - </li> - <li> - 如当å‰é¡¹ç›®æœ‰ç‰¹æ®Šçš„æ ·å¼éœ€æ±‚ - ,则å¯ç»ç”±é¡¹ç›®è´Ÿè´£äººå’Œå‰ç«¯å¼€å‘人员共åŒè®¨è®ºåˆ¶å®š UI - æ ·å¼ä»¥æ›¿ä»£é»˜è®¤æ ·å¼è§„范 - </li> - <li> - æ¤è§„范å¯èƒ½ä¼šéšæ—¶é—´è¿›è¡Œæ›´è¿ï¼Œå¯åŠ¨æ–°é¡¹ç›®æ—¶è¯·å‚ç…§å½“å‰æœ€æ–°è§„范 - </li> - <li> - element-ui 组件的使用,请å‚阅官网 - <a - href="https://element.eleme.cn/#/zh-CN/component/quickstart" - target="_blank" - style="color:#409EFF" - >https://element.eleme.cn/#/zh-CN/component/quickstart</a - > - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">å—体</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 为了在ä¸åŒçŽ¯å¢ƒä¸‹éƒ½èƒ½è¾¾åˆ°æœ€ä½³æ•ˆæžœï¼Œæˆ‘ä»¬é»˜è®¤ä½¿ç”¨ä»¥ä¸‹å—体:<br /> - <b>Helvetica Neue</b>, <b>Helvetica</b>, <b>PingFang SC</b>, - <b>Hiragino Sans GB</b>, <b>Microsoft YaHei</b>, <b>Arial</b>, - <b>sans-serif</b> - </li> - <li> - 以上å—体已在全局 css ä¸è®¾ç½®ï¼Œå¦‚æ— ç‰¹æ®Šæƒ…å†µç¦æ¢ä½¿ç”¨å…¶ä»–å—体 - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">å—å·</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 默认情况下,我们对å—å·è¿›è¡Œä»¥ä¸‹è§„定: - <br /><span style="font-size:12px; line-height:2" - ><b>12px</b> - 用于辅助性æç¤ºå†…容</span - ><br /><span style="font-size:14px; line-height:2" - ><b>14px</b> - ç”¨äºŽæ£æ–‡å†…容</span - ><br /><span style="font-size:16px; line-height:2" - ><b>16px</b> - ç”¨äºŽæ ‡é¢˜</span - > - </li> - <li> - å—å·æ ¹æ®å®žé™…情况å¯ä»¥é…Œæƒ…考虑,但åªå…è®¸ä½¿ç”¨å¶æ•°å—å·ï¼Œä¸”å—å·è§„æ ¼å°½é‡æŽ§åˆ¶åœ¨3ç§ä»¥å†… - </li> - <li> - å—体的行间è·ä¸€èˆ¬ä¸ºå—å·çš„1.5 - 2å€ï¼ŒæŽ¨è使用2å€ - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">颜色</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 默认情况下,我们对å—体和边框的颜色进行以下规定:<br /> - <b>#303133</b> - ç”¨äºŽä¸»è¦æ–‡å—ï¼ˆæ ‡é¢˜ï¼‰ <br /><b>#606266</b> - - 用于常规文å—ï¼ˆæ£æ–‡ï¼‰ <br /><b>#909399</b> - - ç”¨äºŽæ¬¡è¦æ–‡å—(辅助)<br /> - <b>#e4ebed</b> - 一级边框(外层) <br /><b>#ebeef5</b> - - 二级边框(内层) - </li> - <li>ä»»ä½•æ—¶å€™ç¦æ¢ä½¿ç”¨çº¯é»‘色 <b>#000000</b></li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">交互组件的使用</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 默认情况下,我们对常用交互组件的使用场åˆè¿›è¡Œä»¥ä¸‹è§„定:<br /> - <b>el-input</b> - 默认输入框,适åˆéœ€è¦æ–‡å—输入的查询æ¡ä»¶æˆ–内容<br /> - <el-input - v-model="input" - placeholder="请输入内容" - style="width:200px; margin:10px 0" - ></el-input> - <br /><b>el-select</b> - 用于需è¦è¿›è¡Œé€‰æ‹©çš„æŸ¥è¯¢æ¡ä»¶æˆ–内容 <br /> - <el-select - v-model="value" - placeholder="请选择" - style="width:200px; margin:10px 0" - > - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - <br /> - <b>el-date-picker</b> - - 用于日期类型的查询æ¡ä»¶æˆ–内容<br /> - <el-date-picker - v-model="value1" - type="date" - placeholder="选择日期" - style="width:200px; margin:10px 0" - > - </el-date-picker - ><br /> - <b>el-time-select</b> - 用于时间类型的查询æ¡ä»¶æˆ–内容 <br /> - <el-time-select - v-model="value" - :picker-options="{ - start: '08:30', - step: '00:15', - end: '18:30' - }" - placeholder="选择时间" - style="width:200px; margin:10px 0" - > - </el-time-select> - <br /> - <b>el-checkbox</b> - - - å•独使用表示两ç§çжæ€ä¹‹é—´çš„切æ¢ï¼Œå¤šä¸ªä½¿ç”¨è¡¨ç¤ºä¸€ç»„备选项ä¸è¿›è¡Œå¤šé€‰<br /> - <el-row style="margin:10px 0"> - <el-checkbox-group v-model="checkList"> - <el-checkbox label="å¤é€‰æ¡† A"></el-checkbox> - <el-checkbox label="å¤é€‰æ¡† B"></el-checkbox> - <el-checkbox label="å¤é€‰æ¡† C"></el-checkbox> - <el-checkbox label="ç¦ç”¨" disabled></el-checkbox> - <el-checkbox label="选ä¸ä¸”ç¦ç”¨" disabled></el-checkbox> - </el-checkbox-group> - </el-row> - <b>el-radio</b> - - ä¸å…许å•独使用,多个使用表示一组备选项ä¸è¿›è¡Œå•选<br /> - <el-row style="margin:10px 0"> - <el-radio-group v-model="radio"> - <el-radio :label="3">å•选框 A</el-radio> - <el-radio :label="6">å•选框 B</el-radio> - <el-radio :label="9">å•选框 C</el-radio> - </el-radio-group> - </el-row> - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">æ¶ˆæ¯æç¤º</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 我们使用 message - ç»„ä»¶è¿›è¡Œæ¶ˆæ¯æç¤ºï¼Œä¸‹é¢æ˜¯4ç§æç¤ºç±»åž‹çš„ä½¿ç”¨åœºåˆï¼š<br /> - <b>message</b> - 默认,通常用于一般æç¤ºä¿¡æ¯ - <el-button type="text" @click="openInfo">点击</el-button> <br /><b - >message<span style="color:#67C23A">.success</span></b - > - - æˆåŠŸï¼Œç”¨äºŽè¡¨ç¤ºæ“ä½œæˆ–è¡Œä¸ºè¾¾æˆ - <el-button type="text" @click="openSuccess">点击</el-button - ><br /><b>message<span style="color:#E6A23C">.warning</span></b> - - è¦å‘Šï¼Œç”¨äºŽè¡¨ç¤ºæ“作或行为达æˆä½†å˜åœ¨æ½œåœ¨é£Žé™©æˆ–å¯èƒ½æœªå®Œå…¨è¾¾åˆ°é¢„期 - <el-button type="text" @click="openWarning">点击</el-button><br /> - <b>message<span style="color:#F56C6C">.error</span></b> - - 错误,用于表示æ“作或行为ä¸å…è®¸æˆ–æœªè¾¾æˆ - <el-button type="text" @click="openError">点击</el-button> - </li> - <li> - 所有弹出框默认显示时间5ç§’ï¼Œä¸”éœ€å¸¦æœ‰å…³é—æŒ‰é’® - </li> - <li> - 对于 http 请求的返回结果,axios - 实例ä¸å·²æ·»åŠ å…¨å±€é”™è¯¯æç¤ºï¼Œä¸€èˆ¬æƒ…å†µä¸‹æ— éœ€é¢å¤–处ç†ï¼ˆæˆåŠŸæç¤ºä»éœ€æ‰‹åŠ¨æ·»åŠ ï¼‰ - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">其他注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 任何ä¸å¯é€†æ“作在执行å‰å¿…须弹出确认框 - </li> - <li> - 事件触å‘调用 http - 请求到返回结果这段时间内,应防æ¢äº‹ä»¶å†æ¬¡è¢«è§¦å‘(手段包括但ä¸é™äºŽæ·»åŠ - loadingã€è®¾ç½® disabled ç‰ï¼‰ - </li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Exmple", - components: { TextField }, - data() { - return { - input: "", - options: [ - { - value: "选项1", - label: "黄金糕" - }, - { - value: "选项2", - label: "åŒçš®å¥¶" - }, - { - value: "选项3", - label: "蚵仔煎" - }, - { - value: "选项4", - label: "龙须é¢" - }, - { - value: "选项5", - label: "北京烤é¸" - } - ], - value1: "", - value: "", - checkList: ["选ä¸ä¸”ç¦ç”¨", "å¤é€‰æ¡† A"], - radio: 3 - }; - }, - methods: { - openInfo() { - this.$message({ - showClose: true, - message: "è¿™æ˜¯ä¸€æ¡æ¶ˆæ¯æç¤º" - }); - }, - - openSuccess() { - this.$message({ - showClose: true, - message: "æå–œä½ ï¼Œè¿™æ˜¯ä¸€æ¡æˆåŠŸæ¶ˆæ¯", - type: "success" - }); - }, - - openWarning() { - this.$message({ - showClose: true, - message: "è¦å‘Šå“¦ï¼Œè¿™æ˜¯ä¸€æ¡è¦å‘Šæ¶ˆæ¯", - type: "warning" - }); - }, - - openError() { - this.$message({ - showClose: true, - message: "错了哦,这是一æ¡é”™è¯¯æ¶ˆæ¯", - type: "error" - }); - } - } -}; -</script> - -<style scoped> -.tag-outer { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - position: absolute; - top: 20px; - right: 40px; - width: 40px; - height: 40px; - font-size: 12px; - background-color: #409eff; - border-right: 5px solid rgb(121, 187, 255); - border-left: 5px solid rgb(121, 187, 255); - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); -} -</style> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/layout.vue b/WebSite/src/views/example/layout.vue deleted file mode 100644 index fe49f810..00000000 --- a/WebSite/src/views/example/layout.vue +++ /dev/null @@ -1,187 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-17 10:01:43 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">布局指导原则</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 任何时候,页é¢ç»„件最外层应使用 div 作为最外层容器,且 class 为 - app-containerï¼ˆè¯¥æ ·å¼å·²åœ¨å…¨å±€ css ä¸å®šä¹‰ï¼‰ - </li> - <li> - 关于总体布局(例如上下左å³åŒºå—ï¼Œå…ƒç´ çš„å†…å®¹å’Œä½ç½®ï¼‰ï¼Œå¼€å‘人员应å‚ç…§ - UI 设计进行 - </li> - <li> - 以展示的内容性质划分区域(例如查询æ¡ä»¶ã€æŸ¥è¯¢ç»“果),æ¯ä¸ªåŒºåŸŸä½¿ç”¨ - el-card 组件作为外部容器 - </li> - <li> - æ¯ä¸ª el-card ä¸çš„内容,应使用 el-row åŠ el-col çš„æ …æ ¼åŒ–å¸ƒå±€ - </li> - <li> - 对于 el-row ä¸å¯èƒ½å˜åœ¨å¤šåˆ—的情况(例如查询æ¡ä»¶ï¼‰ï¼Œå¿…须使用 - el-col,默认å“应尺寸设置为 :sm="12" :md="8" - :lg="6",对于确定ä¸å˜åœ¨å¤šåˆ—的情况(例如查询结果),å¯ä»¥å°† el-col - 设置为 :span=24,也å¯ä»¥ä¸ä½¿ç”¨ el-col - </li> - <li> - æ¯ä¸ªå—çº§å…ƒç´ çš„é»˜è®¤é—´è·ä¸º20px(包括但ä¸é™äºŽï¼šä¸åŒ el-card - 之间ã€el-card - å’Œå†…éƒ¨å…ƒç´ ä¹‹é—´ã€å†…éƒ¨å…ƒç´ å’Œå†…éƒ¨å…ƒç´ ä¹‹é—´ï¼ŒæŒ‰é’®ä¹‹é—´ä¾‹å¤–ï¼Œä½¿ç”¨ - el-button 默认间隔å³å¯ï¼‰ - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">示例</span> - </el-row> - <el-row> - <div class="l-app"> - <div class="l-card"> - <el-row :gutter="20"> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - </el-row> - <el-row :gutter="20"> - <el-col :span="24"> - <div - class="grid-content bg-blue l-i-flex" - style="width:100px; margin-right:5px" - > - <b style="color:#ffffff">el-button</b> - </div> - <div - class="grid-content bg-red l-i-flex" - style="width:100px; margin-right:5px" - > - <b style="color:#ffffff">el-button</b> - </div> - <div - class="grid-content bg-green l-i-flex" - style="width:100px; margin-right:5px" - > - <b style="color:#ffffff">el-button</b> - </div> - </el-col> - </el-row> - </div> - <div class="l-card" style="margin-top:20px"> - <el-row> - <div class="grid-content bg-purple l-flex" style="height:300px"> - <b style="color:#666666">el-table</b> - </div> - </el-row> - </div> - </div> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Layout", - components: { TextField } -}; -</script> - -<style scoped> -.l-app { - width: 100%; - padding: 20px; - background-color: #eeeeee; -} - -.l-card { - width: 100%; - padding: 20px; - background-color: #ffffff; - border-radius: 4px; -} - -.grid-content { - border-radius: 4px; - min-height: 36px; -} - -.bg-purple-dark { - background: #99a9bf; -} -.bg-purple { - background: #d3dce6; -} -.bg-purple-light { - background: #e5e9f2; -} -.bg-red { - background: #f56c6c; -} -.bg-green { - background: #67c23a; -} -.bg-blue { - background: #409eff; -} -.l-flex { - display: flex; - justify-content: center; - align-items: center; -} -.l-i-flex { - display: inline-flex; - justify-content: center; - align-items: center; -} -</style> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/table.vue b/WebSite/src/views/example/table.vue deleted file mode 100644 index 29a458e2..00000000 --- a/WebSite/src/views/example/table.vue +++ /dev/null @@ -1,169 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:49:43 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">示例</span> - </el-row> - <el-row class="row"> - <el-table - :data="tableData" - style="width: 100%" - stripe - :cell-class-name="getCellClass" - > - <el-table-column type="selection" align="center" width="55"> - </el-table-column> - <el-table-column prop="date" label="日期"> </el-table-column> - <el-table-column prop="name" label="å§“å"> </el-table-column> - <el-table-column prop="amount" label="金é¢" width="160" align="right"> - <template slot-scope="scope"> - {{ scope.row.amount | moneyFormatter(2, ",") }} - </template> - </el-table-column> - <el-table-column prop="address" label="地å€"> </el-table-column> - <el-table-column label="状æ€" width="160"> - <template slot-scope="scope"> - <el-tag type="success">{{ scope.row.status }}</el-tag> - <el-tag type="info">åœç”¨</el-tag> - </template> - </el-table-column> - <el-table-column label="æ“作" width="200"> - <template slot-scope="scope"> - <el-button - @click="handleClick(scope.row)" - type="default" - icon="el-icon-document-copy" - plain - >查看</el-button - > - <el-button type="primary" icon="el-icon-edit" plain - >编辑</el-button - > - </template> - </el-table-column> - </el-table> - <el-pagination - background - layout="total, sizes, prev, pager, next" - :total="tableData.length" - :page-sizes="[20, 50, 100]" - style="margin-top:20px" - > - </el-pagination> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼ˆä¾‹å¦‚ï¼šå¤šçº§è¡¨å¤´ï¼‰ï¼Œè¡¨æ ¼é»˜è®¤ä½¿ç”¨ä¸å¸¦ç«–ç›´æ–¹å‘è¾¹æ¡†ä¸”å¸¦æœ‰æ–‘é©¬çº¹çš„æ ·å¼ - </li> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼Œè¡¨æ ¼çš„åˆ—é»˜è®¤å·¦å¯¹é½ï¼Œå¦‚该列表示金é¢åˆ™å³å¯¹é½ - </li> - <li> - 用于选择行的 checkbox 列应ä½äºŽæœ€å·¦ä¾§ï¼Œé»˜è®¤å®½åº¦55,居ä¸å¯¹é½ - </li> - <li> - 用于放置å„ç§æ“作按钮的列应ä½äºŽæœ€å³ä¾§ï¼Œå®½åº¦æ ¹æ®æŒ‰é’®æ•°é‡å†³å®šï¼Œå½“ - table 的列较多时应考虑固定该列 - </li> - <li> - 表示状æ€çš„列需使用 el-tag - 组件,通常,我们约定其æ„义为真或带有æ£é¢å«ä¹‰çš„状æ€é¢œè‰²ä¸ºç»¿è‰²æˆ–è“色,其æ„ä¹‰ä¸ºå‡æˆ–带有负é¢å«ä¹‰çš„状æ€é¢œè‰²ä¸ºç°è‰²æˆ–红色 - </li> - <li> - è¡¨æ ¼é»˜è®¤æ¯é¡µæ˜¾ç¤º 20 æ¡æ•°æ®ï¼Œåœ¨åˆ†é¡µç»„件䏿供 20 / 50 / 100 å…± 3 - æ¡£å¯è°ƒæ•´é€‰é¡¹ï¼ŒåŒæ—¶æ˜¾ç¤ºæ€»æ¡æ•° - </li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Button", - components: { TextField }, - data() { - return { - tableData: [ - { - date: "2016-05-02", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1518 弄", - amount: 234791253.11, - status: "å¯ç”¨" - }, - { - date: "2016-05-04", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1517 弄", - amount: 3241380821.0, - status: "å¯ç”¨" - }, - { - date: "2016-05-01", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1519 弄", - amount: 5436434234.0, - status: "å¯ç”¨" - }, - { - date: "2016-05-03", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1516 弄", - amount: 73472122.0, - status: "å¯ç”¨" - } - ] - }; - }, - methods: { - getCellClass({ row, column, rowIndex, columnIndex }) { - if (columnIndex === 3) { - return "amount-col"; - } - } - } -}; -</script> - -<style> -.amount-col > .cell { - text-align: right; -} -</style> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/excel/components/AutoWidthOption.vue b/WebSite/src/views/excel/components/AutoWidthOption.vue deleted file mode 100644 index 08cc5a84..00000000 --- a/WebSite/src/views/excel/components/AutoWidthOption.vue +++ /dev/null @@ -1,34 +0,0 @@ -<template> - <div style="display:inline-block;"> - <label class="radio-label">Cell Auto-Width: </label> - <el-radio-group v-model="autoWidth"> - <el-radio :label="true" border> - True - </el-radio> - <el-radio :label="false" border> - False - </el-radio> - </el-radio-group> - </div> -</template> - -<script> -export default { - props: { - value: { - type: Boolean, - default: true - } - }, - computed: { - autoWidth: { - get() { - return this.value; - }, - set(val) { - this.$emit("input", val); - } - } - } -}; -</script> diff --git a/WebSite/src/views/excel/components/BookTypeOption.vue b/WebSite/src/views/excel/components/BookTypeOption.vue deleted file mode 100644 index 465113f6..00000000 --- a/WebSite/src/views/excel/components/BookTypeOption.vue +++ /dev/null @@ -1,39 +0,0 @@ -<template> - <div style="display:inline-block;"> - <label class="radio-label">Book Type: </label> - <el-select v-model="bookType" style="width:120px;"> - <el-option - v-for="item in options" - :key="item" - :label="item" - :value="item" - /> - </el-select> - </div> -</template> - -<script> -export default { - props: { - value: { - type: String, - default: "xlsx" - } - }, - data() { - return { - options: ["xlsx", "csv", "txt"] - }; - }, - computed: { - bookType: { - get() { - return this.value; - }, - set(val) { - this.$emit("input", val); - } - } - } -}; -</script> diff --git a/WebSite/src/views/excel/components/FilenameOption.vue b/WebSite/src/views/excel/components/FilenameOption.vue deleted file mode 100644 index e29cb85a..00000000 --- a/WebSite/src/views/excel/components/FilenameOption.vue +++ /dev/null @@ -1,32 +0,0 @@ -<template> - <div style="display:inline-block;"> - <label class="radio-label" style="padding-left:0;">Filename: </label> - <el-input - v-model="filename" - placeholder="Please enter the file name (default excel-list)" - style="width:345px;" - prefix-icon="el-icon-document" - /> - </div> -</template> - -<script> -export default { - props: { - value: { - type: String, - default: "" - } - }, - computed: { - filename: { - get() { - return this.value; - }, - set(val) { - this.$emit("input", val); - } - } - } -}; -</script> diff --git a/WebSite/src/views/excel/export-excel.vue b/WebSite/src/views/excel/export-excel.vue deleted file mode 100644 index e613e6a8..00000000 --- a/WebSite/src/views/excel/export-excel.vue +++ /dev/null @@ -1,142 +0,0 @@ -<template> - <div class="app-container"> - <div> - <FilenameOption v-model="filename" /> - <AutoWidthOption v-model="autoWidth" /> - <BookTypeOption v-model="bookType" /> - <el-button - :loading="downloadLoading" - style="margin:0 0 20px 20px;" - type="primary" - icon="el-icon-document" - @click="handleDownload" - > - Export Excel - </el-button> - <a - href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" - target="_blank" - style="margin-left:15px;" - > - <el-tag type="info">Documentation</el-tag> - </a> - </div> - - <el-table - v-loading="listLoading" - :data="list" - element-loading-text="Loading..." - border - fit - highlight-current-row - > - <el-table-column align="center" label="Id" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="110" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - <el-table-column align="center" label="Date" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ - scope.row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") - }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; -import { parseTime } from "@/utils"; -// options components -import FilenameOption from "./components/FilenameOption"; -import AutoWidthOption from "./components/AutoWidthOption"; -import BookTypeOption from "./components/BookTypeOption"; - -export default { - name: "ExportExcel", - components: { FilenameOption, AutoWidthOption, BookTypeOption }, - data() { - return { - list: null, - listLoading: true, - downloadLoading: false, - filename: "", - autoWidth: true, - bookType: "xlsx" - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - this.listLoading = true; - fetchList().then(response => { - this.list = response.data.items; - this.listLoading = false; - }); - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const tHeader = ["Id", "Title", "Author", "Readings", "Date"]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.list; - const data = this.formatJson(filterVal, list); - excel.export_json_to_excel({ - header: tHeader, - data, - filename: this.filename, - autoWidth: this.autoWidth, - bookType: this.bookType - }); - this.downloadLoading = false; - }); - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => - filterVal.map(j => { - if (j === "timestamp") { - return parseTime(v[j]); - } else { - return v[j]; - } - }) - ); - } - } -}; -</script> - -<style> -.radio-label { - font-size: 14px; - color: #606266; - line-height: 40px; - padding: 0 12px 0 30px; -} -</style> diff --git a/WebSite/src/views/excel/merge-header.vue b/WebSite/src/views/excel/merge-header.vue deleted file mode 100644 index 2f584232..00000000 --- a/WebSite/src/views/excel/merge-header.vue +++ /dev/null @@ -1,116 +0,0 @@ -<template> - <div class="app-container"> - <el-button - :loading="downloadLoading" - style="margin-bottom:20px" - type="primary" - icon="el-icon-document" - @click="handleDownload" - >Export</el-button - > - - <el-table - ref="multipleTable" - v-loading="listLoading" - :data="list" - element-loading-text="Loading" - border - fit - highlight-current-row - > - <el-table-column align="center" label="Id" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Main Information" align="center"> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="110" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - </el-table-column> - <el-table-column align="center" label="Date" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ - scope.row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") - }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; -import { parseTime } from "@/utils"; - -export default { - name: "MergeHeader", - data() { - return { - list: null, - listLoading: true, - downloadLoading: false - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - this.listLoading = true; - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.listLoading = false; - }); - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const multiHeader = [["Id", "Main Information", "", "", "Date"]]; - const header = ["", "Title", "Author", "Readings", ""]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.list; - const data = this.formatJson(filterVal, list); - const merges = ["A1:A2", "B1:D1", "E1:E2"]; - excel.export_json_to_excel({ - multiHeader, - header, - merges, - data - }); - this.downloadLoading = false; - }); - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => - filterVal.map(j => { - if (j === "timestamp") { - return parseTime(v[j]); - } else { - return v[j]; - } - }) - ); - } - } -}; -</script> diff --git a/WebSite/src/views/excel/select-excel.vue b/WebSite/src/views/excel/select-excel.vue deleted file mode 100644 index 6012b7c6..00000000 --- a/WebSite/src/views/excel/select-excel.vue +++ /dev/null @@ -1,128 +0,0 @@ -<template> - <div class="app-container"> - <el-input - v-model="filename" - placeholder="Please enter the file name (default excel-list)" - style="width:350px;" - prefix-icon="el-icon-document" - /> - <el-button - :loading="downloadLoading" - style="margin-bottom:20px" - type="primary" - icon="el-icon-document" - @click="handleDownload" - > - Export Selected Items - </el-button> - <a - href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" - target="_blank" - style="margin-left:15px;" - > - <el-tag type="info">Documentation</el-tag> - </a> - <el-table - ref="multipleTable" - v-loading="listLoading" - :data="list" - element-loading-text="æ‹¼å‘½åŠ è½½ä¸" - border - fit - highlight-current-row - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" align="center" /> - <el-table-column align="center" label="Id" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="110" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - <el-table-column align="center" label="PDate" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ scope.row.display_time }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - name: "SelectExcel", - data() { - return { - list: null, - listLoading: true, - multipleSelection: [], - downloadLoading: false, - filename: "" - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - this.listLoading = true; - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.listLoading = false; - }); - }, - handleSelectionChange(val) { - this.multipleSelection = val; - }, - handleDownload() { - if (this.multipleSelection.length) { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const tHeader = ["Id", "Title", "Author", "Readings", "Date"]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.multipleSelection; - const data = this.formatJson(filterVal, list); - excel.export_json_to_excel({ - header: tHeader, - data, - filename: this.filename - }); - this.$refs.multipleTable.clearSelection(); - this.downloadLoading = false; - }); - } else { - this.$message({ - message: "Please select at least one item", - type: "warning" - }); - } - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => filterVal.map(j => v[j])); - } - } -}; -</script> diff --git a/WebSite/src/views/excel/upload-excel.vue b/WebSite/src/views/excel/upload-excel.vue deleted file mode 100644 index dcd94713..00000000 --- a/WebSite/src/views/excel/upload-excel.vue +++ /dev/null @@ -1,55 +0,0 @@ -<template> - <div class="app-container"> - <upload-excel-component - :on-success="handleSuccess" - :before-upload="beforeUpload" - /> - <el-table - :data="tableData" - border - highlight-current-row - style="width: 100%;margin-top:20px;" - > - <el-table-column - v-for="item of tableHeader" - :key="item" - :prop="item" - :label="item" - /> - </el-table> - </div> -</template> - -<script> -import UploadExcelComponent from "@/components/UploadExcel/index.vue"; - -export default { - name: "UploadExcel", - components: { UploadExcelComponent }, - data() { - return { - tableData: [], - tableHeader: [] - }; - }, - methods: { - beforeUpload(file) { - const isLt1M = file.size / 1024 / 1024 < 1; - - if (isLt1M) { - return true; - } - - this.$message({ - message: "Please do not upload files larger than 1m in size.", - type: "warning" - }); - return false; - }, - handleSuccess({ results, header }) { - this.tableData = results; - this.tableHeader = header; - } - } -}; -</script> diff --git a/WebSite/src/views/frame/index.vue b/WebSite/src/views/frame/index.vue new file mode 100644 index 00000000..ab1e29b5 --- /dev/null +++ b/WebSite/src/views/frame/index.vue @@ -0,0 +1,69 @@ +<!-- + * @Description: + * @Autor: dong jun hua + * @Date: 2020-07-08 16:06:00 + * @LastEditors: Qun + * @LastEditTime: 2021-08-31 13:14:21 +--> + +<template> + <div class="frame-container"> + <iframe :src="url" class="frame"></iframe> + </div> +</template> + +<script> +import { onMounted, reactive, toRefs, watch } from 'vue'; +import { useRoute } from 'vue-router'; +export default { + name: 'Outer', + setup() { + const route = useRoute(); + + const data = reactive({ + url: '' + }); + + const setFrameHeight = () => { + const container = document.querySelector('.frame-container'); + if (container) { + const frame = document.querySelector('.frame'); + const height = container.offsetHeight; + frame.style.height = `${height}px`; + } + }; + + onMounted(() => { + data.url = route.query.url; + setFrameHeight(); + window.addEventListener('resize', setFrameHeight); + }); + + watch( + () => route.query, + () => { + data.url = route.query.url; + } + ); + return { + ...toRefs(data) + }; + } +}; +</script> + +<style scoped> +.frame-container { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + /* width: 100%; + height: 800px; */ +} +.frame { + width: 100%; + border: none; +} +</style> diff --git a/WebSite/src/views/guide/index.vue b/WebSite/src/views/guide/index.vue deleted file mode 100644 index 0c6bedba..00000000 --- a/WebSite/src/views/guide/index.vue +++ /dev/null @@ -1,43 +0,0 @@ -<template> - <div class="app-container"> - <aside> - The guide page is useful for some people who entered the project for the - first time. You can briefly introduce the features of the project. Demo is - based on - <a href="https://github.com/kamranahmedse/driver.js" target="_blank" - >driver.js.</a - > - </aside> - <el-button - icon="el-icon-question" - type="primary" - @click.prevent.stop="guide" - > - Show Guide - </el-button> - </div> -</template> - -<script> -import Driver from "driver.js"; // import driver.js -import "driver.js/dist/driver.min.css"; // import driver.js css -import steps from "./steps"; - -export default { - name: "Guide", - data() { - return { - driver: null - }; - }, - mounted() { - this.driver = new Driver(); - }, - methods: { - guide() { - this.driver.defineSteps(steps); - this.driver.start(); - } - } -}; -</script> diff --git a/WebSite/src/views/guide/steps.js b/WebSite/src/views/guide/steps.js deleted file mode 100644 index 6dfc9c2d..00000000 --- a/WebSite/src/views/guide/steps.js +++ /dev/null @@ -1,53 +0,0 @@ -const steps = [ - { - element: "#hamburger-container", - popover: { - title: "Hamburger", - description: "Open && Close sidebar", - position: "bottom" - } - }, - { - element: "#breadcrumb-container", - popover: { - title: "Breadcrumb", - description: "Indicate the current page location", - position: "bottom" - } - }, - { - element: "#header-search", - popover: { - title: "Page Search", - description: "Page search, quick navigation", - position: "left" - } - }, - { - element: "#screenfull", - popover: { - title: "Screenfull", - description: "Set the page into fullscreen", - position: "left" - } - }, - { - element: "#size-select", - popover: { - title: "Switch Size", - description: "Switch the system size", - position: "left" - } - }, - { - element: "#tags-view-container", - popover: { - title: "Tags view", - description: "The history of the page you visited", - position: "bottom" - }, - padding: 0 - } -]; - -export default steps; diff --git a/WebSite/src/views/hello/HelloA.vue b/WebSite/src/views/hello/HelloA.vue new file mode 100644 index 00000000..d5e4620b --- /dev/null +++ b/WebSite/src/views/hello/HelloA.vue @@ -0,0 +1,16 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-28 09:09:40 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-28 09:36:40 +--> +<template> + <div class="app-container">this is a</div> +</template> + +<script> +export default { + name: 'HelloA' +}; +</script> diff --git a/WebSite/src/views/hello/HelloB.vue b/WebSite/src/views/hello/HelloB.vue new file mode 100644 index 00000000..a184e46c --- /dev/null +++ b/WebSite/src/views/hello/HelloB.vue @@ -0,0 +1,16 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-28 09:09:48 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-28 09:37:01 +--> +<template> + <div class="app-container">this is b</div> +</template> + +<script> +export default { + name: 'HelloB' +}; +</script> diff --git a/WebSite/src/views/hello/HelloC.vue b/WebSite/src/views/hello/HelloC.vue new file mode 100644 index 00000000..56b1a89d --- /dev/null +++ b/WebSite/src/views/hello/HelloC.vue @@ -0,0 +1,16 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-28 09:18:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-28 09:19:42 +--> +<template> + <div class="app-container">this is c</div> +</template> + +<script> +export default { + name: 'HelloC' +}; +</script> diff --git a/WebSite/src/views/home/index.vue b/WebSite/src/views/home/index.vue index b90e914c..608c88ae 100644 --- a/WebSite/src/views/home/index.vue +++ b/WebSite/src/views/home/index.vue @@ -1,16 +1,650 @@ <!-- * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:31:00 + * @Autor: dongjunhua + * @Date: 2021-01-20 09:16:50 * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 15:36:49 + * @LastEditTime: 2021-09-08 10:02:39 --> <template> - <div></div> + <div class="home-container"> + <el-row :gutter="20"> + <el-col :xs="24" :sm="12" :lg="6"> + <div class="top-container"> + <div class="top-title"> + é¡¹ç›®æ•°é‡ + <el-tooltip + class="item" + effect="dark" + content="Top Center æç¤ºæ–‡å—" + placement="top" + > + <i class="fas fa-info-circle"></i> + </el-tooltip> + </div> + <div class="top-content"> + <span>{{ moneyFormatter(1024, 0, ',') }}</span> + <div class="top-chart"> + <v-chart :option="option1" :autoresize="true" /> + </div> + </div> + <div class="top-footer">项目历年立项</div> + </div> + </el-col> + <el-col :xs="24" :sm="12" :lg="6"> + <div class="top-container"> + <div class="top-title"> + é¡¹ç›®æ€»é‡‘é¢ + <el-tooltip + class="item" + effect="dark" + content="Top Center æç¤ºæ–‡å—" + placement="top" + > + <i class="fas fa-info-circle"></i> + </el-tooltip> + </div> + <div class="top-content"> + <span>Â¥ {{ moneyFormatter(4096, 2, ',') }}</span> + <div class="top-chart"> + <v-chart :option="option2" :autoresize="true" /> + </div> + </div> + <div class="top-footer">项目按年汇总金é¢</div> + </div> + </el-col> + <el-col :xs="24" :sm="12" :lg="6"> + <div class="top-container"> + <div class="top-title"> + é¡¹ç›®ä½™é¢ + <el-tooltip + class="item" + effect="dark" + content="Top Center æç¤ºæ–‡å—" + placement="top" + > + <i class="fas fa-info-circle"></i> + </el-tooltip> + </div> + <div class="top-content"> + <span>Â¥ {{ moneyFormatter(2048, 2, ',') }}</span> + <div class="top-chart"> + <v-chart :option="option3" :autoresize="true" /> + </div> + </div> + <div class="top-footer">使用对比</div> + </div> + </el-col> + <el-col :xs="24" :sm="12" :lg="6"> + <div class="top-container"> + <div class="top-title"> + 项目总执行进度 + <el-tooltip + class="item" + effect="dark" + content="Top Center æç¤ºæ–‡å—" + placement="top" + > + <i class="fas fa-info-circle"></i> + </el-tooltip> + </div> + <div class="top-content"> + <span>{{ moneyFormatter(50, 2, ',') }}%</span> + <div class="top-chart"> + <v-chart :option="option4" :autoresize="true" /> + </div> + </div> + <div class="top-footer">执行进度50%</div> + </div> + </el-col> + </el-row> + + <el-row :gutter="20"> + <el-col :xs="24" :sm="24" :lg="16"> + <div class="content-container"> + <el-tabs v-model="activeName"> + <el-tab-pane label="立项数é‡åˆ†å¸ƒ" name="first" /> + <el-tab-pane label="立项总é¢åˆ†å¸ƒ" name="second" /> + </el-tabs> + <div class="content-chart"> + <v-chart + :option="activeName === 'first' ? option5 : option7" + :autoresize="true" + /> + </div> + </div> + </el-col> + <el-col :xs="24" :sm="24" :lg="8"> + <div class="content-container"> + <div class="content-chart left"> + <v-chart :option="option6" :autoresize="true" /> + </div> + </div> + </el-col> + </el-row> + + <svg-icon icon-class="noctua" className="logo-icon" /> + <div class="text" v-if="device === 'desktop'"> + <span>Noctua Admin</span> + </div> + </div> </template> <script> +import { reactive, toRefs, computed } from 'vue'; +import { useStore } from 'vuex'; +import { moneyFormatter } from '@/utils/formatter'; +import { use, graphic } from 'echarts/core'; +import { + GridComponent, + TooltipComponent, + VisualMapComponent, + TitleComponent, + LegendComponent +} from 'echarts/components'; +import { BarChart, LineChart, PieChart } from 'echarts/charts'; +import { CanvasRenderer } from 'echarts/renderers'; +import VChart from 'vue-echarts'; // , { THEME_KEY } + +use([ + GridComponent, + TooltipComponent, + VisualMapComponent, + TitleComponent, + LegendComponent, + BarChart, + LineChart, + PieChart, + CanvasRenderer +]); + export default { - name: "Home" + name: 'Home', + components: { + VChart + }, + // provide: { + // [THEME_KEY]: 'dark' + // }, + setup() { + const store = useStore(); + const device = computed(() => store.state.app.device); + + const option4Data = [ + ['2021-06-05', 116], + ['2021-06-06', 129], + ['2021-06-07', 135], + ['2021-06-08', 86], + ['2021-06-09', 73], + ['2021-06-10', 85], + ['2021-06-11', 73], + ['2021-06-12', 68], + ['2021-06-13', 92], + ['2021-06-14', 130], + ['2021-06-15', 245], + ['2021-06-16', 139], + ['2021-06-17', 115], + ['2021-06-18', 111], + ['2021-06-19', 309], + ['2021-06-20', 206], + ['2021-06-21', 137], + ['2021-06-22', 128], + ['2021-06-23', 85], + ['2021-06-24', 94], + ['2021-06-25', 71], + ['2021-06-26', 106], + ['2021-06-27', 84], + ['2021-06-28', 93], + ['2021-06-29', 85], + ['2021-06-30', 73], + ['2021-07-01', 83], + ['2021-07-02', 125], + ['2021-07-03', 107], + ['2021-07-04', 82], + ['2021-07-05', 44], + ['2021-07-06', 72], + ['2021-07-07', 106], + ['2021-07-08', 107], + ['2021-07-09', 66], + ['2021-07-10', 91], + ['2021-07-11', 92], + ['2021-07-12', 113], + ['2021-07-13', 107], + ['2021-07-14', 131], + ['2021-07-15', 111], + ['2021-07-16', 64], + ['2021-07-17', 69], + ['2021-07-18', 88], + ['2021-07-19', 77], + ['2021-07-20', 83], + ['2021-07-21', 111], + ['2021-07-22', 57], + ['2021-07-23', 55], + ['2021-07-24', 60] + ]; + + const dateList = option4Data.map(function(item) { + return item[0]; + }); + const valueList = option4Data.map(function(item) { + return item[1]; + }); + + const data = reactive({ + today: new Date(), + option1: { + color: ['rgb(58,161,255)'], + tooltip: { + trigger: 'axis', + axisPointer: { + // åæ ‡è½´æŒ‡ç¤ºå™¨ï¼Œåæ ‡è½´è§¦å‘æœ‰æ•ˆ + type: 'shadow' // 默认为直线,å¯é€‰ä¸ºï¼š'line' | 'shadow' + } + }, + grid: { + left: '0', + right: '0', + top: '0', + bottom: '0' + }, + xAxis: { + type: 'category', + data: [ + '2000', + '2001', + '2002', + '2003', + '2004', + '2005', + '2006', + '2007', + '2008', + '2009', + '2010', + '2011', + '2012', + '2013', + '2014', + '2015', + '2016', + '2017', + '2018', + '2019', + '2020', + '2021' + ], + show: false + }, + yAxis: { + type: 'value', + show: false + }, + series: [ + { + data: [ + 20, + 70, + 90, + 80, + 70, + 110, + 130, + 50, + 40, + 110, + 90, + 50, + 40, + 110, + 90, + 140, + 140, + 20, + 70, + 90, + 20, + 70, + 90 + ], + type: 'bar', + barWidth: '8' + } + ] + }, + option2: { + grid: { + left: '-20', + right: '-20', + top: '5', + bottom: '0' + }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + show: false + }, + yAxis: { + type: 'value', + show: false + }, + series: [ + { + data: [820, 1932, 501, 1934, 1290, 1330, 3000], + type: 'line', + smooth: true, + lineStyle: { + width: 0 + }, + showSymbol: false, + areaStyle: { + opacity: 0.8, + color: new graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: 'rgb(182,143,236)' + }, + { + offset: 1, + color: 'rgb(182,40,236)' + } + ]) + }, + emphasis: { + focus: 'series' + } + } + ] + }, + option3: { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross', + label: { + backgroundColor: '#6a7985' + } + } + }, + grid: { + left: '5', + right: '5', + bottom: '5', + top: '5' + }, + xAxis: [ + { + type: 'category', + boundaryGap: false, + data: ['基础数æ®', '消æ¯ä¸å¿ƒ', 'æµç¨‹ä¸å¿ƒ', '网上报销', '薪资查询'], + show: false + } + ], + yAxis: [ + { + type: 'value', + show: false + } + ], + series: [ + { + name: '测试', + type: 'line', + stack: '总é‡', + areaStyle: {}, + emphasis: { + focus: 'series' + }, + data: [10, 10, 12, 50, 90] + }, + { + name: 'å¼€å‘', + type: 'line', + stack: '总é‡', + areaStyle: {}, + emphasis: { + focus: 'series' + }, + data: [220, 182, 191, 234, 290] + } + ] + }, + option4: { + visualMap: { + show: false, + type: 'continuous', + seriesIndex: 0, + min: 0, + max: 400 + }, + tooltip: { + trigger: 'axis' + }, + xAxis: { + data: dateList, + show: false + }, + yAxis: { + show: false + }, + grid: { + left: '5', + right: '5', + bottom: '5', + top: '5' + }, + series: [ + { + type: 'line', + showSymbol: false, + data: valueList + } + ] + }, + option5: { + color: ['rgb(58,161,255)'], + xAxis: { + type: 'category', + data: [ + '1月', + '2月', + '3月', + '4月', + '5月', + '6月', + '7月', + '8月', + '9月', + '10月', + '11月', + '12月' + ] + }, + yAxis: { + type: 'value' + }, + series: [ + { + data: [120, 200, 150, 80, 70, 110, 130, 110, 130, 56, 70, 110], + type: 'bar', + barWidth: '50%' + } + ] + }, + option6: { + tooltip: { + trigger: 'item' + }, + legend: { + top: '50', + left: 'center' + }, + title: { + text: 'æ•°æ®æ¥æº' + }, + grid: { + top: '500' + }, + series: [ + { + name: 'æ•°æ®æ¥æº', + type: 'pie', + radius: ['40%', '70%'], + center: ['50%', '55%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: true, + fontSize: '40', + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 1048, name: '基础数æ®' }, + { value: 735, name: '网上报销' }, + { value: 580, name: 'æµç¨‹ä¸å¿ƒ' }, + { value: 484, name: '消æ¯ä¸å¿ƒ' } + ] + } + ] + }, + option7: { + color: ['rgb(58,161,255)'], + xAxis: { + type: 'category', + data: [ + '1月', + '2月', + '3月', + '4月', + '5月', + '6月', + '7月', + '8月', + '9月', + '10月', + '11月', + '12月' + ] + }, + yAxis: { + type: 'value' + }, + series: [ + { + data: [ + 19000, + 4000, + 1500, + 8000, + 7000, + 1100, + 1300, + 1100, + 1300, + 5600, + 700, + 1100 + ], + type: 'bar', + barWidth: '50%' + } + ] + }, + activeName: 'first' + }); + + return { + ...toRefs(data), + device, + moneyFormatter + }; + } }; </script> + +<style lang="scss" scoped> +.home-container { + padding: 20px; + .user-info { + margin-bottom: 20px; + margin-left: 10px; + } + .top-container { + background-color: #ffffff; + padding: 20px 20px 15px 20px; + margin-bottom: 20px; + .top-title { + color: rgba(0, 0, 0, 0.45); + font-size: 14px; + line-height: 22px; + i { + outline: 0px; + float: right; + } + } + .top-content { + span { + color: rgba(0, 0, 0, 0.85); + font-size: 30px; + line-height: 38px; + white-space: nowrap; + text-overflow: ellipsis; + } + .top-chart { + margin-top: 10px; + height: 30px; + } + } + .top-footer { + margin-top: 10px; + color: rgba(0, 0, 0, 0.85); + font-size: 14px; + padding-top: 14px; + border-top: 1px solid #f0f0f0; + } + } + .content-container { + background-color: #ffffff; + padding: 10px 20px; + margin-bottom: 20px; + .content-chart { + height: 450px; + &.left { + height: 504px; + padding: 20px; + } + } + } + .logo-icon { + position: fixed; + bottom: 30px; + right: 30px; + width: 5em !important; + height: 5em !important; + opacity: 0.2; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + } + .text { + display: flex; + justify-content: center; + align-items: center; + position: fixed; + bottom: 40px; + right: 80px; + width: 200px; + height: 50px; + opacity: 0.3; + + span { + font-size: 22px; + user-select: none; + } + } +} +</style> diff --git a/WebSite/src/views/icons/element-icons.js b/WebSite/src/views/icons/element-icons.js deleted file mode 100644 index 6b4d7160..00000000 --- a/WebSite/src/views/icons/element-icons.js +++ /dev/null @@ -1,284 +0,0 @@ -const elementIcons = [ - "platform-eleme", - "eleme", - "delete-solid", - "delete", - "s-tools", - "setting", - "user-solid", - "user", - "phone", - "phone-outline", - "more", - "more-outline", - "star-on", - "star-off", - "s-goods", - "goods", - "warning", - "warning-outline", - "question", - "info", - "remove", - "circle-plus", - "success", - "error", - "zoom-in", - "zoom-out", - "remove-outline", - "circle-plus-outline", - "circle-check", - "circle-close", - "s-help", - "help", - "minus", - "plus", - "check", - "close", - "picture", - "picture-outline", - "picture-outline-round", - "upload", - "upload2", - "download", - "camera-solid", - "camera", - "video-camera-solid", - "video-camera", - "message-solid", - "bell", - "s-cooperation", - "s-order", - "s-platform", - "s-fold", - "s-unfold", - "s-operation", - "s-promotion", - "s-home", - "s-release", - "s-ticket", - "s-management", - "s-open", - "s-shop", - "s-marketing", - "s-flag", - "s-comment", - "s-finance", - "s-claim", - "s-custom", - "s-opportunity", - "s-data", - "s-check", - "s-grid", - "menu", - "share", - "d-caret", - "caret-left", - "caret-right", - "caret-bottom", - "caret-top", - "bottom-left", - "bottom-right", - "back", - "right", - "bottom", - "top", - "top-left", - "top-right", - "arrow-left", - "arrow-right", - "arrow-down", - "arrow-up", - "d-arrow-left", - "d-arrow-right", - "video-pause", - "video-play", - "refresh", - "refresh-right", - "refresh-left", - "finished", - "sort", - "sort-up", - "sort-down", - "rank", - "loading", - "view", - "c-scale-to-original", - "date", - "edit", - "edit-outline", - "folder", - "folder-opened", - "folder-add", - "folder-remove", - "folder-delete", - "folder-checked", - "tickets", - "document-remove", - "document-delete", - "document-copy", - "document-checked", - "document", - "document-add", - "printer", - "paperclip", - "takeaway-box", - "search", - "monitor", - "attract", - "mobile", - "scissors", - "umbrella", - "headset", - "brush", - "mouse", - "coordinate", - "magic-stick", - "reading", - "data-line", - "data-board", - "pie-chart", - "data-analysis", - "collection-tag", - "film", - "suitcase", - "suitcase-1", - "receiving", - "collection", - "files", - "notebook-1", - "notebook-2", - "toilet-paper", - "office-building", - "school", - "table-lamp", - "house", - "no-smoking", - "smoking", - "shopping-cart-full", - "shopping-cart-1", - "shopping-cart-2", - "shopping-bag-1", - "shopping-bag-2", - "sold-out", - "sell", - "present", - "box", - "bank-card", - "money", - "coin", - "wallet", - "discount", - "price-tag", - "news", - "guide", - "male", - "female", - "thumb", - "cpu", - "link", - "connection", - "open", - "turn-off", - "set-up", - "chat-round", - "chat-line-round", - "chat-square", - "chat-dot-round", - "chat-dot-square", - "chat-line-square", - "message", - "postcard", - "position", - "turn-off-microphone", - "microphone", - "close-notification", - "bangzhu", - "time", - "odometer", - "crop", - "aim", - "switch-button", - "full-screen", - "copy-document", - "mic", - "stopwatch", - "medal-1", - "medal", - "trophy", - "trophy-1", - "first-aid-kit", - "discover", - "place", - "location", - "location-outline", - "location-information", - "add-location", - "delete-location", - "map-location", - "alarm-clock", - "timer", - "watch-1", - "watch", - "lock", - "unlock", - "key", - "service", - "mobile-phone", - "bicycle", - "truck", - "ship", - "basketball", - "football", - "soccer", - "baseball", - "wind-power", - "light-rain", - "lightning", - "heavy-rain", - "sunrise", - "sunrise-1", - "sunset", - "sunny", - "cloudy", - "partly-cloudy", - "cloudy-and-sunny", - "moon", - "moon-night", - "dish", - "dish-1", - "food", - "chicken", - "fork-spoon", - "knife-fork", - "burger", - "tableware", - "sugar", - "dessert", - "ice-cream", - "hot-water", - "water-cup", - "coffee-cup", - "cold-drink", - "goblet", - "goblet-full", - "goblet-square", - "goblet-square-full", - "refrigerator", - "grape", - "watermelon", - "cherry", - "apple", - "pear", - "orange", - "coffee", - "ice-tea", - "ice-drink", - "milk-tea", - "potato-strips", - "lollipop", - "ice-cream-square", - "ice-cream-round" -]; - -export default elementIcons; diff --git a/WebSite/src/views/icons/index.vue b/WebSite/src/views/icons/index.vue deleted file mode 100644 index e78635be..00000000 --- a/WebSite/src/views/icons/index.vue +++ /dev/null @@ -1,112 +0,0 @@ -<template> - <div class="icons-container"> - <!-- <aside> - <a - href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/icon.html" - target="_blank" - >Add and use - </a> - </aside> --> - <el-tabs type="border-card"> - <el-tab-pane label="Icons"> - <div class="grid"> - <div - v-for="item of svgIcons" - :key="item" - @click="handleClipboard(generateIconCode(item), $event)" - > - <el-tooltip placement="top"> - <div slot="content"> - {{ generateIconCode(item) }} - </div> - <div class="icon-item"> - <svg-icon :icon-class="item" class-name="disabled" /> - <span>{{ item }}</span> - </div> - </el-tooltip> - </div> - </div> - </el-tab-pane> - <el-tab-pane label="Element-UI Icons"> - <div class="grid"> - <div - v-for="item of elementIcons" - :key="item" - @click="handleClipboard(generateElementIconCode(item), $event)" - > - <el-tooltip placement="top"> - <div slot="content"> - {{ generateElementIconCode(item) }} - </div> - <div class="icon-item"> - <i :class="'el-icon-' + item" /> - <span>{{ item }}</span> - </div> - </el-tooltip> - </div> - </div> - </el-tab-pane> - </el-tabs> - </div> -</template> - -<script> -import clipboard from "@/utils/clipboard"; -import svgIcons from "./svg-icons"; -import elementIcons from "./element-icons"; - -export default { - name: "Icons", - data() { - return { - svgIcons, - elementIcons - }; - }, - methods: { - generateIconCode(symbol) { - return `<svg-icon icon-class="${symbol}" />`; - }, - generateElementIconCode(symbol) { - return `<i class="el-icon-${symbol}" />`; - }, - handleClipboard(text, event) { - clipboard(text, event); - } - } -}; -</script> - -<style lang="scss" scoped> -.icons-container { - // margin: 10px 20px 0; - overflow: hidden; - - .grid { - position: relative; - display: grid; - grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); - } - - .icon-item { - margin: 20px; - height: 85px; - text-align: center; - width: 100px; - float: left; - font-size: 30px; - color: #24292e; - cursor: pointer; - } - - span { - display: block; - font-size: 16px; - margin-top: 10px; - } - - .disabled { - pointer-events: none; - } -} -</style> diff --git a/WebSite/src/views/icons/svg-icons.js b/WebSite/src/views/icons/svg-icons.js deleted file mode 100644 index 4b220e12..00000000 --- a/WebSite/src/views/icons/svg-icons.js +++ /dev/null @@ -1,10 +0,0 @@ -const req = require.context("../../icons/svg", false, /\.svg$/); -const requireAll = requireContext => requireContext.keys(); - -const re = /\.\/(.*)\.svg/; - -const svgIcons = requireAll(req).map(i => { - return i.match(re)[1]; -}); - -export default svgIcons; diff --git a/WebSite/src/views/login/auth-redirect.vue b/WebSite/src/views/login/auth-redirect.vue deleted file mode 100644 index 65ee12bd..00000000 --- a/WebSite/src/views/login/auth-redirect.vue +++ /dev/null @@ -1,15 +0,0 @@ -<script> -export default { - name: "AuthRedirect", - created() { - const hash = window.location.search.slice(1); - if (window.localStorage) { - window.localStorage.setItem("x-admin-oauth-code", hash); - window.close(); - } - }, - render: function(h) { - return h(); // avoid warning message - } -}; -</script> diff --git a/WebSite/src/views/login/components/SelectUser.vue b/WebSite/src/views/login/components/SelectUser.vue new file mode 100644 index 00000000..dd804b3a --- /dev/null +++ b/WebSite/src/views/login/components/SelectUser.vue @@ -0,0 +1,137 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-23 12:56:35 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-09-04 10:23:34 +--> + +<template> + <div class="selection-container"> + <div class="title"> + <span class="big">:) 欢迎!</span> + <span class="small">{{ + transitionList.length > 0 + ? '请选择一ä½ç”¨æˆ·:' + : '抱æ‰ï¼Œæ²¡æœ‰å¯é€‰æ‹©çš„用户.' + }}</span> + </div> + <div v-for="item in transitionList" :key="item.id"> + <transition name="fade-transform-bottom"> + <div + v-show="item.show" + class="selection" + @click="handleSelectUser(item.id)" + > + <span class="svg-container"> + <svg-icon icon-class="user" /> + </span> + <span>{{ item.name }}</span> + </div> + </transition> + </div> + </div> +</template> + +<script> +import { onMounted, reactive, ref, watch } from 'vue'; +export default { + name: 'SelectUser', + props: { + userList: { + type: Array, + default: () => [] + } + }, + setup(props, context) { + const selectedUserId = ref(0); + const transitionList = reactive([]); + const handleSelectUser = id => { + context.emit('handle-confirm', id); + }; + watch( + () => props.userList, + () => { + // console.log(props.userList); + }, + { deep: true } + ); + onMounted(() => { + props.userList.forEach(u => { + transitionList.push({ + ...u, + show: false + }); + }); + let i = 0; + const interval = setInterval(() => { + if (i < transitionList.length) { + transitionList[i].show = true; + i++; + } else { + clearInterval(interval); + } + }, 200); + }); + return { props, selectedUserId, handleSelectUser, transitionList }; + } +}; +</script> + +<style lang="scss" scoped> +$dark_gray: #889aa4; +$light_gray: #eee; +.selection-container { + width: 100%; + + .title { + width: 100%; + height: 120px; + + span { + display: block; + // color: $light_gray; + font-weight: bold; + } + + .big { + line-height: 80px; + font-size: 32px; + } + + .small { + line-height: 30px; + font-size: 20px; + } + } + + .selection { + cursor: pointer; + border: 1px solid rgba(255, 255, 255, 0.2); + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + // color: #454545; + width: 100%; + height: 45px; + margin-bottom: 16px; + display: flex; + align-items: center; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); + + &:hover { + background: rgba(255, 255, 255, 0.3); + } + + .svg-container { + margin-left: 15px; + margin-right: 15px; + color: $dark_gray; + vertical-align: middle; + } + + // span { + // color: #eee; + // } + } +} +</style> diff --git a/WebSite/src/views/login/components/SocialSignin.vue b/WebSite/src/views/login/components/SocialSignin.vue deleted file mode 100644 index f85e7303..00000000 --- a/WebSite/src/views/login/components/SocialSignin.vue +++ /dev/null @@ -1,76 +0,0 @@ -<template> - <div class="social-signup-container"> - <div class="sign-btn" @click="wechatHandleClick('wechat')"> - <span class="wx-svg-container" - ><svg-icon icon-class="wechat" class="icon" - /></span> - WeChat - </div> - <div class="sign-btn" @click="tencentHandleClick('tencent')"> - <span class="qq-svg-container" - ><svg-icon icon-class="qq" class="icon" - /></span> - QQ - </div> - </div> -</template> - -<script> -// import openWindow from '@/utils/open-window' - -export default { - name: "SocialSignin", - methods: { - wechatHandleClick(thirdpart) { - alert("ok"); - // this.$store.commit('SET_AUTH_TYPE', thirdpart) - // const appid = 'xxxxx' - // const redirect_uri = encodeURIComponent('xxx/redirect?redirect=' + window.location.origin + '/auth-redirect') - // const url = 'https://open.weixin.qq.com/connect/qrconnect?appid=' + appid + '&redirect_uri=' + redirect_uri + '&response_type=code&scope=snsapi_login#wechat_redirect' - // openWindow(url, thirdpart, 540, 540) - }, - tencentHandleClick(thirdpart) { - alert("ok"); - // this.$store.commit('SET_AUTH_TYPE', thirdpart) - // const client_id = 'xxxxx' - // const redirect_uri = encodeURIComponent('xxx/redirect?redirect=' + window.location.origin + '/auth-redirect') - // const url = 'https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=' + client_id + '&redirect_uri=' + redirect_uri - // openWindow(url, thirdpart, 540, 540) - } - } -}; -</script> - -<style lang="scss" scoped> -.social-signup-container { - margin: 20px 0; - .sign-btn { - display: inline-block; - cursor: pointer; - } - .icon { - color: #fff; - font-size: 24px; - margin-top: 8px; - } - .wx-svg-container, - .qq-svg-container { - display: inline-block; - width: 40px; - height: 40px; - line-height: 40px; - text-align: center; - padding-top: 1px; - border-radius: 4px; - margin-bottom: 20px; - margin-right: 5px; - } - .wx-svg-container { - background-color: #24da70; - } - .qq-svg-container { - background-color: #6ba2d6; - margin-left: 50px; - } -} -</style> diff --git a/WebSite/src/views/login/index.vue b/WebSite/src/views/login/index.vue index 967bafcd..0d1fe096 100644 --- a/WebSite/src/views/login/index.vue +++ b/WebSite/src/views/login/index.vue @@ -1,38 +1,66 @@ <template> - <div class="login-warp"> - <div class="login-container"> - <el-form - ref="loginForm" - :model="loginForm" - :rules="loginRules" - class="login-form" - autocomplete="on" - label-position="left" - > - <div class="title-container"> - <h3 class="title"> - {{ defaultSettings.title || "Vue Element Admin" }} - </h3> - </div> + <div class="login-container"> + <vue-particles + v-if="enableDynamicBg" + :color="dynamicBgColor" + :particleOpacity="0.1" + :particlesNumber="15" + shapeType="circle" + :particleSize="100" + :linesColor="dynamicBgColor" + :linesWidth="1" + :lineLinked="true" + :lineOpacity="0.4" + :linesDistance="150" + :moveSpeed="3" + :hoverEffect="true" + hoverMode="grab" + :clickEffect="true" + clickMode="push" + ></vue-particles> + + <div class="login-inner-container"> + <div class="release-info" @click="showSelectUser = !showSelectUser"> + <span>{{ releaseCycle }}</span> + </div> + + <transition name="fade-transform-top"> + <el-form + v-show="!showSelectUser" + ref="loginForm" + :model="formData" + :rules="formRules" + class="login-form" + :class="{ mobile: device === 'mobile' }" + autocomplete="on" + label-position="left" + > + <div class="title-container"> + <h3 class="title"> + <svg-icon + v-if="title === 'Noctua Admin'" + icon-class="noctua" + className="logo-icon" + /><br v-if="device !== 'mobile'" /> + {{ title }} + </h3> + </div> - <div class="el-form-item-container"> - <el-form-item prop="username"> + <el-form-item prop="account"> <span class="svg-container"> <svg-icon icon-class="user" /> </span> <el-input - ref="username" - v-model="loginForm.username" - placeholder="Username" - name="username" + ref="account" + v-model="formData.account" + placeholder="account" + name="account" type="text" tabindex="1" autocomplete="on" /> </el-form-item> - </div> - <div class="el-form-item-container"> <el-tooltip v-model="capsTooltip" content="Caps lock is On" @@ -46,299 +74,345 @@ <el-input :key="passwordType" ref="password" - v-model="loginForm.password" + v-model="formData.password" :type="passwordType" placeholder="Password" name="password" tabindex="2" autocomplete="on" - @keyup.native="checkCapslock" + @keyup="checkCapslock" @blur="capsTooltip = false" - @keyup.enter.native="handleLogin" + @keyup.enter="handleLogin" /> - <span class="show-pwd" @click="showPwd"> + <span class="show-pwd" @click="showPassword"> <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /> </span> </el-form-item> </el-tooltip> + + <el-button + :loading="loading" + type="primary" + size="medium" + style="width:100%" + @click.prevent="handleLogin" + >ç™» 录</el-button + > + </el-form> + </transition> + + <transition name="fade-transform-bottom"> + <div + v-if="showSelectUser" + class="login-form" + :class="{ mobile: device === 'mobile' }" + > + <select-user :userList="userList" @handle-confirm="handleSetUser" /> </div> + </transition> - <el-form-item prop="status"> - <jc-range - style="margin-top:30px" - :status.sync="loginForm.status" - :successFun="onMpanelSuccess" - :errorFun="onMpanelError" - @handle-confirm="handleLogin" - ></jc-range> - </el-form-item> - - <!-- <el-button - :loading="loading" - type="primary" - style="width:100%;margin-bottom:30px;margin-top:30px" - @click.native.prevent="handleLogin" - >ç™» 录</el-button - > --> - - <!-- <div style="position:relative"> - <div class="tips"> - <span>Username : admin</span> - <span>Password : any</span> + <div class="svg-link-container"> + <div class="icon-container"> + <a href="https://v3.cn.vuejs.org/" title="Vue.js" target="_blank" + ><svg-icon icon-class="vue" className="vue-icon" + /></a> + </div> + <div class="icon-container"> + <a + href="https://element-plus.gitee.io/#/zh-CN" + title="Element Plus" + target="_blank" + > + <svg-icon icon-class="element" className="element-icon" /> + </a> </div> - <div class="tips"> - <span style="margin-right:18px;">Username : editor</span> - <span>Password : any</span> + <div class="icon-container"> + <a + href="https://vant-contrib.gitee.io/vant/v3/#/zh-CN" + title="Vant" + target="_blank" + > + <svg-icon icon-class="vant" className="vant-icon" /> + </a> + <a + href="https://vant-contrib.gitee.io/vant/v3/#/zh-CN" + title="Vant" + target="_blank" + > + <span class="vant-text">Vant</span> + </a> + </div> + <div class="icon-container"> + <a + href="http://git.seaskysh.com.cn:8800/dongjunhua/vue-element-next" + title="GitLab" + target="_blank" + > + <svg-icon icon-class="gitlab" className="gitlab-icon" /> + </a> </div> + </div> - <el-button - class="thirdparty-button" - type="primary" - @click="showDialog = true" - > - Or connect with - </el-button> - </div> --> - </el-form> - - <el-dialog title="Or connect with" :visible.sync="showDialog"> - Can not be simulated on local, so please combine you own business - simulation! ! ! - <br /> - <br /> - <br /> - <social-sign /> - </el-dialog> + <div class="info-container"> + <div class="text-container"> + <span style="margin-right:10px" + >Ver. {{ `${version}(${coreVersion})` }} + </span> + <span>Powered by Vue.js v3 Framework</span> + </div> + </div> </div> - <select-user - :visible.sync="dialogSelectUser.visible" - :userList="dialogSelectUser.userList" - @handle-confirm="setUser" - /> - <modify-password - :visible.sync="dialogModifyPassword.visible" - :isInitial="true" - @handle-confirm="selectUser" - /> </div> </template> <script> -import { validUsername } from "@/utils/validate"; -import SocialSign from "./components/SocialSignin"; -import SelectUser from "@/components/SelectUser"; -import ModifyPassword from "@/components/ModifyPassword"; -import JcRange from "@/components/JcRange"; +import { + ref, + onMounted, + reactive, + nextTick, + toRefs, + computed, + watch +} from 'vue'; +import { useStore } from 'vuex'; +import { useRoute } from 'vue-router'; +import AuthenticationToken from '@/core/model/AuthenticationToken'; +import SelectUser from './components/SelectUser'; +import ResizeMixin from '@/layout/mixin/ResizeHandler'; export default { - name: "Login", - components: { SocialSign, SelectUser, JcRange, ModifyPassword }, - data() { - const validateUsername = (rule, value, callback) => { - callback(); - // if (!validUsername(value)) { - // callback(new Error("Please enter the correct user name")); - // } else { - // callback(); - // } - }; - const validatePassword = (rule, value, callback) => { - callback(); - // if (value.length < 6) { - // callback(new Error("The password can not be less than 6 digits")); - // } else { - // callback(); - // } - }; - const checkStatus = (rule, value, callback) => { - if (!value) { - callback(new Error("请拖动滑å—完æˆéªŒè¯")); - } else { - callback(); - } - }; - return { - defaultSettings: require("@/settings.js"), - loginForm: { - username: "admin", - password: "123456", - status: false + name: 'Login', + components: { + SelectUser + }, + mixins: [ResizeMixin], + setup() { + // important!! this can't be used inside setup + // useStore & useRouter can only be used inside setup + const store = useStore(); + const route = useRoute(); + const loginForm = ref(null); + const account = ref(null); + const password = ref(null); + const data = reactive({ + title: store.state.app.applicationName, + releaseCycle: store.state.app.releaseCycle, + version: store.state.app.version, + coreVersion: store.state.app.coreVersion, + enableDynamicBg: store.state.app.enableDynamicBg, + formData: { + account: 'admin', + password: '123456' }, - loginRules: { - username: [ - { required: true, trigger: "blur", validator: validateUsername } + formRules: { + account: [ + { required: true, trigger: 'blur', validator: validateAccount } ], password: [ - { required: true, trigger: "blur", validator: validatePassword } - ], - status: [{ trigger: "change", validator: checkStatus }] + { required: true, trigger: 'blur', validator: validatePassword } + ] }, - passwordType: "password", + passwordType: 'password', capsTooltip: false, - dialogVisible: false, loading: false, showDialog: false, redirect: undefined, - radio: "1", otherQuery: {}, - dialogSelectUser: { - visible: false, - userList: [] - }, - dialogModifyPassword: { - visible: false + userList: [], + showSelectUser: false + }); + + const dynamicBgColor = computed(() => { + if (store.state.app.themes.find(t => t.active).name === 'light') { + return '#aaa'; } + if (store.state.app.themes.find(t => t.active).name === 'dark') { + return '#ddd'; + } + return '#ddd'; + }); + + const validateAccount = (rule, value, callback) => { + // do valid here + // if invalid, callback(new Error()) + callback(); }; - }, - watch: { - $route: { - handler: function(route) { - const query = route.query; - if (query) { - this.redirect = query.redirect; - this.otherQuery = this.getOtherQuery(query); - } - }, - immediate: true - } - }, - created() { - // window.addEventListener('storage', this.afterQRScan) - }, - mounted() { - if (this.loginForm.username === "") { - this.$refs.username.focus(); - } else if (this.loginForm.password === "") { - this.$refs.password.focus(); - } - }, - destroyed() { - // window.removeEventListener('storage', this.afterQRScan) - }, - methods: { - onMpanelSuccess() { - this.$refs.loginForm.validate(_ => {}); - }, - onMpanelError() {}, - submitForm(formName) { - this.$refs[formName].validate(valid => { - if (valid) { - alert("submit!"); - } else { - console.log("error submit!!"); - return false; - } - }); - }, - checkCapslock(e) { + const validatePassword = (rule, value, callback) => { + // do valid here + // if invalid, callback(new Error()) + callback(); + }; + const checkCapslock = e => { const { key } = e; - this.capsTooltip = key && key.length === 1 && key >= "A" && key <= "Z"; - }, - showPwd() { - if (this.passwordType === "password") { - this.passwordType = ""; + data.capsTooltip = key && key.length === 1 && key >= 'A' && key <= 'Z'; + }; + const showPassword = async () => { + if (data.passwordType === 'password') { + data.passwordType = ''; } else { - this.passwordType = "password"; + data.passwordType = 'password'; } - this.$nextTick(() => { - this.$refs.password.focus(); - }); - }, - handleLogin() { - this.$refs.loginForm.validate(async valid => { + await nextTick(); + password.value.focus(); + }; + const handleLogin = () => { + loginForm.value.validate(async valid => { if (valid) { - this.loading = true; - try { - const { isInitial, users } = await this.$store.dispatch( - "user/login", - this.loginForm - ); - this.dialogSelectUser.userList = users; - // 首次登录必须修改密ç - if (isInitial === "YES") { - this.dialogModifyPassword.visible = true; - } else { - this.selectUser(); + const token = new AuthenticationToken( + data.formData.account, + data.formData.password + ); + await store.dispatch('subject/login', token); + const userList = store.state.subject.account.users; + if (userList) { + if (userList.length > 1) { + data.userList = userList; + data.showSelectUser = true; + } else if (userList.length === 1) { + handleSetUser(userList[0].id); } - } catch (err) { - this.loading = false; } + } else { + // console.log('error submit!!'); + return false; } }); - }, - selectUser() { - // 当å‰è´¦å·åªæœ‰ä¸€ä¸ªå…³è”用户直接登录,å¦åˆ™é€‰æ‹©ç”¨æˆ· - if (this.dialogSelectUser.userList.length === 1) { - this.setUser(this.dialogSelectUser.userList[0].id); - } else { - this.dialogSelectUser.visible = true; - } - }, - async setUser(id) { - try { - await this.$store.dispatch("user/setUser", id); - this.$router.push({ - path: "/" - }); - } catch (err) { - this.loading = false; + }; + const handleSetUser = async userId => { + const permitOptions = { authorizationToken: userId }; + if (data.otherQuery.redirect_uri) { + permitOptions.afterPermitted = token => { + window.location.href = `${data.otherQuery.redirect_uri}?code=${token}`; + }; } - }, - // handleLogin() { - // // this.dialogVisible = true; - // // return; - // this.$refs.loginForm.validate(valid => { - // if (valid) { - // this.loading = true; - // this.$store - // .dispatch("user/login", this.loginForm) - // .then(() => { - // this.$router.push({ - // path: this.redirect || "/", - // query: this.otherQuery - // }); - // this.loading = false; - // }) - // .catch(() => { - // this.loading = false; - // }); - // } else { - // console.log("error submit!!"); - // return false; - // } - // }); - // }, - getOtherQuery(query) { + await store.dispatch('subject/permit', permitOptions); + }; + const getQuery = query => { return Object.keys(query).reduce((acc, cur) => { - if (cur !== "redirect") { + if (cur !== 'redirect') { acc[cur] = query[cur]; } return acc; }, {}); - } - // afterQRScan() { - // if (e.key === 'x-admin-oauth-code') { - // const code = getQueryObject(e.newValue) - // const codeMap = { - // wechat: 'code', - // tencent: 'code' - // } - // const type = codeMap[this.auth_type] - // const codeName = code[type] - // if (codeName) { - // this.$store.dispatch('LoginByThirdparty', codeName).then(() => { - // this.$router.push({ path: this.redirect || '/' }) - // }) - // } else { - // alert('第三方登录失败') - // } - // } - // } + }; + const focus = () => { + if (data.formData.account === '') { + account.value.focus(); + } else if (data.formData.password === '') { + password.value.focus(); + } + }; + + watch( + () => route.path, + () => { + data.otherQuery = getQuery(route.query); + }, + { immediate: true } + ); + + onMounted(() => { + focus(); + }); + + const device = computed(() => store.state.app.device); + const sidebar = computed(() => store.state.app.sidebar); + + return { + loginForm, + account, + password, + ...toRefs(data), + dynamicBgColor, + checkCapslock, + showPassword, + handleLogin, + handleSetUser, + device, + sidebar + }; } }; </script> +<style lang="scss" scoped> +/* particles */ +#particles-js { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +/* footer */ +.svg-link-container, +.info-container { + position: absolute; + display: flex; + width: 100%; + height: 40px; + justify-content: center; +} + +.svg-link-container { + bottom: 15%; + + .icon-container { + display: flex; + justify-content: center; + align-items: center; + padding: 10px; + + .vue-icon { + width: 1.3em !important; + height: 1.3em !important; + } + .element-icon { + width: 5em !important; + height: 2em !important; + } + .vant-icon { + width: 1.3em !important; + height: 1.3em !important; + } + .vant-text { + position: relative; + top: -1px; + margin-left: 5px; + color: #888; + font-size: 14px; + font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, + 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', + 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif; + user-select: none; + } + .gitlab-icon { + width: 4.8em !important; + height: 2em !important; + } + } +} + +.info-container { + bottom: calc(15% - 50px); + + .text-container { + display: flex; + justify-content: center; + align-items: center; + padding: 10px; + + span { + color: #aaaaaa; + font-size: 14px; + } + } +} +</style> + <style lang="scss"> /* ä¿®å¤input 背景ä¸åè°ƒ å’Œå…‰æ ‡å˜è‰² */ /* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */ @@ -352,6 +426,7 @@ $cursor: #fff; color: $cursor; } } + /* reset element-ui css */ .login-container { .el-input { @@ -365,9 +440,10 @@ $cursor: #fff; -webkit-appearance: none; border-radius: 0px; padding: 12px 5px 12px 15px; - color: $light_gray; + // color: $light_gray; height: 47px; - caret-color: $cursor; + // caret-color: $cursor; + font-size: 16px; &:-webkit-autofill { box-shadow: 0 0 0px 1000px $bg inset !important; @@ -376,48 +452,85 @@ $cursor: #fff; } } - .el-form-item-container { + .el-form-item { border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.1); border-radius: 5px; color: #454545; - margin-bottom: 22px; - - .el-form-item { - margin-bottom: 0px !important; - } } } </style> <style lang="scss" scoped> -$bg: #2d3a4b; +$bg: rgb(41, 39, 50); $dark_gray: #889aa4; $light_gray: #eee; -.login-warp { - min-height: 100%; - width: 100%; - background-color: $bg; - overflow: hidden; -} + .login-container { min-height: 100%; width: 100%; - background-color: $bg; overflow: hidden; + position: relative; + display: flex; + justify-content: center; - .login-form { + .login-inner-container { + min-height: 600px; + width: 100%; + overflow: hidden; position: relative; - width: 520px; + display: flex; + justify-content: center; + + .release-info { + width: 100px; + height: 100px; + display: flex; + justify-content: center; + align-items: center; + background-image: linear-gradient(#409eff, #3dc7d5); + // background-color: #409eff; + position: fixed; + top: -50px; + right: -50px; + transform: rotate(45deg); + cursor: pointer; + + span { + user-select: none; + padding-top: 65px; + font-size: 18px; + font-weight: bold; + color: #eeeeee; + } + } + } + + .login-form { + position: absolute; + width: 400px; max-width: 100%; - padding: 160px 35px 0; - margin: 0 auto; overflow: hidden; + margin: 15vh auto 0; + padding: 20px 20px 40px 20px; + &.mobile { + padding: 0px 20px; + .title-container { + .title { + .logo-icon { + font-size: 75px; + position: relative; + top: 15px; + left: -5px; + } + } + } + } } .tips { font-size: 14px; - color: #fff; + // color: #fff; margin-bottom: 10px; span { @@ -440,10 +553,13 @@ $light_gray: #eee; .title { font-size: 26px; - color: $light_gray; margin: 0px auto 40px auto; text-align: center; font-weight: bold; + + .logo-icon { + font-size: 120px; + } } } diff --git a/WebSite/src/views/nested/menu1/index.vue b/WebSite/src/views/nested/menu1/index.vue deleted file mode 100644 index 30cb6701..00000000 --- a/WebSite/src/views/nested/menu1/index.vue +++ /dev/null @@ -1,7 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1"> - <router-view /> - </el-alert> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-1/index.vue b/WebSite/src/views/nested/menu1/menu1-1/index.vue deleted file mode 100644 index 27e173a6..00000000 --- a/WebSite/src/views/nested/menu1/menu1-1/index.vue +++ /dev/null @@ -1,7 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-1" type="success"> - <router-view /> - </el-alert> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-2/index.vue b/WebSite/src/views/nested/menu1/menu1-2/index.vue deleted file mode 100644 index 0c86276e..00000000 --- a/WebSite/src/views/nested/menu1/menu1-2/index.vue +++ /dev/null @@ -1,7 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-2" type="success"> - <router-view /> - </el-alert> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue b/WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue deleted file mode 100644 index f87d88f4..00000000 --- a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template functional> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-2-1" type="warning" /> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue b/WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue deleted file mode 100644 index d88789f2..00000000 --- a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template functional> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-2-2" type="warning" /> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-3/index.vue b/WebSite/src/views/nested/menu1/menu1-3/index.vue deleted file mode 100644 index f7cd0738..00000000 --- a/WebSite/src/views/nested/menu1/menu1-3/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template functional> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-3" type="success" /> - </div> -</template> diff --git a/WebSite/src/views/nested/menu2/index.vue b/WebSite/src/views/nested/menu2/index.vue deleted file mode 100644 index 19dd48f0..00000000 --- a/WebSite/src/views/nested/menu2/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 2" /> - </div> -</template> diff --git a/WebSite/src/views/outer/index.vue b/WebSite/src/views/outer/index.vue deleted file mode 100644 index 69b91a9d..00000000 --- a/WebSite/src/views/outer/index.vue +++ /dev/null @@ -1,63 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-08 16:06:00 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-09 10:56:45 ---> - -<template> - <div class="frame-container"> - <iframe :src="url" class="frame"></iframe> - </div> -</template> - -<script> -export default { - name: "Outer", - data() { - return { - url: "" - }; - }, - watch: { - $route: { - handler() { - this.url = this.$route.query.url; - }, - deep: true - } - }, - mounted() { - this.url = this.$route.query.url; - this.setFrameHeight(); - window.onresize = () => { - this.setFrameHeight(); - }; - }, - methods: { - setFrameHeight() { - const container = document.querySelector(".frame-container"); - const frame = document.querySelector(".frame"); - const height = container.offsetHeight; - frame.style.height = `${height}px`; - } - } -}; -</script> - -<style scoped> -.frame-container { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - /* width: 100%; - height: 800px; */ -} -.frame { - width: 100%; - border: none; -} -</style> diff --git a/WebSite/src/views/pdf/content.js b/WebSite/src/views/pdf/content.js deleted file mode 100644 index d5bc71d2..00000000 --- a/WebSite/src/views/pdf/content.js +++ /dev/null @@ -1,58 +0,0 @@ -const title = "Plans for the Next Iteration of Vue.js"; - -const content = `<p>Last week at<a href="https://vuejs.london/summary" rel="nofollow">Vue.js London</a>I gave a brief sneak peek of what’s coming in the next major version of Vue. This post provides an in-depth overview of the plan.</p> -<p><img class=" wscnph" src="https://wpimg.wallstcn.com/b8a1d7be-0b73-41b8-be8c-7c01c93cab66.png" data-wscntype="image" data-wscnh="742" data-wscnw="692" /></p> -<h3>Why a new majorversion?</h3> -<p>Vue 2.0 was released<a href="https://medium.com/the-vue-point/vue-2-0-is-here-ef1f26acf4b8" rel="nofollow">exactly two years ago</a>(how time flies!). During this period, the core has remained backwards compatible with five minor releases. We’ve accumulated a number of ideas that would bring improvements, but they were held off because they would result in breaking changes. At the same time, the JavaScript ecosystem and the language itself has been evolving rapidly. There are greatly improved tools that could enhance our workflow, and many new language features that could unlock simpler, more complete, and more efficient solutions to the problems Vue is trying to solve. What’s more exciting is that we are seeing ES2015 support becoming a baseline for all major evergreen browsers. Vue 3.0 aims to leverage these new language features to make Vue core smaller, faster, and more powerful.</p> -<p>Vue 3.0 is currently in prototyping phase, and we have already implemented a runtime close to feature-parity with 2.x.<strong>Many of the items listed below are either already implemented, or confirmed to be feasible. Ones that are not yet implemented or still in exploration phase are marked with a *.</strong></p> -<h3>The Details</h3> -<h4>High-Level APIChanges</h4> -<blockquote>TL;DR: Everything except render function API and scoped-slots syntax will either remain the same or can be made 2.x compatible via a compatibility build.</blockquote> -<p>Since it’s a new major, there is going to be some breaking changes. However, we take backwards compatibility seriously, so we want to start communicating these changes as soon as possible. Here’s the currently planned public API changes:</p> -<ul><li>Template syntax will remain 99% the same. There may be small tweaks in scoped slots syntax, but other than that we have no plans to change anything else for templates.</li><li>3.0 will support class-based components natively, with the aim to provide an API that is pleasant to use in native ES2015 without requiring any transpilation or stage-x features. Most current options will have a reasonable mapping in the class-based API. Stage-x features such as class fields and decorators can still be used optionally to enhance the authoring experience. In addition, the API is designed with TypeScript type inference in mind. The 3.x codebase will itself be written in TypeScript, and providing improved TypeScript support. (That said, usage of TypeScript in an application is still entirely optional.)</li><li>The 2.x object-based component format will still be supported by internally transforming the object to a corresponding class.</li><li>Mixins will still be supported.*</li><li>Top level APIs will likely receive an overhaul to avoid globally mutating the Vue runtime when installing plugins. Instead, plugins will be applied and scoped to a component tree. This will make it easier to test components that rely on specific plugins, and also make it possible to mount multiple Vue applications on the same page with different plugins, but using the same Vue runtime.*</li><li>Functional components can finally be plain functions —however, async components will now need to be explicitly created via a helper function.</li><li>The part that will receive the most changes is the Virtual DOM format used in render functions. We are currently collecting feedback from major library authors and will be sharing more details as we are more confident of the changes, but as long as you don’t heavily rely on hand-written (non-JSX) render functions in your app, upgrading should be a reasonably straightforward process.</li></ul> -<h4>Source Code Architecture</h4> -<blockquote>TL;DR: better decoupled internal modules, TypeScript, and a codebase that is easier to contribute to.</blockquote> -<p>We are re-writing 3.0 from the ground up for a cleaner and more maintainable architecture, in particular trying to make it easier to contribute to. We are breaking some internal functionalities into individual packages in order to isolate the scope of complexity. For example, the observer module will become its own package, with its own public API and tests. Note this does not affect framework-level API— you will not have to manually import individual bits from multiple packages in order to use Vue. Instead, the final Vue package is assembled using these internal packages.</p> -<p>The codebase is also now written in TypeScript. Although this will make proficiency in TypeScript a pre-requisite for contributing to the new codebase, we believe the type information and IDE support will actually make it easier for a new contributor to make meaningful contributions.</p> -<p>Decoupling the observer and scheduler into separate packages also allows us to easily experiment with alternative implementations of these parts. For example, we can implement an IE11 compatible observer implementation with the same API, or an alternative scheduler that leverages<code>requestIdleCallback</code>to yield to the browser during long updates.*</p> -<p><img class=" wscnph" src="https://wpimg.wallstcn.com/4d0b5fb2-d7f9-48fd-8f1b-03362b534dd9.png" data-wscntype="image" data-wscnh="716" data-wscnw="460" /></p> -<h4>Observation Mechanism</h4> -<blockquote>TL;DR: more complete, precise, efficient and debuggable reactivity tracking & API for creating observables.</blockquote> -<p>3.0 will ship with a Proxy-based observer implementation that provides reactivity tracking with full language coverage. This eliminates a number of limitations of Vue 2’s current implementation based on<code>Object.defineProperty</code>:</p> -<p>The new observer also features the following:</p> -<p>Easily understand why a component is re-rendering</p> -<p><img class=" wscnph" src="https://wpimg.wallstcn.com/a0c9d811-1ef9-4628-8976-f7c1aaa66da0.png" data-wscntype="image" data-wscnh="540" data-wscnw="789" /></p> -<h4>Other Runtime Improvements</h4> -<blockquote>TL;DR: smaller, faster, tree-shakable features, fragments & portals, custom renderer API.</blockquote> -<h4>Compiler Improvements*</h4> -<blockquote>TL;DR: tree-shaking friendly output, more AOT optimizations, parser with better error info and source map support.</blockquote> -<h4>IE11 Support*</h4> -<blockquote>TL;DR: it will be supported, but in a separate build with the same reactivity limitations of Vue 2.x.</blockquote> -<p>The new codebase currently targets evergreen browsers only and assumes baseline native ES2015 support. But alas, we know a lot of our users still need to support IE11 for the foreseeable future. Most of the ES2015 features used can be transpiled / polyfilled for IE11, with the exception for Proxies. Our plan is to implement an alternative observer with the same API, but using the good old ES5<code>Object.defineProperty</code>API. A separate build of Vue 3.x will be distributed using this observer implementation. However, this build will be subject to the same change detection caveats of Vue 2.x and thus not fully compatible with the “modern†build of 3.x. We are aware that this imposes some inconvenience for library authors as they will need to be aware of compatibility for two different builds, but we will make sure to provide clear guidelines on this when we reach that stage.</p> -<h3>How Do We GetThere</h3> -<p>First of all, although we are announcing it today, we do not have a definitive timeline yet. What we do know at the moment is the steps we will be taking to get there:</p> -<h4>1. Internal Feedback for the Runtime Prototype</h4> -<p>This is the phase we are in right now. Currently, we already have a working runtime prototype that includes the new observer, Virtual DOM and component implementation. We have invited a group of authors of influential community projects to provide feedback for the internal changes, and would like to make sure they are comfortable with the changes before moving forward. We want to ensure that important libraries in the ecosystem will be ready at the same time when we release 3.0, so that users relying on those projects can upgrade easily.</p> -<h4>2. Public Feedback viaRFCs</h4> -<p>Once we gain a certain level of confidence in the new design, for each breaking change we will be opening a dedicated RFC issue which includes:</p> -<p>We will anticipate public feedback from the wider community to help us consolidate these ideas.</p> -<h4>3. Introduce Compatible Features in 2.x &2.x-next</h4> -<p>We are not forgetting about 2.x! In fact, we plan to use 2.x to progressively accustom users to the new changes. We will be gradually introducing confirmed API changes into 2.x via opt-in adaptors, and 2.x-next will allow users to try out the new Proxy-based observer.</p> -<p>The last minor release in 2.x will become LTS and continue to receive bug and security fixes for 18 months when 3.0 is released.</p> -<h4>4. AlphaPhase</h4> -<p>Next, we will finish up the compiler and server-side rendering parts of 3.0 and start making alpha releases. These will mostly be for stability testing purposes in small greenfield apps.</p> -<h4>5. BetaPhase</h4> -<p>During beta phase, our main goal is updating support libraries and tools like Vue Router, Vuex, Vue CLI, Vue DevTools and make sure they work smoothly with the new core. We will also be working with major library authors from the community to help them get ready for 3.0.</p> -<h4>6. RCPhase</h4> -<p>Once we consider the API and codebase stable, we will enter RC phase with API freeze. During this phase we will also work on a “compat buildâ€: a build of 3.0 that includes compatibility layers for 2.x API. This build will also ship with a flag you can turn on to emit deprecation warnings for 2.x API usage in your app. The compat build can be used as a guide to upgrade your app to 3.0.</p> -<h4>7. IE11build</h4> -<p>The last task before the final release will be the IE11 compatibility build as mentioned above.</p> -<h4>8. FinalRelease</h4> -<p>In all honesty, we don’t know when this will happen yet, but likely in 2019. Again, we care more about shipping something that is solid and stable rather than hitting specific dates. There is a lot of work to be done, but we are excited for what’s coming next!</p>`; - -const data = { - title, - content -}; - -export default data; diff --git a/WebSite/src/views/pdf/download.vue b/WebSite/src/views/pdf/download.vue deleted file mode 100644 index 74ba12bb..00000000 --- a/WebSite/src/views/pdf/download.vue +++ /dev/null @@ -1,214 +0,0 @@ -<template> - <div - v-loading.fullscreen.lock="fullscreenLoading" - class="main-article" - element-loading-text="Efforts to generate PDF" - > - <div class="article__heading"> - <div class="article__heading__title"> - {{ article.title }} - </div> - </div> - <div style="color: #ccc;"> - This article is from Evan You on - <a - target="_blank" - href="https://medium.com/the-vue-point/plans-for-the-next-iteration-of-vue-js-777ffea6fabf" - >medium</a - > - </div> - <div ref="content" class="node-article-content" v-html="article.content" /> - </div> -</template> - -<script> -export default { - data() { - return { - article: "", - fullscreenLoading: true - }; - }, - mounted() { - this.fetchData(); - }, - methods: { - fetchData() { - import("./content.js").then(data => { - const { title } = data.default; - document.title = title; - this.article = data.default; - setTimeout(() => { - this.fullscreenLoading = false; - this.$nextTick(() => { - window.print(); - }); - }, 3000); - }); - } - } -}; -</script> - -<style lang="scss"> -@mixin clearfix { - &:before { - display: table; - content: ""; - clear: both; - } - - &:after { - display: table; - content: ""; - clear: both; - } -} - -.main-article { - padding: 20px; - margin: 0 auto; - display: block; - width: 740px; - background: #fff; -} - -.article__heading { - position: relative; - padding: 0 0 20px; - overflow: hidden; -} - -.article__heading__title { - display: block; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - line-clamp: 2; - word-wrap: break-word; - overflow-wrap: break-word; - font-size: 32px; - line-height: 48px; - font-weight: 600; - color: #333; - overflow: hidden; -} - -.node-article-content { - margin: 20px 0 0; - @include clearfix; - font-size: 16px; - color: #333; - letter-spacing: 0.5px; - line-height: 28px; - margin-bottom: 30px; - font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", - Times, serif; - - & > :last-child { - margin-bottom: 0; - } - - b, - strong { - font-weight: inherit; - font-weight: bolder; - } - - img { - max-width: 100%; - display: block; - margin: 0 auto; - } - - p { - font-weight: 400; - font-style: normal; - font-size: 21px; - line-height: 1.58; - letter-spacing: -0.003em; - } - - ul { - margin-bottom: 30px; - } - - li { - --x-height-multiplier: 0.375; - --baseline-multiplier: 0.17; - - letter-spacing: 0.01rem; - font-weight: 400; - font-style: normal; - font-size: 21px; - line-height: 1.58; - letter-spacing: -0.003em; - margin-left: 30px; - margin-bottom: 14px; - } - - a { - text-decoration: none; - background-repeat: repeat-x; - background-image: linear-gradient( - to right, - rgba(0, 0, 0, 0.84) 100%, - rgba(0, 0, 0, 0) 0 - ); - background-size: 1px 1px; - background-position: 0 calc(1em + 1px); - padding: 0 6px; - } - - code { - background: rgba(0, 0, 0, 0.05); - padding: 3px 4px; - margin: 0 2px; - font-size: 16px; - display: inline-block; - } - - img { - border: 0; - } - - /* 解决 IE6-7 图片缩放锯齿问题 */ - img { - -ms-interpolation-mode: bicubic; - } - - blockquote { - --x-height-multiplier: 0.375; - --baseline-multiplier: 0.17; - font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", - Times, serif; - letter-spacing: 0.01rem; - font-weight: 400; - font-style: italic; - font-size: 21px; - line-height: 1.58; - letter-spacing: -0.003em; - border-left: 3px solid rgba(0, 0, 0, 0.84); - padding-left: 20px; - margin-left: -23px; - padding-bottom: 2px; - } - - a { - text-decoration: none; - } - - h2, - h3, - h4 { - font-size: 34px; - line-height: 1.15; - letter-spacing: -0.015em; - margin: 53px 0 0; - } - - h4 { - font-size: 26px; - } -} -</style> diff --git a/WebSite/src/views/pdf/index.vue b/WebSite/src/views/pdf/index.vue deleted file mode 100644 index 532c9640..00000000 --- a/WebSite/src/views/pdf/index.vue +++ /dev/null @@ -1,12 +0,0 @@ -<template> - <div class="app-container"> - <aside style="margin-top:15px;"> - Here we use window.print() to implement the feature of downloading PDF. - </aside> - <router-link target="_blank" to="/pdf/download"> - <el-button type="primary"> - Click to download PDF - </el-button> - </router-link> - </div> -</template> diff --git a/WebSite/src/views/permission/components/SwitchRoles.vue b/WebSite/src/views/permission/components/SwitchRoles.vue deleted file mode 100644 index 743aa9a2..00000000 --- a/WebSite/src/views/permission/components/SwitchRoles.vue +++ /dev/null @@ -1,33 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:06 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-16 10:06:27 ---> -<template> - <div> - <div style="margin-bottom:15px;">Your roles: {{ roles }}</div> - Switch roles: - <el-radio-group v-model="switchRoles"> - <el-radio-button label="editor" /> - <el-radio-button label="admin" /> - </el-radio-group> - </div> -</template> - -<script> -export default { - computed: { - roles() { - return this.$store.getters.roles; - }, - switchRoles: { - get() { - return this.roles[0]; - }, - set(val) {} - } - } -}; -</script> diff --git a/WebSite/src/views/permission/directive.vue b/WebSite/src/views/permission/directive.vue deleted file mode 100644 index 204b857b..00000000 --- a/WebSite/src/views/permission/directive.vue +++ /dev/null @@ -1,131 +0,0 @@ -<template> - <div class="app-container"> - <switch-roles @change="handleRolesChange" /> - <div :key="key" style="margin-top:30px;"> - <div> - <span v-permission="['admin']" class="permission-alert"> - Only - <el-tag class="permission-tag" size="small">admin</el-tag> can see - this - </span> - <el-tag - v-permission="['admin']" - class="permission-sourceCode" - type="info" - > - v-permission="['admin']" - </el-tag> - </div> - - <div> - <span v-permission="['editor']" class="permission-alert"> - Only - <el-tag class="permission-tag" size="small">editor</el-tag> can see - this - </span> - <el-tag - v-permission="['editor']" - class="permission-sourceCode" - type="info" - > - v-permission="['editor']" - </el-tag> - </div> - - <div> - <span v-permission="['admin', 'editor']" class="permission-alert"> - Both - <el-tag class="permission-tag" size="small">admin</el-tag> and - <el-tag class="permission-tag" size="small">editor</el-tag> can see - this - </span> - <el-tag - v-permission="['admin', 'editor']" - class="permission-sourceCode" - type="info" - > - v-permission="['admin','editor']" - </el-tag> - </div> - </div> - - <div :key="'checkPermission' + key" style="margin-top:60px;"> - <aside> - In some cases, using v-permission will have no effect. For example: - Element-UI's Tab component or el-table-column and other scenes that - dynamically render dom. You can only do this with v-if. - <br /> - e.g. - </aside> - - <el-tabs type="border-card" style="width:550px;"> - <el-tab-pane v-if="checkPermission(['admin'])" label="Admin"> - Admin can see this - <el-tag class="permission-sourceCode" type="info"> - v-if="checkPermission(['admin'])" - </el-tag> - </el-tab-pane> - - <el-tab-pane v-if="checkPermission(['editor'])" label="Editor"> - Editor can see this - <el-tag class="permission-sourceCode" type="info"> - v-if="checkPermission(['editor'])" - </el-tag> - </el-tab-pane> - - <el-tab-pane - v-if="checkPermission(['admin', 'editor'])" - label="Admin-OR-Editor" - > - Both admin or editor can see this - <el-tag class="permission-sourceCode" type="info"> - v-if="checkPermission(['admin','editor'])" - </el-tag> - </el-tab-pane> - </el-tabs> - </div> - </div> -</template> - -<script> -import permission from "@/directive/permission/index.js"; // æƒé™åˆ¤æ–指令 -import checkPermission from "@/utils/permission"; // æƒé™åˆ¤æ–函数 -import SwitchRoles from "./components/SwitchRoles"; - -export default { - name: "DirectivePermission", - components: { SwitchRoles }, - directives: { permission }, - data() { - return { - key: 1 // ä¸ºäº†èƒ½æ¯æ¬¡åˆ‡æ¢æƒé™çš„æ—¶å€™é‡æ–°åˆå§‹åŒ–指令 - }; - }, - methods: { - checkPermission, - handleRolesChange() { - this.key++; - } - } -}; -</script> - -<style lang="scss" scoped> -.app-container { - /deep/ .permission-alert { - width: 320px; - margin-top: 15px; - background-color: #f0f9eb; - color: #67c23a; - padding: 8px 16px; - border-radius: 4px; - display: inline-block; - } - /deep/ .permission-sourceCode { - margin-left: 15px; - } - /deep/ .permission-tag { - background-color: #ecf5ff; - } -} -</style> diff --git a/WebSite/src/views/permission/page.vue b/WebSite/src/views/permission/page.vue deleted file mode 100644 index 07271722..00000000 --- a/WebSite/src/views/permission/page.vue +++ /dev/null @@ -1,19 +0,0 @@ -<template> - <div class="app-container"> - <switch-roles @change="handleRolesChange" /> - </div> -</template> - -<script> -import SwitchRoles from "./components/SwitchRoles"; - -export default { - name: "PagePermission", - components: { SwitchRoles }, - methods: { - handleRolesChange() { - this.$router.push({ path: "/permission/index?" + +new Date() }); - } - } -}; -</script> diff --git a/WebSite/src/views/permission/role.vue b/WebSite/src/views/permission/role.vue deleted file mode 100644 index dd0d4fdd..00000000 --- a/WebSite/src/views/permission/role.vue +++ /dev/null @@ -1,302 +0,0 @@ -<template> - <div class="app-container"> - <el-button type="primary" @click="handleAddRole">New Role</el-button> - - <el-table :data="rolesList" style="width: 100%;margin-top:30px;" border> - <el-table-column align="center" label="Role Key" width="220"> - <template slot-scope="scope"> - {{ scope.row.key }} - </template> - </el-table-column> - <el-table-column align="center" label="Role Name" width="220"> - <template slot-scope="scope"> - {{ scope.row.name }} - </template> - </el-table-column> - <el-table-column align="header-center" label="Description"> - <template slot-scope="scope"> - {{ scope.row.description }} - </template> - </el-table-column> - <el-table-column align="center" label="Operations"> - <template slot-scope="scope"> - <el-button type="primary" size="small" @click="handleEdit(scope)" - >Edit</el-button - > - <el-button type="danger" size="small" @click="handleDelete(scope)" - >Delete</el-button - > - </template> - </el-table-column> - </el-table> - - <el-dialog - :visible.sync="dialogVisible" - :title="dialogType === 'edit' ? 'Edit Role' : 'New Role'" - > - <el-form :model="role" label-width="80px" label-position="left"> - <el-form-item label="Name"> - <el-input v-model="role.name" placeholder="Role Name" /> - </el-form-item> - <el-form-item label="Desc"> - <el-input - v-model="role.description" - :autosize="{ minRows: 2, maxRows: 4 }" - type="textarea" - placeholder="Role Description" - /> - </el-form-item> - <el-form-item label="Menus"> - <el-tree - ref="tree" - :check-strictly="checkStrictly" - :data="routesData" - :props="defaultProps" - show-checkbox - node-key="path" - class="permission-tree" - /> - </el-form-item> - </el-form> - <div style="text-align:right;"> - <el-button type="danger" @click="dialogVisible = false" - >Cancel</el-button - > - <el-button type="primary" @click="confirmRole">Confirm</el-button> - </div> - </el-dialog> - </div> -</template> - -<script> -import path from "path"; -import { deepClone } from "@/utils"; -import { - getRoutes, - getRoles, - addRole, - deleteRole, - updateRole -} from "@/api/role"; - -const defaultRole = { - key: "", - name: "", - description: "", - routes: [] -}; - -export default { - data() { - return { - role: Object.assign({}, defaultRole), - routes: [], - rolesList: [], - dialogVisible: false, - dialogType: "new", - checkStrictly: false, - defaultProps: { - children: "children", - label: "title" - } - }; - }, - computed: { - routesData() { - return this.routes; - } - }, - created() { - // Mock: get all routes and roles list from server - this.getRoutes(); - this.getRoles(); - }, - methods: { - async getRoutes() { - const res = await getRoutes(); - this.serviceRoutes = res.data; - this.routes = this.generateRoutes(res.data); - }, - async getRoles() { - const res = await getRoles(); - this.rolesList = res.data; - }, - - // Reshape the routes structure so that it looks the same as the sidebar - generateRoutes(routes, basePath = "/") { - const res = []; - - for (let route of routes) { - // skip some route - if (route.hidden) { - continue; - } - - const onlyOneShowingChild = this.onlyOneShowingChild( - route.children, - route - ); - - if (route.children && onlyOneShowingChild && !route.alwaysShow) { - route = onlyOneShowingChild; - } - - const data = { - path: path.resolve(basePath, route.path), - title: route.meta && route.meta.title - }; - - // recursive child routes - if (route.children) { - data.children = this.generateRoutes(route.children, data.path); - } - res.push(data); - } - return res; - }, - generateArr(routes) { - let data = []; - routes.forEach(route => { - data.push(route); - if (route.children) { - const temp = this.generateArr(route.children); - if (temp.length > 0) { - data = [...data, ...temp]; - } - } - }); - return data; - }, - handleAddRole() { - this.role = Object.assign({}, defaultRole); - if (this.$refs.tree) { - this.$refs.tree.setCheckedNodes([]); - } - this.dialogType = "new"; - this.dialogVisible = true; - }, - handleEdit(scope) { - this.dialogType = "edit"; - this.dialogVisible = true; - this.checkStrictly = true; - this.role = deepClone(scope.row); - this.$nextTick(() => { - const routes = this.generateRoutes(this.role.routes); - this.$refs.tree.setCheckedNodes(this.generateArr(routes)); - // set checked state of a node not affects its father and child nodes - this.checkStrictly = false; - }); - }, - handleDelete({ $index, row }) { - this.$confirm("Confirm to remove the role?", "Warning", { - confirmButtonText: "Confirm", - cancelButtonText: "Cancel", - type: "warning" - }) - .then(async () => { - await deleteRole(row.key); - this.rolesList.splice($index, 1); - this.$message({ - type: "success", - message: "Delete succed!" - }); - }) - .catch(err => { - console.error(err); - }); - }, - generateTree(routes, basePath = "/", checkedKeys) { - const res = []; - - for (const route of routes) { - const routePath = path.resolve(basePath, route.path); - - // recursive child routes - if (route.children) { - route.children = this.generateTree( - route.children, - routePath, - checkedKeys - ); - } - - if ( - checkedKeys.includes(routePath) || - (route.children && route.children.length >= 1) - ) { - res.push(route); - } - } - return res; - }, - async confirmRole() { - const isEdit = this.dialogType === "edit"; - - const checkedKeys = this.$refs.tree.getCheckedKeys(); - this.role.routes = this.generateTree( - deepClone(this.serviceRoutes), - "/", - checkedKeys - ); - - if (isEdit) { - await updateRole(this.role.key, this.role); - for (let index = 0; index < this.rolesList.length; index++) { - if (this.rolesList[index].key === this.role.key) { - this.rolesList.splice(index, 1, Object.assign({}, this.role)); - break; - } - } - } else { - const { data } = await addRole(this.role); - this.role.key = data.key; - this.rolesList.push(this.role); - } - - const { description, key, name } = this.role; - this.dialogVisible = false; - this.$notify({ - title: "Success", - dangerouslyUseHTMLString: true, - message: ` - <div>Role Key: ${key}</div> - <div>Role Name: ${name}</div> - <div>Description: ${description}</div> - `, - type: "success" - }); - }, - // reference: src/view/layout/components/Sidebar/SidebarItem.vue - onlyOneShowingChild(children = [], parent) { - let onlyOneChild = null; - const showingChildren = children.filter(item => !item.hidden); - - // When there is only one child route, the child route is displayed by default - if (showingChildren.length === 1) { - onlyOneChild = showingChildren[0]; - onlyOneChild.path = path.resolve(parent.path, onlyOneChild.path); - return onlyOneChild; - } - - // Show parent if there are no child route to display - if (showingChildren.length === 0) { - onlyOneChild = { ...parent, path: "", noShowingChildren: true }; - return onlyOneChild; - } - - return false; - } - } -}; -</script> - -<style lang="scss" scoped> -.app-container { - .roles-table { - margin-top: 30px; - } - .permission-tree { - margin-bottom: 30px; - } -} -</style> diff --git a/WebSite/src/views/profile/components/Account.vue b/WebSite/src/views/profile/components/Account.vue deleted file mode 100644 index 77a7b2b7..00000000 --- a/WebSite/src/views/profile/components/Account.vue +++ /dev/null @@ -1,38 +0,0 @@ -<template> - <el-form> - <el-form-item label="Name"> - <el-input v-model.trim="user.name" /> - </el-form-item> - <el-form-item label="Email"> - <el-input v-model.trim="user.email" /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="submit">Update</el-button> - </el-form-item> - </el-form> -</template> - -<script> -export default { - props: { - user: { - type: Object, - default: () => { - return { - name: "", - email: "" - }; - } - } - }, - methods: { - submit() { - this.$message({ - message: "User information has been updated successfully", - type: "success", - duration: 5 * 1000 - }); - } - } -}; -</script> diff --git a/WebSite/src/views/profile/components/Activity.vue b/WebSite/src/views/profile/components/Activity.vue deleted file mode 100644 index 679ae25c..00000000 --- a/WebSite/src/views/profile/components/Activity.vue +++ /dev/null @@ -1,202 +0,0 @@ -<template> - <div class="user-activity"> - <div class="post"> - <div class="user-block"> - <img - class="img-circle" - :src=" - 'https://wpimg.wallstcn.com/57ed425a-c71e-4201-9428-68760c0537c4.jpg' + - avatarPrefix - " - /> - <span class="username text-muted">Iron Man</span> - <span class="description">Shared publicly - 7:30 PM today</span> - </div> - <p> - Lorem ipsum represents a long-held tradition for designers, typographers - and the like. Some people hate it and argue for its demise, but others - ignore the hate as they create awesome tools to help create filler text - for everyone from bacon lovers to Charlie Sheen fans. - </p> - <ul class="list-inline"> - <li> - <span class="link-black text-sm"> - <i class="el-icon-share" /> - Share - </span> - </li> - <li> - <span class="link-black text-sm"> - <svg-icon icon-class="like" /> - Like - </span> - </li> - </ul> - </div> - <div class="post"> - <div class="user-block"> - <img - class="img-circle" - :src=" - 'https://wpimg.wallstcn.com/9e2a5d0a-bd5b-457f-ac8e-86554616c87b.jpg' + - avatarPrefix - " - /> - <span class="username text-muted">Captain American</span> - <span class="description">Sent you a message - yesterday</span> - </div> - <p> - Lorem ipsum represents a long-held tradition for designers, typographers - and the like. Some people hate it and argue for its demise, but others - ignore the hate as they create awesome tools to help create filler text - for everyone from bacon lovers to Charlie Sheen fans. - </p> - <ul class="list-inline"> - <li> - <span class="link-black text-sm"> - <i class="el-icon-share" /> - Share - </span> - </li> - <li> - <span class="link-black text-sm"> - <svg-icon icon-class="like" /> - Like - </span> - </li> - </ul> - </div> - <div class="post"> - <div class="user-block"> - <img - class="img-circle" - :src=" - 'https://wpimg.wallstcn.com/fb57f689-e1ab-443c-af12-8d4066e202e2.jpg' + - avatarPrefix - " - /> - <span class="username">Spider Man</span> - <span class="description">Posted 4 photos - 2 days ago</span> - </div> - <div class="user-images"> - <el-carousel :interval="6000" type="card" height="220px"> - <el-carousel-item v-for="item in carouselImages" :key="item"> - <img :src="item + carouselPrefix" class="image" /> - </el-carousel-item> - </el-carousel> - </div> - <ul class="list-inline"> - <li> - <span class="link-black text-sm" - ><i class="el-icon-share" /> Share</span - > - </li> - <li> - <span class="link-black text-sm"> - <svg-icon icon-class="like" /> Like</span - > - </li> - </ul> - </div> - </div> -</template> - -<script> -const avatarPrefix = "?imageView2/1/w/80/h/80"; -const carouselPrefix = "?imageView2/2/h/440"; - -export default { - data() { - return { - carouselImages: [ - "https://wpimg.wallstcn.com/9679ffb0-9e0b-4451-9916-e21992218054.jpg", - "https://wpimg.wallstcn.com/bcce3734-0837-4b9f-9261-351ef384f75a.jpg", - "https://wpimg.wallstcn.com/d1d7b033-d75e-4cd6-ae39-fcd5f1c0a7c5.jpg", - "https://wpimg.wallstcn.com/50530061-851b-4ca5-9dc5-2fead928a939.jpg" - ], - avatarPrefix, - carouselPrefix - }; - } -}; -</script> - -<style lang="scss" scoped> -.user-activity { - .user-block { - .username, - .description { - display: block; - margin-left: 50px; - padding: 2px 0; - } - - .username { - font-size: 16px; - color: #000; - } - - :after { - clear: both; - } - - .img-circle { - border-radius: 50%; - width: 40px; - height: 40px; - float: left; - } - - span { - font-weight: 500; - font-size: 12px; - } - } - - .post { - font-size: 14px; - border-bottom: 1px solid #d2d6de; - margin-bottom: 15px; - padding-bottom: 15px; - color: #666; - - .image { - width: 100%; - height: 100%; - } - - .user-images { - padding-top: 20px; - } - } - - .list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; - - li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; - font-size: 13px; - } - - .link-black { - &:hover, - &:focus { - color: #999; - } - } - } -} - -.box-center { - margin: 0 auto; - display: table; -} - -.text-muted { - color: #777; -} -</style> diff --git a/WebSite/src/views/profile/components/Timeline.vue b/WebSite/src/views/profile/components/Timeline.vue deleted file mode 100644 index b3c2b5df..00000000 --- a/WebSite/src/views/profile/components/Timeline.vue +++ /dev/null @@ -1,48 +0,0 @@ -<template> - <div class="block"> - <el-timeline> - <el-timeline-item - v-for="(item, index) of timeline" - :key="index" - :timestamp="item.timestamp" - placement="top" - > - <el-card> - <h4>{{ item.title }}</h4> - <p>{{ item.content }}</p> - </el-card> - </el-timeline-item> - </el-timeline> - </div> -</template> - -<script> -export default { - data() { - return { - timeline: [ - { - timestamp: "2019/4/20", - title: "Update Github template", - content: "PanJiaChen committed 2019/4/20 20:46" - }, - { - timestamp: "2019/4/21", - title: "Update Github template", - content: "PanJiaChen committed 2019/4/21 20:46" - }, - { - timestamp: "2019/4/22", - title: "Build Template", - content: "PanJiaChen committed 2019/4/22 20:46" - }, - { - timestamp: "2019/4/23", - title: "Release New Version", - content: "PanJiaChen committed 2019/4/23 20:46" - } - ] - }; - } -}; -</script> diff --git a/WebSite/src/views/profile/components/UserCard.vue b/WebSite/src/views/profile/components/UserCard.vue deleted file mode 100644 index 49055882..00000000 --- a/WebSite/src/views/profile/components/UserCard.vue +++ /dev/null @@ -1,145 +0,0 @@ -<template> - <el-card style="margin-bottom:20px;"> - <div slot="header" class="clearfix"> - <span>About me</span> - </div> - - <div class="user-profile"> - <div class="box-center"> - <pan-thumb - :image="user.avatar" - :height="'100px'" - :width="'100px'" - :hoverable="false" - > - <div>Hello</div> - {{ user.role }} - </pan-thumb> - </div> - <div class="box-center"> - <div class="user-name text-center">{{ user.name }}</div> - <div class="user-role text-center text-muted"> - {{ user.role | uppercaseFirst }} - </div> - </div> - </div> - - <div class="user-bio"> - <div class="user-education user-bio-section"> - <div class="user-bio-section-header"> - <svg-icon icon-class="education" /><span>Education</span> - </div> - <div class="user-bio-section-body"> - <div class="text-muted"> - JS in Computer Science from the University of Technology - </div> - </div> - </div> - - <div class="user-skills user-bio-section"> - <div class="user-bio-section-header"> - <svg-icon icon-class="skill" /><span>Skills</span> - </div> - <div class="user-bio-section-body"> - <div class="progress-item"> - <span>Vue</span> - <el-progress :percentage="70" /> - </div> - <div class="progress-item"> - <span>JavaScript</span> - <el-progress :percentage="18" /> - </div> - <div class="progress-item"> - <span>Css</span> - <el-progress :percentage="12" /> - </div> - <div class="progress-item"> - <span>ESLint</span> - <el-progress :percentage="100" status="success" /> - </div> - </div> - </div> - </div> - </el-card> -</template> - -<script> -import PanThumb from "@/components/PanThumb"; - -export default { - components: { PanThumb }, - props: { - user: { - type: Object, - default: () => { - return { - name: "", - email: "", - avatar: "", - roles: "" - }; - } - } - } -}; -</script> - -<style lang="scss" scoped> -.box-center { - margin: 0 auto; - display: table; -} - -.text-muted { - color: #777; -} - -.user-profile { - .user-name { - font-weight: bold; - } - - .box-center { - padding-top: 10px; - } - - .user-role { - padding-top: 10px; - font-weight: 400; - font-size: 14px; - } - - .box-social { - padding-top: 30px; - - .el-table { - border-top: 1px solid #dfe6ec; - } - } - - .user-follow { - padding-top: 20px; - } -} - -.user-bio { - margin-top: 20px; - color: #606266; - - span { - padding-left: 4px; - } - - .user-bio-section { - font-size: 14px; - padding: 15px 0; - - .user-bio-section-header { - border-bottom: 1px solid #dfe6ec; - padding-bottom: 10px; - margin-bottom: 10px; - font-weight: bold; - } - } -} -</style> diff --git a/WebSite/src/views/profile/index.vue b/WebSite/src/views/profile/index.vue deleted file mode 100644 index 326985f8..00000000 --- a/WebSite/src/views/profile/index.vue +++ /dev/null @@ -1,62 +0,0 @@ -<template> - <div class="app-container"> - <div v-if="user"> - <el-row :gutter="20"> - <el-col :span="6" :xs="24"> - <user-card :user="user" /> - </el-col> - - <el-col :span="18" :xs="24"> - <el-card> - <el-tabs v-model="activeTab"> - <el-tab-pane label="Activity" name="activity"> - <activity /> - </el-tab-pane> - <el-tab-pane label="Timeline" name="timeline"> - <timeline /> - </el-tab-pane> - <el-tab-pane label="Account" name="account"> - <account :user="user" /> - </el-tab-pane> - </el-tabs> - </el-card> - </el-col> - </el-row> - </div> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import UserCard from "./components/UserCard"; -import Activity from "./components/Activity"; -import Timeline from "./components/Timeline"; -import Account from "./components/Account"; - -export default { - name: "Profile", - components: { UserCard, Activity, Timeline, Account }, - data() { - return { - user: {}, - activeTab: "activity" - }; - }, - computed: { - ...mapGetters(["name", "avatar", "roles"]) - }, - created() { - this.getUser(); - }, - methods: { - getUser() { - this.user = { - name: this.name, - role: this.roles.join(" | "), - email: "admin@test.com", - avatar: this.avatar - }; - } - } -}; -</script> diff --git a/WebSite/src/views/qiniu/upload.vue b/WebSite/src/views/qiniu/upload.vue deleted file mode 100644 index 8b195c88..00000000 --- a/WebSite/src/views/qiniu/upload.vue +++ /dev/null @@ -1,47 +0,0 @@ -<template> - <el-upload - :data="dataObj" - :multiple="true" - :before-upload="beforeUpload" - action="https://upload.qbox.me" - drag - > - <i class="el-icon-upload" /> - <div class="el-upload__text">将文件拖到æ¤å¤„,或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> -</template> - -<script> -import { getToken } from "@/api/qiniu"; -// 获å–七牛token åŽç«¯é€šè¿‡Access Key,Secret Key,bucketç‰ç”Ÿæˆtoken -// 七牛官方sdk https://developer.qiniu.com/sdk#official-sdk - -export default { - data() { - return { - dataObj: { token: "", key: "" }, - image_uri: [], - fileList: [] - }; - }, - methods: { - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - resolve(true); - }) - .catch(err => { - console.log(err); - reject(false); - }); - }); - } - } -}; -</script> diff --git a/WebSite/src/views/redirect/index.vue b/WebSite/src/views/redirect/index.vue deleted file mode 100644 index 9357ce21..00000000 --- a/WebSite/src/views/redirect/index.vue +++ /dev/null @@ -1,12 +0,0 @@ -<script> -export default { - created() { - const { params, query } = this.$route; - const { path } = params; - this.$router.replace({ path: "/" + path, query }); - }, - render: function(h) { - return h(); // avoid warning message - } -}; -</script> diff --git a/WebSite/src/views/tab/components/TabPane.vue b/WebSite/src/views/tab/components/TabPane.vue deleted file mode 100644 index 1d61e65d..00000000 --- a/WebSite/src/views/tab/components/TabPane.vue +++ /dev/null @@ -1,108 +0,0 @@ -<template> - <el-table :data="list" border fit highlight-current-row style="width: 100%"> - <el-table-column - v-loading="loading" - align="center" - label="ID" - width="65" - element-loading-text="请给我点时间ï¼" - > - <template slot-scope="scope"> - <span>{{ scope.row.id }}</span> - </template> - </el-table-column> - - <el-table-column width="180px" align="center" label="Date"> - <template slot-scope="scope"> - <span>{{ - scope.row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") - }}</span> - </template> - </el-table-column> - - <el-table-column min-width="300px" label="Title"> - <template slot-scope="{ row }"> - <span>{{ row.title }}</span> - <el-tag>{{ row.type }}</el-tag> - </template> - </el-table-column> - - <el-table-column width="110px" align="center" label="Author"> - <template slot-scope="scope"> - <span>{{ scope.row.author }}</span> - </template> - </el-table-column> - - <el-table-column width="120px" label="Importance"> - <template slot-scope="scope"> - <svg-icon - v-for="n in +scope.row.importance" - :key="n" - icon-class="star" - /> - </template> - </el-table-column> - - <el-table-column align="center" label="Readings" width="95"> - <template slot-scope="scope"> - <span>{{ scope.row.pageviews }}</span> - </template> - </el-table-column> - - <el-table-column class-name="status-col" label="Status" width="110"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - </el-table> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - } - }, - props: { - type: { - type: String, - default: "CN" - } - }, - data() { - return { - list: null, - listQuery: { - page: 1, - limit: 5, - type: this.type, - sort: "+id" - }, - loading: false - }; - }, - created() { - this.getList(); - }, - methods: { - getList() { - this.loading = true; - this.$emit("create"); // for test - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.loading = false; - }); - } - } -}; -</script> diff --git a/WebSite/src/views/tab/index.vue b/WebSite/src/views/tab/index.vue deleted file mode 100644 index 7857ab4b..00000000 --- a/WebSite/src/views/tab/index.vue +++ /dev/null @@ -1,71 +0,0 @@ -<template> - <div class="tab-container"> - <el-tag>mounted times :{{ createdTimes }}</el-tag> - <el-alert - :closable="false" - style="width:200px;display:inline-block;vertical-align: middle;margin-left:30px;" - title="Tab with keep-alive" - type="success" - /> - <el-tabs v-model="activeName" style="margin-top:15px;" type="border-card"> - <el-tab-pane - v-for="item in tabMapOptions" - :key="item.key" - :label="item.label" - :name="item.key" - > - <keep-alive> - <tab-pane - v-if="activeName == item.key" - :type="item.key" - @create="showCreatedTimes" - /> - </keep-alive> - </el-tab-pane> - </el-tabs> - </div> -</template> - -<script> -import tabPane from "./components/TabPane"; - -export default { - name: "Tab", - components: { tabPane }, - data() { - return { - tabMapOptions: [ - { label: "China", key: "CN" }, - { label: "USA", key: "US" }, - { label: "Japan", key: "JP" }, - { label: "Eurozone", key: "EU" } - ], - activeName: "CN", - createdTimes: 0 - }; - }, - watch: { - activeName(val) { - this.$router.push(`${this.$route.path}?tab=${val}`); - } - }, - created() { - // init the default selected tab - const tab = this.$route.query.tab; - if (tab) { - this.activeName = tab; - } - }, - methods: { - showCreatedTimes() { - this.createdTimes = this.createdTimes + 1; - } - } -}; -</script> - -<style scoped> -.tab-container { - margin: 30px; -} -</style> diff --git a/WebSite/src/views/table/complex-table.vue b/WebSite/src/views/table/complex-table.vue deleted file mode 100644 index 3d4cf900..00000000 --- a/WebSite/src/views/table/complex-table.vue +++ /dev/null @@ -1,567 +0,0 @@ -<template> - <div class="app-container"> - <div class="filter-container"> - <el-input - v-model="listQuery.title" - placeholder="Title" - style="width: 200px;" - class="filter-item" - @keyup.enter.native="handleFilter" - /> - <el-select - v-model="listQuery.importance" - placeholder="Imp" - clearable - style="width: 90px" - class="filter-item" - > - <el-option - v-for="item in importanceOptions" - :key="item" - :label="item" - :value="item" - /> - </el-select> - <el-select - v-model="listQuery.type" - placeholder="Type" - clearable - class="filter-item" - style="width: 130px" - > - <el-option - v-for="item in calendarTypeOptions" - :key="item.key" - :label="item.display_name + '(' + item.key + ')'" - :value="item.key" - /> - </el-select> - <el-select - v-model="listQuery.sort" - style="width: 140px" - class="filter-item" - @change="handleFilter" - > - <el-option - v-for="item in sortOptions" - :key="item.key" - :label="item.label" - :value="item.key" - /> - </el-select> - <el-button - v-waves - class="filter-item" - type="primary" - icon="el-icon-search" - @click="handleFilter" - > - Search - </el-button> - <el-button - class="filter-item" - style="margin-left: 10px;" - type="primary" - icon="el-icon-edit" - @click="handleCreate" - > - Add - </el-button> - <el-button - v-waves - :loading="downloadLoading" - class="filter-item" - type="primary" - icon="el-icon-download" - @click="handleDownload" - > - Export - </el-button> - <el-checkbox - v-model="showReviewer" - class="filter-item" - style="margin-left:15px;" - @change="tableKey = tableKey + 1" - > - reviewer - </el-checkbox> - </div> - - <el-table - :key="tableKey" - v-loading="listLoading" - :data="list" - border - fit - highlight-current-row - style="width: 100%;" - @sort-change="sortChange" - > - <el-table-column - label="ID" - prop="id" - sortable="custom" - align="center" - width="80" - :class-name="getSortClass('id')" - > - <template slot-scope="{ row }"> - <span>{{ row.id }}</span> - </template> - </el-table-column> - <el-table-column label="Date" width="150px" align="center"> - <template slot-scope="{ row }"> - <span>{{ row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") }}</span> - </template> - </el-table-column> - <el-table-column label="Title" min-width="150px"> - <template slot-scope="{ row }"> - <span class="link-type" @click="handleUpdate(row)">{{ - row.title - }}</span> - <el-tag>{{ row.type | typeFilter }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Author" width="110px" align="center"> - <template slot-scope="{ row }"> - <span>{{ row.author }}</span> - </template> - </el-table-column> - <el-table-column - v-if="showReviewer" - label="Reviewer" - width="110px" - align="center" - > - <template slot-scope="{ row }"> - <span style="color:red;">{{ row.reviewer }}</span> - </template> - </el-table-column> - <el-table-column label="Imp" width="80px"> - <template slot-scope="{ row }"> - <svg-icon - v-for="n in +row.importance" - :key="n" - icon-class="star" - class="meta-item__icon" - /> - </template> - </el-table-column> - <el-table-column label="Readings" align="center" width="95"> - <template slot-scope="{ row }"> - <span - v-if="row.pageviews" - class="link-type" - @click="handleFetchPv(row.pageviews)" - >{{ row.pageviews }}</span - > - <span v-else>0</span> - </template> - </el-table-column> - <el-table-column label="Status" class-name="status-col" width="100"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - <el-table-column - label="Actions" - align="center" - width="230" - class-name="small-padding fixed-width" - > - <template slot-scope="{ row, $index }"> - <el-button type="primary" size="mini" @click="handleUpdate(row)"> - Edit - </el-button> - <el-button - v-if="row.status != 'published'" - size="mini" - type="success" - @click="handleModifyStatus(row, 'published')" - > - Publish - </el-button> - <el-button - v-if="row.status != 'draft'" - size="mini" - @click="handleModifyStatus(row, 'draft')" - > - Draft - </el-button> - <el-button - v-if="row.status != 'deleted'" - size="mini" - type="danger" - @click="handleDelete(row, $index)" - > - Delete - </el-button> - </template> - </el-table-column> - </el-table> - - <pagination - v-show="total > 0" - :total="total" - :page.sync="listQuery.page" - :limit.sync="listQuery.limit" - @pagination="getList" - /> - - <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible"> - <el-form - ref="dataForm" - :rules="rules" - :model="temp" - label-position="left" - label-width="70px" - style="width: 400px; margin-left:50px;" - > - <el-form-item label="Type" prop="type"> - <el-select - v-model="temp.type" - class="filter-item" - placeholder="Please select" - > - <el-option - v-for="item in calendarTypeOptions" - :key="item.key" - :label="item.display_name" - :value="item.key" - /> - </el-select> - </el-form-item> - <el-form-item label="Date" prop="timestamp"> - <el-date-picker - v-model="temp.timestamp" - type="datetime" - placeholder="Please pick a date" - /> - </el-form-item> - <el-form-item label="Title" prop="title"> - <el-input v-model="temp.title" /> - </el-form-item> - <el-form-item label="Status"> - <el-select - v-model="temp.status" - class="filter-item" - placeholder="Please select" - > - <el-option - v-for="item in statusOptions" - :key="item" - :label="item" - :value="item" - /> - </el-select> - </el-form-item> - <el-form-item label="Imp"> - <el-rate - v-model="temp.importance" - :colors="['#99A9BF', '#F7BA2A', '#FF9900']" - :max="3" - style="margin-top:8px;" - /> - </el-form-item> - <el-form-item label="Remark"> - <el-input - v-model="temp.remark" - :autosize="{ minRows: 2, maxRows: 4 }" - type="textarea" - placeholder="Please input" - /> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button @click="dialogFormVisible = false"> - Cancel - </el-button> - <el-button - type="primary" - @click="dialogStatus === 'create' ? createData() : updateData()" - > - Confirm - </el-button> - </div> - </el-dialog> - - <el-dialog :visible.sync="dialogPvVisible" title="Reading statistics"> - <el-table - :data="pvData" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column prop="key" label="Channel" /> - <el-table-column prop="pv" label="Pv" /> - </el-table> - <span slot="footer" class="dialog-footer"> - <el-button type="primary" @click="dialogPvVisible = false" - >Confirm</el-button - > - </span> - </el-dialog> - </div> -</template> - -<script> -import { - fetchList, - fetchPv, - createArticle, - updateArticle -} from "@/api/article"; -import waves from "@/directive/waves"; // waves directive -import { parseTime } from "@/utils"; -import Pagination from "@/components/Pagination"; // secondary package based on el-pagination - -const calendarTypeOptions = [ - { key: "CN", display_name: "China" }, - { key: "US", display_name: "USA" }, - { key: "JP", display_name: "Japan" }, - { key: "EU", display_name: "Eurozone" } -]; - -// arr to obj, such as { CN : "China", US : "USA" } -const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => { - acc[cur.key] = cur.display_name; - return acc; -}, {}); - -export default { - name: "ComplexTable", - components: { Pagination }, - directives: { waves }, - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - }, - typeFilter(type) { - return calendarTypeKeyValue[type]; - } - }, - data() { - return { - tableKey: 0, - list: null, - total: 0, - listLoading: true, - listQuery: { - page: 1, - limit: 20, - importance: undefined, - title: undefined, - type: undefined, - sort: "+id" - }, - importanceOptions: [1, 2, 3], - calendarTypeOptions, - sortOptions: [ - { label: "ID Ascending", key: "+id" }, - { label: "ID Descending", key: "-id" } - ], - statusOptions: ["published", "draft", "deleted"], - showReviewer: false, - temp: { - id: undefined, - importance: 1, - remark: "", - timestamp: new Date(), - title: "", - type: "", - status: "published" - }, - dialogFormVisible: false, - dialogStatus: "", - textMap: { - update: "Edit", - create: "Create" - }, - dialogPvVisible: false, - pvData: [], - rules: { - type: [ - { required: true, message: "type is required", trigger: "change" } - ], - timestamp: [ - { - type: "date", - required: true, - message: "timestamp is required", - trigger: "change" - } - ], - title: [ - { required: true, message: "title is required", trigger: "blur" } - ] - }, - downloadLoading: false - }; - }, - created() { - this.getList(); - }, - methods: { - getList() { - this.listLoading = true; - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.total = response.data.total; - - // Just to simulate the time of the request - setTimeout(() => { - this.listLoading = false; - }, 1.5 * 1000); - }); - }, - handleFilter() { - this.listQuery.page = 1; - this.getList(); - }, - handleModifyStatus(row, status) { - this.$message({ - message: "æ“作Success", - type: "success" - }); - row.status = status; - }, - sortChange(data) { - const { prop, order } = data; - if (prop === "id") { - this.sortByID(order); - } - }, - sortByID(order) { - if (order === "ascending") { - this.listQuery.sort = "+id"; - } else { - this.listQuery.sort = "-id"; - } - this.handleFilter(); - }, - resetTemp() { - this.temp = { - id: undefined, - importance: 1, - remark: "", - timestamp: new Date(), - title: "", - status: "published", - type: "" - }; - }, - handleCreate() { - this.resetTemp(); - this.dialogStatus = "create"; - this.dialogFormVisible = true; - this.$nextTick(() => { - this.$refs["dataForm"].clearValidate(); - }); - }, - createData() { - this.$refs["dataForm"].validate(valid => { - if (valid) { - this.temp.id = parseInt(Math.random() * 100) + 1024; // mock a id - this.temp.author = "vue-element-admin"; - createArticle(this.temp).then(() => { - this.list.unshift(this.temp); - this.dialogFormVisible = false; - this.$notify({ - title: "Success", - message: "Created Successfully", - type: "success", - duration: 2000 - }); - }); - } - }); - }, - handleUpdate(row) { - this.temp = Object.assign({}, row); // copy obj - this.temp.timestamp = new Date(this.temp.timestamp); - this.dialogStatus = "update"; - this.dialogFormVisible = true; - this.$nextTick(() => { - this.$refs["dataForm"].clearValidate(); - }); - }, - updateData() { - this.$refs["dataForm"].validate(valid => { - if (valid) { - const tempData = Object.assign({}, this.temp); - tempData.timestamp = +new Date(tempData.timestamp); // change Thu Nov 30 2017 16:41:05 GMT+0800 (CST) to 1512031311464 - updateArticle(tempData).then(() => { - const index = this.list.findIndex(v => v.id === this.temp.id); - this.list.splice(index, 1, this.temp); - this.dialogFormVisible = false; - this.$notify({ - title: "Success", - message: "Update Successfully", - type: "success", - duration: 2000 - }); - }); - } - }); - }, - handleDelete(row, index) { - this.$notify({ - title: "Success", - message: "Delete Successfully", - type: "success", - duration: 2000 - }); - this.list.splice(index, 1); - }, - handleFetchPv(pv) { - fetchPv(pv).then(response => { - this.pvData = response.data.pvData; - this.dialogPvVisible = true; - }); - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const tHeader = ["timestamp", "title", "type", "importance", "status"]; - const filterVal = [ - "timestamp", - "title", - "type", - "importance", - "status" - ]; - const data = this.formatJson(filterVal); - excel.export_json_to_excel({ - header: tHeader, - data, - filename: "table-list" - }); - this.downloadLoading = false; - }); - }, - formatJson(filterVal) { - return this.list.map(v => - filterVal.map(j => { - if (j === "timestamp") { - return parseTime(v[j]); - } else { - return v[j]; - } - }) - ); - }, - getSortClass: function(key) { - const sort = this.listQuery.sort; - return sort === `+${key}` ? "ascending" : "descending"; - } - } -}; -</script> diff --git a/WebSite/src/views/table/drag-table.vue b/WebSite/src/views/table/drag-table.vue deleted file mode 100644 index 78005680..00000000 --- a/WebSite/src/views/table/drag-table.vue +++ /dev/null @@ -1,167 +0,0 @@ -<template> - <div class="app-container"> - <!-- Note that row-key is necessary to get a correct row order. --> - <el-table - ref="dragTable" - v-loading="listLoading" - :data="list" - row-key="id" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column align="center" label="ID" width="65"> - <template slot-scope="{ row }"> - <span>{{ row.id }}</span> - </template> - </el-table-column> - - <el-table-column width="180px" align="center" label="Date"> - <template slot-scope="{ row }"> - <span>{{ row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") }}</span> - </template> - </el-table-column> - - <el-table-column min-width="300px" label="Title"> - <template slot-scope="{ row }"> - <span>{{ row.title }}</span> - </template> - </el-table-column> - - <el-table-column width="110px" align="center" label="Author"> - <template slot-scope="{ row }"> - <span>{{ row.author }}</span> - </template> - </el-table-column> - - <el-table-column width="100px" label="Importance"> - <template slot-scope="{ row }"> - <svg-icon - v-for="n in +row.importance" - :key="n" - icon-class="star" - class="icon-star" - /> - </template> - </el-table-column> - - <el-table-column align="center" label="Readings" width="95"> - <template slot-scope="{ row }"> - <span>{{ row.pageviews }}</span> - </template> - </el-table-column> - - <el-table-column class-name="status-col" label="Status" width="110"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - - <el-table-column align="center" label="Drag" width="80"> - <template slot-scope="{}"> - <svg-icon class="drag-handler" icon-class="drag" /> - </template> - </el-table-column> - </el-table> - <div class="show-d"><el-tag>The default order :</el-tag> {{ oldList }}</div> - <div class="show-d"> - <el-tag>The after dragging order :</el-tag> {{ newList }} - </div> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; -import Sortable from "sortablejs"; - -export default { - name: "DragTable", - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - } - }, - data() { - return { - list: null, - total: null, - listLoading: true, - listQuery: { - page: 1, - limit: 10 - }, - sortable: null, - oldList: [], - newList: [] - }; - }, - created() { - this.getList(); - }, - methods: { - async getList() { - this.listLoading = true; - const { data } = await fetchList(this.listQuery); - this.list = data.items; - this.total = data.total; - this.listLoading = false; - this.oldList = this.list.map(v => v.id); - this.newList = this.oldList.slice(); - this.$nextTick(() => { - this.setSort(); - }); - }, - setSort() { - const el = this.$refs.dragTable.$el.querySelectorAll( - ".el-table__body-wrapper > table > tbody" - )[0]; - this.sortable = Sortable.create(el, { - ghostClass: "sortable-ghost", // Class name for the drop placeholder, - setData: function(dataTransfer) { - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - dataTransfer.setData("Text", ""); - }, - onEnd: evt => { - const targetRow = this.list.splice(evt.oldIndex, 1)[0]; - this.list.splice(evt.newIndex, 0, targetRow); - - // for show the changes, you can delete in you code - const tempIndex = this.newList.splice(evt.oldIndex, 1)[0]; - this.newList.splice(evt.newIndex, 0, tempIndex); - } - }); - } - } -}; -</script> - -<style> -.sortable-ghost { - opacity: 0.8; - color: #fff !important; - background: #42b983 !important; -} -</style> - -<style scoped> -.icon-star { - margin-right: 2px; -} -.drag-handler { - width: 20px; - height: 20px; - cursor: pointer; -} -.show-d { - margin-top: 15px; -} -</style> diff --git a/WebSite/src/views/table/dynamic-table/components/FixedThead.vue b/WebSite/src/views/table/dynamic-table/components/FixedThead.vue deleted file mode 100644 index 1bfa5d50..00000000 --- a/WebSite/src/views/table/dynamic-table/components/FixedThead.vue +++ /dev/null @@ -1,70 +0,0 @@ -<template> - <div class="app-container"> - <div class="filter-container"> - <el-checkbox-group v-model="checkboxVal"> - <el-checkbox label="apple"> - apple - </el-checkbox> - <el-checkbox label="banana"> - banana - </el-checkbox> - <el-checkbox label="orange"> - orange - </el-checkbox> - </el-checkbox-group> - </div> - - <el-table - :key="key" - :data="tableData" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column prop="name" label="fruitName" width="180" /> - <el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit"> - <template slot-scope="scope"> - {{ scope.row[fruit] }} - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -const defaultFormThead = ["apple", "banana"]; - -export default { - data() { - return { - tableData: [ - { - name: "fruit-1", - apple: "apple-10", - banana: "banana-10", - orange: "orange-10" - }, - { - name: "fruit-2", - apple: "apple-20", - banana: "banana-20", - orange: "orange-20" - } - ], - key: 1, // table key - formTheadOptions: ["apple", "banana", "orange"], - checkboxVal: defaultFormThead, // checkboxVal - formThead: defaultFormThead // 默认表头 Default header - }; - }, - watch: { - checkboxVal(valArr) { - this.formThead = this.formTheadOptions.filter( - i => valArr.indexOf(i) >= 0 - ); - this.key = this.key + 1; // 为了ä¿è¯table æ¯æ¬¡éƒ½ä¼šé‡æ¸² In order to ensure the table will be re-rendered each time - } - } -}; -</script> diff --git a/WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue b/WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue deleted file mode 100644 index 8b28c238..00000000 --- a/WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue +++ /dev/null @@ -1,56 +0,0 @@ -<template> - <div class="app-container"> - <div class="filter-container"> - <el-checkbox-group v-model="formThead"> - <el-checkbox label="apple"> - apple - </el-checkbox> - <el-checkbox label="banana"> - banana - </el-checkbox> - <el-checkbox label="orange"> - orange - </el-checkbox> - </el-checkbox-group> - </div> - - <el-table - :data="tableData" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column prop="name" label="fruitName" width="180" /> - <el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit"> - <template slot-scope="scope"> - {{ scope.row[fruit] }} - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -export default { - data() { - return { - tableData: [ - { - name: "fruit-1", - apple: "apple-10", - banana: "banana-10", - orange: "orange-10" - }, - { - name: "fruit-2", - apple: "apple-20", - banana: "banana-20", - orange: "orange-20" - } - ], - formThead: ["apple", "banana"] - }; - } -}; -</script> diff --git a/WebSite/src/views/table/dynamic-table/index.vue b/WebSite/src/views/table/dynamic-table/index.vue deleted file mode 100644 index 503784cb..00000000 --- a/WebSite/src/views/table/dynamic-table/index.vue +++ /dev/null @@ -1,23 +0,0 @@ -<template> - <div class="app-container"> - <div style="margin:0 0 5px 20px"> - Fixed header, sorted by header order, - </div> - <fixed-thead /> - - <div style="margin:30px 0 5px 20px"> - Not fixed header, sorted by click order - </div> - <unfixed-thead /> - </div> -</template> - -<script> -import FixedThead from "./components/FixedThead"; -import UnfixedThead from "./components/UnfixedThead"; - -export default { - name: "DynamicTable", - components: { FixedThead, UnfixedThead } -}; -</script> diff --git a/WebSite/src/views/table/inline-edit-table.vue b/WebSite/src/views/table/inline-edit-table.vue deleted file mode 100644 index 4b120956..00000000 --- a/WebSite/src/views/table/inline-edit-table.vue +++ /dev/null @@ -1,161 +0,0 @@ -<template> - <div class="app-container"> - <el-table - v-loading="listLoading" - :data="list" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column align="center" label="ID" width="80"> - <template slot-scope="{ row }"> - <span>{{ row.id }}</span> - </template> - </el-table-column> - - <el-table-column width="180px" align="center" label="Date"> - <template slot-scope="{ row }"> - <span>{{ row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") }}</span> - </template> - </el-table-column> - - <el-table-column width="120px" align="center" label="Author"> - <template slot-scope="{ row }"> - <span>{{ row.author }}</span> - </template> - </el-table-column> - - <el-table-column width="100px" label="Importance"> - <template slot-scope="{ row }"> - <svg-icon - v-for="n in +row.importance" - :key="n" - icon-class="star" - class="meta-item__icon" - /> - </template> - </el-table-column> - - <el-table-column class-name="status-col" label="Status" width="110"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - - <el-table-column min-width="300px" label="Title"> - <template slot-scope="{ row }"> - <template v-if="row.edit"> - <el-input v-model="row.title" class="edit-input" size="small" /> - <el-button - class="cancel-btn" - size="small" - icon="el-icon-refresh" - type="warning" - @click="cancelEdit(row)" - > - cancel - </el-button> - </template> - <span v-else>{{ row.title }}</span> - </template> - </el-table-column> - - <el-table-column align="center" label="Actions" width="120"> - <template slot-scope="{ row }"> - <el-button - v-if="row.edit" - type="success" - size="small" - icon="el-icon-circle-check-outline" - @click="confirmEdit(row)" - > - Ok - </el-button> - <el-button - v-else - type="primary" - size="small" - icon="el-icon-edit" - @click="row.edit = !row.edit" - > - Edit - </el-button> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - name: "InlineEditTable", - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - } - }, - data() { - return { - list: null, - listLoading: true, - listQuery: { - page: 1, - limit: 10 - } - }; - }, - created() { - this.getList(); - }, - methods: { - async getList() { - this.listLoading = true; - const { data } = await fetchList(this.listQuery); - const items = data.items; - this.list = items.map(v => { - this.$set(v, "edit", false); // https://vuejs.org/v2/guide/reactivity.html - v.originalTitle = v.title; // will be used when user click the cancel botton - return v; - }); - this.listLoading = false; - }, - cancelEdit(row) { - row.title = row.originalTitle; - row.edit = false; - this.$message({ - message: "The title has been restored to the original value", - type: "warning" - }); - }, - confirmEdit(row) { - row.edit = false; - row.originalTitle = row.title; - this.$message({ - message: "The title has been edited", - type: "success" - }); - } - } -}; -</script> - -<style scoped> -.edit-input { - padding-right: 100px; -} -.cancel-btn { - position: absolute; - right: 15px; - top: 10px; -} -</style> diff --git a/WebSite/src/views/theme/index.vue b/WebSite/src/views/theme/index.vue deleted file mode 100644 index 74351743..00000000 --- a/WebSite/src/views/theme/index.vue +++ /dev/null @@ -1,131 +0,0 @@ -<template> - <div class="app-container"> - <el-card class="box-card"> - <div slot="header"> - <a - class="link-type link-title" - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/theme.html" - > - Theme documentation - </a> - </div> - <div class="box-item"> - <span class="field-label">Change Theme : </span> - <el-switch v-model="theme" /> - <aside style="margin-top:15px;"> - Tips: It is different from the theme-pick on the navbar is two - different skinning methods, each with different application scenarios. - Refer to the documentation for details. - </aside> - </div> - </el-card> - - <div class="block"> - <el-button type="primary"> - Primary - </el-button> - <el-button type="success"> - Success - </el-button> - <el-button type="info"> - Info - </el-button> - <el-button type="warning"> - Warning - </el-button> - <el-button type="danger"> - Danger - </el-button> - </div> - - <div class="block"> - <el-button type="primary" icon="el-icon-edit" /> - <el-button type="primary" icon="el-icon-share" /> - <el-button type="primary" icon="el-icon-delete" /> - <el-button type="primary" icon="el-icon-search"> - Search - </el-button> - <el-button type="primary"> - Upload - <i class="el-icon-upload el-icon-right" /> - </el-button> - </div> - - <div class="block"> - <el-tag - v-for="tag in tags" - :key="tag.type" - :type="tag.type" - class="tag-item" - > - {{ tag.name }} - </el-tag> - </div> - - <div class="block"> - <el-radio-group v-model="radio"> - <el-radio :label="3"> - Option A - </el-radio> - <el-radio :label="6"> - Option B - </el-radio> - <el-radio :label="9"> - Option C - </el-radio> - </el-radio-group> - </div> - - <div class="block"> - <el-slider v-model="slideValue" /> - </div> - </div> -</template> - -<script> -import { toggleClass } from "@/utils"; -import "@/assets/custom-theme/index.css"; // the theme changed version element-ui css - -export default { - name: "Theme", - data() { - return { - theme: false, - tags: [ - { name: "Tag One", type: "" }, - { name: "Tag Two", type: "info" }, - { name: "Tag Three", type: "success" }, - { name: "Tag Four", type: "warning" }, - { name: "Tag Five", type: "danger" } - ], - slideValue: 50, - radio: 3 - }; - }, - watch: { - theme() { - toggleClass(document.body, "custom-theme"); - } - } -}; -</script> - -<style scoped> -.field-label { - vertical-align: middle; -} -.box-card { - width: 400px; - max-width: 100%; - margin: 20px auto; -} - -.block { - padding: 30px 24px; -} - -.tag-item { - margin-right: 15px; -} -</style> diff --git a/WebSite/src/views/workplace/index.vue b/WebSite/src/views/workplace/index.vue new file mode 100644 index 00000000..d03cb6ac --- /dev/null +++ b/WebSite/src/views/workplace/index.vue @@ -0,0 +1,457 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-20 09:16:50 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-09-04 10:06:25 +--> +<template> + <div class="workplace-container"> + <div class="user-info"> + <div class="user-info-header">用户ä¸å¿ƒ</div> + <el-row :gutter="20"> + <el-col class="user-info-box" :xs="24" :sm="14" :lg="14"> + <i class="fas fa-user-circle rotate"></i> + <div class="user-info-text"> + <div class="user-info-text-top"><b>Admin</b>,早上好!</div> + <div class="user-info-text-footer"> + 软件开å‘部-å‰ç«¯å¼€å‘工程师 + </div> + </div> + </el-col> + <el-col class="user-info-box-right" :xs="24" :sm="10" :lg="10"> + <div class="user-info-item"> + <div class="user-info-item-text">项目数é‡</div> + <div class="user-info-item-value">9</div> + </div> + <el-divider direction="vertical"></el-divider> + <div class="user-info-item"> + <div class="user-info-item-text">已完æˆ</div> + <div class="user-info-item-value">3</div> + </div> + <el-divider direction="vertical"></el-divider> + <div class="user-info-item"> + <div class="user-info-item-text">待办</div> + <div class="user-info-item-value">6</div> + </div> + </el-col> + </el-row> + </div> + <el-row :gutter="20"> + <el-col :xs="24" :sm="24" :lg="16"> + <el-card class="box-card left" shadow="never"> + <template #header> + <div class="card-header"> + <span>待办项目</span> + <el-button class="button" type="text">所有项目</el-button> + </div> + </template> + <el-row> + <el-col + dis + :xs="24" + :sm="12" + :md="8" + :lg="8" + class="card-body-item" + > + <div class="card-body-item-header"> + <el-avatar :size="25"> + <i class="fas fa-image"></i> + </el-avatar> + <span>基础数æ®</span> + </div> + <div class="card-body-item-content"> + 人员ã€éƒ¨é—¨ã€è§’色三元组信æ¯ã€åº”用信æ¯ã€é…置信æ¯ç®¡ç† + </div> + <div class="card-body-item-footer"> + <span>项目组:XXX</span> + <span>负责人:XXX</span> + </div> + </el-col> + <el-col + dis + :xs="24" + :sm="12" + :md="8" + :lg="8" + class="card-body-item" + > + <div class="card-body-item-header"> + <el-avatar :size="25"> + <i class="fas fa-image"></i> + </el-avatar> + <span>网上报销</span> + </div> + <div class="card-body-item-content"> + 项目æè¿°æ–‡å—项目æè¿°æ–‡å—项目æè¿°æ–‡å—项目æè¿°æ–‡å— + </div> + <div class="card-body-item-footer"> + <span>项目组:XXX</span> + <span>负责人:XXX</span> + </div> + </el-col> + <el-col + dis + :xs="24" + :sm="12" + :md="8" + :lg="8" + class="card-body-item" + > + <div class="card-body-item-header"> + <el-avatar :size="25"> + <i class="fas fa-image"></i> + </el-avatar> + <span>基础数æ®</span> + </div> + <div class="card-body-item-content"> + 人员ã€éƒ¨é—¨ã€è§’色三元组信æ¯ã€åº”用信æ¯ã€é…置信æ¯ç®¡ç† + </div> + <div class="card-body-item-footer"> + <span>项目组:XXX</span> + <span>负责人:XXX</span> + </div> + </el-col> + <el-col + dis + :xs="24" + :sm="12" + :md="8" + :lg="8" + class="card-body-item" + > + <div class="card-body-item-header"> + <el-avatar :size="25"> + <i class="fas fa-image"></i> + </el-avatar> + <span>基础数æ®</span> + </div> + <div class="card-body-item-content"> + 人员ã€éƒ¨é—¨ã€è§’色三元组信æ¯ã€åº”用信æ¯ã€é…置信æ¯ç®¡ç† + </div> + <div class="card-body-item-footer"> + <span>项目组:XXX</span> + <span>负责人:XXX</span> + </div> + </el-col> + <el-col + dis + :xs="24" + :sm="12" + :md="8" + :lg="8" + class="card-body-item" + > + <div class="card-body-item-header"> + <el-avatar :size="25"> + <i class="fas fa-image"></i> + </el-avatar> + <span>基础数æ®</span> + </div> + <div class="card-body-item-content"> + 人员ã€éƒ¨é—¨ã€è§’色三元组信æ¯ã€åº”用信æ¯ã€é…置信æ¯ç®¡ç† + </div> + <div class="card-body-item-footer"> + <span>项目组:XXX</span> + <span>负责人:XXX</span> + </div> + </el-col> + <el-col + dis + :xs="24" + :sm="12" + :md="8" + :lg="8" + class="card-body-item" + > + <div class="card-body-item-header"> + <el-avatar :size="25"> + <i class="fas fa-image"></i> + </el-avatar> + <span>基础数æ®</span> + </div> + <div class="card-body-item-content"> + 人员ã€éƒ¨é—¨ã€è§’色三元组信æ¯ã€åº”用信æ¯ã€é…置信æ¯ç®¡ç† + </div> + <div class="card-body-item-footer"> + <span>项目组:XXX</span> + <span>负责人:XXX</span> + </div> + </el-col> + </el-row> + </el-card> + <el-card class="box-card left" shadow="never"> + <template #header> + <div class="card-header"> + <span>项目动æ€</span> + </div> + </template> + <div class="card-content"> + <div class="card-content-item" v-for="i in 9" :key="i"> + <el-avatar :size="25"> + <i class="fas fa-image"></i> + </el-avatar> + <span>2021-09-0{{ i }}</span> + <span> + XXX æäº¤é¡¹ç›®è‡³ + <el-button class="button" type="text">å¾…å®¡æ ¸</el-button> + </span> + </div> + </div> + </el-card> + </el-col> + <el-col :xs="24" :sm="24" :lg="8"> + <el-card class="box-card right" shadow="never"> + <template #header> + <div class="card-header"> + <span>å¿«æ·å…¥å£</span> + </div> + </template> + <el-button type="text">æ“作一</el-button> + <el-button type="text">æ“作二</el-button> + <el-button type="text">æ“作三</el-button> + </el-card> + <el-card class="box-card right" shadow="never"> + <template #header> + <div class="card-header"> + <span>分布示例</span> + <!-- <el-button class="button" type="text">所有项目</el-button> --> + </div> + </template> + <div class="box-chart"> + <v-chart :option="option1" :autoresize="true" /> + </div> + </el-card> + </el-col> + </el-row> + </div> +</template> + +<script> +import { reactive, toRefs, computed } from 'vue'; +import { useStore } from 'vuex'; +import { use } from 'echarts/core'; +import { LegendComponent } from 'echarts/components'; +import { RadarChart } from 'echarts/charts'; +import { CanvasRenderer } from 'echarts/renderers'; +import VChart from 'vue-echarts'; // , { THEME_KEY } + +use([LegendComponent, RadarChart, CanvasRenderer]); + +export default { + name: 'workplace', + components: { + VChart + }, + // provide: { + // [THEME_KEY]: 'dark' + // }, + setup() { + const store = useStore(); + const device = computed(() => store.state.app.device); + + const data = reactive({ + option1: { + radar: { + // shape: 'circle', + indicator: [ + { name: '基础数æ®', max: 6500 }, + { name: '网上报销', max: 16000 }, + { name: 'æµç¨‹ä¸å¿ƒ', max: 30000 }, + { name: '消æ¯ä¸å¿ƒ', max: 38000 }, + { name: '薪资查询', max: 52000 } + ] + }, + series: [ + { + type: 'radar', + data: [ + { + value: [4200, 3000, 20000, 35000, 50000, 18000], + name: '预计' + }, + { + value: [5000, 14000, 28000, 26000, 42000, 21000], + name: '实际' + } + ] + } + ] + } + }); + + return { + ...toRefs(data), + device + }; + } +}; +</script> + +<style lang="scss" scoped> +.workplace-container { + padding: 20px 20px 0 20px; + background-color: #f0f2f5; + .user-info { + padding: 20px; + margin: -20px -20px 20px -20px; + color: rgba(0, 0, 0, 0.85); + background-color: #ffffff; + .user-info-header { + font-weight: 600; + font-size: 20px; + line-height: 32px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin-bottom: 10px; + } + .user-info-box { + i { + font-size: 70px; + color: #606266; + } + display: flex; + .user-info-text { + margin-left: 20px; + .user-info-text-top { + font-size: 20px; + line-height: 40px; + } + .user-info-text-footer { + font-size: 14px; + line-height: 30px; + color: rgba(0, 0, 0, 0.45); + } + } + } + .user-info-box-right { + display: flex; + justify-content: center; + .user-info-item { + padding: 20px 0 0; + text-align: center; + width: 130px; + .user-info-item-text { + font-size: 14px; + color: rgba(0, 0, 0, 0.45); + margin-bottom: 4px; + } + .user-info-item-value { + color: rgba(0, 0, 0, 0.85); + font-size: 24px; + } + } + ::v-deep(.el-divider--vertical) { + height: 40px; + margin: 24px 0px 0px; + } + } + } + .box-card { + border: none; + border-radius: 0px; + margin-bottom: 20px; + ::v-deep(.el-card__header) { + border-bottom: 1px solid #f0f0f0; + .card-header { + button { + float: right; + position: relative; + top: -5px; + font-size: 14px; + } + } + } + &.left { + overflow: visible; + ::v-deep(.el-card__body) { + padding: 0px; + margin: -1px; + .card-body-item { + padding: 20px; + border: 0; + border-radius: 0; + box-shadow: 1px 0 0 0 #f0f0f0, 0 1px 0 0 #f0f0f0, 1px 1px 0 0 #f0f0f0, + inset 1px 0 0 0 #f0f0f0, inset 0 1px 0 0 #f0f0f0; + transition: all 0.3s; + &:hover { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + cursor: pointer; + } + .card-body-item-header { + color: rgba(0, 0, 0, 0.85); + font-size: 14px; + margin-bottom: 10px; + display: flex; + align-items: center; + i { + font-size: 15px; + width: 25px; + line-height: 25px; + } + span { + margin-right: 12px; + } + } + .card-body-item-content { + height: 44px; + color: rgba(0, 0, 0, 0.45); + line-height: 22px; + font-size: 14px; + overflow: hidden; + } + .card-body-item-footer { + margin-top: 10px; + display: flex; + align-items: center; + justify-content: space-between; + color: rgba(0, 0, 0, 0.45); + font-size: 12px; + overflow: hidden; + } + } + } + } + &.right { + ::v-deep(.el-card__body) { + padding: 0 10px; + .el-button { + font-size: 14px; + margin: 15px; + } + .box-chart { + height: 500px; + } + } + } + .card-content { + padding: 20px; + .card-content-item { + margin-bottom: 10px; + padding-bottom: 10px; + border-bottom: 1px solid #f0f0f0; + display: flex; + align-items: center; + span { + margin-right: 10px; + font-size: 14px; + .el-button { + font-size: 14px; + } + } + } + .card-content-item:last-child { + margin-bottom: 0px; + padding-bottom: 0px; + border-bottom: 0px; + } + } + } + ::v-deep(.el-avatar) { + background-color: #ebebeb; + color: #646464; + } +} +</style> diff --git a/WebSite/src/views/zip/index.vue b/WebSite/src/views/zip/index.vue deleted file mode 100644 index 6bacc580..00000000 --- a/WebSite/src/views/zip/index.vue +++ /dev/null @@ -1,101 +0,0 @@ -<template> - <div class="app-container"> - <el-input - v-model="filename" - placeholder="Please enter the file name (default file)" - style="width:300px;" - prefix-icon="el-icon-document" - /> - <el-button - :loading="downloadLoading" - style="margin-bottom:20px;" - type="primary" - icon="el-icon-document" - @click="handleDownload" - > - Export Zip - </el-button> - <el-table - v-loading="listLoading" - :data="list" - element-loading-text="æ‹¼å‘½åŠ è½½ä¸" - border - fit - highlight-current-row - > - <el-table-column align="center" label="ID" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="95" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - <el-table-column align="center" label="Date" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ scope.row.display_time }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - name: "ExportZip", - data() { - return { - list: null, - listLoading: true, - downloadLoading: false, - filename: "" - }; - }, - created() { - this.fetchData(); - }, - methods: { - async fetchData() { - this.listLoading = true; - const { data } = await fetchList(); - this.list = data.items; - this.listLoading = false; - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Zip").then(zip => { - const tHeader = ["Id", "Title", "Author", "Readings", "Date"]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.list; - const data = this.formatJson(filterVal, list); - zip.export_txt_to_zip(tHeader, data, this.filename, this.filename); - this.downloadLoading = false; - }); - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => filterVal.map(j => v[j])); - } - } -}; -</script> diff --git a/WebSite/tests/unit/.eslintrc.js b/WebSite/tests/unit/.eslintrc.js deleted file mode 100644 index 958d51ba..00000000 --- a/WebSite/tests/unit/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - env: { - jest: true - } -} diff --git a/WebSite/tests/unit/components/Hamburger.spec.js b/WebSite/tests/unit/components/Hamburger.spec.js deleted file mode 100644 index 01ea303a..00000000 --- a/WebSite/tests/unit/components/Hamburger.spec.js +++ /dev/null @@ -1,18 +0,0 @@ -import { shallowMount } from '@vue/test-utils' -import Hamburger from '@/components/Hamburger/index.vue' -describe('Hamburger.vue', () => { - it('toggle click', () => { - const wrapper = shallowMount(Hamburger) - const mockFn = jest.fn() - wrapper.vm.$on('toggleClick', mockFn) - wrapper.find('.hamburger').trigger('click') - expect(mockFn).toBeCalled() - }) - it('prop isActive', () => { - const wrapper = shallowMount(Hamburger) - wrapper.setProps({ isActive: true }) - expect(wrapper.contains('.is-active')).toBe(true) - wrapper.setProps({ isActive: false }) - expect(wrapper.contains('.is-active')).toBe(false) - }) -}) diff --git a/WebSite/tests/unit/components/SvgIcon.spec.js b/WebSite/tests/unit/components/SvgIcon.spec.js deleted file mode 100644 index 31467a9f..00000000 --- a/WebSite/tests/unit/components/SvgIcon.spec.js +++ /dev/null @@ -1,22 +0,0 @@ -import { shallowMount } from '@vue/test-utils' -import SvgIcon from '@/components/SvgIcon/index.vue' -describe('SvgIcon.vue', () => { - it('iconClass', () => { - const wrapper = shallowMount(SvgIcon, { - propsData: { - iconClass: 'test' - } - }) - expect(wrapper.find('use').attributes().href).toBe('#icon-test') - }) - it('className', () => { - const wrapper = shallowMount(SvgIcon, { - propsData: { - iconClass: 'test' - } - }) - expect(wrapper.classes().length).toBe(1) - wrapper.setProps({ className: 'test' }) - expect(wrapper.classes().includes('test')).toBe(true) - }) -}) diff --git a/WebSite/tests/unit/utils/formatTime.spec.js b/WebSite/tests/unit/utils/formatTime.spec.js deleted file mode 100644 index d07e414f..00000000 --- a/WebSite/tests/unit/utils/formatTime.spec.js +++ /dev/null @@ -1,29 +0,0 @@ -import { formatTime } from '@/utils/index.js' -describe('Utils:formatTime', () => { - const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" - const retrofit = 5 * 1000 - - it('ten digits timestamp', () => { - expect(formatTime((d / 1000).toFixed(0))).toBe('7月13æ—¥17æ—¶54分') - }) - it('test now', () => { - expect(formatTime(+new Date() - 1)).toBe('刚刚') - }) - it('less two minute', () => { - expect(formatTime(+new Date() - 60 * 2 * 1000 + retrofit)).toBe('2分钟å‰') - }) - it('less two hour', () => { - expect(formatTime(+new Date() - 60 * 60 * 2 * 1000 + retrofit)).toBe('2å°æ—¶å‰') - }) - it('less one day', () => { - expect(formatTime(+new Date() - 60 * 60 * 24 * 1 * 1000)).toBe('1天å‰') - }) - it('more than one day', () => { - expect(formatTime(d)).toBe('7月13æ—¥17æ—¶54分') - }) - it('format', () => { - expect(formatTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') - expect(formatTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') - expect(formatTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') - }) -}) diff --git a/WebSite/tests/unit/utils/parseTime.spec.js b/WebSite/tests/unit/utils/parseTime.spec.js deleted file mode 100644 index 77ecb9d5..00000000 --- a/WebSite/tests/unit/utils/parseTime.spec.js +++ /dev/null @@ -1,27 +0,0 @@ -import { parseTime } from '@/utils/index.js' -describe('Utils:parseTime', () => { - const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" - it('timestamp', () => { - expect(parseTime(d)).toBe('2018-07-13 17:54:01') - }) - it('ten digits timestamp', () => { - expect(parseTime((d / 1000).toFixed(0))).toBe('2018-07-13 17:54:01') - }) - it('new Date', () => { - expect(parseTime(new Date(d))).toBe('2018-07-13 17:54:01') - }) - it('format', () => { - expect(parseTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') - expect(parseTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') - expect(parseTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') - }) - it('get the day of the week', () => { - expect(parseTime(d, '{a}')).toBe('五') // 星期五 - }) - it('get the day of the week', () => { - expect(parseTime(+d + 1000 * 60 * 60 * 24 * 2, '{a}')).toBe('æ—¥') // 星期日 - }) - it('empty argument', () => { - expect(parseTime()).toBeNull() - }) -}) diff --git a/WebSite/tests/unit/utils/validate.spec.js b/WebSite/tests/unit/utils/validate.spec.js deleted file mode 100644 index ef2efe61..00000000 --- a/WebSite/tests/unit/utils/validate.spec.js +++ /dev/null @@ -1,28 +0,0 @@ -import { validUsername, validURL, validLowerCase, validUpperCase, validAlphabets } from '@/utils/validate.js' -describe('Utils:validate', () => { - it('validUsername', () => { - expect(validUsername('admin')).toBe(true) - expect(validUsername('editor')).toBe(true) - expect(validUsername('xxxx')).toBe(false) - }) - it('validURL', () => { - expect(validURL('https://github.com/PanJiaChen/vue-element-admin')).toBe(true) - expect(validURL('http://github.com/PanJiaChen/vue-element-admin')).toBe(true) - expect(validURL('github.com/PanJiaChen/vue-element-admin')).toBe(false) - }) - it('validLowerCase', () => { - expect(validLowerCase('abc')).toBe(true) - expect(validLowerCase('Abc')).toBe(false) - expect(validLowerCase('123abc')).toBe(false) - }) - it('validUpperCase', () => { - expect(validUpperCase('ABC')).toBe(true) - expect(validUpperCase('Abc')).toBe(false) - expect(validUpperCase('123ABC')).toBe(false) - }) - it('validAlphabets', () => { - expect(validAlphabets('ABC')).toBe(true) - expect(validAlphabets('Abc')).toBe(true) - expect(validAlphabets('123aBC')).toBe(false) - }) -}) diff --git a/WebSite/vue.config.js b/WebSite/vue.config.js index 5b7c28ad..c9bedaa3 100644 --- a/WebSite/vue.config.js +++ b/WebSite/vue.config.js @@ -1,136 +1,116 @@ -"use strict"; -const path = require("path"); -const defaultSettings = require("./src/settings.js"); +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 12:52:35 + * @LastEditors: dongjunhua + * @LastEditTime: 2022-04-14 10:51:17 + */ +'use strict'; + +const path = require('path'); +const defaultConfig = require('./src/config'); +// const { name } = require('./package.json'); function resolve(dir) { return path.join(__dirname, dir); } -const name = defaultSettings.title || "Vue Element Admin"; // page title - -// If your port is set to 80, -// use administrator privileges to execute the command line. -// For example, Mac: sudo npm run -// You can change the port by the following method: -// port = 9527 npm run dev OR npm run dev --port = 9527 -const port = process.env.port || process.env.npm_config_port || 9529; // dev port - -// get npm config argv -const configArgv = JSON.parse(process.env.npm_config_argv); -const original = configArgv.original.slice(1); -const stage = original[1] ? original[1].replace(/-/g, "") : ""; - +// devServer const devServer = { - port: port, - open: false, + port: 3000, + open: true, overlay: { warnings: false, errors: true + }, + headers: { + 'Access-Control-Allow-Origin': '*' } }; -const proxy = { - // detail: https://cli.vuejs.org/config/#devserver-proxy - [process.env.VUE_APP_BASE_API]: { - // target: `http://127.0.0.1:${port}`, - target: "http://47.110.127.118:8001", - changeOrigin: true, - pathRewrite: { - ["^" + process.env.VUE_APP_BASE_API]: "" - } - } -}; -const mockServer = require("./mock/mock-server.js"); -if (stage === "mock") { - devServer.before = mockServer; + +if (process.env.NODE_ENV === 'mock') { + devServer.before = require('./mock/mock-server.js'); } else { - devServer.proxy = proxy; + devServer.proxy = { + // detail: https://cli.vuejs.org/config/#devserver-proxy + [process.env.VUE_APP_BASE_API]: { + target: '47.111.224.180:1433', + changeOrigin: true, + pathRewrite: { + ['^' + process.env.VUE_APP_BASE_API]: '' + } + } + }; } -// All configuration item explanations can be find in https://cli.vuejs.org/config/ module.exports = { - /** - * You will need to set publicPath if you plan to deploy your site under a sub path, - * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/, - * then publicPath should be set to "/bar/". - * In most cases please use '/' !!! - * Detail: https://cli.vuejs.org/config/#publicpath - */ - publicPath: "./", - outputDir: "dist", - assetsDir: "static", - lintOnSave: process.env.NODE_ENV === "development", + publicPath: process.env.VUE_APP_BASE_URI, + outputDir: 'dist', + assetsDir: 'static', productionSourceMap: false, devServer, configureWebpack: { // provide the app's title in webpack's name field, so that // it can be accessed in index.html to inject the correct title. - name: name, + name: defaultConfig.applicationName, resolve: { alias: { - "@": resolve("src") + '@': resolve('src') + } + }, + performance: { + hints: false, // close performance warning + assetFilter: function(assetFilename) { + // file filter + return assetFilename.endsWith('.css') || assetFilename.endsWith('.js'); } } + // output: { + // library: `${name}-[name]`, + // libraryTarget: 'umd', // æŠŠå¾®åº”ç”¨æ‰“åŒ…æˆ umd åº“æ ¼å¼ + // jsonpFunction: `webpackJsonp_${name}` + // } }, chainWebpack(config) { - // copy config file to dist - config.plugin("copy").tap(args => { - let configName = - process.env.ENV && - process.env.ENV !== "development" && - process.env.ENV !== "production" - ? process.env.ENV - : "default"; - args[0].push({ - from: path.resolve( - __dirname, - `./src/assets/configs/${configName}.json` - ), - to: path.resolve(__dirname, "./dist/config.json") - }); - return args; - }); - config.plugins.delete("preload"); // TODO: need test - config.plugins.delete("prefetch"); // TODO: need test - + const CompressionWebpackPlugin = require('compression-webpack-plugin'); + config.plugin('compressionWebpack').use(CompressionWebpackPlugin); + // when use preload, it will cause runtime not found + config.plugins.delete('preload'); + // when there are many pages, it will cause too many meaningless requests + config.plugins.delete('prefetch'); // set svg-sprite-loader config.module - .rule("svg") - .exclude.add(resolve("src/icons")) + .rule('svg') + .exclude.add(resolve('src/icons')) .end(); config.module - .rule("icons") + .rule('icons') .test(/\.svg$/) - .include.add(resolve("src/icons")) + .include.add(resolve('src/icons')) .end() - .use("svg-sprite-loader") - .loader("svg-sprite-loader") + .use() + .loader('svg-sprite-loader') .options({ - symbolId: "icon-[name]" + symbolId: 'icon-[name]' }) .end(); - - // set preserveWhitespace config.module - .rule("vue") - .use("vue-loader") - .loader("vue-loader") - .tap(options => { - options.compilerOptions.preserveWhitespace = true; - return options; - }) - .end(); + .rule('js') + .use('babel-loader') + .options({ + presets: [['@babel/preset-env', { modules: false }]], + cacheCompression: true + }); - config - // https://webpack.js.org/configuration/devtool/#development - .when(process.env.NODE_ENV === "development", config => - config.devtool("cheap-source-map") - ); + config.when(process.env.NODE_ENV === 'development', config => + config.devtool('cheap-source-map') + ); - config.when(process.env.NODE_ENV !== "development", config => { + config.when(process.env.NODE_ENV !== 'development', config => { config - .plugin("ScriptExtHtmlWebpackPlugin") - .after("html") - .use("script-ext-html-webpack-plugin", [ + .plugin('ScriptExtHtmlWebpackPlugin') + .after('html') + .use('script-ext-html-webpack-plugin', [ { // `runtime` must same as runtimeChunk name. default is `runtime` inline: /runtime\..*\.js$/ @@ -138,29 +118,35 @@ module.exports = { ]) .end(); config.optimization.splitChunks({ - chunks: "all", + chunks: 'all', + maxAsyncRequests: 5, + maxInitialRequests: 5, cacheGroups: { + config: { + name: 'chunk-config', + minSize: 1, + test: /[\\/]src[\\/]config[\\/]/, + priority: 30 + }, libs: { - name: "chunk-libs", + name: 'chunk-libs', test: /[\\/]node_modules[\\/]/, priority: 10, - chunks: "initial" // only package third parties that are initially dependent + chunks: 'initial' // only package third parties that are initially dependent }, - elementUI: { - name: "chunk-elementUI", // split elementUI into a single package + element: { + name: 'chunk-libs-elememt', // split elementUI into a single package priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app - test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm + test: /[\\/]node_modules[\\/]_?element-plus(.*)/ // in order to adapt to cnpm }, - commons: { - name: "chunk-commons", - test: resolve("src/components"), // can customize your rules - minChunks: 3, // minimum common number - priority: 5, - reuseExistingChunk: true + vant: { + name: 'chunk-libs-vant', // split vant into a single package + priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app + test: /[\\/]node_modules[\\/]_?vant(.*)/ // in order to adapt to cnpm } } }); - config.optimization.runtimeChunk("single"); + config.optimization.runtimeChunk('single'); }); } }; -- GitLab From 0553402cd611a6ee3bed5462f572bb704ce0d41e Mon Sep 17 00:00:00 2001 From: yeqingbo <xiaodong@seaskysh.com> Date: Mon, 18 Apr 2022 17:47:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A1=86=E6=9E=B6=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/src/core/base/Realm.js | 2 +- WebSite/vue.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/WebSite/src/core/base/Realm.js b/WebSite/src/core/base/Realm.js index 240b1e9c..5e43af44 100644 --- a/WebSite/src/core/base/Realm.js +++ b/WebSite/src/core/base/Realm.js @@ -9,7 +9,7 @@ import AuthenticationInfo from '../model/AuthenticationInfo'; import AuthorizationInfo from '../model/AuthorizationInfo'; import Account from '@/api/Account'; -import User from '@/api/User'; +import User from '@/api/user'; /** * safety data source diff --git a/WebSite/vue.config.js b/WebSite/vue.config.js index c9bedaa3..c2b8b270 100644 --- a/WebSite/vue.config.js +++ b/WebSite/vue.config.js @@ -34,7 +34,7 @@ if (process.env.NODE_ENV === 'mock') { devServer.proxy = { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - target: '47.111.224.180:1433', + target: 'http://47.111.224.180:1433', changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' -- GitLab