Browse Source

初始化提交

master
管理员 6 years ago
parent
commit
0288e990f5
  1. 2
      .env.development
  2. 2
      .env.production
  3. 2
      .env.production.sit
  4. 2
      .env.production.uat
  5. 1
      .eslintignore
  6. 2
      .gitignore
  7. 21
      README.md
  8. 5
      babel.config.js
  9. BIN
      doc/renren-cloud(后端文档).pdf
  10. BIN
      doc/renren-cloud-admin(前端文档).pdf
  11. BIN
      doc/系统构架文档.pdf
  12. 103
      gulpfile.js
  13. 16851
      package-lock.json
  14. 85
      package.json
  15. 1
      public/element-theme/blue/aui.css
  16. BIN
      public/element-theme/blue/fonts/element-icons.ttf
  17. BIN
      public/element-theme/blue/fonts/element-icons.woff
  18. 1
      public/element-theme/blue/index.css
  19. 1
      public/element-theme/brown/aui.css
  20. BIN
      public/element-theme/brown/fonts/element-icons.ttf
  21. BIN
      public/element-theme/brown/fonts/element-icons.woff
  22. 1
      public/element-theme/brown/index.css
  23. 1
      public/element-theme/cyan/aui.css
  24. BIN
      public/element-theme/cyan/fonts/element-icons.ttf
  25. BIN
      public/element-theme/cyan/fonts/element-icons.woff
  26. 1
      public/element-theme/cyan/index.css
  27. 1
      public/element-theme/default/aui.css
  28. BIN
      public/element-theme/default/fonts/element-icons.ttf
  29. BIN
      public/element-theme/default/fonts/element-icons.woff
  30. 1
      public/element-theme/default/index.css
  31. 1
      public/element-theme/gray/aui.css
  32. BIN
      public/element-theme/gray/fonts/element-icons.ttf
  33. BIN
      public/element-theme/gray/fonts/element-icons.woff
  34. 1
      public/element-theme/gray/index.css
  35. 1
      public/element-theme/green/aui.css
  36. BIN
      public/element-theme/green/fonts/element-icons.ttf
  37. BIN
      public/element-theme/green/fonts/element-icons.woff
  38. 1
      public/element-theme/green/index.css
  39. 1
      public/element-theme/indigo/aui.css
  40. BIN
      public/element-theme/indigo/fonts/element-icons.ttf
  41. BIN
      public/element-theme/indigo/fonts/element-icons.woff
  42. 1
      public/element-theme/indigo/index.css
  43. 1
      public/element-theme/orange/aui.css
  44. BIN
      public/element-theme/orange/fonts/element-icons.ttf
  45. BIN
      public/element-theme/orange/fonts/element-icons.woff
  46. 1
      public/element-theme/orange/index.css
  47. 1
      public/element-theme/pink/aui.css
  48. BIN
      public/element-theme/pink/fonts/element-icons.ttf
  49. BIN
      public/element-theme/pink/fonts/element-icons.woff
  50. 1
      public/element-theme/pink/index.css
  51. 1
      public/element-theme/purple/aui.css
  52. BIN
      public/element-theme/purple/fonts/element-icons.ttf
  53. BIN
      public/element-theme/purple/fonts/element-icons.woff
  54. 1
      public/element-theme/purple/index.css
  55. 1
      public/element-theme/red/aui.css
  56. BIN
      public/element-theme/red/fonts/element-icons.ttf
  57. BIN
      public/element-theme/red/fonts/element-icons.woff
  58. 1
      public/element-theme/red/index.css
  59. 1
      public/element-theme/turquoise/aui.css
  60. BIN
      public/element-theme/turquoise/fonts/element-icons.ttf
  61. BIN
      public/element-theme/turquoise/fonts/element-icons.woff
  62. 1
      public/element-theme/turquoise/index.css
  63. 1
      public/element-theme/yellow/aui.css
  64. BIN
      public/element-theme/yellow/fonts/element-icons.ttf
  65. BIN
      public/element-theme/yellow/fonts/element-icons.woff
  66. 1
      public/element-theme/yellow/index.css
  67. BIN
      public/favicon.ico
  68. 50
      public/index.html
  69. 29
      src/App.vue
  70. BIN
      src/assets/img/avatar.png
  71. BIN
      src/assets/img/login_bg.jpg
  72. 11
      src/assets/scss/aui.scss
  73. 704
      src/assets/scss/common.scss
  74. 6
      src/assets/scss/modules/home.scss
  75. 447
      src/assets/scss/normalize.scss
  76. 48
      src/assets/scss/pages/404.scss
  77. 220
      src/assets/scss/pages/login.scss
  78. 22
      src/assets/scss/variables.scss
  79. 75
      src/components/table-tree-column/index.vue
  80. 23
      src/element-ui/config.js
  81. 713
      src/element-ui/theme-variables.scss
  82. 1
      src/element-ui/theme/alert.css
  83. 1
      src/element-ui/theme/aside.css
  84. 1
      src/element-ui/theme/autocomplete.css
  85. 1
      src/element-ui/theme/badge.css
  86. 1
      src/element-ui/theme/base.css
  87. 0
      src/element-ui/theme/breadcrumb-item.css
  88. 1
      src/element-ui/theme/breadcrumb.css
  89. 0
      src/element-ui/theme/button-group.css
  90. 1
      src/element-ui/theme/button.css
  91. 1
      src/element-ui/theme/card.css
  92. 1
      src/element-ui/theme/carousel-item.css
  93. 1
      src/element-ui/theme/carousel.css
  94. 1
      src/element-ui/theme/cascader.css
  95. 0
      src/element-ui/theme/checkbox-button.css
  96. 0
      src/element-ui/theme/checkbox-group.css
  97. 1
      src/element-ui/theme/checkbox.css
  98. 1
      src/element-ui/theme/col.css
  99. 0
      src/element-ui/theme/collapse-item.css
  100. 1
      src/element-ui/theme/collapse.css

2
.env.development

@ -0,0 +1,2 @@
NODE_ENV=development
VUE_APP_NODE_ENV=dev

2
.env.production

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=prod

2
.env.production.sit

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=prod:sit

2
.env.production.uat

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=prod:uat

1
.eslintignore

@ -0,0 +1 @@
/src/icons/iconfont.js

2
.gitignore

@ -10,3 +10,5 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
node_modules
dist

21
README.md

@ -0,0 +1,21 @@
# renren-cloud-admin
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```

5
babel.config.js

@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/app'
]
}

BIN
doc/renren-cloud(后端文档).pdf

Binary file not shown.

BIN
doc/renren-cloud-admin(前端文档).pdf

Binary file not shown.

BIN
doc/系统构架文档.pdf

Binary file not shown.

103
gulpfile.js

@ -0,0 +1,103 @@
var gulp = require('gulp')
var $ = require('gulp-load-plugins')()
var fs = require('fs')
var path = require('path')
var del = require('del')
var colors = require('colors')
var child_process = require('child_process')
var theme = {}
var themeList = require('./src/element-ui/config.js').filter(item => !item.hasBuild)
var styleFileDir = './src/assets/scss'
var styleFileDirTemp = `${styleFileDir}-temp`
var themeFileDir = './public/element-theme'
var et = require('element-theme')
var etOptions = require('./package.json')['element-theme']
var themeFileName = etOptions.config.replace(/.*\/(.+\.scss)/, '$1')
/**
* 构建生成主题
*/
gulp.task('themes', () => {
if (themeList.length <= 0) { return del(styleFileDirTemp) }
// 删除临时文件,保证本次操作正常执行
del(styleFileDirTemp)
// 拷贝一份scss样式文件夹,作为构建的临时处理文件夹
child_process.spawnSync('cp', ['-r', styleFileDir, styleFileDirTemp])
// 拷贝element组件scss变量样式文件至临时处理文件夹中,并修改相应配置信息
child_process.spawnSync('cp', ['-r', etOptions.config, styleFileDirTemp])
etOptions.config = `${styleFileDirTemp}/${themeFileName}`
// 开始构建生成
fnCreate(themeList)
function fnCreate (themeList) {
if (themeList.length >= 1) {
// 保存当前构建生成的主题对象
theme = themeList[0]
console.log('\n')
console.log(colors.green('-------------------- 待构建,主题 -------------------------'))
console.log(themeList)
console.log('\n')
console.log(colors.green('-------------------- 构建中,主题 -------------------------'))
console.log(theme)
console.log('\n')
// 修改.scss临时文件中的$--color-primary主题变量值
var data = fs.readFileSync(etOptions.config, 'utf8')
var result = data.replace(/\$--color-primary:(.*) !default;/, `$--color-primary:${theme.color} !default;`)
fs.writeFileSync(path.resolve(etOptions.config), result)
// 修改aui.scss临时文件中引入element组件主题变量文件路径
var data = fs.readFileSync(`${styleFileDirTemp}/aui.scss`, 'utf8')
var result = data.replace(new RegExp(`(@import \")(.*\/)(${themeFileName}\";)`), '$1./$3')
fs.writeFileSync(path.resolve(`${styleFileDirTemp}/aui.scss`), result)
// 调用element-theme插件,生成element组件主题
etOptions.out = `${themeFileDir}/${theme.name}`
et.run(etOptions, () => {
// 生成后,构建同主题色aui.css项目主题
gulp.start(['styles'], () => {
// 递归下一步
themeList.splice(0, 1)
fnCreate(themeList)
})
})
} else {
// 删除临时文件
del(styleFileDirTemp)
console.log('\n')
console.log(colors.green('-------------------- 构建完毕,删除临时文件 -------------------------'))
console.log(styleFileDirTemp)
console.log('\n')
// 删除主题不需要的部分文件
var files = [
`${themeFileDir}/**/*.css`,
`!${themeFileDir}/**/index.css`,
`!${themeFileDir}/**/aui.css`,
`!${themeFileDir}/**/fonts`
]
del(files)
console.log(colors.green('-------------------- 构建完毕,删除主题独立组件文件 -------------------------'))
console.log(files)
console.log('\n')
}
}
})
gulp.task('styles', () => {
return gulp.src([`${styleFileDirTemp}/aui.scss`])
.pipe($.sass().on('error', $.sass.logError))
.pipe($.autoprefixer({
browsers: etOptions.browsers,
cascade: false
}))
.pipe($.cleanCss())
.pipe($.rename('aui.css'))
.pipe(gulp.dest(`${themeFileDir}/${theme.name}`))
})

