├── .editorconfig ├── .env.development ├── .env.production ├── .env.stage ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── LICENSE ├── README.md ├── babel.config.js ├── jest.config.js ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── index-dev.html ├── index.html └── tinymce4.7.5 │ ├── langs │ └── zh_CN.js │ ├── plugins │ ├── codesample │ │ └── css │ │ │ └── prism.css │ ├── emoticons │ │ └── img │ │ │ ├── smiley-cool.gif │ │ │ ├── smiley-cry.gif │ │ │ ├── smiley-embarassed.gif │ │ │ ├── smiley-foot-in-mouth.gif │ │ │ ├── smiley-frown.gif │ │ │ ├── smiley-innocent.gif │ │ │ ├── smiley-kiss.gif │ │ │ ├── smiley-laughing.gif │ │ │ ├── smiley-money-mouth.gif │ │ │ ├── smiley-sealed.gif │ │ │ ├── smiley-smile.gif │ │ │ ├── smiley-surprised.gif │ │ │ ├── smiley-tongue-out.gif │ │ │ ├── smiley-undecided.gif │ │ │ ├── smiley-wink.gif │ │ │ └── smiley-yell.gif │ └── visualblocks │ │ └── css │ │ └── visualblocks.css │ ├── skins │ └── lightgray │ │ ├── content.inline.min.css │ │ ├── content.min.css │ │ ├── fonts │ │ ├── tinymce-mobile.woff │ │ ├── tinymce-small.eot │ │ ├── tinymce-small.svg │ │ ├── tinymce-small.ttf │ │ ├── tinymce-small.woff │ │ ├── tinymce.eot │ │ ├── tinymce.svg │ │ ├── tinymce.ttf │ │ └── tinymce.woff │ │ ├── img │ │ ├── anchor.gif │ │ ├── loader.gif │ │ ├── object.gif │ │ └── trans.gif │ │ ├── skin.min.css │ │ └── skin.min.css.map │ └── tinymce.min.js ├── src ├── App.vue ├── api │ ├── ad │ │ ├── ad.js │ │ └── adSite.js │ ├── auth │ │ ├── authAdmin.js │ │ ├── authPermissionRule.js │ │ ├── authRole.js │ │ └── login.js │ └── file │ │ ├── fileResource.js │ │ ├── fileResourceTag.js │ │ └── upload.js ├── assets │ ├── icons │ │ ├── demo.css │ │ ├── demo_fontclass.html │ │ ├── demo_symbol.html │ │ ├── demo_unicode.html │ │ ├── iconfont.css │ │ ├── iconfont.eot │ │ ├── iconfont.js │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ └── iconfont.woff │ ├── image │ │ └── file_type_icon.png │ └── logo.png ├── components │ ├── File │ │ └── Upload.vue │ ├── HelloWorld.vue │ ├── Tinymce │ │ ├── index.vue │ │ ├── plugins.js │ │ └── toolbar.js │ └── common │ │ ├── FileResource.vue │ │ └── IconSvg.vue ├── config │ └── app.js ├── constants │ └── .gitignore ├── element.js ├── filtres │ └── index.js ├── main.js ├── mock │ ├── ad.js │ ├── adSite.js │ ├── authAdmin.js │ ├── authPermissionRule.js │ ├── authRole.js │ ├── fileResource.js │ ├── fileResourceTag.js │ ├── index.js │ ├── login.js │ └── upload.js ├── role.js ├── router │ └── index.js ├── store │ ├── actions.js │ ├── getters.js │ ├── index.js │ ├── modules │ │ ├── admin.js │ │ └── app.js │ └── mutation-types.js ├── styles │ ├── base.scss │ └── mixin.scss ├── utils │ ├── auth.js │ ├── axios.js │ ├── haiZiToPinYin.js │ └── store.js └── views │ ├── adManage │ ├── ad.vue │ └── adSite.vue │ ├── components │ ├── tinymce-demo.vue │ ├── upload-demo.vue │ └── uploadList.vue │ ├── error │ ├── err401.vue │ ├── err404.vue │ └── err500.vue │ ├── home │ ├── SidebarItem.vue │ ├── TabsView.vue │ ├── index-3.0.1.vue │ ├── index.vue │ └── main.vue │ ├── login │ └── index.vue │ ├── profile │ └── index.vue │ └── userManage │ └── admin │ ├── authAdmin.vue │ ├── authPermissionRule.vue │ ├── authRole.vue │ └── router.vue ├── tests └── unit │ ├── .eslintrc.js │ └── HelloWorld.spec.js └── vue.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 4 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.env.development: -------------------------------------------------------------------------------- 1 | VUE_APP_API_BASE=http://localhost/vue-admin-php/public/index.php 2 | template=./public/index-dev.html 3 | outputDir=serve 4 | -------------------------------------------------------------------------------- /.env.production: -------------------------------------------------------------------------------- 1 | VUE_APP_API_BASE=http://localhost/vue-admin-php/public/index.php 2 | template=./public/index.html 3 | outputDir=dist 4 | -------------------------------------------------------------------------------- /.env.stage: -------------------------------------------------------------------------------- 1 | VUE_APP_API_BASE=http://localhost/vue-admin-php/public/index.php 2 | template=./public/index.html 3 | NODE_ENV=production 4 | outputDir=stage 5 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/essential', 8 | '@vue/prettier' 9 | ], 10 | plugins: [ 11 | 'vue' 12 | ], 13 | rules: { 14 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 15 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 16 | }, 17 | parserOptions: { 18 | parser: 'babel-eslint' 19 | } 20 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | /stage 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | 15 | # Editor directories and files 16 | .idea 17 | .vscode 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | *.sw* 23 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 lmxdawn 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 |

6 | 7 | vue 8 | 9 | 10 | vue 11 | 12 | 13 | element-ui 14 | 15 |

