gitextract_k9f20p4p/ ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .github/ │ ├── FUNDING.yml │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ ├── feature_request.md │ └── question.md ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.es.md ├── README.ja.md ├── README.md ├── README.zh-CN.md ├── babel.config.js ├── build/ │ └── index.js ├── jest.config.js ├── jsconfig.json ├── mock/ │ ├── article.js │ ├── index.js │ ├── mock-server.js │ ├── remote-search.js │ ├── role/ │ │ ├── index.js │ │ └── routes.js │ ├── user.js │ └── utils.js ├── package.json ├── plop-templates/ │ ├── component/ │ │ ├── index.hbs │ │ └── prompt.js │ ├── store/ │ │ ├── index.hbs │ │ └── prompt.js │ ├── utils.js │ └── view/ │ ├── index.hbs │ └── prompt.js ├── plopfile.js ├── postcss.config.js ├── public/ │ └── index.html ├── src/ │ ├── App.vue │ ├── api/ │ │ ├── article.js │ │ ├── qiniu.js │ │ ├── remote-search.js │ │ ├── role.js │ │ └── user.js │ ├── assets/ │ │ └── custom-theme/ │ │ └── index.css │ ├── components/ │ │ ├── BackToTop/ │ │ │ └── index.vue │ │ ├── Breadcrumb/ │ │ │ └── index.vue │ │ ├── Charts/ │ │ │ ├── Keyboard.vue │ │ │ ├── LineMarker.vue │ │ │ ├── MixChart.vue │ │ │ └── mixins/ │ │ │ └── resize.js │ │ ├── DndList/ │ │ │ └── index.vue │ │ ├── DragSelect/ │ │ │ └── index.vue │ │ ├── Dropzone/ │ │ │ └── index.vue │ │ ├── ErrorLog/ │ │ │ └── index.vue │ │ ├── GithubCorner/ │ │ │ └── index.vue │ │ ├── Hamburger/ │ │ │ └── index.vue │ │ ├── HeaderSearch/ │ │ │ └── index.vue │ │ ├── ImageCropper/ │ │ │ ├── index.vue │ │ │ └── utils/ │ │ │ ├── data2blob.js │ │ │ ├── effectRipple.js │ │ │ ├── language.js │ │ │ └── mimes.js │ │ ├── JsonEditor/ │ │ │ └── index.vue │ │ ├── Kanban/ │ │ │ └── index.vue │ │ ├── MDinput/ │ │ │ └── index.vue │ │ ├── MarkdownEditor/ │ │ │ ├── default-options.js │ │ │ └── index.vue │ │ ├── Pagination/ │ │ │ └── index.vue │ │ ├── PanThumb/ │ │ │ └── index.vue │ │ ├── RightPanel/ │ │ │ └── index.vue │ │ ├── Screenfull/ │ │ │ └── index.vue │ │ ├── Share/ │ │ │ └── DropdownMenu.vue │ │ ├── SizeSelect/ │ │ │ └── index.vue │ │ ├── Sticky/ │ │ │ └── index.vue │ │ ├── SvgIcon/ │ │ │ └── index.vue │ │ ├── TextHoverEffect/ │ │ │ └── Mallki.vue │ │ ├── ThemePicker/ │ │ │ └── index.vue │ │ ├── Tinymce/ │ │ │ ├── components/ │ │ │ │ └── EditorImage.vue │ │ │ ├── dynamicLoadScript.js │ │ │ ├── index.vue │ │ │ ├── plugins.js │ │ │ └── toolbar.js │ │ ├── Upload/ │ │ │ ├── SingleImage.vue │ │ │ ├── SingleImage2.vue │ │ │ └── SingleImage3.vue │ │ └── UploadExcel/ │ │ └── index.vue │ ├── directive/ │ │ ├── clipboard/ │ │ │ ├── clipboard.js │ │ │ └── index.js │ │ ├── el-drag-dialog/ │ │ │ ├── drag.js │ │ │ └── index.js │ │ ├── el-table/ │ │ │ ├── adaptive.js │ │ │ └── index.js │ │ ├── permission/ │ │ │ ├── index.js │ │ │ └── permission.js │ │ ├── sticky.js │ │ └── waves/ │ │ ├── index.js │ │ ├── waves.css │ │ └── waves.js │ ├── filters/ │ │ └── index.js │ ├── icons/ │ │ ├── index.js │ │ └── svgo.yml │ ├── layout/ │ │ ├── components/ │ │ │ ├── AppMain.vue │ │ │ ├── Navbar.vue │ │ │ ├── Settings/ │ │ │ │ └── index.vue │ │ │ ├── Sidebar/ │ │ │ │ ├── FixiOSBug.js │ │ │ │ ├── Item.vue │ │ │ │ ├── Link.vue │ │ │ │ ├── Logo.vue │ │ │ │ ├── SidebarItem.vue │ │ │ │ └── index.vue │ │ │ ├── TagsView/ │ │ │ │ ├── ScrollPane.vue │ │ │ │ └── index.vue │ │ │ └── index.js │ │ ├── index.vue │ │ └── mixin/ │ │ └── ResizeHandler.js │ ├── main.js │ ├── permission.js │ ├── router/ │ │ ├── index.js │ │ └── modules/ │ │ ├── charts.js │ │ ├── components.js │ │ ├── nested.js │ │ └── table.js │ ├── settings.js │ ├── store/ │ │ ├── getters.js │ │ ├── index.js │ │ └── modules/ │ │ ├── app.js │ │ ├── errorLog.js │ │ ├── permission.js │ │ ├── settings.js │ │ ├── tagsView.js │ │ └── user.js │ ├── styles/ │ │ ├── btn.scss │ │ ├── element-ui.scss │ │ ├── element-variables.scss │ │ ├── index.scss │ │ ├── mixin.scss │ │ ├── sidebar.scss │ │ ├── transition.scss │ │ └── variables.scss │ ├── utils/ │ │ ├── auth.js │ │ ├── clipboard.js │ │ ├── error-log.js │ │ ├── get-page-title.js │ │ ├── index.js │ │ ├── open-window.js │ │ ├── permission.js │ │ ├── request.js │ │ ├── scroll-to.js │ │ └── validate.js │ ├── vendor/ │ │ ├── Export2Excel.js │ │ └── Export2Zip.js │ └── views/ │ ├── charts/ │ │ ├── keyboard.vue │ │ ├── line.vue │ │ └── mix-chart.vue │ ├── clipboard/ │ │ └── index.vue │ ├── components-demo/ │ │ ├── avatar-upload.vue │ │ ├── back-to-top.vue │ │ ├── count-to.vue │ │ ├── dnd-list.vue │ │ ├── drag-dialog.vue │ │ ├── drag-kanban.vue │ │ ├── drag-select.vue │ │ ├── dropzone.vue │ │ ├── json-editor.vue │ │ ├── markdown.vue │ │ ├── mixin.vue │ │ ├── split-pane.vue │ │ ├── sticky.vue │ │ └── tinymce.vue │ ├── dashboard/ │ │ ├── admin/ │ │ │ ├── components/ │ │ │ │ ├── BarChart.vue │ │ │ │ ├── BoxCard.vue │ │ │ │ ├── LineChart.vue │ │ │ │ ├── PanelGroup.vue │ │ │ │ ├── PieChart.vue │ │ │ │ ├── RaddarChart.vue │ │ │ │ ├── TodoList/ │ │ │ │ │ ├── Todo.vue │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.vue │ │ │ │ ├── TransactionTable.vue │ │ │ │ └── mixins/ │ │ │ │ └── resize.js │ │ │ └── index.vue │ │ ├── editor/ │ │ │ └── index.vue │ │ └── index.vue │ ├── documentation/ │ │ └── index.vue │ ├── error-log/ │ │ ├── components/ │ │ │ ├── ErrorTestA.vue │ │ │ └── ErrorTestB.vue │ │ └── index.vue │ ├── error-page/ │ │ ├── 401.vue │ │ └── 404.vue │ ├── example/ │ │ ├── components/ │ │ │ ├── ArticleDetail.vue │ │ │ ├── Dropdown/ │ │ │ │ ├── Comment.vue │ │ │ │ ├── Platform.vue │ │ │ │ ├── SourceUrl.vue │ │ │ │ └── index.js │ │ │ └── Warning.vue │ │ ├── create.vue │ │ ├── edit.vue │ │ └── list.vue │ ├── excel/ │ │ ├── components/ │ │ │ ├── AutoWidthOption.vue │ │ │ ├── BookTypeOption.vue │ │ │ └── FilenameOption.vue │ │ ├── export-excel.vue │ │ ├── merge-header.vue │ │ ├── select-excel.vue │ │ └── upload-excel.vue │ ├── guide/ │ │ ├── index.vue │ │ └── steps.js │ ├── icons/ │ │ ├── element-icons.js │ │ ├── index.vue │ │ └── svg-icons.js │ ├── login/ │ │ ├── auth-redirect.vue │ │ ├── components/ │ │ │ └── SocialSignin.vue │ │ └── index.vue │ ├── nested/ │ │ ├── menu1/ │ │ │ ├── index.vue │ │ │ ├── menu1-1/ │ │ │ │ └── index.vue │ │ │ ├── menu1-2/ │ │ │ │ ├── index.vue │ │ │ │ ├── menu1-2-1/ │ │ │ │ │ └── index.vue │ │ │ │ └── menu1-2-2/ │ │ │ │ └── index.vue │ │ │ └── menu1-3/ │ │ │ └── index.vue │ │ └── menu2/ │ │ └── index.vue │ ├── pdf/ │ │ ├── content.js │ │ ├── download.vue │ │ └── index.vue │ ├── permission/ │ │ ├── components/ │ │ │ └── SwitchRoles.vue │ │ ├── directive.vue │ │ ├── page.vue │ │ └── role.vue │ ├── profile/ │ │ ├── components/ │ │ │ ├── Account.vue │ │ │ ├── Activity.vue │ │ │ ├── Timeline.vue │ │ │ └── UserCard.vue │ │ └── index.vue │ ├── qiniu/ │ │ └── upload.vue │ ├── redirect/ │ │ └── index.vue │ ├── tab/ │ │ ├── components/ │ │ │ └── TabPane.vue │ │ └── index.vue │ ├── table/ │ │ ├── complex-table.vue │ │ ├── drag-table.vue │ │ ├── dynamic-table/ │ │ │ ├── components/ │ │ │ │ ├── FixedThead.vue │ │ │ │ └── UnfixedThead.vue │ │ │ └── index.vue │ │ └── inline-edit-table.vue │ ├── theme/ │ │ └── index.vue │ └── zip/ │ └── index.vue ├── tests/ │ └── unit/ │ ├── .eslintrc.js │ ├── components/ │ │ ├── Hamburger.spec.js │ │ └── SvgIcon.spec.js │ └── utils/ │ ├── formatTime.spec.js │ ├── param2Obj.spec.js │ ├── parseTime.spec.js │ └── validate.spec.js └── vue.config.js