16851
package-lock.json

File diff suppressed because it is too large

85
package.json

@ -0,0 +1,85 @@
{
"name": "esua-edpc-admin",
"version": "1.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"build:sit": "vue-cli-service build --mode production.sit",
"build:uat": "vue-cli-service build --mode production.uat",
"build:prod": "vue-cli-service build --mode production",
"lint": "vue-cli-service lint",
"et": "node_modules/.bin/et",
"et:init": "node_modules/.bin/et -i",
"et:list": "gulp themes"
},
"dependencies": {
"axios": "^0.18.0",
"babel-plugin-component": "^1.1.1",
"element-theme": "^2.0.1",
"element-theme-chalk": "^2.4.7",
"element-ui": "^2.4.7",
"gulp-autoprefixer": "^6.0.0",
"gulp-clean-css": "^3.10.0",
"gulp-load-plugins": "^1.5.0",
"gulp-rename": "^1.4.0",
"gulp-sass": "^4.0.2",
"js-cookie": "^2.2.0",
"lodash": "^4.17.11",
"node-sass": "^4.9.3",
"qs": "^6.5.2",
"quill": "^1.3.6",
"sass-loader": "^7.1.0",
"screenfull": "^3.3.3",
"svg-sprite-loader": "^4.1.1",
"vue": "^2.5.17",
"vue-i18n": "^8.1.0",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.0.4",
"@vue/cli-plugin-eslint": "^3.0.4",
"@vue/cli-service": "^3.0.4",
"@vue/eslint-config-standard": "^3.0.4",
"vue-template-compiler": "^2.5.17"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"@vue/standard"
],
"rules": {},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"engines": {
"node": ">= 8.11.1",
"npm": ">= 5.6.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 10"
],
"element-theme": {
"config": "./src/element-ui/theme-variables.scss",
"out": "./src/element-ui/theme",
"minimize": true,
"browsers": [
"> 1%",
"last 2 versions",
"not ie <= 10"
]
}
}

1
public/element-theme/blue/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/blue/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/blue/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/blue/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/brown/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/brown/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/brown/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/brown/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/cyan/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/cyan/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/cyan/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/cyan/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/default/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/default/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/default/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/default/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/gray/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/gray/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/gray/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/gray/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/green/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/green/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/green/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/green/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/indigo/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/indigo/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/indigo/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/indigo/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/orange/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/orange/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/orange/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/orange/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/pink/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/pink/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/pink/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/pink/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/purple/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/purple/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/purple/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/purple/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/red/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/red/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/red/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/red/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/turquoise/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/turquoise/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/turquoise/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/turquoise/index.css

File diff suppressed because one or more lines are too long

1
public/element-theme/yellow/aui.css

File diff suppressed because one or more lines are too long

BIN
public/element-theme/yellow/fonts/element-icons.ttf

Binary file not shown.

BIN
public/element-theme/yellow/fonts/element-icons.woff

Binary file not shown.

1
public/element-theme/yellow/index.css

File diff suppressed because one or more lines are too long

BIN
public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

50
public/index.html

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="shortcut icon" href="<%= BASE_URL %>favicon.ico">
<!-- 站点配置 -->
<script>
window.SITE_CONFIG = {};
window.SITE_CONFIG['version'] = 'v1.1.0';
window.SITE_CONFIG['nodeEnv'] = '<%= process.env.VUE_APP_NODE_ENV %>';
window.SITE_CONFIG['apiURL'] = ''; // api请求地址
window.SITE_CONFIG['storeState'] = {}; // vuex本地储存初始化状态(用于不刷新页面的情况下,也能重置初始化项目中所有状态)
window.SITE_CONFIG['contentTabDefault'] = { // 内容标签页默认属性对象
'name': '', // 名称, 由 this.$route.name 自动赋值(默认,名称 === 路由名称 === 路由路径)
'params': {}, // 参数, 由 this.$route.params 自动赋值
'query': {}, // 查询参数, 由 this.$route.query 自动赋值
'menuId': '', // 菜单id(用于选中侧边栏菜单,与this.$store.state.sidebarMenuActiveName进行匹配)
'title': '', // 标题
'isTab': true, // 是否通过tab展示内容?
'iframeURL': '' // 是否通过iframe嵌套展示内容? (以http[s]://开头, 自动匹配)
};
window.SITE_CONFIG['menuList'] = []; // 左侧菜单列表(后台返回,未做处理)
window.SITE_CONFIG['permissions'] = []; // 页面按钮操作权限(后台返回,未做处理)
window.SITE_CONFIG['dynamicRoutes'] = []; // 动态路由列表
window.SITE_CONFIG['dynamicMenuRoutes'] = []; // 动态(菜单)路由列表
window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = false; // 动态(菜单)路由是否已经添加的状态标示(用于判断是否需要重新拉取数据并进行动态添加操作)
</script>
<!-- 开发环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080';</script>
<% } %>
<!-- 集成测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:sit') { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080';</script>
<% } %>
<!-- 验收测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:uat') { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080';</script>
<% } %>
<!-- 生产环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod') { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080';</script>
<% } %>
</head>
<body>
<div id="app"></div>
</body>
</html>

29
src/App.vue

@ -0,0 +1,29 @@
<template>
<transition name="el-fade-in-linear">
<router-view />
</transition>
</template>
<script>
import Cookies from 'js-cookie'
import { messages } from '@/i18n'
export default {
watch: {
'$i18n.locale': 'i18nHandle'
},
created () {
this.i18nHandle(this.$i18n.locale)
},
methods: {
i18nHandle (val, oldVal) {
Cookies.set('language', val)
document.querySelector('html').setAttribute('lang', val)
document.title = messages[val].brand.lg
//
if (this.$route.name !== 'login' && oldVal) {
window.location.reload()
}
}
}
}
</script>

BIN
src/assets/img/avatar.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
src/assets/img/login_bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

11
src/assets/scss/aui.scss

@ -0,0 +1,11 @@
// 变量
@import "~@/element-ui/theme-variables.scss";
@import "./variables.scss";
// 公共
@import "./normalize.scss";
@import "./common.scss";
// 页面
@import "./pages/login.scss";
@import "./pages/404.scss";
// 模块
@import "./modules/home.scss";

704
src/assets/scss/common.scss