16 | 17 | # 前言 18 | 19 | 20 | **项目JAVA前端地址:** https://github.com/lmxdawn/vue-admin-html-java 21 | 22 | **项目JAVA后端地址:** https://github.com/lmxdawn/vue-admin-java 23 | 24 | 25 | # 欢迎 star 26 | 27 | # 整体效果 28 | 29 | ![donate](https://lmxdawn.github.io/images/show-how1.jpg) 30 | 31 | # 目前 v3.0.0 版本 点击前往 v1.0.0 版本 32 | ## 更新日志 33 | - [x] 更新vue-cli为3.0版本 这里有篇文章 34 | - [x] 增加广告管理 35 | - [x] 优化路由控制 36 | - [x] 优化一些配置文件 37 | - [x] 登录用户信息存储改为 cookie 38 | 39 | # 一键操作包 点击下载 40 | 41 | 1. 集成环境搭建: windows 上面建议用 phpstudy ,其它环境自行百度 42 | 2. 把两个文件放到网站根目录 43 | 3. 把MySQL的root密码改为 root, 再新建数据库 vue-admin ,再把vue-admin.sql 文件导入到MySQL 44 | 4. 打开浏览器 输入 http://localhost/vue-admin-html/dist/index.html 45 | 46 | 47 | # v3.0.0 踩过的坑 48 | 1. 这次更新后 vuex 开启严格模式后,出现浅拷贝的问题,就是变量引用的问题 这里有篇文章 49 | 2. 还有就是路由导入某个文件时要在文件头部引入具体的某个文件,不用 resolve => require(['xx.vue'], resolve) 或者 () => import('xx.vue') 这种方式 50 | 51 | 52 | # vue-admin-html 53 | 54 | > Vue-cli3.0 + Element UI + ThinkPHP5.1 + RBAC权限 + 响应式的后台管理系统 55 | 56 | 57 | ## 权限演示 58 | 59 | ![donate](https://lmxdawn.github.io/images/rule.gif) 60 | 61 | ## 路由规则图示 62 | 63 | > 路径: vue-admin-html/src/router/index.js 64 | 65 | ![donate](https://lmxdawn.github.io/images/router.png) 66 | 67 | ## env 配置说明 68 | 69 | > 路径: vue-admin-html/.env.development 70 | 71 | ![donate](https://lmxdawn.github.io/images/env.png) 72 | 73 | ## 手机版演示 74 | 75 | ![donate](https://lmxdawn.github.io/images/phone.gif) 76 | 77 | ## 上传插件演示 78 | 79 | ![donate](https://lmxdawn.github.io/images/upload.gif) 80 | 81 | ## 添加 阿里巴巴矢量图演示 82 | 83 | > 路径: vue-admin-html/src/assets/icons 注意 vue-admin-html/src/assets/icons/iconfont.js 头部需要加 ```/* eslint-disable */``` 去掉 eslint 检查 84 | 85 | 1.第一步 选好一个图标加入到购物车 -> 把购物车的添加都项目 -> 下载项目到本地 86 | 87 | ![donate](https://lmxdawn.github.io/images/icon1.gif) 88 | 89 | 2.第二步 解压下载好的文件 -> 复制到 src/assets/icons , 覆盖掉 -> 增加 iconfont.js 的 eslint 注释 90 | 91 | ![donate](https://lmxdawn.github.io/images/icon2.gif) 92 | 93 | 94 | 95 | 96 | ## 功能 ## 97 | - [x] 管理员登录 98 | - [x] 登录 99 | - [x] 修改密码 100 | - [x] 角色管理 101 | - [x] 权限管理 102 | - [x] 401/404错误页面 103 | - [x] 动态面包屑 104 | - [x] 动态侧边栏 105 | - [x] 广告管理 106 | 107 | 108 | ## 安装步骤 ## 109 | 110 | git clone https://github.com/lmxdawn/vue-admin-html.git // 把模板下载到本地 111 | cd vue-admin-html // 进入模板目录 112 | npm install // 安装项目依赖,等待安装完成之后 113 | 114 | 构建时三种环境可选,解决不同环境来回切换配置的痛楚(serve:本地测试,stage:预上线,build:生产环境) 115 | 116 | ## 本地开发 ## 117 | 118 | // 开启服务器,浏览器访问 http://localhost:8080 119 | npm run serve 120 | 121 | ## 构建预上线 ## 122 | 123 | // 执行构建命令,生成的stage文件夹放在服务器下即可访问 124 | npm run stage 125 | 126 | ## 构建生产 ## 127 | 128 | // 执行构建命令,生成的dist文件夹放在服务器下即可访问 129 | npm run build 130 | 131 | # 项目目录介绍 132 | ```markdown 133 | ├── LICENSE // 版权许可文件 134 | ├── README.md // 文档 135 | ├── babel.config.js // babel 插件配置 136 | ├── jest.config.js // jest 测试配置 137 | ├── package-lock.json // 锁定当前安装的扩展包的版本 138 | ├── package.json // 声明引用了哪些扩展包 139 | ├── public // 公共文件 140 | │   ├── favicon.ico // 图标 141 | │   └── index.html // 入口文件 142 | ├── src // src 主要代码文件 143 | │   ├── App.vue // Vue 入口文件 144 | │   ├── api // API 接口逻辑文件 145 | │   │   ├── ad // 广告相关 146 | │   │   │   ├── ad.js // 广告 147 | │   │   │   └── adSite.js // 广告位 148 | │   │   ├── auth // 权限相关 149 | │   │   │   ├── authAdmin.js // 权限用户 150 | │   │   │   ├── authPermissionRule.js // 权限 151 | │   │   │   └── authRole.js // 角色 152 | │   │   ├── fileResource.js // 文件资源 153 | │   │   ├── fileResourceTag.js // 文件资源的标签 154 | │   │   ├── login.js // 登录相关 155 | │   │   └── upload.js // 旧版本上传插件的接口 156 | │   ├── assets // 资源文件 157 | │   │   ├── icons // 图标(使用的是 阿里巴巴矢量图标库) 158 | │   │   │   ├── demo.css // demo 样式 159 | │   │   │   ├── demo_fontclass.html // demo HTML 160 | │   │   │   ├── demo_symbol.html // demo 161 | │   │   │   ├── demo_unicode.html // demo 162 | │   │   │   ├── iconfont.css // css 163 | │   │   │   ├── iconfont.eot // 164 | │   │   │   ├── iconfont.js // js 文件 165 | │   │   │   ├── iconfont.svg // svg 文件 166 | │   │   │   ├── iconfont.ttf // 字体文件 167 | │   │   │   └── iconfont.woff // 字体文件 168 | │   │   ├── image // 资源图片文件 169 | │   │   │   └── file_type_icon.png // 文件图标文件 170 | │   │   └── logo.png // logo 171 | │   ├── components // 组件目录 172 | │   │   ├── HelloWorld.vue // 测试文件 173 | │   │   └── common // 公共组件 174 | │   │   ├── FileResource.vue // 上传资源的组件 175 | │   │   ├── IconSvg.vue // 图标组件 176 | │   │   └── UploadFile.vue // 旧版上传文件的组件 177 | │   ├── config // 自定义的配置 178 | │   │   └── app.js // 项目的配置 179 | │   ├── constants // 项目的常量目录 180 | │   ├── element.js // 引入 element-ui 的js文件 (这个也可直接写在 main.js 里面) 181 | │   ├── filtres // 过滤器目录 182 | │   │   └── index.js // 全局过滤器 183 | │   ├── main.js // 主入口 184 | │   ├── mock // 模拟数据 185 | │   │   ├── authAdmin.js // 权限用户的数据 186 | │   │   ├── authPermissionRule.js // 权限的数据 187 | │   │   ├── authRole.js // 角色数据 188 | │   │   ├── fileResource.js // 上传资源的数据 189 | │   │   ├── fileResourceTag.js // 上传资源的分组数据 190 | │   │   ├── index.js // 引入 mockjs 的文件 191 | │   │   ├── login.js // 登录的数据 192 | │   │   └── upload.js // 旧版上传文件的数据 193 | │   ├── role.js // 动态上传 router 路由的主要文件, 并且初始化权限, 检测权限 194 | │   ├── router // 路由相关目录 195 | │   │   └── index.js // 路由主文件 196 | │   ├── store // vuex 状态 目录 197 | │   │   ├── actions.js // Action 198 | │   │   ├── getters.js // Getter 199 | │   │   ├── index.js // 入口 200 | │   │   ├── modules // 模块 201 | │   │   │   ├── admin.js // Admin 用户相关 202 | │   │   │   └── app.js // APP 项目相关 203 | │   │   └── mutation-types.js // Mutation 204 | │   ├── styles // 样式目录 205 | │   │   ├── base.scss // 基础样式 206 | │   │   └── mixin.scss // 基础方法的样式 207 | │   ├── utils // 工具目录 208 | │   │   ├── auth.js // 权限工具 209 | │   │   ├── axios.js // request 请求工具 210 | │   │   ├── haiZiToPinYin.js // 汉字转拼音的工具 211 | │   │   └── store.js // 存放信息的工具 212 | │   └── views // 页面目录 213 | │   ├── adManage // 广告管理 214 | │   │   ├── ad.vue // 广告 215 | │   │   └── adSite.vue // 广告位 216 | │   ├── components // 应用演示 217 | │   │   └── uploadList.vue // 上传插件 218 | │   ├── error // 错误页面目录 219 | │   │   ├── err401.vue // 401 220 | │   │   ├── err404.vue // 404页面 221 | │   │   └── err500.vue // 500页面 222 | │   ├── home // 首页目录 223 | │   │   ├── SidebarItem.vue // 左边栏 224 | │   │   ├── TabsView.vue // 顶部tabs 225 | │   │   ├── index.vue // 入口 226 | │   │   └── main.vue // 前言 227 | │   ├── login // 登录相关 228 | │   │   └── index.vue // 登录首页 229 | │   ├── profile // 测试 230 | │   │   └── index.vue 231 | │   └── userManage // 用户相关 232 | │   └── admin // 管理员相关 233 | │   ├── authAdmin.vue // 权限用户 234 | │   ├── authPermissionRule.vue // 权限 235 | │   ├── authRole.vue // 角色 236 | │   └── router.vue // 路由文件 237 | ├── tests // 测试 238 | │   └── unit 239 | │   └── HelloWorld.spec.js 240 | └── vue.config.js // 构建项目的配置文件 241 | ``` 242 | 243 | # Online Demo 244 | (建议使用最新版Chrome浏览器) 245 | [在线 Demo](https://lmxdawn.github.io/vue-admin) 246 | 247 | # Donate 248 | 鼓励鼓励鼓励,重要的事情说三遍 249 | ![donate](https://lmxdawn.github.io/images/pay.png) 250 | 251 | 252 | # License 253 | 254 | [MIT](https://github.com/lmxdawn/vue-admin-html/blob/master/LICENSE) 255 | 256 | Copyright (c) 2018 lmxdawn 257 | 258 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/app"] 3 | }; 4 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ["js", "jsx", "json", "vue"], 3 | transform: { 4 | "^.+\\.vue$": "vue-jest", 5 | ".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": 6 | "jest-transform-stub", 7 | "^.+\\.jsx?$": "babel-jest" 8 | }, 9 | moduleNameMapper: { 10 | "^@/(.*)$": "/src/$1" 11 | }, 12 | snapshotSerializers: ["jest-serializer-vue"], 13 | testMatch: [ 14 | "/(tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx))" 15 | ] 16 | }; 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-project", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "stage": "vue-cli-service build --mode stage", 8 | "build": "vue-cli-service build", 9 | "lint": "vue-cli-service lint", 10 | "test:unit": "vue-cli-service test:unit" 11 | }, 12 | "dependencies": { 13 | "axios": "^0.18.0", 14 | "babel-polyfill": "^6.26.0", 15 | "element-ui": "^2.8.2", 16 | "js-cookie": "^2.2.0", 17 | "mockjs": "^1.0.1-beta3", 18 | "nprogress": "^0.2.0", 19 | "vue": "^2.5.16", 20 | "vue-router": "^3.0.1", 21 | "vuedraggable": "^2.17.0", 22 | "vuex": "^3.0.1" 23 | }, 24 | "devDependencies": { 25 | "@vue/cli-plugin-babel": "^3.0.0-beta.15", 26 | "@vue/cli-plugin-eslint": "^3.0.0-beta.15", 27 | "@vue/cli-plugin-unit-jest": "^3.0.0-beta.15", 28 | "@vue/cli-service": "^3.0.0-beta.15", 29 | "@vue/eslint-config-prettier": "^3.0.0-rc.3", 30 | "@vue/test-utils": "^1.0.0-beta.16", 31 | "babel-core": "7.0.0-bridge.0", 32 | "babel-jest": "^23.0.1", 33 | "node-sass": "^4.9.0", 34 | "sass-loader": "^7.0.1", 35 | "vue-template-compiler": "^2.5.16" 36 | }, 37 | "browserslist": [ 38 | "> 1%", 39 | "last 2 versions", 40 | "not ie <= 8" 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/favicon.ico -------------------------------------------------------------------------------- /public/index-dev.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | VUE后台管理系统 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | VUE后台管理系统 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/codesample/css/prism.css: -------------------------------------------------------------------------------- 1 | /* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */ 2 | /** 3 | * prism.js default theme for JavaScript, CSS and HTML 4 | * Based on dabblet (http://dabblet.com) 5 | * @author Lea Verou 6 | */ 7 | 8 | code[class*="language-"], 9 | pre[class*="language-"] { 10 | color: black; 11 | text-shadow: 0 1px white; 12 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 13 | direction: ltr; 14 | text-align: left; 15 | white-space: pre; 16 | word-spacing: normal; 17 | word-break: normal; 18 | word-wrap: normal; 19 | line-height: 1.5; 20 | 21 | -moz-tab-size: 4; 22 | -o-tab-size: 4; 23 | tab-size: 4; 24 | 25 | -webkit-hyphens: none; 26 | -moz-hyphens: none; 27 | -ms-hyphens: none; 28 | hyphens: none; 29 | } 30 | 31 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, 32 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { 33 | text-shadow: none; 34 | background: #b3d4fc; 35 | } 36 | 37 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection, 38 | code[class*="language-"]::selection, code[class*="language-"] ::selection { 39 | text-shadow: none; 40 | background: #b3d4fc; 41 | } 42 | 43 | @media print { 44 | code[class*="language-"], 45 | pre[class*="language-"] { 46 | text-shadow: none; 47 | } 48 | } 49 | 50 | /* Code blocks */ 51 | pre[class*="language-"] { 52 | padding: 1em; 53 | margin: .5em 0; 54 | overflow: auto; 55 | } 56 | 57 | :not(pre) > code[class*="language-"], 58 | pre[class*="language-"] { 59 | background: #f5f2f0; 60 | } 61 | 62 | /* Inline code */ 63 | :not(pre) > code[class*="language-"] { 64 | padding: .1em; 65 | border-radius: .3em; 66 | } 67 | 68 | .token.comment, 69 | .token.prolog, 70 | .token.doctype, 71 | .token.cdata { 72 | color: slategray; 73 | } 74 | 75 | .token.punctuation { 76 | color: #999; 77 | } 78 | 79 | .namespace { 80 | opacity: .7; 81 | } 82 | 83 | .token.property, 84 | .token.tag, 85 | .token.boolean, 86 | .token.number, 87 | .token.constant, 88 | .token.symbol, 89 | .token.deleted { 90 | color: #905; 91 | } 92 | 93 | .token.selector, 94 | .token.attr-name, 95 | .token.string, 96 | .token.char, 97 | .token.builtin, 98 | .token.inserted { 99 | color: #690; 100 | } 101 | 102 | .token.operator, 103 | .token.entity, 104 | .token.url, 105 | .language-css .token.string, 106 | .style .token.string { 107 | color: #a67f59; 108 | background: hsla(0, 0%, 100%, .5); 109 | } 110 | 111 | .token.atrule, 112 | .token.attr-value, 113 | .token.keyword { 114 | color: #07a; 115 | } 116 | 117 | .token.function { 118 | color: #DD4A68; 119 | } 120 | 121 | .token.regex, 122 | .token.important, 123 | .token.variable { 124 | color: #e90; 125 | } 126 | 127 | .token.important, 128 | .token.bold { 129 | font-weight: bold; 130 | } 131 | .token.italic { 132 | font-style: italic; 133 | } 134 | 135 | .token.entity { 136 | cursor: help; 137 | } 138 | 139 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css: -------------------------------------------------------------------------------- 1 | .mce-visualblocks p { 2 | padding-top: 10px; 3 | border: 1px dashed #BBB; 4 | margin-left: 3px; 5 | background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); 6 | background-repeat: no-repeat; 7 | } 8 | 9 | .mce-visualblocks h1 { 10 | padding-top: 10px; 11 | border: 1px dashed #BBB; 12 | margin-left: 3px; 13 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); 14 | background-repeat: no-repeat; 15 | } 16 | 17 | .mce-visualblocks h2 { 18 | padding-top: 10px; 19 | border: 1px dashed #BBB; 20 | margin-left: 3px; 21 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); 22 | background-repeat: no-repeat; 23 | } 24 | 25 | .mce-visualblocks h3 { 26 | padding-top: 10px; 27 | border: 1px dashed #BBB; 28 | margin-left: 3px; 29 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); 30 | background-repeat: no-repeat; 31 | } 32 | 33 | .mce-visualblocks h4 { 34 | padding-top: 10px; 35 | border: 1px dashed #BBB; 36 | margin-left: 3px; 37 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); 38 | background-repeat: no-repeat; 39 | } 40 | 41 | .mce-visualblocks h5 { 42 | padding-top: 10px; 43 | border: 1px dashed #BBB; 44 | margin-left: 3px; 45 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); 46 | background-repeat: no-repeat; 47 | } 48 | 49 | .mce-visualblocks h6 { 50 | padding-top: 10px; 51 | border: 1px dashed #BBB; 52 | margin-left: 3px; 53 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); 54 | background-repeat: no-repeat; 55 | } 56 | 57 | .mce-visualblocks div:not([data-mce-bogus]) { 58 | padding-top: 10px; 59 | border: 1px dashed #BBB; 60 | margin-left: 3px; 61 | background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); 62 | background-repeat: no-repeat; 63 | } 64 | 65 | .mce-visualblocks section { 66 | padding-top: 10px; 67 | border: 1px dashed #BBB; 68 | margin: 0 0 1em 3px; 69 | background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); 70 | background-repeat: no-repeat; 71 | } 72 | 73 | .mce-visualblocks article { 74 | padding-top: 10px; 75 | border: 1px dashed #BBB; 76 | margin: 0 0 1em 3px; 77 | background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); 78 | background-repeat: no-repeat; 79 | } 80 | 81 | .mce-visualblocks blockquote { 82 | padding-top: 10px; 83 | border: 1px dashed #BBB; 84 | background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); 85 | background-repeat: no-repeat; 86 | } 87 | 88 | .mce-visualblocks address { 89 | padding-top: 10px; 90 | border: 1px dashed #BBB; 91 | margin: 0 0 1em 3px; 92 | background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); 93 | background-repeat: no-repeat; 94 | } 95 | 96 | .mce-visualblocks pre { 97 | padding-top: 10px; 98 | border: 1px dashed #BBB; 99 | margin-left: 3px; 100 | background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); 101 | background-repeat: no-repeat; 102 | } 103 | 104 | .mce-visualblocks figure { 105 | padding-top: 10px; 106 | border: 1px dashed #BBB; 107 | margin: 0 0 1em 3px; 108 | background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); 109 | background-repeat: no-repeat; 110 | } 111 | 112 | .mce-visualblocks hgroup { 113 | padding-top: 10px; 114 | border: 1px dashed #BBB; 115 | margin: 0 0 1em 3px; 116 | background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); 117 | background-repeat: no-repeat; 118 | } 119 | 120 | .mce-visualblocks aside { 121 | padding-top: 10px; 122 | border: 1px dashed #BBB; 123 | margin: 0 0 1em 3px; 124 | background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); 125 | background-repeat: no-repeat; 126 | } 127 | 128 | .mce-visualblocks figcaption { 129 | border: 1px dashed #BBB; 130 | } 131 | 132 | .mce-visualblocks ul { 133 | padding-top: 10px; 134 | border: 1px dashed #BBB; 135 | margin: 0 0 1em 3px; 136 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); 137 | background-repeat: no-repeat; 138 | } 139 | 140 | .mce-visualblocks ol { 141 | padding-top: 10px; 142 | border: 1px dashed #BBB; 143 | margin: 0 0 1em 3px; 144 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); 145 | background-repeat: no-repeat; 146 | } 147 | 148 | .mce-visualblocks dl { 149 | padding-top: 10px; 150 | border: 1px dashed #BBB; 151 | margin: 0 0 1em 3px; 152 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); 153 | background-repeat: no-repeat; 154 | } 155 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/content.inline.min.css: -------------------------------------------------------------------------------- 1 | .word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3} -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/content.min.css: -------------------------------------------------------------------------------- 1 | body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2} a {color: #1478F0;} 2 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/public/tinymce4.7.5/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 26 | -------------------------------------------------------------------------------- /src/api/ad/ad.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by lk on 17/6/4. 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 谁最懂我相关 7 | 8 | // 列表 9 | export function adList(query) { 10 | return axios({ 11 | url: "/admin/ad/ad/index", 12 | method: "get", 13 | params: query 14 | }); 15 | } 16 | 17 | // 保存 18 | export function adSave(data, formName, method = "post") { 19 | var url = formName === "add" ? "/admin/ad/ad/save" : "/admin/ad/ad/edit"; 20 | return axios({ 21 | url: url, 22 | method: method, 23 | data: data 24 | }); 25 | } 26 | 27 | // 删除 28 | export function adDelete(data) { 29 | return axios({ 30 | url: "/admin/ad/ad/delete", 31 | method: "post", 32 | data: data 33 | }); 34 | } 35 | -------------------------------------------------------------------------------- /src/api/ad/adSite.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by lk on 17/6/4. 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 谁最懂我相关 7 | 8 | // 列表 9 | export function adSiteList(query) { 10 | return axios({ 11 | url: "/admin/ad/site/index", 12 | method: "get", 13 | params: query 14 | }); 15 | } 16 | 17 | // 广告列表 18 | export function adSiteAdList(query) { 19 | return axios({ 20 | url: "/admin/ad/site/adList", 21 | method: "get", 22 | params: query 23 | }); 24 | } 25 | 26 | // 保存 27 | export function adSiteSave(data, formName, method = "post") { 28 | var url = 29 | formName === "add" ? "/admin/ad/site/save" : "/admin/ad/site/edit"; 30 | return axios({ 31 | url: url, 32 | method: method, 33 | data: data 34 | }); 35 | } 36 | 37 | // 删除 38 | export function adSiteDelete(data) { 39 | return axios({ 40 | url: "/admin/ad/site/delete", 41 | method: "post", 42 | data: data 43 | }); 44 | } 45 | -------------------------------------------------------------------------------- /src/api/auth/authAdmin.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by lk on 17/6/4. 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 获取列表 7 | export function authAdminList(query) { 8 | return axios({ 9 | url: "/admin/auth/admin/index", 10 | method: "get", 11 | params: query 12 | }); 13 | } 14 | 15 | // 获取角色列表 16 | export function authAdminRoleList(query) { 17 | return axios({ 18 | url: "/admin/auth/admin/roleList", 19 | method: "get", 20 | params: query 21 | }); 22 | } 23 | 24 | // 保存 25 | export function authAdminSave(data, formName, method = "post") { 26 | let url = 27 | formName === "add" 28 | ? "/admin/auth/admin/save" 29 | : "/admin/auth/admin/edit"; 30 | return axios({ 31 | url: url, 32 | method: method, 33 | data: data 34 | }); 35 | } 36 | 37 | // 删除管理员 38 | export function authAdminDelete(data) { 39 | return axios({ 40 | url: "/admin/auth/admin/delete", 41 | method: "post", 42 | data: data 43 | }); 44 | } 45 | -------------------------------------------------------------------------------- /src/api/auth/authPermissionRule.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by lk on 17/6/4. 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 权限管理 7 | 8 | // 获取列表 9 | export function authPermissionRuleList(query) { 10 | return axios({ 11 | url: "/admin/auth/permission_rule/index", 12 | method: "get", 13 | params: query 14 | }); 15 | } 16 | 17 | // 保存 18 | export function authPermissionRuleSave(data, formName, method = "post") { 19 | let url = 20 | formName !== "edit" 21 | ? "/admin/auth/permission_rule/save" 22 | : "/admin/auth/permission_rule/edit"; 23 | return axios({ 24 | url: url, 25 | method: method, 26 | data: data 27 | }); 28 | } 29 | 30 | // 删除 31 | export function authPermissionRuleDelete(data) { 32 | return axios({ 33 | url: "/admin/auth/permission_rule/delete", 34 | method: "post", 35 | data: data 36 | }); 37 | } 38 | -------------------------------------------------------------------------------- /src/api/auth/authRole.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by lk on 17/6/4. 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 获取列表 7 | export function authRoleList(query) { 8 | return axios({ 9 | url: "/admin/auth/role/index", 10 | method: "get", 11 | params: query 12 | }); 13 | } 14 | 15 | // 编辑 16 | export function authRoleAuthList(query) { 17 | return axios({ 18 | url: "/admin/auth/role/authList", 19 | method: "get", 20 | params: query 21 | }); 22 | } 23 | 24 | // 添加 25 | export function authRoleAuth(data) { 26 | return axios({ 27 | url: "/admin/auth/role/auth", 28 | method: "post", 29 | data: data 30 | }); 31 | } 32 | 33 | // 保存 34 | export function authRoleSave(data, formName, method = "post") { 35 | let url = 36 | formName === "add" ? "/admin/auth/role/save" : "/admin/auth/role/edit"; 37 | return axios({ 38 | url: url, 39 | method: method, 40 | data: data 41 | }); 42 | } 43 | 44 | // 删除 45 | export function authRoleDelete(data) { 46 | return axios({ 47 | url: "/admin/auth/role/delete", 48 | method: "post", 49 | data: data 50 | }); 51 | } 52 | -------------------------------------------------------------------------------- /src/api/auth/login.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by lk on 17/6/4. 3 | */ 4 | import axios from "../../utils/axios"; 5 | // 获取信息 6 | export function userInfo(id, token) { 7 | return axios({ 8 | url: "/admin/auth/login/userInfo", 9 | method: "get", 10 | params: { id, token } 11 | }); 12 | } 13 | 14 | export function loginName(userName, pwd) { 15 | return axios({ 16 | url: "/admin/auth/login/index", 17 | method: "post", 18 | data: { userName, pwd } 19 | }); 20 | } 21 | 22 | export function logout(uid, token) { 23 | return axios({ 24 | url: "/admin/auth/login/out", 25 | method: "post", 26 | data: { uid, token } 27 | }); 28 | } 29 | 30 | export function password(data) { 31 | return axios({ 32 | url: "/admin/auth/login/password", 33 | method: "post", 34 | data: data 35 | }); 36 | } 37 | -------------------------------------------------------------------------------- /src/api/file/fileResource.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 资源管理相关 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 列表 7 | export function fileResourceList(query) { 8 | return axios({ 9 | url: "/admin/file/resource/index", 10 | method: "get", 11 | params: query 12 | }); 13 | } 14 | // 添加 15 | export function fileResourceAdd(data) { 16 | return axios({ 17 | url: "/admin/file/resource/add", 18 | method: "POST", 19 | data: data 20 | }); 21 | } 22 | -------------------------------------------------------------------------------- /src/api/file/fileResourceTag.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 资源分组相关 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 列表 7 | export function fileResourceTagList(query) { 8 | return axios({ 9 | url: "/admin/file/resource_tag/index", 10 | method: "get", 11 | params: query 12 | }); 13 | } 14 | 15 | // 创建分组 16 | export function fileResourceTagAdd(data) { 17 | return axios({ 18 | url: "/admin/file/resource_tag/add", 19 | method: "post", 20 | data: data 21 | }); 22 | } 23 | -------------------------------------------------------------------------------- /src/api/file/upload.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 上传相关 3 | */ 4 | import axios from "../../utils/axios"; 5 | 6 | // 获取七牛上传 upToken 7 | export function qiuNiuUpToken(query) { 8 | return axios({ 9 | url: "/admin/file/upload/qiuNiuUpToken", 10 | method: "get", 11 | params: query 12 | }); 13 | } 14 | 15 | // 上传文件 16 | export function createFile(url, formdata) { 17 | return axios({ 18 | url: url, 19 | method: "post", 20 | data: formdata 21 | }); 22 | } 23 | -------------------------------------------------------------------------------- /src/assets/icons/demo.css: -------------------------------------------------------------------------------- 1 | *{margin: 0;padding: 0;list-style: none;} 2 | /* 3 | KISSY CSS Reset 4 | 理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作。清除和重置是紧密不可分的。 5 | 2. reset 的目的不是让默认样式在所有浏览器下一致,而是减少默认样式有可能带来的问题。 6 | 3. reset 期望提供一套普适通用的基础样式。但没有银弹,推荐根据具体需求,裁剪和修改后再使用。 7 | 特色:1. 适应中文;2. 基于最新主流浏览器。 8 | 维护:玉伯, 正淳 9 | */ 10 | 11 | /** 清除内外边距 **/ 12 | body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */ 13 | dl, dt, dd, ul, ol, li, /* list elements 列表元素 */ 14 | pre, /* text formatting elements 文本格式元素 */ 15 | form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */ 16 | th, td /* table elements 表格元素 */ { 17 | margin: 0; 18 | padding: 0; 19 | } 20 | 21 | /** 设置默认字体 **/ 22 | body, 23 | button, input, select, textarea /* for ie */ { 24 | font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif; 25 | } 26 | h1, h2, h3, h4, h5, h6 { font-size: 100%; } 27 | address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */ 28 | code, kbd, pre, samp { font-family: courier new, courier, monospace; } /* 统一等宽字体 */ 29 | small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */ 30 | 31 | /** 重置列表元素 **/ 32 | ul, ol { list-style: none; } 33 | 34 | /** 重置文本格式元素 **/ 35 | a { text-decoration: none; } 36 | a:hover { text-decoration: underline; } 37 | 38 | 39 | /** 重置表单元素 **/ 40 | legend { color: #000; } /* for ie6 */ 41 | fieldset, img { border: 0; } /* img 搭车:让链接里的 img 无边框 */ 42 | button, input, select, textarea { font-size: 100%; } /* 使得表单元素在 ie 下能继承字体大小 */ 43 | /* 注:optgroup 无法扶正 */ 44 | 45 | /** 重置表格元素 **/ 46 | table { border-collapse: collapse; border-spacing: 0; } 47 | 48 | /* 清除浮动 */ 49 | .ks-clear:after, .clear:after { 50 | content: '\20'; 51 | display: block; 52 | height: 0; 53 | clear: both; 54 | } 55 | .ks-clear, .clear { 56 | *zoom: 1; 57 | } 58 | 59 | .main { 60 | padding: 30px 100px; 61 | width: 960px; 62 | margin: 0 auto; 63 | } 64 | .main h1{font-size:36px; color:#333; text-align:left;margin-bottom:30px; border-bottom: 1px solid #eee;} 65 | 66 | .helps{margin-top:40px;} 67 | .helps pre{ 68 | padding:20px; 69 | margin:10px 0; 70 | border:solid 1px #e7e1cd; 71 | background-color: #fffdef; 72 | overflow: auto; 73 | } 74 | 75 | .icon_lists{ 76 | width: 100% !important; 77 | 78 | } 79 | 80 | .icon_lists li{ 81 | float:left; 82 | width: 100px; 83 | height:180px; 84 | text-align: center; 85 | list-style: none !important; 86 | } 87 | .icon_lists .icon{ 88 | font-size: 42px; 89 | line-height: 100px; 90 | margin: 10px 0; 91 | color:#333; 92 | -webkit-transition: font-size 0.25s ease-out 0s; 93 | -moz-transition: font-size 0.25s ease-out 0s; 94 | transition: font-size 0.25s ease-out 0s; 95 | 96 | } 97 | .icon_lists .icon:hover{ 98 | font-size: 100px; 99 | } 100 | 101 | 102 | 103 | .markdown { 104 | color: #666; 105 | font-size: 14px; 106 | line-height: 1.8; 107 | } 108 | 109 | .highlight { 110 | line-height: 1.5; 111 | } 112 | 113 | .markdown img { 114 | vertical-align: middle; 115 | max-width: 100%; 116 | } 117 | 118 | .markdown h1 { 119 | color: #404040; 120 | font-weight: 500; 121 | line-height: 40px; 122 | margin-bottom: 24px; 123 | } 124 | 125 | .markdown h2, 126 | .markdown h3, 127 | .markdown h4, 128 | .markdown h5, 129 | .markdown h6 { 130 | color: #404040; 131 | margin: 1.6em 0 0.6em 0; 132 | font-weight: 500; 133 | clear: both; 134 | } 135 | 136 | .markdown h1 { 137 | font-size: 28px; 138 | } 139 | 140 | .markdown h2 { 141 | font-size: 22px; 142 | } 143 | 144 | .markdown h3 { 145 | font-size: 16px; 146 | } 147 | 148 | .markdown h4 { 149 | font-size: 14px; 150 | } 151 | 152 | .markdown h5 { 153 | font-size: 12px; 154 | } 155 | 156 | .markdown h6 { 157 | font-size: 12px; 158 | } 159 | 160 | .markdown hr { 161 | height: 1px; 162 | border: 0; 163 | background: #e9e9e9; 164 | margin: 16px 0; 165 | clear: both; 166 | } 167 | 168 | .markdown p, 169 | .markdown pre { 170 | margin: 1em 0; 171 | } 172 | 173 | .markdown > p, 174 | .markdown > blockquote, 175 | .markdown > .highlight, 176 | .markdown > ol, 177 | .markdown > ul { 178 | width: 80%; 179 | } 180 | 181 | .markdown ul > li { 182 | list-style: circle; 183 | } 184 | 185 | .markdown > ul li, 186 | .markdown blockquote ul > li { 187 | margin-left: 20px; 188 | padding-left: 4px; 189 | } 190 | 191 | .markdown > ul li p, 192 | .markdown > ol li p { 193 | margin: 0.6em 0; 194 | } 195 | 196 | .markdown ol > li { 197 | list-style: decimal; 198 | } 199 | 200 | .markdown > ol li, 201 | .markdown blockquote ol > li { 202 | margin-left: 20px; 203 | padding-left: 4px; 204 | } 205 | 206 | .markdown code { 207 | margin: 0 3px; 208 | padding: 0 5px; 209 | background: #eee; 210 | border-radius: 3px; 211 | } 212 | 213 | .markdown pre { 214 | border-radius: 6px; 215 | background: #f7f7f7; 216 | padding: 20px; 217 | } 218 | 219 | .markdown pre code { 220 | border: none; 221 | background: #f7f7f7; 222 | margin: 0; 223 | } 224 | 225 | .markdown strong, 226 | .markdown b { 227 | font-weight: 600; 228 | } 229 | 230 | .markdown > table { 231 | border-collapse: collapse; 232 | border-spacing: 0px; 233 | empty-cells: show; 234 | border: 1px solid #e9e9e9; 235 | width: 95%; 236 | margin-bottom: 24px; 237 | } 238 | 239 | .markdown > table th { 240 | white-space: nowrap; 241 | color: #333; 242 | font-weight: 600; 243 | 244 | } 245 | 246 | .markdown > table th, 247 | .markdown > table td { 248 | border: 1px solid #e9e9e9; 249 | padding: 8px 16px; 250 | text-align: left; 251 | } 252 | 253 | .markdown > table th { 254 | background: #F7F7F7; 255 | } 256 | 257 | .markdown blockquote { 258 | font-size: 90%; 259 | color: #999; 260 | border-left: 4px solid #e9e9e9; 261 | padding-left: 0.8em; 262 | margin: 1em 0; 263 | font-style: italic; 264 | } 265 | 266 | .markdown blockquote p { 267 | margin: 0; 268 | } 269 | 270 | .markdown .anchor { 271 | opacity: 0; 272 | transition: opacity 0.3s ease; 273 | margin-left: 8px; 274 | } 275 | 276 | .markdown .waiting { 277 | color: #ccc; 278 | } 279 | 280 | .markdown h1:hover .anchor, 281 | .markdown h2:hover .anchor, 282 | .markdown h3:hover .anchor, 283 | .markdown h4:hover .anchor, 284 | .markdown h5:hover .anchor, 285 | .markdown h6:hover .anchor { 286 | opacity: 1; 287 | display: inline-block; 288 | } 289 | 290 | .markdown > br, 291 | .markdown > p > br { 292 | clear: both; 293 | } 294 | 295 | 296 | .hljs { 297 | display: block; 298 | background: white; 299 | padding: 0.5em; 300 | color: #333333; 301 | overflow-x: auto; 302 | } 303 | 304 | .hljs-comment, 305 | .hljs-meta { 306 | color: #969896; 307 | } 308 | 309 | .hljs-string, 310 | .hljs-variable, 311 | .hljs-template-variable, 312 | .hljs-strong, 313 | .hljs-emphasis, 314 | .hljs-quote { 315 | color: #df5000; 316 | } 317 | 318 | .hljs-keyword, 319 | .hljs-selector-tag, 320 | .hljs-type { 321 | color: #a71d5d; 322 | } 323 | 324 | .hljs-literal, 325 | .hljs-symbol, 326 | .hljs-bullet, 327 | .hljs-attribute { 328 | color: #0086b3; 329 | } 330 | 331 | .hljs-section, 332 | .hljs-name { 333 | color: #63a35c; 334 | } 335 | 336 | .hljs-tag { 337 | color: #333333; 338 | } 339 | 340 | .hljs-title, 341 | .hljs-attr, 342 | .hljs-selector-id, 343 | .hljs-selector-class, 344 | .hljs-selector-attr, 345 | .hljs-selector-pseudo { 346 | color: #795da3; 347 | } 348 | 349 | .hljs-addition { 350 | color: #55a532; 351 | background-color: #eaffea; 352 | } 353 | 354 | .hljs-deletion { 355 | color: #bd2c00; 356 | background-color: #ffecec; 357 | } 358 | 359 | .hljs-link { 360 | text-decoration: underline; 361 | } 362 | 363 | pre{ 364 | background: #fff; 365 | } 366 | 367 | 368 | 369 | 370 | 371 | -------------------------------------------------------------------------------- /src/assets/icons/demo_fontclass.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | IconFont 7 | 8 | 9 | 10 | 11 |
12 |

