diff --git a/.browserslistrc b/.browserslistrc deleted file mode 100644 index 214388f..0000000 --- a/.browserslistrc +++ /dev/null @@ -1,3 +0,0 @@ -> 1% -last 2 versions -not dead diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..37e98bf --- /dev/null +++ b/App.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..82ee362 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 FerrymanZhan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index eb51657..752c1ac 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,20 @@ -# 简介 vue-element-perfect 是一个后台前端解决方案, 基于Vue3.0+TS+Element-plus实现。它使用了最新的前端技术栈、动态路由,权限验证,并且有着丰富的组件。 -## 效果预览 -#### vue-admin-perfect —— [企业级、通用型中后台前端解决方案 预览地址](http://182.61.5.190:8889/) - -附上github地址 [vue-admin-perfect](https://github.com/zouzhibin/vue-admin-perfect) - -## 目录结构介绍 +## 切换分支 uniapp +# 克隆项目 +``` +git clone https://github.com/zouzhibin/vue-admin-perfect.git +切换分支 uniapp ``` -├─assets 放置一些静态文件 -├─components 放置组件 -├─layout 首页布局 -│ ├─components -│ │ ├─Sidebar 侧边栏配置 -│ │ ├─TagsView 标签栏配置 -│ │ └─UHeader 头部内容配置 -│ └─hooks -├─router 路由配置 -├─store 数据存储 -├─styles 样式文件 -├─utils 工具方法 -└─views 页面配置方法 -└─permission 路由拦截 权限配置 +# 安装依赖 +``` +yarn install ``` -## 技术栈 -vue3.0 + Typescript + vuex + vue-router + Element-Plus scss - -## 实现功能 -- 登录逻辑 -- 权限校验 -- 侧边栏导航显示 -- 打印 -- 地图 -- 头像裁剪 -- 无限滚动 -- 多标签显示 -- 退出 -- 其他各组件 - - - +# 本地开发 启动项目 +``` +yarn serve +``` diff --git a/components/vue-admin-perfect/src/assets/image/error/401.gif b/assets/images/401_images/401.gif similarity index 100% rename from components/vue-admin-perfect/src/assets/image/error/401.gif rename to assets/images/401_images/401.gif diff --git a/components/vue-admin-perfect/src/assets/image/error/404s.png b/assets/images/404_images/404.png similarity index 100% rename from components/vue-admin-perfect/src/assets/image/error/404s.png rename to assets/images/404_images/404.png diff --git a/assets/images/404_images/404_cloud.png b/assets/images/404_images/404_cloud.png new file mode 100644 index 0000000..c6281d0 Binary files /dev/null and b/assets/images/404_images/404_cloud.png differ diff --git a/assets/images/bg.jpg b/assets/images/bg.jpg new file mode 100644 index 0000000..177c5e1 Binary files /dev/null and b/assets/images/bg.jpg differ diff --git a/assets/images/error-page/error-401.svg b/assets/images/error-page/error-401.svg new file mode 100644 index 0000000..19e2f9f --- /dev/null +++ b/assets/images/error-page/error-401.svg @@ -0,0 +1 @@ +tasting \ No newline at end of file diff --git a/assets/images/error-page/error-404.svg b/assets/images/error-page/error-404.svg new file mode 100644 index 0000000..77d97f7 --- /dev/null +++ b/assets/images/error-page/error-404.svg @@ -0,0 +1 @@ +drone_delivery \ No newline at end of file diff --git a/assets/images/error-page/error-500.svg b/assets/images/error-page/error-500.svg new file mode 100644 index 0000000..ef72fd3 --- /dev/null +++ b/assets/images/error-page/error-500.svg @@ -0,0 +1 @@ +co-working \ No newline at end of file diff --git a/assets/images/login-background.jpg b/assets/images/login-background.jpg new file mode 100644 index 0000000..3d59e3b Binary files /dev/null and b/assets/images/login-background.jpg differ diff --git a/assets/images/login-background1.jpg b/assets/images/login-background1.jpg new file mode 100644 index 0000000..8a89eb8 Binary files /dev/null and b/assets/images/login-background1.jpg differ diff --git a/assets/images/profile.jpg b/assets/images/profile.jpg new file mode 100644 index 0000000..6409273 Binary files /dev/null and b/assets/images/profile.jpg differ diff --git a/components/vue-admin-perfect/src/assets/logo.png b/assets/logo/logo.png similarity index 100% rename from components/vue-admin-perfect/src/assets/logo.png rename to assets/logo/logo.png diff --git a/assets/styles/btn.scss b/assets/styles/btn.scss new file mode 100644 index 0000000..e6ba1a8 --- /dev/null +++ b/assets/styles/btn.scss @@ -0,0 +1,99 @@ +@import './variables.scss'; + +@mixin colorBtn($color) { + background: $color; + + &:hover { + color: $color; + + &:before, + &:after { + background: $color; + } + } +} + +.blue-btn { + @include colorBtn($blue) +} + +.light-blue-btn { + @include colorBtn($light-blue) +} + +.red-btn { + @include colorBtn($red) +} + +.pink-btn { + @include colorBtn($pink) +} + +.green-btn { + @include colorBtn($green) +} + +.tiffany-btn { + @include colorBtn($tiffany) +} + +.yellow-btn { + @include colorBtn($yellow) +} + +.pan-btn { + font-size: 14px; + color: #fff; + padding: 14px 36px; + border-radius: 8px; + border: none; + outline: none; + transition: 600ms ease all; + position: relative; + display: inline-block; + + &:hover { + background: #fff; + + &:before, + &:after { + width: 100%; + transition: 600ms ease all; + } + } + + &:before, + &:after { + content: ''; + position: absolute; + top: 0; + right: 0; + height: 2px; + width: 0; + transition: 400ms ease all; + } + + &::after { + right: inherit; + top: inherit; + left: 0; + bottom: 0; + } +} + +.custom-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + color: #fff; + -webkit-appearance: none; + text-align: center; + box-sizing: border-box; + outline: 0; + margin: 0; + padding: 10px 15px; + font-size: 14px; + border-radius: 4px; +} diff --git a/assets/styles/element-ui.scss b/assets/styles/element-ui.scss new file mode 100644 index 0000000..955d3ca --- /dev/null +++ b/assets/styles/element-ui.scss @@ -0,0 +1,84 @@ +// cover some element-ui styles + +.el-breadcrumb__inner, +.el-breadcrumb__inner a { + font-weight: 400 !important; +} + +.el-upload { + input[type="file"] { + display: none !important; + } +} + +.el-upload__input { + display: none; +} + +.cell { + .el-tag { + margin-right: 0px; + } +} + +.small-padding { + .cell { + padding-left: 5px; + padding-right: 5px; + } +} + +.fixed-width { + .el-button--mini { + padding: 7px 10px; + width: 60px; + } +} + +.status-col { + .cell { + padding: 0 10px; + text-align: center; + + .el-tag { + margin-right: 0px; + } + } +} + +// to fixed https://github.com/ElemeFE/element/issues/2461 +.el-dialog { + transform: none; + left: 0; + position: relative; + margin: 0 auto; +} + +// refine element ui upload +.upload-container { + .el-upload { + width: 100%; + + .el-upload-dragger { + width: 100%; + height: 200px; + } + } +} + +// dropdown +.el-dropdown-menu { + a { + display: block + } +} + +// fix date-picker ui bug in filter-item +.el-range-editor.el-input__inner { + display: inline-flex !important; +} + +// to fix el-date-picker css style +.el-range-separator { + box-sizing: content-box; +} diff --git a/assets/styles/element-variables.scss b/assets/styles/element-variables.scss new file mode 100644 index 0000000..8b7a48e --- /dev/null +++ b/assets/styles/element-variables.scss @@ -0,0 +1,31 @@ +/** +* I think element-ui's default theme color is too light for long-term use. +* So I modified the default color and you can modify it to your liking. +**/ + +/* theme color */ +$--color-primary: #1890ff; +$--color-success: #13ce66; +$--color-warning: #ffba00; +$--color-danger: #ff4949; +// $--color-info: #1E1E1E; + +$--button-font-weight: 400; + +// $--color-text-regular: #1f2d3d; + +$--border-color-light: #dfe4ed; +$--border-color-lighter: #e6ebf5; + +$--table-border:1px solid#dfe6ec; + +/* icon font path, required */ +$--font-path: '~element-ui/lib/theme-chalk/fonts'; + +@import "~element-ui/packages/theme-chalk/src/index"; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + theme: $--color-primary; +} diff --git a/assets/styles/index.scss b/assets/styles/index.scss new file mode 100644 index 0000000..96095ef --- /dev/null +++ b/assets/styles/index.scss @@ -0,0 +1,191 @@ +@import './variables.scss'; +@import './mixin.scss'; +@import './transition.scss'; +@import './element-ui.scss'; +@import './sidebar.scss'; +@import './btn.scss'; + +body { + height: 100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; +} + +label { + font-weight: 700; +} + +html { + height: 100%; + box-sizing: border-box; +} + +#app { + height: 100%; +} + +*, +*:before, +*:after { + box-sizing: inherit; +} + +.no-padding { + padding: 0px !important; +} + +.padding-content { + padding: 4px 0; +} + +a:focus, +a:active { + outline: none; +} + +a, +a:focus, +a:hover { + cursor: pointer; + color: inherit; + text-decoration: none; +} + +div:focus { + outline: none; +} + +.fr { + float: right; +} + +.fl { + float: left; +} + +.pr-5 { + padding-right: 5px; +} + +.pl-5 { + padding-left: 5px; +} + +.block { + display: block; +} + +.pointer { + cursor: pointer; +} + +.inlineBlock { + display: block; +} + +.clearfix { + &:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; + } +} + +aside { + background: #eef1f6; + padding: 8px 24px; + margin-bottom: 20px; + border-radius: 2px; + display: block; + line-height: 32px; + font-size: 16px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + color: #2c3e50; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + a { + color: #337ab7; + cursor: pointer; + + &:hover { + color: rgb(32, 160, 255); + } + } +} + +//main-container全局样式 +.app-container { + padding: 20px; +} + +.components-container { + margin: 30px 50px; + position: relative; +} + +.pagination-container { + margin-top: 30px; +} + +.text-center { + text-align: center +} + +.sub-navbar { + height: 50px; + line-height: 50px; + position: relative; + width: 100%; + text-align: right; + padding-right: 20px; + transition: 600ms ease position; + background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%); + + .subtitle { + font-size: 20px; + color: #fff; + } + + &.draft { + background: #d0d0d0; + } + + &.deleted { + background: #d0d0d0; + } +} + +.link-type, +.link-type:focus { + color: #337ab7; + cursor: pointer; + + &:hover { + color: rgb(32, 160, 255); + } +} + +.filter-container { + padding-bottom: 10px; + + .filter-item { + display: inline-block; + vertical-align: middle; + margin-bottom: 10px; + } +} + +//refine vue-multiselect plugin +.multiselect { + line-height: 16px; +} + +.multiselect--active { + z-index: 1000 !important; +} diff --git a/assets/styles/mixin.scss b/assets/styles/mixin.scss new file mode 100644 index 0000000..06fa061 --- /dev/null +++ b/assets/styles/mixin.scss @@ -0,0 +1,66 @@ +@mixin clearfix { + &:after { + content: ""; + display: table; + clear: both; + } +} + +@mixin scrollBar { + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } +} + +@mixin relative { + position: relative; + width: 100%; + height: 100%; +} + +@mixin pct($pct) { + width: #{$pct}; + position: relative; + margin: 0 auto; +} + +@mixin triangle($width, $height, $color, $direction) { + $width: $width/2; + $color-border-style: $height solid $color; + $transparent-border-style: $width solid transparent; + height: 0; + width: 0; + + @if $direction==up { + border-bottom: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } + + @else if $direction==right { + border-left: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } + + @else if $direction==down { + border-top: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } + + @else if $direction==left { + border-right: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } +} diff --git a/components/vue-admin-perfect/src/styles/sidebar.scss b/assets/styles/sidebar.scss similarity index 85% rename from components/vue-admin-perfect/src/styles/sidebar.scss rename to assets/styles/sidebar.scss index 5a2cdba..cc68185 100644 --- a/components/vue-admin-perfect/src/styles/sidebar.scss +++ b/assets/styles/sidebar.scss @@ -7,16 +7,6 @@ position: relative; } - .hideSliderLayout{ - margin-left: 0; - .el-menu--horizontal{ - border-bottom: none; - } - } - .transverseMenu{ - background-color: $menuBg; - } - .sidebar-container { transition: width 0.28s; width: $sideBarWidth !important; @@ -29,6 +19,7 @@ left: 0; z-index: 1001; overflow: hidden; + // 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; @@ -63,19 +54,20 @@ } .svg-icon { - margin-right: 16px; - } - - .sub-el-icon { - margin-right: 12px; - margin-left: -2px; + // margin-right: 16px; + margin-right: 4px; } .el-menu { border: none; height: 100%; width: 100% !important; - background: none; + } + + .el-menu-item, .el-submenu__title { + overflow: hidden !important; + text-overflow: ellipsis !important; + white-space: nowrap !important; } // menu hover @@ -103,11 +95,11 @@ .hideSidebar { .sidebar-container { - width: 60px !important; + width: 54px !important; } .main-container { - margin-left: 60px; + margin-left: 54px; } .submenu-title-noDropdown { @@ -118,11 +110,7 @@ padding: 0 !important; .svg-icon { - margin-left: 20px; - } - - .sub-el-icon { - margin-left: 19px; + margin-left: 14px; } } } @@ -134,11 +122,7 @@ padding: 0 !important; .svg-icon { - margin-left: 20px; - } - - .sub-el-icon { - margin-left: 19px; + margin-left: 14px; } .el-submenu__icon-arrow { @@ -147,7 +131,7 @@ } } - .el-menu--collapse { + /* .el-menu--collapse { .el-submenu { &>.el-submenu__title { &>span { @@ -159,7 +143,7 @@ } } } - } + } */ } .el-menu--collapse .el-menu .el-submenu { @@ -201,10 +185,6 @@ .svg-icon { margin-right: 16px; } - .sub-el-icon { - margin-right: 12px; - margin-left: -2px; - } } .nest-menu .el-submenu>.el-submenu__title, diff --git a/assets/styles/transition.scss b/assets/styles/transition.scss new file mode 100644 index 0000000..4cb27cc --- /dev/null +++ b/assets/styles/transition.scss @@ -0,0 +1,48 @@ +// global transition css + +/* fade */ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.28s; +} + +.fade-enter, +.fade-leave-active { + opacity: 0; +} + +/* fade-transform */ +.fade-transform-leave-active, +.fade-transform-enter-active { + transition: all .5s; +} + +.fade-transform-enter { + opacity: 0; + transform: translateX(-30px); +} + +.fade-transform-leave-to { + opacity: 0; + transform: translateX(30px); +} + +/* breadcrumb transition */ +.breadcrumb-enter-active, +.breadcrumb-leave-active { + transition: all .5s; +} + +.breadcrumb-enter, +.breadcrumb-leave-active { + opacity: 0; + transform: translateX(20px); +} + +.breadcrumb-move { + transition: all .5s; +} + +.breadcrumb-leave-active { + position: absolute; +} diff --git a/assets/styles/uniele.scss b/assets/styles/uniele.scss new file mode 100644 index 0000000..6650517 --- /dev/null +++ b/assets/styles/uniele.scss @@ -0,0 +1,239 @@ + /** + * 通用css样式布局处理 + */ + + /** 基础通用 **/ +.pt5 { + padding-top: 5px; +} +.pr5 { + padding-right: 5px; +} +.pb5 { + padding-bottom: 5px; +} +.mt5 { + margin-top: 5px; +} +.mr5 { + margin-right: 5px; +} +.mb5 { + margin-bottom: 5px; +} +.mb8 { + margin-bottom: 8px; +} +.ml5 { + margin-left: 5px; +} +.mt10 { + margin-top: 10px; +} +.mr10 { + margin-right: 10px; +} +.mb10 { + margin-bottom: 10px; +} +.ml0 { + margin-left: 10px; +} +.mt20 { + margin-top: 20px; +} +.mr20 { + margin-right: 20px; +} +.mb20 { + margin-bottom: 20px; +} +.m20 { + margin-left: 20px; +} + +.el-dialog:not(.is-fullscreen){ + margin-top: 6vh !important; +} + +.el-table { + .el-table__header-wrapper, .el-table__fixed-header-wrapper { + th { + word-break: break-word; + background-color: #f8f8f9; + color: #515a6e; + height: 40px; + font-size: 13px; + } + } + .el-table__body-wrapper { + .el-button [class*="el-icon-"] + span { + margin-left: 1px; + } + } +} + +/** 表单布局 **/ +.form-header { + font-size:15px; + color:#6379bb; + border-bottom:1px solid #ddd; + margin:8px 10px 25px 10px; + padding-bottom:5px +} + +/** 表格布局 **/ +.pagination-container { + position: relative; + height: 25px; + margin-bottom: 10px; + margin-top: 15px; + padding: 10px 20px !important; +} + +/* tree border */ +.tree-border { + margin-top: 5px; + border: 1px solid #e5e6e7; + background: #FFFFFF none; + border-radius:4px; +} + +.pagination-container .el-pagination { + right: 0; + position: absolute; +} + +.el-table .fixed-width .el-button--mini { + color: #409EFF; + padding-left: 0; + padding-right: 0; + width: inherit; +} + +.el-tree-node__content > .el-checkbox { + margin-right: 8px; +} + +.list-group-striped > .list-group-item { + border-left: 0; + border-right: 0; + border-radius: 0; + padding-left: 0; + padding-right: 0; +} + +.list-group { + padding-left: 0px; + list-style: none; +} + +.list-group-item { + border-bottom: 1px solid #e7eaec; + border-top: 1px solid #e7eaec; + margin-bottom: -1px; + padding: 11px 0px; + font-size: 13px; +} + +.pull-right { + float: right !important; +} + +.el-card__header { + padding: 14px 15px 7px; + min-height: 40px; +} + +.el-card__body { + padding: 15px 20px 20px 20px; +} + +.card-box { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 10px; +} + +/* button color */ +.el-button--cyan.is-active, +.el-button--cyan:active { + background: #20B2AA; + border-color: #20B2AA; + color: #FFFFFF; +} + +.el-button--cyan:focus, +.el-button--cyan:hover { + background: #48D1CC; + border-color: #48D1CC; + color: #FFFFFF; +} + +.el-button--cyan { + background-color: #20B2AA; + border-color: #20B2AA; + color: #FFFFFF; +} + +/* text color */ +.text-navy { + color: #1ab394; +} + +.text-primary { + color: inherit; +} + +.text-success { + color: #1c84c6; +} + +.text-info { + color: #23c6c8; +} + +.text-warning { + color: #f8ac59; +} + +.text-danger { + color: #ed5565; +} + +.text-muted { + color: #888888; +} + +/* image */ +.img-circle { + border-radius: 50%; +} + +.img-lg { + width: 120px; + height: 120px; +} + +.avatar-upload-preview { + position: absolute; + top: 50%; + transform: translate(50%, -50%); + width: 200px; + height: 200px; + border-radius: 50%; + box-shadow: 0 0 4px #ccc; + overflow: hidden; +} + +/* 拖拽列样式 */ +.sortable-ghost{ + opacity: .8; + color: #fff!important; + background: #42b983!important; +} + +.top-right-btn { + position: relative; + float: right; +} \ No newline at end of file diff --git a/src/styles/variables.scss b/assets/styles/variables.scss similarity index 97% rename from src/styles/variables.scss rename to assets/styles/variables.scss index a19c27c..5688f25 100644 --- a/src/styles/variables.scss +++ b/assets/styles/variables.scss @@ -19,7 +19,7 @@ $menuHover:#263445; $subMenuBg:#1f2d3d; $subMenuHover:#001528; -$sideBarWidth: 210px; +$sideBarWidth: 200px; // the :export directive is the magic sauce for webpack // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e955840..0000000 --- a/babel.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} diff --git a/build.js b/build.js new file mode 100644 index 0000000..5ba55bc --- /dev/null +++ b/build.js @@ -0,0 +1,51 @@ +const { + exec +} = require("child_process"); + +function init() { + exec("npm install", (error, stdout, stderr) => { + if (error) { + console.error(`执行install出错`); + return; + } + const { + say + } = require("cfonts"); + const chalk = require("chalk"); + say("unicloudAdmin", { + colors: ["yellow"], + font: "simple", + space: true, + }); + console.log( + chalk.blue("┏ 正在使用安装NPM依赖 -----------------") + "\n" + ); + exec( + "cd cloudfunctions-aliyun/api && npm install", + (error, stdout, stderr) => { + console.log(stdout) + if (error) { + console.error(`执行安装云开发环境出错`); + return; + } + console.log( + chalk.blue("┗ 安装完毕 ----------------------------") + "\n" + ); + console.log(chalk.bold.red(" 请继续使用HBuilderx运行服务") + "\n"); + console.log(chalk.yellow(" --------------- 鸣谢 ----------------")); + console.log(chalk.yellow("| |")); + console.log(chalk.yellow("| 开源不易,需要鼓励 |")); + console.log(chalk.yellow("| By: 迷糊K(Ferryman) |")); + console.log(chalk.yellow("| 如有其他问题请联系: |")); + console.log(chalk.yellow("| QQ: 631038597 |")); + console.log(chalk.yellow("| 邮箱: zhanhengwork@outlook.com |")); + console.log(chalk.yellow("| |")); + console.log( + chalk.yellow(" -------------------------------------") + "\n" + ); + } + ); + }); +} + +init(); diff --git a/components/Breadcrumb/index.vue b/components/Breadcrumb/index.vue new file mode 100644 index 0000000..63b7f37 --- /dev/null +++ b/components/Breadcrumb/index.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/components/Hamburger/index.vue b/components/Hamburger/index.vue new file mode 100644 index 0000000..368b002 --- /dev/null +++ b/components/Hamburger/index.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/components/HeaderSearch/index.vue b/components/HeaderSearch/index.vue new file mode 100644 index 0000000..3b4790d --- /dev/null +++ b/components/HeaderSearch/index.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/components/IconSelect/index.vue b/components/IconSelect/index.vue new file mode 100644 index 0000000..b0ec9fa --- /dev/null +++ b/components/IconSelect/index.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/components/IconSelect/requireIcons.js b/components/IconSelect/requireIcons.js new file mode 100644 index 0000000..99e5c54 --- /dev/null +++ b/components/IconSelect/requireIcons.js @@ -0,0 +1,11 @@ + +const req = require.context('../../assets/icons/svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys() + +const re = /\.\/(.*)\.svg/ + +const icons = requireAll(req).map(i => { + return i.match(re)[1] +}) + +export default icons diff --git a/components/Pagination/index.vue b/components/Pagination/index.vue new file mode 100644 index 0000000..c815e13 --- /dev/null +++ b/components/Pagination/index.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/components/PanThumb/index.vue b/components/PanThumb/index.vue new file mode 100644 index 0000000..1bcf417 --- /dev/null +++ b/components/PanThumb/index.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/components/ParentView/index.vue b/components/ParentView/index.vue new file mode 100644 index 0000000..7bf6148 --- /dev/null +++ b/components/ParentView/index.vue @@ -0,0 +1,3 @@ + diff --git a/components/RightPanel/index.vue b/components/RightPanel/index.vue new file mode 100644 index 0000000..35931d1 --- /dev/null +++ b/components/RightPanel/index.vue @@ -0,0 +1,151 @@ + + + + + + + diff --git a/components/RightToolbar/index.vue b/components/RightToolbar/index.vue new file mode 100644 index 0000000..494c0b8 --- /dev/null +++ b/components/RightToolbar/index.vue @@ -0,0 +1,38 @@ + + + diff --git a/components/Screenfull/index.vue b/components/Screenfull/index.vue new file mode 100644 index 0000000..6950a89 --- /dev/null +++ b/components/Screenfull/index.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/components/SizeSelect/index.vue b/components/SizeSelect/index.vue new file mode 100644 index 0000000..8a48df2 --- /dev/null +++ b/components/SizeSelect/index.vue @@ -0,0 +1,56 @@ + + + diff --git a/components/SvgIcon/index.vue b/components/SvgIcon/index.vue new file mode 100644 index 0000000..c455e67 --- /dev/null +++ b/components/SvgIcon/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/components/ThemePicker/index.vue b/components/ThemePicker/index.vue new file mode 100644 index 0000000..3879c5a --- /dev/null +++ b/components/ThemePicker/index.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/components/UniEle/Doc/index.vue b/components/UniEle/Doc/index.vue new file mode 100644 index 0000000..985088e --- /dev/null +++ b/components/UniEle/Doc/index.vue @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git a/components/UniEle/Git/index.vue b/components/UniEle/Git/index.vue new file mode 100644 index 0000000..b5105c7 --- /dev/null +++ b/components/UniEle/Git/index.vue @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git a/components/UploadImage/index.vue b/components/UploadImage/index.vue new file mode 100644 index 0000000..87b3ee9 --- /dev/null +++ b/components/UploadImage/index.vue @@ -0,0 +1,68 @@ + + + + + \ No newline at end of file diff --git a/components/vue-admin-perfect/public/favicon.ico b/components/vue-admin-perfect/public/favicon.ico deleted file mode 100644 index df36fcf..0000000 Binary files a/components/vue-admin-perfect/public/favicon.ico and /dev/null differ diff --git a/components/vue-admin-perfect/public/index.html b/components/vue-admin-perfect/public/index.html deleted file mode 100644 index 3e5a139..0000000 --- a/components/vue-admin-perfect/public/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - <%= htmlWebpackPlugin.options.title %> - - - -
- - - diff --git a/components/vue-admin-perfect/read/1.png b/components/vue-admin-perfect/read/1.png deleted file mode 100644 index c1ebb6d..0000000 Binary files a/components/vue-admin-perfect/read/1.png and /dev/null differ diff --git a/components/vue-admin-perfect/read/2.png b/components/vue-admin-perfect/read/2.png deleted file mode 100644 index 4f1a026..0000000 Binary files a/components/vue-admin-perfect/read/2.png and /dev/null differ diff --git a/components/vue-admin-perfect/read/3.png b/components/vue-admin-perfect/read/3.png deleted file mode 100644 index a1ce9e0..0000000 Binary files a/components/vue-admin-perfect/read/3.png and /dev/null differ diff --git a/components/vue-admin-perfect/read/4.png b/components/vue-admin-perfect/read/4.png deleted file mode 100644 index 2e7fcac..0000000 Binary files a/components/vue-admin-perfect/read/4.png and /dev/null differ diff --git a/components/vue-admin-perfect/read/5.png b/components/vue-admin-perfect/read/5.png deleted file mode 100644 index cd205ee..0000000 Binary files a/components/vue-admin-perfect/read/5.png and /dev/null differ diff --git a/components/vue-admin-perfect/read/6.png b/components/vue-admin-perfect/read/6.png deleted file mode 100644 index 92f7242..0000000 Binary files a/components/vue-admin-perfect/read/6.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/App.vue b/components/vue-admin-perfect/src/App.vue deleted file mode 100644 index d403b7b..0000000 --- a/components/vue-admin-perfect/src/App.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/abandon/demo.vue b/components/vue-admin-perfect/src/abandon/demo.vue deleted file mode 100644 index b4c751f..0000000 --- a/components/vue-admin-perfect/src/abandon/demo.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - diff --git a/components/vue-admin-perfect/src/abandon/exprotExcel.ts b/components/vue-admin-perfect/src/abandon/exprotExcel.ts deleted file mode 100644 index 9a1b974..0000000 --- a/components/vue-admin-perfect/src/abandon/exprotExcel.ts +++ /dev/null @@ -1,200 +0,0 @@ -const ExcelJS = require("exceljs"); - -const autoWidthAction = (val,width=10)=>{ - if (val == null) { - width = 10; - } else if (val.toString().charCodeAt(0) > 255) { - /*if chinese*/ - width = val.toString().length * 2; - } else { - width = val.toString().length; - } - return width -} -export const exportExcel = ({column,data,filename,autoWidth})=>{ - // 创建excel - const workbook = new ExcelJS.Workbook(); - // 设置信息 - workbook.creator = "Me"; - workbook.title = filename; - workbook.created = new Date(); - workbook.modified = new Date(); - // 创建工作表 - const worksheet = workbook.addWorksheet(filename); - // 设置列名 - let columnsName = []; - column.forEach((item,index)=>{ - let obj = { - header: item.label, key:item.name, width: null - } - if(autoWidth){ - let maxArr = [autoWidthAction(item.label)] - data.forEach(ite=>{ - let str = ite[item.name] ||'' - if(str){ - maxArr.push(autoWidthAction(str)) - } - }) - obj.width = Math.max(...maxArr)+5 - } - // 设置列名、键和宽度 - columnsName.push(obj); - }) - worksheet.columns = columnsName; - // 添加行 - worksheet.addRows(data); - // 写入文件 - workbook.xlsx.writeBuffer().then((data) => { - const blob = new Blob([data, { type: "application/vnd.ms-excel" }]); - if (window.navigator.msSaveOrOpenBlob) { - // msSaveOrOpenBlob方法返回boolean值 - navigator.msSaveBlob(blob, filename + ".xlsx"); - // 本地保存 - } else { - const link = document.createElement("a"); // a标签下载 - link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 - link.download = filename + ".xlsx"; // dowload属性指定文件名 - link.click(); // click()事件触发下载 - window.URL.revokeObjectURL(link.href); // 释放内存 - } - }); -} -// 默认的列宽 -export const DEFAULT_COLUMN_WIDTH = 20; - -function getColumnNumber(width: number) { - // 需要的列数,四舍五入 - return Math.round(width / DEFAULT_COLUMN_WIDTH); -} - - -function addData(worksheet,headerKeys,headers,data){ - -} - -export const exportMultiHeaderExcel = ({column,data,filename,autoWidth})=>{ - // 创建excel - const workbook = new ExcelJS.Workbook(); - // 创建工作表 - const worksheet = workbook.addWorksheet(filename); - - // 第一行表头 - const names1= []; - // 第二行表头 - const names2= []; - - // 用于匹配数据的 keys - const headerKeys= []; - - let headers = []; - column.forEach((item,index)=>{ - let obj = { - header: item.label, key:item.name, width: null - } - let maxArr = [autoWidthAction(item.label)] - data.forEach(ite=>{ - let str = ite[item.name] ||'' - if(str){ - maxArr.push(autoWidthAction(str)) - } - }) - obj.width = Math.max(...maxArr)+5 - // 设置列名、键和宽度 - headers.push(obj); - }) - - column.forEach(item => { - if (item.children) { - // 有 children 说明是多级表头,header name 需要两行 - item.children.forEach(child => { - names1.push(item.label); - names2.push(child.label); - headerKeys.push(child.name); - }); - } else { - names1.push(item.label); - names2.push(item.label); - headerKeys.push(item.name); - } - }); - - - - // 判断是否有 children, 有的话是两行表头 - const isMultiHeader = column.some(item => item.children); - if(isMultiHeader){ - const rowHeader1 = worksheet.addRow(names1); - const rowHeader2 = worksheet.addRow(names2); - - console.log('rowHeader1====',names1,names2,rowHeader1,rowHeader2) - mergeColumnCell(headers, rowHeader1, rowHeader2, names1, names2, worksheet) - // return - - } - - data.forEach((item: any) => { - const rowData = headerKeys?.map(key => item[key]); - const row = worksheet.addRow(rowData); - // console.log('row--------',row) - }) - // 写入文件 - workbook.xlsx.writeBuffer().then((data) => { - const blob = new Blob([data, { type: "application/vnd.ms-excel" }]); - if (window.navigator.msSaveOrOpenBlob) { - // msSaveOrOpenBlob方法返回boolean值 - navigator.msSaveBlob(blob, filename + ".xlsx"); - // 本地保存 - } else { - const link = document.createElement("a"); // a标签下载 - link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 - link.download = filename + ".xlsx"; // dowload属性指定文件名 - link.click(); // click()事件触发下载 - window.URL.revokeObjectURL(link.href); // 释放内存 - } - }); -} - - -function mergeColumnCell(headers, rowHeader1, rowHeader2, nameRow1, nameRow2, worksheet){ - // 当前 index 的指针 - let pointer = -1; - nameRow1.forEach((name, index) => { - // 当 index 小于指针时,说明这一列已经被合并过了,不能再合并 - if (index <= pointer) return; - // 是否应该列合并 - const shouldVerticalMerge = name === nameRow2[index]; - - - // 是否应该行合并 - const shouldHorizontalMerge = index !== nameRow1.lastIndexOf(name); - - console.log('==',name,nameRow2[index],index,nameRow1.lastIndexOf(name),shouldVerticalMerge,shouldHorizontalMerge) - - pointer = nameRow1.lastIndexOf(name); - if (shouldVerticalMerge && shouldHorizontalMerge) { - // 两个方向都合并 - worksheet.mergeCells( - Number(rowHeader1.number), - index + 1, - Number(rowHeader2.number), - nameRow1.lastIndexOf(name) + 1, - ); - console.log('==') - } else if (shouldVerticalMerge && !shouldHorizontalMerge) { - // 只在垂直方向上同一列的两行合并 - worksheet.mergeCells(Number(rowHeader1.number), index + 1, Number(rowHeader2.number), index + 1); - } else if (!shouldVerticalMerge && shouldHorizontalMerge) { - // 只有水平方向同一行的多列合并 - worksheet.mergeCells( - Number(rowHeader1.number), - index + 1, - Number(rowHeader1.number), - nameRow1.lastIndexOf(name) + 1, - ); - // eslint-disable-next-line no-param-reassign - const cell = rowHeader1.getCell(index + 1); - cell.alignment = { vertical: 'middle', horizontal: 'center', wrapText: true }; - } - }); - -} diff --git a/components/vue-admin-perfect/src/assets/2.png b/components/vue-admin-perfect/src/assets/2.png deleted file mode 100644 index e69de29..0000000 diff --git a/components/vue-admin-perfect/src/assets/3.png b/components/vue-admin-perfect/src/assets/3.png deleted file mode 100644 index 0daef75..0000000 Binary files a/components/vue-admin-perfect/src/assets/3.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/NO.png b/components/vue-admin-perfect/src/assets/face/NO.png deleted file mode 100644 index de13583..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/NO.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/OK.png b/components/vue-admin-perfect/src/assets/face/OK.png deleted file mode 100644 index 976248f..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/OK.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/emoji-after.png b/components/vue-admin-perfect/src/assets/face/emoji-after.png deleted file mode 100644 index ca2211d..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/emoji-after.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/emoji-before.png b/components/vue-admin-perfect/src/assets/face/emoji-before.png deleted file mode 100644 index 620b6b5..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/emoji-before.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/乒乓.png b/components/vue-admin-perfect/src/assets/face/乒乓.png deleted file mode 100644 index 606eefe..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/乒乓.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/乱舞.png b/components/vue-admin-perfect/src/assets/face/乱舞.png deleted file mode 100644 index 137ba8f..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/乱舞.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/亲亲.png b/components/vue-admin-perfect/src/assets/face/亲亲.png deleted file mode 100644 index f09535c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/亲亲.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/便便.png b/components/vue-admin-perfect/src/assets/face/便便.png deleted file mode 100644 index 6e7ea6b..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/便便.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/偷笑.png b/components/vue-admin-perfect/src/assets/face/偷笑.png deleted file mode 100644 index e7ede5a..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/偷笑.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/傲慢.png b/components/vue-admin-perfect/src/assets/face/傲慢.png deleted file mode 100644 index 4bf853c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/傲慢.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/再见.png b/components/vue-admin-perfect/src/assets/face/再见.png deleted file mode 100644 index 33c29ba..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/再见.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/冷汗.png b/components/vue-admin-perfect/src/assets/face/冷汗.png deleted file mode 100644 index 19fff5a..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/冷汗.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/凋谢.png b/components/vue-admin-perfect/src/assets/face/凋谢.png deleted file mode 100644 index 7aadc6f..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/凋谢.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/刀.png b/components/vue-admin-perfect/src/assets/face/刀.png deleted file mode 100644 index 44fa579..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/刀.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/勾引.png b/components/vue-admin-perfect/src/assets/face/勾引.png deleted file mode 100644 index 97ac70d..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/勾引.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/发呆.png b/components/vue-admin-perfect/src/assets/face/发呆.png deleted file mode 100644 index b562171..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/发呆.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/发怒.png b/components/vue-admin-perfect/src/assets/face/发怒.png deleted file mode 100644 index ea04e8c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/发怒.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/发抖.png b/components/vue-admin-perfect/src/assets/face/发抖.png deleted file mode 100644 index f36e3a0..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/发抖.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/可怜.png b/components/vue-admin-perfect/src/assets/face/可怜.png deleted file mode 100644 index 8b4a094..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/可怜.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/右哼哼.png b/components/vue-admin-perfect/src/assets/face/右哼哼.png deleted file mode 100644 index 3938340..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/右哼哼.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/右太极.png b/components/vue-admin-perfect/src/assets/face/右太极.png deleted file mode 100644 index 3ef59eb..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/右太极.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/吐.png b/components/vue-admin-perfect/src/assets/face/吐.png deleted file mode 100644 index 766ad1d..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/吐.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/吓.png b/components/vue-admin-perfect/src/assets/face/吓.png deleted file mode 100644 index a10a2bb..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/吓.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/呲牙.png b/components/vue-admin-perfect/src/assets/face/呲牙.png deleted file mode 100644 index b626e67..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/呲牙.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/咒骂.png b/components/vue-admin-perfect/src/assets/face/咒骂.png deleted file mode 100644 index 8fa8c6b..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/咒骂.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/咖啡.png b/components/vue-admin-perfect/src/assets/face/咖啡.png deleted file mode 100644 index 9db94c3..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/咖啡.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/哈欠.png b/components/vue-admin-perfect/src/assets/face/哈欠.png deleted file mode 100644 index 1c42a73..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/哈欠.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/啤酒.png b/components/vue-admin-perfect/src/assets/face/啤酒.png deleted file mode 100644 index 0f8c77c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/啤酒.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/嘘.png b/components/vue-admin-perfect/src/assets/face/嘘.png deleted file mode 100644 index 14eadc6..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/嘘.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/嘴唇.png b/components/vue-admin-perfect/src/assets/face/嘴唇.png deleted file mode 100644 index c30fec3..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/嘴唇.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/嘿哈.png b/components/vue-admin-perfect/src/assets/face/嘿哈.png deleted file mode 100644 index f046059..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/嘿哈.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/回头.png b/components/vue-admin-perfect/src/assets/face/回头.png deleted file mode 100644 index 6cd2d29..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/回头.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/困.png b/components/vue-admin-perfect/src/assets/face/困.png deleted file mode 100644 index f878067..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/困.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/坏笑.png b/components/vue-admin-perfect/src/assets/face/坏笑.png deleted file mode 100644 index c082745..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/坏笑.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/大哭.png b/components/vue-admin-perfect/src/assets/face/大哭.png deleted file mode 100644 index a2fe2c2..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/大哭.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/太阳.png b/components/vue-admin-perfect/src/assets/face/太阳.png deleted file mode 100644 index c89a346..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/太阳.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/奋斗.png b/components/vue-admin-perfect/src/assets/face/奋斗.png deleted file mode 100644 index 82a71f6..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/奋斗.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/奸笑.png b/components/vue-admin-perfect/src/assets/face/奸笑.png deleted file mode 100644 index 543a4da..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/奸笑.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/委屈.png b/components/vue-admin-perfect/src/assets/face/委屈.png deleted file mode 100644 index 1e2e39e..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/委屈.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/害羞.png b/components/vue-admin-perfect/src/assets/face/害羞.png deleted file mode 100644 index 67f4072..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/害羞.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/尴尬.png b/components/vue-admin-perfect/src/assets/face/尴尬.png deleted file mode 100644 index a954c55..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/尴尬.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/左哼哼.png b/components/vue-admin-perfect/src/assets/face/左哼哼.png deleted file mode 100644 index 0e9f122..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/左哼哼.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/左太极.png b/components/vue-admin-perfect/src/assets/face/左太极.png deleted file mode 100644 index d01df1b..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/左太极.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/差劲.png b/components/vue-admin-perfect/src/assets/face/差劲.png deleted file mode 100644 index 8ddde22..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/差劲.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/弱.png b/components/vue-admin-perfect/src/assets/face/弱.png deleted file mode 100644 index 6bf1caf..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/弱.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/强.png b/components/vue-admin-perfect/src/assets/face/强.png deleted file mode 100644 index 7e34985..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/强.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/得意.png b/components/vue-admin-perfect/src/assets/face/得意.png deleted file mode 100644 index 2b1ba69..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/得意.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/微笑.png b/components/vue-admin-perfect/src/assets/face/微笑.png deleted file mode 100644 index 4a38990..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/微笑.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/心碎.png b/components/vue-admin-perfect/src/assets/face/心碎.png deleted file mode 100644 index 0665834..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/心碎.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/快哭了.png b/components/vue-admin-perfect/src/assets/face/快哭了.png deleted file mode 100644 index b9b5190..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/快哭了.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/怄火.png b/components/vue-admin-perfect/src/assets/face/怄火.png deleted file mode 100644 index 8a05c34..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/怄火.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/悠闲.png b/components/vue-admin-perfect/src/assets/face/悠闲.png deleted file mode 100644 index e8d4a4a..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/悠闲.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/惊恐.png b/components/vue-admin-perfect/src/assets/face/惊恐.png deleted file mode 100644 index 648b4fe..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/惊恐.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/惊讶.png b/components/vue-admin-perfect/src/assets/face/惊讶.png deleted file mode 100644 index 1e86345..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/惊讶.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/愉快.png b/components/vue-admin-perfect/src/assets/face/愉快.png deleted file mode 100644 index 91ad87c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/愉快.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/憨笑.png b/components/vue-admin-perfect/src/assets/face/憨笑.png deleted file mode 100644 index 4aa5d0c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/憨笑.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/抓狂.png b/components/vue-admin-perfect/src/assets/face/抓狂.png deleted file mode 100644 index 51740fb..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/抓狂.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/投降.png b/components/vue-admin-perfect/src/assets/face/投降.png deleted file mode 100644 index aee818c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/投降.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/抠鼻.png b/components/vue-admin-perfect/src/assets/face/抠鼻.png deleted file mode 100644 index 14c6af7..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/抠鼻.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/抱拳.png b/components/vue-admin-perfect/src/assets/face/抱拳.png deleted file mode 100644 index 7c8bd29..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/抱拳.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/拥抱.png b/components/vue-admin-perfect/src/assets/face/拥抱.png deleted file mode 100644 index 0fcc271..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/拥抱.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/拳头.png b/components/vue-admin-perfect/src/assets/face/拳头.png deleted file mode 100644 index 166e87a..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/拳头.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/捂脸.png b/components/vue-admin-perfect/src/assets/face/捂脸.png deleted file mode 100644 index 2459dd5..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/捂脸.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/握手.png b/components/vue-admin-perfect/src/assets/face/握手.png deleted file mode 100644 index e9bc91c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/握手.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/撇嘴.png b/components/vue-admin-perfect/src/assets/face/撇嘴.png deleted file mode 100644 index 5dbb5b3..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/撇嘴.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/擦汗.png b/components/vue-admin-perfect/src/assets/face/擦汗.png deleted file mode 100644 index 3e82855..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/擦汗.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/敲打.png b/components/vue-admin-perfect/src/assets/face/敲打.png deleted file mode 100644 index 5c40d2a..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/敲打.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/晕.png b/components/vue-admin-perfect/src/assets/face/晕.png deleted file mode 100644 index de893e4..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/晕.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/月亮.png b/components/vue-admin-perfect/src/assets/face/月亮.png deleted file mode 100644 index fb3b35e..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/月亮.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/机智.png b/components/vue-admin-perfect/src/assets/face/机智.png deleted file mode 100644 index 4002d4e..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/机智.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/流汗.png b/components/vue-admin-perfect/src/assets/face/流汗.png deleted file mode 100644 index 39a9ef5..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/流汗.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/流泪.png b/components/vue-admin-perfect/src/assets/face/流泪.png deleted file mode 100644 index 9912664..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/流泪.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/激动.png b/components/vue-admin-perfect/src/assets/face/激动.png deleted file mode 100644 index 84b6372..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/激动.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/炸弹.png b/components/vue-admin-perfect/src/assets/face/炸弹.png deleted file mode 100644 index 3b6320c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/炸弹.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/爱你.png b/components/vue-admin-perfect/src/assets/face/爱你.png deleted file mode 100644 index abc26dd..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/爱你.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/爱心.png b/components/vue-admin-perfect/src/assets/face/爱心.png deleted file mode 100644 index b1582e9..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/爱心.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/爱情.png b/components/vue-admin-perfect/src/assets/face/爱情.png deleted file mode 100644 index baa3602..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/爱情.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/猪头.png b/components/vue-admin-perfect/src/assets/face/猪头.png deleted file mode 100644 index cb56ee0..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/猪头.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/献吻.png b/components/vue-admin-perfect/src/assets/face/献吻.png deleted file mode 100644 index 933404e..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/献吻.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/玫瑰.png b/components/vue-admin-perfect/src/assets/face/玫瑰.png deleted file mode 100644 index 5cdf902..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/玫瑰.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/瓢虫.png b/components/vue-admin-perfect/src/assets/face/瓢虫.png deleted file mode 100644 index fd6ca53..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/瓢虫.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/疑问.png b/components/vue-admin-perfect/src/assets/face/疑问.png deleted file mode 100644 index 48567b7..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/疑问.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/疯了.png b/components/vue-admin-perfect/src/assets/face/疯了.png deleted file mode 100644 index 9dcb8eb..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/疯了.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/白眼.png b/components/vue-admin-perfect/src/assets/face/白眼.png deleted file mode 100644 index 0b2cb45..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/白眼.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/皱眉.png b/components/vue-admin-perfect/src/assets/face/皱眉.png deleted file mode 100644 index 289b6b2..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/皱眉.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/睡.png b/components/vue-admin-perfect/src/assets/face/睡.png deleted file mode 100644 index d02cc5c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/睡.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/磕头.png b/components/vue-admin-perfect/src/assets/face/磕头.png deleted file mode 100644 index 0cdc841..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/磕头.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/礼物.png b/components/vue-admin-perfect/src/assets/face/礼物.png deleted file mode 100644 index f2219ca..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/礼物.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/篮球.png b/components/vue-admin-perfect/src/assets/face/篮球.png deleted file mode 100644 index ba51abf..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/篮球.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/糗大了.png b/components/vue-admin-perfect/src/assets/face/糗大了.png deleted file mode 100644 index 3c966ef..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/糗大了.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/红包.png b/components/vue-admin-perfect/src/assets/face/红包.png deleted file mode 100644 index dd1941a..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/红包.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/耶.png b/components/vue-admin-perfect/src/assets/face/耶.png deleted file mode 100644 index 0f6f5a9..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/耶.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/胜利.png b/components/vue-admin-perfect/src/assets/face/胜利.png deleted file mode 100644 index ec1fc0b..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/胜利.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/色.png b/components/vue-admin-perfect/src/assets/face/色.png deleted file mode 100644 index 86107c6..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/色.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/菜刀.png b/components/vue-admin-perfect/src/assets/face/菜刀.png deleted file mode 100644 index 336e6fd..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/菜刀.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/蛋糕.png b/components/vue-admin-perfect/src/assets/face/蛋糕.png deleted file mode 100644 index 1a97494..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/蛋糕.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/衰.png b/components/vue-admin-perfect/src/assets/face/衰.png deleted file mode 100644 index 438af01..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/衰.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/西瓜.png b/components/vue-admin-perfect/src/assets/face/西瓜.png deleted file mode 100644 index fb381c5..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/西瓜.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/调皮.png b/components/vue-admin-perfect/src/assets/face/调皮.png deleted file mode 100644 index 4815f5f..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/调皮.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/足球.png b/components/vue-admin-perfect/src/assets/face/足球.png deleted file mode 100644 index e9c08ca..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/足球.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/跳绳.png b/components/vue-admin-perfect/src/assets/face/跳绳.png deleted file mode 100644 index 26a0b85..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/跳绳.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/跳跳.png b/components/vue-admin-perfect/src/assets/face/跳跳.png deleted file mode 100644 index c370740..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/跳跳.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/转圈.png b/components/vue-admin-perfect/src/assets/face/转圈.png deleted file mode 100644 index 6501073..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/转圈.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/鄙视.png b/components/vue-admin-perfect/src/assets/face/鄙视.png deleted file mode 100644 index 03087b5..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/鄙视.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/酷.png b/components/vue-admin-perfect/src/assets/face/酷.png deleted file mode 100644 index 9884164..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/酷.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/闪电.png b/components/vue-admin-perfect/src/assets/face/闪电.png deleted file mode 100644 index ea0178b..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/闪电.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/闭嘴.png b/components/vue-admin-perfect/src/assets/face/闭嘴.png deleted file mode 100644 index b6bb864..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/闭嘴.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/阴险.png b/components/vue-admin-perfect/src/assets/face/阴险.png deleted file mode 100644 index b1834a9..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/阴险.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/难过.png b/components/vue-admin-perfect/src/assets/face/难过.png deleted file mode 100644 index 69b144c..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/难过.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/飞吻.png b/components/vue-admin-perfect/src/assets/face/飞吻.png deleted file mode 100644 index 57f2296..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/飞吻.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/饥饿.png b/components/vue-admin-perfect/src/assets/face/饥饿.png deleted file mode 100644 index 53aa48a..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/饥饿.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/饭.png b/components/vue-admin-perfect/src/assets/face/饭.png deleted file mode 100644 index 9a4e698..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/饭.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/骷髅.png b/components/vue-admin-perfect/src/assets/face/骷髅.png deleted file mode 100644 index 453226b..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/骷髅.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/鸡.png b/components/vue-admin-perfect/src/assets/face/鸡.png deleted file mode 100644 index 07517f3..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/鸡.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/face/鼓掌.png b/components/vue-admin-perfect/src/assets/face/鼓掌.png deleted file mode 100644 index 027f883..0000000 Binary files a/components/vue-admin-perfect/src/assets/face/鼓掌.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/image/avator.png b/components/vue-admin-perfect/src/assets/image/avator.png deleted file mode 100644 index 7d1e905..0000000 Binary files a/components/vue-admin-perfect/src/assets/image/avator.png and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/image/berserk.jpg b/components/vue-admin-perfect/src/assets/image/berserk.jpg deleted file mode 100644 index 09d0d62..0000000 Binary files a/components/vue-admin-perfect/src/assets/image/berserk.jpg and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/image/cro.jpg b/components/vue-admin-perfect/src/assets/image/cro.jpg deleted file mode 100644 index 29f7614..0000000 Binary files a/components/vue-admin-perfect/src/assets/image/cro.jpg and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/image/error/404.jpeg b/components/vue-admin-perfect/src/assets/image/error/404.jpeg deleted file mode 100644 index 58e8269..0000000 Binary files a/components/vue-admin-perfect/src/assets/image/error/404.jpeg and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/image/im1.jpeg b/components/vue-admin-perfect/src/assets/image/im1.jpeg deleted file mode 100644 index ea28337..0000000 Binary files a/components/vue-admin-perfect/src/assets/image/im1.jpeg and /dev/null differ diff --git a/components/vue-admin-perfect/src/assets/mp4/2.mp4 b/components/vue-admin-perfect/src/assets/mp4/2.mp4 deleted file mode 100644 index e69de29..0000000 diff --git a/components/vue-admin-perfect/src/assets/mp4/3.jpeg b/components/vue-admin-perfect/src/assets/mp4/3.jpeg deleted file mode 100644 index e69de29..0000000 diff --git a/components/vue-admin-perfect/src/components/Charts/Keyboard.vue b/components/vue-admin-perfect/src/components/Charts/Keyboard.vue deleted file mode 100644 index 0b258f3..0000000 --- a/components/vue-admin-perfect/src/components/Charts/Keyboard.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/components/Charts/LineMarker.vue b/components/vue-admin-perfect/src/components/Charts/LineMarker.vue deleted file mode 100644 index 580176d..0000000 --- a/components/vue-admin-perfect/src/components/Charts/LineMarker.vue +++ /dev/null @@ -1,230 +0,0 @@ - - diff --git a/components/vue-admin-perfect/src/components/Charts/MixChart.vue b/components/vue-admin-perfect/src/components/Charts/MixChart.vue deleted file mode 100644 index c416542..0000000 --- a/components/vue-admin-perfect/src/components/Charts/MixChart.vue +++ /dev/null @@ -1,271 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/components/Charts/mixins/resize.js b/components/vue-admin-perfect/src/components/Charts/mixins/resize.js deleted file mode 100644 index 20cf1e6..0000000 --- a/components/vue-admin-perfect/src/components/Charts/mixins/resize.js +++ /dev/null @@ -1,56 +0,0 @@ -import { debounce } from '@/utils/index.js' - -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/components/vue-admin-perfect/src/components/pipeline/index.vue b/components/vue-admin-perfect/src/components/pipeline/index.vue deleted file mode 100644 index 1130301..0000000 --- a/components/vue-admin-perfect/src/components/pipeline/index.vue +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/components/vue-admin-perfect/src/components/pipeline/zb-pipeline-start.vue b/components/vue-admin-perfect/src/components/pipeline/zb-pipeline-start.vue deleted file mode 100644 index 0300e82..0000000 --- a/components/vue-admin-perfect/src/components/pipeline/zb-pipeline-start.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/components/u-Hamburger/index.vue b/components/vue-admin-perfect/src/components/u-Hamburger/index.vue deleted file mode 100644 index 9561467..0000000 --- a/components/vue-admin-perfect/src/components/u-Hamburger/index.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/components/u-mavonEditor/index.vue b/components/vue-admin-perfect/src/components/u-mavonEditor/index.vue deleted file mode 100644 index 08a64de..0000000 --- a/components/vue-admin-perfect/src/components/u-mavonEditor/index.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/components/u-rightClickMenu/index.vue b/components/vue-admin-perfect/src/components/u-rightClickMenu/index.vue deleted file mode 100644 index c2fd794..0000000 --- a/components/vue-admin-perfect/src/components/u-rightClickMenu/index.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/components/u-screenfull/index.js b/components/vue-admin-perfect/src/components/u-screenfull/index.js deleted file mode 100644 index e1ae5b6..0000000 --- a/components/vue-admin-perfect/src/components/u-screenfull/index.js +++ /dev/null @@ -1,157 +0,0 @@ -/* eslint-disable promise/prefer-await-to-then */ - -const methodMap = [ - [ - 'requestFullscreen', - 'exitFullscreen', - 'fullscreenElement', - 'fullscreenEnabled', - 'fullscreenchange', - 'fullscreenerror', - ], - // New WebKit - [ - 'webkitRequestFullscreen', - 'webkitExitFullscreen', - 'webkitFullscreenElement', - 'webkitFullscreenEnabled', - 'webkitfullscreenchange', - 'webkitfullscreenerror', - - ], - // Old WebKit - [ - 'webkitRequestFullScreen', - 'webkitCancelFullScreen', - 'webkitCurrentFullScreenElement', - 'webkitCancelFullScreen', - 'webkitfullscreenchange', - 'webkitfullscreenerror', - - ], - [ - 'mozRequestFullScreen', - 'mozCancelFullScreen', - 'mozFullScreenElement', - 'mozFullScreenEnabled', - 'mozfullscreenchange', - 'mozfullscreenerror', - ], - [ - 'msRequestFullscreen', - 'msExitFullscreen', - 'msFullscreenElement', - 'msFullscreenEnabled', - 'MSFullscreenChange', - 'MSFullscreenError', - ], -]; - -const nativeAPI = (() => { - const unprefixedMethods = methodMap[0]; - const returnValue = {}; - - for (const methodList of methodMap) { - const exitFullscreenMethod = methodList?.[1]; - if (exitFullscreenMethod in document) { - for (const [index, method] of methodList.entries()) { - returnValue[unprefixedMethods[index]] = method; - } - - return returnValue; - } - } - - return false; -})(); - -const eventNameMap = { - change: nativeAPI.fullscreenchange, - error: nativeAPI.fullscreenerror, -}; - -// eslint-disable-next-line import/no-mutable-exports -let screenfull = { - // eslint-disable-next-line default-param-last - request(element = document.documentElement, options) { - return new Promise((resolve, reject) => { - const onFullScreenEntered = () => { - screenfull.off('change', onFullScreenEntered); - resolve(); - }; - - screenfull.on('change', onFullScreenEntered); - - const returnPromise = element[nativeAPI.requestFullscreen](options); - - if (returnPromise instanceof Promise) { - returnPromise.then(onFullScreenEntered).catch(reject); - } - }); - }, - exit() { - return new Promise((resolve, reject) => { - if (!screenfull.isFullscreen) { - resolve(); - return; - } - - const onFullScreenExit = () => { - screenfull.off('change', onFullScreenExit); - resolve(); - }; - - screenfull.on('change', onFullScreenExit); - - const returnPromise = document[nativeAPI.exitFullscreen](); - - if (returnPromise instanceof Promise) { - returnPromise.then(onFullScreenExit).catch(reject); - } - }); - }, - toggle(element, options) { - return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options); - }, - onchange(callback) { - screenfull.on('change', callback); - }, - onerror(callback) { - screenfull.on('error', callback); - }, - on(event, callback) { - const eventName = eventNameMap[event]; - if (eventName) { - document.addEventListener(eventName, callback, false); - } - }, - off(event, callback) { - const eventName = eventNameMap[event]; - if (eventName) { - document.removeEventListener(eventName, callback, false); - } - }, - raw: nativeAPI, -}; - -Object.defineProperties(screenfull, { - isFullscreen: { - get: () => Boolean(document[nativeAPI.fullscreenElement]), - }, - element: { - enumerable: true, - get: () => document[nativeAPI.fullscreenElement] ?? undefined, - }, - isEnabled: { - enumerable: true, - // Coerce to boolean in case of old WebKit. - get: () => Boolean(document[nativeAPI.fullscreenEnabled]), - }, -}); - -if (!nativeAPI) { - screenfull = {isEnabled: false}; -} - - -export default screenfull; diff --git a/components/vue-admin-perfect/src/components/u-screenfull/index.vue b/components/vue-admin-perfect/src/components/u-screenfull/index.vue deleted file mode 100644 index 6253ab2..0000000 --- a/components/vue-admin-perfect/src/components/u-screenfull/index.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/components/u-setting/index.vue b/components/vue-admin-perfect/src/components/u-setting/index.vue deleted file mode 100644 index f15b243..0000000 --- a/components/vue-admin-perfect/src/components/u-setting/index.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/components/vue-admin-perfect/src/components/u-upload/index.vue b/components/vue-admin-perfect/src/components/u-upload/index.vue deleted file mode 100644 index 4a49826..0000000 --- a/components/vue-admin-perfect/src/components/u-upload/index.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/components/u-wangEdior/index.vue b/components/vue-admin-perfect/src/components/u-wangEdior/index.vue deleted file mode 100644 index af8df04..0000000 --- a/components/vue-admin-perfect/src/components/u-wangEdior/index.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/layout/components/AppMain.vue b/components/vue-admin-perfect/src/layout/components/AppMain.vue deleted file mode 100644 index e48062a..0000000 --- a/components/vue-admin-perfect/src/layout/components/AppMain.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/layout/components/Sidebar/Logo.vue b/components/vue-admin-perfect/src/layout/components/Sidebar/Logo.vue deleted file mode 100644 index 591b168..0000000 --- a/components/vue-admin-perfect/src/layout/components/Sidebar/Logo.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/layout/components/Sidebar/SidebarItem.vue b/components/vue-admin-perfect/src/layout/components/Sidebar/SidebarItem.vue deleted file mode 100644 index 96c1fc2..0000000 --- a/components/vue-admin-perfect/src/layout/components/Sidebar/SidebarItem.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/layout/components/Sidebar/index.vue b/components/vue-admin-perfect/src/layout/components/Sidebar/index.vue deleted file mode 100644 index 0369603..0000000 --- a/components/vue-admin-perfect/src/layout/components/Sidebar/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/layout/components/Sidebar/menuSlide.vue b/components/vue-admin-perfect/src/layout/components/Sidebar/menuSlide.vue deleted file mode 100644 index 033b666..0000000 --- a/components/vue-admin-perfect/src/layout/components/Sidebar/menuSlide.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - \ No newline at end of file diff --git a/components/vue-admin-perfect/src/layout/components/TagsView/ScrollPane.vue b/components/vue-admin-perfect/src/layout/components/TagsView/ScrollPane.vue deleted file mode 100644 index f5a2362..0000000 --- a/components/vue-admin-perfect/src/layout/components/TagsView/ScrollPane.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/layout/components/TagsView/index.vue b/components/vue-admin-perfect/src/layout/components/TagsView/index.vue deleted file mode 100644 index 9747dc3..0000000 --- a/components/vue-admin-perfect/src/layout/components/TagsView/index.vue +++ /dev/null @@ -1,202 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/layout/components/UHeader/Personal.vue b/components/vue-admin-perfect/src/layout/components/UHeader/Personal.vue deleted file mode 100644 index eb8657f..0000000 --- a/components/vue-admin-perfect/src/layout/components/UHeader/Personal.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/layout/components/UHeader/expand.vue b/components/vue-admin-perfect/src/layout/components/UHeader/expand.vue deleted file mode 100644 index e69de29..0000000 diff --git a/components/vue-admin-perfect/src/layout/components/UHeader/index.vue b/components/vue-admin-perfect/src/layout/components/UHeader/index.vue deleted file mode 100644 index baa4631..0000000 --- a/components/vue-admin-perfect/src/layout/components/UHeader/index.vue +++ /dev/null @@ -1,168 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/layout/hooks/useResizeHandler.ts b/components/vue-admin-perfect/src/layout/hooks/useResizeHandler.ts deleted file mode 100644 index 0cc690e..0000000 --- a/components/vue-admin-perfect/src/layout/hooks/useResizeHandler.ts +++ /dev/null @@ -1,49 +0,0 @@ -import store from '@/store' -import {computed, onMounted, onUnmounted, watch} from "vue"; -import {useRoute} from "vue-router"; - -const { body } = document - -const WIDTH = 992 // refer to Bootstrap's responsive design - -export const useResizeHandler = ()=>{ - const route = useRoute() - const device = computed(()=>{ - return store.state.app.device - }) - function $_isMobile(){ - const rect = body.getBoundingClientRect() - return rect.width - 1 < WIDTH - } - function $_resizeHandler(){ - if (!document.hidden) { // bool型,表示页面是否处于隐藏状态。页面隐藏包括页面在后台标签页或者浏览器最小化 - const isMobile = $_isMobile() - store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop') - - if (isMobile) { - store.dispatch('app/closeSideBar', { withoutAnimation: true }) - } - } - } - onMounted(()=>{ - const isMobile = $_isMobile() - if (isMobile) { - store.dispatch('app/toggleDevice', 'mobile') - store.dispatch('app/closeSideBar', { withoutAnimation: true }) - } - window.addEventListener('resize', $_resizeHandler) - - watch(route,()=>{ - if (device.value === 'mobile' && store.state.app.isCollapse) { - store.dispatch('app/closeSideBar', { withoutAnimation: false }) - } - }) - }) - - onUnmounted(()=>{ - window.removeEventListener('resize', $_resizeHandler) - }) - - - return {device} -} diff --git a/components/vue-admin-perfect/src/layout/index.vue b/components/vue-admin-perfect/src/layout/index.vue deleted file mode 100644 index 6f5adee..0000000 --- a/components/vue-admin-perfect/src/layout/index.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/main.ts b/components/vue-admin-perfect/src/main.ts deleted file mode 100644 index 0046852..0000000 --- a/components/vue-admin-perfect/src/main.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { createApp } from 'vue' -import App from './App.vue' -import router from './router' -import store from './store' - -import './permission' -import ElementPlus from 'element-plus' -import 'element-plus/dist/index.css' -import zhCn from 'element-plus/es/locale/lang/zh-cn' -const app = createApp(App) - -import * as ElIconsModules from '@element-plus/icons-vue' -// 全局注册element-plus icon图标组件 -Object.keys(ElIconsModules).forEach((key) => {//循环遍历组件名称 - if ("Menu" !== key) {//如果不是图标组件不是Menu,就跳过,否则加上ICon的后缀 - app.component(key, ElIconsModules[key]); - } else { - app.component(key + "Icon", ElIconsModules[key]); - } -}); - -import '@/styles/index.scss' // global css -app.use(store).use(router).use(ElementPlus,{ - locale: zhCn, -}).mount('#app') diff --git a/components/vue-admin-perfect/src/permission.js b/components/vue-admin-perfect/src/permission.js deleted file mode 100644 index a791914..0000000 --- a/components/vue-admin-perfect/src/permission.js +++ /dev/null @@ -1,57 +0,0 @@ -import router from './router/index' -import store from './store/index' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' - -NProgress.configure({ showSpinner: false }) // NProgress Configuration - -const whiteList = ['/login', '/auth-redirect'] // 设置白名单 -// 记录路由 -let hasRoles = true - -router.beforeEach(async(to, from, next) => { - // 开启进度条 - NProgress.start() - - // set page title - document.title = to.meta.title - - // 确定用户是否已登录 - const hasToken = getToken() - - if (hasToken) { - if (to.path === '/login') { - // 如果已登录,请重定向到主页 - next({ path: '/' }) - NProgress.done() - } else { - try { - // 路由添加进去了没有及时更新 需要重新进去一次拦截 - if(!store.state.permission.routes.length){ - // 获取权限列表进行接口访问 因为这里页面要切换权限 - // const roles = await store.dispatch('user/getInfo') - const accessRoutes = await store.dispatch('permission/generateRoutes', store.getters.roles) - hasRoles = false - accessRoutes.forEach(item => router.addRoute(item)) // 动态添加访问路由表 - next({ ...to, replace: true }) // // 这里相当于push到一个页面 不在进入路由拦截 - }else { - next() // // 如果不传参数就会重新执行路由拦截,重新进到这里 - } - } catch (error) { - next(`/login?redirect=${to.path}`) - } - } - }else{ - if (whiteList.indexOf(to.path) !== -1) { - next() - } else { - next(`/login?redirect=${to.path}`) - NProgress.done() - } - } -}) - -router.afterEach(() => { - NProgress.done() -}) diff --git a/components/vue-admin-perfect/src/router/index.ts b/components/vue-admin-perfect/src/router/index.ts deleted file mode 100644 index 8189ac1..0000000 --- a/components/vue-admin-perfect/src/router/index.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { createRouter, createWebHistory, RouteRecordRaw,createWebHashHistory,Router } from 'vue-router' -import Layout from "@/layout/index.vue"; - -// 引入组件 -import chartsRouter from './modules/charts' -import chatRouter from './modules/chat' -import componentsRouter from './modules/components' -import othersRouter from './modules/other' -import externalLink from './modules/externalLink' -import permissionRouter from './modules/permission' -import tableRouter from './modules/table' -import errorRouter from './modules/error' -import excelRouter from './modules/excel' - - -interface extendRoute { - hidden?:boolean -} - -export const constantRoutes: Array = [ - { - path: '/login', - name: 'Login', - component: () => import('@/views/login/index.vue'), - hidden: true, - meta: { title: '登录',} - }, - - { - path: '/', - name: 'layout', - component: Layout, - redirect: '/home', - children: [ - { - path: '/home', - component: () => import('@/views/home/index.vue'), - name: 'home', - meta: { title: '首页', icon: 'film', affix: true ,role:['other']} - }, - ] - }, - -] - -const clipboardTable = { - path: '/clipboard', - component: Layout, - redirect: 'noRedirect', - name: 'clipboard', - meta: { - title: 'clipboard', - icon: 'document-copy', - roles:['other'] - }, - children: [ - { - path: 'index', - component: () => import('@/views/clipboard/index.vue'), - name: 'map', - meta: { title: 'clipboard', noCache: true , roles:['other'] ,icon: 'document-copy',} - }, - - ] -} - - -// 异步组件 -export const asyncRoutes = [ - tableRouter, - chartsRouter, - chatRouter, - componentsRouter, - othersRouter, - excelRouter, - errorRouter, - externalLink, - clipboardTable, - permissionRouter, - - { - path: '/:pathMatch(.*)', - redirect: '/error/404' - } -] - - -const router = createRouter({ - // history: createWebHistory(process.env.BASE_URL), // history - history: createWebHashHistory(), // hash - routes:constantRoutes -}) - - - - -export default router diff --git a/components/vue-admin-perfect/src/router/modules/charts.ts b/components/vue-admin-perfect/src/router/modules/charts.ts deleted file mode 100644 index 310a7b2..0000000 --- a/components/vue-admin-perfect/src/router/modules/charts.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const chartsRouter = { - path: '/charts', - component: Layout, - redirect: 'noRedirect', - name: 'Charts', - meta: { - title: '图表', - icon: 'trend-charts', - roles:['other'] - }, - children: [ - // { - // path: 'map', - // component: () => import('@/views/charts/map.vue'), - // name: 'map', - // meta: { title: '地图', noCache: true , roles:['other'] } - // }, - { - path: 'migration', - component: () => import('@/views/charts/migration.vue'), - name: 'migration', - meta: { title: '迁徙图', noCache: true , roles:['other'] } - }, - { - path: 'simple', - component: () => import('@/views/charts/simple.vue'), - name: 'charts-simple', - meta: { title: '简单图表', noCache: true , roles:['other'] } - }, - { - path: 'complex', - component: () => import('@/views/charts/complex.vue'), - name: 'charts-complex', - meta: { title: '复杂图表', noCache: true , roles:['other'] } - }, - ] -} - -export default chartsRouter diff --git a/components/vue-admin-perfect/src/router/modules/chat.ts b/components/vue-admin-perfect/src/router/modules/chat.ts deleted file mode 100644 index a0bd5b0..0000000 --- a/components/vue-admin-perfect/src/router/modules/chat.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const chartsRouter = { - path: '/chat', - component: Layout, - redirect: 'noRedirect', - name: 'chat', - meta: { - title: '聊天框', - icon: 'chat-square' - }, - children: [ - { - path: 'index', - component: () => import('@/views/chat/index.vue'), - name: 'chat', - meta: { title: '聊天框', noCache: true,icon: 'chat-square' } - }, - ] -} - -export default chartsRouter diff --git a/components/vue-admin-perfect/src/router/modules/components.ts b/components/vue-admin-perfect/src/router/modules/components.ts deleted file mode 100644 index cf25b30..0000000 --- a/components/vue-admin-perfect/src/router/modules/components.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const componentsRouter = { - path: '/components', - component: Layout, - redirect: 'noRedirect', - name: 'components', - meta: { - title: '组件', - icon: 'Histogram', - roles:['other'] - }, - children: [ - { - path: 'editor', - component: () => import('@/views/components-demo/editor.vue'), - name: 'editor', - meta: { title: '富文本编辑器', noCache: true, roles:['other'] } - }, - { - path: 'mark-down', - component: () => import('@/views/components-demo/mark-down.vue'), - name: 'mark-down', - meta: { title: 'markDown', noCache: true , roles:['other']} - }, - { - path: 'form', - component: () => import('@/views/components-demo/form.vue'), - name: 'form', - meta: { title: '表单', noCache: true , roles:['other']} - }, - { - path: 'scroll', - component: () => import('@/views/components-demo/scroll.vue'), - name: 'scroll', - meta: { title: '无限滚动', noCache: true } - }, - { - path: 'button', - component: () => import('@/views/components-demo/button.vue'), - name: 'button', - meta: { title: '按钮', noCache: true } - }, - { - path: 'upload', - component: () => import('@/views/components-demo/upload.vue'), - name: 'upload', - meta: { title: '上传图片', noCache: true } - }, - ] -} - -export default componentsRouter diff --git a/components/vue-admin-perfect/src/router/modules/error.ts b/components/vue-admin-perfect/src/router/modules/error.ts deleted file mode 100644 index 9d57c59..0000000 --- a/components/vue-admin-perfect/src/router/modules/error.ts +++ /dev/null @@ -1,32 +0,0 @@ - - -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const errorRouter = { - path: '/error', - component: Layout, - redirect: 'noRedirect', - name: 'error', - meta: { - title: '错误页面', - icon: 'School' - }, - children: [ - { - path: '404', - component: () => import('@/views/error/404.vue'), - name: '404', - meta: { title: '404', noCache: true } - }, - { - path: '401', - component: () => import('@/views/error/401.vue'), - name: '401', - meta: { title: '401', noCache: true } - }, - ] -} - -export default errorRouter diff --git a/components/vue-admin-perfect/src/router/modules/excel.ts b/components/vue-admin-perfect/src/router/modules/excel.ts deleted file mode 100644 index 176400d..0000000 --- a/components/vue-admin-perfect/src/router/modules/excel.ts +++ /dev/null @@ -1,44 +0,0 @@ - - -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const excelRouter = { - path: '/excel', - component: Layout, - redirect: 'noRedirect', - name: 'excel', - meta: { - title: 'Excel', - icon: 'School' - }, - children: [ - { - path: 'export-excel', - component: () => import('@/views/excel/export-excel.vue'), - name: 'export-excel', - meta: { title: '导出 Excel', noCache: true } - }, - { - path: 'export-merge-header', - component: () => import('@/views/excel/export-merge-header.vue'), - name: 'export-merge-header', - meta: { title: '导出 多级表头', noCache: true } - }, - { - path: 'upload-excel', - component: () => import('@/views/excel/upload-excel.vue'), - name: 'upload-excel', - meta: { title: '上传 Excel', noCache: true } - }, - { - path: 'upload-style-excel', - component: () => import('@/views/excel/export-style-excel.vue'), - name: 'upload-style-excel', - meta: { title: '自定义样式导出 Excel', noCache: true } - }, - ] -} - -export default excelRouter diff --git a/components/vue-admin-perfect/src/router/modules/externalLink.ts b/components/vue-admin-perfect/src/router/modules/externalLink.ts deleted file mode 100644 index 41cd066..0000000 --- a/components/vue-admin-perfect/src/router/modules/externalLink.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const externalLink = { - path: '/external-link', - component: Layout, - redirect: 'noRedirect', - name: 'external-link', - children: [ - { - path: 'https://github.com/zouzhibin/vue-admin-perfect', - name: 'external', - meta: { title: '外链', noCache: true , icon: 'link' } - }, - ] -} - -export default externalLink diff --git a/components/vue-admin-perfect/src/router/modules/other.ts b/components/vue-admin-perfect/src/router/modules/other.ts deleted file mode 100644 index 5a24865..0000000 --- a/components/vue-admin-perfect/src/router/modules/other.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const othersRouter = { - path: '/other', - component: Layout, - redirect: 'noRedirect', - name: 'other', - meta: { - title: '扩展组件', - icon: 'management' - }, - children: [ - { - path: 'print', - component: () => import('@/views/other/print.vue'), - name: 'print', - meta: { title: '打印', noCache: true } - }, - { - path: 'cropper', - component: () => import('@/views/other/cropper/index.vue'), - name: 'cropper', - meta: { title: '头像裁剪', noCache: true } - }, - { - path: 'grid-sorter', - component: () => import('@/views/other/grid-sorter.vue'), - name: 'grid-sorter', - meta: { title: '卡片拖拽', noCache: true } - }, - { - path: 'splitpane', - component: () => import('@/views/other/splitpane.vue'), - name: 'splitpane', - meta: { title: '分割模块', noCache: true } - }, - { - path: 'qrcode', - component: () => import('@/views/other/qrcode.vue'), - name: 'qrcode', - meta: { title: '生成二维码', noCache: true } - }, - { - path: 'right-menu', - component: () => import('@/views/other/right-menu.vue'), - name: 'right-menu', - meta: { title: '右键菜单', noCache: true } - }, - ] -} - -export default othersRouter diff --git a/components/vue-admin-perfect/src/router/modules/permission.ts b/components/vue-admin-perfect/src/router/modules/permission.ts deleted file mode 100644 index 1895787..0000000 --- a/components/vue-admin-perfect/src/router/modules/permission.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** When your routing table is too long, you can split it into small modules**/ - -import Layout from "@/layout/index.vue"; - -const permissionRouter = { - path: '/permission', - component: Layout, - redirect: 'noRedirect', - name: 'permission', - meta: { - title: '权限测试页', - icon: 'trend-charts', roles:['other'] - }, - children: [ - { - path: 'page', - component: () => import('@/views/permission/page.vue'), - name: 'page', - meta: { title: '页面权限', noCache: true,icon: 'trend-charts', roles:['other'] } - }, - ] -} - -export default permissionRouter diff --git a/components/vue-admin-perfect/src/shims-vue.d.ts b/components/vue-admin-perfect/src/shims-vue.d.ts deleted file mode 100644 index 3804a43..0000000 --- a/components/vue-admin-perfect/src/shims-vue.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable */ -declare module '*.vue' { - import type { DefineComponent } from 'vue' - const component: DefineComponent<{}, {}, any> - export default component -} diff --git a/components/vue-admin-perfect/src/store/getters.ts b/components/vue-admin-perfect/src/store/getters.ts deleted file mode 100644 index 8e52917..0000000 --- a/components/vue-admin-perfect/src/store/getters.ts +++ /dev/null @@ -1,8 +0,0 @@ -const getters = { - permission_routes: state => state.permission.routes, - isCollapse: state => state.app.isCollapse, - userInfo: state => state.user.userInfo, - roles: state => state.user.roles, - -} -export default getters diff --git a/components/vue-admin-perfect/src/store/modules/app.ts b/components/vue-admin-perfect/src/store/modules/app.ts deleted file mode 100644 index 6d46ea5..0000000 --- a/components/vue-admin-perfect/src/store/modules/app.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {Module} from "vuex"; - -const state = { - isCollapse: true, - withoutAnimation:false, - device: 'desktop', -} - -const mutations = { - SET_COLLAPSE: (state, value) => { - state.isCollapse = value - state.withoutAnimation = false - }, - // 获取设备 - TOGGLE_DEVICE: (state, device) => { - state.device = device - - }, - // 点击遮罩层 关闭左边按钮 - CLOSE_SIDEBAR:(state, withoutAnimation) => { - state.isCollapse = false - state.withoutAnimation = withoutAnimation - }, -} -const actions = { - toggleDevice({ commit }, device) { - commit('TOGGLE_DEVICE', device) - }, - closeSideBar({ commit }, { withoutAnimation }) { - commit('CLOSE_SIDEBAR', withoutAnimation) - }, -} - - -const app:Module = { - namespaced:true, - state, - mutations, - actions -} - -export default app diff --git a/components/vue-admin-perfect/src/store/modules/permission.ts b/components/vue-admin-perfect/src/store/modules/permission.ts deleted file mode 100644 index 3ab1062..0000000 --- a/components/vue-admin-perfect/src/store/modules/permission.ts +++ /dev/null @@ -1,84 +0,0 @@ -import {Module} from "vuex"; - -import { asyncRoutes, constantRoutes } from '@/router/index' -/** - * 使用 meta.role 来确定当前用户是否具有权限 - * @param roles - * @param route - */ -function hasPermission(roles, route) { - if (route.meta && route.meta.roles) { - return roles.some(role => route.meta.roles.includes(role)) - } else { - // return true - return false - } -} - -/** - * 通过递归过滤异步路由表 - * @param routes asyncRoutes - * @param roles - */ -export function filterAsyncRoutes(routes, roles) { - const res = [] - - routes.forEach(route => { - const tmp = { ...route } - if (hasPermission(roles, tmp)) { - if (tmp.children) { - tmp.children = filterAsyncRoutes(tmp.children, roles) - } - res.push(tmp) - } - }) - - - return res -} - - -const state = { - routes: [], - addRoutes: [] -} - -const mutations = { - SET_ROUTES: (state, routes) => { - state.addRoutes = routes - state.routes = constantRoutes.concat(routes) - }, - CLEAR_ROUTERS:(state, routes) => { - state.addRoutes = [] - state.routes = [] - }, -} - -const actions = { - generateRoutes({ commit }, roles) { - return new Promise(resolve => { - // 在这判断是否有权限,哪些角色拥有哪些权限 - let accessedRoutes - if (roles&&roles.length&&!roles.includes('admin')) { - accessedRoutes = filterAsyncRoutes(asyncRoutes, roles) - } else { - accessedRoutes = asyncRoutes || [] - } - - commit('SET_ROUTES', accessedRoutes) - resolve(accessedRoutes) - }) - }, - clearRoutes({commit}){ - commit('CLEAR_ROUTERS') - } -} - -const permission:Module = { - namespaced:true, - state, - mutations, - actions -} - -export default permission diff --git a/components/vue-admin-perfect/src/store/modules/setting.ts b/components/vue-admin-perfect/src/store/modules/setting.ts deleted file mode 100644 index c13b781..0000000 --- a/components/vue-admin-perfect/src/store/modules/setting.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {Module} from "vuex"; - -const state = { - isShowTag: true, - mode: 'vertical', -} - -const mutations = { - SET_TAG: (state, value) => { - state.isShowTag = value - }, - SET_MODE: (state, value) => { - state.mode = value - }, -} -const actions = { - setTag({ commit }, value) { - commit('SET_TAG', value) - }, - setMode({ commit }, value) { - commit('SET_MODE', value) - }, -} - - -const setting:Module = { - namespaced:true, - state, - mutations, - actions -} - -export default setting diff --git a/components/vue-admin-perfect/src/store/modules/tagsView.ts b/components/vue-admin-perfect/src/store/modules/tagsView.ts deleted file mode 100644 index 9ae4021..0000000 --- a/components/vue-admin-perfect/src/store/modules/tagsView.ts +++ /dev/null @@ -1,96 +0,0 @@ -import {Module} from "vuex"; - -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' - }) - ) - }, - REMOVE_VISITED_VIEW: (state, routes) => { - state.visitedViews = state.visitedViews.filter(item=>!routes.includes(item.path)) - }, - CLEAR_VISITED_VIEW:(state, view) => { - state.visitedViews = [] - state.cachedViews = [] - }, - 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) - }, - -} - -const actions = { - addView({ dispatch }, view) { - dispatch('addVisitedView', view) - // dispatch('addCachedView', view) - }, - removeView({ commit }, views){ - return new Promise((resolve, reject) => { - commit('REMOVE_VISITED_VIEW', views) - resolve(null) - }) - - }, - addVisitedView({ commit }, view) { - commit('ADD_VISITED_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]) - }) - }, - clearVisitedView({ commit, state }){ - commit('CLEAR_VISITED_VIEW') - } -} - - - -const tagsView:Module = { - namespaced:true, - state, - mutations, - actions -} - -export default tagsView diff --git a/components/vue-admin-perfect/src/store/modules/user.ts b/components/vue-admin-perfect/src/store/modules/user.ts deleted file mode 100644 index a208c33..0000000 --- a/components/vue-admin-perfect/src/store/modules/user.ts +++ /dev/null @@ -1,64 +0,0 @@ -import {Module} from "vuex"; -import { getToken, setToken, removeToken } from '@/utils/auth' -const state = { - token: getToken(), - userInfo:localStorage.userInfo?JSON.parse(localStorage.userInfo):{}, - roles: localStorage.roles?JSON.parse(localStorage.roles):[], -} - -const mutations = { - SET_TOKEN: (state, token) => { - state.token = token - }, - SET_INFO: (state, userInfo) => { - localStorage.userInfo = JSON.stringify(userInfo) - state.userInfo = userInfo - }, - SET_ROLES: (state, roles) => { - localStorage.roles = JSON.stringify(roles) - state.roles = roles - } -} - - -const actions = { - // 登录 - login({ commit,dispatch }, userInfo) { - const { username, password } = userInfo - return new Promise(async (resolve, reject) => { - commit('SET_TOKEN', username) - - commit('SET_INFO', userInfo) - await dispatch('getInfo', ['admin']) // 获取权限列表 默认就是超级管理员,因为没有进行接口请求 写死 - setToken(username) - resolve(username) - }) - }, - // 获取用户信息 ,如实际应用中 可以通过token通过请求接口在这里获取用户信息 - getInfo({ commit, state },roles) { - return new Promise((resolve, reject) =>{ - commit('SET_ROLES', roles) - resolve(roles) - } ) - }, - // 退出 - logout({ commit, state, dispatch }) { - return new Promise((resolve, reject) => { - removeToken() - commit('SET_TOKEN', '') - commit('SET_INFO', '') - commit('SET_ROLES', '') - resolve(null) - }) - }, -} - - -const user:Module = { - namespaced:true, - state, - actions, - mutations, -} - -export default user diff --git a/components/vue-admin-perfect/src/styles/index.scss b/components/vue-admin-perfect/src/styles/index.scss deleted file mode 100644 index 106046f..0000000 --- a/components/vue-admin-perfect/src/styles/index.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import './variables.scss'; -@import './sidebar.scss'; -@import "./transition.scss"; diff --git a/components/vue-admin-perfect/src/styles/transition.scss b/components/vue-admin-perfect/src/styles/transition.scss deleted file mode 100644 index c3fbb7c..0000000 --- a/components/vue-admin-perfect/src/styles/transition.scss +++ /dev/null @@ -1,62 +0,0 @@ -// global transition css - -/* fade */ -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.28s; -} - -.fade-enter, -.fade-leave-active { - opacity: 0; -} -// -///* fade-transform */ -//.fade-transform-leave-active, -//.fade-transform-enter-active { -// transition: all .2s; -//} -// -//.fade-transform-enter-from { -// opacity: 0; -// transform: translateX(-30px); -//} -// -//.fade-transform-leave-to { -// opacity: 0; -// transform: translateX(30px); -//} - -/* breadcrumb transition */ -.breadcrumb-enter-active, -.breadcrumb-leave-active { - transition: all .2s; -} - -.breadcrumb-enter-from, -.breadcrumb-leave-active { - opacity: 0; - //transform: translateX(20px); -} - -.breadcrumb-move { - transition: all .2s; -} - -.breadcrumb-leave-active { - position: absolute; -} - - -.fade-transform-leave-active, -.fade-transform-enter-active { - transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), border 0s; -} - -.fade-transform-enter-from { - opacity: 0; -} - -.fade-transform-leave-to { - opacity: 0; -} diff --git a/components/vue-admin-perfect/src/styles/variables.scss b/components/vue-admin-perfect/src/styles/variables.scss deleted file mode 100644 index a19c27c..0000000 --- a/components/vue-admin-perfect/src/styles/variables.scss +++ /dev/null @@ -1,35 +0,0 @@ -// base color -$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 - -$menuBg:#304156; -$menuHover:#263445; - -$subMenuBg:#1f2d3d; -$subMenuHover:#001528; - -$sideBarWidth: 210px; - -// the :export directive is the magic sauce for webpack -// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass -:export { - menuText: $menuText; - menuActiveText: $menuActiveText; - subMenuActiveText: $subMenuActiveText; - menuBg: $menuBg; - menuHover: $menuHover; - subMenuBg: $subMenuBg; - subMenuHover: $subMenuHover; - sideBarWidth: $sideBarWidth; -} diff --git a/components/vue-admin-perfect/src/utils/auth.js b/components/vue-admin-perfect/src/utils/auth.js deleted file mode 100644 index 3d5b86e..0000000 --- a/components/vue-admin-perfect/src/utils/auth.js +++ /dev/null @@ -1,14 +0,0 @@ - -const TokenKey = 'zb-token' - -export function getToken() { - return localStorage.TokenKey -} - -export function setToken(token) { - return localStorage.TokenKey = token -} - -export function removeToken() { - return localStorage.TokenKey ='' -} diff --git a/components/vue-admin-perfect/src/utils/clipboard.ts b/components/vue-admin-perfect/src/utils/clipboard.ts deleted file mode 100644 index 5343e9e..0000000 --- a/components/vue-admin-perfect/src/utils/clipboard.ts +++ /dev/null @@ -1,33 +0,0 @@ -import Clipboard from 'clipboard' -import { ElMessage } from 'element-plus' - - -function clipboardSuccess() { - ElMessage({ - message: '复制成功', - type: 'success', - duration: 1500 - }) -} - -function clipboardError() { - ElMessage({ - message: '复制失败', - type: 'error' - }) -} - -export default function handleClipboard(text, event) { - const clipboard:any = new Clipboard(event.target, { - text: () => text - }) - clipboard.on('success', () => { - clipboardSuccess() - clipboard.destroy() - }) - clipboard.on('error', () => { - clipboardError() - clipboard.destroy() - }) - clipboard.onClick(event) -} diff --git a/components/vue-admin-perfect/src/utils/emojis.js b/components/vue-admin-perfect/src/utils/emojis.js deleted file mode 100644 index 3fafa63..0000000 --- a/components/vue-admin-perfect/src/utils/emojis.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - imgs: ['爱你', - '爱情', '爱心', '傲慢', - '白眼', '抱拳', '鄙视', - '闭嘴', '便便', '擦汗', - '菜刀', '差劲', '呲牙', - '大哭', '蛋糕', '刀', - '得意', '凋谢', '发呆', 'NO', 'OK', - '发抖', '发怒', '饭', '飞吻', '奋斗', - '疯了', '尴尬', '勾引', '鼓掌', '哈欠', - ] -} diff --git a/components/vue-admin-perfect/src/utils/exprotExcel.ts b/components/vue-admin-perfect/src/utils/exprotExcel.ts deleted file mode 100644 index dff5db5..0000000 --- a/components/vue-admin-perfect/src/utils/exprotExcel.ts +++ /dev/null @@ -1,280 +0,0 @@ -const ExcelJS = require("exceljs"); - -const autoWidthAction = (val,width=10)=>{ - if (val == null) { - width = 10; - } else if (val.toString().charCodeAt(0) > 255) { - /*if chinese*/ - width = val.toString().length * 2; - } else { - width = val.toString().length; - } - return width -} -export const exportExcel = async ({column,data,filename,autoWidth,format})=>{ - // 创建excel - const workbook = new ExcelJS.Workbook(); - // 设置信息 - workbook.creator = "Me"; - workbook.title = filename; - workbook.created = new Date(); - workbook.modified = new Date(); - // 创建工作表 - const worksheet = workbook.addWorksheet(filename); - // 设置列名 - let columnsName = []; - column.forEach((item,index)=>{ - let obj = { - header: item.label, key:item.name, width: null - } - if(autoWidth){ - let maxArr = [autoWidthAction(item.label)] - data.forEach(ite=>{ - let str = ite[item.name] ||'' - if(str){ - maxArr.push(autoWidthAction(str)) - } - }) - obj.width = Math.max(...maxArr)+5 - } - // 设置列名、键和宽度 - columnsName.push(obj); - }) - worksheet.columns = columnsName; - // 添加行 - worksheet.addRows(data); - // 写入文件 - - const uint8Array = - format === "xlsx" - ? await workbook.xlsx.writeBuffer() - : await workbook.csv.writeBuffer(); - - const blob = new Blob([uint8Array], { type: "application/octet-binary" }); - if (window.navigator.msSaveOrOpenBlob) { - // msSaveOrOpenBlob方法返回boolean值 - navigator.msSaveBlob(blob, filename + `.${format}`); - // 本地保存 - } else { - const link = document.createElement("a"); // a标签下载 - link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 - link.download = filename + `.${format}`; // dowload属性指定文件名 - link.click(); // click()事件触发下载 - window.URL.revokeObjectURL(link.href); // 释放内存 - } -} -export function addCellStyle(cell, attr) { - const {color, fontSize, horizontal, bold} = attr || {}; - // eslint-disable-next-line no-param-reassign - cell.fill = { - type: 'pattern', - pattern: 'solid', - fgColor: {argb: color}, - }; - // eslint-disable-next-line no-param-reassign - cell.font = { - bold: bold ?? true, - size: fontSize ?? 11, - // italic: true, - // name: '微软雅黑', - color: {argb: 'ff0000'}, - }; - // eslint-disable-next-line no-param-reassign - cell.alignment = {vertical: 'middle', wrapText: true, horizontal: horizontal ?? 'left'}; -} - -export const exportStyleExcel =async ({column,data,filename,autoWidth,format})=>{ - // 创建excel - const workbook = new ExcelJS.Workbook(); - // 设置信息 - workbook.creator = "Me"; - workbook.title = filename; - workbook.created = new Date(); - workbook.modified = new Date(); - // 创建工作表 - const worksheet = workbook.addWorksheet(filename); - // 设置列名 - let columnsName = []; - column.forEach((item,index)=>{ - let obj = { - header: item.label, key:item.name, width: null - } - if(autoWidth){ - let maxArr = [autoWidthAction(item.label)] - data.forEach(ite=>{ - let str = ite[item.name] ||'' - if(str){ - maxArr.push(autoWidthAction(str)) - } - }) - obj.width = Math.max(...maxArr)+5 - } - // 设置列名、键和宽度 - columnsName.push(obj); - }) - worksheet.columns = columnsName; - // 添加行 - worksheet.addRows(data); - // 写入文件 - - // 设置表头颜色 - // 给表头添加背景色。因为表头是第一行,可以通过 getRow(1) 来获取表头这一行 - const headerRow = worksheet.getRow(1); - // 通过 cell 设置样式,更精准 - headerRow.eachCell((cell) => addCellStyle(cell, {color: 'dff8ff', fontSize: 12, horizontal: 'left'})); - - const uint8Array = - format === "xlsx" - ? await workbook.xlsx.writeBuffer() - : await workbook.csv.writeBuffer(); - - const blob = new Blob([uint8Array], { type: "application/octet-binary" }); - if (window.navigator.msSaveOrOpenBlob) { - // msSaveOrOpenBlob方法返回boolean值 - navigator.msSaveBlob(blob, filename + `.${format}`); - // 本地保存 - } else { - const link = document.createElement("a"); // a标签下载 - link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 - link.download = filename + `.${format}`; // dowload属性指定文件名 - link.click(); // click()事件触发下载 - window.URL.revokeObjectURL(link.href); // 释放内存 - } -} - - - - -// 默认的列宽 -export const DEFAULT_COLUMN_WIDTH = 20; - -function getColumnNumber(width: number) { - // 需要的列数,四舍五入 - return Math.round(width / DEFAULT_COLUMN_WIDTH); -} - - -function addData(worksheet,headerKeys,headers,data){ - -} - -export const exportMultiHeaderExcel = ({column,data,filename,autoWidth})=>{ - // 创建excel - const workbook = new ExcelJS.Workbook(); - // 创建工作表 - let sheet = workbook.addWorksheet("sheet1"); - - // 添加表头 - sheet.getRow(1).values = ["序号", "日期","地址" ,"配送消息" ,,, ]; - sheet.getRow(2).values = [ - "序号", - "日期", - "地址", - "省份", - "城市", - "邮编" - ]; - let headers = []; - column.forEach((item,index)=>{ - if(item.children){ - item.children.forEach(itemChild=>{ - let obj = { - key:itemChild.name, width: null - } - let maxArr = [autoWidthAction(itemChild.label)] - data.forEach(ite=>{ - let str = ite[itemChild.name] ||'' - if(str){ - maxArr.push(autoWidthAction(str)) - } - }) - obj.width = Math.max(...maxArr)+5 - // 设置列名、键和宽度 - headers.push(obj); - }) - - }else { - let obj = { - key:item.name, width: null - } - let maxArr = [autoWidthAction(item.label)] - data.forEach(ite=>{ - let str = ite[item.name] ||'' - if(str){ - maxArr.push(autoWidthAction(str)) - } - }) - obj.width = Math.max(...maxArr)+5 - // 设置列名、键和宽度 - headers.push(obj); - } - }) - sheet.columns = headers; - sheet.addRows(data); - - // 合并单元格 - sheet.mergeCells(`D1:F1`); - sheet.mergeCells("A1:A2"); - sheet.mergeCells("B1:B2"); - sheet.mergeCells("C1:C2"); - // 写入文件 - workbook.xlsx.writeBuffer().then((data) => { - const blob = new Blob([data, { type: "application/vnd.ms-excel" }]); - if (window.navigator.msSaveOrOpenBlob) { - // msSaveOrOpenBlob方法返回boolean值 - navigator.msSaveBlob(blob, filename + ".xlsx"); - // 本地保存 - } else { - const link = document.createElement("a"); // a标签下载 - link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 - link.download = filename + ".xlsx"; // dowload属性指定文件名 - link.click(); // click()事件触发下载 - window.URL.revokeObjectURL(link.href); // 释放内存 - } - }); -} - - -function mergeColumnCell(headers, rowHeader1, rowHeader2, nameRow1, nameRow2, worksheet){ - // 当前 index 的指针 - let pointer = -1; - nameRow1.forEach((name, index) => { - // 当 index 小于指针时,说明这一列已经被合并过了,不能再合并 - if (index <= pointer) return; - // 是否应该列合并 - const shouldVerticalMerge = name === nameRow2[index]; - - - // 是否应该行合并 - const shouldHorizontalMerge = index !== nameRow1.lastIndexOf(name); - - console.log('==',name,nameRow2[index],index,nameRow1.lastIndexOf(name),shouldVerticalMerge,shouldHorizontalMerge) - - pointer = nameRow1.lastIndexOf(name); - if (shouldVerticalMerge && shouldHorizontalMerge) { - // 两个方向都合并 - worksheet.mergeCells( - Number(rowHeader1.number), - index + 1, - Number(rowHeader2.number), - nameRow1.lastIndexOf(name) + 1, - ); - console.log('==') - } else if (shouldVerticalMerge && !shouldHorizontalMerge) { - // 只在垂直方向上同一列的两行合并 - worksheet.mergeCells(Number(rowHeader1.number), index + 1, Number(rowHeader2.number), index + 1); - } else if (!shouldVerticalMerge && shouldHorizontalMerge) { - // 只有水平方向同一行的多列合并 - worksheet.mergeCells( - Number(rowHeader1.number), - index + 1, - Number(rowHeader1.number), - nameRow1.lastIndexOf(name) + 1, - ); - // eslint-disable-next-line no-param-reassign - const cell = rowHeader1.getCell(index + 1); - cell.alignment = { vertical: 'middle', horizontal: 'center', wrapText: true }; - } - }); - -} diff --git a/components/vue-admin-perfect/src/utils/index.js b/components/vue-admin-perfect/src/utils/index.js deleted file mode 100644 index 632a4b2..0000000 --- a/components/vue-admin-perfect/src/utils/index.js +++ /dev/null @@ -1,425 +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 || !time) { - return null - } - const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' - let date - if (typeof time === 'object') { - date = time - } else { - if ((typeof time === 'string')) { - if ((/^[0-9]+$/.test(time))) { - // support "1548221490638" - time = parseInt(time) - } else { - // support safari - // https://stackoverflow.com/questions/4310953/invalid-date-in-safari - time = time.replace(new RegExp(/-/gm), '/') - } - } - - 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 = 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 -} - -/** - * @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 -} - -/** - * @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, ' ') - } -} - - -export function getColor() { - var str = '#'; - var arr = ['1', '2', '3', '4', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']; - for (var i = 0; i < 6; i++) { - var num = parseInt(Math.random() * 16); - str += arr[num]; - } - return str; -} -// 检查给定的值是否是数组 -export const isArray = function(value) { - return objToString.call(value) === "[object Array]"; -}; -var funProto = Function.prototype; -var objProto = Object.prototype; - -var getPrototypeOf = Object.getPrototypeOf; - -var objToString = objProto.toString; -var hasOwnProperty = objProto.hasOwnProperty; -var funToString = funProto.toString; -// 检查给定的值是否是字符串 -export const isString = function(value) { - return objToString.call(value) === "[object String]"; -}; -// 检查给定的值是否是纯对象,纯对象是指通过 {} 或 new Object() 声明的对象 -export const isPlainObject = function(value) { - if (!value || objToString.call(value) !== "[object Object]") { - return false; - } - - var prototype = getPrototypeOf(value); - - if (prototype === null) { - return true; - } - - var constructor = hasOwnProperty.call(prototype, "constructor") && prototype.constructor; - - return typeof constructor === "function" && funToString.call(constructor) === funToString.call(Object); -}; - -// // 深度克隆 array 数组或 json 对象,返回克隆后的副本 -export const deepObjClone = function(obj){ - let weakMap = new WeakMap() - function clone (obj){ - if(obj==null){return obj} - if(obj instanceof Date){ return new Date(obj) } - if(obj instanceof RegExp){ return new RegExp(obj)} - if(typeof obj !== 'object') return obj - - if(weakMap.get(obj)){ - return weakMap.get(obj) - } - var copy = new obj.constructor - weakMap.set(obj,copy) - for(var key in obj){ - if(Object.prototype.hasOwnProperty.call(obj, key)){ - var value = obj[key]; - copy[key] = clone(value); - } - } - return copy; - } - return clone (obj) -}; diff --git a/components/vue-admin-perfect/src/utils/validate.js b/components/vue-admin-perfect/src/utils/validate.js deleted file mode 100644 index 6b3ac41..0000000 --- a/components/vue-admin-perfect/src/utils/validate.js +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Created by PanJiaChen on 16/11/18. - */ - -/** - * @param {string} path - * @returns {Boolean} - */ -export function isExternal(path) { - return /^(https?:|mailto:|tel:)/.test(path) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUsername(str) { - const valid_map = ['admin', 'editor'] - return valid_map.indexOf(str.trim()) >= 0 -} - -/** - * @param {string} url - * @returns {Boolean} - */ -export function validURL(url) { - const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ - return reg.test(url) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validLowerCase(str) { - const reg = /^[a-z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUpperCase(str) { - const reg = /^[A-Z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validAlphabets(str) { - const reg = /^[A-Za-z]+$/ - return reg.test(str) -} - -/** - * @param {string} email - * @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,}))$/ - return reg.test(email) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function isString(str) { - if (typeof str === 'string' || str instanceof String) { - return true - } - return false -} - -/** - * @param {Array} arg - * @returns {Boolean} - */ -export function isArray(arg) { - if (typeof Array.isArray === 'undefined') { - return Object.prototype.toString.call(arg) === '[object Array]' - } - return Array.isArray(arg) -} diff --git a/components/vue-admin-perfect/src/views/About.vue b/components/vue-admin-perfect/src/views/About.vue deleted file mode 100644 index 3fa2807..0000000 --- a/components/vue-admin-perfect/src/views/About.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/components/vue-admin-perfect/src/views/Home.vue b/components/vue-admin-perfect/src/views/Home.vue deleted file mode 100644 index 50d8a19..0000000 --- a/components/vue-admin-perfect/src/views/Home.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/views/charts/components/simple/bar.vue b/components/vue-admin-perfect/src/views/charts/components/simple/bar.vue deleted file mode 100644 index 1638bf5..0000000 --- a/components/vue-admin-perfect/src/views/charts/components/simple/bar.vue +++ /dev/null @@ -1,66 +0,0 @@ - - diff --git a/components/vue-admin-perfect/src/views/chat/components/u-chartBox/chat.js b/components/vue-admin-perfect/src/views/chat/components/u-chartBox/chat.js deleted file mode 100644 index 4c9404d..0000000 --- a/components/vue-admin-perfect/src/views/chat/components/u-chartBox/chat.js +++ /dev/null @@ -1,15 +0,0 @@ -export const chatData = [ - { - is_self:0, - created_at:'2022-03-11', - content:'hello 你好呀!', - id:1 - }, - { - is_self:1, - created_at:'2022-03-11', - content:'hello 你好呀!', - id:2, - type:1, // 文字 - } -] diff --git a/components/vue-admin-perfect/src/views/chat/components/u-chartBox/index.vue b/components/vue-admin-perfect/src/views/chat/components/u-chartBox/index.vue deleted file mode 100644 index 659b711..0000000 --- a/components/vue-admin-perfect/src/views/chat/components/u-chartBox/index.vue +++ /dev/null @@ -1,465 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/chat/components/u-toolbar/index.vue b/components/vue-admin-perfect/src/views/chat/components/u-toolbar/index.vue deleted file mode 100644 index b273c99..0000000 --- a/components/vue-admin-perfect/src/views/chat/components/u-toolbar/index.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/chat/index.vue b/components/vue-admin-perfect/src/views/chat/index.vue deleted file mode 100644 index 1502e4c..0000000 --- a/components/vue-admin-perfect/src/views/chat/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/clipboard/index.vue b/components/vue-admin-perfect/src/views/clipboard/index.vue deleted file mode 100644 index 28c7f53..0000000 --- a/components/vue-admin-perfect/src/views/clipboard/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - \ No newline at end of file diff --git a/components/vue-admin-perfect/src/views/components-demo/button.vue b/components/vue-admin-perfect/src/views/components-demo/button.vue deleted file mode 100644 index a38239a..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/button.vue +++ /dev/null @@ -1,194 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/editor.vue b/components/vue-admin-perfect/src/views/components-demo/editor.vue deleted file mode 100644 index 6f5ba47..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/editor.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/flow-chart.vue b/components/vue-admin-perfect/src/views/components-demo/flow-chart.vue deleted file mode 100644 index 808f81e..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/flow-chart.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/form.vue b/components/vue-admin-perfect/src/views/components-demo/form.vue deleted file mode 100644 index 4762f53..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/form.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/form/u-upload.vue b/components/vue-admin-perfect/src/views/components-demo/form/u-upload.vue deleted file mode 100644 index c26446f..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/form/u-upload.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/mark-down.vue b/components/vue-admin-perfect/src/views/components-demo/mark-down.vue deleted file mode 100644 index b89ae78..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/mark-down.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/scroll.vue b/components/vue-admin-perfect/src/views/components-demo/scroll.vue deleted file mode 100644 index eaa314d..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/scroll.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/split-pane.vue b/components/vue-admin-perfect/src/views/components-demo/split-pane.vue deleted file mode 100644 index 2ac6cce..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/split-pane.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/components-demo/upload.vue b/components/vue-admin-perfect/src/views/components-demo/upload.vue deleted file mode 100644 index 833f057..0000000 --- a/components/vue-admin-perfect/src/views/components-demo/upload.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - - - \ No newline at end of file diff --git a/components/vue-admin-perfect/src/views/components-demo/watermark.vue b/components/vue-admin-perfect/src/views/components-demo/watermark.vue deleted file mode 100644 index e69de29..0000000 diff --git a/components/vue-admin-perfect/src/views/dashboard/index.vue b/components/vue-admin-perfect/src/views/dashboard/index.vue deleted file mode 100644 index 3d43e2c..0000000 --- a/components/vue-admin-perfect/src/views/dashboard/index.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/error/401.vue b/components/vue-admin-perfect/src/views/error/401.vue deleted file mode 100644 index c230e64..0000000 --- a/components/vue-admin-perfect/src/views/error/401.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/components/vue-admin-perfect/src/views/error/404.vue b/components/vue-admin-perfect/src/views/error/404.vue deleted file mode 100644 index 9e4de6e..0000000 --- a/components/vue-admin-perfect/src/views/error/404.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/components/vue-admin-perfect/src/views/excel/export-excel.vue b/components/vue-admin-perfect/src/views/excel/export-excel.vue deleted file mode 100644 index f8a89ae..0000000 --- a/components/vue-admin-perfect/src/views/excel/export-excel.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/excel/export-merge-header.vue b/components/vue-admin-perfect/src/views/excel/export-merge-header.vue deleted file mode 100644 index b6d80d4..0000000 --- a/components/vue-admin-perfect/src/views/excel/export-merge-header.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - diff --git a/components/vue-admin-perfect/src/views/excel/export-selected-excel.vue b/components/vue-admin-perfect/src/views/excel/export-selected-excel.vue deleted file mode 100644 index 8b13789..0000000 --- a/components/vue-admin-perfect/src/views/excel/export-selected-excel.vue +++ /dev/null @@ -1 +0,0 @@ - diff --git a/components/vue-admin-perfect/src/views/excel/export-style-excel.vue b/components/vue-admin-perfect/src/views/excel/export-style-excel.vue deleted file mode 100644 index 4a39758..0000000 --- a/components/vue-admin-perfect/src/views/excel/export-style-excel.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/excel/upload-excel.vue b/components/vue-admin-perfect/src/views/excel/upload-excel.vue deleted file mode 100644 index 0a60bd3..0000000 --- a/components/vue-admin-perfect/src/views/excel/upload-excel.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/login/index.vue b/components/vue-admin-perfect/src/views/login/index.vue deleted file mode 100644 index 0e43472..0000000 --- a/components/vue-admin-perfect/src/views/login/index.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - diff --git a/components/vue-admin-perfect/src/views/other/count.vue b/components/vue-admin-perfect/src/views/other/count.vue deleted file mode 100644 index b350b02..0000000 --- a/components/vue-admin-perfect/src/views/other/count.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/components/vue-admin-perfect/src/views/other/cropper/cropper.vue b/components/vue-admin-perfect/src/views/other/cropper/cropper.vue deleted file mode 100644 index a6616a6..0000000 --- a/components/vue-admin-perfect/src/views/other/cropper/cropper.vue +++ /dev/null @@ -1,342 +0,0 @@ -