@ -0,0 +1,704 @@
*,
*:before,
*:after {
box-sizing: border-box;
}
body {
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: $--font-size-base;
line-height: $base--line-height;
color: $--color-text-primary;
background-color: #fff;
}
a {
color: mix(#fff, $--color-primary, 20%);
text-decoration: none;
&:focus,
&:hover {
color: $--color-primary;
text-decoration: underline;
}
}
img {
vertical-align: middle;
}
:focus,
:hover {
outline: none;
}
/* Utils
------------------------------ */
[v-cloak] {
display: none;
}
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
.fr {
float: right !important;
}
.fl {
float: left !important;
}
.fi {
float: initial !important;
}
.m-auto {
margin: auto !important;
}
.mt-auto {
margin-top: auto !important;
}
.mr-auto {
margin-right: auto !important;
}
.mb-auto {
margin-bottom: auto !important;
}
.ml-auto {
margin-left: auto !important;
}
.text-right {
text-align: right !important;
}
.text-center {
text-align: center !important;
}
.text-left {
text-align: left !important;
}
.w-percent-100 {
width: 100% !important;
}
.base-line-height {
line-height: $base--line-height !important;
}
/* Reset element-ui
------------------------------ */
.aui-wrapper {
.el-card + .el-card {
margin-top: 15px;
}
.el-input__prefix .el-input__icon {
display: inline-block;
vertical-align: middle;
}
.el-date-editor .el-range-separator {
width: 8%;
}
.el-table th {
color: $--color-text-primary;
background-color: $--background-color-base;
}
.el-pagination {
margin-top: 15px;
text-align: right;
}
}
/* Common
------------------------------ */
// 图标
.icon-svg {
width: 1em;
height: 1em;
fill: currentColor;
vertical-align: middle;
overflow: hidden;
}
// 卡片
.aui-card--fill .el-card__header {
height: $content--card-header-height;
line-height: $content--card-header-height - 36px;
}
.aui-card__title {
font-size: 16px;
}
// 表单
.aui-form__label-icon {
display: inline-block;
margin: 0 3px;
vertical-align: middle;
font-size: 18px;
color: $--color-text-secondary;
}
// 按钮
.aui-button--dashed {
border-style: dashed;
&:focus,
&:hover {
background-color: transparent;
}
&-add {
> span > *[class*="el-icon-"],
> span > *[class*="icon"] {
vertical-align: middle;
font-size: 18px;
margin-right: 5px;
}
}
}
// 主题工具
.aui-theme-tools {
position: fixed;
top: $navbar--height + $content--tabs-header-height + 15px;
right: -210px;
bottom: 0;
z-index: 1010;
width: 210px;
transition: right .3s;
&--open {
right: 0;
}
&__toggle {
position: absolute;
top: 80px;
left: -40px;
width: 40px;
padding: 10px 8px;
text-align: center;
font-size: 20px;
border-right: 0;
border-radius: $--border-radius-base 0 0 $--border-radius-base;
color: #fff;
background-color: $--color-primary;
cursor: pointer;
}
&__content {
height: 100%;
padding: 5px 20px 20px;
border: 1px solid $--border-color-lighter;
border-radius: $--border-radius-base 0 0 $--border-radius-base;
background-color: #fff;
.el-radio {
display: block;
margin-left: 0 !important;
line-height: 28px;
}
}
&__item + &__item {
margin-top: 15px;
border-top: 1px solid $--border-color-lighter;
}
}
/* Layout
------------------------------ */
.aui-wrapper {
position: relative;
padding-top: $navbar--height;
}
/* Sidebar fold
------------------------------ */
.aui-sidebar--fold {
.aui-navbar {
&__header,
&__brand {
width: $sidebar--width-fold;
}
&__brand {
&-lg {
display: none;
}
&-mini {
display: inline-block;
}
}
&__icon-menu--switch {
transform: rotateZ(180deg);
}
}
.aui-sidebar {
&__inner {
width: $sidebar--width-fold + 20px;
}
&,
&__menu {
width: $sidebar--width-fold;
}
&__menu > li {
text-align: center;
}
&__menu-icon {
margin-right: 0;
font-size: 18px;
}
}
.aui-content {
&__wrapper {
margin-left: $sidebar--width-fold;
}
&--tabs > .el-tabs > .el-tabs__header {
left: $sidebar--width-fold;
}
}
}
/* Navbar
------------------------------ */
.aui-navbar {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 1030;
display: flex;
align-items: stretch;
height: $navbar--height;
background-color: $--color-primary;
box-shadow: 0 1px 0 0 rgba(0, 0, 0, .05);
&--colorful {
.aui-navbar__body {
background-color: transparent;
}
.aui-navbar__menu {
> .el-menu-item,
> .el-submenu > .el-submenu__title {
color: #fff;
&:focus,
&:hover {
color: #fff;
background-color: mix(#000, $--color-primary, 15%);
}
}
> .el-menu-item.is-active,
> .el-submenu.is-active > .el-submenu__title {
color: #fff;
&:focus,
&:hover {
color: #fff;
}
}
.el-menu-item i,
.el-submenu__title i,
.el-menu-item svg,
.el-submenu__title svg,
.el-menu-item .el-dropdown {
color: #fff !important;
}
.el-button {
color: #fff;
background-color: transparent;
}
}
.aui-navbar__search {
&-txt {
.el-input__inner {
color: #fff;
border-color: #fff;
&::-webkit-input-placeholder {
color: #fff;
}
}
}
}
}
&__header {
position: relative;
width: $sidebar--width;
height: $navbar--height;
transition: width .3s;
}
&__brand {
display: flex;
justify-content: center;
align-items: center;
padding: 5px;
margin: 0;
width: 100%;
height: 100%;
font-size: 20px;
text-transform: uppercase;
white-space: nowrap;
color: #fff;
overflow: hidden;
transition: width .3s;
&-lg,
&-mini {
max-width: 100%;
color: #fff;
cursor: pointer;
&:focus,
&:hover {
color: #fff;
text-decoration: none;
}
}
&-mini {
display: none;
}
}
&__body {
position: relative;
display: flex;
flex: 1;
background-color: #fff;
overflow: hidden;
}
&__menu {
background-color: transparent;
border-bottom: 0 !important;
a:focus,
a:hover {
text-decoration: none;
}
.el-menu-item,
.el-submenu > .el-submenu__title {
height: $navbar--height;
padding: 0 15px;
line-height: $navbar--height;
border-color: transparent !important;
}
.el-menu-item.is-active,
.el-submenu.is-active > .el-submenu__title {
color: $--color-text-secondary;
&:focus,
&:hover {
color: $--color-text-primary;
}
}
.el-menu-item {
&:focus,
&:hover {
.aui-navbar__icon-menu {
color: $--color-text-primary;
}
.el-dropdown {
color: $--color-text-primary;
.el-icon-arrow-down {
transform: rotateZ(180deg);
}
}
}
* {
vertical-align: initial;
}
.aui-navbar__icon-menu {
vertical-align: middle;
font-size: 16px;
}
.el-dropdown {
color: $--color-text-secondary;
.el-icon-arrow-down {
width: auto;
font-size: 12px;
margin: 0 0 0 5px;
transition: transform .3s;
}
}
}
.el-badge {
display: inline;
z-index: 2;
&__content {
line-height: 16px;
}
}
}
&__search {
> *[class*="el-icon-"],
> *[class*="icon"] {
display: inline-block;
vertical-align: middle;
}
&-txt {
width: 0;
transition: width .3s, margin-left .3s;
&.is-show {
width: 210px;
margin-left: 8px;
}
.el-input__inner {
height: $navbar--height - 20px;
padding: 0;
line-height: $navbar--height - 20px;
border-color: $--color-text-primary;
border-top: 0;
border-right: 0;
border-left: 0;
border-radius: 0;
background: transparent;
}
}
}
&__avatar {
.el-dropdown-link {
> img {
width: 36px;
height: auto;
margin-right: 5px;
border-radius: 100%;
vertical-align: middle;
}
}
}
}
/* Sidebar
------------------------------ */
.aui-sidebar {
position: fixed;
top: $navbar--height;
left: 0;
bottom: 0;
z-index: 1020;
width: $sidebar--width;
background-color: #fff;
box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05);
overflow: hidden;
transition: width .3s;
&--dark {
background-color: $sidebar--background-color-dark;
.aui-sidebar__menu,
> .el-menu--popup {
background-color: $sidebar--background-color-dark;
.el-menu-item,
.el-submenu > .el-submenu__title {
color: $sidebar--text-color-dark;
&:focus,
&:hover {
color: mix(#fff, $sidebar--text-color-dark, 50%);
background-color: mix(#fff, $sidebar--background-color-dark, 2.5%);
}
}
.el-menu,
.el-submenu.is-opened {
background-color: mix(#000, $sidebar--background-color-dark, 15%);
}
.el-menu-item.is-active,
.el-submenu.is-active > .el-submenu__title {
color: mix(#fff, $sidebar--text-color-dark, 80%);
}
}
}
&__inner {
position: relative;
z-index: 1;
width: $sidebar--width + 20px;
height: 100%;
padding-bottom: 15px;
overflow-x: hidden;
overflow-y: scroll;
transition: width .3s;
}
&__menu {
width: $sidebar--width;
border-right: 0;
transition: width .3s;
.el-menu-item,
.el-submenu__title {
height: $sidebar--menu-item-height;
line-height: $sidebar--menu-item-height;
}
}
&__menu-icon {
display: inline-block;
vertical-align: middle;
width: 24px !important;
margin-right: 5px;
text-align: center;
font-size: 16px;
color: inherit !important;
transition: font-size .3s;
}
}
/* Content
------------------------------ */
.aui-content {
position: relative;
padding: $content--padding;
min-height: calc(100vh - #{$navbar--height});
&__wrapper {
position: relative;
margin-left: $sidebar--width;
min-height: calc(100vh - #{$navbar--height});
background-color: $content--background-color;
transition: margin-left .3s;
}
> .aui-card--fill > .el-card__body {
min-height: calc(#{$content--fill-height} - 2px);
}
> .aui-card--fill > .el-card__header + .el-card__body {
min-height: calc(#{$content--fill-height} - #{$content--card-header-height} - 2px);
}
&--tabs {
padding: $content--tabs-header-height 0 0;
}
&--tabs-tools {
position: fixed;
top: $navbar--height;
right: 0;
z-index: 931;
min-width: $content--tabs-header-height;
height: $content--tabs-header-height;
padding: 0 12px;
text-align: center;
font-size: 16px;
line-height: $content--tabs-header-height;
background-color: $--background-color-base;
cursor: pointer;
}
&--tabs-icon-nav {
display: inline-block;
vertical-align: middle;
font-size: 16px;
}
> .el-tabs {
> .el-tabs__header {
position: fixed;
top: $navbar--height;
left: $sidebar--width;
right: 0;
z-index: 930;
padding: 0 55px 0 15px;
margin: 0;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
background-color: #fff;
transition: left .3s;
> .el-tabs__nav-wrap {
margin-bottom: 0;
&:after {
display: none;
}
> .el-tabs__nav-next,
> .el-tabs__nav-prev {
line-height: $content--tabs-header-height;
}
> .el-tabs__nav-scroll > .el-tabs__nav {
& > .el-tabs__active-bar {
display: none;
}
& > .el-tabs__item {
height: $content--tabs-header-height;
padding: 0 15px;
line-height: $content--tabs-header-height;
border: 0;
color: $--color-text-regular;
&:focus,
&:hover,
&.is-active {
color: $--color-text-primary;
background-color: $--background-color-base;
&:after {
display: block;
}
> .el-icon-close {
color: $--color-text-primary;
}
}
&:after {
display: none;
position: absolute;
bottom: 0;
left: 0;
content: '';
width: 100%;
height: 2px;
background-color: $--color-primary;
}
+ .el-tabs__item {
margin-left: 1px;
}
> .el-icon-close {
width: 14px;
margin-left: 15px;
color: $--color-text-secondary;
}
> i.icon {
display: inline-block;
vertical-align: middle;
font-size: 18px;
}
}
}
}
}
> .el-tabs__content {
padding: $content--padding;
> .el-tab-pane {
min-height: calc(#{$content--fill-height-tabs});
> .aui-card--fill > .el-card__body {
min-height: calc(#{$content--fill-height-tabs} - 2px);
}
> .aui-card--fill > .el-card__header + .el-card__body {
min-height: calc(#{$content--fill-height-tabs} - #{$content--card-header-height} - 2px);
}
&.is-iframe {
height: calc(#{$content--fill-height-tabs} + #{$content--padding * 2});
margin: -$content--padding;
min-height: auto;
> .aui-card--fill {
background-color: transparent;
}
> .aui-card--fill > .el-card__header {
background-color: #fff;
}
> .aui-card--fill > .el-card__body {
height: calc(#{$content--fill-height-tabs} - 2px);
margin: $content--padding;
min-height: auto;
border: $--border-base;
border-color: $--border-color-lighter;
border-radius: $--border-radius-base;
background-color: #fff;
}
> .aui-card--fill > .el-card__header + .el-card__body {
height: calc(#{$content--fill-height-tabs} - #{$content--card-header-height} - 2px);
}
}
}
}
}
// quill富文本编辑器
.ql-toolbar {
line-height: 20px;
&.ql-snow {
border-color: $--border-color-base;
}
.ql-formats {
margin: 0 5px;
}
}
.ql-container {
height: 150px;
&.ql-snow {
border-color: $--border-color-base;
}
}
}
/* Page
------------------------------ */
*[class*="aui-page__"] {
padding-top: 0;
.aui-content {
min-height: auto;
&__wrapper {
min-height: 100vh;
margin-left: 0;
}
> .aui-card--fill > .el-card__body {
min-height: calc(100vh - #{$content--padding * 2} - 2px);
}
> .aui-card--fill > .el-card__header + .el-card__body {
min-height: calc(100vh - #{$content--padding * 2} - #{$content--card-header-height} - 2px);
}
}
}

6
src/assets/scss/modules/home.scss

@ -0,0 +1,6 @@
.mod-home {
line-height: 1.8;
ul li {
color: $--color-text-regular;
}
}

447
src/assets/scss/normalize.scss

@ -0,0 +1,447 @@
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in
* IE on Windows Phone and in iOS.
*/
html {
line-height: 1.15; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers (opinionated).
*/
body {
margin: 0;
}
/**
* Add the correct display in IE 9-.
*/
article,
aside,
footer,
header,
nav,
section {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* Add the correct display in IE 9-.
* 1. Add the correct display in IE.
*/
figcaption,
figure,
main { /* 1 */
display: block;
}
/**
* Add the correct margin in IE 8.
*/
figure {
margin: 1em 40px;
}
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
*/
a {
background-color: transparent; /* 1 */
-webkit-text-decoration-skip: objects; /* 2 */
}
/**
* 1. Remove the bottom border in Chrome 57- and Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
*/
b,
strong {
font-weight: inherit;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font style in Android 4.3-.
*/
dfn {
font-style: italic;
}
/**
* Add the correct background and color in IE 9-.
*/
mark {
background-color: #ff0;
color: #000;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
audio,
video {
display: inline-block;
}
/**
* Add the correct display in iOS 4-7.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Remove the border on images inside links in IE 10-.
*/
img {
border-style: none;
}
/**
* Hide the overflow in IE.
*/
svg:not(:root) {
overflow: hidden;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: sans-serif; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
* controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
-webkit-appearance: button; /* 2 */
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* 1. Add the correct display in IE 9-.
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in IE 9-.
* 1. Add the correct display in Edge, IE, and Firefox.
*/
details, /* 1 */
menu {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Scripting
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
canvas {
display: inline-block;
}
/**
* Add the correct display in IE.
*/
template {
display: none;
}
/* Hidden
========================================================================== */
/**
* Add the correct display in IE 10-.
*/
[hidden] {
display: none;
}

48
src/assets/scss/pages/404.scss

@ -0,0 +1,48 @@
.aui-page__not-found {
.aui-content {
display: flex;
flex-flow: column wrap;
align-items: center;
min-height: 100vh;
padding: 15% 50px 50px;
text-align: center;
&__wrapper {
height: 100vh;
background-color: transparent;
overflow-x: hidden;
overflow-y: auto;
}
}
.title {
margin: 0 0 15px;
font-size: 10em;
font-weight: 400;
color: $--color-text-regular;
}
.desc {
margin: 0 0 20px;
font-size: 26px;
color: $--color-text-secondary;
> em {
margin: 0 5px;
font-style: normal;
color: $--color-warning;
}
}
.btn-bar .el-button {
margin: 0 15px;
}
}
@media (max-width: 767px) {
.aui-page__not-found {
.title {
font-size: 8em;
}
.desc {
font-size: 20px;
}
.btn-bar .el-button {
margin: 0 7.5px;
}
}
}

220
src/assets/scss/pages/login.scss

@ -0,0 +1,220 @@
.aui-page__login {
&::before,
&::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
content: "";
}
&::before {
background-image: url(~@/assets/img/login_bg.jpg);
background-size: cover;
}
&::after {
background-color: rgba(38, 50, 56, .4);
}
.aui-content {
display: flex;
flex-flow: column wrap;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 50px 20px 150px;
text-align: center;
&__wrapper {
height: 100vh;
background-color: transparent;
overflow-x: hidden;
overflow-y: auto;
}
}
.login-header {
padding: 20px;
color: #fff;
.login-brand {
margin: 0 0 15px;
font-size: 40px;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
}
.login-intro {
padding: 0;
margin: 0;
list-style: none;
> li {
font-size: 16px;
line-height: 1.5;
color: rgba(255, 255, 255, .6);
& + li {
margin-top: 5px;
}
}
}
}
.login-body,
.login-footer {
width: 460px;
}
.login-body {
padding: 20px 30px;
background-color: #fff;
.login-title {
font-size: 18px;
font-weight: 400;
}
.el-input__prefix .el-input__icon {
font-size: 16px;
}
.login-captcha {
height: $--input-height;
line-height: $--input-height -2px;
> img {
max-width: 100%;
cursor: pointer;
}
}
.login-shortcut {
margin-bottom: 20px;
&__title {
position: relative;
margin: 0 0 15px;
font-weight: 400;
&::before {
position: absolute;
top: 50%;
right: 0;
left: 0;
z-index: 1;
content: "";
height: 1px;
margin-top: -.5px;
background-color: $--border-color-base;
overflow: hidden;
}
> span {
position: relative;
z-index: 2;
padding: 0 20px;
color: rgba(0, 0, 0, .3);
background-color: #fff;
}
}
&__list {
padding: 0;
margin: 0;
list-style: none;
font-size: 0;
> li {
display: inline-block;
vertical-align: middle;
margin: 0 10px;
font-size: 28px;
}
}
}
.login-guide {
color: rgba(0, 0, 0, .3);
}
}
.login-footer {
position: absolute;
bottom: 0;
padding: 20px;
color: rgba(255, 255, 255, .6);
p {
margin: 10px 0;
}
a {
padding: 0 5px;
color: rgba(255, 255, 255, .6);
&:focus,
&:hover {
color: #fff;
}
}
}
// 右侧垂直风格
&--right-vertical {
.aui-content {
flex-flow: row nowrap;
justify-content: flex-start;
align-items: stretch;
padding: 0;
}
.login-header {
flex: 1;
display: flex;
flex-flow: column wrap;
justify-content: center;
padding: 30px 120px;
text-align: left;
}
.login-body {
position: relative;
display: flex;
flex-flow: column wrap;
justify-content: center;
padding: 120px 30px 150px;
text-align: center;
.login-guide {
margin-top: 0;
}
}
.login-footer {
right: 0;
color: $--color-text-regular;
a {
color: $--color-text-regular;
&:focus,
&:hover {
color: $--color-primary;
}
}
}
}
}
@media (max-width: 991px) {
.aui-page__login {
&--right-vertical {
.login-header {
padding: 30px;
}
}
}
}
@media (max-width: 767px) {
.aui-page__login {
&--right-vertical {
.login-header {
.login-brand,
.login-intro {
display: none;
}
}
}
}
}
@media (max-width: 575px) {
.aui-page__login {
.login-body,
.login-footer {
width: 100%;
}
.login-captcha {
text-align: left;
> img {
width: 136px;
}
}
&--right-vertical {
.login-header {
display: none;
}
}
}
}

22
src/assets/scss/variables.scss

@ -0,0 +1,22 @@
// Base
$base--line-height: 1.15;
// Navbar
$navbar--height: 50px;
// Sidebar
$sidebar--width: 230px;
$sidebar--width-fold: 64px;
$sidebar--background-color-dark: #263238;
$sidebar--text-color-dark: #8a979e;
$sidebar--menu-item-height: 48px;
// Content
$content--padding: 15px;
$content--background-color: #f1f4f5;
$content--card-header-height: 60px;
$content--tabs-header-height: 38px;
// Content, 填充整屏高度(非tabs状态) = 整屏高度 - 导航条高度 - aui-content上下内边距高度
$content--fill-height: calc(100vh - #{$navbar--height} - #{$content--padding * 2});
// Content, 填充整屏高度(是tabs状态) = 整屏高度 - 导航条高度 - tabs组件header高度 - tabs组件content上下内边距高度
$content--fill-height-tabs: calc(100vh - #{$navbar--height} - #{$content--tabs-header-height} - #{$content--padding * 2});

75
src/components/table-tree-column/index.vue

@ -0,0 +1,75 @@
<template>
<el-table-column :prop="prop" v-bind="$attrs">
<template slot-scope="scope">
<span @click.prevent="toggleHandle(scope.$index, scope.row)" :style="{ 'padding-left': ((scope.row._level || 0) * 10) + 'px' }">
<i :class="[ scope.row._expanded ? 'el-icon-caret-bottom' : 'el-icon-caret-right' ]" :style="{ 'visibility': hasChild(scope.row) ? 'visible' : 'hidden' }"></i>
{{ scope.row[prop] }}
</span>
</template>
</el-table-column>
</template>
<script>
import isArray from 'lodash/isArray'
export default {
name: 'table-tree-column',
props: {
prop: {
type: String
},
treeKey: {
type: String,
default: 'id'
},
parentKey: {
type: String,
default: 'pid'
},
childKey: {
type: String,
default: 'children'
}
},
methods: {
hasChild (row) {
return (isArray(row[this.childKey]) && row[this.childKey].length >= 1) || false
},
//
toggleHandle (index, row) {
if (!this.hasChild(row)) {
return false
}
var data = this.$parent.store.states.data.slice(0)
data[index]._expanded = !data[index]._expanded
if (data[index]._expanded) {
row[this.childKey].forEach(item => {
item._level = (row._level || 0) + 1
item._expanded = false
})
data = data.splice(0, index + 1).concat(row[this.childKey]).concat(data)
} else {
data = this.removeChildNode(data, row[this.treeKey])
}
this.$parent.store.commit('setData', data)
this.$nextTick(() => {
this.$parent.doLayout()
})
},
//
removeChildNode (data, pid) {
var pids = isArray(pid) ? pid : [pid]
if (pid.length <= 0) {
return data
}
var ids = []
for (var i = 0; i < data.length; i++) {
if (pids.indexOf(data[i][this.parentKey]) !== -1 && pids.indexOf(data[i][this.treeKey]) === -1) {
ids.push(data.splice(i, 1)[0][this.treeKey])
i--
}
}
return this.removeChildNode(data, ids)
}
}
}
</script>

23
src/element-ui/config.js

@ -0,0 +1,23 @@
/* eslint-disable */
/**
* 主题配置信息
*
* hasBuild 是否已构建
* true 已构建不再构建
* false未构建执行命令后会自动构建
*/
module.exports = [
{ name: 'default', color: '#409EFF', desc: '默认色', hasBuild: false },
{ name: 'cyan', color: '#0BB2D4', desc: '青色', hasBuild: false },
{ name: 'blue', color: '#3E8EF7', desc: '蓝色', hasBuild: false },
{ name: 'green', color: '#11C26D', desc: '绿色', hasBuild: false },
{ name: 'turquoise', color: '#17B3A3', desc: '蓝绿色', hasBuild: false },
{ name: 'indigo', color: '#667AFA', desc: '靛青色', hasBuild: false },
{ name: 'brown', color: '#997B71', desc: '棕色', hasBuild: false },
{ name: 'purple', color: '#9463F7', desc: '紫色', hasBuild: false },
{ name: 'gray', color: '#757575', desc: '灰色', hasBuild: false },
{ name: 'orange', color: '#EB6709', desc: '橙色', hasBuild: false },
{ name: 'pink', color: '#F74584', desc: '粉红色', hasBuild: false },
{ name: 'yellow', color: '#FCB900', desc: '黄色', hasBuild: false },
{ name: 'red', color: '#FF4C52', desc: '红色', hasBuild: false }
]

713
src/element-ui/theme-variables.scss

@ -0,0 +1,713 @@
/* Element Chalk Variables */
/* Transition
-------------------------- */
$--all-transition: all .3s cubic-bezier(.645,.045,.355,1) !default;
$--fade-transition: opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) !default;
$--fade-linear-transition: opacity 200ms linear !default;
$--md-fade-transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) !default;
$--border-transition-base: border-color .2s cubic-bezier(.645,.045,.355,1) !default;
$--color-transition-base: color .2s cubic-bezier(.645,.045,.355,1) !default;
/* Colors
-------------------------- */
$--color-white: #fff !default;
$--color-black: #000 !default;
$--color-primary: #17B3A3 !default;
$--color-primary-light-1: mix($--color-white, $--color-primary, 10%) !default; /* 53a8ff */
$--color-primary-light-2: mix($--color-white, $--color-primary, 20%) !default; /* 66b1ff */
$--color-primary-light-3: mix($--color-white, $--color-primary, 30%) !default; /* 79bbff */
$--color-primary-light-4: mix($--color-white, $--color-primary, 40%) !default; /* 8cc5ff */
$--color-primary-light-5: mix($--color-white, $--color-primary, 50%) !default; /* a0cfff */
$--color-primary-light-6: mix($--color-white, $--color-primary, 60%) !default; /* b3d8ff */
$--color-primary-light-7: mix($--color-white, $--color-primary, 70%) !default; /* c6e2ff */
$--color-primary-light-8: mix($--color-white, $--color-primary, 80%) !default; /* d9ecff */
$--color-primary-light-9: mix($--color-white, $--color-primary, 90%) !default; /* ecf5ff */
$--color-success: #67c23a !default;
$--color-warning: #e6a23c !default;
$--color-danger: #f56c6c !default;
$--color-info: #909399 !default;
$--color-success-light: mix($--color-white, $--color-success, 80%) !default;
$--color-warning-light: mix($--color-white, $--color-warning, 80%) !default;
$--color-danger-light: mix($--color-white, $--color-danger, 80%) !default;
$--color-info-light: mix($--color-white, $--color-info, 80%) !default;
$--color-success-lighter: mix($--color-white, $--color-success, 90%) !default;
$--color-warning-lighter: mix($--color-white, $--color-warning, 90%) !default;
$--color-danger-lighter: mix($--color-white, $--color-danger, 90%) !default;
$--color-info-lighter: mix($--color-white, $--color-info, 90%) !default;
$--color-text-primary: #303133 !default;
$--color-text-regular: #606266 !default;
$--color-text-secondary: #909399 !default;
$--color-text-placeholder: #c0c4cc !default;
/* Link
-------------------------- */
$--link-color: $--color-primary-light-2 !default;
$--link-hover-color: $--color-primary !default;
/* Background
-------------------------- */
$--background-color-base: #f5f7fa !default;
/* Border
-------------------------- */
$--border-width-base: 1px !default;
$--border-style-base: solid !default;
$--border-color-base: #dcdfe6 !default;
$--border-color-light: #e4e7ed !default;
$--border-color-lighter: #ebeef5 !default;
$--border-color-extra-light: #f2f6fc !default;
$--border-color-hover: $--color-text-placeholder !default;
$--border-base: $--border-width-base $--border-style-base $--border-color-base !default;
$--border-radius-base: 4px !default;
$--border-radius-small: 2px !default;
$--border-radius-circle: 100% !default;
/* Box-shadow
-------------------------- */
$--box-shadow-base: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04) !default;
$--box-shadow-dark: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .12) !default;
$--box-shadow-light: 0 2px 12px 0 rgba(0, 0, 0, 0.1) !default;
/* Fill
-------------------------- */
$--fill-base: $--color-white !default;
/* Font
-------------------------- */
$--font-path: 'fonts' !default;
$--font-size-base: 14px !default;
$--font-size-small: 13px !default;
$--font-size-large: 18px !default;
$--font-color-disabled-base: #bbb !default;
$--font-weight-primary: 500 !default;
$--font-line-height-primary: 24px !default;
/* Size
-------------------------- */
$--size-base: 14px !default;
/* z-index
-------------------------- */
$--index-normal: 1 !default;
$--index-top: 1000 !default;
$--index-popper: 2000 !default;
/* Disable base
-------------------------- */
$--disabled-fill-base: $--background-color-base !default;
$--disabled-color-base: $--color-text-placeholder !default;
$--disabled-border-base: $--border-color-light !default;
/* Icon
-------------------------- */
$--icon-color: #666 !default;
$--icon-color-base: $--color-info !default;
/* Checkbox
-------------------------- */
$--checkbox-font-size: 14px !default;
$--checkbox-font-weight: $--font-weight-primary !default;
$--checkbox-color: $--color-text-regular !default;
$--checkbox-input-height: 14px !default;
$--checkbox-input-width: 14px !default;
$--checkbox-input-border-radius: $--border-radius-small !default;
$--checkbox-input-fill: $--color-white !default;
$--checkbox-input-border: $--border-base !default;
$--checkbox-input-border-color: $--border-color-base !default;
$--checkbox-icon-color: $--color-white !default;
$--checkbox-disabled-input-border-color: $--border-color-base !default;
$--checkbox-disabled-input-fill: #edf2fc !default;
$--checkbox-disabled-icon-color: $--color-text-placeholder !default;
$--checkbox-disabled-checked-input-fill: $--border-color-extra-light !default;
$--checkbox-disabled-checked-input-border-color: $--border-color-base !default;
$--checkbox-disabled-checked-icon-color: $--color-text-placeholder !default;
$--checkbox-checked-text-color: $--color-primary !default;
$--checkbox-checked-input-border-color: $--color-primary !default;
$--checkbox-checked-input-fill: $--color-primary !default;
$--checkbox-checked-icon-color: $--fill-base !default;
$--checkbox-input-border-color-hover: $--color-primary !default;
$--checkbox-bordered-height: 40px !default;
$--checkbox-bordered-padding: 9px 20px 9px 10px !default;
$--checkbox-bordered-medium-padding: 7px 20px 7px 10px !default;
$--checkbox-bordered-small-padding: 5px 15px 5px 10px !default;
$--checkbox-bordered-mini-padding: 3px 15px 3px 10px !default;
$--checkbox-bordered-medium-input-height: 14px !default;
$--checkbox-bordered-medium-input-width: 14px !default;
$--checkbox-bordered-medium-height: 36px !default;
$--checkbox-bordered-small-input-height: 12px !default;
$--checkbox-bordered-small-input-width: 12px !default;
$--checkbox-bordered-small-height: 32px !default;
$--checkbox-bordered-mini-input-height: 12px !default;
$--checkbox-bordered-mini-input-width: 12px !default;
$--checkbox-bordered-mini-height: 28px !default;
$--checkbox-button-font-size: $--font-size-base !default;
$--checkbox-button-checked-fill: $--color-primary !default;
$--checkbox-button-checked-color: $--color-white !default;
$--checkbox-button-checked-border-color: $--color-primary !default;
/* Radio
-------------------------- */
$--radio-font-size: 14px !default;
$--radio-font-weight: $--font-weight-primary !default;
$--radio-color: $--color-text-regular !default;
$--radio-input-height: 14px !default;
$--radio-input-width: 14px !default;
$--radio-input-border-radius: $--border-radius-circle !default;
$--radio-input-fill: $--color-white !default;
$--radio-input-border: $--border-base !default;
$--radio-input-border-color: $--border-color-base !default;
$--radio-icon-color: $--color-white !default;
$--radio-disabled-input-border-color: $--disabled-border-base !default;
$--radio-disabled-input-fill: $--disabled-fill-base !default;
$--radio-disabled-icon-color: $--disabled-fill-base !default;
$--radio-disabled-checked-input-border-color: $--disabled-border-base !default;
$--radio-disabled-checked-input-fill: $--disabled-fill-base !default;
$--radio-disabled-checked-icon-color: $--color-text-placeholder !default;
$--radio-checked-text-color: $--color-primary !default;
$--radio-checked-input-border-color: $--color-primary !default;
$--radio-checked-input-fill: $--color-white !default;
$--radio-checked-icon-color: $--color-primary !default;
$--radio-input-border-color-hover: $--color-primary !default;
$--radio-bordered-height: 40px !default;
$--radio-bordered-padding: 12px 20px 0 10px !default;
$--radio-bordered-medium-padding: 10px 20px 0 10px !default;
$--radio-bordered-small-padding: 8px 15px 0 10px !default;
$--radio-bordered-mini-padding: 6px 15px 0 10px !default;
$--radio-bordered-medium-input-height: 14px !default;
$--radio-bordered-medium-input-width: 14px !default;
$--radio-bordered-medium-height: 36px !default;
$--radio-bordered-small-input-height: 12px !default;
$--radio-bordered-small-input-width: 12px !default;
$--radio-bordered-small-height: 32px !default;
$--radio-bordered-mini-input-height: 12px !default;
$--radio-bordered-mini-input-width: 12px !default;
$--radio-bordered-mini-height: 28px !default;
$--radio-button-font-size: $--font-size-base !default;
$--radio-button-checked-fill: $--color-primary !default;
$--radio-button-checked-color: $--color-white !default;
$--radio-button-checked-border-color: $--color-primary !default;
$--radio-button-disabled-checked-fill: $--border-color-extra-light !default;
/* Select
-------------------------- */
$--select-border-color-hover: $--border-color-hover !default;
$--select-disabled-border: $--disabled-border-base !default;
$--select-font-size: $--font-size-base !default;
$--select-close-hover-color: $--color-text-secondary !default;
$--select-input-color: $--color-text-placeholder !default;
$--select-multiple-input-color: #666 !default;
$--select-input-focus-background: $--color-primary !default;
$--select-input-font-size: 14px !default;
$--select-option-color: $--color-text-regular !default;
$--select-option-disabled-color: $--color-text-placeholder !default;
$--select-option-disabled-background: $--color-white !default;
$--select-option-height: 34px !default;
$--select-option-hover-background: $--background-color-base !default;
$--select-option-selected: $--color-primary !default;
$--select-option-selected-hover: $--background-color-base !default;
$--select-group-color: $--color-info !default;
$--select-group-height: 30px !default;
$--select-group-font-size: 12px !default;
$--select-dropdown-background: $--color-white !default;
$--select-dropdown-shadow: $--box-shadow-light !default;
$--select-dropdown-empty-color: #999 !default;
$--select-dropdown-max-height: 274px !default;
$--select-dropdown-padding: 6px 0 !default;
$--select-dropdown-empty-padding: 10px 0 !default;
$--select-dropdown-border: solid 1px $--border-color-light !default;
/* Alert
-------------------------- */
$--alert-padding: 8px 16px !default;
$--alert-border-radius: $--border-radius-base !default;
$--alert-title-font-size: 13px !default;
$--alert-description-font-size: 12px !default;
$--alert-close-font-size: 12px !default;
$--alert-close-customed-font-size: 13px !default;
$--alert-success-color: $--color-success-lighter !default;
$--alert-info-color: $--color-info-lighter !default;
$--alert-warning-color: $--color-warning-lighter !default;
$--alert-danger-color: $--color-danger-lighter !default;
$--alert-icon-size: 16px !default;
$--alert-icon-large-size: 28px !default;
/* Message Box
-------------------------- */
$--msgbox-width: 420px !default;
$--msgbox-border-radius: 4px !default;
$--msgbox-font-size: $--font-size-large !default;
$--msgbox-content-font-size: $--font-size-base !default;
$--msgbox-content-color: $--color-text-regular !default;
$--msgbox-error-font-size: 12px !default;
$--msgbox-padding-primary: 15px !default;
$--msgbox-success-color: $--color-success !default;
$--msgbox-info-color: $--color-info !default;
$--msgbox-warning-color: $--color-warning !default;
$--msgbox-danger-color: $--color-danger !default;
/* Message
-------------------------- */
$--message-shadow: $--box-shadow-base !default;
$--message-min-width: 380px !default;
$--message-background-color: #edf2fc !default;
$--message-padding: 15px 15px 15px 20px !default;
$--message-content-color: $--color-text-regular !default;
$--message-close-color: $--color-text-placeholder !default;
$--message-close-size: 16px !default;
$--message-close-hover-color: $--color-text-secondary !default;
$--message-success-color: $--color-success !default;
$--message-info-color: $--color-info !default;
$--message-warning-color: $--color-warning !default;
$--message-danger-color: $--color-danger !default;
/* Notification
-------------------------- */
$--notification-width: 330px !default;
$--notification-padding: 14px 26px 14px 13px !default;
$--notification-radius: 8px !default;
$--notification-shadow: $--box-shadow-light !default;
$--notification-border-color: $--border-color-lighter !default;
$--notification-icon-size: 24px !default;
$--notification-close-font-size: $--message-close-size !default;
$--notification-group-margin: 13px !default;
$--notification-font-size: $--font-size-base !default;
$--notification-color: $--color-text-regular !default;
$--notification-title-font-size: 16px !default;
$--notification-title-color: $--color-text-primary !default;
$--notification-close-color: $--color-text-secondary !default;
$--notification-close-hover-color: $--color-text-regular !default;
$--notification-success-color: $--color-success !default;
$--notification-info-color: $--color-info !default;
$--notification-warning-color: $--color-warning !default;
$--notification-danger-color: $--color-danger !default;
/* Input
-------------------------- */
$--input-font-size: $--font-size-base !default;
$--input-color: $--color-text-regular !default;
$--input-width: 140px !default;
$--input-height: 40px !default;
$--input-border: $--border-base !default;
$--input-border-color: $--border-color-base !default;
$--input-border-radius: $--border-radius-base !default;
$--input-border-color-hover: $--border-color-hover !default;
$--input-fill: $--color-white !default;
$--input-fill-disabled: $--disabled-fill-base !default;
$--input-color-disabled: $--font-color-disabled-base !default;
$--input-icon-color: $--color-text-placeholder !default;
$--input-placeholder-color: $--color-text-placeholder !default;
$--input-max-width: 314px !default;
$--input-hover-border: $--border-color-hover !default;
$--input-clear-hover-color: $--color-text-secondary !default;
$--input-focus-border: $--color-primary !default;
$--input-focus-fill: $--color-white !default;
$--input-disabled-fill: $--disabled-fill-base !default;
$--input-disabled-border: $--disabled-border-base !default;
$--input-disabled-color: $--disabled-color-base !default;
$--input-disabled-placeholder-color: $--color-text-placeholder !default;
$--input-medium-font-size: 14px !default;
$--input-medium-height: 36px !default;
$--input-small-font-size: 13px !default;
$--input-small-height: 32px !default;
$--input-mini-font-size: 12px !default;
$--input-mini-height: 28px !default;
/* Cascader
-------------------------- */
$--cascader-menu-fill: $--fill-base !default;
$--cascader-menu-font-size: $--font-size-base !default;
$--cascader-menu-radius: $--border-radius-base !default;
$--cascader-menu-border: $--border-base !default;
$--cascader-menu-border-color: $--border-color-base !default;
$--cascader-menu-border-width: $--border-width-base !default;
$--cascader-menu-color: $--color-text-regular !default;
$--cascader-menu-option-color-active: $--color-text-secondary !default;
$--cascader-menu-option-fill-active: rgba($--color-text-secondary, 0.12) !default;
$--cascader-menu-option-color-hover: $--color-text-regular !default;
$--cascader-menu-option-fill-hover: rgba($--color-text-primary, 0.06) !default;
$--cascader-menu-option-color-disabled: #999 !default;
$--cascader-menu-option-fill-disabled: rgba($--color-black, 0.06) !default;
$--cascader-menu-option-empty-color: #666 !default;
$--cascader-menu-group-color: #999 !default;
$--cascader-menu-shadow: 0 1px 2px rgba($--color-black, 0.14), 0 0 3px rgba($--color-black, 0.14) !default;
$--cascader-menu-option-pinyin-color: #999 !default;
$--cascader-menu-submenu-shadow: 1px 1px 2px rgba($--color-black, 0.14), 1px 0 2px rgba($--color-black, 0.14) !default;
/* Group
-------------------------- */
$--group-option-flex: 0 0 (1/5) * 100% !default;
$--group-option-offset-bottom: 12px !default;
$--group-option-fill-hover: rgba($--color-black, 0.06) !default;
$--group-title-color: $--color-black !default;
$--group-title-font-size: $--font-size-base !default;
$--group-title-width: 66px !default;
/* Tab
-------------------------- */
$--tab-font-size: $--font-size-base !default;
$--tab-border-line: 1px solid #e4e4e4 !default;
$--tab-header-color-active: $--color-text-secondary !default;
$--tab-header-color-hover: $--color-text-regular !default;
$--tab-header-color: $--color-text-regular !default;
$--tab-header-fill-active: rgba($--color-black, 0.06) !default;
$--tab-header-fill-hover: rgba($--color-black, 0.06) !default;
$--tab-vertical-header-width: 90px !default;
$--tab-vertical-header-count-color: $--color-white !default;
$--tab-vertical-header-count-fill: $--color-text-secondary !default;
/* Button
-------------------------- */
$--button-font-size: 14px !default;
$--button-font-weight: $--font-weight-primary !default;
$--button-border-radius: $--border-radius-base !default;
$--button-padding-vertical: 12px !default;
$--button-padding-horizontal: 20px !default;
$--button-medium-font-size: 14px !default;
$--button-medium-border-radius: $--border-radius-base !default;
$--button-medium-padding-vertical: 10px !default;
$--button-medium-padding-horizontal: 20px !default;
$--button-small-font-size: 12px !default;
$--button-small-border-radius: #{$--border-radius-base - 1} !default;
$--button-small-padding-vertical: 9px !default;
$--button-small-padding-horizontal: 15px !default;
$--button-mini-font-size: 12px !default;
$--button-mini-border-radius: #{$--border-radius-base - 1} !default;
$--button-mini-padding-vertical: 7px !default;
$--button-mini-padding-horizontal: 15px !default;
$--button-default-color: $--color-text-regular !default;
$--button-default-fill: $--color-white !default;
$--button-default-border: $--border-color-base !default;
$--button-disabled-color: $--color-text-placeholder !default;
$--button-disabled-fill: $--color-white !default;
$--button-disabled-border: $--border-color-lighter !default;
$--button-primary-border: $--color-primary !default;
$--button-primary-color: $--color-white !default;
$--button-primary-fill: $--color-primary !default;
$--button-success-border: $--color-success !default;
$--button-success-color: $--color-white !default;
$--button-success-fill: $--color-success !default;
$--button-warning-border: $--color-warning !default;
$--button-warning-color: $--color-white !default;
$--button-warning-fill: $--color-warning !default;
$--button-danger-border: $--color-danger !default;
$--button-danger-color: $--color-white !default;
$--button-danger-fill: $--color-danger !default;
$--button-info-border: $--color-info !default;
$--button-info-color: $--color-white !default;
$--button-info-fill: $--color-info !default;
$--button-hover-tint-percent: 20% !default;
$--button-active-shade-percent: 10% !default;
/* cascader
-------------------------- */
$--cascader-height: 200px !default;
/* Switch
-------------------------- */
$--switch-on-color: $--color-primary !default;
$--switch-off-color: $--border-color-base !default;
$--switch-disabled-color: $--border-color-lighter !default;
$--switch-disabled-text-color: $--color-text-placeholder !default;
$--switch-font-size: $--font-size-base !default;
$--switch-core-border-radius: 10px !default;
$--switch-width: 40px !default;
$--switch-height: 20px !default;
$--switch-button-size: 16px !default;
/* Dialog
-------------------------- */
$--dialog-background-color: $--color-primary-light-4 !default;
$--dialog-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !default;
$--dialog-close-hover-color: $--color-primary !default;
$--dialog-title-font-size: $--font-size-large !default;
$--dialog-font-size: 14px !default;
$--dialog-line-height: $--font-line-height-primary !default;
$--dialog-padding-primary: 20px !default;
/* Table
-------------------------- */
$--table-border-color: $--border-color-lighter !default;
$--table-border: 1px solid $--table-border-color !default;
$--table-text-color: $--color-text-regular !default;
$--table-header-color: $--color-text-secondary !default;
$--table-row-hover-background: $--background-color-base !default;
$--table-current-row-background: $--color-primary-light-9 !default;
$--table-header-background: $--color-white !default;
$--table-footer-background: $--color-text-placeholder !default;
$--table-fixed-box-shadow: 0 0 10px rgba(0, 0, 0, .12) !default;
/* Pagination
-------------------------- */
$--pagination-font-size: 13px !default;
$--pagination-fill: $--color-white !default;
$--pagination-color: $--color-text-primary !default;
$--pagination-border-radius: 3px !default;
$--pagination-button-color: $--color-text-primary !default;
$--pagination-button-width: 35.5px !default;
$--pagination-button-height: 28px !default;
$--pagination-button-disabled-color: $--color-text-placeholder !default;
$--pagination-button-disabled-fill: $--color-white !default;
$--pagination-hover-fill: $--color-primary !default;
$--pagination-hover-color: $--color-white !default;
/* Popover
-------------------------- */
$--popover-fill: $--color-white !default;
$--popover-font-size: $--font-size-base !default;
$--popover-border-color: $--border-color-lighter !default;
$--popover-arrow-size: 6px !default;
$--popover-padding: 12px !default;
$--popover-padding-large: 18px 20px !default;
$--popover-title-font-size: 16px !default;
$--popover-title-color: $--color-text-primary !default;
/* Tooltip
-------------------------- */
$--tooltip-fill: $--color-text-primary !default;
$--tooltip-color: $--color-white !default;
$--tooltip-font-size: 12px !default;
$--tooltip-border-color: $--color-text-primary !default;
$--tooltip-arrow-size: 6px !default;
$--tooltip-padding: 10px !default;
/* Tag
-------------------------- */
$--tag-padding: 0 10px !default;
$--tag-fill: rgba($--color-primary, 0.10) !default;
$--tag-color: $--color-primary !default;
$--tag-border: rgba($--color-primary, 0.20) !default;
$--tag-font-size: 12px !default;
$--tag-border-radius: 4px !default;
$--tag-info-fill: rgba($--color-info, 0.10) !default;
$--tag-info-border: rgba($--color-info, 0.20) !default;
$--tag-info-color: $--color-info !default;
$--tag-primary-fill: rgba($--color-primary, 0.10) !default;
$--tag-primary-border: rgba($--color-primary, 0.20) !default;
$--tag-primary-color: $--color-primary !default;
$--tag-success-fill: rgba($--color-success, 0.10) !default;
$--tag-success-border: rgba($--color-success, 0.20) !default;
$--tag-success-color: $--color-success !default;
$--tag-warning-fill: rgba($--color-warning, 0.10) !default;
$--tag-warning-border: rgba($--color-warning, 0.20) !default;
$--tag-warning-color: $--color-warning !default;
$--tag-danger-fill: rgba($--color-danger, 0.10) !default;
$--tag-danger-border: rgba($--color-danger, 0.20) !default;
$--tag-danger-color: $--color-danger !default;
/* Tree
-------------------------- */
$--tree-node-hover-color: $--background-color-base !default;
$--tree-text-color: $--color-text-regular !default;
$--tree-expand-icon-color: $--color-text-placeholder !default;
/* Dropdown
-------------------------- */
$--dropdown-menu-box-shadow: $--box-shadow-light !default;
$--dropdown-menuItem-hover-fill: $--color-primary-light-9 !default;
$--dropdown-menuItem-hover-color: $--link-color !default;
/* Badge
-------------------------- */
$--badge-fill: $--color-danger !default;
$--badge-radius: 10px !default;
$--badge-font-size: 12px !default;
$--badge-padding: 6px !default;
$--badge-size: 18px !default;
/* Card
--------------------------*/
$--card-border-color: $--border-color-lighter !default;
$--card-border-radius: 4px !default;
$--card-padding: 20px !default;
/* Slider
--------------------------*/
$--slider-main-background-color: $--color-primary !default;
$--slider-runway-background-color: $--border-color-light !default;
$--slider-button-hover-color: mix($--color-primary, black, 97%) !default;
$--slider-stop-background-color: $--color-white !default;
$--slider-disable-color: $--color-text-placeholder !default;
$--slider-margin: 16px 0 !default;
$--slider-border-radius: 3px !default;
$--slider-height: 6px !default;
$--slider-button-size: 16px !default;
$--slider-button-wrapper-size: 36px !default;
$--slider-button-wrapper-offset: -15px !default;
/* Steps
--------------------------*/
$--steps-border-color: $--disabled-border-base !default;
$--steps-border-radius: 4px !default;
$--steps-padding: 20px !default;
/* Menu
--------------------------*/
$--menu-item-font-size: $--font-size-base !default;
$--menu-item-color: $--color-text-primary !default;
$--menu-item-fill: $--color-white !default;
$--menu-item-hover-fill: $--color-primary-light-9 !default;
/* Rate
--------------------------*/
$--rate-height: 20px !default;
$--rate-font-size: $--font-size-base !default;
$--rate-icon-size: 18px !default;
$--rate-icon-margin: 6px !default;
$--rate-icon-color: $--color-text-placeholder !default;
/* DatePicker
--------------------------*/
$--datepicker-color: $--color-text-regular !default;
$--datepicker-off-color: $--color-text-placeholder !default;
$--datepicker-header-color: $--color-text-regular !default;
$--datepicker-icon-color: $--color-text-primary !default;
$--datepicker-border-color: $--disabled-border-base !default;
$--datepicker-inner-border-color: #e4e4e4 !default;
$--datepicker-inrange-color: $--border-color-extra-light !default;
$--datepicker-inrange-hover-color: $--border-color-extra-light !default;
$--datepicker-active-color: $--color-primary !default;
$--datepicker-text-hover-color: $--color-primary !default;
$--datepicker-cell-hover-color: #fff !default;
/* Loading
--------------------------*/
$--loading-spinner-size: 42px !default;
$--loading-fullscreen-spinner-size: 50px !default;
/* Scrollbar
--------------------------*/
$--scrollbar-background-color: rgba($--color-text-secondary, .3) !default;
$--scrollbar-hover-background-color: rgba($--color-text-secondary, .5) !default;
/* Carousel
--------------------------*/
$--carousel-arrow-font-size: 12px !default;
$--carousel-arrow-size: 36px !default;
$--carousel-arrow-background: rgba(31, 45, 61, 0.11) !default;
$--carousel-arrow-hover-background: rgba(31, 45, 61, 0.23) !default;
$--carousel-indicator-width: 30px !default;
$--carousel-indicator-height: 2px !default;
$--carousel-indicator-padding-horizontal: 4px !default;
$--carousel-indicator-padding-vertical: 12px !default;
$--carousel-indicator-out-color: $--border-color-hover !default;
/* Collapse
--------------------------*/
$--collapse-border-color: $--border-color-lighter !default;
$--collapse-header-height: 48px !default;
$--collapse-header-padding: 20px !default;
$--collapse-header-fill: $--color-white !default;
$--collapse-header-color: $--color-text-primary !default;
$--collapse-header-size: 13px !default;
$--collapse-content-fill: $--color-white !default;
$--collapse-content-size: 13px !default;
$--collapse-content-color: $--color-text-primary !default;
/* Transfer
--------------------------*/
$--transfer-border-color: $--border-color-lighter !default;
$--transfer-border-radius: $--border-radius-base !default;
$--transfer-panel-width: 200px !default;
$--transfer-panel-header-height: 40px !default;
$--transfer-panel-header-background: $--background-color-base !default;
$--transfer-panel-footer-height: 40px !default;
$--transfer-panel-body-height: 246px !default;
$--transfer-item-height: 30px !default;
$--transfer-item-hover-background: $--color-text-secondary !default;
$--transfer-filter-height: 32px !default;
/* Header
--------------------------*/
$--header-padding: 0 20px !default;
/* Footer
--------------------------*/
$--footer-padding: 0 20px !default;
/* Main
--------------------------*/
$--main-padding: 20px !default;
/* Break-point
--------------------------*/
$--sm: 768px !default;
$--md: 992px !default;
$--lg: 1200px !default;
$--xl: 1920px !default;
$--breakpoints: (
'xs' : (max-width: $--sm),
'sm' : (min-width: $--sm),
'md' : (min-width: $--md),
'lg' : (min-width: $--lg),
'xl' : (min-width: $--xl)
);
$--breakpoints-spec: (
'xs-only' : (max-width: $--sm - 1),
'sm-and-up' : (min-width: $--sm),
'sm-only': "(min-width: #{$--sm}) and (max-width: #{$--md} - 1)",
'sm-and-down': (max-width: $--md - 1),
'md-and-up' : (min-width: $--md),
'md-only': "(min-width: #{$--md}) and (max-width: #{$--lg } - 1)",
'md-and-down': (max-width: $--lg - 1),
'lg-and-up' : (min-width: $--lg),
'lg-only': "(min-width: #{$--lg}) and (max-width: #{$--xl } - 1)",
'lg-and-down': (max-width: $--xl - 1),
'xl-only' : (min-width: $--xl),
);

1
src/element-ui/theme/alert.css

@ -0,0 +1 @@
.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success{background-color:#f0f9eb;color:#67c23a}.el-alert--success .el-alert__description{color:#67c23a}.el-alert--info{background-color:#f4f4f5;color:#909399}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning .el-alert__description{color:#e6a23c}.el-alert--error{background-color:#fef0f0;color:#f56c6c}.el-alert--error .el-alert__description{color:#f56c6c}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.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 .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;color:#c0c4cc;opacity:1;position:absolute;top:12px;right:15px;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}

1
src/element-ui/theme/aside.css

@ -0,0 +1 @@
.el-aside{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}

1
src/element-ui/theme/autocomplete.css

File diff suppressed because one or more lines are too long

1
src/element-ui/theme/badge.css

@ -0,0 +1 @@
.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;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-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}

1
src/element-ui/theme/base.css

File diff suppressed because one or more lines are too long

0
src/element-ui/theme/breadcrumb-item.css

1
src/element-ui/theme/breadcrumb.css

@ -0,0 +1 @@
.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#17B3A3;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}

0
src/element-ui/theme/button-group.css

1
src/element-ui/theme/button.css

File diff suppressed because one or more lines are too long

1
src/element-ui/theme/card.css

@ -0,0 +1 @@
.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}

1
src/element-ui/theme/carousel-item.css

@ -0,0 +1 @@
.el-carousel__item,.el-carousel__mask{position:absolute;height:100%;top:0;left:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.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;-webkit-transition:.2s;transition:.2s}

1
src/element-ui/theme/carousel.css

@ -0,0 +1 @@
.el-carousel{overflow-x:hidden;position:relative}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:0;padding:0;z-index:2}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.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;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}

1
src/element-ui/theme/cascader.css

File diff suppressed because one or more lines are too long

0
src/element-ui/theme/checkbox-button.css

0
src/element-ui/theme/checkbox-group.css

1
src/element-ui/theme/checkbox.css

File diff suppressed because one or more lines are too long

1
src/element-ui/theme/col.css

File diff suppressed because one or more lines are too long

0
src/element-ui/theme/collapse-item.css

1
src/element-ui/theme/collapse.css

@ -0,0 +1 @@
.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-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{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item__header{height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin-right:8px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:right;line-height:48px;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#17B3A3}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save