IconFont 图标

13 |
    14 | 15 |
  • 16 | 17 |
    通用
    18 |
    .icon-tongyong
    19 |
  • 20 | 21 |
  • 22 | 23 |
    wxb账户
    24 |
    .icon-wxbzhanghu
    25 |
  • 26 | 27 |
  • 28 | 29 |
    公用-圈
    30 |
    .icon-gongyongquan1
    31 |
  • 32 | 33 |
  • 34 | 35 |
    user
    36 |
    .icon-user
    37 |
  • 38 | 39 |
  • 40 | 41 |
    设置
    42 |
    .icon-shezhi1
    43 |
  • 44 | 45 |
  • 46 | 47 |
    用户管理
    48 |
    .icon-user-guanli
    49 |
  • 50 | 51 |
  • 52 | 53 |
    pwd
    54 |
    .icon-pwd
    55 |
  • 56 | 57 |
  • 58 | 59 |
    eye
    60 |
    .icon-eye
    61 |
  • 62 | 63 |
  • 64 | 65 |
    广告
    66 |
    .icon-guanggao
    67 |
  • 68 | 69 |
  • 70 | 71 |
    管理员
    72 |
    .icon-guanliyuan
    73 |
  • 74 | 75 |
  • 76 | 77 |
    权限-
    78 |
    .icon-cloud-permissions
    79 |
  • 80 | 81 |
  • 82 | 83 |
    首页
    84 |
    .icon-shouye
    85 |
  • 86 | 87 |
  • 88 | 89 |
    世界杯
    90 |
    .icon-shijiebei
    91 |
  • 92 | 93 |
  • 94 | 95 |
    角色
    96 |
    .icon-jiaose
    97 |
  • 98 | 99 |
  • 100 | 101 |
    报表
    102 |
    .icon-baobiao
    103 |
  • 104 | 105 |
  • 106 | 107 |
    管理员
    108 |
    .icon-guanliyuan1
    109 |
  • 110 | 111 |
  • 112 | 113 |
    题库
    114 |
    .icon-tiku
    115 |
  • 116 | 117 |
  • 118 | 119 |
    小程序
    120 |
    .icon-xiaochengxu
    121 |
  • 122 | 123 |
