├── .babelrc
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── README.md
├── build
├── build.js
├── check-versions.js
├── dev-client.js
├── dev-server.js
├── utils.js
├── vendor-manifest.json
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
├── webpack.dll.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
├── prod.env.js
└── sit.env.js
├── index.html
├── package.json
├── src
├── App.vue
├── api
│ ├── aggregate.js
│ ├── index.js
│ ├── manage.js
│ ├── messages.js
│ ├── sts.js
│ ├── users.js
│ └── userstats.js
├── assets
│ ├── 401.gif
│ ├── 404.png
│ ├── 404_cloud.png
│ ├── bg1.jpg
│ ├── iconfont
│ │ └── iconfont.js
│ ├── logo.png
│ ├── logo4.png
│ ├── theme
│ │ ├── theme-darkblue
│ │ │ ├── alert.css
│ │ │ ├── autocomplete.css
│ │ │ ├── badge.css
│ │ │ ├── base.css
│ │ │ ├── breadcrumb-item.css
│ │ │ ├── breadcrumb.css
│ │ │ ├── button-group.css
│ │ │ ├── button.css
│ │ │ ├── card.css
│ │ │ ├── carousel-item.css
│ │ │ ├── carousel.css
│ │ │ ├── cascader.css
│ │ │ ├── checkbox-group.css
│ │ │ ├── checkbox.css
│ │ │ ├── col.css
│ │ │ ├── collapse-item.css
│ │ │ ├── collapse.css
│ │ │ ├── color-picker.css
│ │ │ ├── date-picker.css
│ │ │ ├── dialog.css
│ │ │ ├── dropdown-item.css
│ │ │ ├── dropdown-menu.css
│ │ │ ├── dropdown.css
│ │ │ ├── fonts
│ │ │ │ ├── element-icons.ttf
│ │ │ │ └── element-icons.woff
│ │ │ ├── form-item.css
│ │ │ ├── form.css
│ │ │ ├── icon.css
│ │ │ ├── index.css
│ │ │ ├── input-number.css
│ │ │ ├── input.css
│ │ │ ├── loading.css
│ │ │ ├── menu-item-group.css
│ │ │ ├── menu-item.css
│ │ │ ├── menu.css
│ │ │ ├── message-box.css
│ │ │ ├── message.css
│ │ │ ├── notification.css
│ │ │ ├── option-group.css
│ │ │ ├── option.css
│ │ │ ├── pagination.css
│ │ │ ├── popover.css
│ │ │ ├── progress.css
│ │ │ ├── radio-button.css
│ │ │ ├── radio-group.css
│ │ │ ├── radio.css
│ │ │ ├── rate.css
│ │ │ ├── reset.css
│ │ │ ├── row.css
│ │ │ ├── scrollbar.css
│ │ │ ├── select-dropdown.css
│ │ │ ├── select.css
│ │ │ ├── slider.css
│ │ │ ├── spinner.css
│ │ │ ├── step.css
│ │ │ ├── steps.css
│ │ │ ├── submenu.css
│ │ │ ├── switch.css
│ │ │ ├── tab-pane.css
│ │ │ ├── table-column.css
│ │ │ ├── table.css
│ │ │ ├── tabs.css
│ │ │ ├── tag.css
│ │ │ ├── time-picker.css
│ │ │ ├── time-select.css
│ │ │ ├── tooltip.css
│ │ │ ├── tree.css
│ │ │ └── upload.css
│ │ └── theme-green
│ │ │ ├── alert.css
│ │ │ ├── autocomplete.css
│ │ │ ├── badge.css
│ │ │ ├── base.css
│ │ │ ├── breadcrumb-item.css
│ │ │ ├── breadcrumb.css
│ │ │ ├── button-group.css
│ │ │ ├── button.css
│ │ │ ├── card.css
│ │ │ ├── carousel-item.css
│ │ │ ├── carousel.css
│ │ │ ├── cascader.css
│ │ │ ├── checkbox-group.css
│ │ │ ├── checkbox.css
│ │ │ ├── col.css
│ │ │ ├── collapse-item.css
│ │ │ ├── collapse.css
│ │ │ ├── color-picker.css
│ │ │ ├── date-picker.css
│ │ │ ├── dialog.css
│ │ │ ├── dropdown-item.css
│ │ │ ├── dropdown-menu.css
│ │ │ ├── dropdown.css
│ │ │ ├── fonts
│ │ │ ├── element-icons.ttf
│ │ │ └── element-icons.woff
│ │ │ ├── form-item.css
│ │ │ ├── form.css
│ │ │ ├── icon.css
│ │ │ ├── index.css
│ │ │ ├── input-number.css
│ │ │ ├── input.css
│ │ │ ├── loading.css
│ │ │ ├── menu-item-group.css
│ │ │ ├── menu-item.css
│ │ │ ├── menu.css
│ │ │ ├── message-box.css
│ │ │ ├── message.css
│ │ │ ├── notification.css
│ │ │ ├── option-group.css
│ │ │ ├── option.css
│ │ │ ├── pagination.css
│ │ │ ├── popover.css
│ │ │ ├── progress.css
│ │ │ ├── radio-button.css
│ │ │ ├── radio-group.css
│ │ │ ├── radio.css
│ │ │ ├── rate.css
│ │ │ ├── reset.css
│ │ │ ├── row.css
│ │ │ ├── scrollbar.css
│ │ │ ├── select-dropdown.css
│ │ │ ├── select.css
│ │ │ ├── slider.css
│ │ │ ├── spinner.css
│ │ │ ├── step.css
│ │ │ ├── steps.css
│ │ │ ├── submenu.css
│ │ │ ├── switch.css
│ │ │ ├── tab-pane.css
│ │ │ ├── table-column.css
│ │ │ ├── table.css
│ │ │ ├── tabs.css
│ │ │ ├── tag.css
│ │ │ ├── time-picker.css
│ │ │ ├── time-select.css
│ │ │ ├── tooltip.css
│ │ │ ├── tree.css
│ │ │ └── upload.css
│ └── user.png
├── components
│ ├── common
│ │ ├── HomeMenu.vue
│ │ ├── Icon-svg
│ │ │ └── index.vue
│ │ ├── ShowVideo.vue
│ │ └── error
│ │ │ ├── 401.vue
│ │ │ └── 404.vue
│ └── page
│ │ ├── Login.vue
│ │ ├── dashboard
│ │ ├── Dashboard.vue
│ │ ├── HelloSys.vue
│ │ └── index.vue
│ │ ├── friends
│ │ ├── FriendRows.vue
│ │ ├── FriendsInRow.vue
│ │ ├── FriendsManage.vue
│ │ ├── UserRelationInfo.vue
│ │ └── stat
│ │ │ └── FrisNumCycleCharts.vue
│ │ ├── msg
│ │ └── stat
│ │ │ └── MsgNumCycleCharts.vue
│ │ ├── operation
│ │ ├── AnchorMsgMass.vue
│ │ ├── AutoReplyCfg.vue
│ │ ├── AutoReplyCfgList.vue
│ │ └── OperatingAccountManage.vue
│ │ ├── uploadOSS
│ │ └── UploadOSS.vue
│ │ ├── userDataStat
│ │ ├── GeoUserNumCityRanked.vue
│ │ ├── LoggedUserNumCycleCharts.vue
│ │ └── UserNumCycleCharts.vue
│ │ └── userManage
│ │ └── UserManage.vue
├── config
│ └── index.js
├── filters
│ └── index.js
├── main.js
├── mock
│ ├── data
│ │ ├── dashboard.js
│ │ ├── msgData.js
│ │ ├── ststoken.js
│ │ ├── trendData.js
│ │ └── users.js
│ ├── index.js
│ └── mock.js
├── routes.js
├── store
│ ├── actions.js
│ ├── getters.js
│ ├── index.js
│ ├── modules
│ │ ├── permission.js
│ │ └── user.js
│ ├── mutations.js
│ └── state.js
├── styles
│ └── vars.scss
├── utils
│ ├── fetch.js
│ └── index.js
└── vendor
│ ├── Blob.js
│ └── Export2Excel.js
└── static
├── .gitkeep
├── channelCode.json
├── css
├── AdminLTE.min.css
├── bootstrap.min.css
├── color-dark.css
├── datasource.css
├── main.css
└── theme-green
│ ├── color-green.css
│ ├── fonts
│ ├── element-icons.ttf
│ └── element-icons.woff
│ └── index.css
├── data.json
├── errCodeCN.json
├── img
├── avatar.gif
├── bluchat-logo.svg
├── favicon.ico
├── hero_image.png
├── jiagou.png
└── video-bg.png
├── js
└── vendor.dll.js
├── map
└── china.json
└── requestList
├── activeAppVersion.json
├── activeDevType.json
├── activePhoneBrand.json
├── activePhoneModel.json
├── appVersion.json
├── channel.json
├── cycleFrisNum.json
├── cycleLoggedUserNum.json
├── cycleMsgNum.json
├── cycleUserNum.json
├── devType.json
├── formatTest.json
├── friendNumsRanked.json
├── phoneBrand.json
├── phoneModel.json
├── sendMsgCount.json
├── sendMsgNumsRanked.json
└── userNumByGeo.json
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", { "modules": false }],
4 | "stage-2"
5 | ],
6 | "plugins": ["transform-runtime"],
7 | "comments": false,
8 | "env": {
9 | "test": {
10 | "presets": ["env", "stage-2"],
11 | "plugins": [ "istanbul" ]
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | .idea
8 | package-lock.js
9 | package-lock.json
10 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserlist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 有同学反馈 启动报错,应该是npm 依赖的问题
2 |
3 | 我的版本信息附上,供参考,但以上版本应该都支持
4 |
5 | - npm 5.4.1
6 | - node v8.4.0
7 | - vue 大于 2.4.4
8 | - vue-echarts-v3 的版本要注意下,之前开发时就发现不同的版本,引入的玩法会变
9 | ---
10 | 更新:
11 |
12 | 主分支master 更新为动态加载菜单:
13 |
14 | 根据用户的权限,动态分配加载菜单,主要通过使用addRoutes,meta,等特性实现
15 |
16 |
17 | ---
18 |
19 | # DEMO
20 |
21 | 展示数据通过mock.js 构造
22 |
23 | [Demo 地址](https://fantasykai.github.io/vue-admin-manager)
24 |
25 | # vue-admin-manager
26 |
27 | > 后端研发一枚,初创公司,目前没有web端开发,逐步需要做运维,运营的页面,想要快速开展工作,
28 |
29 | > 就去了解了下目前比较火的,react 、vue 、angular,对比之后,感觉目前vue是最合适的,
30 |
31 | > 去官网熟悉了一下,写了几个demo,就开始做这个后台,借鉴很多github上的优秀作品,自己也
32 |
33 | > 输出一下,也方便自己回顾
34 |
35 | # 简介
36 |
37 | 项目为SPA,前后端分离,前端使用vue-cli构建,认证使用JWT,后端数据库为mongodb,后端提供
38 |
39 | restful接口,统计功能非常方便,在前端封装好aggregate,mapReduce,条件,
40 |
41 | 类似于前端组装好查询条件,后端直接吐对应的结果。
42 |
43 | ## 项目架构
44 |
45 | 
46 |
47 | ## Build Setup
48 |
49 | ``` bash
50 | # install dependencies
51 | npm install
52 |
53 | # serve with hot reload at localhost:8080
54 | npm run dev
55 |
56 | # 发布测试环境 包含 webpack ananalyzer
57 | npm run build:sit-preview
58 |
59 | # 构建生成环境
60 | npm run build:prod
61 |
62 | ```
63 |
64 | ## 目录结构
65 | ```shell
66 | ├── build // 构建相关
67 | ├── config // 配置相关
68 | ├── src // 源代码
69 | │ ├── api // 所有请求
70 | │ ├── assets // 主题 字体等静态资源
71 | │ ├── components // 全局公用组件(及页面)
72 | │ ├── config // 配置项
73 | │ ├── directive // 全局指令
74 | │ ├── filtres // 全局filter
75 | │ ├── mock // mock数据
76 | │ ├── router // 路由
77 | │ ├── store // 全局store管理
78 | │ ├── styles // 全局样式
79 | │ ├── utils // 全局公用方法
80 | │ ├── App.vue // 入口页面
81 | │ └── main.js // 入口 加载组件 初始化等
82 | ├── static // 第三方不打包资源
83 | ├── .babelrc // babel-loader 配置
84 | ├── .editorconfig // 代码风格文件,前提是要你的编辑器支持
85 | ├── .gitignore // 用于Git配置不需要加入版本管理的文件
86 | ├── .postcssrc.js // autoprefixer的配置文件
87 | └── package.json // 项目依赖管理
88 |
89 | ```
90 |
91 | ## 技术栈
92 |
93 | - axios
94 | - element-ui
95 | - moment 日期处理
96 | - vue2X、vue-router、vuex
97 |
98 | ### 工具集
99 |
100 | - vue-datasource
101 | - vue-echarts-v3
102 | - vue-quill-editor
103 | - vue-simplemde
104 | - vue-video-player
105 |
106 | ### UI方案
107 |
108 | #### UI
109 |
110 | - element-ui
111 | - bootstrap(AdminLTE)
112 |
113 | #### 扩展图标
114 |
115 | - font-awesome
116 | - ionicons
117 |
118 | ### 项目模块
119 |
120 | - [x] 登录认证(目前基于JWT,)todo 支持Oauth2,支持第三方登录
121 |
122 | - [x] 应用概况 Dashboard 各种图标统计
123 |
124 | - [x] 数据趋势:注册用户,活跃用户,用户关系,等
125 |
126 | - [x] 用户管理 目前只做了查询
127 |
128 | - [x] 数据维护 支持视频,图片的查看
129 |
130 | ### TODO
131 |
132 | - [x] 已完成 折叠导航栏
133 |
134 | - [x] 已完成 登录获取用户昵称
135 |
136 | - [x] 已完成 统计图标抽取
137 |
138 | - [x] 已完成 接入阿里云OSS,STS(临时认证服务)
139 |
140 | - [x] 已完成 支持视频播放
141 |
142 | - [x] vuex状态管理 (目前只记录了用户token信息)
143 |
144 | - [] Dashboard中的echart图标,组件化重构 (第一次使用时,写的,代码比较冗余,后续拆成组件)
145 |
146 | - [x] 404页面组件(目前空白),考虑使用自己博客上的腾讯公益
147 |
148 | - [] 401页面组件
149 |
150 | - [] 响应式,支持手机
151 |
152 |
153 | ### 备注
154 |
155 | Dashboard 页面使用了vue-echarts-v3组件,是刚开始熟悉vue时,硬撸出来的,无美感可言啊。后面逐步熟悉及应用起来组件的思想才,
156 |
157 | 代码尚需逐步优化,哈哈
158 |
159 |
160 | - [个人博客 https://aimak.cn](https://aimak.cn)
161 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | require('./check-versions')();
2 | var server = require('pushstate-server');
3 | var opn = require('opn')
4 | var ora = require('ora')
5 | var rm = require('rimraf')
6 | var path = require('path')
7 | var chalk = require('chalk')
8 | var webpack = require('webpack')
9 | var config = require('../config')
10 | var webpackConfig = require('./webpack.prod.conf')
11 |
12 | console.log(process.env.NODE_ENV)
13 |
14 | var spinner = ora('building for ' + process.env.NODE_ENV + '...')
15 | spinner.start()
16 |
17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18 | if (err) throw err
19 | webpack(webpackConfig, function (err, stats) {
20 | spinner.stop()
21 | if (err) throw err
22 | process.stdout.write(stats.toString({
23 | colors: true,
24 | modules: false,
25 | children: false,
26 | chunks: false,
27 | chunkModules: false
28 | }) + '\n\n')
29 |
30 | console.log(chalk.cyan(' Build complete.\n'))
31 | if(process.env.npm_config_preview){
32 | server.start({
33 | port: 18086,
34 | directory: './dist',
35 | file: '/index.html'
36 | });
37 | console.log('> Listening at ' + 'http://localhost:18086' + '\n')
38 | }
39 | })
40 | })
41 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | var chalk = require('chalk')
2 | var semver = require('semver')
3 | var packageConfig = require('../package.json')
4 | var shell = require('shelljs')
5 | function exec (cmd) {
6 | return require('child_process').execSync(cmd).toString().trim()
7 | }
8 |
9 | var versionRequirements = [
10 | {
11 | name: 'node',
12 | currentVersion: semver.clean(process.version),
13 | versionRequirement: packageConfig.engines.node
14 | },
15 | ]
16 |
17 | if (shell.which('npm')) {
18 | versionRequirements.push({
19 | name: 'npm',
20 | currentVersion: exec('npm --version'),
21 | versionRequirement: packageConfig.engines.npm
22 | })
23 | }
24 |
25 | module.exports = function () {
26 | var warnings = []
27 | for (var i = 0; i < versionRequirements.length; i++) {
28 | var mod = versionRequirements[i]
29 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
30 | warnings.push(mod.name + ': ' +
31 | chalk.red(mod.currentVersion) + ' should be ' +
32 | chalk.green(mod.versionRequirement)
33 | )
34 | }
35 | }
36 |
37 | if (warnings.length) {
38 | console.log('')
39 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
40 | console.log()
41 | for (var i = 0; i < warnings.length; i++) {
42 | var warning = warnings[i]
43 | console.log(' ' + warning)
44 | }
45 | console.log()
46 | process.exit(1)
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/build/dev-client.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | require('eventsource-polyfill')
3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
4 |
5 | hotClient.subscribe(function (event) {
6 | if (event.action === 'reload') {
7 | window.location.reload()
8 | }
9 | })
10 |
--------------------------------------------------------------------------------
/build/dev-server.js:
--------------------------------------------------------------------------------
1 | //检查NodeJS和npm的版本
2 | require('./check-versions')()
3 |
4 | // 获取配置
5 | var config = require('../config')
6 |
7 | // 如果Node的环境变量中没有设置当前的环境(NODE_ENV),则使用config中的配置作为当前的环境
8 | if (!process.env.NODE_ENV) {
9 | process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
10 | }
11 |
12 | // 一个可以调用默认软件打开网址、图片、文件等内容的插件
13 | // 这里用它来调用默认浏览器打开dev-server监听的端口,例如:localhost:8080
14 | var opn = require('opn')
15 | var path = require('path')
16 | var express = require('express')
17 | var webpack = require('webpack')
18 |
19 | // 一个express中间件,用于将http请求代理到其他服务器
20 | // 例:localhost:8080/api/xxx --> localhost:3000/api/xxx
21 | // 这里使用该插件可以将前端开发中涉及到的请求代理到API服务器上,方便与服务器对接
22 | var proxyMiddleware = require('http-proxy-middleware')
23 | var webpackConfig = require('./webpack.dev.conf')
24 |
25 | var port = process.env.PORT || config.dev.port
26 | // automatically open browser, if not set will be false
27 | var autoOpenBrowser = !!config.dev.autoOpenBrowser
28 | // Define HTTP proxies to your custom API backend
29 | // https://github.com/chimurai/http-proxy-middleware
30 | var proxyTable = config.dev.proxyTable
31 |
32 | var app = express()
33 | var compiler = webpack(webpackConfig)
34 |
35 | var devMiddleware = require('webpack-dev-middleware')(compiler, {
36 | publicPath: webpackConfig.output.publicPath,
37 | quiet: true
38 | })
39 |
40 | var hotMiddleware = require('webpack-hot-middleware')(compiler, {
41 | log: () => {
42 | }
43 | })
44 | // force page reload when html-webpack-plugin template changes
45 | compiler.plugin('compilation', function (compilation) {
46 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
47 | hotMiddleware.publish({action: 'reload'})
48 | cb()
49 | })
50 | })
51 |
52 | // proxy api requests
53 | Object.keys(proxyTable).forEach(function (context) {
54 | var options = proxyTable[context]
55 | if (typeof options === 'string') {
56 | options = {target: options}
57 | }
58 | app.use(proxyMiddleware(options.filter || context, options))
59 | })
60 |
61 | // handle fallback for HTML5 history API
62 | app.use(require('connect-history-api-fallback')())
63 |
64 | // serve webpack bundle output
65 | app.use(devMiddleware)
66 |
67 | // enable hot-reload and state-preserving
68 | // compilation error display
69 | app.use(hotMiddleware)
70 |
71 | // serve pure static assets
72 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
73 | app.use(staticPath, express.static('./static'))
74 |
75 | var uri = 'http://localhost:' + port
76 |
77 | var _resolve
78 | var readyPromise = new Promise(resolve => {
79 | _resolve = resolve
80 | })
81 |
82 | console.log('> Starting dev server...')
83 | devMiddleware.waitUntilValid(() => {
84 | console.log('> Listening at ' + uri + '\n')
85 | // when env is testing, don't need open it
86 | if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
87 | opn(uri)
88 | }
89 | _resolve()
90 | })
91 |
92 | var server = app.listen(port)
93 |
94 | module.exports = {
95 | ready: readyPromise,
96 | close: () => {
97 | server.close()
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/build/utils.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var config = require('../config')
3 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
4 |
5 | exports.assetsPath = function (_path) {
6 | var assetsSubDirectory = process.env.NODE_ENV === 'production'
7 | ? config.build.assetsSubDirectory
8 | : config.dev.assetsSubDirectory
9 | return path.posix.join(assetsSubDirectory, _path)
10 | }
11 |
12 | exports.cssLoaders = function (options) {
13 | options = options || {}
14 |
15 | var cssLoader = {
16 | loader: 'css-loader',
17 | options: {
18 | minimize: process.env.NODE_ENV === 'production',
19 | sourceMap: options.sourceMap
20 | }
21 | }
22 |
23 | // generate loader string to be used with extract text plugin
24 | function generateLoaders (loader, loaderOptions) {
25 | var loaders = [cssLoader]
26 | if (loader) {
27 | loaders.push({
28 | loader: loader + '-loader',
29 | options: Object.assign({}, loaderOptions, {
30 | sourceMap: options.sourceMap
31 | })
32 | })
33 | }
34 |
35 | // Extract CSS when that option is specified
36 | // (which is the case during production build)
37 | if (options.extract) {
38 | return ExtractTextPlugin.extract({
39 | use: loaders,
40 | fallback: 'vue-style-loader'
41 | })
42 | } else {
43 | return ['vue-style-loader'].concat(loaders)
44 | }
45 | }
46 |
47 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
48 | return {
49 | css: generateLoaders(),
50 | postcss: generateLoaders(),
51 | less: generateLoaders('less'),
52 | sass: generateLoaders('sass', { indentedSyntax: true }),
53 | scss: generateLoaders('sass'),
54 | stylus: generateLoaders('stylus'),
55 | styl: generateLoaders('stylus')
56 | }
57 | }
58 |
59 | // Generate loaders for standalone style files (outside of .vue)
60 | exports.styleLoaders = function (options) {
61 | var output = []
62 | var loaders = exports.cssLoaders(options)
63 | for (var extension in loaders) {
64 | var loader = loaders[extension]
65 | output.push({
66 | test: new RegExp('\\.' + extension + '$'),
67 | use: loader
68 | })
69 | }
70 | return output
71 | }
72 |
--------------------------------------------------------------------------------
/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var config = require('../config')
3 | var isProduction = process.env.NODE_ENV === 'production'
4 |
5 | module.exports = {
6 | loaders: utils.cssLoaders({
7 | sourceMap: isProduction
8 | ? config.build.productionSourceMap
9 | : config.dev.cssSourceMap,
10 | extract: isProduction
11 | }),
12 | postcss: [
13 | require('autoprefixer')({
14 | browsers: ['last 2 versions']
15 | })
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var utils = require('./utils');
3 | var config = require('../config');
4 | var vueLoaderConfig = require('./vue-loader.conf');
5 |
6 | function resolve (dir) {
7 | return path.join(__dirname, '..', dir)
8 | }
9 | var src = path.resolve(__dirname, '../src');
10 |
11 | module.exports = {
12 | entry: {
13 | app: './src/main.js'
14 | },
15 | output: {
16 | path: config.build.assetsRoot,
17 | filename: '[name].js',
18 | publicPath: process.env.NODE_ENV !== 'development' ? config.build.assetsPublicPath: config.dev.assetsPublicPath
19 |
20 | },
21 | resolve: {
22 | extensions: ['.js', '.vue', '.json'],
23 | alias: {
24 | 'vue$': 'vue/dist/vue.esm.js',
25 | '@': resolve('src'),
26 | 'src': path.resolve(__dirname, '../src'),
27 | 'scss_vars': '@/styles/vars.scss',
28 | 'assets': path.resolve(__dirname, '../src/assets'),
29 | 'api': path.resolve(__dirname, '../src/api'),
30 | 'utils': path.resolve(__dirname, '../src/utils'),
31 | 'vendor': path.resolve(__dirname, '../src/vendor'),
32 | 'static': path.resolve(__dirname, '../static'),
33 | }
34 | },
35 | module: {
36 | rules: [
37 | {
38 | test: /\.vue$/,
39 | loader: 'vue-loader',
40 | options: vueLoaderConfig
41 | },
42 | {
43 | test: /\.js$/,
44 | loader: 'babel-loader',
45 | include: [resolve('src'), resolve('test')]
46 | },
47 | {
48 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
49 | loader: 'url-loader',
50 | options: {
51 | limit: 10000,
52 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
53 | }
54 | },
55 | {
56 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
57 | loader: 'url-loader',
58 | options: {
59 | limit: 10000,
60 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
61 | }
62 | }
63 | ]
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var webpack = require('webpack')
3 | var config = require('../config')
4 | var merge = require('webpack-merge')
5 | var baseWebpackConfig = require('./webpack.base.conf')
6 | var HtmlWebpackPlugin = require('html-webpack-plugin')
7 | var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
8 |
9 | // add hot-reload related code to entry chunks
10 | Object.keys(baseWebpackConfig.entry).forEach(function (name) {
11 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
12 | })
13 |
14 | module.exports = merge(baseWebpackConfig, {
15 | module: {
16 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
17 | },
18 | // cheap-module-eval-source-map is faster for development
19 | devtool: '#cheap-module-eval-source-map',
20 | plugins: [
21 | new webpack.DefinePlugin({
22 | 'process.env': config.dev.env
23 | }),
24 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
25 | new webpack.HotModuleReplacementPlugin(),
26 | new webpack.NoEmitOnErrorsPlugin(),
27 | // https://github.com/ampedandwired/html-webpack-plugin
28 | new HtmlWebpackPlugin({
29 | filename: 'index.html',
30 | template: 'index.html',
31 | inject: true
32 | }),
33 | new FriendlyErrorsPlugin()
34 | ]
35 | })
36 |
--------------------------------------------------------------------------------
/build/webpack.dll.conf.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const webpack = require('webpack');
3 |
4 | module.exports = {
5 | entry: {
6 | vendor: ['vue/dist/vue.common.js','vue-router', 'babel-polyfill','axios','vue-echarts-v3']
7 | },
8 | output: {
9 | path: path.join(__dirname, '../static/js'),
10 | filename: '[name].dll.js',
11 | library: '[name]_library'
12 | },
13 | plugins: [
14 | new webpack.DllPlugin({
15 | path: path.join(__dirname, '.', '[name]-manifest.json'),
16 | name: '[name]_library'
17 | }),
18 | new webpack.optimize.UglifyJsPlugin({
19 | compress: {
20 | warnings: false
21 | }
22 | }),
23 | new webpack.DefinePlugin({
24 | 'process.env': {
25 | NODE_ENV: '"production"'
26 | }
27 | })
28 | ]
29 | };
--------------------------------------------------------------------------------
/build/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var utils = require('./utils')
3 | var webpack = require('webpack')
4 | var config = require('../config')
5 | var merge = require('webpack-merge')
6 | var baseWebpackConfig = require('./webpack.base.conf')
7 | var CopyWebpackPlugin = require('copy-webpack-plugin')
8 | var HtmlWebpackPlugin = require('html-webpack-plugin')
9 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
10 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
11 |
12 | var env = process.env.NODE_ENV === 'production' ? config.build.prodEnv : config.build.sitEnv
13 |
14 | function resolveApp(relativePath) {
15 | return path.resolve(relativePath);
16 | }
17 |
18 | var webpackConfig = merge(baseWebpackConfig, {
19 | module: {
20 | rules: utils.styleLoaders({
21 | sourceMap: config.build.productionSourceMap,
22 | extract: true
23 | })
24 | },
25 | devtool: config.build.productionSourceMap ? '#source-map' : false,
26 | output: {
27 | path: config.build.assetsRoot,
28 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
29 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
30 | },
31 | plugins: [
32 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
33 | new webpack.DefinePlugin({
34 | 'process.env': env
35 | }),
36 | new webpack.optimize.UglifyJsPlugin({
37 | compress: {
38 | warnings: false
39 | },
40 | sourceMap: true
41 | }),
42 | // extract css into its own file
43 | new ExtractTextPlugin({
44 | filename: utils.assetsPath('css/[name].[contenthash].css')
45 | }),
46 | // Compress extracted CSS. We are using this plugin so that possible
47 | // duplicated CSS from different components can be deduped.
48 | new OptimizeCSSPlugin({
49 | cssProcessorOptions: {
50 | safe: true
51 | }
52 | }),
53 | // generate dist index.html with correct asset hash for caching.
54 | // you can customize output by editing /index.html
55 | // see https://github.com/ampedandwired/html-webpack-plugin
56 | new HtmlWebpackPlugin({
57 | filename: config.build.index,
58 | template: 'index.html',
59 | inject: true,
60 | minify: {
61 | removeComments: true,
62 | collapseWhitespace: true,
63 | removeAttributeQuotes: true
64 | // more options:
65 | // https://github.com/kangax/html-minifier#options-quick-reference
66 | },
67 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
68 | chunksSortMode: 'dependency'
69 | }),
70 | // split vendor js into its own file
71 | new webpack.optimize.CommonsChunkPlugin({
72 | name: 'vendor',
73 | minChunks: function (module, count) {
74 | // any required modules inside node_modules are extracted to vendor
75 | return (
76 | module.resource &&
77 | /\.js$/.test(module.resource) &&
78 | module.resource.indexOf(
79 | path.join(__dirname, '../node_modules')
80 | ) === 0
81 | )
82 | }
83 | }),
84 | // extract webpack runtime and module manifest to its own file in order to
85 | // prevent vendor hash from being updated whenever app bundle is updated
86 | new webpack.optimize.CommonsChunkPlugin({
87 | name: 'manifest',
88 | chunks: ['vendor']
89 | }),
90 | // copy custom static assets
91 | new CopyWebpackPlugin([
92 | {
93 | from: path.resolve(__dirname, '../static'),
94 | to: config.build.assetsSubDirectory,
95 | ignore: ['.*']
96 | }
97 | ])
98 | ]
99 | })
100 |
101 | if (config.build.productionGzip) {
102 | var CompressionWebpackPlugin = require('compression-webpack-plugin')
103 |
104 | webpackConfig.plugins.push(
105 | new CompressionWebpackPlugin({
106 | asset: '[path].gz[query]',
107 | algorithm: 'gzip',
108 | test: new RegExp(
109 | '\\.(' +
110 | config.build.productionGzipExtensions.join('|') +
111 | ')$'
112 | ),
113 | threshold: 10240,
114 | minRatio: 0.8
115 | })
116 | )
117 | }
118 |
119 | if (config.build.bundleAnalyzerReport) {
120 | var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
121 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
122 | }
123 |
124 | module.exports = webpackConfig
125 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"development"',
3 | BASE_API: '""',
4 | };
5 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | // see http://vuejs-templates.github.io/webpack for documentation.
2 | var path = require('path');
3 |
4 | module.exports = {
5 | build: {
6 | sitEnv: require('./sit.env'),
7 | prodEnv: require('./prod.env'),
8 | index: path.resolve(__dirname, '../dist/index.html'),
9 | assetsRoot: path.resolve(__dirname, '../dist'),
10 | assetsSubDirectory: 'static',
11 | assetsPublicPath: './',
12 | productionSourceMap: false,
13 | // Gzip off by default as many popular static hosts such as
14 | // Surge or Netlify already gzip all static assets for you.
15 | // Before setting to `true`, make sure to:
16 | // npm install --save-dev compression-webpack-plugin
17 | productionGzip: false,
18 | productionGzipExtensions: ['js', 'css'],
19 | // Run the build command with an extra argument to
20 | // View the bundle analyzer report after build finishes:
21 | // `npm run build --report`
22 | // Set to `true` or `false` to always turn it on or off
23 | bundleAnalyzerReport: process.env.npm_config_report
24 | },
25 | dev: {
26 | env: require('./dev.env'),
27 | port: 18085,
28 | autoOpenBrowser: true,
29 | assetsSubDirectory: 'static',
30 | assetsPublicPath: '/',
31 | proxyTable: {
32 | '/charts/v1': {
33 | target: 'https://api.fantasykai.cc/charts/v1',
34 | changeOrigin: true,
35 | pathRewrite: {
36 | '/charts/v1': ''
37 | }
38 | },
39 | '/manage/v1': {
40 | target: 'https://api.fantasykai.cc/manage/v1',
41 | changeOrigin: true,
42 | pathRewrite: {
43 | '/manage/v1': ''
44 | }
45 | },
46 | '/api': {
47 | target: 'https://api.fantasykai.cc/api/v1',
48 | changeOrigin: true,
49 | pathRewrite: {
50 | '/api/v1': ''
51 | }
52 | }
53 | },
54 | // CSS Sourcemaps off by default because relative paths are "buggy"
55 | // with this option, according to the CSS-Loader README
56 | // (https://github.com/webpack/css-loader#sourcemaps)
57 | // In our experience, they generally work as expected,
58 | // just be aware of this issue when enabling this option.
59 | cssSourceMap: false
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"',
3 | BASE_API: '"https://api-prod.com"'
4 | };
5 |
--------------------------------------------------------------------------------
/config/sit.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"',
3 | BASE_API: '"https://api-sit.com"'
4 | };
5 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Sys-Admin
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-admin-manager",
3 | "version": "1.0.0",
4 | "description": "后台管理系统",
5 | "author": "fantasykai ",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "build:prod": "cross-env NODE_ENV=production node build/build.js",
10 | "build:sit": "cross-env NODE_ENV=sit node build/build.js",
11 | "build:sit-preview": "cross-env NODE_ENV=sit npm_config_preview=true npm_config_report=true node build/build.js"
12 | },
13 | "dependencies": {
14 | "axios": "^0.16.2",
15 | "element-ui": "^1.3.7",
16 | "file-saver": "^1.3.3",
17 | "moment": "^2.18.1",
18 | "nprogress": "^0.2.0",
19 | "uuid": "^3.1.0",
20 | "vue": "^2.4.4",
21 | "vue-datasource": "^2.0.1",
22 | "vue-echarts-v3": "^1.0.4",
23 | "vue-quill-editor": "^2.3.2",
24 | "vue-router": "^2.6.0",
25 | "vue-simplemde": "^0.4.4",
26 | "vue-video-player": "^4.0.4",
27 | "vuex": "^2.4.1",
28 | "vuex-router-sync": "^4.3.2",
29 | "xlsx": "^0.11.4"
30 | },
31 | "devDependencies": {
32 | "autoprefixer": "^7.1.4",
33 | "axios-mock-adapter": "^1.9.0",
34 | "babel-core": "^6.25.0",
35 | "babel-loader": "^7.0.0",
36 | "babel-plugin-transform-runtime": "^6.23.0",
37 | "babel-polyfill": "^6.23.0",
38 | "babel-preset-env": "^1.5.2",
39 | "babel-preset-stage-2": "^6.24.1",
40 | "babel-register": "^6.24.1",
41 | "babel-runtime": "^6.23.0",
42 | "chalk": "^2.1.0",
43 | "connect-history-api-fallback": "^1.3.0",
44 | "copy-webpack-plugin": "^4.0.1",
45 | "cross-env": "^5.0.1",
46 | "css-loader": "^0.28.7",
47 | "cssnano": "^3.10.0",
48 | "del": "^3.0.0",
49 | "eventsource-polyfill": "^0.9.6",
50 | "express": "^4.15.5",
51 | "extract-text-webpack-plugin": "^3.0.0",
52 | "file-loader": "^0.11.2",
53 | "friendly-errors-webpack-plugin": "^1.6.1",
54 | "function-bind": "^1.1.1",
55 | "gulp": "^3.9.1",
56 | "gulp-ssh": "^0.6.0",
57 | "html-webpack-plugin": "^2.28.0",
58 | "http-proxy-middleware": "^0.17.4",
59 | "mockjs": "^1.0.1-beta3",
60 | "node-sass": "^4.5.3",
61 | "opn": "^5.1.0",
62 | "optimize-css-assets-webpack-plugin": "^3.2.0",
63 | "ora": "^1.3.0",
64 | "pushstate-server": "^3.0.0",
65 | "rimraf": "^2.6.2",
66 | "sass-loader": "^6.0.6",
67 | "script-loader": "^0.7.1",
68 | "semver": "^5.3.0",
69 | "shelljs": "^0.7.8",
70 | "url-loader": "^0.5.9",
71 | "vue-loader": "^13.0.5",
72 | "vue-style-loader": "^3.0.3",
73 | "vue-template-compiler": "^2.4.4",
74 | "webpack": "^3.6.0",
75 | "webpack-bundle-analyzer": "^2.8.2",
76 | "webpack-dev-middleware": "^1.10.2",
77 | "webpack-hot-middleware": "^2.19.1",
78 | "webpack-merge": "^4.1.0"
79 | },
80 | "engines": {
81 | "node": ">= 4.0.0",
82 | "npm": ">= 3.0.0"
83 | },
84 | "browserslist": [
85 | "> 1%",
86 | "last 2 versions",
87 | "not ie <= 8"
88 | ]
89 | }
90 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
18 |
19 |
76 |
--------------------------------------------------------------------------------
/src/api/aggregate.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/15 0015.
3 | */
4 | import fetch from '../utils/fetch';
5 |
6 | export function aggregate(data) {
7 | return fetch({
8 | url: '/charts/v1/aggregate',
9 | method: 'post',
10 | data
11 | }).then(res => res.data.result);
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/src/api/manage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/19 0019.
3 | */
4 | import fetch from '../utils/fetch'
5 |
6 | /**
7 | * 设置定时任务
8 | * @param data
9 | * @returns {*|Promise.}
10 | */
11 | export function setMsgTimingTask(data) {
12 | return fetch({
13 | url: '/manage/v1/apschedul/sendtousera',
14 | method: 'post',
15 | data
16 | }).then(res => res.data);
17 | }
18 |
19 | /**
20 | * 取消定时任务
21 | * @param data
22 | * @returns {*|Promise.}
23 | */
24 | export function cancelMsgTimingTask(params) {
25 | let data = params.patchBody;
26 | return fetch({
27 | url: params.uri,
28 | method: 'patch',
29 | data
30 | }).then(res => res.data);
31 | }
32 |
33 | /**
34 | * 获取账号自动回复设置信息
35 | * @param params
36 | * @returns {*}
37 | */
38 | export function getMsgConfigs(params) {
39 | return fetch({
40 | url: '/api/v1/msgconfigs',
41 | headers: {'cache-control': 'max-age=0,no-cache'},
42 | params: params,
43 | method: 'get'
44 | });
45 | }
46 |
47 | /**
48 | * 设置自动回复配置
49 | * @param data
50 | * @returns {*|Promise.}
51 | */
52 | export function setMsgConfigs(data) {
53 | return fetch({
54 | url: '/api/v1/msgconfigs',
55 | method: 'post',
56 | data
57 | }).then(res => res.data);
58 | }
59 |
60 | /**
61 | * 触发消息发送任务
62 | * @param data
63 | * @returns {*|Promise.}
64 | */
65 | export function sendToUsersSchedul(data) {
66 | return fetch({
67 | url: '/manage/v1/apschedul/sendtousers',
68 | method: 'post',
69 | data
70 | }).then(res => res.data);
71 | }
72 |
73 | /**
74 | * 更新自动回复配置
75 | * @param data
76 | * @returns {*|Promise.}
77 | */
78 | export function updateMsgConfigs(params) {
79 | let data = params.patchBody;
80 | return fetch({
81 | url: params.uri,
82 | method: 'patch',
83 | data
84 | }).then(res => res.data);
85 | }
86 | /**
87 | * 删除自动回复配置信息
88 | * @param params
89 | * @returns {*}
90 | */
91 | export function deleteMsgConfigs(params) {
92 | return fetch({
93 | url: '/api/v1/msgconfigs/' + params,
94 | method: 'delete'
95 | }).then(res => res.data);
96 | }
97 |
--------------------------------------------------------------------------------
/src/api/messages.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/15 0015.
3 | */
4 | import fetch from '../utils/fetch'
5 |
6 | /**
7 | * 获取消息记录,强制不使用缓存
8 | * @param params
9 | * @returns {*}
10 | */
11 | export function getChatRecordPage(params) {
12 | return fetch({
13 | url: '/api/v1/messages',
14 | headers: {'cache-control': 'max-age=0,no-cache'},
15 | params: params,
16 | method: 'get'
17 | });
18 | }
19 |
--------------------------------------------------------------------------------
/src/api/sts.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/15 0015.
3 | */
4 | import fetch from 'utils/fetch';
5 |
6 | export function getSTSToken() {
7 | return fetch({
8 | url: '/api/v1/ststoken',
9 | method: 'get'
10 | }).then(res => res.data);
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/src/api/users.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/15 0015.
3 | */
4 | import fetch from '../utils/fetch'
5 | /**
6 | * 获取用户昵称
7 | * @returns {*|Promise.}
8 | */
9 | export function getNickname(uid) {
10 | return fetch({
11 | url: `/api/v1/users/` + uid + `?projection={"nickname":1,"usertype":1,"manage":1}`,
12 | method: 'get'
13 | }).then(res => res.data);
14 | }
15 |
16 | /**
17 | * 获取用户列表
18 | * @param params
19 | * @returns {*}
20 | */
21 | export function getUsersPage(params) {
22 | return fetch({
23 | url: '/api/v1/users',
24 | method: 'get',
25 | params: params
26 | });
27 | }
28 |
29 | /**
30 | * 更新用户信息
31 | * @param data
32 | * @returns {*|Promise.}
33 | */
34 | export function updateUserInfo(params) {
35 | let data = params.patchBody;
36 | return fetch({
37 | url: params.uri,
38 | method: 'patch',
39 | data
40 | }).then(res => res.data);
41 | }
42 |
43 | /**
44 | * 根据用户userId/seqid/tel 查询用户的uid
45 | * @param params
46 | * @returns {*}
47 | */
48 | export function getBluUid(params) {
49 | return fetch({
50 | url: '/api/v1/users',
51 | method: 'get',
52 | params: params
53 | });
54 | }
55 |
56 | /**
57 | * 查询好友列表
58 | * @param params
59 | * @returns {Promise.|*}
60 | */
61 | export function getFriendsPage(params) {
62 | return fetch({
63 | url: `/api/v1/users/` + params.userId + `/fris`,
64 | headers: {'cache-control': 'max-age=0,no-cache'},
65 | method: 'get',
66 | params: params.queryParams
67 | }).then(res => res.data);
68 | }
69 |
70 | /**
71 | * 查询好友分组
72 | * @param params
73 | * @returns {Promise.|*}
74 | */
75 | export function getFriendRows(params) {
76 | return fetch({
77 | url: `/api/v1/users/` + params.userId + `/rows`,
78 | headers: {'cache-control': 'max-age=0,no-cache'},
79 | method: 'get',
80 | params: params.queryParams
81 | }).then(res => res.data);
82 | }
83 |
84 | /**
85 | * 查询好友分组内的好友
86 | * @param params
87 | * @returns {Promise.|*}
88 | */
89 | export function getFriendsInRow(params) {
90 | return fetch({
91 | url: `/api/v1/users/` + params.userId + `/fris`,
92 | headers: {'cache-control': 'max-age=0,no-cache'},
93 | method: 'get',
94 | params: params.queryParams
95 | }).then(res => res.data);
96 | }
97 |
--------------------------------------------------------------------------------
/src/api/userstats.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/15 0015.
3 | */
4 | import fetch from '../utils/fetch'
5 |
6 | /**
7 | * 获取主播数据统计信息
8 | * @param params
9 | * @returns {Promise.|*}
10 | */
11 | export function getAnchorDataStatPage(params) {
12 | return fetch({
13 | url: '/api/v1/userstats',
14 | headers: {'cache-control': 'max-age=0,no-cache'},
15 | method: 'get',
16 | params: params
17 | });
18 | }
19 |
--------------------------------------------------------------------------------
/src/assets/401.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/401.gif
--------------------------------------------------------------------------------
/src/assets/404.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/404.png
--------------------------------------------------------------------------------
/src/assets/404_cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/404_cloud.png
--------------------------------------------------------------------------------
/src/assets/bg1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/bg1.jpg
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/logo.png
--------------------------------------------------------------------------------
/src/assets/logo4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/logo4.png
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/alert.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;color:#fff;opacity:1;display:table;transition:opacity .2s}.el-alert .el-alert__description{color:#fff;font-size:12px;margin:5px 0 0}.el-alert--success{background-color:#13ce66}.el-alert--info{background-color:#50bfff}.el-alert--warning{background-color:#f7ba2a}.el-alert--error{background-color:#ff4949}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px;display:table-cell;color:#fff;vertical-align:middle}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert__closebtn{font-size:12px;color:#fff;opacity:1;top:12px;right:15px;position:absolute;cursor:pointer}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/badge.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#ff4949;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-dot{width:8px;height:8px;padding:0;right:0;border-radius:50%}.el-badge__content.is-fixed{top:0;right:10px;position:absolute;-ms-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/base.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-fade-in-enter,.el-fade-in-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-ms-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-ms-transform:scaleY(1);transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;-ms-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-ms-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-ms-transform:scaleY(1);transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;-ms-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-ms-transform:scaleY(0);transform:scaleY(0)}.collapse-transition{transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.list-enter-active,.list-leave-active{transition:all 1s}.list-enter,.list-leave-active{opacity:0;-ms-transform:translateY(-30px);transform:translateY(-30px)}@font-face{font-family:element-icons;src:url(fonts/element-icons.woff?t=1472440741) format('woff'),url(fonts/element-icons.ttf?t=1472440741) format('truetype');font-weight:400;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-arrow-down:before{content:"\e600"}.el-icon-arrow-left:before{content:"\e601"}.el-icon-arrow-right:before{content:"\e602"}.el-icon-arrow-up:before{content:"\e603"}.el-icon-caret-bottom:before{content:"\e604"}.el-icon-caret-left:before{content:"\e605"}.el-icon-caret-right:before{content:"\e606"}.el-icon-caret-top:before{content:"\e607"}.el-icon-check:before{content:"\e608"}.el-icon-circle-check:before{content:"\e609"}.el-icon-circle-close:before{content:"\e60a"}.el-icon-circle-cross:before{content:"\e60b"}.el-icon-close:before{content:"\e60c"}.el-icon-upload:before{content:"\e60d"}.el-icon-d-arrow-left:before{content:"\e60e"}.el-icon-d-arrow-right:before{content:"\e60f"}.el-icon-d-caret:before{content:"\e610"}.el-icon-date:before{content:"\e611"}.el-icon-delete:before{content:"\e612"}.el-icon-document:before{content:"\e613"}.el-icon-edit:before{content:"\e614"}.el-icon-information:before{content:"\e615"}.el-icon-loading:before{content:"\e616"}.el-icon-menu:before{content:"\e617"}.el-icon-message:before{content:"\e618"}.el-icon-minus:before{content:"\e619"}.el-icon-more:before{content:"\e61a"}.el-icon-picture:before{content:"\e61b"}.el-icon-plus:before{content:"\e61c"}.el-icon-search:before{content:"\e61d"}.el-icon-setting:before{content:"\e61e"}.el-icon-share:before{content:"\e61f"}.el-icon-star-off:before{content:"\e620"}.el-icon-star-on:before{content:"\e621"}.el-icon-time:before{content:"\e622"}.el-icon-warning:before{content:"\e623"}.el-icon-delete2:before{content:"\e624"}.el-icon-upload2:before{content:"\e627"}.el-icon-view:before{content:"\e626"}.el-icon-loading{animation:rotating 1s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/breadcrumb-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/breadcrumb-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/breadcrumb.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-breadcrumb{font-size:13px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 8px;color:rgb(191, 203, 217)}.el-breadcrumb__item{float:left}.el-breadcrumb__item:last-child .el-breadcrumb__item__inner,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner:hover{color:rgb(151, 168, 190);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-breadcrumb__item__inner,.el-breadcrumb__item__inner a{transition:color .15s linear;color:rgb(72, 87, 106)}.el-breadcrumb__item__inner a:hover,.el-breadcrumb__item__inner:hover{color:#1d8ce0;cursor:pointer}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/button-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/button-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/card.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-card{border:1px solid rgb(209, 219, 229);border-radius:4px;background-color:#fff;overflow:hidden;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-card__header{padding:18px 20px;border-bottom:1px solid rgb(209, 219, 229);box-sizing:border-box}.el-card__body{padding:20px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/carousel-item.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-carousel__item,.el-carousel__mask{position:absolute;height:100%;top:0;left:0}.el-carousel__item{width:100%;display:inline-block;transition:.4s ease-in-out;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;transition:.2s}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/carousel.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-carousel__arrow,.el-carousel__button{outline:0;margin:0;cursor:pointer;transition:.3s}.el-carousel{overflow-x:hidden;position:relative}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;padding:0;width:36px;height:36px;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-ms-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__indicators{position:absolute;list-style:none;bottom:0;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%);margin:0;padding:0;z-index:2}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-ms-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:rgb(131, 145, 165);opacity:.24}.el-carousel__indicator{display:inline-block;background-color:transparent;padding:12px 4px;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;padding:0}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-ms-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-ms-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/checkbox-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/checkbox-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/checkbox.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-checkbox,.el-checkbox__input{white-space:nowrap;cursor:pointer;display:inline-block;position:relative}.el-checkbox{color:rgb(31, 45, 61);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-checkbox+.el-checkbox{margin-left:15px}.el-checkbox__input{outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1d8ce0;border-color:rgb(1, 130, 228)}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;border:1px solid #fff;margin-top:-1px;left:3px;right:3px;top:50%}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#1d8ce0}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#1d8ce0;border-color:rgb(1, 130, 228)}.el-checkbox__input.is-checked .el-checkbox__inner::after{-ms-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:rgb(238, 241, 246);border-color:rgb(209, 219, 229);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:rgb(238, 241, 246)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:rgb(209, 219, 229);border-color:rgb(209, 219, 229)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#fff}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:rgb(209, 219, 229);border-color:rgb(209, 219, 229)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{border-color:#fff}.el-checkbox__input.is-disabled+.el-checkbox__label{color:#bbb;cursor:not-allowed}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid rgb(191, 203, 217);border-radius:4px;box-sizing:border-box;width:18px;height:18px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#1d8ce0}.el-checkbox__inner::after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:5px;position:absolute;top:1px;-ms-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;-ms-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;left:-999px}.el-checkbox__label{font-size:14px;padding-left:5px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/collapse-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/collapse-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/collapse.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-collapse{border:1px solid rgb(223, 230, 236);border-radius:0}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse-item.is-active>.el-collapse-item__header .el-collapse-item__header__arrow{-ms-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header{height:43px;line-height:43px;padding-left:15px;background-color:#fff;color:rgb(72, 87, 106);cursor:pointer;border-bottom:1px solid rgb(223, 230, 236);font-size:13px}.el-collapse-item__header__arrow{margin-right:8px;transition:transform .3s}.el-collapse-item__wrap{will-change:height;background-color:rgb(250, 253, 254);overflow:hidden;box-sizing:border-box;border-bottom:1px solid rgb(223, 230, 236)}.el-collapse-item__content{padding:10px 15px;font-size:13px;color:rgb(31, 45, 61);line-height:1.769230769230769}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/color-picker.css:
--------------------------------------------------------------------------------
1 | .el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-ms-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:rgb(31, 45, 61)}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#1d8ce0;border-color:#1d8ce0}.el-color-dropdown__link-btn{cursor:pointer;color:#1d8ce0;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:rgb(74, 163, 230)}.el-color-picker{display:inline-block;position:relative}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:36px;padding:6px;border:1px solid rgb(191, 203, 217);border-radius:4px;font-size:0}.el-color-picker__color{position:relative;display:inline-block;box-sizing:border-box;vertical-align:middle;border:1px solid #666;width:22px;height:22px;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{font-size:12px;vertical-align:middle;margin-top:4px;color:#666}.el-color-picker__icon{display:inline-block;position:relative;vertical-align:middle;margin-left:8px;width:12px;color:#888;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;background-color:#fff;border:1px solid rgb(209, 219, 229);box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.12)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/dialog.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-dialog{position:absolute;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%);background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box}.el-dialog--tiny{width:30%}.el-dialog--small{width:50%}.el-dialog--large{width:90%}.el-dialog--full{width:100%;top:0;height:100%;overflow:auto}.el-dialog__wrapper{top:0;right:0;bottom:0;left:0;position:fixed;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 0}.el-dialog__close{cursor:pointer;color:rgb(191, 203, 217)}.el-dialog__close:hover{color:#1d8ce0}.el-dialog__title{line-height:1;font-size:16px;font-weight:700;color:rgb(31, 45, 61)}.el-dialog__body{padding:30px 20px;color:rgb(72, 87, 106);font-size:14px}.el-dialog__headerbtn{float:right}.el-dialog__footer{padding:10px 20px 15px;text-align:right;box-sizing:border-box}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/dropdown-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/dropdown-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/dropdown-menu.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/dropdown-menu.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/fonts/element-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/fonts/element-icons.ttf
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/fonts/element-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/fonts/element-icons.woff
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/form-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/form-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/form.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-form-item .el-form-item__content{margin-left:0!important}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner,.el-form-item.is-error .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-textarea__inner{border-color:#ff4949}.el-form-item.is-required .el-form-item__label:before{content:'*';color:#ff4949;margin-right:4px}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:rgb(72, 87, 106);line-height:1;padding:11px 12px 11px 0;box-sizing:border-box}.el-form-item__content{line-height:36px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__error{color:#ff4949;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/icon.css:
--------------------------------------------------------------------------------
1 | @font-face{font-family:element-icons;src:url(fonts/element-icons.woff?t=1472440741) format('woff'),url(fonts/element-icons.ttf?t=1472440741) format('truetype');font-weight:400;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-arrow-down:before{content:"\e600"}.el-icon-arrow-left:before{content:"\e601"}.el-icon-arrow-right:before{content:"\e602"}.el-icon-arrow-up:before{content:"\e603"}.el-icon-caret-bottom:before{content:"\e604"}.el-icon-caret-left:before{content:"\e605"}.el-icon-caret-right:before{content:"\e606"}.el-icon-caret-top:before{content:"\e607"}.el-icon-check:before{content:"\e608"}.el-icon-circle-check:before{content:"\e609"}.el-icon-circle-close:before{content:"\e60a"}.el-icon-circle-cross:before{content:"\e60b"}.el-icon-close:before{content:"\e60c"}.el-icon-upload:before{content:"\e60d"}.el-icon-d-arrow-left:before{content:"\e60e"}.el-icon-d-arrow-right:before{content:"\e60f"}.el-icon-d-caret:before{content:"\e610"}.el-icon-date:before{content:"\e611"}.el-icon-delete:before{content:"\e612"}.el-icon-document:before{content:"\e613"}.el-icon-edit:before{content:"\e614"}.el-icon-information:before{content:"\e615"}.el-icon-loading:before{content:"\e616"}.el-icon-menu:before{content:"\e617"}.el-icon-message:before{content:"\e618"}.el-icon-minus:before{content:"\e619"}.el-icon-more:before{content:"\e61a"}.el-icon-picture:before{content:"\e61b"}.el-icon-plus:before{content:"\e61c"}.el-icon-search:before{content:"\e61d"}.el-icon-setting:before{content:"\e61e"}.el-icon-share:before{content:"\e61f"}.el-icon-star-off:before{content:"\e620"}.el-icon-star-on:before{content:"\e621"}.el-icon-time:before{content:"\e622"}.el-icon-warning:before{content:"\e623"}.el-icon-delete2:before{content:"\e624"}.el-icon-upload2:before{content:"\e627"}.el-icon-view:before{content:"\e626"}.el-icon-loading{animation:rotating 1s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/loading.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-loading-mask{position:absolute;z-index:10000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{width:50px;height:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#1d8ce0;margin:3px 0;font-size:14px}.el-loading-spinner .circular{width:42px;height:42px;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1d8ce0;stroke-linecap:round}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@keyframes loading-rotate{100%{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/menu-item-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/menu-item-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/menu-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/menu-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/menu.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-menu,.el-menu li{list-style:none}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:rgb(72, 87, 106);padding:0 20px;cursor:pointer;position:relative;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-menu{border-radius:2px;position:relative;margin:0;padding-left:0;background-color:rgb(238, 241, 246)}.el-menu--dark{background-color:rgb(50, 65, 87)}.el-menu--dark .el-menu-item,.el-menu--dark .el-submenu__title{color:rgb(191, 203, 217)}.el-menu--dark .el-menu-item:hover,.el-menu--dark .el-submenu__title:hover{background-color:rgb(72, 87, 106)}.el-menu--dark .el-submenu .el-menu{background-color:rgb(31, 45, 61)}.el-menu--dark .el-submenu .el-menu .el-menu-item:hover{background-color:rgb(72, 87, 106)}.el-menu--horizontal .el-menu-item{float:left;height:60px;line-height:60px;margin:0;cursor:pointer;position:relative;box-sizing:border-box;border-bottom:5px solid transparent}.el-menu--horizontal .el-menu-item a,.el-menu--horizontal .el-menu-item a:hover{color:inherit}.el-menu--horizontal .el-submenu{float:left;position:relative}.el-menu--horizontal .el-submenu>.el-menu{position:absolute;top:65px;left:0;border:1px solid rgb(209, 219, 229);padding:5px 0;background-color:#fff;z-index:100;min-width:100%;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-menu--horizontal .el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:5px solid transparent}.el-menu--horizontal .el-submenu .el-menu-item{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px}.el-menu--horizontal .el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:5px;color:rgb(151, 168, 190);margin-top:-3px}.el-menu--horizontal .el-menu-item:hover,.el-menu--horizontal .el-submenu__title:hover{background-color:rgb(238, 241, 246)}.el-menu--horizontal>.el-menu-item:hover,.el-menu--horizontal>.el-submenu.is-active .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{border-bottom:5px solid #1d8ce0}.el-menu--horizontal.el-menu--dark .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu__title:hover{background-color:rgb(50, 65, 87)}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title:hover,.el-menu-item:hover{background-color:rgb(209, 219, 229)}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title{color:rgb(72, 87, 106)}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item.is-active,.el-menu-item.is-active{color:#1d8ce0}.el-menu-item [class^=el-icon-]{vertical-align:baseline;margin-right:10px}.el-menu-item:first-child{margin-left:0}.el-menu-item:last-child{margin-right:0}.el-submenu [class^=el-icon-]{vertical-align:baseline;margin-right:10px}.el-submenu .el-menu{background-color:rgb(228, 232, 241)}.el-submenu .el-menu-item:hover,.el-submenu__title:hover{background-color:rgb(209, 219, 229)}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-ms-transform:rotate(180deg);transform:rotateZ(180deg)}.el-submenu.is-active .el-submenu__title{border-bottom-color:#1d8ce0}.el-submenu__title{position:relative}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding-top:15px;line-height:normal;font-size:14px;padding-left:20px;color:rgb(151, 168, 190)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/message.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-message{box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);min-width:300px;padding:10px 12px;box-sizing:border-box;border-radius:2px;position:fixed;left:50%;top:20px;-ms-transform:translateX(-50%);transform:translateX(-50%);background-color:#fff;transition:opacity .3s,transform .4s;overflow:hidden}.el-message .el-icon-circle-check{color:#13ce66}.el-message .el-icon-circle-cross{color:#ff4949}.el-message .el-icon-information{color:#50bfff}.el-message .el-icon-warning{color:#f7ba2a}.el-message__group{margin-left:38px;position:relative;height:20px;line-height:20px}.el-message__group p{font-size:14px;margin:0 34px 0 0;white-space:nowrap;color:rgb(131, 145, 165);text-align:justify}.el-message__group.is-with-icon{margin-left:0}.el-message__img{width:40px;height:40px;position:absolute;left:0;top:0}.el-message__icon{vertical-align:middle;margin-right:8px}.el-message__closeBtn{top:3px;right:0;position:absolute;cursor:pointer;color:rgb(191, 203, 217);font-size:14px}.el-message__closeBtn:hover{color:rgb(151, 168, 190)}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-ms-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/notification.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-notification{width:330px;padding:20px;box-sizing:border-box;border-radius:2px;position:fixed;right:16px;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);transition:opacity .3s,transform .3s,right .3s,top .4s;overflow:hidden}.el-notification .el-icon-circle-check{color:#13ce66}.el-notification .el-icon-circle-cross{color:#ff4949}.el-notification .el-icon-information{color:#50bfff}.el-notification .el-icon-warning{color:#f7ba2a}.el-notification__group{margin-left:0}.el-notification__group.is-with-icon{margin-left:55px}.el-notification__title{font-weight:400;font-size:16px;color:rgb(31, 45, 61);margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:10px 0 0;color:rgb(131, 145, 165);text-align:justify}.el-notification__icon{width:40px;height:40px;font-size:40px;float:left;position:relative;top:3px}.el-notification__closeBtn{top:20px;right:20px;position:absolute;cursor:pointer;color:rgb(191, 203, 217);font-size:14px}.el-notification__closeBtn:hover{color:rgb(151, 168, 190)}.el-notification-fade-enter{-ms-transform:translateX(100%);transform:translateX(100%);right:0}.el-notification-fade-leave-active{opacity:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/option-group.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-select-group{margin:0;padding:0}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-group__wrap{list-style:none;margin:0;padding:0}.el-select-group__title{padding-left:10px;font-size:12px;color:#999;height:30px;line-height:30px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/option.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-select-dropdown__item{font-size:14px;padding:8px 10px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgb(72, 87, 106);height:36px;line-height:1.5;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.hover{background-color:rgb(228, 232, 241)}.el-select-dropdown__item.selected{color:#fff;background-color:#1d8ce0}.el-select-dropdown__item.selected.hover{background-color:rgb(26, 123, 197)}.el-select-dropdown__item span{line-height:1.5!important}.el-select-dropdown__item.is-disabled{color:rgb(191, 203, 217);cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/popover.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:2px;border:1px solid rgb(209, 219, 229);padding:10px;z-index:2000;font-size:12px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-popover .popper__arrow,.el-popover .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popover .popper__arrow{border-width:6px}.el-popover .popper__arrow::after{content:" ";border-width:6px}.el-popover[x-placement^=top]{margin-bottom:12px}.el-popover[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:rgb(209, 219, 229);border-bottom-width:0}.el-popover[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popover[x-placement^=bottom]{margin-top:12px}.el-popover[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:rgb(209, 219, 229)}.el-popover[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popover[x-placement^=right]{margin-left:12px}.el-popover[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:rgb(209, 219, 229);border-left-width:0}.el-popover[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popover[x-placement^=left]{margin-right:12px}.el-popover[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:rgb(209, 219, 229)}.el-popover[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-popover__title{color:rgb(31, 45, 61);font-size:13px;line-height:1;margin-bottom:9px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/progress.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress{position:relative;line-height:1}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff4949}.el-progress.is-exception .el-progress__text{color:#ff4949}.el-progress.is-success .el-progress-bar__inner{background-color:#13ce66}.el-progress.is-success .el-progress__text{color:#13ce66}.el-progress__text{font-size:14px;color:rgb(72, 87, 106);display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-ms-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:rgb(228, 232, 241);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#1d8ce0;text-align:right;border-radius:100px;line-height:1}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/radio-button.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/radio-button.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/radio-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/radio-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/radio.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-radio-button__inner,.el-radio__input{line-height:1;vertical-align:middle;outline:0}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-radio,.el-radio-button__inner{white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio{color:rgb(31, 45, 61);cursor:pointer}.el-radio+.el-radio{margin-left:15px}.el-radio__input{white-space:nowrap;cursor:pointer}.el-radio__input.is-focus .el-radio__inner{border-color:#1d8ce0}.el-radio__input.is-checked .el-radio__inner{border-color:#1d8ce0;background:#1d8ce0}.el-radio__input.is-checked .el-radio__inner::after{-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-disabled .el-radio__inner{background-color:rgb(238, 241, 246);border-color:rgb(209, 219, 229);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:rgb(238, 241, 246)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:rgb(209, 219, 229);border-color:rgb(209, 219, 229)}.el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#fff}.el-radio__input.is-disabled+.el-radio__label{color:#bbb;cursor:not-allowed}.el-radio__inner{border:1px solid rgb(191, 203, 217);width:18px;height:18px;border-radius:50%;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#1d8ce0}.el-radio__inner::after{width:6px;height:6px;border-radius:50%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-ms-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);transition:transform .15s cubic-bezier(.71,-.46,.88,.6)}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative}.el-radio__label{font-size:14px;padding-left:5px}.el-radio-group{display:inline-block;font-size:0;line-height:1}.el-radio-group .el-radio{font-size:14px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid rgb(191, 203, 217);border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button__inner{background:#fff;border:1px solid rgb(191, 203, 217);border-left:0;color:rgb(31, 45, 61);-webkit-appearance:none;text-align:center;box-sizing:border-box;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:10px 15px;font-size:14px;border-radius:0}.el-radio-button__inner:hover{color:#1d8ce0}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1;left:-999px}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#1d8ce0;border-color:#1d8ce0;box-shadow:-1px 0 0 0 #1d8ce0}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:rgb(191, 203, 217);cursor:not-allowed;background-image:none;background-color:rgb(238, 241, 246);border-color:rgb(209, 219, 229)}.el-radio-button--large .el-radio-button__inner{padding:11px 19px;font-size:16px;border-radius:0}.el-radio-button--small .el-radio-button__inner{padding:7px 9px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner{padding:4px;font-size:12px;border-radius:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/rate.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:rgb(191, 203, 217);transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-ms-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/reset.css:
--------------------------------------------------------------------------------
1 | progress,sub,sup{vertical-align:baseline}button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects;color:#1d8ce0;text-decoration:none}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;vertical-align:middle}optgroup{font-weight:700}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto;resize:none;vertical-align:top}input,select,textarea{outline:0}[disabled]{cursor:default}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}input::-moz-placeholder,textarea::-moz-placeholder{color:inherit;opacity:.54}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:inherit;opacity:.54}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:inherit;opacity:.54}input::-ms-clear,input::-ms-reveal{display:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}blockquote,figure,form,h1,h2,h3,h4,h5,h6,p{margin:0}dd,dl,li,ol,ul{margin:0;padding:0}ol,ul{list-style:none}body{margin:0;font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-weight:400;font-size:14px;color:rgb(31, 45, 61)}a:focus,a:hover{color:rgb(74, 163, 230)}a:active{color:rgb(26, 126, 202)}h1,h2,h3,h4,h5,h6{color:rgb(31, 45, 61);font-weight:inherit}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child,p:last-child{margin-bottom:0}h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}h4,h5,h6,p{font-size:inherit}p{line-height:1.8}sub,sup{font-size:13px}small{font-size:12px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/row.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row{position:relative;box-sizing:border-box}.el-row--flex{display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/scrollbar.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active .el-scrollbar__bar,.el-scrollbar:focus .el-scrollbar__bar,.el-scrollbar:hover .el-scrollbar__bar{opacity:1;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(151,168,190,.3);transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(151,168,190,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/select-dropdown.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-select-dropdown{position:absolute;z-index:1001;border:1px solid rgb(209, 219, 229);border-radius:2px;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);box-sizing:border-box;margin:5px 0}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#1d8ce0;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:rgb(228, 232, 241)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:10px;font-family:element-icons;content:"\E608";font-size:11px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/spinner.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/step.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-step.is-horizontal,.el-step.is-vertical .el-step__head,.el-step.is-vertical .el-step__main,.el-step__line{display:inline-block}.el-step{position:relative;vertical-align:top}.el-step.is-vertical .el-step__main{padding-left:10px}.el-step__line{position:absolute;border-color:inherit;background-color:rgb(191, 203, 217)}.el-step__line.is-vertical{width:2px;box-sizing:border-box;top:32px;bottom:0;left:15px}.el-step__line.is-horizontal{top:15px;height:2px;left:32px;right:0}.el-step__line.is-icon.is-horizontal{right:4px}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:all 150ms;width:0;height:0}.el-step__icon{display:block;line-height:28px}.el-step__icon>*{line-height:inherit;vertical-align:middle}.el-step__head{width:28px;height:28px;border-radius:50%;background-color:transparent;text-align:center;line-height:28px;font-size:28px;vertical-align:top;transition:all 150ms}.el-step__head.is-finish{color:#1d8ce0;border-color:#1d8ce0}.el-step__head.is-error{color:#ff4949;border-color:#ff4949}.el-step__head.is-success{color:#13ce66;border-color:#13ce66}.el-step__head.is-process,.el-step__head.is-wait{color:rgb(191, 203, 217);border-color:rgb(191, 203, 217)}.el-step__head.is-text{font-size:14px;border-width:2px;border-style:solid}.el-step__head.is-text.is-finish{color:#fff;background-color:#1d8ce0;border-color:#1d8ce0}.el-step__head.is-text.is-error{color:#fff;background-color:#ff4949;border-color:#ff4949}.el-step__head.is-text.is-success{color:#fff;background-color:#13ce66;border-color:#13ce66}.el-step__head.is-text.is-wait{color:rgb(191, 203, 217);background-color:#fff;border-color:rgb(191, 203, 217)}.el-step__head.is-text.is-process{color:#fff;background-color:rgb(191, 203, 217);border-color:rgb(191, 203, 217)}.el-step__main{white-space:normal;padding-right:10px;text-align:left}.el-step__title{font-size:14px;line-height:32px;display:inline-block}.el-step__title.is-finish{font-weight:700;color:#1d8ce0}.el-step__title.is-error{font-weight:700;color:#ff4949}.el-step__title.is-success{font-weight:700;color:#13ce66}.el-step__title.is-wait{font-weight:400;color:rgb(151, 168, 190)}.el-step__title.is-process{font-weight:700;color:rgb(72, 87, 106)}.el-step__description{font-size:12px;font-weight:400;line-height:14px}.el-step__description.is-finish{color:#1d8ce0}.el-step__description.is-error{color:#ff4949}.el-step__description.is-success{color:#13ce66}.el-step__description.is-wait{color:rgb(191, 203, 217)}.el-step__description.is-process{color:rgb(131, 145, 165)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/steps.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-steps{font-size:0}.el-steps>:last-child .el-step__line{display:none}.el-steps.is-horizontal{white-space:nowrap}.el-steps.is-horizontal.is-center{text-align:center}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/submenu.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/submenu.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/switch.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-switch{display:inline-block;position:relative;font-size:14px;line-height:22px;height:22px;vertical-align:middle}.el-switch__label,.el-switch__label *{position:absolute;font-size:14px;display:inline-block}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-switch.is-disabled .el-switch__core{border-color:rgb(228, 232, 241)!important;background:rgb(228, 232, 241)!important}.el-switch.is-disabled .el-switch__core span{background-color:rgb(250, 253, 254)!important}.el-switch.is-disabled .el-switch__core~.el-switch__label *{color:rgb(250, 253, 254)!important}.el-switch.is-disabled .el-switch__input:checked+.el-switch__core{border-color:rgb(228, 232, 241);background-color:rgb(228, 232, 241)}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__core,.el-switch__label{width:46px;height:22px;cursor:pointer}.el-switch__label{transition:.2s;z-index:10;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-switch__label *{line-height:1;top:4px;color:#fff}.el-switch__label--left i{left:6px}.el-switch__label--right i{right:6px}.el-switch__input{display:none}.el-switch__input:checked+.el-switch__core{border-color:#1d8ce0;background-color:#1d8ce0}.el-switch__core{margin:0;display:inline-block;position:relative;border:1px solid rgb(191, 203, 217);outline:0;border-radius:12px;box-sizing:border-box;background:rgb(191, 203, 217);transition:border-color .3s,background-color .3s}.el-switch__core .el-switch__button{top:0;left:0;position:absolute;border-radius:100%;transition:transform .3s;width:16px;height:16px;z-index:20;background-color:#fff}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/tab-pane.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-darkblue/tab-pane.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/tabs.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tabs__header{border-bottom:1px solid rgb(209, 219, 229);padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:3px;background-color:#1d8ce0;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-ms-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#1d8ce0}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap.is-scrollable{padding:0 15px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:rgb(131, 145, 165)}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left}.el-tabs__item{padding:0 16px;height:42px;box-sizing:border-box;line-height:42px;display:inline-block;list-style:none;font-size:14px;color:rgb(131, 145, 165);position:relative}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-ms-transform:scale(.7,.7);transform:scale(.7,.7);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:rgb(151, 168, 190);color:#fff}.el-tabs__item:hover{color:rgb(31, 45, 61);cursor:pointer}.el-tabs__item.is-disabled{color:#bbb;cursor:default}.el-tabs__item.is-active{color:#1d8ce0}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-ms-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border:1px solid transparent;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-right:9px;padding-left:9px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border:1px solid rgb(209, 219, 229);border-bottom-color:#fff;border-radius:4px 4px 0 0}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-right:16px;padding-left:16px}.el-tabs--border-card{background:#fff;border:1px solid rgb(209, 219, 229);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:rgb(238, 241, 246);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;border-top:0;margin-right:-1px;margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:#fff;border-right-color:rgb(209, 219, 229);border-left-color:rgb(209, 219, 229)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active:first-child{border-left-color:rgb(209, 219, 229)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active:last-child{border-right-color:rgb(209, 219, 229)}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave .3s}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave .3s}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/tag.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tag{background-color:rgb(131, 145, 165);display:inline-block;padding:0 5px;height:24px;line-height:22px;font-size:12px;color:#fff;border-radius:4px;box-sizing:border-box;border:1px solid transparent;white-space:nowrap}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;-ms-transform:scale(.75,.75);transform:scale(.75,.75);height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-2px}.el-tag .el-icon-close:hover{background-color:#fff;color:rgb(131, 145, 165)}.el-tag--gray{background-color:rgb(228, 232, 241);border-color:rgb(228, 232, 241);color:rgb(72, 87, 106)}.el-tag--gray .el-tag__close:hover{background-color:rgb(72, 87, 106);color:#fff}.el-tag--gray.is-hit{border-color:rgb(72, 87, 106)}.el-tag--primary{background-color:rgba(32,160,255,.1);border-color:rgba(32,160,255,.2);color:#1d8ce0}.el-tag--primary .el-tag__close:hover{background-color:#1d8ce0;color:#fff}.el-tag--primary.is-hit{border-color:#1d8ce0}.el-tag--success{background-color:rgba(18,206,102,.1);border-color:rgba(18,206,102,.2);color:#13ce66}.el-tag--success .el-tag__close:hover{background-color:#13ce66;color:#fff}.el-tag--success.is-hit{border-color:#13ce66}.el-tag--warning{background-color:rgba(247,186,41,.1);border-color:rgba(247,186,41,.2);color:#f7ba2a}.el-tag--warning .el-tag__close:hover{background-color:#f7ba2a;color:#fff}.el-tag--warning.is-hit{border-color:#f7ba2a}.el-tag--danger{background-color:rgba(255,73,73,.1);border-color:rgba(255,73,73,.2);color:#ff4949}.el-tag--danger .el-tag__close:hover{background-color:#ff4949;color:#fff}.el-tag--danger.is-hit{border-color:#ff4949}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/tooltip.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:rgb(31, 45, 61);border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:rgb(31, 45, 61);border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:rgb(31, 45, 61)}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:rgb(31, 45, 61)}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:rgb(31, 45, 61);border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:rgb(31, 45, 61);border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:rgb(31, 45, 61)}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:rgb(31, 45, 61)}.el-tooltip__popper.is-light{background:#fff;border:1px solid rgb(31, 45, 61)}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:rgb(31, 45, 61)}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:rgb(31, 45, 61)}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:rgb(31, 45, 61)}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:rgb(31, 45, 61)}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#fff}.el-tooltip__popper.is-dark{background:rgb(31, 45, 61);color:#fff}
--------------------------------------------------------------------------------
/src/assets/theme/theme-darkblue/tree.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tree{cursor:default;background:#fff;border:1px solid rgb(209, 219, 229)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#5e7382}.el-tree-node{white-space:nowrap}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree-node__expand-icon,.el-tree-node__label,.el-tree-node__loading-icon{display:inline-block;vertical-align:middle}.el-tree-node__content{line-height:36px;height:36px;cursor:pointer}.el-tree-node__content>.el-checkbox,.el-tree-node__content>.el-tree-node__expand-icon{margin-right:8px}.el-tree-node__content>.el-checkbox{vertical-align:middle}.el-tree-node__content:hover{background:rgb(228, 232, 241)}.el-tree-node__expand-icon{cursor:pointer;width:0;height:0;margin-left:10px;border:6px solid transparent;border-right-width:0;border-left-color:rgb(151, 168, 190);border-left-width:7px;-ms-transform:rotate(0);transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon:hover{border-left-color:#999}.el-tree-node__expand-icon.expanded{-ms-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{border-color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:4px;font-size:14px;color:rgb(151, 168, 190)}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:rgb(237, 246, 253)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/alert.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;color:#fff;opacity:1;display:table;transition:opacity .2s}.el-alert .el-alert__description{color:#fff;font-size:12px;margin:5px 0 0}.el-alert--success{background-color:#13ce66}.el-alert--info{background-color:#50bfff}.el-alert--warning{background-color:#f7ba2a}.el-alert--error{background-color:#ff4949}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px;display:table-cell;color:#fff;vertical-align:middle}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert__closebtn{font-size:12px;color:#fff;opacity:1;top:12px;right:15px;position:absolute;cursor:pointer}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/badge.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#ff4949;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-dot{width:8px;height:8px;padding:0;right:0;border-radius:50%}.el-badge__content.is-fixed{top:0;right:10px;position:absolute;-ms-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/base.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-fade-in-enter,.el-fade-in-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-ms-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-ms-transform:scaleY(1);transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;-ms-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-ms-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-ms-transform:scaleY(1);transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;-ms-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-ms-transform:scaleY(0);transform:scaleY(0)}.collapse-transition{transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.list-enter-active,.list-leave-active{transition:all 1s}.list-enter,.list-leave-active{opacity:0;-ms-transform:translateY(-30px);transform:translateY(-30px)}@font-face{font-family:element-icons;src:url(fonts/element-icons.woff?t=1472440741) format('woff'),url(fonts/element-icons.ttf?t=1472440741) format('truetype');font-weight:400;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-arrow-down:before{content:"\e600"}.el-icon-arrow-left:before{content:"\e601"}.el-icon-arrow-right:before{content:"\e602"}.el-icon-arrow-up:before{content:"\e603"}.el-icon-caret-bottom:before{content:"\e604"}.el-icon-caret-left:before{content:"\e605"}.el-icon-caret-right:before{content:"\e606"}.el-icon-caret-top:before{content:"\e607"}.el-icon-check:before{content:"\e608"}.el-icon-circle-check:before{content:"\e609"}.el-icon-circle-close:before{content:"\e60a"}.el-icon-circle-cross:before{content:"\e60b"}.el-icon-close:before{content:"\e60c"}.el-icon-upload:before{content:"\e60d"}.el-icon-d-arrow-left:before{content:"\e60e"}.el-icon-d-arrow-right:before{content:"\e60f"}.el-icon-d-caret:before{content:"\e610"}.el-icon-date:before{content:"\e611"}.el-icon-delete:before{content:"\e612"}.el-icon-document:before{content:"\e613"}.el-icon-edit:before{content:"\e614"}.el-icon-information:before{content:"\e615"}.el-icon-loading:before{content:"\e616"}.el-icon-menu:before{content:"\e617"}.el-icon-message:before{content:"\e618"}.el-icon-minus:before{content:"\e619"}.el-icon-more:before{content:"\e61a"}.el-icon-picture:before{content:"\e61b"}.el-icon-plus:before{content:"\e61c"}.el-icon-search:before{content:"\e61d"}.el-icon-setting:before{content:"\e61e"}.el-icon-share:before{content:"\e61f"}.el-icon-star-off:before{content:"\e620"}.el-icon-star-on:before{content:"\e621"}.el-icon-time:before{content:"\e622"}.el-icon-warning:before{content:"\e623"}.el-icon-delete2:before{content:"\e624"}.el-icon-upload2:before{content:"\e627"}.el-icon-view:before{content:"\e626"}.el-icon-loading{animation:rotating 1s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/breadcrumb-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/breadcrumb-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/breadcrumb.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-breadcrumb{font-size:13px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 8px;color:rgb(191, 217, 214)}.el-breadcrumb__item{float:left}.el-breadcrumb__item:last-child .el-breadcrumb__item__inner,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner:hover{color:rgb(151, 190, 187);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-breadcrumb__item__inner,.el-breadcrumb__item__inner a{transition:color .15s linear;color:rgb(72, 106, 103)}.el-breadcrumb__item__inner a:hover,.el-breadcrumb__item__inner:hover{color:#18c79c;cursor:pointer}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/button-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/button-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/card.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-card{border:1px solid rgb(209, 229, 227);border-radius:4px;background-color:#fff;overflow:hidden;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-card__header{padding:18px 20px;border-bottom:1px solid rgb(209, 229, 227);box-sizing:border-box}.el-card__body{padding:20px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/carousel-item.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-carousel__item,.el-carousel__mask{position:absolute;height:100%;top:0;left:0}.el-carousel__item{width:100%;display:inline-block;transition:.4s ease-in-out;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;transition:.2s}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/carousel.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-carousel__arrow,.el-carousel__button{outline:0;margin:0;cursor:pointer;transition:.3s}.el-carousel{overflow-x:hidden;position:relative}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;padding:0;width:36px;height:36px;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-ms-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__indicators{position:absolute;list-style:none;bottom:0;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%);margin:0;padding:0;z-index:2}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-ms-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:rgb(131, 165, 162);opacity:.24}.el-carousel__indicator{display:inline-block;background-color:transparent;padding:12px 4px;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;padding:0}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-ms-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-ms-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/checkbox-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/checkbox-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/checkbox.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-checkbox,.el-checkbox__input{white-space:nowrap;cursor:pointer;display:inline-block;position:relative}.el-checkbox{color:rgb(31, 61, 57);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-checkbox+.el-checkbox{margin-left:15px}.el-checkbox__input{outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#18c79c;border-color:rgb(1, 203, 152)}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;border:1px solid #fff;margin-top:-1px;left:3px;right:3px;top:50%}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#18c79c}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#18c79c;border-color:rgb(1, 203, 152)}.el-checkbox__input.is-checked .el-checkbox__inner::after{-ms-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:rgb(238, 246, 246);border-color:rgb(209, 229, 227);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:rgb(238, 246, 246)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:rgb(209, 229, 227);border-color:rgb(209, 229, 227)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#fff}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:rgb(209, 229, 227);border-color:rgb(209, 229, 227)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{border-color:#fff}.el-checkbox__input.is-disabled+.el-checkbox__label{color:#bbb;cursor:not-allowed}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid rgb(191, 217, 214);border-radius:4px;box-sizing:border-box;width:18px;height:18px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#18c79c}.el-checkbox__inner::after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:5px;position:absolute;top:1px;-ms-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;-ms-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;left:-999px}.el-checkbox__label{font-size:14px;padding-left:5px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/collapse-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/collapse-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/collapse.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-collapse{border:1px solid rgb(223, 236, 234);border-radius:0}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse-item.is-active>.el-collapse-item__header .el-collapse-item__header__arrow{-ms-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header{height:43px;line-height:43px;padding-left:15px;background-color:#fff;color:rgb(72, 106, 103);cursor:pointer;border-bottom:1px solid rgb(223, 236, 234);font-size:13px}.el-collapse-item__header__arrow{margin-right:8px;transition:transform .3s}.el-collapse-item__wrap{will-change:height;background-color:rgb(250, 254, 253);overflow:hidden;box-sizing:border-box;border-bottom:1px solid rgb(223, 236, 234)}.el-collapse-item__content{padding:10px 15px;font-size:13px;color:rgb(31, 61, 57);line-height:1.769230769230769}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/color-picker.css:
--------------------------------------------------------------------------------
1 | .el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-ms-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:rgb(31, 61, 57)}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#18c79c;border-color:#18c79c}.el-color-dropdown__link-btn{cursor:pointer;color:#18c79c;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:rgb(70, 210, 176)}.el-color-picker{display:inline-block;position:relative}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:36px;padding:6px;border:1px solid rgb(191, 217, 214);border-radius:4px;font-size:0}.el-color-picker__color{position:relative;display:inline-block;box-sizing:border-box;vertical-align:middle;border:1px solid #666;width:22px;height:22px;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{font-size:12px;vertical-align:middle;margin-top:4px;color:#666}.el-color-picker__icon{display:inline-block;position:relative;vertical-align:middle;margin-left:8px;width:12px;color:#888;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;background-color:#fff;border:1px solid rgb(209, 229, 227);box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.12)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/dialog.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-dialog{position:absolute;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%);background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box}.el-dialog--tiny{width:30%}.el-dialog--small{width:50%}.el-dialog--large{width:90%}.el-dialog--full{width:100%;top:0;height:100%;overflow:auto}.el-dialog__wrapper{top:0;right:0;bottom:0;left:0;position:fixed;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 0}.el-dialog__close{cursor:pointer;color:rgb(191, 217, 214)}.el-dialog__close:hover{color:#18c79c}.el-dialog__title{line-height:1;font-size:16px;font-weight:700;color:rgb(31, 61, 57)}.el-dialog__body{padding:30px 20px;color:rgb(72, 106, 103);font-size:14px}.el-dialog__headerbtn{float:right}.el-dialog__footer{padding:10px 20px 15px;text-align:right;box-sizing:border-box}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/dropdown-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/dropdown-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/dropdown-menu.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/dropdown-menu.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/fonts/element-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/fonts/element-icons.ttf
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/fonts/element-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/fonts/element-icons.woff
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/form-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/form-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/form.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-form-item .el-form-item__content{margin-left:0!important}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner,.el-form-item.is-error .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-textarea__inner{border-color:#ff4949}.el-form-item.is-required .el-form-item__label:before{content:'*';color:#ff4949;margin-right:4px}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:rgb(72, 106, 103);line-height:1;padding:11px 12px 11px 0;box-sizing:border-box}.el-form-item__content{line-height:36px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__error{color:#ff4949;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/icon.css:
--------------------------------------------------------------------------------
1 | @font-face{font-family:element-icons;src:url(fonts/element-icons.woff?t=1472440741) format('woff'),url(fonts/element-icons.ttf?t=1472440741) format('truetype');font-weight:400;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-arrow-down:before{content:"\e600"}.el-icon-arrow-left:before{content:"\e601"}.el-icon-arrow-right:before{content:"\e602"}.el-icon-arrow-up:before{content:"\e603"}.el-icon-caret-bottom:before{content:"\e604"}.el-icon-caret-left:before{content:"\e605"}.el-icon-caret-right:before{content:"\e606"}.el-icon-caret-top:before{content:"\e607"}.el-icon-check:before{content:"\e608"}.el-icon-circle-check:before{content:"\e609"}.el-icon-circle-close:before{content:"\e60a"}.el-icon-circle-cross:before{content:"\e60b"}.el-icon-close:before{content:"\e60c"}.el-icon-upload:before{content:"\e60d"}.el-icon-d-arrow-left:before{content:"\e60e"}.el-icon-d-arrow-right:before{content:"\e60f"}.el-icon-d-caret:before{content:"\e610"}.el-icon-date:before{content:"\e611"}.el-icon-delete:before{content:"\e612"}.el-icon-document:before{content:"\e613"}.el-icon-edit:before{content:"\e614"}.el-icon-information:before{content:"\e615"}.el-icon-loading:before{content:"\e616"}.el-icon-menu:before{content:"\e617"}.el-icon-message:before{content:"\e618"}.el-icon-minus:before{content:"\e619"}.el-icon-more:before{content:"\e61a"}.el-icon-picture:before{content:"\e61b"}.el-icon-plus:before{content:"\e61c"}.el-icon-search:before{content:"\e61d"}.el-icon-setting:before{content:"\e61e"}.el-icon-share:before{content:"\e61f"}.el-icon-star-off:before{content:"\e620"}.el-icon-star-on:before{content:"\e621"}.el-icon-time:before{content:"\e622"}.el-icon-warning:before{content:"\e623"}.el-icon-delete2:before{content:"\e624"}.el-icon-upload2:before{content:"\e627"}.el-icon-view:before{content:"\e626"}.el-icon-loading{animation:rotating 1s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/input.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input.is-disabled .el-input__inner{background-color:rgb(238, 246, 246);border-color:rgb(209, 229, 227);color:#bbb;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:rgb(191, 217, 214)}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:rgb(191, 217, 214)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:rgb(191, 217, 214)}.el-input.is-disabled .el-input__inner::placeholder{color:rgb(191, 217, 214)}.el-input.is-active .el-input__inner{outline:0;border-color:#18c79c}.el-input__inner{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid rgb(191, 217, 214);box-sizing:border-box;color:rgb(31, 61, 57);display:block;font-size:inherit;height:36px;line-height:1;outline:0;padding:3px 10px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-webkit-input-placeholder{color:rgb(151, 190, 187)}.el-input__inner::-moz-placeholder{color:rgb(151, 190, 187)}.el-input__inner:-ms-input-placeholder{color:rgb(151, 190, 187)}.el-input__inner::placeholder{color:rgb(151, 190, 187)}.el-input__inner:hover{border-color:rgb(131, 165, 162)}.el-input__inner:focus{outline:0;border-color:#18c79c}.el-input__icon{position:absolute;width:35px;height:100%;right:0;top:0;text-align:center;color:rgb(191, 217, 214);transition:all .3s}.el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__icon+.el-input__inner{padding-right:35px}.el-input__icon.is-clickable:hover{cursor:pointer;color:rgb(131, 165, 162)}.el-input__icon.is-clickable:hover+.el-input__inner{border-color:rgb(131, 165, 162)}.el-input--large{font-size:16px}.el-input--large .el-input__inner{height:42px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:30px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:22px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:rgb(250, 254, 253);color:rgb(151, 190, 187);vertical-align:middle;display:table-cell;position:relative;border:1px solid rgb(191, 217, 214);border-radius:4px;padding:0 10px;width:1%;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:block;margin:-10px}.el-input-group__append .el-button,.el-input-group__append .el-select .el-input__inner,.el-input-group__append .el-select:hover .el-input__inner,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select .el-input__inner,.el-input-group__prepend .el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-textarea{display:inline-block;width:100%;vertical-align:bottom}.el-textarea.is-disabled .el-textarea__inner{background-color:rgb(238, 246, 246);border-color:rgb(209, 229, 227);color:#bbb;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:rgb(191, 217, 214)}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:rgb(191, 217, 214)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:rgb(191, 217, 214)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:rgb(191, 217, 214)}.el-textarea__inner{display:block;resize:vertical;padding:5px 7px;line-height:1.5;box-sizing:border-box;width:100%;font-size:14px;color:rgb(31, 61, 57);background-color:#fff;background-image:none;border:1px solid rgb(191, 217, 214);border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:rgb(151, 190, 187)}.el-textarea__inner::-moz-placeholder{color:rgb(151, 190, 187)}.el-textarea__inner:-ms-input-placeholder{color:rgb(151, 190, 187)}.el-textarea__inner::placeholder{color:rgb(151, 190, 187)}.el-textarea__inner:hover{border-color:rgb(131, 165, 162)}.el-textarea__inner:focus{outline:0;border-color:#18c79c}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/loading.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-loading-mask{position:absolute;z-index:10000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{width:50px;height:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#18c79c;margin:3px 0;font-size:14px}.el-loading-spinner .circular{width:42px;height:42px;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#18c79c;stroke-linecap:round}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@keyframes loading-rotate{100%{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/menu-item-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/menu-item-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/menu-item.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/menu-item.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/menu.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-menu,.el-menu li{list-style:none}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:rgb(72, 106, 103);padding:0 20px;cursor:pointer;position:relative;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-menu{border-radius:2px;position:relative;margin:0;padding-left:0;background-color:rgb(238, 246, 246)}.el-menu--dark{background-color:rgb(50, 87, 86)}.el-menu--dark .el-menu-item,.el-menu--dark .el-submenu__title{color:rgb(191, 217, 214)}.el-menu--dark .el-menu-item:hover,.el-menu--dark .el-submenu__title:hover{background-color:rgb(72, 106, 103)}.el-menu--dark .el-submenu .el-menu{background-color:rgb(31, 61, 57)}.el-menu--dark .el-submenu .el-menu .el-menu-item:hover{background-color:rgb(72, 106, 103)}.el-menu--horizontal .el-menu-item{float:left;height:60px;line-height:60px;margin:0;cursor:pointer;position:relative;box-sizing:border-box;border-bottom:5px solid transparent}.el-menu--horizontal .el-menu-item a,.el-menu--horizontal .el-menu-item a:hover{color:inherit}.el-menu--horizontal .el-submenu{float:left;position:relative}.el-menu--horizontal .el-submenu>.el-menu{position:absolute;top:65px;left:0;border:1px solid rgb(209, 229, 227);padding:5px 0;background-color:#fff;z-index:100;min-width:100%;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-menu--horizontal .el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:5px solid transparent}.el-menu--horizontal .el-submenu .el-menu-item{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px}.el-menu--horizontal .el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:5px;color:rgb(151, 190, 187);margin-top:-3px}.el-menu--horizontal .el-menu-item:hover,.el-menu--horizontal .el-submenu__title:hover{background-color:rgb(238, 246, 246)}.el-menu--horizontal>.el-menu-item:hover,.el-menu--horizontal>.el-submenu.is-active .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{border-bottom:5px solid #18c79c}.el-menu--horizontal.el-menu--dark .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu__title:hover{background-color:rgb(50, 87, 86)}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title:hover,.el-menu-item:hover{background-color:rgb(209, 229, 227)}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title{color:rgb(72, 106, 103)}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item.is-active,.el-menu-item.is-active{color:#18c79c}.el-menu-item [class^=el-icon-]{vertical-align:baseline;margin-right:10px}.el-menu-item:first-child{margin-left:0}.el-menu-item:last-child{margin-right:0}.el-submenu [class^=el-icon-]{vertical-align:baseline;margin-right:10px}.el-submenu .el-menu{background-color:rgb(228, 241, 241)}.el-submenu .el-menu-item:hover,.el-submenu__title:hover{background-color:rgb(209, 229, 227)}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-ms-transform:rotate(180deg);transform:rotateZ(180deg)}.el-submenu.is-active .el-submenu__title{border-bottom-color:#18c79c}.el-submenu__title{position:relative}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding-top:15px;line-height:normal;font-size:14px;padding-left:20px;color:rgb(151, 190, 187)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/message.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-message{box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);min-width:300px;padding:10px 12px;box-sizing:border-box;border-radius:2px;position:fixed;left:50%;top:20px;-ms-transform:translateX(-50%);transform:translateX(-50%);background-color:#fff;transition:opacity .3s,transform .4s;overflow:hidden}.el-message .el-icon-circle-check{color:#13ce66}.el-message .el-icon-circle-cross{color:#ff4949}.el-message .el-icon-information{color:#50bfff}.el-message .el-icon-warning{color:#f7ba2a}.el-message__group{margin-left:38px;position:relative;height:20px;line-height:20px}.el-message__group p{font-size:14px;margin:0 34px 0 0;white-space:nowrap;color:rgb(131, 165, 162);text-align:justify}.el-message__group.is-with-icon{margin-left:0}.el-message__img{width:40px;height:40px;position:absolute;left:0;top:0}.el-message__icon{vertical-align:middle;margin-right:8px}.el-message__closeBtn{top:3px;right:0;position:absolute;cursor:pointer;color:rgb(191, 217, 214);font-size:14px}.el-message__closeBtn:hover{color:rgb(151, 190, 187)}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-ms-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/notification.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-notification{width:330px;padding:20px;box-sizing:border-box;border-radius:2px;position:fixed;right:16px;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);transition:opacity .3s,transform .3s,right .3s,top .4s;overflow:hidden}.el-notification .el-icon-circle-check{color:#13ce66}.el-notification .el-icon-circle-cross{color:#ff4949}.el-notification .el-icon-information{color:#50bfff}.el-notification .el-icon-warning{color:#f7ba2a}.el-notification__group{margin-left:0}.el-notification__group.is-with-icon{margin-left:55px}.el-notification__title{font-weight:400;font-size:16px;color:rgb(31, 61, 57);margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:10px 0 0;color:rgb(131, 165, 162);text-align:justify}.el-notification__icon{width:40px;height:40px;font-size:40px;float:left;position:relative;top:3px}.el-notification__closeBtn{top:20px;right:20px;position:absolute;cursor:pointer;color:rgb(191, 217, 214);font-size:14px}.el-notification__closeBtn:hover{color:rgb(151, 190, 187)}.el-notification-fade-enter{-ms-transform:translateX(100%);transform:translateX(100%);right:0}.el-notification-fade-leave-active{opacity:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/option-group.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-select-group{margin:0;padding:0}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-group__wrap{list-style:none;margin:0;padding:0}.el-select-group__title{padding-left:10px;font-size:12px;color:#999;height:30px;line-height:30px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/option.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-select-dropdown__item{font-size:14px;padding:8px 10px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgb(72, 106, 103);height:36px;line-height:1.5;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.hover{background-color:rgb(228, 241, 241)}.el-select-dropdown__item.selected{color:#fff;background-color:#18c79c}.el-select-dropdown__item.selected.hover{background-color:rgb(21, 175, 137)}.el-select-dropdown__item span{line-height:1.5!important}.el-select-dropdown__item.is-disabled{color:rgb(191, 217, 214);cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/popover.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:2px;border:1px solid rgb(209, 229, 227);padding:10px;z-index:2000;font-size:12px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-popover .popper__arrow,.el-popover .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popover .popper__arrow{border-width:6px}.el-popover .popper__arrow::after{content:" ";border-width:6px}.el-popover[x-placement^=top]{margin-bottom:12px}.el-popover[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:rgb(209, 229, 227);border-bottom-width:0}.el-popover[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popover[x-placement^=bottom]{margin-top:12px}.el-popover[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:rgb(209, 229, 227)}.el-popover[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popover[x-placement^=right]{margin-left:12px}.el-popover[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:rgb(209, 229, 227);border-left-width:0}.el-popover[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popover[x-placement^=left]{margin-right:12px}.el-popover[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:rgb(209, 229, 227)}.el-popover[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-popover__title{color:rgb(31, 61, 57);font-size:13px;line-height:1;margin-bottom:9px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/progress.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress{position:relative;line-height:1}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff4949}.el-progress.is-exception .el-progress__text{color:#ff4949}.el-progress.is-success .el-progress-bar__inner{background-color:#13ce66}.el-progress.is-success .el-progress__text{color:#13ce66}.el-progress__text{font-size:14px;color:rgb(72, 106, 103);display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-ms-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:rgb(228, 241, 241);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#18c79c;text-align:right;border-radius:100px;line-height:1}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/radio-button.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/radio-button.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/radio-group.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/radio-group.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/radio.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-radio-button__inner,.el-radio__input{line-height:1;vertical-align:middle;outline:0}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-radio,.el-radio-button__inner{white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio{color:rgb(31, 61, 57);cursor:pointer}.el-radio+.el-radio{margin-left:15px}.el-radio__input{white-space:nowrap;cursor:pointer}.el-radio__input.is-focus .el-radio__inner{border-color:#18c79c}.el-radio__input.is-checked .el-radio__inner{border-color:#18c79c;background:#18c79c}.el-radio__input.is-checked .el-radio__inner::after{-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-disabled .el-radio__inner{background-color:rgb(238, 246, 246);border-color:rgb(209, 229, 227);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:rgb(238, 246, 246)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:rgb(209, 229, 227);border-color:rgb(209, 229, 227)}.el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#fff}.el-radio__input.is-disabled+.el-radio__label{color:#bbb;cursor:not-allowed}.el-radio__inner{border:1px solid rgb(191, 217, 214);width:18px;height:18px;border-radius:50%;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#18c79c}.el-radio__inner::after{width:6px;height:6px;border-radius:50%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-ms-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);transition:transform .15s cubic-bezier(.71,-.46,.88,.6)}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative}.el-radio__label{font-size:14px;padding-left:5px}.el-radio-group{display:inline-block;font-size:0;line-height:1}.el-radio-group .el-radio{font-size:14px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid rgb(191, 217, 214);border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button__inner{background:#fff;border:1px solid rgb(191, 217, 214);border-left:0;color:rgb(31, 61, 57);-webkit-appearance:none;text-align:center;box-sizing:border-box;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:10px 15px;font-size:14px;border-radius:0}.el-radio-button__inner:hover{color:#18c79c}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1;left:-999px}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#18c79c;border-color:#18c79c;box-shadow:-1px 0 0 0 #18c79c}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:rgb(191, 217, 214);cursor:not-allowed;background-image:none;background-color:rgb(238, 246, 246);border-color:rgb(209, 229, 227)}.el-radio-button--large .el-radio-button__inner{padding:11px 19px;font-size:16px;border-radius:0}.el-radio-button--small .el-radio-button__inner{padding:7px 9px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner{padding:4px;font-size:12px;border-radius:0}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/rate.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:rgb(191, 217, 214);transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-ms-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/reset.css:
--------------------------------------------------------------------------------
1 | progress,sub,sup{vertical-align:baseline}button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects;color:#18c79c;text-decoration:none}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;vertical-align:middle}optgroup{font-weight:700}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto;resize:none;vertical-align:top}input,select,textarea{outline:0}[disabled]{cursor:default}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}input::-moz-placeholder,textarea::-moz-placeholder{color:inherit;opacity:.54}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:inherit;opacity:.54}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:inherit;opacity:.54}input::-ms-clear,input::-ms-reveal{display:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}blockquote,figure,form,h1,h2,h3,h4,h5,h6,p{margin:0}dd,dl,li,ol,ul{margin:0;padding:0}ol,ul{list-style:none}body{margin:0;font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-weight:400;font-size:14px;color:rgb(31, 61, 57)}a:focus,a:hover{color:rgb(70, 210, 176)}a:active{color:rgb(22, 179, 140)}h1,h2,h3,h4,h5,h6{color:rgb(31, 61, 57);font-weight:inherit}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child,p:last-child{margin-bottom:0}h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}h4,h5,h6,p{font-size:inherit}p{line-height:1.8}sub,sup{font-size:13px}small{font-size:12px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/row.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row{position:relative;box-sizing:border-box}.el-row--flex{display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/scrollbar.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active .el-scrollbar__bar,.el-scrollbar:focus .el-scrollbar__bar,.el-scrollbar:hover .el-scrollbar__bar{opacity:1;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(151,168,190,.3);transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(151,168,190,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/select-dropdown.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-select-dropdown{position:absolute;z-index:1001;border:1px solid rgb(209, 229, 227);border-radius:2px;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);box-sizing:border-box;margin:5px 0}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#18c79c;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:rgb(228, 241, 241)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:10px;font-family:element-icons;content:"\E608";font-size:11px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/spinner.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/step.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-step.is-horizontal,.el-step.is-vertical .el-step__head,.el-step.is-vertical .el-step__main,.el-step__line{display:inline-block}.el-step{position:relative;vertical-align:top}.el-step.is-vertical .el-step__main{padding-left:10px}.el-step__line{position:absolute;border-color:inherit;background-color:rgb(191, 217, 214)}.el-step__line.is-vertical{width:2px;box-sizing:border-box;top:32px;bottom:0;left:15px}.el-step__line.is-horizontal{top:15px;height:2px;left:32px;right:0}.el-step__line.is-icon.is-horizontal{right:4px}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:all 150ms;width:0;height:0}.el-step__icon{display:block;line-height:28px}.el-step__icon>*{line-height:inherit;vertical-align:middle}.el-step__head{width:28px;height:28px;border-radius:50%;background-color:transparent;text-align:center;line-height:28px;font-size:28px;vertical-align:top;transition:all 150ms}.el-step__head.is-finish{color:#18c79c;border-color:#18c79c}.el-step__head.is-error{color:#ff4949;border-color:#ff4949}.el-step__head.is-success{color:#13ce66;border-color:#13ce66}.el-step__head.is-process,.el-step__head.is-wait{color:rgb(191, 217, 214);border-color:rgb(191, 217, 214)}.el-step__head.is-text{font-size:14px;border-width:2px;border-style:solid}.el-step__head.is-text.is-finish{color:#fff;background-color:#18c79c;border-color:#18c79c}.el-step__head.is-text.is-error{color:#fff;background-color:#ff4949;border-color:#ff4949}.el-step__head.is-text.is-success{color:#fff;background-color:#13ce66;border-color:#13ce66}.el-step__head.is-text.is-wait{color:rgb(191, 217, 214);background-color:#fff;border-color:rgb(191, 217, 214)}.el-step__head.is-text.is-process{color:#fff;background-color:rgb(191, 217, 214);border-color:rgb(191, 217, 214)}.el-step__main{white-space:normal;padding-right:10px;text-align:left}.el-step__title{font-size:14px;line-height:32px;display:inline-block}.el-step__title.is-finish{font-weight:700;color:#18c79c}.el-step__title.is-error{font-weight:700;color:#ff4949}.el-step__title.is-success{font-weight:700;color:#13ce66}.el-step__title.is-wait{font-weight:400;color:rgb(151, 190, 187)}.el-step__title.is-process{font-weight:700;color:rgb(72, 106, 103)}.el-step__description{font-size:12px;font-weight:400;line-height:14px}.el-step__description.is-finish{color:#18c79c}.el-step__description.is-error{color:#ff4949}.el-step__description.is-success{color:#13ce66}.el-step__description.is-wait{color:rgb(191, 217, 214)}.el-step__description.is-process{color:rgb(131, 165, 162)}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/steps.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-steps{font-size:0}.el-steps>:last-child .el-step__line{display:none}.el-steps.is-horizontal{white-space:nowrap}.el-steps.is-horizontal.is-center{text-align:center}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/submenu.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/submenu.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/switch.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-switch{display:inline-block;position:relative;font-size:14px;line-height:22px;height:22px;vertical-align:middle}.el-switch__label,.el-switch__label *{position:absolute;font-size:14px;display:inline-block}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-switch.is-disabled .el-switch__core{border-color:rgb(228, 241, 241)!important;background:rgb(228, 241, 241)!important}.el-switch.is-disabled .el-switch__core span{background-color:rgb(250, 254, 253)!important}.el-switch.is-disabled .el-switch__core~.el-switch__label *{color:rgb(250, 254, 253)!important}.el-switch.is-disabled .el-switch__input:checked+.el-switch__core{border-color:rgb(228, 241, 241);background-color:rgb(228, 241, 241)}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__core,.el-switch__label{width:46px;height:22px;cursor:pointer}.el-switch__label{transition:.2s;z-index:10;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-switch__label *{line-height:1;top:4px;color:#fff}.el-switch__label--left i{left:6px}.el-switch__label--right i{right:6px}.el-switch__input{display:none}.el-switch__input:checked+.el-switch__core{border-color:#18c79c;background-color:#18c79c}.el-switch__core{margin:0;display:inline-block;position:relative;border:1px solid rgb(191, 217, 214);outline:0;border-radius:12px;box-sizing:border-box;background:rgb(191, 217, 214);transition:border-color .3s,background-color .3s}.el-switch__core .el-switch__button{top:0;left:0;position:absolute;border-radius:100%;transition:transform .3s;width:16px;height:16px;z-index:20;background-color:#fff}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/tab-pane.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/theme/theme-green/tab-pane.css
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/tabs.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tabs__header{border-bottom:1px solid rgb(209, 229, 227);padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:3px;background-color:#18c79c;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-ms-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#18c79c}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap.is-scrollable{padding:0 15px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:rgb(131, 165, 162)}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left}.el-tabs__item{padding:0 16px;height:42px;box-sizing:border-box;line-height:42px;display:inline-block;list-style:none;font-size:14px;color:rgb(131, 165, 162);position:relative}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-ms-transform:scale(.7,.7);transform:scale(.7,.7);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:rgb(151, 190, 187);color:#fff}.el-tabs__item:hover{color:rgb(31, 61, 57);cursor:pointer}.el-tabs__item.is-disabled{color:#bbb;cursor:default}.el-tabs__item.is-active{color:#18c79c}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-ms-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border:1px solid transparent;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-right:9px;padding-left:9px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border:1px solid rgb(209, 229, 227);border-bottom-color:#fff;border-radius:4px 4px 0 0}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-right:16px;padding-left:16px}.el-tabs--border-card{background:#fff;border:1px solid rgb(209, 229, 227);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:rgb(238, 246, 246);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;border-top:0;margin-right:-1px;margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:#fff;border-right-color:rgb(209, 229, 227);border-left-color:rgb(209, 229, 227)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active:first-child{border-left-color:rgb(209, 229, 227)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active:last-child{border-right-color:rgb(209, 229, 227)}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave .3s}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave .3s}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/tag.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tag{background-color:rgb(131, 165, 162);display:inline-block;padding:0 5px;height:24px;line-height:22px;font-size:12px;color:#fff;border-radius:4px;box-sizing:border-box;border:1px solid transparent;white-space:nowrap}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;-ms-transform:scale(.75,.75);transform:scale(.75,.75);height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-2px}.el-tag .el-icon-close:hover{background-color:#fff;color:rgb(131, 165, 162)}.el-tag--gray{background-color:rgb(228, 241, 241);border-color:rgb(228, 241, 241);color:rgb(72, 106, 103)}.el-tag--gray .el-tag__close:hover{background-color:rgb(72, 106, 103);color:#fff}.el-tag--gray.is-hit{border-color:rgb(72, 106, 103)}.el-tag--primary{background-color:rgba(32,160,255,.1);border-color:rgba(32,160,255,.2);color:#18c79c}.el-tag--primary .el-tag__close:hover{background-color:#18c79c;color:#fff}.el-tag--primary.is-hit{border-color:#18c79c}.el-tag--success{background-color:rgba(18,206,102,.1);border-color:rgba(18,206,102,.2);color:#13ce66}.el-tag--success .el-tag__close:hover{background-color:#13ce66;color:#fff}.el-tag--success.is-hit{border-color:#13ce66}.el-tag--warning{background-color:rgba(247,186,41,.1);border-color:rgba(247,186,41,.2);color:#f7ba2a}.el-tag--warning .el-tag__close:hover{background-color:#f7ba2a;color:#fff}.el-tag--warning.is-hit{border-color:#f7ba2a}.el-tag--danger{background-color:rgba(255,73,73,.1);border-color:rgba(255,73,73,.2);color:#ff4949}.el-tag--danger .el-tag__close:hover{background-color:#ff4949;color:#fff}.el-tag--danger.is-hit{border-color:#ff4949}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/tooltip.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:rgb(31, 61, 57);border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:rgb(31, 61, 57);border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:rgb(31, 61, 57)}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:rgb(31, 61, 57)}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:rgb(31, 61, 57);border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:rgb(31, 61, 57);border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:rgb(31, 61, 57)}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:rgb(31, 61, 57)}.el-tooltip__popper.is-light{background:#fff;border:1px solid rgb(31, 61, 57)}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:rgb(31, 61, 57)}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:rgb(31, 61, 57)}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:rgb(31, 61, 57)}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:rgb(31, 61, 57)}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#fff}.el-tooltip__popper.is-dark{background:rgb(31, 61, 57);color:#fff}
--------------------------------------------------------------------------------
/src/assets/theme/theme-green/tree.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.el-tree{cursor:default;background:#fff;border:1px solid rgb(209, 229, 227)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#5e7382}.el-tree-node{white-space:nowrap}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree-node__expand-icon,.el-tree-node__label,.el-tree-node__loading-icon{display:inline-block;vertical-align:middle}.el-tree-node__content{line-height:36px;height:36px;cursor:pointer}.el-tree-node__content>.el-checkbox,.el-tree-node__content>.el-tree-node__expand-icon{margin-right:8px}.el-tree-node__content>.el-checkbox{vertical-align:middle}.el-tree-node__content:hover{background:rgb(228, 241, 241)}.el-tree-node__expand-icon{cursor:pointer;width:0;height:0;margin-left:10px;border:6px solid transparent;border-right-width:0;border-left-color:rgb(151, 190, 187);border-left-width:7px;-ms-transform:rotate(0);transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon:hover{border-left-color:#999}.el-tree-node__expand-icon.expanded{-ms-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{border-color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:4px;font-size:14px;color:rgb(151, 190, 187)}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:rgb(237, 251, 247)}
--------------------------------------------------------------------------------
/src/assets/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/src/assets/user.png
--------------------------------------------------------------------------------
/src/components/common/Icon-svg/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
23 |
--------------------------------------------------------------------------------
/src/components/common/ShowVideo.vue:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
104 |
105 |
--------------------------------------------------------------------------------
/src/components/common/error/401.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
返回
4 |
5 |
6 | Oops!
7 | gif来源airbnb 页面
8 | 你没有权限去该页面
9 | 如有不满请联系你领导
10 |
11 | - 或者你可以去:
12 | -
13 | 回首页
14 |
15 | - 随便看看
16 | - 点我看图
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
51 |
52 |
88 |
--------------------------------------------------------------------------------
/src/components/page/dashboard/HelloSys.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
![]()
8 |
9 |
10 |
11 |
12 |
25 |
26 |
42 |
--------------------------------------------------------------------------------
/src/components/page/dashboard/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
33 |
--------------------------------------------------------------------------------
/src/components/page/operation/AutoReplyCfg.vue:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 |
49 |
50 |
60 |
--------------------------------------------------------------------------------
/src/config/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/4/11 0011.
3 | */
4 | export default {
5 | serverURI: '',
6 | // serverURI: 'https://api-sit.com',
7 | // serverURI: 'https://api-prod.com',
8 |
9 | msgStatToUserId: 'msgStatToUserId',
10 |
11 | promoteMain: {
12 | main0: 'main0',
13 | main1: 'main1',
14 | main2: 'main2',
15 | }
16 | };
17 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // import babelpolyfill from 'babel-polyfill'
2 | import Vue from 'vue'
3 | import App from './App.vue'
4 | import ElementUI from 'element-ui'
5 | import 'element-ui/lib/theme-default/index.css'
6 | import NProgress from 'nprogress'; // Progress 进度条
7 | import 'nprogress/nprogress.css';// Progress 进度条 样式
8 | import './assets/iconfont/iconfont';
9 | import IconSvg from './components/common/Icon-svg';// svg 组件
10 | import store from './store'
11 | import router from './routes'
12 | import {sync} from 'vuex-router-sync'
13 | import VueVideoPlayer from 'vue-video-player'
14 | import * as filters from './filters'; // 全局vue filter
15 |
16 | // 开启Mock测试
17 | import Mock from './mock';
18 | Mock.bootstrap();
19 |
20 | Vue.component('icon-svg', IconSvg);
21 | Vue.use(ElementUI);
22 | Vue.use(VueVideoPlayer);
23 |
24 | // register global utility filters.
25 | Object.keys(filters).forEach(key => {
26 | Vue.filter(key, filters[key])
27 | });
28 |
29 | // permissiom judge
30 | function hasPermission(roles, permissionRoles) {
31 | if (roles.indexOf('admin') >= 0) return true; // admin权限 直接通过
32 | if (!permissionRoles) return true;
33 | return roles.some(role => permissionRoles.indexOf(role) >= 0)
34 | }
35 |
36 | // register global progress.
37 | const whiteList = ['/login'];// 不重定向白名单
38 | router.beforeEach((to, from, next) => {
39 | NProgress.start(); // 开启Progress
40 | if (localStorage.getItem("token")) { // 判断是否有token
41 | if (to.path === '/login') {
42 | localStorage.removeItem('account');
43 | localStorage.removeItem('token');
44 | localStorage.removeItem('expiration');
45 | localStorage.removeItem('nickname');
46 | next({path: '/'});
47 | } else {
48 | if (store.getters.roles.length === 0) { // 判断当前用户是否已拉取完user_info信息
49 | store.dispatch('GetUserInfo').then(() => { // 拉取user_info
50 | const roles = store.getters.roles;
51 | store.dispatch('GenerateRoutes', {roles}).then(() => { // 生成可访问的路由表
52 | router.addRoutes(store.getters.addRouters); // 动态添加可访问路由表
53 | next({...to}); // hack方法 确保addRoutes已完成
54 | })
55 | }).catch(() => {
56 | store.dispatch('LogOut').then(() => {
57 | next({path: '/login'});
58 | })
59 | })
60 | } else {
61 | // 没有动态改变权限的需求可直接next() 删除下方权限判断 ↓
62 | if (hasPermission(store.getters.roles, to.meta.role)) {
63 | next();//
64 | } else {
65 | next({path: '/401', query: {noGoBack: true}});
66 | }
67 | // 可删 ↑
68 | }
69 | }
70 | } else {
71 | if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入
72 | next()
73 | } else {
74 | next('/login'); // 否则全部重定向到登录页
75 | NProgress.done(); // 在hash模式下 改变手动改变hash 重定向回来 不会触发afterEach 暂时hack方案 ps:history模式下无问题,可删除该行!
76 | }
77 | }
78 | });
79 |
80 | router.afterEach(() => {
81 | NProgress.done(); // 结束Progress
82 | });
83 |
84 |
85 | sync(store, router);
86 |
87 | new Vue({
88 | router,
89 | store,
90 | render: h => h(App)
91 | }).$mount('#app');
92 |
93 |
--------------------------------------------------------------------------------
/src/mock/data/msgData.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/22 0022.
3 | */
4 | import Mock from 'mockjs';
5 |
6 | const MsgData = [];
7 |
8 | for (let i = 0; i < 82; i++) {
9 | MsgData.push(Mock.mock({
10 | _created: Mock.Random.datetime(),
11 | _updated: Mock.Random.datetime(),
12 | _id: Mock.Random.guid(),
13 | fromUserId: {
14 | "userId": Mock.Random.integer(10000000, 99999999),
15 | "nickname": Mock.Random.cname(),
16 | },
17 | 'objectName|1': ['app:image', 'app:video'],
18 | msgTimestamp: Mock.Random.datetime(),
19 | content: {
20 | 'path|1': ['https://ws1.sinaimg.cn/large/7108d6c2ly1fguwgogowkj20gt0gtduk.jpg', 'https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm'],
21 | "thumbnail": ''
22 | },
23 | }));
24 | }
25 |
26 | export {MsgData};
27 |
--------------------------------------------------------------------------------
/src/mock/data/ststoken.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/21 0021.
3 | */
4 |
5 | const StsToken = {
6 | "AccessKeySecret": "Dne12K9TUPjpsSWXSZ49h9C4NA1qm2KehwayxaJTBZbp",
7 | "SecurityToken": "asadfa3234123ASDFAEQERadsfae3asedfasdfasdf",
8 | "Expiration": "2017-07-21T05:12:05Z",
9 | "AccessKeyId": "STS.testabcdef123456"
10 | };
11 |
12 | export {StsToken};
13 |
--------------------------------------------------------------------------------
/src/mock/data/users.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/20 0020.
3 | */
4 | import Mock from 'mockjs';
5 |
6 | const Token = {
7 | "account": "56abcdef12345678",
8 | "expiration": "2018-09-18 09:24:33",
9 | "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
10 | };
11 |
12 | const LoginMap = {
13 | admin: {
14 | "_id": "56abcdef12345678",
15 | "nickname": "Sys管理员",
16 | "usertype": 9,
17 | "manage": {
18 | "remark": "admin",
19 | "agent": "admin"
20 | },
21 | },
22 | // intern
23 | intern: {
24 | "_id": "56abcdef12345678",
25 | "nickname": "见习领航员",
26 | "usertype": 9,
27 | "manage": {
28 | "remark": "intern",
29 | "agent": "水星~"
30 | },
31 | }
32 | };
33 |
34 | const Users = [];
35 |
36 | for (let i = 0; i < 99; i++) {
37 | Users.push(Mock.mock({
38 | _created: Mock.Random.datetime(),
39 | _updated: Mock.Random.datetime(),
40 | id: Mock.Random.guid(),
41 | nickname: Mock.Random.cname(),
42 | avatar: Mock.Random.dataImage('48x48', 'Avatar'),
43 | seqid: Mock.Random.integer(10000000, 99999999),
44 | userId: Mock.Random.first(),
45 | telphone: /^1[0-9]{10}$/,
46 | sex: Mock.Random.integer(0, 2),
47 | sexual: Mock.Random.integer(0, 3),
48 | constellation: Mock.Random.integer(0, 11),
49 | sign: Mock.Random.cparagraph(),
50 | birthday: Mock.Random.date(),
51 | jobs: {
52 | "province": Mock.Random.province(),
53 | "city": Mock.Random.city(),
54 | "c": Mock.Random.csentence(),
55 | "b": Mock.Random.csentence(),
56 | "a": Mock.Random.csentence()
57 | },
58 | address: {
59 | "item2": {
60 | "province": Mock.Random.province(),
61 | "city": Mock.Random.city(),
62 | "region": Mock.Random.county(),
63 | "detail": Mock.Random.ctitle()
64 | },
65 | "item0": {
66 | "province": Mock.Random.province(),
67 | "city": Mock.Random.city(),
68 | "region": Mock.Random.county(),
69 | "detail": Mock.Random.ctitle()
70 | },
71 | "item1": {
72 | "province": Mock.Random.province(),
73 | "city": Mock.Random.city(),
74 | "region": Mock.Random.county(),
75 | "detail": Mock.Random.ctitle()
76 | }
77 | },
78 | schools: {
79 | "item0": {
80 | "city": Mock.Random.city(),
81 | "school": Mock.Random.cparagraph(),
82 | "region": Mock.Random.county()
83 | },
84 | "item1": {
85 | "city": Mock.Random.city(),
86 | "school": Mock.Random.cparagraph(),
87 | "region": Mock.Random.county()
88 | }
89 | },
90 | firsNum: Mock.Random.integer(100, 10000),
91 | newActiveNum: Mock.Random.integer(200, 20000),
92 | sendNum: Mock.Random.integer(1000, 999999),
93 | receNum: Mock.Random.integer(1000, 999999),
94 | }));
95 | }
96 |
97 | export {Token, LoginMap, Users};
98 |
--------------------------------------------------------------------------------
/src/mock/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/20 0020.
3 | */
4 |
5 | import mock from './mock';
6 |
7 | export default mock;
8 |
--------------------------------------------------------------------------------
/src/store/actions.js:
--------------------------------------------------------------------------------
1 | export default {}
2 |
--------------------------------------------------------------------------------
/src/store/getters.js:
--------------------------------------------------------------------------------
1 | const getters = {
2 | token: state => state.user.token,
3 | roles: state => state.user.roles,
4 | avatar: state => state.user.avatar,
5 | nickname: state => state.user.nickname,
6 | uid: state => state.user.account,
7 | ossSts: state => state.user.ossSts,
8 | ossClient: state => state.user.ossClient,
9 | permission_routers: state => state.permission.routers,
10 | addRouters: state => state.permission.addRouters,
11 | };
12 | export default getters
13 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import state from './state'
4 | import actions from './actions'
5 | import mutations from './mutations'
6 | import user from './modules/user';
7 | import permission from './modules/permission';
8 | import getters from './getters'
9 |
10 | Vue.use(Vuex);
11 |
12 | const store = new Vuex.Store({
13 | modules: {
14 | user,
15 | permission
16 | },
17 | getters,
18 | state,
19 | actions,
20 | mutations
21 | });
22 |
23 | export default store
24 |
--------------------------------------------------------------------------------
/src/store/modules/permission.js:
--------------------------------------------------------------------------------
1 | import {asyncRouterMap, defaultRouterMap} from '../../routes';
2 | import {deepClone} from '../../utils';
3 |
4 | /**
5 | * 通过meta.role判断是否与当前用户权限匹配
6 | * @param roles
7 | * @param route
8 | */
9 | function hasPermission(roles, route) {
10 | if (route.meta && route.meta.role) {
11 | return roles.some(role => route.meta.role.indexOf(role) >= 0)
12 | } else {
13 | return true
14 | }
15 | }
16 |
17 | /**
18 | * 递归过滤异步路由表,返回符合用户角色权限的路由表
19 | * @param asyncRouterMap
20 | * @param roles
21 | */
22 | function filterAsyncRouter(asyncRouterMap, roles) {
23 | const accessedRouters = asyncRouterMap.filter(route => {
24 | if (hasPermission(roles, route)) {
25 | if (route.children && route.children.length) {
26 | route.children = filterAsyncRouter(route.children, roles)
27 | }
28 | return true
29 | }
30 | return false
31 | });
32 | return accessedRouters
33 | }
34 |
35 | const permission = {
36 | state: {
37 | routers: defaultRouterMap,
38 | addRouters: []
39 | },
40 | mutations: {
41 | SET_ROUTERS: (state, routers) => {
42 | state.addRouters = deepClone(routers);
43 | state.routers = deepClone(defaultRouterMap.concat(routers))
44 | }
45 | },
46 | actions: {
47 | GenerateRoutes({commit}, data) {
48 | return new Promise(resolve => {
49 | const {roles} = data;
50 | let accessedRouters;
51 | if (roles.indexOf('admin') >= 0) {
52 |
53 | accessedRouters = asyncRouterMap
54 | } else {
55 | accessedRouters = filterAsyncRouter(asyncRouterMap, roles)
56 | }
57 | commit('SET_ROUTERS', accessedRouters);
58 | resolve();
59 | })
60 | }
61 | }
62 | };
63 |
64 | export default permission;
65 |
--------------------------------------------------------------------------------
/src/store/mutations.js:
--------------------------------------------------------------------------------
1 | export default {
2 | TOGGLE_LOADING (state) {
3 | state.callingAPI = !state.callingAPI
4 | },
5 | TOGGLE_SEARCHING (state) {
6 | state.searching = (state.searching === '') ? 'loading' : ''
7 | },
8 | // SET_USER (state, user) {
9 | // state.user = user
10 | // },
11 | // SET_TOKEN (state, token) {
12 | // state.token = token
13 | // }
14 | }
15 |
--------------------------------------------------------------------------------
/src/store/state.js:
--------------------------------------------------------------------------------
1 | export default {
2 | callingAPI: false,
3 | searching: '',
4 | serverURI: 'https://api-prod.com',
5 | // user: null,
6 | // token: null,
7 | // userInfo: {
8 | // messages: [{1: 'test', 2: 'test'}],
9 | // notifications: [],
10 | // tasks: []
11 | // }
12 | }
13 |
--------------------------------------------------------------------------------
/src/styles/vars.scss:
--------------------------------------------------------------------------------
1 | $color-primary: #95afdf;//#20a0ff; #18c79c; #2E363F;
2 |
--------------------------------------------------------------------------------
/src/utils/fetch.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/6/15 0015.
3 | */
4 | import axios from 'axios';
5 | import {Message} from 'element-ui';
6 | import store from '../store';
7 | import router from '../routes';
8 |
9 | // 创建axios实例
10 | const service = axios.create({
11 | baseURL: process.env.BASE_API,
12 | timeout: 5000
13 | });
14 |
15 | // request 拦截器
16 | service.interceptors.request.use(config => {
17 | //发送请求前,统一加上token
18 | if (store.getters.token) {
19 | config.headers['token'] = 'Bearer ' + store.getters.token;
20 | }
21 | return config;
22 | }, error => {
23 | console.log(error);
24 | Promise.reject(error);
25 | });
26 |
27 | // response 拦截器
28 | service.interceptors.response.use(
29 | response => {
30 | const code = response.data.code;
31 | if (401 === code) {
32 | Message({
33 | message: response.message,
34 | type: 'error',
35 | duration: 5 * 1000
36 | });
37 | // 退出登录
38 | localStorage.removeItem('account');
39 | localStorage.removeItem('token');
40 | localStorage.removeItem('expiration');
41 | localStorage.removeItem('nickname');
42 | router.push({path: '/login'});
43 | } else {
44 | return response;
45 | }
46 | },
47 | error => {
48 | console.log('err' + error);// for debug
49 | Message({
50 | message: error.message,
51 | type: 'error',
52 | duration: 5 * 1000
53 | });
54 | return Promise.reject(error);
55 | });
56 |
57 | export default service;
58 |
--------------------------------------------------------------------------------
/src/utils/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kai.fantasy on 2017/7/19 0019.
3 | */
4 | export function deepClone(source) {
5 | if (!source && typeof source !== 'object') {
6 | throw new Error('error arguments', 'shallowClone');
7 | }
8 | const targetObj = source.constructor === Array ? [] : {};
9 | for (const keys in source) {
10 | if (source.hasOwnProperty(keys)) {
11 | if (source[keys] && typeof source[keys] === 'object') {
12 | targetObj[keys] = source[keys].constructor === Array ? [] : {};
13 | targetObj[keys] = deepClone(source[keys]);
14 | } else {
15 | targetObj[keys] = source[keys];
16 | }
17 | }
18 | }
19 | return targetObj;
20 | }
21 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/.gitkeep
--------------------------------------------------------------------------------
/static/channelCode.json:
--------------------------------------------------------------------------------
1 | {
2 | "AppStore": "AppStore",
3 | "20036811": "应用宝",
4 | "20036812": "豌豆荚"
5 | }
6 |
--------------------------------------------------------------------------------
/static/css/color-dark.css:
--------------------------------------------------------------------------------
1 | .header{
2 | background-color: #242f42;
3 | }
4 | .login-wrap{
5 | background: #324157;
6 | }
7 | .plugins-tips{
8 | background: #eef1f6;
9 | }
10 | .plugins-tips a{
11 | color: #20a0ff;
12 | }
13 | .el-upload--text em {
14 | color: #20a0ff;
15 | }
16 | .pure-button{
17 | background: #20a0ff;
18 | }
--------------------------------------------------------------------------------
/static/css/main.css:
--------------------------------------------------------------------------------
1 | *{margin:0;padding:0;}
2 | html,body,#app,.wrapper{
3 | width:100%;
4 | height:100%;
5 | overflow: hidden;
6 | }
7 | body{
8 | font-family:"Helvetica Neue",Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif;
9 | }
10 | a{text-decoration: none}
11 | .content{
12 | background: none repeat scroll 0 0 #fff;
13 | position: absolute;
14 | left: 250px;
15 | right: 0;
16 | top: 70px;
17 | bottom:0;
18 | width: auto;
19 | padding:40px;
20 | box-sizing: border-box;
21 | overflow-y: scroll;
22 | }
23 | .crumbs{
24 | margin-bottom: 20px;
25 | }
26 | .pagination{
27 | margin: 20px 0;
28 | text-align: right;
29 | }
30 | .plugins-tips{
31 | padding:20px 10px;
32 | margin-bottom: 20px;
33 | }
34 | .el-button+.el-tooltip {
35 | margin-left: 10px;
36 | }
37 | .el-table td,.el-table th{
38 | padding:5px 18px;
39 | }
40 | .el-table tr:hover{
41 | background: #f6faff;
42 | }
43 | .mgb20{
44 | margin-bottom: 20px;
45 | }
46 |
47 | .move-enter-active,.move-leave-active{
48 | transition: opacity .5s;
49 | }
50 | .move-enter,.move-leave{
51 | opacity: 0;
52 | }
53 | /*BaseForm*/
54 | .form-box{
55 | width:600px;
56 | }
57 | .form-box .line{
58 | text-align: center;
59 | }
60 | .el-time-panel__content::after, .el-time-panel__content::before {
61 | margin-top: -7px;
62 | }
63 | /*Readme*/
64 | .ms-doc .el-checkbox__input.is-disabled+.el-checkbox__label{
65 | color: #333;
66 | cursor: pointer;
67 | }
68 | /*Upload*/
69 | .pure-button{
70 | width:150px;
71 | height:40px;
72 | line-height: 40px;
73 | text-align: center;
74 | color: #fff;
75 | border-radius: 3px;
76 | }
77 | .g-core-image-corp-container .info-aside{
78 | height:45px;
79 | }
80 | .el-upload--text {
81 | background-color: #fff;
82 | border: 1px dashed #d9d9d9;
83 | border-radius: 6px;
84 | box-sizing: border-box;
85 | width: 360px;
86 | height: 180px;
87 | text-align: center;
88 | cursor: pointer;
89 | position: relative;
90 | overflow: hidden;
91 | }
92 | .el-upload--text .el-icon-upload {
93 | font-size: 67px;
94 | color: #97a8be;
95 | margin: 40px 0 16px;
96 | line-height: 50px;
97 | }
98 | .el-upload--text {
99 | color: #97a8be;
100 | font-size: 14px;
101 | text-align: center;
102 | }
103 | .el-upload--text em {
104 | font-style: normal;
105 | }
106 | /*VueEditor*/
107 | .ql-container{
108 | min-height: 400px;
109 | }
110 | .ql-snow .ql-tooltip{
111 | transform: translateX(117.5px) translateY(10px) !important;
112 | }
113 | .editor-btn{
114 | margin-top: 20px;
115 | }
--------------------------------------------------------------------------------
/static/css/theme-green/color-green.css:
--------------------------------------------------------------------------------
1 | .header{
2 | background-color: #00d1b2;
3 | }
4 | .login-wrap{
5 | background: rgba(56, 157, 170, 0.82);;
6 | }
7 | .plugins-tips{
8 | background: #f2f2f2;
9 | }
10 | .plugins-tips a{
11 | color: #00d1b2;
12 | }
13 | .el-upload--text em {
14 | color: #00d1b2;
15 | }
16 | .pure-button{
17 | background: #00d1b2;
18 | }
19 | .vue-datasource .btn-primary {
20 | color: #fff;
21 | background-color: #00d1b2 !important;
22 | border-color: #00d1b2 !important;
23 | }
24 | .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus, .pagination > .active > span, .pagination > .active > span:hover, .pagination > .active > span:focus {
25 | background-color: #00d1b2 !important;
26 | border-color: #00d1b2 !important;
27 | }
--------------------------------------------------------------------------------
/static/css/theme-green/fonts/element-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/css/theme-green/fonts/element-icons.ttf
--------------------------------------------------------------------------------
/static/css/theme-green/fonts/element-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/css/theme-green/fonts/element-icons.woff
--------------------------------------------------------------------------------
/static/errCodeCN.json:
--------------------------------------------------------------------------------
1 | {
2 | "601101": "登录密码错误"
3 | }
4 |
--------------------------------------------------------------------------------
/static/img/avatar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/img/avatar.gif
--------------------------------------------------------------------------------
/static/img/bluchat-logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
34 |
--------------------------------------------------------------------------------
/static/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/img/favicon.ico
--------------------------------------------------------------------------------
/static/img/hero_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/img/hero_image.png
--------------------------------------------------------------------------------
/static/img/jiagou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/img/jiagou.png
--------------------------------------------------------------------------------
/static/img/video-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fantasykai/vue-admin-manager/985096c77cdfef93cf2679440068ea1431fecdf3/static/img/video-bg.png
--------------------------------------------------------------------------------
/static/requestList/activeAppVersion.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 | }
6 | },
7 | {
8 | "$group": {
9 | "_id": {
10 | }
11 | }
12 | },
13 | {
14 | "$group": {
15 | "_id": {
16 | },
17 | "num": {
18 | "$sum": 1
19 | }
20 | }
21 | },
22 | {
23 | "$sort": {
24 | }
25 | },
26 | {
27 | "$limit": 20
28 | }
29 | ],
30 | "collections": "collections"
31 | }
32 |
--------------------------------------------------------------------------------
/static/requestList/activeDevType.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 | }
6 | },
7 | {
8 | "$group": {
9 | "_id": {
10 |
11 | }
12 | }
13 | },
14 | {
15 | "$group": {
16 | "_id": {
17 | },
18 | "num": {
19 | }
20 | }
21 | },
22 | {
23 | "$sort": {
24 | }
25 | }
26 | ],
27 | "collections": "collections"
28 | }
29 |
--------------------------------------------------------------------------------
/static/requestList/activePhoneBrand.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 |
6 | }
7 | },
8 | {
9 | "$group": {
10 | "_id": {
11 |
12 | }
13 | }
14 | },
15 | {
16 | "$group": {
17 | "_id": {
18 |
19 | },
20 | "num": {
21 | "$sum": 1
22 | }
23 | }
24 | },
25 | {
26 | "$sort": {
27 |
28 | }
29 | },
30 | {
31 |
32 | }
33 | ],
34 | "collections": "collections"
35 | }
36 |
--------------------------------------------------------------------------------
/static/requestList/activePhoneModel.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 |
6 | }
7 | },{
8 | "$group": {
9 | "_id": {
10 |
11 | }}
12 | },
13 | {
14 | "$group": {
15 | "_id": {
16 |
17 | }}
18 | }
19 | ],
20 | "collections":"collections"
21 | }
22 |
--------------------------------------------------------------------------------
/static/requestList/appVersion.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 | }
7 | }
8 | }
9 | ],
10 | "collections": "collections"
11 | }
12 |
--------------------------------------------------------------------------------
/static/requestList/channel.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [{
3 | "$group": {
4 | "_id": {
5 | },
6 | "num": {"$sum": 1}}
7 | },
8 | {"$sort": {"num": 1}}
9 | ],
10 | "collections":"collections"
11 | }
12 |
--------------------------------------------------------------------------------
/static/requestList/cycleFrisNum.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 | },
7 | "num": {
8 | "$sum": 1
9 | }
10 | }
11 | }
12 | ],
13 | "collections": "collections"
14 | }
15 |
--------------------------------------------------------------------------------
/static/requestList/cycleLoggedUserNum.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 | }
6 | },
7 | {
8 | "$group": {
9 | "_id": {
10 | }
11 | }
12 | },
13 | {
14 | "$group": {
15 | "_id": {
16 | },
17 | "num": {
18 | "$sum": 1
19 | }
20 | }
21 | }
22 | ],
23 | "collections": "collections"
24 | }
25 |
--------------------------------------------------------------------------------
/static/requestList/cycleMsgNum.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 | },
7 | "num": {
8 | "$sum": 1
9 | }
10 | }
11 | }
12 | ],
13 | "collections": "collections"
14 | }
15 |
--------------------------------------------------------------------------------
/static/requestList/cycleUserNum.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 | },
7 | "num": {
8 | "$sum": 1
9 | }
10 | }
11 | }
12 | ],
13 | "collections": "collections"
14 | }
15 |
--------------------------------------------------------------------------------
/static/requestList/devType.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 |
7 | },
8 | "num": {
9 | "$sum": 1
10 | }
11 | }
12 | },
13 | {
14 | "$sort": {
15 | "num": -1
16 | }
17 | }
18 | ],
19 | "collections": "collections"
20 | }
21 |
--------------------------------------------------------------------------------
/static/requestList/formatTest.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 | }
6 | },
7 | {
8 | "$group": {
9 | "_id": {
10 | },
11 | "num": {
12 | "$sum": 1
13 | }
14 | }
15 | }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/static/requestList/friendNumsRanked.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 | }
6 | },
7 | {
8 | "$group": {
9 | "_id": {
10 | },
11 | "num": {
12 | "$sum": 1
13 | }
14 | }
15 | },
16 | {
17 | "$sort": {
18 | "num": -1
19 | }
20 | },
21 | {
22 | "$limit": 50
23 | }
24 | ],
25 | "collections": "collections"
26 | }
27 |
--------------------------------------------------------------------------------
/static/requestList/phoneBrand.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 | },
7 | "num": {
8 | "$sum": 1
9 | }
10 | }
11 | },
12 | {
13 | "$sort": {
14 | "num": -1
15 | }
16 | },
17 | {
18 | "$limit": 20
19 | }
20 | ],
21 | "collections": "collections"
22 | }
23 |
--------------------------------------------------------------------------------
/static/requestList/phoneModel.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 | },
7 | "num": {
8 | "$sum": 1
9 | }
10 | }
11 | }
12 | ],
13 | "collections": "collections"
14 | }
15 |
--------------------------------------------------------------------------------
/static/requestList/sendMsgCount.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$group": {
5 | "_id": {
6 | }
7 | }
8 | }
9 | ],
10 | "collections": "collections"
11 | }
12 |
--------------------------------------------------------------------------------
/static/requestList/sendMsgNumsRanked.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 | }
6 | },
7 | {
8 | "$group": {
9 | "_id": {
10 | },
11 | "num": {
12 | "$sum": 1
13 | }
14 | }
15 | },
16 | {
17 | "$sort": {
18 | "num": -1
19 | }
20 | },
21 | {
22 | "$limit": 50
23 | }
24 | ],
25 | "collections": "collections"
26 | }
27 |
--------------------------------------------------------------------------------
/static/requestList/userNumByGeo.json:
--------------------------------------------------------------------------------
1 | {
2 | "pipeline": [
3 | {
4 | "$match": {
5 | "operate": "operate"
6 | }
7 | },
8 | {
9 | "$group": {
10 | "_id": {
11 | "city": "$geo.city",
12 | "latitude": "$geo.latitude",
13 | "longitude": "$geo.longitude",
14 | "userId": "$user_id"
15 | }
16 | }
17 | },
18 | {
19 | "$group": {
20 | "_id": {
21 | "city": "$_id.city",
22 | "latitude": "$_id.latitude",
23 | "longitude": "$_id.longitude"
24 | },
25 | "num": {
26 | "$sum": 1
27 | }
28 | }
29 | },
30 | {
31 | "$sort": {
32 | "num": -1
33 | }
34 | }
35 | ],
36 | "starttime":"2017-07-28 02:30:00",
37 | "collections": "collections"
38 | }
39 |
--------------------------------------------------------------------------------