124 | 125 |

font-class引用

126 |
127 | 128 |

font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。

129 |

与unicode使用方式相比,具有如下特点:

130 |
    131 |
  • 兼容性良好,支持ie8+,及所有现代浏览器。
  • 132 |
  • 相比于unicode语意明确,书写更直观。可以很容易分辨这个icon是什么。
  • 133 |
  • 因为使用class来定义图标,所以当要替换图标时,只需要修改class里面的unicode引用。
  • 134 |
  • 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
  • 135 |
136 |

使用步骤如下:

137 |

第一步:引入项目下面生成的fontclass代码:

138 | 139 | 140 |
<link rel="stylesheet" type="text/css" href="./iconfont.css">
141 |

第二步:挑选相应图标并获取类名,应用于页面:

142 |
<i class="iconfont icon-xxx"></i>
143 |
144 |

"iconfont"是你项目下的font-family。可以通过编辑项目查看,默认是"iconfont"。

145 |
146 |
147 | 148 | 149 | -------------------------------------------------------------------------------- /src/assets/icons/demo_symbol.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | IconFont 7 | 8 | 9 | 10 | 24 | 25 | 26 |
27 |

IconFont 图标

28 |
    29 | 30 |
  • 31 | 34 |
    通用
    35 |
    #icon-tongyong
    36 |
  • 37 | 38 |
  • 39 | 42 |
    wxb账户
    43 |
    #icon-wxbzhanghu
    44 |
  • 45 | 46 |
  • 47 | 50 |
    公用-圈
    51 |
    #icon-gongyongquan1
    52 |
  • 53 | 54 |
  • 55 | 58 |
    user
    59 |
    #icon-user
    60 |
  • 61 | 62 |
  • 63 | 66 |
    设置
    67 |
    #icon-shezhi1
    68 |
  • 69 | 70 |
  • 71 | 74 |
    用户管理
    75 |
    #icon-user-guanli
    76 |
  • 77 | 78 |
  • 79 | 82 |
    pwd
    83 |
    #icon-pwd
    84 |
  • 85 | 86 |
  • 87 | 90 |
    eye
    91 |
    #icon-eye
    92 |
  • 93 | 94 |
  • 95 | 98 |
    广告
    99 |
    #icon-guanggao
    100 |
  • 101 | 102 |
  • 103 | 106 |
    管理员
    107 |
    #icon-guanliyuan
    108 |
  • 109 | 110 |
  • 111 | 114 |
    权限-
    115 |
    #icon-cloud-permissions
    116 |
  • 117 | 118 |
  • 119 | 122 |
    首页
    123 |
    #icon-shouye
    124 |
  • 125 | 126 |
  • 127 | 130 |
    世界杯
    131 |
    #icon-shijiebei
    132 |
  • 133 | 134 |
  • 135 | 138 |
    角色
    139 |
    #icon-jiaose
    140 |
  • 141 | 142 |
  • 143 | 146 |
    报表
    147 |
    #icon-baobiao
    148 |
  • 149 | 150 |
  • 151 | 154 |
    管理员
    155 |
    #icon-guanliyuan1
    156 |
  • 157 | 158 |
  • 159 | 162 |
    题库
    163 |
    #icon-tiku
    164 |
  • 165 | 166 |
  • 167 | 170 |
    小程序
    171 |
    #icon-xiaochengxu
    172 |
  • 173 | 174 |
175 | 176 | 177 |

symbol引用

178 |
179 | 180 |

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 181 | 这种用法其实是做了一个svg的集合,与另外两种相比具有如下特点:

182 |
    183 |
  • 支持多色图标了,不再受单色限制。
  • 184 |
  • 通过一些技巧,支持像字体那样,通过font-size,color来调整样式。
  • 185 |
  • 兼容性较差,支持 ie9+,及现代浏览器。
  • 186 |
  • 浏览器渲染svg的性能一般,还不如png。
  • 187 |
188 |

使用步骤如下:

189 |

第一步:引入项目下面生成的symbol代码:

190 |
<script src="./iconfont.js"></script>
191 |

第二步:加入通用css代码(引入一次就行):

192 |
<style type="text/css">
193 | .icon {
194 |    width: 1em; height: 1em;
195 |    vertical-align: -0.15em;
196 |    fill: currentColor;
197 |    overflow: hidden;
198 | }
199 | </style>
200 |

第三步:挑选相应图标并获取类名,应用于页面:

201 |
<svg class="icon" aria-hidden="true">
202 |   <use xlink:href="#icon-xxx"></use>
203 | </svg>
204 |         
205 |
206 | 207 | 208 | -------------------------------------------------------------------------------- /src/assets/icons/demo_unicode.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | IconFont 7 | 8 | 9 | 29 | 30 | 31 |
32 |

IconFont 图标

33 |
    34 | 35 |
  • 36 | 37 |
    通用
    38 |
    &#xe617;
    39 |
  • 40 | 41 |
  • 42 | 43 |
    wxb账户
    44 |
    &#xe61f;
    45 |
  • 46 | 47 |
  • 48 | 49 |
    公用-圈
    50 |
    &#xe7eb;
    51 |
  • 52 | 53 |
  • 54 | 55 |
    user
    56 |
    &#xe699;
    57 |
  • 58 | 59 |
  • 60 | 61 |
    设置
    62 |
    &#xe6d1;
    63 |
  • 64 | 65 |
  • 66 | 67 |
    用户管理
    68 |
    &#xe6df;
    69 |
  • 70 | 71 |
  • 72 | 73 |
    pwd
    74 |
    &#xe819;
    75 |
  • 76 | 77 |
  • 78 | 79 |
    eye
    80 |
    &#xe63d;
    81 |
  • 82 | 83 |
  • 84 | 85 |
    广告
    86 |
    &#xe679;
    87 |
  • 88 | 89 |
  • 90 | 91 |
    管理员
    92 |
    &#xe618;
    93 |
  • 94 | 95 |
  • 96 | 97 |
    权限-
    98 |
    &#xe668;
    99 |
  • 100 | 101 |
  • 102 | 103 |
    首页
    104 |
    &#xe602;
    105 |
  • 106 | 107 |
  • 108 | 109 |
    世界杯
    110 |
    &#xe60d;
    111 |
  • 112 | 113 |
  • 114 | 115 |
    角色
    116 |
    &#xe67e;
    117 |
  • 118 | 119 |
  • 120 | 121 |
    报表
    122 |
    &#xe6fc;
    123 |
  • 124 | 125 |
  • 126 | 127 |
    管理员
    128 |
    &#xe65d;
    129 |
  • 130 | 131 |
  • 132 | 133 |
    题库
    134 |
    &#xe62f;
    135 |
  • 136 | 137 |
  • 138 | 139 |
    小程序
    140 |
    &#xe61e;
    141 |
  • 142 | 143 |
144 |

unicode引用

145 |
146 | 147 |

unicode是字体在网页端最原始的应用方式,特点是:

148 |
    149 |
  • 兼容性最好,支持ie6+,及所有现代浏览器。
  • 150 |
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • 151 |
  • 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
  • 152 |
153 |
154 |

注意:新版iconfont支持多色图标,这些多色图标在unicode模式下将不能使用,如果有需求建议使用symbol的引用方式

155 |
156 |

unicode使用步骤如下:

157 |

第一步:拷贝项目下面生成的font-face

158 |
@font-face {
159 |   font-family: 'iconfont';
160 |   src: url('iconfont.eot');
161 |   src: url('iconfont.eot?#iefix') format('embedded-opentype'),
162 |   url('iconfont.woff') format('woff'),
163 |   url('iconfont.ttf') format('truetype'),
164 |   url('iconfont.svg#iconfont') format('svg');
165 | }
166 | 
167 |

第二步:定义使用iconfont的样式

168 |
.iconfont{
169 |   font-family:"iconfont" !important;
170 |   font-size:16px;font-style:normal;
171 |   -webkit-font-smoothing: antialiased;
172 |   -webkit-text-stroke-width: 0.2px;
173 |   -moz-osx-font-smoothing: grayscale;
174 | }
175 | 
176 |

第三步:挑选相应图标并获取字体编码,应用于页面

177 |
<i class="iconfont">&#x33;</i>
178 | 179 |
180 |

"iconfont"是你项目下的font-family。可以通过编辑项目查看,默认是"iconfont"。

181 |
182 |
183 | 184 | 185 | 186 | 187 | -------------------------------------------------------------------------------- /src/assets/icons/iconfont.css: -------------------------------------------------------------------------------- 1 | 2 | @font-face {font-family: "iconfont"; 3 | src: url('iconfont.eot?t=1531114397320'); /* IE9*/ 4 | src: url('iconfont.eot?t=1531114397320#iefix') format('embedded-opentype'), /* IE6-IE8 */ 5 | url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), 6 | url('iconfont.ttf?t=1531114397320') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ 7 | url('iconfont.svg?t=1531114397320#iconfont') format('svg'); /* iOS 4.1- */ 8 | } 9 | 10 | .iconfont { 11 | font-family:"iconfont" !important; 12 | font-size:16px; 13 | font-style:normal; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | } 17 | 18 | .icon-tongyong:before { content: "\e617"; } 19 | 20 | .icon-wxbzhanghu:before { content: "\e61f"; } 21 | 22 | .icon-gongyongquan1:before { content: "\e7eb"; } 23 | 24 | .icon-user:before { content: "\e699"; } 25 | 26 | .icon-shezhi1:before { content: "\e6d1"; } 27 | 28 | .icon-user-guanli:before { content: "\e6df"; } 29 | 30 | .icon-pwd:before { content: "\e819"; } 31 | 32 | .icon-eye:before { content: "\e63d"; } 33 | 34 | .icon-guanggao:before { content: "\e679"; } 35 | 36 | .icon-guanliyuan:before { content: "\e618"; } 37 | 38 | .icon-cloud-permissions:before { content: "\e668"; } 39 | 40 | .icon-shouye:before { content: "\e602"; } 41 | 42 | .icon-shijiebei:before { content: "\e60d"; } 43 | 44 | .icon-jiaose:before { content: "\e67e"; } 45 | 46 | .icon-baobiao:before { content: "\e6fc"; } 47 | 48 | .icon-guanliyuan1:before { content: "\e65d"; } 49 | 50 | .icon-tiku:before { content: "\e62f"; } 51 | 52 | .icon-xiaochengxu:before { content: "\e61e"; } 53 | 54 | -------------------------------------------------------------------------------- /src/assets/icons/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/src/assets/icons/iconfont.eot -------------------------------------------------------------------------------- /src/assets/icons/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/src/assets/icons/iconfont.ttf -------------------------------------------------------------------------------- /src/assets/icons/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/src/assets/icons/iconfont.woff -------------------------------------------------------------------------------- /src/assets/image/file_type_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/src/assets/image/file_type_icon.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmxdawn/vue-admin-html/b6043ddcbe18a92ffaf10396340c970f670b9a58/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 41 | 42 | 43 | 59 | -------------------------------------------------------------------------------- /src/components/Tinymce/index.vue: -------------------------------------------------------------------------------- 1 |