commit 662148ca95d812de1c425ffe4df265a4d4cd2f88
Author: Eddie <102564160@qq.com>
Date: Fri Aug 6 15:07:23 2021 +0800
小说后台管理雏形
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..3454886
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,14 @@
+# https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..66e5b1b
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,7 @@
+# just a flag
+ENV = 'development'
+
+# base api
+VUE_APP_BASE_URL = '/api'
+VUE_APP_BASE_API = '/api'
+IMAGE_BASE_PATH = 'http://192.168.0.116:3200/static'
\ No newline at end of file
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..adafa3e
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,7 @@
+# just a flag
+ENV = 'production'
+
+# base api
+BASE_API = ''
+VUE_APP_BASE_API = ''
+
diff --git a/.env.staging b/.env.staging
new file mode 100644
index 0000000..f4ddf62
--- /dev/null
+++ b/.env.staging
@@ -0,0 +1,9 @@
+NODE_ENV = production
+
+# just a flag
+ENV = 'staging'
+
+# base api
+BASE_API = '/api'
+VUE_APP_BASE_API = '/stage-api'
+
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..e6529fc
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,4 @@
+build/*.js
+src/assets
+public
+dist
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..60d4382
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,276 @@
+module.exports = {
+ root: true,
+ parserOptions: {
+ parser: 'babel-eslint',
+ sourceType: 'module'
+ },
+ env: {
+ browser: true,
+ node: true,
+ es6: true
+ },
+ extends: ['plugin:vue/recommended', 'eslint:recommended'],
+
+ // add your custom rules here
+ //it is base on https://github.com/vuejs/eslint-config-vue
+ rules: {
+ 'vue/max-attributes-per-line': 'off',
+ 'vue/html-closing-bracket-newline': [
+ 0,
+ {
+ singleline: 'never',
+ multiline: 'always'
+ }
+ ],
+ 'vue/html-indent': 'off',
+ indent: [2, 4],
+ 'vue/html-self-closing': 'off',
+ 'vue/singleline-html-element-content-newline': 'off',
+ 'vue/multiline-html-element-content-newline': 'off',
+ 'vue/name-property-casing': ['error', 'PascalCase'],
+ 'vue/no-v-html': 'off',
+ 'accessor-pairs': 2,
+ 'arrow-spacing': [
+ 2,
+ {
+ before: true,
+ after: true
+ }
+ ],
+ 'block-spacing': [2, 'always'],
+ 'brace-style': [
+ 2,
+ '1tbs',
+ {
+ allowSingleLine: true
+ }
+ ],
+ camelcase: [
+ 0,
+ {
+ properties: 'always'
+ }
+ ],
+ 'comma-dangle': [2, 'never'],
+ 'comma-spacing': [
+ 2,
+ {
+ before: false,
+ after: true
+ }
+ ],
+ 'comma-style': [2, 'last'],
+ 'constructor-super': 2,
+ curly: [2, 'multi-line'],
+ 'dot-location': [2, 'property'],
+ 'eol-last': 2,
+ eqeqeq: ['error', 'always', { null: 'ignore' }],
+ 'generator-star-spacing': [
+ 2,
+ {
+ before: true,
+ after: true
+ }
+ ],
+ 'handle-callback-err': [2, '^(err|error)$'],
+ indent: [
+ 2,
+ 2,
+ {
+ SwitchCase: 1
+ }
+ ],
+ 'jsx-quotes': [2, 'prefer-single'],
+ 'key-spacing': [
+ 2,
+ {
+ beforeColon: false,
+ afterColon: true
+ }
+ ],
+ 'keyword-spacing': [
+ 2,
+ {
+ before: true,
+ after: true
+ }
+ ],
+ 'new-cap': [
+ 2,
+ {
+ newIsCap: true,
+ capIsNew: false
+ }
+ ],
+ 'new-parens': 2,
+ 'no-array-constructor': 2,
+ 'no-caller': 2,
+ 'no-console': 'off',
+ 'no-class-assign': 2,
+ 'no-cond-assign': 2,
+ 'no-const-assign': 2,
+ 'no-control-regex': 0,
+ 'no-delete-var': 2,
+ 'no-dupe-args': 2,
+ 'no-dupe-class-members': 2,
+ 'no-dupe-keys': 2,
+ 'no-duplicate-case': 2,
+ 'no-empty-character-class': 2,
+ 'no-empty-pattern': 2,
+ 'no-eval': 2,
+ 'no-ex-assign': 2,
+ 'no-extend-native': 2,
+ 'no-extra-bind': 2,
+ 'no-extra-boolean-cast': 2,
+ 'no-extra-parens': [2, 'functions'],
+ 'no-fallthrough': 2,
+ 'no-floating-decimal': 2,
+ 'no-func-assign': 2,
+ 'no-implied-eval': 2,
+ 'no-inner-declarations': [2, 'functions'],
+ 'no-invalid-regexp': 2,
+ 'no-irregular-whitespace': 2,
+ 'no-iterator': 2,
+ 'no-label-var': 2,
+ 'no-labels': [
+ 2,
+ {
+ allowLoop: false,
+ allowSwitch: false
+ }
+ ],
+ 'no-lone-blocks': 2,
+ 'no-mixed-spaces-and-tabs': 2,
+ 'no-multi-spaces': 2,
+ 'no-multi-str': 2,
+ 'no-multiple-empty-lines': [
+ 2,
+ {
+ max: 1
+ }
+ ],
+ 'no-native-reassign': 2,
+ 'no-negated-in-lhs': 2,
+ 'no-new-object': 2,
+ 'no-new-require': 2,
+ 'no-new-symbol': 2,
+ 'no-new-wrappers': 2,
+ 'no-obj-calls': 2,
+ 'no-octal': 2,
+ 'no-octal-escape': 2,
+ 'no-path-concat': 2,
+ 'no-proto': 2,
+ 'no-redeclare': 2,
+ 'no-regex-spaces': 2,
+ 'no-return-assign': [2, 'except-parens'],
+ 'no-self-assign': 2,
+ 'no-self-compare': 2,
+ 'no-sequences': 2,
+ 'no-shadow-restricted-names': 2,
+ 'no-spaced-func': 2,
+ 'no-sparse-arrays': 2,
+ 'no-this-before-super': 2,
+ 'no-throw-literal': 2,
+ 'no-trailing-spaces': 2,
+ 'no-undef': 2,
+ 'no-undef-init': 2,
+ 'no-unexpected-multiline': 2,
+ 'no-unmodified-loop-condition': 2,
+ 'no-unneeded-ternary': [
+ 2,
+ {
+ defaultAssignment: false
+ }
+ ],
+ 'no-unreachable': 2,
+ 'no-unsafe-finally': 2,
+ 'no-unused-vars': [
+ 2,
+ {
+ vars: 'all',
+ args: 'none'
+ }
+ ],
+ 'no-useless-call': 2,
+ 'no-useless-computed-key': 2,
+ 'no-useless-constructor': 2,
+ 'no-useless-escape': 0,
+ 'no-whitespace-before-property': 2,
+ 'no-with': 2,
+ 'one-var': [
+ 2,
+ {
+ initialized: 'never'
+ }
+ ],
+ 'operator-linebreak': [
+ 2,
+ 'after',
+ {
+ overrides: {
+ '?': 'before',
+ ':': 'before'
+ }
+ }
+ ],
+ 'padded-blocks': [2, 'never'],
+ quotes: [
+ 2,
+ 'single',
+ {
+ avoidEscape: true,
+ allowTemplateLiterals: true
+ }
+ ],
+ semi: [2, 'never'],
+ 'semi-spacing': [
+ 2,
+ {
+ before: false,
+ after: true
+ }
+ ],
+ 'space-before-blocks': [2, 'always'],
+ 'space-before-function-paren': 'off',
+ 'space-in-parens': [2, 'never'],
+ 'space-infix-ops': 2,
+ 'space-unary-ops': [
+ 2,
+ {
+ words: true,
+ nonwords: false
+ }
+ ],
+ 'spaced-comment': [
+ 2,
+ 'always',
+ {
+ markers: [
+ 'global',
+ 'globals',
+ 'eslint',
+ 'eslint-disable',
+ '*package',
+ '!',
+ ','
+ ]
+ }
+ ],
+ 'template-curly-spacing': [2, 'never'],
+ 'use-isnan': 2,
+ 'valid-typeof': 2,
+ 'wrap-iife': [2, 'any'],
+ 'yield-star-spacing': [2, 'both'],
+ yoda: [2, 'never'],
+ 'prefer-const': 2,
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
+ 'object-curly-spacing': [
+ 2,
+ 'always',
+ {
+ objectsInObjects: true
+ }
+ ],
+ 'array-bracket-spacing': [2, 'never']
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..08591b9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+**/*.log
+
+tests/**/coverage/
+tests/e2e/reports
+selenium-debug.log
+
+# Editor directories and files
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.local
+
+package-lock.json
+vue.config.js
+.devcontainer
\ No newline at end of file
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..7c0e856
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,5 @@
+{
+ "singleQuote": true,
+ "semi": false,
+ "space-before-function-paren": 0
+}
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f4be7a0
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js: 10
+script: npm run test
+notifications:
+ email: false
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..6151575
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017-present PanJiaChen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.es.md b/README.es.md
new file mode 100644
index 0000000..472adb6
--- /dev/null
+++ b/README.es.md
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Español | [English](./README.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md)
+
+## Introducción
+
+[vue-element-admin](https://panjiachen.github.io/vue-element-admin) es una interfáz de administración preparada para producción. Está basada en [vue](https://github.com/vuejs/vue) y usa [element-ui](https://github.com/ElemeFE/element) como conjunto de herramientas de interfáz de usuario.
+
+Vue Element Admin es una solución práctica basada en la nueva plataforma de desarrollo de vue, construida con soporte a i18 para el manejo de múltiples lenguajes, plantillas estándares para aplicaciones de negocio y un conjunto de asombrosas características. Esta herramienta ayuda a construir largas y complejas Aplicacones de una sola página (SPA). Creo que lo que necesites hacer, este proyecto te ayudará.
+
+- [Vista Prévia de la Aplicación](https://panjiachen.github.io/vue-element-admin)
+
+- [Documentación](https://panjiachen.github.io/vue-element-admin-site/)
+
+- [Canal de Gitter](https://gitter.im/vue-element-admin/discuss)
+
+- [Para Donaciones](https://panjiachen.github.io/vue-element-admin-site/donate/)
+
+- [Enlace de Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki)
+
+- [Canal de Gitee](https://panjiachen.gitee.io/vue-element-admin/)
+
+- Plantilla base recomendada para usar: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template)
+- Aplicación de Escritorio: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
+- Plantilla de Typescript: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Créditos: [@Armour](https://github.com/Armour))
+- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312)
+
+**Después de la versión `v4.1.0+`, la rama por defecto master no tendrá soporte para i18n. Por favor utilice la rama [i18n](https://github.com/PanJiaChen/vue-element-admin/tree/i18n), los cambios serán incluidos en la rama master**
+
+**la versión actual es `v4.0+` construida con `vue-cli`. Si encuentra algún problema, por favor coloque un [issue](https://github.com/PanJiaChen/vue-element-admin/issues/new). Si desea usar la versión anterior, puede cambiar de rama a [tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0), no relacionado con `vue-cli`**
+
+**Este proyecto no está soportado para versiones antigüas de navegadores (ej. IE).**
+
+## Preparación
+
+Necesita instalar [node](https://nodejs.org/) y [git](https://git-scm.com/) localmente. El proyecto es basado en [ES2015+](https://es6.ruanyifeng.com/), [vue](https://cn.vuejs.org/index.html), [vuex](https://vuex.vuejs.org/zh-cn/), [vue-router](https://router.vuejs.org/zh-cn/), [vue-cli](https://github.com/vuejs/vue-cli) , [axios](https://github.com/axios/axios) and [element-ui](https://github.com/ElemeFE/element), toda la solicitud de datos simulada se realiza a través de [Mock.js](https://github.com/nuysoft/Mock).
+Entendiendo y aprendiendo esto pudiera ayudarle con su proyecto.
+
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/PanJiaChen/vue-element-admin/tree/CodeSandbox)
+
+
+
+
+
+## Patrocinantes
+
+Sea un patrocinante y coloque su logo en nuestro LEEME en GitHub con un enlace directo a su sitio web. [[Se un Patrocinante]](https://www.patreon.com/panjiachen)
+
+Plantilla de Dashboard de administración hecha con Vue, React y Angular.
+
+## Características
+
+```
+- Iniciar / Cerrar Sesión
+
+- Permisos de Autenticación
+ - Página de Permisos
+ - Directivas de permisos
+ - Página de configuración de permisos
+ - Autenticación por dos pasos
+
+- Construcción Multi-entorno
+ - Desarrollo (dev)
+ - sit
+ - Escenario de pruebas (stage),
+ - Producción (prod)
+
+- Características Globales
+ - I18n
+ - Temas dinámicos
+ - Menu lateral dinámico (soporte a rutas multi-nivel)
+ - Barra de rutas dinámica
+ - Tags-view (Pestañas de página, Soporta operación de clic derecho)
+ - Svg Sprite
+ - Datos de simulación con Mock
+ - Pantalla completa
+ - Menu lateral responsivo
+
+- Editor
+ - Editor de Texto Enriquecido
+ - Editor Markdown
+ - Editor JSON
+
+- Excel
+ - Exportación a Excel
+ - Carga de Excel
+ - Visualización de Excel
+ - Exportación como ZIP
+
+- Tabla
+ - Tabla Dinámica
+ - Tabla con Arrastrar y Soltar
+ - Tabla de edición en línea
+
+- Páginas de Error
+ - 401
+ - 404
+
+- Componentes
+ - Carga de Avatar
+ - Botón para subir al inicio
+ - Arrastrar y Soltar (Diaglogo)
+ - Arrastrar y Soltar (Seleccionar)
+ - Arrastrar y Soltar (Kanban)
+ - Arrastrar y Soltar (Lista)
+ - Panel de división
+ - Componente para soltar archivos
+ - Adhesión de objetos
+ - Contador hasta
+
+- Ejemplo Avanzado
+- Registro de Errores
+- Tablero de indicadores
+- Página de Guías
+- ECharts (Gráficos)
+- Portapapeles
+- Convertidor de Markdown a HTML
+```
+
+## Iniciando
+
+```bash
+# clone el proyecto
+git clone https://github.com/PanJiaChen/vue-element-admin.git
+
+# vaya al directorio clonado
+cd vue-element-admin
+
+# instale las dependencias
+npm install
+
+# corra el proyecto como desarrollador
+npm run dev
+```
+
+Automáticamente se abrirá el siguiente enlace en su navegador http://localhost:9527
+
+## Construcción
+
+```bash
+# Construcción para entornos de prueba
+npm run build:stage
+
+# Construcción para entornos de producción
+npm run build:prod
+```
+
+## Avanzado
+
+```bash
+# Vista previa con efectos de entorno
+npm run preview
+
+# Vista previa con efectos + análisis de recursos estáticos
+npm run preview -- --report
+
+# Chequeo de formato de código
+npm run lint
+
+# Chequeo de formato de código y auto-corrección
+npm run lint -- --fix
+```
+
+Vaya a [Documentación](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) para mayor información
+
+## Registro de Cambios
+
+Los cambios detallados por cada liberación se encuentran en [notas de liberación](https://github.com/PanJiaChen/vue-element-admin/releases).
+
+## Demostración en línea
+
+[Vista Prévia de la Aplicación](https://panjiachen.github.io/vue-element-admin)
+
+## Donación
+
+Si este proyecto es de mucha ayuda para ti, puedes comprarle al autor un vaso de jugo :tropical_drink:
+
+![Donar](https://wpimg.wallstcn.com/bd273f0d-83a0-4ef2-92e1-9ac8ed3746b9.png)
+
+[dona por Paypal](https://www.paypal.me/panfree23)
+
+[Comprame un Café](https://www.buymeacoffee.com/Pan)
+
+## Navegadores Soportados
+
+Navegadores modernos e Internet Explorer 10+.
+
+| [ ](https://godban.github.io/browsers-support-badges/)IE / Edge | [ ](https://godban.github.io/browsers-support-badges/)Firefox | [ ](https://godban.github.io/browsers-support-badges/)Chrome | [ ](https://godban.github.io/browsers-support-badges/)Safari |
+| --------- | --------- | --------- | --------- |
+| IE10, IE11, Edge | últimas 2 versiones | últimas 2 versiones | últimas 2 versiones |
+
+## Licencia
+
+[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE)
+
+Copyright (c) 2017-presente PanJiaChen
diff --git a/README.ja.md b/README.ja.md
new file mode 100644
index 0000000..0499e82
--- /dev/null
+++ b/README.ja.md
@@ -0,0 +1,10 @@
+# 开发规范文档
+
+- 组件命名与配置
+ 1. 使用大驼峰命名组件 vue 文件,导出组件命名与文件名相同.
+ 2. 组件样式一定是要 scoped 的,以免样式冲突.
+ 3. 前端开发工具统一使用 vscode,统一使用格式化插件配置(前端群文件中).
+ 4. 组件初始模板的生成,使用统一的代码片段进行生成,不要去更改内部属性的排列顺序,删掉属性是可以的.
+- 组件编写与引用
+ 1. 通用组件标签部分,最外层标签为组件盒子,它用于隔离内在样式与外在样式的干扰.
+ 2.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/README.zh-CN.md b/README.zh-CN.md
new file mode 100644
index 0000000..bcb94e9
--- /dev/null
+++ b/README.zh-CN.md
@@ -0,0 +1,245 @@
+
+
+
+ 出现nodejieba安装错误的信息,请执行 npm install --global --production windows-build-tools ,不动的情况下就回车一下试试看.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+简体中文 | [English](./README.md) | [日本語](./README.ja.md) | [Spanish](./README.es.md)
+
+## 简介
+
+[vue-element-admin](https://panjiachen.github.io/vue-element-admin) 是一个后台前端解决方案,它基于 [vue](https://github.com/vuejs/vue) 和 [element-ui](https://github.com/ElemeFE/element)实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。
+
+- [在线预览](https://panjiachen.github.io/vue-element-admin)
+
+- [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/)
+
+- [Gitter 讨论组](https://gitter.im/vue-element-admin/discuss)
+
+- [Donate](https://panjiachen.gitee.io/vue-element-admin-site/zh/donate)
+
+- [Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki)
+
+- [Gitee](https://panjiachen.gitee.io/vue-element-admin/) 在线预览(国内用户可访问该地址)
+
+- [国内访问文档](https://panjiachen.gitee.io/vue-element-admin-site/zh/) 文档(方便没翻墙的用户查看)
+
+- 基础模板建议使用: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template)
+- 桌面端: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
+- Typescript 版: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (鸣谢: [@Armour](https://github.com/Armour))
+- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312)
+
+**`v4.1.0+`版本之后默认 master 分支将不支持国际化,有需要的请使用[i18n](https://github.com/PanJiaChen/vue-element-admin/tree/i18n)分支,它会和 master 保持同步更新**
+
+**该项目不支持低版本浏览器(如 ie),有需求请自行添加 polyfill [详情](https://github.com/PanJiaChen/vue-element-admin/wiki#babel-polyfill)**
+
+**目前版本为 `v4.0+` 基于 `vue-cli` 进行构建,若发现问题,欢迎提[issue](https://github.com/PanJiaChen/vue-element-admin/issues/new)。若你想使用旧版本,可以切换分支到[tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0),它不依赖 `vue-cli`**
+
+群主 **[圈子](https://jianshiapp.com/circles/1209)** 群主会经常分享一些技术相关的东西,或者加入 [qq 群](https://github.com/PanJiaChen/vue-element-admin/issues/602) 或者关注 [微博](https://weibo.com/u/3423485724?is_all=1)
+
+## 前序准备
+
+你需要在本地安装 [node](http://nodejs.org/) 和 [git](https://git-scm.com/)。本项目技术栈基于 [ES2015+](http://es6.ruanyifeng.com/)、[vue](https://cn.vuejs.org/index.html)、[vuex](https://vuex.vuejs.org/zh-cn/)、[vue-router](https://router.vuejs.org/zh-cn/) 、[vue-cli](https://github.com/vuejs/vue-cli) 、[axios](https://github.com/axios/axios) 和 [element-ui](https://github.com/ElemeFE/element),所有的请求数据都使用[Mock.js](https://github.com/nuysoft/Mock)进行模拟,提前了解和学习这些知识会对使用本项目有很大的帮助。
+
+同时配套了系列教程文章,如何从零构建后一个完整的后台项目,建议大家先看完这些文章再来实践本项目
+
+- [手摸手,带你用 vue 撸后台 系列一(基础篇)](https://juejin.im/post/59097cd7a22b9d0065fb61d2)
+- [手摸手,带你用 vue 撸后台 系列二(登录权限篇)](https://juejin.im/post/591aa14f570c35006961acac)
+- [手摸手,带你用 vue 撸后台 系列三 (实战篇)](https://juejin.im/post/593121aa0ce4630057f70d35)
+- [手摸手,带你用 vue 撸后台 系列四(vueAdmin 一个极简的后台基础模板)](https://juejin.im/post/595b4d776fb9a06bbe7dba56)
+- [手摸手,带你用vue撸后台 系列五(v4.0新版本)](https://juejin.im/post/5c92ff94f265da6128275a85)
+- [手摸手,带你封装一个 vue component](https://segmentfault.com/a/1190000009090836)
+- [手摸手,带你优雅的使用 icon](https://juejin.im/post/59bb864b5188257e7a427c09)
+- [手摸手,带你用合理的姿势使用 webpack4(上)](https://juejin.im/post/5b56909a518825195f499806)
+- [手摸手,带你用合理的姿势使用 webpack4(下)](https://juejin.im/post/5b5d6d6f6fb9a04fea58aabc)
+
+**如有问题请先看上述使用文档和文章,若不能满足,欢迎 issue 和 pr**
+
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/PanJiaChen/vue-element-admin/tree/CodeSandbox)
+
+
+
+
+
+## Sponsors
+
+Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]](https://www.patreon.com/panjiachen)
+
+Admin Dashboard Templates made with Vue, React and Angular.
+
+## 功能
+
+```
+- 登录 / 注销
+
+- 权限验证
+ - 页面权限
+ - 指令权限
+ - 权限配置
+ - 二步登录
+
+- 多环境发布
+ - dev
+ - sit
+ - stage
+ - prod
+
+- 全局功能
+ - 国际化多语言
+ - 多种动态换肤
+ - 动态侧边栏(支持多级路由嵌套)
+ - 动态面包屑
+ - 快捷导航(标签页)
+ - Svg Sprite 图标
+ - 本地/后端 mock 数据
+ - Screenfull全屏
+ - 自适应收缩侧边栏
+
+- 编辑器
+ - 富文本
+ - Markdown
+ - JSON 等多格式
+
+- Excel
+ - 导出excel
+ - 导入excel
+ - 前端可视化excel
+ - 导出zip
+
+- 表格
+ - 动态表格
+ - 拖拽表格
+ - 内联编辑
+
+- 错误页面
+ - 401
+ - 404
+
+- 組件
+ - 头像上传
+ - 返回顶部
+ - 拖拽Dialog
+ - 拖拽Select
+ - 拖拽看板
+ - 列表拖拽
+ - SplitPane
+ - Dropzone
+ - Sticky
+ - CountTo
+
+- 综合实例
+- 错误日志
+- Dashboard
+- 引导页
+- ECharts 图表
+- Clipboard(剪贴复制)
+- Markdown2html
+```
+
+## 开发
+
+```bash
+# 克隆项目
+git clone -b i18n git@github.com:PanJiaChen/vue-element-admin.git
+
+# 进入项目目录
+cd vue-element-admin
+
+# 安装依赖
+npm install
+
+# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
+npm install --registry=https://registry.npm.taobao.org
+
+# 启动服务
+npm run dev
+```
+
+浏览器访问 http://localhost:9527
+
+## 发布
+
+```bash
+# 构建测试环境
+npm run build:stage
+
+# 构建生产环境
+npm run build:prod
+```
+
+## 其它
+
+```bash
+# 预览发布环境效果
+npm run preview
+
+# 预览发布环境效果 + 静态资源分析
+npm run preview -- --report
+
+# 代码格式检查
+npm run lint
+
+# 代码格式检查并自动修复
+npm run lint -- --fix
+```
+
+更多信息请参考 [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/)
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](https://github.com/PanJiaChen/vue-element-admin/releases).
+
+## Online Demo
+
+[在线 Demo](https://panjiachen.github.io/vue-element-admin)
+
+## Donate
+
+如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁表示鼓励 :tropical_drink:
+![donate](https://panjiachen.github.io/donate/donation.png)
+
+[更多捐赠方式](https://panjiachen.gitee.io/vue-element-admin-site/zh/donate)
+
+[Paypal Me](https://www.paypal.me/panfree23)
+
+[Buy me a coffee](https://www.buymeacoffee.com/Pan)
+
+## 购买贴纸
+
+你也可以通过 购买[官方授权的贴纸](https://smallsticker.com/product/vue-element-admin) 的方式来支持 vue-element-admin - 每售出一张贴纸,本项目将获得 2 元的捐赠。
+
+## Browsers support
+
+Modern browsers and Internet Explorer 10+.
+
+| [ ](https://godban.github.io/browsers-support-badges/)IE / Edge | [ ](https://godban.github.io/browsers-support-badges/)Firefox | [ ](https://godban.github.io/browsers-support-badges/)Chrome | [ ](https://godban.github.io/browsers-support-badges/)Safari |
+| --------- | --------- | --------- | --------- |
+| IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
+
+## License
+
+[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE)
+
+Copyright (c) 2017-present PanJiaChen
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 0000000..fb82b27
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,14 @@
+module.exports = {
+ presets: [
+ // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
+ '@vue/cli-plugin-babel/preset'
+ ],
+ 'env': {
+ 'development': {
+ // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
+ // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
+ // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
+ 'plugins': ['dynamic-import-node']
+ }
+ }
+}
diff --git a/jest.config.js b/jest.config.js
new file mode 100644
index 0000000..143cdc8
--- /dev/null
+++ b/jest.config.js
@@ -0,0 +1,24 @@
+module.exports = {
+ moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
+ transform: {
+ '^.+\\.vue$': 'vue-jest',
+ '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
+ 'jest-transform-stub',
+ '^.+\\.jsx?$': 'babel-jest'
+ },
+ moduleNameMapper: {
+ '^@/(.*)$': '/src/$1'
+ },
+ snapshotSerializers: ['jest-serializer-vue'],
+ testMatch: [
+ '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
+ ],
+ collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
+ coverageDirectory: '/tests/unit/coverage',
+ // 'collectCoverage': true,
+ 'coverageReporters': [
+ 'lcov',
+ 'text-summary'
+ ],
+ testURL: 'http://localhost/'
+}
diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 0000000..adc4845
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,9 @@
+{
+ "compilerOptions": {
+ "baseUrl": "./",
+ "paths": {
+ "@/*": ["src/*"]
+ }
+ },
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/mock/article.js b/mock/article.js
new file mode 100644
index 0000000..23d8ba5
--- /dev/null
+++ b/mock/article.js
@@ -0,0 +1,116 @@
+const Mock = require('mockjs')
+
+const List = []
+const count = 100
+
+const baseContent = 'I am testing data, I am testing data.
'
+const image_uri = 'https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3'
+
+for (let i = 0; i < count; i++) {
+ List.push(Mock.mock({
+ id: '@increment',
+ timestamp: +Mock.Random.date('T'),
+ author: '@first',
+ reviewer: '@first',
+ title: '@title(5, 10)',
+ content_short: 'mock data',
+ content: baseContent,
+ forecast: '@float(0, 100, 2, 2)',
+ importance: '@integer(1, 3)',
+ 'type|1': ['CN', 'US', 'JP', 'EU'],
+ 'status|1': ['published', 'draft'],
+ display_time: '@datetime',
+ comment_disabled: true,
+ pageviews: '@integer(300, 5000)',
+ image_uri,
+ platforms: ['a-platform']
+ }))
+}
+
+module.exports = [
+ {
+ url: '/vue-element-admin/article/list',
+ type: 'get',
+ response: config => {
+ const { importance, type, title, page = 1, limit = 20, sort } = config.query
+
+ let mockList = List.filter(item => {
+ if (importance && item.importance !== +importance) return false
+ if (type && item.type !== type) return false
+ if (title && item.title.indexOf(title) < 0) return false
+ return true
+ })
+
+ if (sort === '-id') {
+ mockList = mockList.reverse()
+ }
+
+ const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1))
+
+ return {
+ code: 20000,
+ data: {
+ total: mockList.length,
+ items: pageList
+ }
+ }
+ }
+ },
+
+ {
+ url: '/vue-element-admin/article/detail',
+ type: 'get',
+ response: config => {
+ const { id } = config.query
+ for (const article of List) {
+ if (article.id === +id) {
+ return {
+ code: 20000,
+ data: article
+ }
+ }
+ }
+ }
+ },
+
+ {
+ url: '/vue-element-admin/article/pv',
+ type: 'get',
+ response: _ => {
+ return {
+ code: 20000,
+ data: {
+ pvData: [
+ { key: 'PC', pv: 1024 },
+ { key: 'mobile', pv: 1024 },
+ { key: 'ios', pv: 1024 },
+ { key: 'android', pv: 1024 }
+ ]
+ }
+ }
+ }
+ },
+
+ {
+ url: '/vue-element-admin/article/create',
+ type: 'post',
+ response: _ => {
+ return {
+ code: 20000,
+ data: 'success'
+ }
+ }
+ },
+
+ {
+ url: '/vue-element-admin/article/update',
+ type: 'post',
+ response: _ => {
+ return {
+ code: 20000,
+ data: 'success'
+ }
+ }
+ }
+]
+
diff --git a/mock/index.js b/mock/index.js
new file mode 100644
index 0000000..2eed65d
--- /dev/null
+++ b/mock/index.js
@@ -0,0 +1,60 @@
+const Mock = require('mockjs')
+const { param2Obj } = require('./utils')
+
+const user = require('./user')
+const role = require('./role')
+const article = require('./article')
+const search = require('./remote-search')
+
+const mocks = [
+ ...user,
+ ...role,
+ ...article,
+ ...search
+]
+
+// for front mock
+// please use it cautiously, it will redefine XMLHttpRequest,
+// which will cause many of your third-party libraries to be invalidated(like progress event).
+function mockXHR() {
+ // mock patch
+ // https://github.com/nuysoft/Mock/issues/300
+ Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
+ Mock.XHR.prototype.send = function() {
+ if (this.custom.xhr) {
+ this.custom.xhr.withCredentials = this.withCredentials || false
+
+ if (this.responseType) {
+ this.custom.xhr.responseType = this.responseType
+ }
+ }
+ this.proxy_send(...arguments)
+ }
+
+ function XHR2ExpressReqWrap(respond) {
+ return function(options) {
+ let result = null
+ if (respond instanceof Function) {
+ const { body, type, url } = options
+ // https://expressjs.com/en/4x/api.html#req
+ result = respond({
+ method: type,
+ body: JSON.parse(body),
+ query: param2Obj(url)
+ })
+ } else {
+ result = respond
+ }
+ return Mock.mock(result)
+ }
+ }
+
+ for (const i of mocks) {
+ Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
+ }
+}
+
+module.exports = {
+ mocks,
+ mockXHR
+}
diff --git a/mock/mock-server.js b/mock/mock-server.js
new file mode 100644
index 0000000..8941ec0
--- /dev/null
+++ b/mock/mock-server.js
@@ -0,0 +1,81 @@
+const chokidar = require('chokidar')
+const bodyParser = require('body-parser')
+const chalk = require('chalk')
+const path = require('path')
+const Mock = require('mockjs')
+
+const mockDir = path.join(process.cwd(), 'mock')
+
+function registerRoutes(app) {
+ let mockLastIndex
+ const { mocks } = require('./index.js')
+ const mocksForServer = mocks.map(route => {
+ return responseFake(route.url, route.type, route.response)
+ })
+ for (const mock of mocksForServer) {
+ app[mock.type](mock.url, mock.response)
+ mockLastIndex = app._router.stack.length
+ }
+ const mockRoutesLength = Object.keys(mocksForServer).length
+ return {
+ mockRoutesLength: mockRoutesLength,
+ mockStartIndex: mockLastIndex - mockRoutesLength
+ }
+}
+
+function unregisterRoutes() {
+ Object.keys(require.cache).forEach(i => {
+ if (i.includes(mockDir)) {
+ delete require.cache[require.resolve(i)]
+ }
+ })
+}
+
+// for mock server
+const responseFake = (url, type, respond) => {
+ return {
+ url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
+ type: type || 'get',
+ response(req, res) {
+ console.log('request invoke:' + req.path)
+ res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
+ }
+ }
+}
+
+module.exports = app => {
+ // parse app.body
+ // https://expressjs.com/en/4x/api.html#req.body
+ app.use(bodyParser.json())
+ app.use(bodyParser.urlencoded({
+ extended: true
+ }))
+
+ const mockRoutes = registerRoutes(app)
+ var mockRoutesLength = mockRoutes.mockRoutesLength
+ var mockStartIndex = mockRoutes.mockStartIndex
+
+ // watch files, hot reload mock server
+ chokidar.watch(mockDir, {
+ ignored: /mock-server/,
+ ignoreInitial: true
+ }).on('all', (event, path) => {
+ if (event === 'change' || event === 'add') {
+ try {
+ // remove mock routes stack
+ app._router.stack.splice(mockStartIndex, mockRoutesLength)
+
+ // clear routes cache
+ unregisterRoutes()
+
+ const mockRoutes = registerRoutes(app)
+ mockRoutesLength = mockRoutes.mockRoutesLength
+ mockStartIndex = mockRoutes.mockStartIndex
+
+ console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`))
+ } catch (error) {
+ console.log(chalk.redBright(error))
+ }
+ }
+ })
+}
diff --git a/mock/remote-search.js b/mock/remote-search.js
new file mode 100644
index 0000000..8fc4926
--- /dev/null
+++ b/mock/remote-search.js
@@ -0,0 +1,51 @@
+const Mock = require('mockjs')
+
+const NameList = []
+const count = 100
+
+for (let i = 0; i < count; i++) {
+ NameList.push(Mock.mock({
+ name: '@first'
+ }))
+}
+NameList.push({ name: 'mock-Pan' })
+
+module.exports = [
+ // username search
+ {
+ url: '/vue-element-admin/search/user',
+ type: 'get',
+ response: config => {
+ const { name } = config.query
+ const mockNameList = NameList.filter(item => {
+ const lowerCaseName = item.name.toLowerCase()
+ return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0)
+ })
+ return {
+ code: 20000,
+ data: { items: mockNameList }
+ }
+ }
+ },
+
+ // transaction list
+ {
+ url: '/vue-element-admin/transaction/list',
+ type: 'get',
+ response: _ => {
+ return {
+ code: 20000,
+ data: {
+ total: 20,
+ 'items|20': [{
+ order_no: '@guid()',
+ timestamp: +Mock.Random.date('T'),
+ username: '@name()',
+ price: '@float(1000, 15000, 0, 2)',
+ 'status|1': ['success', 'pending']
+ }]
+ }
+ }
+ }
+ }
+]
diff --git a/mock/role/index.js b/mock/role/index.js
new file mode 100644
index 0000000..4643f00
--- /dev/null
+++ b/mock/role/index.js
@@ -0,0 +1,98 @@
+const Mock = require('mockjs')
+const { deepClone } = require('../utils')
+const { asyncRoutes, constantRoutes } = require('./routes.js')
+
+const routes = deepClone([...constantRoutes, ...asyncRoutes])
+
+const roles = [
+ {
+ key: 'admin',
+ name: 'admin',
+ description: 'Super Administrator. Have access to view all pages.',
+ routes: routes
+ },
+ {
+ key: 'editor',
+ name: 'editor',
+ description: 'Normal Editor. Can see all pages except permission page',
+ routes: routes.filter(i => i.path !== '/permission')// just a mock
+ },
+ {
+ key: 'visitor',
+ name: 'visitor',
+ description: 'Just a visitor. Can only see the home page and the document page',
+ routes: [{
+ path: '',
+ redirect: 'dashboard',
+ children: [
+ {
+ path: 'dashboard',
+ name: 'Dashboard',
+ meta: { title: 'dashboard', icon: 'dashboard' }
+ }
+ ]
+ }]
+ }
+]
+
+module.exports = [
+ // mock get all routes form server
+ {
+ url: '/vue-element-admin/routes',
+ type: 'get',
+ response: _ => {
+ return {
+ code: 20000,
+ data: routes
+ }
+ }
+ },
+
+ // mock get all roles form server
+ {
+ url: '/vue-element-admin/roles',
+ type: 'get',
+ response: _ => {
+ return {
+ code: 20000,
+ data: roles
+ }
+ }
+ },
+
+ // add role
+ {
+ url: '/vue-element-admin/role',
+ type: 'post',
+ response: {
+ code: 20000,
+ data: {
+ key: Mock.mock('@integer(300, 5000)')
+ }
+ }
+ },
+
+ // update role
+ {
+ url: '/vue-element-admin/role/[A-Za-z0-9]',
+ type: 'put',
+ response: {
+ code: 20000,
+ data: {
+ status: 'success'
+ }
+ }
+ },
+
+ // delete role
+ {
+ url: '/vue-element-admin/role/[A-Za-z0-9]',
+ type: 'delete',
+ response: {
+ code: 20000,
+ data: {
+ status: 'success'
+ }
+ }
+ }
+]
diff --git a/mock/role/routes.js b/mock/role/routes.js
new file mode 100644
index 0000000..757aa38
--- /dev/null
+++ b/mock/role/routes.js
@@ -0,0 +1,530 @@
+// Just a mock data
+
+const constantRoutes = [
+ {
+ path: '/redirect',
+ component: 'layout/Layout',
+ hidden: true,
+ children: [
+ {
+ path: '/redirect/:path*',
+ component: 'views/redirect/index'
+ }
+ ]
+ },
+ {
+ path: '/login',
+ component: 'views/login/index',
+ hidden: true
+ },
+ {
+ path: '/auth-redirect',
+ component: 'views/login/auth-redirect',
+ hidden: true
+ },
+ {
+ path: '/404',
+ component: 'views/error-page/404',
+ hidden: true
+ },
+ {
+ path: '/401',
+ component: 'views/error-page/401',
+ hidden: true
+ },
+ {
+ path: '',
+ component: 'layout/Layout',
+ redirect: 'dashboard',
+ children: [
+ {
+ path: 'dashboard',
+ component: 'views/dashboard/index',
+ name: 'Dashboard',
+ meta: { title: 'dashboard', icon: 'dashboard', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/documentation',
+ component: 'layout/Layout',
+ children: [
+ {
+ path: 'index',
+ component: 'views/documentation/index',
+ name: 'Documentation',
+ meta: { title: 'documentation', icon: 'documentation', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/guide',
+ component: 'layout/Layout',
+ redirect: '/guide/index',
+ children: [
+ {
+ path: 'index',
+ component: 'views/guide/index',
+ name: 'Guide',
+ meta: { title: 'guide', icon: 'guide', noCache: true }
+ }
+ ]
+ }
+]
+
+const asyncRoutes = [
+ {
+ path: '/permission',
+ component: 'layout/Layout',
+ redirect: '/permission/index',
+ alwaysShow: true,
+ meta: {
+ title: 'permission',
+ icon: 'lock',
+ roles: ['admin', 'editor']
+ },
+ children: [
+ {
+ path: 'page',
+ component: 'views/permission/page',
+ name: 'PagePermission',
+ meta: {
+ title: 'pagePermission',
+ roles: ['admin']
+ }
+ },
+ {
+ path: 'directive',
+ component: 'views/permission/directive',
+ name: 'DirectivePermission',
+ meta: {
+ title: 'directivePermission'
+ }
+ },
+ {
+ path: 'role',
+ component: 'views/permission/role',
+ name: 'RolePermission',
+ meta: {
+ title: 'rolePermission',
+ roles: ['admin']
+ }
+ }
+ ]
+ },
+
+ {
+ path: '/icon',
+ component: 'layout/Layout',
+ children: [
+ {
+ path: 'index',
+ component: 'views/icons/index',
+ name: 'Icons',
+ meta: { title: 'icons', icon: 'icon', noCache: true }
+ }
+ ]
+ },
+
+ {
+ path: '/components',
+ component: 'layout/Layout',
+ redirect: 'noRedirect',
+ name: 'ComponentDemo',
+ meta: {
+ title: 'components',
+ icon: 'component'
+ },
+ children: [
+ {
+ path: 'tinymce',
+ component: 'views/components-demo/tinymce',
+ name: 'TinymceDemo',
+ meta: { title: 'tinymce' }
+ },
+ {
+ path: 'markdown',
+ component: 'views/components-demo/markdown',
+ name: 'MarkdownDemo',
+ meta: { title: 'markdown' }
+ },
+ {
+ path: 'json-editor',
+ component: 'views/components-demo/json-editor',
+ name: 'JsonEditorDemo',
+ meta: { title: 'jsonEditor' }
+ },
+ {
+ path: 'split-pane',
+ component: 'views/components-demo/split-pane',
+ name: 'SplitpaneDemo',
+ meta: { title: 'splitPane' }
+ },
+ {
+ path: 'avatar-upload',
+ component: 'views/components-demo/avatar-upload',
+ name: 'AvatarUploadDemo',
+ meta: { title: 'avatarUpload' }
+ },
+ {
+ path: 'dropzone',
+ component: 'views/components-demo/dropzone',
+ name: 'DropzoneDemo',
+ meta: { title: 'dropzone' }
+ },
+ {
+ path: 'sticky',
+ component: 'views/components-demo/sticky',
+ name: 'StickyDemo',
+ meta: { title: 'sticky' }
+ },
+ {
+ path: 'count-to',
+ component: 'views/components-demo/count-to',
+ name: 'CountToDemo',
+ meta: { title: 'countTo' }
+ },
+ {
+ path: 'mixin',
+ component: 'views/components-demo/mixin',
+ name: 'ComponentMixinDemo',
+ meta: { title: 'componentMixin' }
+ },
+ {
+ path: 'back-to-top',
+ component: 'views/components-demo/back-to-top',
+ name: 'BackToTopDemo',
+ meta: { title: 'backToTop' }
+ },
+ {
+ path: 'drag-dialog',
+ component: 'views/components-demo/drag-dialog',
+ name: 'DragDialogDemo',
+ meta: { title: 'dragDialog' }
+ },
+ {
+ path: 'drag-select',
+ component: 'views/components-demo/drag-select',
+ name: 'DragSelectDemo',
+ meta: { title: 'dragSelect' }
+ },
+ {
+ path: 'dnd-list',
+ component: 'views/components-demo/dnd-list',
+ name: 'DndListDemo',
+ meta: { title: 'dndList' }
+ },
+ {
+ path: 'drag-kanban',
+ component: 'views/components-demo/drag-kanban',
+ name: 'DragKanbanDemo',
+ meta: { title: 'dragKanban' }
+ }
+ ]
+ },
+ {
+ path: '/charts',
+ component: 'layout/Layout',
+ redirect: 'noRedirect',
+ name: 'Charts',
+ meta: {
+ title: 'charts',
+ icon: 'chart'
+ },
+ children: [
+ {
+ path: 'keyboard',
+ component: 'views/charts/keyboard',
+ name: 'KeyboardChart',
+ meta: { title: 'keyboardChart', noCache: true }
+ },
+ {
+ path: 'line',
+ component: 'views/charts/line',
+ name: 'LineChart',
+ meta: { title: 'lineChart', noCache: true }
+ },
+ {
+ path: 'mixchart',
+ component: 'views/charts/mixChart',
+ name: 'MixChart',
+ meta: { title: 'mixChart', noCache: true }
+ }
+ ]
+ },
+ {
+ path: '/nested',
+ component: 'layout/Layout',
+ redirect: '/nested/menu1/menu1-1',
+ name: 'Nested',
+ meta: {
+ title: 'nested',
+ icon: 'nested'
+ },
+ children: [
+ {
+ path: 'menu1',
+ component: 'views/nested/menu1/index',
+ name: 'Menu1',
+ meta: { title: 'menu1' },
+ redirect: '/nested/menu1/menu1-1',
+ children: [
+ {
+ path: 'menu1-1',
+ component: 'views/nested/menu1/menu1-1',
+ name: 'Menu1-1',
+ meta: { title: 'menu1-1' }
+ },
+ {
+ path: 'menu1-2',
+ component: 'views/nested/menu1/menu1-2',
+ name: 'Menu1-2',
+ redirect: '/nested/menu1/menu1-2/menu1-2-1',
+ meta: { title: 'menu1-2' },
+ children: [
+ {
+ path: 'menu1-2-1',
+ component: 'views/nested/menu1/menu1-2/menu1-2-1',
+ name: 'Menu1-2-1',
+ meta: { title: 'menu1-2-1' }
+ },
+ {
+ path: 'menu1-2-2',
+ component: 'views/nested/menu1/menu1-2/menu1-2-2',
+ name: 'Menu1-2-2',
+ meta: { title: 'menu1-2-2' }
+ }
+ ]
+ },
+ {
+ path: 'menu1-3',
+ component: 'views/nested/menu1/menu1-3',
+ name: 'Menu1-3',
+ meta: { title: 'menu1-3' }
+ }
+ ]
+ },
+ {
+ path: 'menu2',
+ name: 'Menu2',
+ component: 'views/nested/menu2/index',
+ meta: { title: 'menu2' }
+ }
+ ]
+ },
+
+ {
+ path: '/example',
+ component: 'layout/Layout',
+ redirect: '/example/list',
+ name: 'Example',
+ meta: {
+ title: 'example',
+ icon: 'example'
+ },
+ children: [
+ {
+ path: 'create',
+ component: 'views/example/create',
+ name: 'CreateArticle',
+ meta: { title: 'createArticle', icon: 'edit' }
+ },
+ {
+ path: 'edit/:id(\\d+)',
+ component: 'views/example/edit',
+ name: 'EditArticle',
+ meta: { title: 'editArticle', noCache: true },
+ hidden: true
+ },
+ {
+ path: 'list',
+ component: 'views/example/list',
+ name: 'ArticleList',
+ meta: { title: 'articleList', icon: 'list' }
+ }
+ ]
+ },
+
+ {
+ path: '/tab',
+ component: 'layout/Layout',
+ children: [
+ {
+ path: 'index',
+ component: 'views/tab/index',
+ name: 'Tab',
+ meta: { title: 'tab', icon: 'tab' }
+ }
+ ]
+ },
+
+ {
+ path: '/error',
+ component: 'layout/Layout',
+ redirect: 'noRedirect',
+ name: 'ErrorPages',
+ meta: {
+ title: 'errorPages',
+ icon: '404'
+ },
+ children: [
+ {
+ path: '401',
+ component: 'views/error-page/401',
+ name: 'Page401',
+ meta: { title: 'page401', noCache: true }
+ },
+ {
+ path: '404',
+ component: 'views/error-page/404',
+ name: 'Page404',
+ meta: { title: 'page404', noCache: true }
+ }
+ ]
+ },
+
+ {
+ path: '/error-log',
+ component: 'layout/Layout',
+ redirect: 'noRedirect',
+ children: [
+ {
+ path: 'log',
+ component: 'views/error-log/index',
+ name: 'ErrorLog',
+ meta: { title: 'errorLog', icon: 'bug' }
+ }
+ ]
+ },
+
+ {
+ path: '/excel',
+ component: 'layout/Layout',
+ redirect: '/excel/export-excel',
+ name: 'Excel',
+ meta: {
+ title: 'excel',
+ icon: 'excel'
+ },
+ children: [
+ {
+ path: 'export-excel',
+ component: 'views/excel/export-excel',
+ name: 'ExportExcel',
+ meta: { title: 'exportExcel' }
+ },
+ {
+ path: 'export-selected-excel',
+ component: 'views/excel/select-excel',
+ name: 'SelectExcel',
+ meta: { title: 'selectExcel' }
+ },
+ {
+ path: 'export-merge-header',
+ component: 'views/excel/merge-header',
+ name: 'MergeHeader',
+ meta: { title: 'mergeHeader' }
+ },
+ {
+ path: 'upload-excel',
+ component: 'views/excel/upload-excel',
+ name: 'UploadExcel',
+ meta: { title: 'uploadExcel' }
+ }
+ ]
+ },
+
+ {
+ path: '/zip',
+ component: 'layout/Layout',
+ redirect: '/zip/download',
+ alwaysShow: true,
+ meta: { title: 'zip', icon: 'zip' },
+ children: [
+ {
+ path: 'download',
+ component: 'views/zip/index',
+ name: 'ExportZip',
+ meta: { title: 'exportZip' }
+ }
+ ]
+ },
+
+ {
+ path: '/pdf',
+ component: 'layout/Layout',
+ redirect: '/pdf/index',
+ children: [
+ {
+ path: 'index',
+ component: 'views/pdf/index',
+ name: 'PDF',
+ meta: { title: 'pdf', icon: 'pdf' }
+ }
+ ]
+ },
+ {
+ path: '/pdf/download',
+ component: 'views/pdf/download',
+ hidden: true
+ },
+
+ {
+ path: '/theme',
+ component: 'layout/Layout',
+ redirect: 'noRedirect',
+ children: [
+ {
+ path: 'index',
+ component: 'views/theme/index',
+ name: 'Theme',
+ meta: { title: 'theme', icon: 'theme' }
+ }
+ ]
+ },
+
+ {
+ path: '/clipboard',
+ component: 'layout/Layout',
+ redirect: 'noRedirect',
+ children: [
+ {
+ path: 'index',
+ component: 'views/clipboard/index',
+ name: 'ClipboardDemo',
+ meta: { title: 'clipboardDemo', icon: 'clipboard' }
+ }
+ ]
+ },
+
+ {
+ path: '/i18n',
+ component: 'layout/Layout',
+ children: [
+ {
+ path: 'index',
+ component: 'views/i18n-demo/index',
+ name: 'I18n',
+ meta: { title: 'i18n', icon: 'international' }
+ }
+ ]
+ },
+
+ {
+ path: 'external-link',
+ component: 'layout/Layout',
+ children: [
+ {
+ path: 'https://github.com/PanJiaChen/vue-element-admin',
+ meta: { title: 'externalLink', icon: 'link' }
+ }
+ ]
+ },
+
+ { path: '*', redirect: '/404', hidden: true }
+]
+
+module.exports = {
+ constantRoutes,
+ asyncRoutes
+}
diff --git a/mock/user.js b/mock/user.js
new file mode 100644
index 0000000..e763abc
--- /dev/null
+++ b/mock/user.js
@@ -0,0 +1,85 @@
+const tokens = {
+ '19923693200': {
+ token: 'admin-token'
+ },
+ editor: {
+ token: 'editor-token'
+ }
+}
+
+const users = {
+ 'admin-token': {
+ roles: ['admin'],
+ introduction: 'I am a super administrator',
+ avatar:
+ 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
+ name: 'Super Admin'
+ },
+ 'editor-token': {
+ roles: ['editor'],
+ introduction: 'I am an editor',
+ avatar:
+ 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
+ name: 'Normal Editor'
+ }
+}
+
+module.exports = [
+ // user login
+ {
+ url: '/vue-element-admin/user/login',
+ type: 'post',
+ response: config => {
+ const { phone } = config.body
+ const token = tokens[phone]
+
+ // mock error
+ if (!token) {
+ return {
+ code: 60204,
+ message: 'Account and password are incorrect.'
+ }
+ }
+
+ return {
+ code: 20000,
+ data: token
+ }
+ }
+ },
+
+ // get user info
+ {
+ url: '/vue-element-admin/user/info.*',
+ type: 'get',
+ response: config => {
+ const { token } = config.query
+ const info = users[token]
+
+ // mock error
+ if (!info) {
+ return {
+ code: 50008,
+ message: 'Login failed, unable to get user details.'
+ }
+ }
+
+ return {
+ code: 20000,
+ data: info
+ }
+ }
+ },
+
+ // user logout
+ {
+ url: '/vue-element-admin/user/logout',
+ type: 'post',
+ response: _ => {
+ return {
+ code: 20000,
+ data: 'success'
+ }
+ }
+ }
+]
diff --git a/mock/utils.js b/mock/utils.js
new file mode 100644
index 0000000..f909a29
--- /dev/null
+++ b/mock/utils.js
@@ -0,0 +1,48 @@
+/**
+ * @param {string} url
+ * @returns {Object}
+ */
+function param2Obj(url) {
+ const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
+ if (!search) {
+ return {}
+ }
+ const obj = {}
+ const searchArr = search.split('&')
+ searchArr.forEach(v => {
+ const index = v.indexOf('=')
+ if (index !== -1) {
+ const name = v.substring(0, index)
+ const val = v.substring(index + 1, v.length)
+ obj[name] = val
+ }
+ })
+ return obj
+}
+
+/**
+ * This is just a simple version of deep copy
+ * Has a lot of edge cases bug
+ * If you want to use a perfect deep copy, use lodash's _.cloneDeep
+ * @param {Object} source
+ * @returns {Object}
+ */
+function deepClone(source) {
+ if (!source && typeof source !== 'object') {
+ throw new Error('error arguments', 'deepClone')
+ }
+ const targetObj = source.constructor === Array ? [] : {}
+ Object.keys(source).forEach(keys => {
+ if (source[keys] && typeof source[keys] === 'object') {
+ targetObj[keys] = deepClone(source[keys])
+ } else {
+ targetObj[keys] = source[keys]
+ }
+ })
+ return targetObj
+}
+
+module.exports = {
+ param2Obj,
+ deepClone
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..27ed1ab
--- /dev/null
+++ b/package.json
@@ -0,0 +1,121 @@
+{
+ "name": "funoos",
+ "version": "4.3.1",
+ "description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features",
+ "author": "Pan ",
+ "scripts": {
+ "dev": "vue-cli-service serve",
+ "lint": "eslint --ext .js,.vue src",
+ "build:prod": "vue-cli-service build",
+ "build:stage": "vue-cli-service build --mode staging",
+ "preview": "node build/index.js --preview",
+ "new": "plop",
+ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
+ "test:unit": "jest --clearCache && vue-cli-service test:unit",
+ "test:ci": "npm run lint && npm run test:unit"
+ },
+ "dependencies": {
+ "axios": "^0.21.1",
+ "bignumber.js": "^9.0.1",
+ "clipboard": "^2.0.4",
+ "codemirror": "5.45.0",
+ "core-js": "3.6.5",
+ "crypto-js": "^4.0.0",
+ "driver.js": "0.9.5",
+ "dropzone": "5.5.1",
+ "echarts": "4.2.1",
+ "element-ui": "2.13.2",
+ "file-saver": "2.0.1",
+ "fuse.js": "3.4.4",
+ "hevue-img-preview": "^3.0.0",
+ "js-cookie": "2.2.0",
+ "jsonlint": "1.6.3",
+ "jszip": "3.2.1",
+ "lodash": "^4.17.20",
+ "normalize.css": "7.0.0",
+ "nprogress": "0.2.0",
+ "path-to-regexp": "2.4.0",
+ "pinyin": "2.9.0",
+ "screenfull": "4.2.0",
+ "script-loader": "0.7.2",
+ "sortablejs": "1.8.4",
+ "tui-editor": "1.3.3",
+ "vue": "2.6.10",
+ "vue-count-to": "1.0.13",
+ "vue-i18n": "^7.3.2",
+ "vue-mini-player": "^0.2.1",
+ "vue-router": "3.0.2",
+ "vue-splitpane": "1.0.4",
+ "vuedraggable": "2.20.0",
+ "vuex": "3.1.0",
+ "xlsx": "0.14.1"
+ },
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "4.4.4",
+ "@vue/cli-plugin-eslint": "4.4.4",
+ "@vue/cli-plugin-unit-jest": "^4.5.9",
+ "@vue/cli-service": "4.4.4",
+ "@vue/test-utils": "1.0.0-beta.29",
+ "autoprefixer": "9.5.1",
+ "babel-eslint": "10.1.0",
+ "babel-jest": "^26.6.3",
+ "babel-plugin-dynamic-import-node": "2.3.3",
+ "chalk": "2.4.2",
+ "chokidar": "2.1.5",
+ "connect": "3.6.6",
+ "eslint": "6.7.2",
+ "eslint-plugin-vue": "6.2.2",
+ "html-webpack-plugin": "3.2.0",
+ "husky": "1.3.1",
+ "less": "^4.1.1",
+ "less-loader": "^7.3.0",
+ "lint-staged": "8.1.5",
+ "mockjs": "1.0.1-beta3",
+ "plop": "2.3.0",
+ "runjs": "^4.4.2",
+ "sass": "1.26.2",
+ "sass-loader": "8.0.2",
+ "sass-resources-loader": "^2.1.0",
+ "script-ext-html-webpack-plugin": "2.1.3",
+ "serve-static": "1.13.2",
+ "svg-sprite-loader": "4.1.3",
+ "svgo": "1.2.0",
+ "vue-template-compiler": "2.6.10"
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions"
+ ],
+ "bugs": {
+ "url": "https://github.com/PanJiaChen/vue-element-admin/issues"
+ },
+ "engines": {
+ "node": ">=8.9",
+ "npm": ">= 3.0.0"
+ },
+ "keywords": [
+ "vue",
+ "admin",
+ "dashboard",
+ "element-ui",
+ "boilerplate",
+ "admin-template",
+ "management-system"
+ ],
+ "license": "MIT",
+ "lint-staged": {
+ "src/**/*.{js,vue}": [
+ "eslint --fix",
+ "git add"
+ ]
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/PanJiaChen/vue-element-admin.git"
+ }
+}
diff --git a/plop-templates/component/index.hbs b/plop-templates/component/index.hbs
new file mode 100644
index 0000000..7661055
--- /dev/null
+++ b/plop-templates/component/index.hbs
@@ -0,0 +1,26 @@
+{{#if template}}
+
+
+
+{{/if}}
+
+{{#if script}}
+
+{{/if}}
+
+{{#if style}}
+
+{{/if}}
diff --git a/plop-templates/component/prompt.js b/plop-templates/component/prompt.js
new file mode 100644
index 0000000..3723e8e
--- /dev/null
+++ b/plop-templates/component/prompt.js
@@ -0,0 +1,55 @@
+const { notEmpty } = require('../utils.js')
+
+module.exports = {
+ description: 'generate vue component',
+ prompts: [{
+ type: 'input',
+ name: 'name',
+ message: 'component name please',
+ validate: notEmpty('name')
+ },
+ {
+ type: 'checkbox',
+ name: 'blocks',
+ message: 'Blocks:',
+ choices: [{
+ name: '',
+ value: 'template',
+ checked: true
+ },
+ {
+ name: '
+{{/if}}
+
+{{#if style}}
+
+{{/if}}
diff --git a/plop-templates/view/prompt.js b/plop-templates/view/prompt.js
new file mode 100644
index 0000000..1d490ee
--- /dev/null
+++ b/plop-templates/view/prompt.js
@@ -0,0 +1,55 @@
+const { notEmpty } = require('../utils.js')
+
+module.exports = {
+ description: 'generate a view',
+ prompts: [{
+ type: 'input',
+ name: 'name',
+ message: 'view name please',
+ validate: notEmpty('name')
+ },
+ {
+ type: 'checkbox',
+ name: 'blocks',
+ message: 'Blocks:',
+ choices: [{
+ name: '',
+ value: 'template',
+ checked: true
+ },
+ {
+ name: '
+
+
diff --git a/src/api/admin.js b/src/api/admin.js
new file mode 100644
index 0000000..5696497
--- /dev/null
+++ b/src/api/admin.js
@@ -0,0 +1,50 @@
+import request from '@/utils/request'
+
+/**
+ * 管理员信息
+ * @returns {AxiosPromise}
+ */
+export function getAdminInfo() {
+ return request({
+ url: '/admin/Index/userInfo',
+ method: 'get'
+ })
+}
+
+/**
+ * 更新管理员密码
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function updateAdminPwd(data) {
+ return request({
+ url: '/admin/Index/changePwd',
+ method: 'post',
+ data
+ })
+}
+
+/**
+ * 发送短信验证码
+ * @returns {AxiosPromise}
+ */
+export function sendSms() {
+ return request({
+ url: '/admin/Index/sendSms',
+ method: 'post'
+ })
+}
+
+/**
+ * 修改管理员头像
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function changeAdminAvatar(data) {
+ return request({
+ url: '/admin/Index/editHead',
+ method: 'post',
+ data
+ })
+}
+
diff --git a/src/api/app-custom-center/app-index.js b/src/api/app-custom-center/app-index.js
new file mode 100644
index 0000000..f7e6a06
--- /dev/null
+++ b/src/api/app-custom-center/app-index.js
@@ -0,0 +1,38 @@
+import request from '@/utils/request'
+
+// 首页模板编辑接口
+class IndexTemplateSet {
+ /**
+ * 首页模块获取
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5845296410083888
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+ fetchTemp(query) {
+ return request({
+ url: '/setModule/Index/saveModule',
+ method: 'get',
+ params: query
+ })
+ }
+
+ /**
+ * 首页模块保存
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5845337991068426
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+ saveModules(data) {
+ return request({
+ url: '/setModule/Index/saveModule',
+ method: 'post',
+ data
+ })
+ }
+}
+
+export default IndexTemplateSet
diff --git a/src/api/app-custom-center/index-module-list.js b/src/api/app-custom-center/index-module-list.js
new file mode 100644
index 0000000..00dcd66
--- /dev/null
+++ b/src/api/app-custom-center/index-module-list.js
@@ -0,0 +1,81 @@
+import request from '@/utils/request'
+
+/**
+ * 首页模板列表
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5845163076038930
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function fetchTemps(query) {
+ return request({
+ url: '/setModule/Index/index',
+ method: 'get',
+ params: query
+ })
+}
+
+/**
+ * /setModule/Index/index
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5845176352660570
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function addTemp(query) {
+ return request({
+ url: '/setModule/Index/index',
+ method: 'post',
+ data: query
+ })
+}
+
+/**
+ * 首页模板删除
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5845183839170036
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function deleteTemp(query) {
+ return request({
+ url: '/setModule/Index/delTemplate',
+ method: 'post',
+ data: query
+ })
+}
+
+/**
+ * 首页模板使用
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5845190544392658
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function useTemp(query) {
+ return request({
+ url: '/setModule/Index/tempUse',
+ method: 'post',
+ data: query
+ })
+}
+
+/**
+ * 首页模板复制
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5847739378702355
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function cloneTemp(query) {
+ return request({
+ url: '/setModule/Index/copySystemTemp',
+ method: 'post',
+ data: query
+ })
+}
diff --git a/src/api/app-custom-center/tab-module-list.js b/src/api/app-custom-center/tab-module-list.js
new file mode 100644
index 0000000..8fbfd72
--- /dev/null
+++ b/src/api/app-custom-center/tab-module-list.js
@@ -0,0 +1,113 @@
+import request from '@/utils/request'
+
+/**
+ * app装修底部导航条模板列表
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5454572094020418
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function fetchTemps(query) {
+ return request({
+ url: '/setModule/BottomNav/index',
+ method: 'get',
+ params: query
+ })
+}
+
+/**
+ * app装修底部导航条模板新增/修改
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5454594592208702
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function addTemp(query) {
+ return request({
+ url: '/setModule/BottomNav/index',
+ method: 'post',
+ data: query
+ })
+}
+
+/**
+ * app装修底部导航条模板删除
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5467413240339854
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function deleteTemp(query) {
+ return request({
+ url: '/setModule/BottomNav/delTemplate',
+ method: 'post',
+ data: query
+ })
+}
+
+/**
+ * app装修底部导航条模板启用/关闭
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5467393925586615
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function useTemp(query) {
+ return request({
+ url: '/setModule/BottomNav/tempUse',
+ method: 'post',
+ data: query
+ })
+}
+
+/**
+ * app装修底部导航条模块信息
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5467576782405018
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function fetchTemp(query) {
+ return request({
+ url: '/setModule/BottomNav/saveModule',
+ method: 'get',
+ params: query
+ })
+}
+
+/**
+ * app装修底部导航条模块更新
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5467657281948385
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function updateTemp(query) {
+ return request({
+ url: '/setModule/BottomNav/saveModule',
+ method: 'post',
+ data: query
+ })
+}
+
+/**
+ * app装修底部导航条模板复制
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5467439353145053
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function cloneTemp(query) {
+ return request({
+ url: '/setModule/BottomNav/copySystemTemp',
+ method: 'post',
+ data: query
+ })
+}
diff --git a/src/api/article.js b/src/api/article.js
new file mode 100644
index 0000000..c2e0129
--- /dev/null
+++ b/src/api/article.js
@@ -0,0 +1,43 @@
+import request from '@/utils/request'
+
+// 文章列表
+export function fetchList(query) {
+ return request({
+ url: '/setCenter/Article/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 文章的编辑、保存
+export function editArticle(data) {
+ return request({
+ url: '/setCenter/Article/edit',
+ method: 'post',
+ data: data
+ })
+}
+
+export function fetchPv(pv) {
+ return request({
+ url: '/vue-element-admin/article/pv',
+ method: 'get',
+ params: { pv }
+ })
+}
+
+export function createArticle(data) {
+ return request({
+ url: '/vue-element-admin/article/create',
+ method: 'post',
+ data
+ })
+}
+
+export function updateArticle(data) {
+ return request({
+ url: '/vue-element-admin/article/update',
+ method: 'post',
+ data
+ })
+}
diff --git a/src/api/components/select-module.js b/src/api/components/select-module.js
new file mode 100644
index 0000000..9d70f03
--- /dev/null
+++ b/src/api/components/select-module.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+
+/**
+ * 获取所有功能模块
+ * https://www.showdoc.com.cn/1003739271891029?page_id=5467632383127562
+ *
+ * @export
+ * @param {*} query
+ * @return {*}
+ */
+export function fetchModules(query) {
+ return request({
+ url: '/setModule/BottomNav/skipList',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/api/qiniu.js b/src/api/qiniu.js
new file mode 100644
index 0000000..a037584
--- /dev/null
+++ b/src/api/qiniu.js
@@ -0,0 +1,8 @@
+import request from '@/utils/request'
+
+export function getToken() {
+ return request({
+ url: '/qiniu/upload/token', // 假地址 自行替换
+ method: 'get'
+ })
+}
diff --git a/src/api/remote-search.js b/src/api/remote-search.js
new file mode 100644
index 0000000..02e42b4
--- /dev/null
+++ b/src/api/remote-search.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+
+export function searchUser(name) {
+ return request({
+ url: '/vue-element-admin/search/user',
+ method: 'get',
+ params: { name }
+ })
+}
+
+export function transactionList(query) {
+ return request({
+ url: '/vue-element-admin/transaction/list',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/api/role.js b/src/api/role.js
new file mode 100644
index 0000000..959bbd2
--- /dev/null
+++ b/src/api/role.js
@@ -0,0 +1,38 @@
+import request from '@/utils/request'
+
+export function getRoutes() {
+ return request({
+ url: '/vue-element-admin/routes',
+ method: 'get'
+ })
+}
+
+export function getRoles() {
+ return request({
+ url: '/vue-element-admin/roles',
+ method: 'get'
+ })
+}
+
+export function addRole(data) {
+ return request({
+ url: '/vue-element-admin/role',
+ method: 'post',
+ data
+ })
+}
+
+export function updateRole(id, data) {
+ return request({
+ url: `/vue-element-admin/role/${id}`,
+ method: 'put',
+ data
+ })
+}
+
+export function deleteRole(id) {
+ return request({
+ url: `/vue-element-admin/role/${id}`,
+ method: 'delete'
+ })
+}
diff --git a/src/api/setting-center/Authorize.js b/src/api/setting-center/Authorize.js
new file mode 100644
index 0000000..5381f48
--- /dev/null
+++ b/src/api/setting-center/Authorize.js
@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+class Authorize {
+ loadByName(authorizeName, page) {
+ let url = '/setCenter/UnionSet/unionList?type=' + authorizeName
+ if (page !== undefined) {
+ url += `&p=${page}`
+ }
+ return request({
+ url: url,
+ method: 'get'
+ // params: { webId }
+ })
+ }
+
+ updataByName(name, data) {
+ return request({
+ url: '/setCenter/ThirdParty/' + name,
+ method: 'post',
+ headers: { 'Content-Type': 'text/plain' },
+ data
+ // params: { webId }
+ })
+ }
+
+ unionUse(data) {
+ return request({
+ url: '/setCenter/UnionSet/unionUse',
+ method: 'post',
+ headers: { 'Content-Type': 'text/plain' },
+ data
+ })
+ }
+
+ unionDelete(data) {
+ return request({
+ url: '/setCenter/UnionSet/unionDel',
+ method: 'post',
+ headers: { 'Content-Type': 'text/plain' },
+ data
+ })
+ }
+}
+
+export default Authorize
diff --git a/src/api/setting-center/CommonSet.js b/src/api/setting-center/CommonSet.js
new file mode 100644
index 0000000..9f42833
--- /dev/null
+++ b/src/api/setting-center/CommonSet.js
@@ -0,0 +1,110 @@
+import request from '@/utils/request'
+import axios from 'axios'
+
+class CommonSet {
+ fetchCommonSet() {
+ return request({
+ url: '/setCenter/GeneralSet/index',
+ method: 'get'
+ // params: { webId }
+ })
+ }
+
+ updateData(data) {
+ return request({
+ url: '/setCenter/GeneralSet/index',
+ method: 'post',
+ headers: { 'Content-Type': 'text/plain' },
+ data
+ })
+ }
+
+ loadFileList(params) {
+ return request({
+ url: '/FileManage/list',
+ method: 'get',
+ params: params
+ })
+ }
+
+ /**
+ * 上传文件
+ *
+ * @param {*} file file文件
+ * @param {*} fileId 文件夹id,空为根目录
+ * @param {*} modName 模块/文件夹名称,用于直接上传时模块分类
+ * @memberof CommonSet
+ */
+ uploadFile(file, fileId, modName) {
+ var params = { saveName: file.name }
+ if (fileId) {
+ params['fileId'] = fileId
+ } else {
+ params['fileId'] = ''
+ }
+ if (modName) {
+ params['fileName'] = modName
+ } else {
+ params['fileName'] = ''
+ }
+
+ return this._getUploadToken(params).then(response => {
+ const { data } = response
+ const { key, host, scheme, token } = data
+ return this._uploadFile(
+ scheme + '://' + host,
+ 'post',
+ key,
+ token,
+ file.raw
+ )
+ })
+ }
+
+ /**
+ * 获取文件上传参数,私有方法,尽量不用调用
+ *
+ */
+ _getUploadToken(params) {
+ return request({
+ url: '/Upload/getToken',
+ method: 'post',
+ headers: { 'Content-Type': 'text/plain' },
+ data: params
+ })
+ }
+
+ // 上传文件
+ _uploadFile(url, method, filename, token, file) {
+ var formData = new FormData()
+ formData.append('key', filename)
+ formData.append('token', token)
+ formData.append('file', file)
+
+ // return request({
+ // url: '',
+ // method: method,
+ // data: formData,
+ // headers: { 'Content-Type': 'multipart/form-data' },
+ // baseURL: url
+ // })
+
+ // 使用axios请求,防止出现跨域问题导致上传失败
+ return axios(url, {
+ method: method,
+ mode: 'no-cors',
+ headers: {
+ 'Access-Control-Allow-Origin': '*',
+ 'Content-Type': 'application/json'
+ },
+
+ data: formData,
+ withCredentials: false,
+ credentials: 'same-origin'
+ }).then(response => {
+ return response.data
+ })
+ }
+}
+
+export default CommonSet
diff --git a/src/api/system-manage/annex-manage/annex-manage.js b/src/api/system-manage/annex-manage/annex-manage.js
new file mode 100644
index 0000000..dfa93f1
--- /dev/null
+++ b/src/api/system-manage/annex-manage/annex-manage.js
@@ -0,0 +1,38 @@
+
+import request from '@/utils/request'
+
+/**
+ * 文件管理列表
+ */
+export function fetchFileManageList(params) {
+ return request({
+ url: '/FileManage/list',
+ method: 'get',
+ params: params
+ })
+}
+
+/**
+ * 文件删除
+ * @param fid
+ */
+export function delFile(fid) {
+ return request({
+ url: '/FileManage/delFile',
+ method: 'post',
+ data: { fid: fid }
+ })
+}
+
+/**
+ * 创建文件夹
+ * @param fid 如果在根目录下创建fid为0
+ * @param fileName 文件夹名称
+ */
+export function createDir(fid, fileName) {
+ return request({
+ url: '/FileManage/addFile',
+ method: 'post',
+ data: { fid: fid, fileName: fileName }
+ })
+}
diff --git a/src/api/system-manage/permission-manage/admin-list.js b/src/api/system-manage/permission-manage/admin-list.js
new file mode 100644
index 0000000..3e8cf0b
--- /dev/null
+++ b/src/api/system-manage/permission-manage/admin-list.js
@@ -0,0 +1,38 @@
+
+import request from '@/utils/request'
+
+/**
+ * 管理员列表
+ * @param {请求参数} params
+ */
+export function fetchAdminList(params) {
+ return request({
+ url: '/admin/User/adminList',
+ method: 'get',
+ params: params
+ })
+}
+
+/**
+ * 保存管理员
+ * @param {{phone: ([{trigger: string, message: string, required: boolean}, {min: number, max: number, trigger: string, message: string}]|string|{label: string, value: boolean}|[{trigger: string, message: string, required: boolean}]|string), roleId: ([{trigger: string, message: string, required: boolean}]|string), memo, id: *, state: *, pwd: ([{trigger: string, message: string, required: boolean}, {min: number, max: number, trigger: string, message: string}]|default.methods.selectItem.pwd|string)}} params
+ */
+export function saveAdmin(params) {
+ return request({
+ url: '/admin/User/saveAdmin',
+ method: 'post',
+ data: params
+ })
+}
+
+/**
+ * 删除管理员
+ */
+export function delAdmin(params) {
+ return request({
+ url: '/admin/User/delAdmin',
+ method: 'post',
+ data: params
+ })
+}
+
diff --git a/src/api/system-manage/permission-manage/permission-setting.js b/src/api/system-manage/permission-manage/permission-setting.js
new file mode 100644
index 0000000..a6b9e08
--- /dev/null
+++ b/src/api/system-manage/permission-manage/permission-setting.js
@@ -0,0 +1,110 @@
+import request from '@/utils/request'
+
+/**
+ * 权限分组列表
+ */
+export function fetchRoleList(params) {
+ return request({
+ url: '/admin/Role/roleList',
+ method: 'get',
+ params: params
+ })
+}
+
+/**
+ * 权限列表
+ */
+export function fetchPermissionList(params) {
+ return request({
+ url: '/admin/Role/permission',
+ method: 'get',
+ params: params
+ })
+}
+
+/**
+ * 分组权限添加
+ */
+export function permissionSave(params) {
+ return request({
+ url: '/admin/Role/permissionSave',
+ method: 'post',
+ data: params
+ })
+}
+
+/**
+ * 保存分组
+ */
+export function roleSave(params) {
+ return request({
+ url: '/admin/role/roleSave',
+ method: 'post',
+ data: params
+ })
+}
+
+/**
+ * 分组复制
+ */
+export function copyRole(params) {
+ return request({
+ url: '/admin/role/roleCopy',
+ method: 'post',
+ data: params
+ })
+}
+
+/**
+ * 分组删除
+ */
+export function delRole(params) {
+ return request({
+ url: '/admin/Role/delRole',
+ method: 'post',
+ data: params
+ })
+}
+
+/**
+ * 权限分组操作验证码发送
+ */
+export function sendSms(params) {
+ return request({
+ url: '/admin/Role/sendSms',
+ method: 'post',
+ data: params
+ })
+}
+
+/**
+ * 权限分组操作验证码验证
+ */
+export function verifySmsCode(params) {
+ return request({
+ url: '/admin/Role/verifySmsCode',
+ method: 'post',
+ data: params
+ })
+}
+
+/** *
+ * 获取一些基础信息(菜单、手机号、购买的模块)
+ */
+export function getBase() {
+ return request({
+ url: '/admin/User/getBase',
+ method: 'get'
+ })
+}
+
+/**
+ * 获取横向菜单
+ */
+export function getCrossMenu(params) {
+ return request({
+ url: '/admin/User/getCrossMenu',
+ method: 'post',
+ data: params
+ })
+}
diff --git a/src/api/user.js b/src/api/user.js
new file mode 100644
index 0000000..d22c66c
--- /dev/null
+++ b/src/api/user.js
@@ -0,0 +1,32 @@
+import request from '@/utils/request'
+
+export function login(data) {
+ return request({
+ url: '/Login/login',
+ method: 'post',
+ data
+ })
+}
+
+export function sendCode(data) {
+ return request({
+ url: '/Login/loginSms',
+ method: 'post',
+ data
+ })
+}
+
+export function getInfo(token) {
+ return request({
+ url: '/vue-element-admin/user/info',
+ method: 'get',
+ params: { token }
+ })
+}
+
+export function logout() {
+ return request({
+ url: '/Login/logout',
+ method: 'post'
+ })
+}
diff --git a/src/assets/401_images/401.gif b/src/assets/401_images/401.gif
new file mode 100644
index 0000000..cd6e0d9
Binary files /dev/null and b/src/assets/401_images/401.gif differ
diff --git a/src/assets/404_images/404.png b/src/assets/404_images/404.png
new file mode 100644
index 0000000..3d8e230
Binary files /dev/null and b/src/assets/404_images/404.png differ
diff --git a/src/assets/404_images/404_cloud.png b/src/assets/404_images/404_cloud.png
new file mode 100644
index 0000000..c6281d0
Binary files /dev/null and b/src/assets/404_images/404_cloud.png differ
diff --git a/src/assets/custom-theme/fonts/element-icons.ttf b/src/assets/custom-theme/fonts/element-icons.ttf
new file mode 100644
index 0000000..570a3e1
Binary files /dev/null and b/src/assets/custom-theme/fonts/element-icons.ttf differ
diff --git a/src/assets/custom-theme/fonts/element-icons.woff b/src/assets/custom-theme/fonts/element-icons.woff
new file mode 100644
index 0000000..c2bcc00
Binary files /dev/null and b/src/assets/custom-theme/fonts/element-icons.woff differ
diff --git a/src/assets/custom-theme/index.css b/src/assets/custom-theme/index.css
new file mode 100644
index 0000000..15bbab4
--- /dev/null
+++ b/src/assets/custom-theme/index.css
@@ -0,0 +1,23252 @@
+@charset "UTF-8";
+
+.custom-theme .fade-in-linear-enter-active,
+.custom-theme .fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .fade-in-linear-enter,
+.custom-theme .fade-in-linear-leave,
+.custom-theme .fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-linear-enter-active,
+.custom-theme .el-fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .el-fade-in-linear-enter,
+.custom-theme .el-fade-in-linear-leave,
+.custom-theme .el-fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-enter-active,
+.custom-theme .el-fade-in-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-fade-in-enter,
+.custom-theme .el-fade-in-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-zoom-in-center-enter-active,
+.custom-theme .el-zoom-in-center-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-zoom-in-center-enter,
+.custom-theme .el-zoom-in-center-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleX(0);
+ transform: scaleX(0);
+}
+
+.custom-theme .el-zoom-in-top-enter-active,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center top;
+ transform-origin: center top;
+}
+
+.custom-theme .el-zoom-in-top-enter,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-bottom-enter-active,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+}
+
+.custom-theme .el-zoom-in-bottom-enter,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-left-enter-active,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 1;
+ -webkit-transform: scale(1, 1);
+ transform: scale(1, 1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+}
+
+.custom-theme .el-zoom-in-left-enter,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 0;
+ -webkit-transform: scale(0.45, 0.45);
+ transform: scale(0.45, 0.45);
+}
+
+.custom-theme .collapse-transition {
+ -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+ transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+}
+
+.custom-theme .horizontal-collapse-transition {
+ -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+ transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+}
+
+.custom-theme .el-list-enter-active,
+.custom-theme .el-list-leave-active {
+ -webkit-transition: all 1s;
+ transition: all 1s;
+}
+
+.custom-theme .el-list-enter,
+.custom-theme .el-list-leave-active {
+ opacity: 0;
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+}
+
+.custom-theme .el-opacity-transition {
+ -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+@font-face {
+ font-family: element-icons;
+ src: url(fonts/element-icons.woff?t=1508751886602) format('woff'),
+ url(fonts/element-icons.ttf?t=1508751886602) format('truetype');
+ font-weight: 400;
+ font-style: normal;
+}
+
+.custom-theme [class*=' el-icon-'],
+.custom-theme [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;
+}
+
+.custom-theme .el-icon-upload:before {
+ content: '\e60d';
+}
+
+.custom-theme .el-icon-error:before {
+ content: '\e62c';
+}
+
+.custom-theme .el-icon-success:before {
+ content: '\e62d';
+}
+
+.custom-theme .el-icon-warning:before {
+ content: '\e62e';
+}
+
+.custom-theme .el-icon-sort-down:before {
+ content: '\e630';
+}
+
+.custom-theme .el-icon-sort-up:before {
+ content: '\e631';
+}
+
+.custom-theme .el-icon-arrow-left:before {
+ content: '\e600';
+}
+
+.custom-theme .el-icon-circle-plus:before {
+ content: '\e601';
+}
+
+.custom-theme .el-icon-circle-plus-outline:before {
+ content: '\e602';
+}
+
+.custom-theme .el-icon-arrow-down:before {
+ content: '\e603';
+}
+
+.custom-theme .el-icon-arrow-right:before {
+ content: '\e604';
+}
+
+.custom-theme .el-icon-arrow-up:before {
+ content: '\e605';
+}
+
+.custom-theme .el-icon-back:before {
+ content: '\e606';
+}
+
+.custom-theme .el-icon-circle-close:before {
+ content: '\e607';
+}
+
+.custom-theme .el-icon-date:before {
+ content: '\e608';
+}
+
+.custom-theme .el-icon-circle-close-outline:before {
+ content: '\e609';
+}
+
+.custom-theme .el-icon-caret-left:before {
+ content: '\e60a';
+}
+
+.custom-theme .el-icon-caret-bottom:before {
+ content: '\e60b';
+}
+
+.custom-theme .el-icon-caret-top:before {
+ content: '\e60c';
+}
+
+.custom-theme .el-icon-caret-right:before {
+ content: '\e60e';
+}
+
+.custom-theme .el-icon-close:before {
+ content: '\e60f';
+}
+
+.custom-theme .el-icon-d-arrow-left:before {
+ content: '\e610';
+}
+
+.custom-theme .el-icon-check:before {
+ content: '\e611';
+}
+
+.custom-theme .el-icon-delete:before {
+ content: '\e612';
+}
+
+.custom-theme .el-icon-d-arrow-right:before {
+ content: '\e613';
+}
+
+.custom-theme .el-icon-document:before {
+ content: '\e614';
+}
+
+.custom-theme .el-icon-d-caret:before {
+ content: '\e615';
+}
+
+.custom-theme .el-icon-edit-outline:before {
+ content: '\e616';
+}
+
+.custom-theme .el-icon-download:before {
+ content: '\e617';
+}
+
+.custom-theme .el-icon-goods:before {
+ content: '\e618';
+}
+
+.custom-theme .el-icon-search:before {
+ content: '\e619';
+}
+
+.custom-theme .el-icon-info:before {
+ content: '\e61a';
+}
+
+.custom-theme .el-icon-message:before {
+ content: '\e61b';
+}
+
+.custom-theme .el-icon-edit:before {
+ content: '\e61c';
+}
+
+.custom-theme .el-icon-location:before {
+ content: '\e61d';
+}
+
+.custom-theme .el-icon-loading:before {
+ content: '\e61e';
+}
+
+.custom-theme .el-icon-location-outline:before {
+ content: '\e61f';
+}
+
+.custom-theme .el-icon-menu:before {
+ content: '\e620';
+}
+
+.custom-theme .el-icon-minus:before {
+ content: '\e621';
+}
+
+.custom-theme .el-icon-bell:before {
+ content: '\e622';
+}
+
+.custom-theme .el-icon-mobile-phone:before {
+ content: '\e624';
+}
+
+.custom-theme .el-icon-news:before {
+ content: '\e625';
+}
+
+.custom-theme .el-icon-more:before {
+ content: '\e646';
+}
+
+.custom-theme .el-icon-more-outline:before {
+ content: '\e626';
+}
+
+.custom-theme .el-icon-phone:before {
+ content: '\e627';
+}
+
+.custom-theme .el-icon-phone-outline:before {
+ content: '\e628';
+}
+
+.custom-theme .el-icon-picture:before {
+ content: '\e629';
+}
+
+.custom-theme .el-icon-picture-outline:before {
+ content: '\e62a';
+}
+
+.custom-theme .el-icon-plus:before {
+ content: '\e62b';
+}
+
+.custom-theme .el-icon-printer:before {
+ content: '\e62f';
+}
+
+.custom-theme .el-icon-rank:before {
+ content: '\e632';
+}
+
+.custom-theme .el-icon-refresh:before {
+ content: '\e633';
+}
+
+.custom-theme .el-icon-question:before {
+ content: '\e634';
+}
+
+.custom-theme .el-icon-remove:before {
+ content: '\e635';
+}
+
+.custom-theme .el-icon-share:before {
+ content: '\e636';
+}
+
+.custom-theme .el-icon-star-on:before {
+ content: '\e637';
+}
+
+.custom-theme .el-icon-setting:before {
+ content: '\e638';
+}
+
+.custom-theme .el-icon-circle-check:before {
+ content: '\e639';
+}
+
+.custom-theme .el-icon-service:before {
+ content: '\e63a';
+}
+
+.custom-theme .el-icon-sold-out:before {
+ content: '\e63b';
+}
+
+.custom-theme .el-icon-remove-outline:before {
+ content: '\e63c';
+}
+
+.custom-theme .el-icon-star-off:before {
+ content: '\e63d';
+}
+
+.custom-theme .el-icon-circle-check-outline:before {
+ content: '\e63e';
+}
+
+.custom-theme .el-icon-tickets:before {
+ content: '\e63f';
+}
+
+.custom-theme .el-icon-sort:before {
+ content: '\e640';
+}
+
+.custom-theme .el-icon-zoom-in:before {
+ content: '\e641';
+}
+
+.custom-theme .el-icon-time:before {
+ content: '\e642';
+}
+
+.custom-theme .el-icon-view:before {
+ content: '\e643';
+}
+
+.custom-theme .el-icon-upload2:before {
+ content: '\e644';
+}
+
+.custom-theme .el-icon-zoom-out:before {
+ content: '\e645';
+}
+
+.custom-theme .el-icon-loading {
+ -webkit-animation: rotating 2s linear infinite;
+ animation: rotating 2s linear infinite;
+}
+
+.custom-theme .el-icon--right {
+ margin-left: 5px;
+}
+
+.custom-theme .el-icon--left {
+ margin-right: 5px;
+}
+
+@-webkit-keyframes rotating {
+ 0% {
+ -webkit-transform: rotateZ(0);
+ transform: rotateZ(0);
+ }
+
+ 100% {
+ -webkit-transform: rotateZ(360deg);
+ transform: rotateZ(360deg);
+ }
+}
+
+@keyframes rotating {
+ 0% {
+ -webkit-transform: rotateZ(0);
+ transform: rotateZ(0);
+ }
+
+ 100% {
+ -webkit-transform: rotateZ(360deg);
+ transform: rotateZ(360deg);
+ }
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .el-select-dropdown {
+ position: absolute;
+ z-index: 1001;
+ border: solid 1px #dfe4ed;
+ border-radius: 4px;
+ background-color: #fff;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 5px 0;
+}
+
+.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
+ color: #262729;
+ background-color: #fff;
+}
+
+.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after {
+ position: absolute;
+ right: 20px;
+ font-family: element-icons;
+ content: '\E611';
+ font-size: 12px;
+ font-weight: 700;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.custom-theme .el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list {
+ padding: 0;
+}
+
+.custom-theme .el-select-dropdown .popper__arrow {
+ -webkit-transform: translateX(-400%);
+ transform: translateX(-400%);
+}
+
+.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow {
+ -webkit-transform: translateX(-200%);
+ transform: translateX(-200%);
+}
+
+.custom-theme .el-select-dropdown__empty {
+ padding: 10px 0;
+ margin: 0;
+ text-align: center;
+ color: #999;
+ font-size: 14px;
+}
+
+.custom-theme .el-select-dropdown__wrap {
+ max-height: 274px;
+}
+
+.custom-theme .el-select-dropdown__list {
+ list-style: none;
+ padding: 6px 0;
+ margin: 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-tag {
+ background-color: rgba(38, 39, 41, 0.1);
+ display: inline-block;
+ padding: 0 10px;
+ height: 32px;
+ line-height: 30px;
+ font-size: 12px;
+ color: #262729;
+ border-radius: 4px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid rgba(38, 39, 41, 0.2);
+ white-space: nowrap;
+}
+
+.custom-theme .el-tag .el-icon-close {
+ border-radius: 50%;
+ text-align: center;
+ position: relative;
+ cursor: pointer;
+ font-size: 12px;
+ height: 18px;
+ width: 18px;
+ line-height: 18px;
+ vertical-align: middle;
+ top: -1px;
+ right: -5px;
+ color: #262729;
+}
+
+.custom-theme .el-tag .el-icon-close::before {
+ display: block;
+}
+
+.custom-theme .el-tag .el-icon-close:hover {
+ background-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-tag--info {
+ background-color: rgba(10, 118, 164, 0.1);
+ border-color: rgba(10, 118, 164, 0.2);
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info.is-hit {
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close {
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close:hover {
+ background-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-tag--success {
+ background-color: rgba(64, 145, 103, 0.1);
+ border-color: rgba(64, 145, 103, 0.2);
+ color: #409167;
+}
+
+.custom-theme .el-tag--success.is-hit {
+ border-color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close {
+ color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close:hover {
+ background-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-tag--warning {
+ background-color: rgba(157, 164, 8, 0.1);
+ border-color: rgba(157, 164, 8, 0.2);
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning.is-hit {
+ border-color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close {
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close:hover {
+ background-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-tag--danger {
+ background-color: rgba(179, 69, 14, 0.1);
+ border-color: rgba(179, 69, 14, 0.2);
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger.is-hit {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close {
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close:hover {
+ background-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-tag--medium {
+ height: 28px;
+ line-height: 26px;
+}
+
+.custom-theme .el-tag--medium .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--small {
+ height: 24px;
+ padding: 0 8px;
+ line-height: 22px;
+}
+
+.custom-theme .el-tag--small .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--mini {
+ height: 20px;
+ padding: 0 5px;
+ line-height: 19px;
+}
+
+.custom-theme .el-tag--mini .el-icon-close {
+ margin-left: -3px;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.custom-theme .el-select-dropdown__item {
+ font-size: 14px;
+ padding: 0 20px;
+ position: relative;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ color: #5a5e66;
+ height: 34px;
+ line-height: 34px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ cursor: pointer;
+}
+
+.custom-theme .el-select-dropdown__item.is-disabled {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-select-dropdown__item.is-disabled:hover {
+ background-color: #fff;
+}
+
+.custom-theme .el-select-dropdown__item.hover,
+.custom-theme .el-select-dropdown__item:hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-select-dropdown__item.selected {
+ color: #262729;
+ font-weight: 700;
+}
+
+.custom-theme .el-select-dropdown__item span {
+ line-height: 34px !important;
+}
+
+.custom-theme .el-select-group {
+ margin: 0;
+ padding: 0;
+}
+
+.custom-theme .el-select-group__wrap {
+ position: relative;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.custom-theme .el-select-group__wrap:not(:last-of-type) {
+ padding-bottom: 24px;
+}
+
+.custom-theme .el-select-group__wrap:not(:last-of-type)::after {
+ content: '';
+ position: absolute;
+ display: block;
+ left: 20px;
+ right: 20px;
+ bottom: 12px;
+ height: 1px;
+ background: #dfe4ed;
+}
+
+.custom-theme .el-select-group__title {
+ padding-left: 20px;
+ font-size: 12px;
+ color: #0a76a4;
+ line-height: 30px;
+}
+
+.custom-theme .el-select-group .el-select-dropdown__item {
+ padding-left: 20px;
+}
+
+.custom-theme .el-scrollbar {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-scrollbar:active>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:hover>.el-scrollbar__bar {
+ opacity: 1;
+ -webkit-transition: opacity 340ms ease-out;
+ transition: opacity 340ms ease-out;
+}
+
+.custom-theme .el-scrollbar__wrap {
+ overflow: scroll;
+ height: 100%;
+}
+
+.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-scrollbar__thumb {
+ position: relative;
+ display: block;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ border-radius: inherit;
+ background-color: rgba(135, 141, 153, 0.3);
+ -webkit-transition: 0.3s background-color;
+ transition: 0.3s background-color;
+}
+
+.custom-theme .el-scrollbar__thumb:hover {
+ background-color: rgba(135, 141, 153, 0.5);
+}
+
+.custom-theme .el-scrollbar__bar {
+ position: absolute;
+ right: 2px;
+ bottom: 2px;
+ z-index: 1;
+ border-radius: 4px;
+ opacity: 0;
+ -webkit-transition: opacity 120ms ease-out;
+ transition: opacity 120ms ease-out;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical {
+ width: 6px;
+ top: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical>div {
+ width: 100%;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal {
+ height: 6px;
+ left: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal>div {
+ height: 100%;
+}
+
+.custom-theme .el-select {
+ display: inline-block;
+ position: relative;
+}
+
+.custom-theme .el-select:hover .el-input__inner {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-select .el-input__inner {
+ cursor: pointer;
+ padding-right: 35px;
+}
+
+.custom-theme .el-select .el-input__inner:focus {
+ border-color: #262729;
+}
+
+.custom-theme .el-select .el-input .el-select__caret {
+ color: #b4bccc;
+ font-size: 14px;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+ -webkit-transform: rotateZ(180deg);
+ transform: rotateZ(180deg);
+ line-height: 16px;
+ cursor: pointer;
+}
+
+.custom-theme .el-select .el-input .el-select__caret.is-reverse {
+ -webkit-transform: rotateZ(0);
+ transform: rotateZ(0);
+}
+
+.custom-theme .el-select .el-input .el-select__caret.is-show-close {
+ font-size: 14px;
+ text-align: center;
+ -webkit-transform: rotateZ(180deg);
+ transform: rotateZ(180deg);
+ border-radius: 100%;
+ color: #b4bccc;
+ -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover {
+ color: #878d99;
+}
+
+.custom-theme .el-select .el-input.is-disabled .el-input__inner {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover {
+ border-color: #dfe4ed;
+}
+
+.custom-theme .el-select>.el-input {
+ display: block;
+}
+
+.custom-theme .el-select__input {
+ border: none;
+ outline: 0;
+ padding: 0;
+ margin-left: 15px;
+ color: #666;
+ font-size: 14px;
+ vertical-align: baseline;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ height: 28px;
+ background-color: transparent;
+}
+
+.custom-theme .el-select__input.is-mini {
+ height: 14px;
+}
+
+.custom-theme .el-select__close {
+ cursor: pointer;
+ position: absolute;
+ top: 8px;
+ z-index: 1000;
+ right: 25px;
+ color: #b4bccc;
+ line-height: 18px;
+ font-size: 14px;
+}
+
+.custom-theme .el-select__close:hover {
+ color: #878d99;
+}
+
+.custom-theme .el-select__tags {
+ position: absolute;
+ line-height: normal;
+ white-space: normal;
+ z-index: 1;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+}
+
+.custom-theme .el-select .el-tag__close {
+ margin-top: -2px;
+}
+
+.custom-theme .el-select .el-tag {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-color: transparent;
+ margin: 3px 0 3px 6px;
+ background-color: #f0f2f5;
+}
+
+.custom-theme .el-select .el-tag__close.el-icon-close {
+ background-color: #b4bccc;
+ right: -7px;
+ color: #fff;
+}
+
+.custom-theme .el-select .el-tag__close.el-icon-close:hover {
+ background-color: #878d99;
+}
+
+.custom-theme .el-select .el-tag__close.el-icon-close::before {
+ display: block;
+ -webkit-transform: translate(0, 0.5px);
+ transform: translate(0, 0.5px);
+}
+
+.custom-theme .el-select__tag {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ font-size: 14px;
+ border-radius: 4px;
+ color: #fff;
+ background-color: #262729;
+}
+
+.custom-theme .el-select__tag .el-icon-close {
+ font-size: 14px;
+}
+
+.custom-theme .el-pagination {
+ white-space: nowrap;
+ padding: 2px 5px;
+ color: #2d2f33;
+ font-weight: 700;
+}
+
+.custom-theme .el-pagination::after,
+.custom-theme .el-pagination::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-pagination::after {
+ clear: both;
+}
+
+.custom-theme .el-pagination button,
+.custom-theme .el-pagination span:not([class*='suffix']) {
+ display: inline-block;
+ font-size: 13px;
+ min-width: 35.5px;
+ height: 28px;
+ line-height: 28px;
+ vertical-align: top;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-pagination .el-input__inner {
+ text-align: center;
+}
+
+.custom-theme .el-pagination .el-input__suffix {
+ right: 0;
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-pagination .el-select .el-input {
+ width: 100px;
+ margin: 0 5px;
+}
+
+.custom-theme .el-pagination .el-select .el-input .el-input__inner {
+ padding-right: 25px;
+ border-radius: 3px;
+ height: 28px;
+}
+
+.custom-theme .el-pagination button {
+ border: none;
+ padding: 0 6px;
+ background: 0 0;
+}
+
+.custom-theme .el-pagination button:focus {
+ outline: 0;
+}
+
+.custom-theme .el-pagination button:hover {
+ color: #262729;
+}
+
+.custom-theme .el-pagination button.disabled {
+ color: #b4bccc;
+ background-color: #fff;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-pagination .btn-next,
+.custom-theme .el-pagination .btn-prev {
+ background: center center no-repeat;
+ background-size: 16px;
+ background-color: #fff;
+ cursor: pointer;
+ margin: 0;
+ color: #2d2f33;
+}
+
+.custom-theme .el-pagination .btn-next .el-icon,
+.custom-theme .el-pagination .btn-prev .el-icon {
+ display: block;
+ font-size: 12px;
+}
+
+.custom-theme .el-pagination .btn-prev {
+ padding-right: 12px;
+}
+
+.custom-theme .el-pagination .btn-next {
+ padding-left: 12px;
+}
+
+.custom-theme .el-pagination--small .btn-next,
+.custom-theme .el-pagination--small .btn-prev,
+.custom-theme .el-pagination--small .el-pager li,
+.custom-theme .el-pagination--small .el-pager li:last-child {
+ border-color: transparent;
+ font-size: 12px;
+ line-height: 22px;
+ height: 22px;
+ min-width: 22px;
+}
+
+.custom-theme .el-pagination--small .arrow.disabled {
+ visibility: hidden;
+}
+
+.custom-theme .el-pagination__sizes {
+ margin: 0 10px 0 0;
+ font-weight: 400;
+ color: #5a5e66;
+}
+
+.custom-theme .el-pagination__sizes .el-input .el-input__inner {
+ font-size: 13px;
+ padding-left: 8px;
+}
+
+.custom-theme .el-pagination__sizes .el-input .el-input__inner:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-pagination__total {
+ margin-right: 10px;
+ font-weight: 400;
+ color: #5a5e66;
+}
+
+.custom-theme .el-pagination__jump {
+ margin-left: 24px;
+ font-weight: 400;
+ color: #5a5e66;
+}
+
+.custom-theme .el-pagination__jump .el-input__inner {
+ padding: 0 3px;
+}
+
+.custom-theme .el-pagination__rightwrapper {
+ float: right;
+}
+
+.custom-theme .el-pagination__editor {
+ line-height: 18px;
+ padding: 0 2px;
+ height: 28px;
+ text-align: center;
+ margin: 0 2px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 3px;
+ -moz-appearance: textfield;
+}
+
+.custom-theme .el-pagination__editor.el-input {
+ width: 50px;
+}
+
+.custom-theme .el-pagination__editor.el-input .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-pagination__editor .el-input__inner::-webkit-inner-spin-button,
+.custom-theme .el-pagination__editor .el-input__inner::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+
+.custom-theme .el-pager {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ list-style: none;
+ display: inline-block;
+ vertical-align: top;
+ font-size: 0;
+ padding: 0;
+ margin: 0;
+}
+
+.custom-theme .el-pager .el-icon-more::before {
+ vertical-align: -4px;
+}
+
+.custom-theme .el-pager li {
+ padding: 0 4px;
+ background: #fff;
+ vertical-align: top;
+ display: inline-block;
+ font-size: 13px;
+ min-width: 35.5px;
+ height: 28px;
+ line-height: 28px;
+ cursor: pointer;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ text-align: center;
+ margin: 0;
+}
+
+.custom-theme .el-pager li.btn-quicknext,
+.custom-theme .el-pager li.btn-quickprev {
+ line-height: 28px;
+ color: #2d2f33;
+}
+
+.custom-theme .el-pager li.btn-quickprev:hover {
+ cursor: pointer;
+}
+
+.custom-theme .el-pager li.btn-quicknext:hover {
+ cursor: pointer;
+}
+
+.custom-theme .el-pager li.active+li {
+ border-left: 0;
+}
+
+.custom-theme .el-pager li:hover {
+ color: #262729;
+}
+
+.custom-theme .el-pager li.active {
+ color: #262729;
+ cursor: default;
+}
+
+.custom-theme .v-modal-enter {
+ -webkit-animation: v-modal-in 0.2s ease;
+ animation: v-modal-in 0.2s ease;
+}
+
+.custom-theme .v-modal-leave {
+ -webkit-animation: v-modal-out 0.2s ease forwards;
+ animation: v-modal-out 0.2s ease forwards;
+}
+
+@-webkit-keyframes v-modal-in {
+ 0% {
+ opacity: 0;
+ }
+}
+
+@keyframes v-modal-in {
+ 0% {
+ opacity: 0;
+ }
+}
+
+@-webkit-keyframes v-modal-out {
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes v-modal-out {
+ 100% {
+ opacity: 0;
+ }
+}
+
+.custom-theme .v-modal {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ opacity: 0.5;
+ background: #000;
+}
+
+.custom-theme .el-dialog {
+ position: relative;
+ margin: 0 auto 50px;
+ background: #fff;
+ border-radius: 2px;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 50%;
+}
+
+.custom-theme .el-dialog.is-fullscreen {
+ width: 100%;
+ margin-top: 0;
+ margin-bottom: 0;
+ height: 100%;
+ overflow: auto;
+}
+
+.custom-theme .el-dialog__wrapper {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ overflow: auto;
+ margin: 0;
+}
+
+.custom-theme .el-dialog__header {
+ padding: 15px;
+ padding-bottom: 10px;
+}
+
+.custom-theme .el-dialog__headerbtn {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ padding: 0;
+ background: 0 0;
+ border: none;
+ outline: 0;
+ cursor: pointer;
+ font-size: 16px;
+}
+
+.custom-theme .el-dialog__headerbtn .el-dialog__close {
+ color: #0a76a4;
+}
+
+.custom-theme .el-dialog__headerbtn:focus .el-dialog__close,
+.custom-theme .el-dialog__headerbtn:hover .el-dialog__close {
+ color: #262729;
+}
+
+.custom-theme .el-dialog__title {
+ line-height: 24px;
+ font-size: 18px;
+ color: #2d2f33;
+}
+
+.custom-theme .el-dialog__body {
+ padding: 30px 20px;
+ color: #5a5e66;
+ line-height: 24px;
+ font-size: 14px;
+}
+
+.custom-theme .el-dialog__footer {
+ padding: 15px;
+ padding-top: 10px;
+ text-align: right;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-dialog--center {
+ text-align: center;
+}
+
+.custom-theme .el-dialog--center .el-dialog__header {
+ padding-top: 30px;
+}
+
+.custom-theme .el-dialog--center .el-dialog__body {
+ text-align: initial;
+ padding: 25px 27px 30px;
+}
+
+.custom-theme .el-dialog--center .el-dialog__footer {
+ text-align: inherit;
+ padding-bottom: 30px;
+}
+
+.custom-theme .dialog-fade-enter-active {
+ -webkit-animation: dialog-fade-in 0.3s;
+ animation: dialog-fade-in 0.3s;
+}
+
+.custom-theme .dialog-fade-leave-active {
+ -webkit-animation: dialog-fade-out 0.3s;
+ animation: dialog-fade-out 0.3s;
+}
+
+@-webkit-keyframes dialog-fade-in {
+ 0% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes dialog-fade-in {
+ 0% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes dialog-fade-out {
+ 0% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+}
+
+@keyframes dialog-fade-out {
+ 0% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-scrollbar {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-scrollbar:active>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:hover>.el-scrollbar__bar {
+ opacity: 1;
+ -webkit-transition: opacity 340ms ease-out;
+ transition: opacity 340ms ease-out;
+}
+
+.custom-theme .el-scrollbar__wrap {
+ overflow: scroll;
+ height: 100%;
+}
+
+.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-scrollbar__thumb {
+ position: relative;
+ display: block;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ border-radius: inherit;
+ background-color: rgba(135, 141, 153, 0.3);
+ -webkit-transition: 0.3s background-color;
+ transition: 0.3s background-color;
+}
+
+.custom-theme .el-scrollbar__thumb:hover {
+ background-color: rgba(135, 141, 153, 0.5);
+}
+
+.custom-theme .el-scrollbar__bar {
+ position: absolute;
+ right: 2px;
+ bottom: 2px;
+ z-index: 1;
+ border-radius: 4px;
+ opacity: 0;
+ -webkit-transition: opacity 120ms ease-out;
+ transition: opacity 120ms ease-out;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical {
+ width: 6px;
+ top: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical>div {
+ width: 100%;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal {
+ height: 6px;
+ left: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal>div {
+ height: 100%;
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .el-autocomplete {
+ position: relative;
+ display: inline-block;
+}
+
+.custom-theme .el-autocomplete-suggestion {
+ margin: 5px 0;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ border-radius: 4px;
+}
+
+.custom-theme .el-autocomplete-suggestion.el-popper .popper__arrow {
+ left: 24px !important;
+}
+
+.custom-theme .el-autocomplete-suggestion__wrap {
+ max-height: 280px;
+ padding: 10px 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ overflow: auto;
+ background-color: #fff;
+ border: 1px solid #dfe4ed;
+ border-radius: 4px;
+}
+
+.custom-theme .el-autocomplete-suggestion__list {
+ margin: 0;
+ padding: 0;
+}
+
+.custom-theme .el-autocomplete-suggestion li {
+ padding: 0 20px;
+ margin: 0;
+ line-height: 34px;
+ cursor: pointer;
+ color: #5a5e66;
+ font-size: 14px;
+ list-style: none;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.custom-theme .el-autocomplete-suggestion li:hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-autocomplete-suggestion li.highlighted {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-autocomplete-suggestion li.divider {
+ margin-top: 6px;
+ border-top: 1px solid #000;
+}
+
+.custom-theme .el-autocomplete-suggestion li.divider:last-child {
+ margin-bottom: -6px;
+}
+
+.custom-theme .el-autocomplete-suggestion.is-loading li {
+ text-align: center;
+ height: 100px;
+ line-height: 100px;
+ font-size: 20px;
+ color: #999;
+}
+
+.custom-theme .el-autocomplete-suggestion.is-loading li::after {
+ display: inline-block;
+ content: '';
+ height: 100%;
+ vertical-align: middle;
+}
+
+.custom-theme .el-autocomplete-suggestion.is-loading li:hover {
+ background-color: #fff;
+}
+
+.custom-theme .el-autocomplete-suggestion.is-loading .el-icon-loading {
+ vertical-align: middle;
+}
+
+.custom-theme .el-button {
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-color: #d8dce5;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ -webkit-transition: 0.1s;
+ transition: 0.1s;
+ font-weight: 500;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button+.el-button {
+ margin-left: 10px;
+}
+
+.custom-theme .el-button.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-button:focus,
+.custom-theme .el-button:hover {
+ color: #262729;
+ border-color: #bebebf;
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-button:active {
+ color: #222325;
+ border-color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button::-moz-focus-inner {
+ border: 0;
+}
+
+.custom-theme .el-button [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-button.is-plain:focus,
+.custom-theme .el-button.is-plain:hover {
+ background: #fff;
+ border-color: #262729;
+ color: #262729;
+}
+
+.custom-theme .el-button.is-plain:active {
+ background: #fff;
+ border-color: #222325;
+ color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button.is-active {
+ color: #222325;
+ border-color: #222325;
+}
+
+.custom-theme .el-button.is-disabled,
+.custom-theme .el-button.is-disabled:focus,
+.custom-theme .el-button.is-disabled:hover {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+}
+
+.custom-theme .el-button.is-disabled.el-button--text {
+ background-color: transparent;
+}
+
+.custom-theme .el-button.is-disabled.is-plain,
+.custom-theme .el-button.is-disabled.is-plain:focus,
+.custom-theme .el-button.is-disabled.is-plain:hover {
+ background-color: #fff;
+ border-color: #e6ebf5;
+ color: #b4bccc;
+}
+
+.custom-theme .el-button.is-loading {
+ position: relative;
+ pointer-events: none;
+}
+
+.custom-theme .el-button.is-loading:before {
+ pointer-events: none;
+ content: '';
+ position: absolute;
+ left: -1px;
+ top: -1px;
+ right: -1px;
+ bottom: -1px;
+ border-radius: inherit;
+ background-color: rgba(255, 255, 255, 0.35);
+}
+
+.custom-theme .el-button.is-round {
+ border-radius: 20px;
+ padding: 12px 23px;
+}
+
+.custom-theme .el-button--primary {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-button--primary:focus,
+.custom-theme .el-button--primary:hover {
+ background: #515254;
+ border-color: #515254;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-disabled,
+.custom-theme .el-button--primary.is-disabled:active,
+.custom-theme .el-button--primary.is-disabled:focus,
+.custom-theme .el-button--primary.is-disabled:hover {
+ color: #fff;
+ background-color: #939394;
+ border-color: #939394;
+}
+
+.custom-theme .el-button--primary.is-plain {
+ color: #262729;
+ background: #e9e9ea;
+ border-color: #a8a9a9;
+}
+
+.custom-theme .el-button--primary.is-plain:focus,
+.custom-theme .el-button--primary.is-plain:hover {
+ background: #262729;
+ border-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-plain:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-plain.is-disabled,
+.custom-theme .el-button--primary.is-plain.is-disabled:active,
+.custom-theme .el-button--primary.is-plain.is-disabled:focus,
+.custom-theme .el-button--primary.is-plain.is-disabled:hover {
+ color: #7d7d7f;
+ background-color: #e9e9ea;
+ border-color: #d4d4d4;
+}
+
+.custom-theme .el-button--success {
+ color: #fff;
+ background-color: #409167;
+ border-color: #409167;
+}
+
+.custom-theme .el-button--success:focus,
+.custom-theme .el-button--success:hover {
+ background: #66a785;
+ border-color: #66a785;
+ color: #fff;
+}
+
+.custom-theme .el-button--success:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-disabled,
+.custom-theme .el-button--success.is-disabled:active,
+.custom-theme .el-button--success.is-disabled:focus,
+.custom-theme .el-button--success.is-disabled:hover {
+ color: #fff;
+ background-color: #a0c8b3;
+ border-color: #a0c8b3;
+}
+
+.custom-theme .el-button--success.is-plain {
+ color: #409167;
+ background: #ecf4f0;
+ border-color: #b3d3c2;
+}
+
+.custom-theme .el-button--success.is-plain:focus,
+.custom-theme .el-button--success.is-plain:hover {
+ background: #409167;
+ border-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-plain:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-plain.is-disabled,
+.custom-theme .el-button--success.is-plain.is-disabled:active,
+.custom-theme .el-button--success.is-plain.is-disabled:focus,
+.custom-theme .el-button--success.is-plain.is-disabled:hover {
+ color: #8cbda4;
+ background-color: #ecf4f0;
+ border-color: #d9e9e1;
+}
+
+.custom-theme .el-button--warning {
+ color: #fff;
+ background-color: #9da408;
+ border-color: #9da408;
+}
+
+.custom-theme .el-button--warning:focus,
+.custom-theme .el-button--warning:hover {
+ background: #b1b639;
+ border-color: #b1b639;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-disabled,
+.custom-theme .el-button--warning.is-disabled:active,
+.custom-theme .el-button--warning.is-disabled:focus,
+.custom-theme .el-button--warning.is-disabled:hover {
+ color: #fff;
+ background-color: #ced284;
+ border-color: #ced284;
+}
+
+.custom-theme .el-button--warning.is-plain {
+ color: #9da408;
+ background: #f5f6e6;
+ border-color: #d8db9c;
+}
+
+.custom-theme .el-button--warning.is-plain:focus,
+.custom-theme .el-button--warning.is-plain:hover {
+ background: #9da408;
+ border-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-plain:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-plain.is-disabled,
+.custom-theme .el-button--warning.is-plain.is-disabled:active,
+.custom-theme .el-button--warning.is-plain.is-disabled:focus,
+.custom-theme .el-button--warning.is-plain.is-disabled:hover {
+ color: #c4c86b;
+ background-color: #f5f6e6;
+ border-color: #ebedce;
+}
+
+.custom-theme .el-button--danger {
+ color: #fff;
+ background-color: #b3450e;
+ border-color: #b3450e;
+}
+
+.custom-theme .el-button--danger:focus,
+.custom-theme .el-button--danger:hover {
+ background: #c26a3e;
+ border-color: #c26a3e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-disabled,
+.custom-theme .el-button--danger.is-disabled:active,
+.custom-theme .el-button--danger.is-disabled:focus,
+.custom-theme .el-button--danger.is-disabled:hover {
+ color: #fff;
+ background-color: #d9a287;
+ border-color: #d9a287;
+}
+
+.custom-theme .el-button--danger.is-plain {
+ color: #b3450e;
+ background: #f7ece7;
+ border-color: #e1b59f;
+}
+
+.custom-theme .el-button--danger.is-plain:focus,
+.custom-theme .el-button--danger.is-plain:hover {
+ background: #b3450e;
+ border-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-plain:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-plain.is-disabled,
+.custom-theme .el-button--danger.is-plain.is-disabled:active,
+.custom-theme .el-button--danger.is-plain.is-disabled:focus,
+.custom-theme .el-button--danger.is-plain.is-disabled:hover {
+ color: #d18f6e;
+ background-color: #f7ece7;
+ border-color: #f0dacf;
+}
+
+.custom-theme .el-button--info {
+ color: #fff;
+ background-color: #0a76a4;
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-button--info:focus,
+.custom-theme .el-button--info:hover {
+ background: #3b91b6;
+ border-color: #3b91b6;
+ color: #fff;
+}
+
+.custom-theme .el-button--info:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-disabled,
+.custom-theme .el-button--info.is-disabled:active,
+.custom-theme .el-button--info.is-disabled:focus,
+.custom-theme .el-button--info.is-disabled:hover {
+ color: #fff;
+ background-color: #85bbd2;
+ border-color: #85bbd2;
+}
+
+.custom-theme .el-button--info.is-plain {
+ color: #0a76a4;
+ background: #e7f1f6;
+ border-color: #9dc8db;
+}
+
+.custom-theme .el-button--info.is-plain:focus,
+.custom-theme .el-button--info.is-plain:hover {
+ background: #0a76a4;
+ border-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-plain:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-plain.is-disabled,
+.custom-theme .el-button--info.is-plain.is-disabled:active,
+.custom-theme .el-button--info.is-plain.is-disabled:focus,
+.custom-theme .el-button--info.is-plain.is-disabled:hover {
+ color: #6cadc8;
+ background-color: #e7f1f6;
+ border-color: #cee4ed;
+}
+
+.custom-theme .el-button--medium {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button--medium.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-button--small {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--small.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-button--mini {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--mini.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-button--text {
+ border: none;
+ color: #262729;
+ background: 0 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.custom-theme .el-button--text:focus,
+.custom-theme .el-button--text:hover {
+ color: #515254;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button--text:active {
+ color: #222325;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button-group {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-button-group::after,
+.custom-theme .el-button-group::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-button-group::after {
+ clear: both;
+}
+
+.custom-theme .el-button-group .el-button {
+ float: left;
+ position: relative;
+}
+
+.custom-theme .el-button-group .el-button+.el-button {
+ margin-left: 0;
+}
+
+.custom-theme .el-button-group .el-button:first-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:last-child) {
+ margin-right: -1px;
+}
+
+.custom-theme .el-button-group .el-button:active,
+.custom-theme .el-button-group .el-button:focus,
+.custom-theme .el-button-group .el-button:hover {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button.is-active {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button--primary:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .el-dropdown {
+ display: inline-block;
+ position: relative;
+ color: #5a5e66;
+ font-size: 14px;
+}
+
+.custom-theme .el-dropdown .el-button-group {
+ display: block;
+}
+
+.custom-theme .el-dropdown .el-button-group .el-button {
+ float: none;
+}
+
+.custom-theme .el-dropdown .el-dropdown__caret-button {
+ padding-left: 5px;
+ padding-right: 5px;
+ position: relative;
+ border-left: none;
+}
+
+.custom-theme .el-dropdown .el-dropdown__caret-button::before {
+ content: '';
+ position: absolute;
+ display: block;
+ width: 1px;
+ top: 5px;
+ bottom: 5px;
+ left: 0;
+ background: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-dropdown .el-dropdown__caret-button:hover::before {
+ top: 0;
+ bottom: 0;
+}
+
+.custom-theme .el-dropdown .el-dropdown__caret-button .el-dropdown__icon {
+ padding-left: 0;
+}
+
+.custom-theme .el-dropdown__icon {
+ font-size: 12px;
+ margin: 0 3px;
+}
+
+.custom-theme .el-dropdown-menu {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 10;
+ padding: 10px 0;
+ margin: 5px 0;
+ background-color: #fff;
+ border: 1px solid #e6ebf5;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+
+.custom-theme .el-dropdown-menu__item {
+ list-style: none;
+ line-height: 36px;
+ padding: 0 20px;
+ margin: 0;
+ font-size: 14px;
+ color: #5a5e66;
+ cursor: pointer;
+}
+
+.custom-theme .el-dropdown-menu__item:not(.is-disabled):hover {
+ background-color: #e9e9ea;
+ color: #515254;
+}
+
+.custom-theme .el-dropdown-menu__item--divided {
+ position: relative;
+ margin-top: 6px;
+ border-top: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-dropdown-menu__item--divided:before {
+ content: '';
+ height: 6px;
+ display: block;
+ margin: 0 -20px;
+ background-color: #fff;
+}
+
+.custom-theme .el-dropdown-menu__item.is-disabled {
+ cursor: default;
+ color: #bbb;
+ pointer-events: none;
+}
+
+.custom-theme .el-dropdown-menu--medium {
+ padding: 6px 0;
+}
+
+.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item {
+ line-height: 30px;
+ padding: 0 17px;
+ font-size: 14px;
+}
+
+.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided {
+ margin-top: 6px;
+}
+
+.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before {
+ height: 6px;
+ margin: 0 -17px;
+}
+
+.custom-theme .el-dropdown-menu--small {
+ padding: 6px 0;
+}
+
+.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item {
+ line-height: 27px;
+ padding: 0 15px;
+ font-size: 13px;
+}
+
+.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided {
+ margin-top: 4px;
+}
+
+.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before {
+ height: 4px;
+ margin: 0 -15px;
+}
+
+.custom-theme .el-dropdown-menu--mini {
+ padding: 3px 0;
+}
+
+.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item {
+ line-height: 24px;
+ padding: 0 10px;
+ font-size: 12px;
+}
+
+.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided {
+ margin-top: 3px;
+}
+
+.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before {
+ height: 3px;
+ margin: 0 -10px;
+}
+
+.custom-theme .el-menu {
+ border-right: solid 1px #e6e6e6;
+ list-style: none;
+ position: relative;
+ margin: 0;
+ padding-left: 0;
+ background-color: #fff;
+}
+
+.custom-theme .el-menu::after,
+.custom-theme .el-menu::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-menu::after {
+ clear: both;
+}
+
+.custom-theme .el-menu li {
+ list-style: none;
+}
+
+.custom-theme .el-menu--horizontal {
+ border-right: none;
+ border-bottom: solid 1px #e6e6e6;
+}
+
+.custom-theme .el-menu--horizontal .el-menu-item {
+ float: left;
+ height: 60px;
+ line-height: 60px;
+ margin: 0;
+ cursor: pointer;
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-bottom: 2px solid transparent;
+ color: #878d99;
+}
+
+.custom-theme .el-menu--horizontal .el-menu-item a,
+.custom-theme .el-menu--horizontal .el-menu-item a:hover {
+ color: inherit;
+}
+
+.custom-theme .el-menu--horizontal .el-menu-item:focus,
+.custom-theme .el-menu--horizontal .el-menu-item:hover {
+ background-color: #fff;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu {
+ float: left;
+ position: relative;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu:focus {
+ outline: 0;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu:focus>.el-submenu__title {
+ color: #2d2f33;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu>.el-menu {
+ position: absolute;
+ top: 65px;
+ left: 0;
+ border: none;
+ padding: 5px 0;
+ background-color: #fff;
+ z-index: 100;
+ min-width: 100%;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ border-radius: 2px;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu .el-submenu__title {
+ height: 60px;
+ line-height: 60px;
+ border-bottom: 2px solid transparent;
+ color: #878d99;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu .el-submenu__title:hover {
+ background-color: #fff;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu .el-menu-item {
+ background-color: #fff;
+ float: none;
+ height: 36px;
+ line-height: 36px;
+ padding: 0 10px;
+}
+
+.custom-theme .el-menu--horizontal .el-submenu .el-submenu__icon-arrow {
+ position: static;
+ vertical-align: middle;
+ margin-left: 8px;
+ margin-top: -3px;
+}
+
+.custom-theme .el-menu--horizontal .el-menu-item:focus,
+.custom-theme .el-menu--horizontal .el-menu-item:hover,
+.custom-theme .el-menu--horizontal .el-submenu__title:hover {
+ outline: 0;
+ color: #2d2f33;
+}
+
+.custom-theme .el-menu--horizontal>.el-menu-item.is-active,
+.custom-theme .el-menu--horizontal>.el-submenu.is-active .el-submenu__title {
+ border-bottom: 2px solid #262729;
+ color: #2d2f33;
+}
+
+.custom-theme .el-menu--collapse {
+ width: 64px;
+}
+
+.custom-theme .el-menu--collapse>.el-menu-item [class^='el-icon-'],
+.custom-theme .el-menu--collapse>.el-submenu>.el-submenu__title [class^='el-icon-'] {
+ margin: 0;
+ vertical-align: middle;
+ width: 24px;
+ text-align: center;
+}
+
+.custom-theme .el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,
+.custom-theme .el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow {
+ display: none;
+}
+
+.custom-theme .el-menu--collapse>.el-menu-item span,
+.custom-theme .el-menu--collapse>.el-submenu>.el-submenu__title span {
+ height: 0;
+ width: 0;
+ overflow: hidden;
+ visibility: hidden;
+ display: inline-block;
+}
+
+.custom-theme .el-menu--collapse>.el-menu-item.is-active i {
+ color: inherit;
+}
+
+.custom-theme .el-menu--collapse .el-menu .el-submenu {
+ min-width: 200px;
+}
+
+.custom-theme .el-menu--collapse .el-submenu {
+ position: relative;
+}
+
+.custom-theme .el-menu--collapse .el-submenu .el-menu {
+ position: absolute;
+ margin-left: 5px;
+ top: 0;
+ left: 100%;
+ z-index: 10;
+ border: 1px solid #dfe4ed;
+ border-radius: 2px;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+
+.custom-theme .el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow {
+ -webkit-transform: none;
+ transform: none;
+}
+
+.custom-theme .el-menu-item {
+ height: 56px;
+ line-height: 56px;
+ font-size: 14px;
+ color: #2d2f33;
+ padding: 0 20px;
+ cursor: pointer;
+ position: relative;
+ -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
+ transition: border-color 0.3s, background-color 0.3s, color 0.3s;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ white-space: nowrap;
+}
+
+.custom-theme .el-menu-item [class^='el-icon-'] {
+ margin-right: 5px;
+ width: 24px;
+ text-align: center;
+ font-size: 18px;
+}
+
+.custom-theme .el-menu-item * {
+ vertical-align: middle;
+}
+
+.custom-theme .el-menu-item:first-child {
+ margin-left: 0;
+}
+
+.custom-theme .el-menu-item:last-child {
+ margin-right: 0;
+}
+
+.custom-theme .el-menu-item:focus,
+.custom-theme .el-menu-item:hover {
+ outline: 0;
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-menu-item i {
+ color: #878d99;
+}
+
+.custom-theme .el-menu-item.is-active {
+ color: #262729;
+}
+
+.custom-theme .el-menu-item.is-active i {
+ color: inherit;
+}
+
+.custom-theme .el-submenu__title {
+ position: relative;
+ height: 56px;
+ line-height: 56px;
+ font-size: 14px;
+ color: #2d2f33;
+ padding: 0 20px;
+ cursor: pointer;
+ position: relative;
+ -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
+ transition: border-color 0.3s, background-color 0.3s, color 0.3s;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ white-space: nowrap;
+}
+
+.custom-theme .el-submenu__title * {
+ vertical-align: middle;
+}
+
+.custom-theme .el-submenu__title i {
+ color: #878d99;
+}
+
+.custom-theme .el-submenu__title:hover {
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-submenu .el-menu {
+ border: none;
+}
+
+.custom-theme .el-submenu .el-menu-item {
+ height: 50px;
+ line-height: 50px;
+ padding: 0 45px;
+ min-width: 200px;
+}
+
+.custom-theme .el-submenu__icon-arrow {
+ position: absolute;
+ top: 50%;
+ right: 20px;
+ margin-top: -7px;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+ font-size: 12px;
+}
+
+.custom-theme .el-submenu.is-active .el-submenu__title {
+ border-bottom-color: #262729;
+}
+
+.custom-theme .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow {
+ -webkit-transform: rotateZ(180deg);
+ transform: rotateZ(180deg);
+}
+
+.custom-theme .el-submenu [class^='el-icon-'] {
+ vertical-align: middle;
+ margin-right: 5px;
+ width: 24px;
+ text-align: center;
+ font-size: 18px;
+}
+
+.custom-theme .el-menu-item-group>ul {
+ padding: 0;
+}
+
+.custom-theme .el-menu-item-group__title {
+ padding: 7px 0 7px 20px;
+ line-height: normal;
+ font-size: 12px;
+ color: #878d99;
+}
+
+.custom-theme .horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow {
+ -webkit-transition: 0.2s;
+ transition: 0.2s;
+ opacity: 0;
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input-number {
+ position: relative;
+ display: inline-block;
+ width: 180px;
+ line-height: 38px;
+}
+
+.custom-theme .el-input-number .el-input {
+ display: block;
+}
+
+.custom-theme .el-input-number .el-input__inner {
+ -webkit-appearance: none;
+ padding-left: 50px;
+ padding-right: 50px;
+ text-align: center;
+}
+
+.custom-theme .el-input-number__decrease,
+.custom-theme .el-input-number__increase {
+ position: absolute;
+ z-index: 1;
+ top: 1px;
+ width: 40px;
+ height: auto;
+ text-align: center;
+ background: #f5f7fa;
+ color: #5a5e66;
+ cursor: pointer;
+ font-size: 13px;
+}
+
+.custom-theme .el-input-number__decrease:hover,
+.custom-theme .el-input-number__increase:hover {
+ color: #262729;
+}
+
+.custom-theme .el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),
+.custom-theme .el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled) {
+ border-color: #262729;
+}
+
+.custom-theme .el-input-number__decrease.is-disabled,
+.custom-theme .el-input-number__increase.is-disabled {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input-number__increase {
+ right: 1px;
+ border-radius: 0 4px 4px 0;
+ border-left: 1px solid #d8dce5;
+}
+
+.custom-theme .el-input-number__decrease {
+ left: 1px;
+ border-radius: 4px 0 0 4px;
+ border-right: 1px solid #d8dce5;
+}
+
+.custom-theme .el-input-number.is-disabled .el-input-number__decrease,
+.custom-theme .el-input-number.is-disabled .el-input-number__increase {
+ border-color: #dfe4ed;
+ color: #dfe4ed;
+}
+
+.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover,
+.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover {
+ color: #dfe4ed;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input-number--medium {
+ width: 200px;
+ line-height: 34px;
+}
+
+.custom-theme .el-input-number--medium .el-input-number__decrease,
+.custom-theme .el-input-number--medium .el-input-number__increase {
+ width: 36px;
+ font-size: 14px;
+}
+
+.custom-theme .el-input-number--medium .el-input__inner {
+ padding-left: 43px;
+ padding-right: 43px;
+}
+
+.custom-theme .el-input-number--small {
+ width: 130px;
+ line-height: 30px;
+}
+
+.custom-theme .el-input-number--small .el-input-number__decrease,
+.custom-theme .el-input-number--small .el-input-number__increase {
+ width: 32px;
+ font-size: 13px;
+}
+
+.custom-theme .el-input-number--small .el-input-number__decrease [class*='el-icon'],
+.custom-theme .el-input-number--small .el-input-number__increase [class*='el-icon'] {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+}
+
+.custom-theme .el-input-number--small .el-input__inner {
+ padding-left: 39px;
+ padding-right: 39px;
+}
+
+.custom-theme .el-input-number--mini {
+ width: 130px;
+ line-height: 26px;
+}
+
+.custom-theme .el-input-number--mini .el-input-number__decrease,
+.custom-theme .el-input-number--mini .el-input-number__increase {
+ width: 28px;
+ font-size: 12px;
+}
+
+.custom-theme .el-input-number--mini .el-input-number__decrease [class*='el-icon'],
+.custom-theme .el-input-number--mini .el-input-number__increase [class*='el-icon'] {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-input-number--mini .el-input__inner {
+ padding-left: 35px;
+ padding-right: 35px;
+}
+
+.custom-theme .el-input-number.is-without-controls .el-input__inner {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input__inner {
+ padding-left: 15px;
+ padding-right: 50px;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__decrease,
+.custom-theme .el-input-number.is-controls-right .el-input-number__increase {
+ height: auto;
+ line-height: 19px;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__decrease [class*='el-icon'],
+.custom-theme .el-input-number.is-controls-right .el-input-number__increase [class*='el-icon'] {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__increase {
+ border-radius: 0 4px 0 0;
+ border-bottom: 1px solid #d8dce5;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__decrease {
+ right: 1px;
+ bottom: 1px;
+ top: auto;
+ left: auto;
+ border-right: none;
+ border-left: 1px solid #d8dce5;
+ border-radius: 0 0 4px 0;
+}
+
+.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='decrease'],
+.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='increase'] {
+ line-height: 17px;
+}
+
+.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='decrease'],
+.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='increase'] {
+ line-height: 15px;
+}
+
+.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='decrease'],
+.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='increase'] {
+ line-height: 13px;
+}
+
+.custom-theme .el-radio {
+ color: #5a5e66;
+ font-weight: 500;
+ line-height: 1;
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ white-space: nowrap;
+ outline: 0;
+ font-size: 14px;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+}
+
+.custom-theme .el-radio.is-bordered {
+ padding: 10px 20px 10px 10px;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+}
+
+.custom-theme .el-radio.is-bordered.is-checked {
+ border-color: #262729;
+}
+
+.custom-theme .el-radio.is-bordered.is-disabled {
+ cursor: not-allowed;
+ border-color: #e6ebf5;
+}
+
+.custom-theme .el-radio.is-bordered+.el-radio.is-bordered {
+ margin-left: 10px;
+}
+
+.custom-theme .el-radio--medium.is-bordered {
+ padding: 8px 20px 8px 10px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-radio--medium.is-bordered .el-radio__label {
+ font-size: 14px;
+}
+
+.custom-theme .el-radio--medium.is-bordered .el-radio__inner {
+ height: 14px;
+ width: 14px;
+}
+
+.custom-theme .el-radio--small.is-bordered {
+ padding: 6px 15px 6px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-radio--small.is-bordered .el-radio__label {
+ font-size: 12px;
+}
+
+.custom-theme .el-radio--small.is-bordered .el-radio__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-radio--mini.is-bordered {
+ padding: 4px 15px 4px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-radio--mini.is-bordered .el-radio__label {
+ font-size: 12px;
+}
+
+.custom-theme .el-radio--mini.is-bordered .el-radio__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-radio+.el-radio {
+ margin-left: 30px;
+}
+
+.custom-theme .el-radio__input {
+ white-space: nowrap;
+ cursor: pointer;
+ outline: 0;
+ display: inline-block;
+ line-height: 1;
+ position: relative;
+ vertical-align: middle;
+}
+
+.custom-theme .el-radio__input.is-disabled .el-radio__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-radio__input.is-disabled .el-radio__inner::after {
+ cursor: not-allowed;
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-radio__input.is-disabled .el-radio__inner+.el-radio__label {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+}
+
+.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner::after {
+ background-color: #b4bccc;
+}
+
+.custom-theme .el-radio__input.is-disabled+span.el-radio__label {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-radio__input.is-checked .el-radio__inner {
+ border-color: #262729;
+ background: #262729;
+}
+
+.custom-theme .el-radio__input.is-checked .el-radio__inner::after {
+ -webkit-transform: translate(-50%, -50%) scale(1);
+ transform: translate(-50%, -50%) scale(1);
+}
+
+.custom-theme .el-radio__input.is-checked+.el-radio__label {
+ color: #262729;
+}
+
+.custom-theme .el-radio__input.is-focus .el-radio__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-radio__inner {
+ border: 1px solid #d8dce5;
+ border-radius: 100%;
+ width: 14px;
+ height: 14px;
+ background-color: #fff;
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-radio__inner:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-radio__inner::after {
+ width: 4px;
+ height: 4px;
+ border-radius: 100%;
+ background-color: #fff;
+ content: '';
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ -webkit-transform: translate(-50%, -50%) scale(0);
+ transform: translate(-50%, -50%) scale(0);
+ -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6);
+ transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6);
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6);
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6),
+ -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6);
+}
+
+.custom-theme .el-radio__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: 0;
+}
+
+.custom-theme .el-radio:focus:not(.is-focus):not(:active) .el-radio__inner {
+ -webkit-box-shadow: 0 0 2px 2px #262729;
+ box-shadow: 0 0 2px 2px #262729;
+}
+
+.custom-theme .el-radio__label {
+ font-size: 14px;
+ padding-left: 10px;
+}
+
+.custom-theme .el-radio-group {
+ display: inline-block;
+ line-height: 1;
+ vertical-align: middle;
+ font-size: 0;
+}
+
+.custom-theme .el-radio-button {
+ position: relative;
+ display: inline-block;
+ outline: 0;
+}
+
+.custom-theme .el-radio-button__inner {
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ vertical-align: middle;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ font-weight: 500;
+ border-left: 0;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ position: relative;
+ cursor: pointer;
+ -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-radio-button__inner.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-radio-button__inner:hover {
+ color: #262729;
+}
+
+.custom-theme .el-radio-button__inner [class*='el-icon-'] {
+ line-height: 0.9;
+}
+
+.custom-theme .el-radio-button__inner [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-radio-button__orig-radio {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ z-index: -1;
+ left: -999px;
+}
+
+.custom-theme .el-radio-button__orig-radio:checked+.el-radio-button__inner {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+ -webkit-box-shadow: -1px 0 0 0 #262729;
+ box-shadow: -1px 0 0 0 #262729;
+}
+
+.custom-theme .el-radio-button__orig-radio:disabled+.el-radio-button__inner {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner {
+ background-color: #edf2fc;
+}
+
+.custom-theme .el-radio-button:first-child .el-radio-button__inner {
+ border-left: 1px solid #d8dce5;
+ border-radius: 4px 0 0 4px;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.custom-theme .el-radio-button:last-child .el-radio-button__inner {
+ border-radius: 0 4px 4px 0;
+}
+
+.custom-theme .el-radio-button:first-child:last-child .el-radio-button__inner {
+ border-radius: 4px;
+}
+
+.custom-theme .el-radio-button--medium .el-radio-button__inner {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-radio-button--medium .el-radio-button__inner.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-radio-button--small .el-radio-button__inner {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-radio-button--small .el-radio-button__inner.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-radio-button--mini .el-radio-button__inner {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-radio-button--mini .el-radio-button__inner.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-radio-button:focus:not(.is-focus):not(:active) {
+ -webkit-box-shadow: 0 0 2px 2px #262729;
+ box-shadow: 0 0 2px 2px #262729;
+}
+
+.custom-theme .el-checkbox {
+ color: #5a5e66;
+ font-weight: 500;
+ font-size: 14px;
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-checkbox.is-bordered {
+ padding: 9px 20px 9px 10px;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-checked {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-disabled {
+ border-color: #e6ebf5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered {
+ margin-left: 10px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium {
+ padding: 7px 20px 7px 10px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label {
+ line-height: 17px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner {
+ height: 14px;
+ width: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small {
+ padding: 3px 15px 7px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label {
+ line-height: 15px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini {
+ padding: 1px 15px 5px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label {
+ line-height: 12px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox__input {
+ white-space: nowrap;
+ cursor: pointer;
+ outline: 0;
+ display: inline-block;
+ line-height: 1;
+ position: relative;
+ vertical-align: middle;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after {
+ cursor: not-allowed;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before {
+ background-color: #b4bccc;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after {
+ -webkit-transform: rotate(45deg) scaleY(1);
+ transform: rotate(45deg) scaleY(1);
+}
+
+.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before {
+ content: '';
+ position: absolute;
+ display: block;
+ background-color: #fff;
+ height: 2px;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ left: 0;
+ right: 0;
+ top: 5px;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after {
+ display: none;
+}
+
+.custom-theme .el-checkbox__inner {
+ display: inline-block;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 2px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 14px;
+ height: 14px;
+ background-color: #fff;
+ z-index: 1;
+ -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+ transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+}
+
+.custom-theme .el-checkbox__inner:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__inner::after {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ content: '';
+ border: 1px solid #fff;
+ border-left: 0;
+ border-top: 0;
+ height: 7px;
+ left: 4px;
+ position: absolute;
+ top: 1px;
+ -webkit-transform: rotate(45deg) scaleY(0);
+ transform: rotate(45deg) scaleY(0);
+ width: 3px;
+ -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms,
+ -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ -webkit-transform-origin: center;
+ transform-origin: center;
+}
+
+.custom-theme .el-checkbox__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ width: 0;
+ height: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox__label {
+ display: inline-block;
+ padding-left: 10px;
+ line-height: 19px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox+.el-checkbox {
+ margin-left: 30px;
+}
+
+.custom-theme .el-checkbox-button {
+ position: relative;
+ display: inline-block;
+}
+
+.custom-theme .el-checkbox-button__inner {
+ display: inline-block;
+ line-height: 1;
+ font-weight: 500;
+ white-space: nowrap;
+ vertical-align: middle;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-left: 0;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ position: relative;
+ -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button__inner.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-checkbox-button__inner:hover {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-'] {
+ line-height: 0.9;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-checkbox-button__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+ -webkit-box-shadow: -1px 0 0 0 #7d7d7f;
+ box-shadow: -1px 0 0 0 #7d7d7f;
+}
+
+.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner {
+ border-left: 1px solid #d8dce5;
+ border-radius: 4px 0 0 4px;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner {
+ border-radius: 0 4px 4px 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-checkbox-group {
+ font-size: 0;
+}
+
+.custom-theme .el-switch {
+ display: inline-block;
+ position: relative;
+ font-size: 14px;
+ line-height: 20px;
+ height: 20px;
+ vertical-align: middle;
+}
+
+.custom-theme .el-switch.is-disabled .el-switch__core,
+.custom-theme .el-switch.is-disabled .el-switch__label {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-switch__label {
+ -webkit-transition: 0.2s;
+ transition: 0.2s;
+ height: 20px;
+ display: inline-block;
+ font-size: 14px;
+ font-weight: 500;
+ cursor: pointer;
+ vertical-align: middle;
+ color: #2d2f33;
+}
+
+.custom-theme .el-switch__label.is-active {
+ color: #262729;
+}
+
+.custom-theme .el-switch__label--left {
+ margin-right: 10px;
+}
+
+.custom-theme .el-switch__label--right {
+ margin-left: 10px;
+}
+
+.custom-theme .el-switch__label * {
+ line-height: 1;
+ font-size: 14px;
+ display: inline-block;
+}
+
+.custom-theme .el-switch__input {
+ position: absolute;
+ width: 0;
+ height: 0;
+ opacity: 0;
+ margin: 0;
+}
+
+.custom-theme .el-switch__input:focus~.el-switch__core {
+ outline: 1px solid #262729;
+}
+
+.custom-theme .el-switch__core {
+ margin: 0;
+ display: inline-block;
+ position: relative;
+ width: 40px;
+ height: 20px;
+ border: 1px solid #d8dce5;
+ outline: 0;
+ border-radius: 10px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ background: #d8dce5;
+ cursor: pointer;
+ -webkit-transition: border-color 0.3s, background-color 0.3s;
+ transition: border-color 0.3s, background-color 0.3s;
+ vertical-align: middle;
+}
+
+.custom-theme .el-switch__core .el-switch__button {
+ position: absolute;
+ top: 1px;
+ left: 1px;
+ border-radius: 100%;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+ width: 16px;
+ height: 16px;
+ background-color: #fff;
+}
+
+.custom-theme .el-switch.is-checked .el-switch__core {
+ border-color: #262729;
+ background-color: #262729;
+}
+
+.custom-theme .el-switch.is-disabled {
+ opacity: 0.6;
+}
+
+.custom-theme .el-switch--wide .el-switch__label.el-switch__label--left span {
+ left: 10px;
+}
+
+.custom-theme .el-switch--wide .el-switch__label.el-switch__label--right span {
+ right: 10px;
+}
+
+.custom-theme .el-switch .label-fade-enter,
+.custom-theme .el-switch .label-fade-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .el-select-dropdown {
+ position: absolute;
+ z-index: 1001;
+ border: solid 1px #dfe4ed;
+ border-radius: 4px;
+ background-color: #fff;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 5px 0;
+}
+
+.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
+ color: #262729;
+ background-color: #fff;
+}
+
+.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after {
+ position: absolute;
+ right: 20px;
+ font-family: element-icons;
+ content: '\E611';
+ font-size: 12px;
+ font-weight: 700;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.custom-theme .el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list {
+ padding: 0;
+}
+
+.custom-theme .el-select-dropdown .popper__arrow {
+ -webkit-transform: translateX(-400%);
+ transform: translateX(-400%);
+}
+
+.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow {
+ -webkit-transform: translateX(-200%);
+ transform: translateX(-200%);
+}
+
+.custom-theme .el-select-dropdown__empty {
+ padding: 10px 0;
+ margin: 0;
+ text-align: center;
+ color: #999;
+ font-size: 14px;
+}
+
+.custom-theme .el-select-dropdown__wrap {
+ max-height: 274px;
+}
+
+.custom-theme .el-select-dropdown__list {
+ list-style: none;
+ padding: 6px 0;
+ margin: 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-tag {
+ background-color: rgba(38, 39, 41, 0.1);
+ display: inline-block;
+ padding: 0 10px;
+ height: 32px;
+ line-height: 30px;
+ font-size: 12px;
+ color: #262729;
+ border-radius: 4px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid rgba(38, 39, 41, 0.2);
+ white-space: nowrap;
+}
+
+.custom-theme .el-tag .el-icon-close {
+ border-radius: 50%;
+ text-align: center;
+ position: relative;
+ cursor: pointer;
+ font-size: 12px;
+ height: 18px;
+ width: 18px;
+ line-height: 18px;
+ vertical-align: middle;
+ top: -1px;
+ right: -5px;
+ color: #262729;
+}
+
+.custom-theme .el-tag .el-icon-close::before {
+ display: block;
+}
+
+.custom-theme .el-tag .el-icon-close:hover {
+ background-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-tag--info {
+ background-color: rgba(10, 118, 164, 0.1);
+ border-color: rgba(10, 118, 164, 0.2);
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info.is-hit {
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close {
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close:hover {
+ background-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-tag--success {
+ background-color: rgba(64, 145, 103, 0.1);
+ border-color: rgba(64, 145, 103, 0.2);
+ color: #409167;
+}
+
+.custom-theme .el-tag--success.is-hit {
+ border-color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close {
+ color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close:hover {
+ background-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-tag--warning {
+ background-color: rgba(157, 164, 8, 0.1);
+ border-color: rgba(157, 164, 8, 0.2);
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning.is-hit {
+ border-color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close {
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close:hover {
+ background-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-tag--danger {
+ background-color: rgba(179, 69, 14, 0.1);
+ border-color: rgba(179, 69, 14, 0.2);
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger.is-hit {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close {
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close:hover {
+ background-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-tag--medium {
+ height: 28px;
+ line-height: 26px;
+}
+
+.custom-theme .el-tag--medium .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--small {
+ height: 24px;
+ padding: 0 8px;
+ line-height: 22px;
+}
+
+.custom-theme .el-tag--small .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--mini {
+ height: 20px;
+ padding: 0 5px;
+ line-height: 19px;
+}
+
+.custom-theme .el-tag--mini .el-icon-close {
+ margin-left: -3px;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.custom-theme .el-select-dropdown__item {
+ font-size: 14px;
+ padding: 0 20px;
+ position: relative;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ color: #5a5e66;
+ height: 34px;
+ line-height: 34px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ cursor: pointer;
+}
+
+.custom-theme .el-select-dropdown__item.is-disabled {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-select-dropdown__item.is-disabled:hover {
+ background-color: #fff;
+}
+
+.custom-theme .el-select-dropdown__item.hover,
+.custom-theme .el-select-dropdown__item:hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-select-dropdown__item.selected {
+ color: #262729;
+ font-weight: 700;
+}
+
+.custom-theme .el-select-dropdown__item span {
+ line-height: 34px !important;
+}
+
+.custom-theme .el-select-group {
+ margin: 0;
+ padding: 0;
+}
+
+.custom-theme .el-select-group__wrap {
+ position: relative;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.custom-theme .el-select-group__wrap:not(:last-of-type) {
+ padding-bottom: 24px;
+}
+
+.custom-theme .el-select-group__wrap:not(:last-of-type)::after {
+ content: '';
+ position: absolute;
+ display: block;
+ left: 20px;
+ right: 20px;
+ bottom: 12px;
+ height: 1px;
+ background: #dfe4ed;
+}
+
+.custom-theme .el-select-group__title {
+ padding-left: 20px;
+ font-size: 12px;
+ color: #0a76a4;
+ line-height: 30px;
+}
+
+.custom-theme .el-select-group .el-select-dropdown__item {
+ padding-left: 20px;
+}
+
+.custom-theme .el-scrollbar {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-scrollbar:active>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:hover>.el-scrollbar__bar {
+ opacity: 1;
+ -webkit-transition: opacity 340ms ease-out;
+ transition: opacity 340ms ease-out;
+}
+
+.custom-theme .el-scrollbar__wrap {
+ overflow: scroll;
+ height: 100%;
+}
+
+.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-scrollbar__thumb {
+ position: relative;
+ display: block;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ border-radius: inherit;
+ background-color: rgba(135, 141, 153, 0.3);
+ -webkit-transition: 0.3s background-color;
+ transition: 0.3s background-color;
+}
+
+.custom-theme .el-scrollbar__thumb:hover {
+ background-color: rgba(135, 141, 153, 0.5);
+}
+
+.custom-theme .el-scrollbar__bar {
+ position: absolute;
+ right: 2px;
+ bottom: 2px;
+ z-index: 1;
+ border-radius: 4px;
+ opacity: 0;
+ -webkit-transition: opacity 120ms ease-out;
+ transition: opacity 120ms ease-out;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical {
+ width: 6px;
+ top: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical>div {
+ width: 100%;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal {
+ height: 6px;
+ left: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal>div {
+ height: 100%;
+}
+
+.custom-theme .el-select {
+ display: inline-block;
+ position: relative;
+}
+
+.custom-theme .el-select:hover .el-input__inner {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-select .el-input__inner {
+ cursor: pointer;
+ padding-right: 35px;
+}
+
+.custom-theme .el-select .el-input__inner:focus {
+ border-color: #262729;
+}
+
+.custom-theme .el-select .el-input .el-select__caret {
+ color: #b4bccc;
+ font-size: 14px;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+ -webkit-transform: rotateZ(180deg);
+ transform: rotateZ(180deg);
+ line-height: 16px;
+ cursor: pointer;
+}
+
+.custom-theme .el-select .el-input .el-select__caret.is-reverse {
+ -webkit-transform: rotateZ(0);
+ transform: rotateZ(0);
+}
+
+.custom-theme .el-select .el-input .el-select__caret.is-show-close {
+ font-size: 14px;
+ text-align: center;
+ -webkit-transform: rotateZ(180deg);
+ transform: rotateZ(180deg);
+ border-radius: 100%;
+ color: #b4bccc;
+ -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover {
+ color: #878d99;
+}
+
+.custom-theme .el-select .el-input.is-disabled .el-input__inner {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover {
+ border-color: #dfe4ed;
+}
+
+.custom-theme .el-select>.el-input {
+ display: block;
+}
+
+.custom-theme .el-select__input {
+ border: none;
+ outline: 0;
+ padding: 0;
+ margin-left: 15px;
+ color: #666;
+ font-size: 14px;
+ vertical-align: baseline;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ height: 28px;
+ background-color: transparent;
+}
+
+.custom-theme .el-select__input.is-mini {
+ height: 14px;
+}
+
+.custom-theme .el-select__close {
+ cursor: pointer;
+ position: absolute;
+ top: 8px;
+ z-index: 1000;
+ right: 25px;
+ color: #b4bccc;
+ line-height: 18px;
+ font-size: 14px;
+}
+
+.custom-theme .el-select__close:hover {
+ color: #878d99;
+}
+
+.custom-theme .el-select__tags {
+ position: absolute;
+ line-height: normal;
+ white-space: normal;
+ z-index: 1;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+}
+
+.custom-theme .el-select .el-tag__close {
+ margin-top: -2px;
+}
+
+.custom-theme .el-select .el-tag {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-color: transparent;
+ margin: 3px 0 3px 6px;
+ background-color: #f0f2f5;
+}
+
+.custom-theme .el-select .el-tag__close.el-icon-close {
+ background-color: #b4bccc;
+ right: -7px;
+ color: #fff;
+}
+
+.custom-theme .el-select .el-tag__close.el-icon-close:hover {
+ background-color: #878d99;
+}
+
+.custom-theme .el-select .el-tag__close.el-icon-close::before {
+ display: block;
+ -webkit-transform: translate(0, 0.5px);
+ transform: translate(0, 0.5px);
+}
+
+.custom-theme .el-select__tag {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ font-size: 14px;
+ border-radius: 4px;
+ color: #fff;
+ background-color: #262729;
+}
+
+.custom-theme .el-select__tag .el-icon-close {
+ font-size: 14px;
+}
+
+.custom-theme .el-button {
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-color: #d8dce5;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ -webkit-transition: 0.1s;
+ transition: 0.1s;
+ font-weight: 500;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button+.el-button {
+ margin-left: 10px;
+}
+
+.custom-theme .el-button.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-button:focus,
+.custom-theme .el-button:hover {
+ color: #262729;
+ border-color: #bebebf;
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-button:active {
+ color: #222325;
+ border-color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button::-moz-focus-inner {
+ border: 0;
+}
+
+.custom-theme .el-button [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-button.is-plain:focus,
+.custom-theme .el-button.is-plain:hover {
+ background: #fff;
+ border-color: #262729;
+ color: #262729;
+}
+
+.custom-theme .el-button.is-plain:active {
+ background: #fff;
+ border-color: #222325;
+ color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button.is-active {
+ color: #222325;
+ border-color: #222325;
+}
+
+.custom-theme .el-button.is-disabled,
+.custom-theme .el-button.is-disabled:focus,
+.custom-theme .el-button.is-disabled:hover {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+}
+
+.custom-theme .el-button.is-disabled.el-button--text {
+ background-color: transparent;
+}
+
+.custom-theme .el-button.is-disabled.is-plain,
+.custom-theme .el-button.is-disabled.is-plain:focus,
+.custom-theme .el-button.is-disabled.is-plain:hover {
+ background-color: #fff;
+ border-color: #e6ebf5;
+ color: #b4bccc;
+}
+
+.custom-theme .el-button.is-loading {
+ position: relative;
+ pointer-events: none;
+}
+
+.custom-theme .el-button.is-loading:before {
+ pointer-events: none;
+ content: '';
+ position: absolute;
+ left: -1px;
+ top: -1px;
+ right: -1px;
+ bottom: -1px;
+ border-radius: inherit;
+ background-color: rgba(255, 255, 255, 0.35);
+}
+
+.custom-theme .el-button.is-round {
+ border-radius: 20px;
+ padding: 12px 23px;
+}
+
+.custom-theme .el-button--primary {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-button--primary:focus,
+.custom-theme .el-button--primary:hover {
+ background: #515254;
+ border-color: #515254;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-disabled,
+.custom-theme .el-button--primary.is-disabled:active,
+.custom-theme .el-button--primary.is-disabled:focus,
+.custom-theme .el-button--primary.is-disabled:hover {
+ color: #fff;
+ background-color: #939394;
+ border-color: #939394;
+}
+
+.custom-theme .el-button--primary.is-plain {
+ color: #262729;
+ background: #e9e9ea;
+ border-color: #a8a9a9;
+}
+
+.custom-theme .el-button--primary.is-plain:focus,
+.custom-theme .el-button--primary.is-plain:hover {
+ background: #262729;
+ border-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-plain:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-plain.is-disabled,
+.custom-theme .el-button--primary.is-plain.is-disabled:active,
+.custom-theme .el-button--primary.is-plain.is-disabled:focus,
+.custom-theme .el-button--primary.is-plain.is-disabled:hover {
+ color: #7d7d7f;
+ background-color: #e9e9ea;
+ border-color: #d4d4d4;
+}
+
+.custom-theme .el-button--success {
+ color: #fff;
+ background-color: #409167;
+ border-color: #409167;
+}
+
+.custom-theme .el-button--success:focus,
+.custom-theme .el-button--success:hover {
+ background: #66a785;
+ border-color: #66a785;
+ color: #fff;
+}
+
+.custom-theme .el-button--success:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-disabled,
+.custom-theme .el-button--success.is-disabled:active,
+.custom-theme .el-button--success.is-disabled:focus,
+.custom-theme .el-button--success.is-disabled:hover {
+ color: #fff;
+ background-color: #a0c8b3;
+ border-color: #a0c8b3;
+}
+
+.custom-theme .el-button--success.is-plain {
+ color: #409167;
+ background: #ecf4f0;
+ border-color: #b3d3c2;
+}
+
+.custom-theme .el-button--success.is-plain:focus,
+.custom-theme .el-button--success.is-plain:hover {
+ background: #409167;
+ border-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-plain:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-plain.is-disabled,
+.custom-theme .el-button--success.is-plain.is-disabled:active,
+.custom-theme .el-button--success.is-plain.is-disabled:focus,
+.custom-theme .el-button--success.is-plain.is-disabled:hover {
+ color: #8cbda4;
+ background-color: #ecf4f0;
+ border-color: #d9e9e1;
+}
+
+.custom-theme .el-button--warning {
+ color: #fff;
+ background-color: #9da408;
+ border-color: #9da408;
+}
+
+.custom-theme .el-button--warning:focus,
+.custom-theme .el-button--warning:hover {
+ background: #b1b639;
+ border-color: #b1b639;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-disabled,
+.custom-theme .el-button--warning.is-disabled:active,
+.custom-theme .el-button--warning.is-disabled:focus,
+.custom-theme .el-button--warning.is-disabled:hover {
+ color: #fff;
+ background-color: #ced284;
+ border-color: #ced284;
+}
+
+.custom-theme .el-button--warning.is-plain {
+ color: #9da408;
+ background: #f5f6e6;
+ border-color: #d8db9c;
+}
+
+.custom-theme .el-button--warning.is-plain:focus,
+.custom-theme .el-button--warning.is-plain:hover {
+ background: #9da408;
+ border-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-plain:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-plain.is-disabled,
+.custom-theme .el-button--warning.is-plain.is-disabled:active,
+.custom-theme .el-button--warning.is-plain.is-disabled:focus,
+.custom-theme .el-button--warning.is-plain.is-disabled:hover {
+ color: #c4c86b;
+ background-color: #f5f6e6;
+ border-color: #ebedce;
+}
+
+.custom-theme .el-button--danger {
+ color: #fff;
+ background-color: #b3450e;
+ border-color: #b3450e;
+}
+
+.custom-theme .el-button--danger:focus,
+.custom-theme .el-button--danger:hover {
+ background: #c26a3e;
+ border-color: #c26a3e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-disabled,
+.custom-theme .el-button--danger.is-disabled:active,
+.custom-theme .el-button--danger.is-disabled:focus,
+.custom-theme .el-button--danger.is-disabled:hover {
+ color: #fff;
+ background-color: #d9a287;
+ border-color: #d9a287;
+}
+
+.custom-theme .el-button--danger.is-plain {
+ color: #b3450e;
+ background: #f7ece7;
+ border-color: #e1b59f;
+}
+
+.custom-theme .el-button--danger.is-plain:focus,
+.custom-theme .el-button--danger.is-plain:hover {
+ background: #b3450e;
+ border-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-plain:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-plain.is-disabled,
+.custom-theme .el-button--danger.is-plain.is-disabled:active,
+.custom-theme .el-button--danger.is-plain.is-disabled:focus,
+.custom-theme .el-button--danger.is-plain.is-disabled:hover {
+ color: #d18f6e;
+ background-color: #f7ece7;
+ border-color: #f0dacf;
+}
+
+.custom-theme .el-button--info {
+ color: #fff;
+ background-color: #0a76a4;
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-button--info:focus,
+.custom-theme .el-button--info:hover {
+ background: #3b91b6;
+ border-color: #3b91b6;
+ color: #fff;
+}
+
+.custom-theme .el-button--info:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-disabled,
+.custom-theme .el-button--info.is-disabled:active,
+.custom-theme .el-button--info.is-disabled:focus,
+.custom-theme .el-button--info.is-disabled:hover {
+ color: #fff;
+ background-color: #85bbd2;
+ border-color: #85bbd2;
+}
+
+.custom-theme .el-button--info.is-plain {
+ color: #0a76a4;
+ background: #e7f1f6;
+ border-color: #9dc8db;
+}
+
+.custom-theme .el-button--info.is-plain:focus,
+.custom-theme .el-button--info.is-plain:hover {
+ background: #0a76a4;
+ border-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-plain:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-plain.is-disabled,
+.custom-theme .el-button--info.is-plain.is-disabled:active,
+.custom-theme .el-button--info.is-plain.is-disabled:focus,
+.custom-theme .el-button--info.is-plain.is-disabled:hover {
+ color: #6cadc8;
+ background-color: #e7f1f6;
+ border-color: #cee4ed;
+}
+
+.custom-theme .el-button--medium {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button--medium.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-button--small {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--small.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-button--mini {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--mini.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-button--text {
+ border: none;
+ color: #262729;
+ background: 0 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.custom-theme .el-button--text:focus,
+.custom-theme .el-button--text:hover {
+ color: #515254;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button--text:active {
+ color: #222325;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button-group {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-button-group::after,
+.custom-theme .el-button-group::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-button-group::after {
+ clear: both;
+}
+
+.custom-theme .el-button-group .el-button {
+ float: left;
+ position: relative;
+}
+
+.custom-theme .el-button-group .el-button+.el-button {
+ margin-left: 0;
+}
+
+.custom-theme .el-button-group .el-button:first-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:last-child) {
+ margin-right: -1px;
+}
+
+.custom-theme .el-button-group .el-button:active,
+.custom-theme .el-button-group .el-button:focus,
+.custom-theme .el-button-group .el-button:hover {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button.is-active {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button--primary:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-checkbox {
+ color: #5a5e66;
+ font-weight: 500;
+ font-size: 14px;
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-checkbox.is-bordered {
+ padding: 9px 20px 9px 10px;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-checked {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-disabled {
+ border-color: #e6ebf5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered {
+ margin-left: 10px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium {
+ padding: 7px 20px 7px 10px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label {
+ line-height: 17px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner {
+ height: 14px;
+ width: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small {
+ padding: 3px 15px 7px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label {
+ line-height: 15px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini {
+ padding: 1px 15px 5px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label {
+ line-height: 12px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox__input {
+ white-space: nowrap;
+ cursor: pointer;
+ outline: 0;
+ display: inline-block;
+ line-height: 1;
+ position: relative;
+ vertical-align: middle;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after {
+ cursor: not-allowed;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before {
+ background-color: #b4bccc;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after {
+ -webkit-transform: rotate(45deg) scaleY(1);
+ transform: rotate(45deg) scaleY(1);
+}
+
+.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before {
+ content: '';
+ position: absolute;
+ display: block;
+ background-color: #fff;
+ height: 2px;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ left: 0;
+ right: 0;
+ top: 5px;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after {
+ display: none;
+}
+
+.custom-theme .el-checkbox__inner {
+ display: inline-block;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 2px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 14px;
+ height: 14px;
+ background-color: #fff;
+ z-index: 1;
+ -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+ transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+}
+
+.custom-theme .el-checkbox__inner:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__inner::after {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ content: '';
+ border: 1px solid #fff;
+ border-left: 0;
+ border-top: 0;
+ height: 7px;
+ left: 4px;
+ position: absolute;
+ top: 1px;
+ -webkit-transform: rotate(45deg) scaleY(0);
+ transform: rotate(45deg) scaleY(0);
+ width: 3px;
+ -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms,
+ -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ -webkit-transform-origin: center;
+ transform-origin: center;
+}
+
+.custom-theme .el-checkbox__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ width: 0;
+ height: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox__label {
+ display: inline-block;
+ padding-left: 10px;
+ line-height: 19px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox+.el-checkbox {
+ margin-left: 30px;
+}
+
+.custom-theme .el-checkbox-button {
+ position: relative;
+ display: inline-block;
+}
+
+.custom-theme .el-checkbox-button__inner {
+ display: inline-block;
+ line-height: 1;
+ font-weight: 500;
+ white-space: nowrap;
+ vertical-align: middle;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-left: 0;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ position: relative;
+ -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button__inner.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-checkbox-button__inner:hover {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-'] {
+ line-height: 0.9;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-checkbox-button__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+ -webkit-box-shadow: -1px 0 0 0 #7d7d7f;
+ box-shadow: -1px 0 0 0 #7d7d7f;
+}
+
+.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner {
+ border-left: 1px solid #d8dce5;
+ border-radius: 4px 0 0 4px;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner {
+ border-radius: 0 4px 4px 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-checkbox-group {
+ font-size: 0;
+}
+
+.custom-theme .el-tag {
+ background-color: rgba(38, 39, 41, 0.1);
+ display: inline-block;
+ padding: 0 10px;
+ height: 32px;
+ line-height: 30px;
+ font-size: 12px;
+ color: #262729;
+ border-radius: 4px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid rgba(38, 39, 41, 0.2);
+ white-space: nowrap;
+}
+
+.custom-theme .el-tag .el-icon-close {
+ border-radius: 50%;
+ text-align: center;
+ position: relative;
+ cursor: pointer;
+ font-size: 12px;
+ height: 18px;
+ width: 18px;
+ line-height: 18px;
+ vertical-align: middle;
+ top: -1px;
+ right: -5px;
+ color: #262729;
+}
+
+.custom-theme .el-tag .el-icon-close::before {
+ display: block;
+}
+
+.custom-theme .el-tag .el-icon-close:hover {
+ background-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-tag--info {
+ background-color: rgba(10, 118, 164, 0.1);
+ border-color: rgba(10, 118, 164, 0.2);
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info.is-hit {
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close {
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close:hover {
+ background-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-tag--success {
+ background-color: rgba(64, 145, 103, 0.1);
+ border-color: rgba(64, 145, 103, 0.2);
+ color: #409167;
+}
+
+.custom-theme .el-tag--success.is-hit {
+ border-color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close {
+ color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close:hover {
+ background-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-tag--warning {
+ background-color: rgba(157, 164, 8, 0.1);
+ border-color: rgba(157, 164, 8, 0.2);
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning.is-hit {
+ border-color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close {
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close:hover {
+ background-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-tag--danger {
+ background-color: rgba(179, 69, 14, 0.1);
+ border-color: rgba(179, 69, 14, 0.2);
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger.is-hit {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close {
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close:hover {
+ background-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-tag--medium {
+ height: 28px;
+ line-height: 26px;
+}
+
+.custom-theme .el-tag--medium .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--small {
+ height: 24px;
+ padding: 0 8px;
+ line-height: 22px;
+}
+
+.custom-theme .el-tag--small .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--mini {
+ height: 20px;
+ padding: 0 5px;
+ line-height: 19px;
+}
+
+.custom-theme .el-tag--mini .el-icon-close {
+ margin-left: -3px;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.custom-theme .el-table {
+ position: relative;
+ overflow: hidden;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ width: 100%;
+ max-width: 100%;
+ background-color: #fff;
+ font-size: 14px;
+ color: #5a5e66;
+}
+
+.custom-theme .el-table__empty-block {
+ position: relative;
+ min-height: 60px;
+ text-align: center;
+ width: 100%;
+ height: 100%;
+}
+
+.custom-theme .el-table__empty-text {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ color: color(#262729 s(16%) l(44%));
+}
+
+.custom-theme .el-table__expand-column .cell {
+ padding: 0;
+ text-align: center;
+}
+
+.custom-theme .el-table__expand-icon {
+ position: relative;
+ cursor: pointer;
+ color: #666;
+ font-size: 12px;
+ -webkit-transition: -webkit-transform 0.2s ease-in-out;
+ transition: -webkit-transform 0.2s ease-in-out;
+ transition: transform 0.2s ease-in-out;
+ transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+ height: 20px;
+}
+
+.custom-theme .el-table__expand-icon--expanded {
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.custom-theme .el-table__expand-icon>.el-icon {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -5px;
+ margin-top: -5px;
+}
+
+.custom-theme .el-table__expanded-cell {
+ background-color: #fff;
+}
+
+.custom-theme .el-table__expanded-cell[class*='cell'] {
+ padding: 20px 50px;
+}
+
+.custom-theme .el-table__expanded-cell:hover {
+ background-color: #f5f7fa !important;
+}
+
+.custom-theme .el-table--fit {
+ border-right: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-table--fit td.gutter,
+.custom-theme .el-table--fit th.gutter {
+ border-right-width: 1px;
+}
+
+.custom-theme .el-table thead {
+ color: #878d99;
+ font-weight: 500;
+}
+
+.custom-theme .el-table thead.is-group th {
+ background: #f5f7fa;
+}
+
+.custom-theme .el-table td,
+.custom-theme .el-table th {
+ padding: 12px 0;
+ min-width: 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ text-overflow: ellipsis;
+ vertical-align: middle;
+ position: relative;
+}
+
+.custom-theme .el-table td.is-center,
+.custom-theme .el-table th.is-center {
+ text-align: center;
+}
+
+.custom-theme .el-table td.is-left,
+.custom-theme .el-table th.is-left {
+ text-align: left;
+}
+
+.custom-theme .el-table td.is-right,
+.custom-theme .el-table th.is-right {
+ text-align: right;
+}
+
+.custom-theme .el-table td.gutter,
+.custom-theme .el-table th.gutter {
+ width: 15px;
+ border-right-width: 0;
+ border-bottom-width: 0;
+ padding: 0;
+}
+
+.custom-theme .el-table td.is-hidden>*,
+.custom-theme .el-table th.is-hidden>* {
+ visibility: hidden;
+}
+
+.custom-theme .el-table--medium td,
+.custom-theme .el-table--medium th {
+ padding: 10px 0;
+}
+
+.custom-theme .el-table--small {
+ font-size: 12px;
+}
+
+.custom-theme .el-table--small td,
+.custom-theme .el-table--small th {
+ padding: 8px 0;
+}
+
+.custom-theme .el-table--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-table--mini td,
+.custom-theme .el-table--mini th {
+ padding: 6px 0;
+}
+
+.custom-theme .el-table tr {
+ background-color: #fff;
+}
+
+.custom-theme .el-table tr input[type='checkbox'] {
+ margin: 0;
+}
+
+.custom-theme .el-table td,
+.custom-theme .el-table th.is-leaf {
+ border-bottom: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table th.is-sortable {
+ cursor: pointer;
+}
+
+.custom-theme .el-table th {
+ white-space: nowrap;
+ overflow: hidden;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ text-align: left;
+}
+
+.custom-theme .el-table th div {
+ display: inline-block;
+ padding-left: 10px;
+ padding-right: 10px;
+ line-height: 40px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.custom-theme .el-table th>.cell {
+ position: relative;
+ word-wrap: normal;
+ text-overflow: ellipsis;
+ display: inline-block;
+ vertical-align: middle;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-table th>.cell.highlight {
+ color: #262729;
+}
+
+.custom-theme .el-table th.required>div::before {
+ display: inline-block;
+ content: '';
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: #ff4d51;
+ margin-right: 5px;
+ vertical-align: middle;
+}
+
+.custom-theme .el-table td div {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-table td.gutter {
+ width: 0;
+}
+
+.custom-theme .el-table .cell {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: normal;
+ word-break: break-all;
+ line-height: 23px;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+.custom-theme .el-table .cell.el-tooltip {
+ white-space: nowrap;
+ min-width: 50px;
+}
+
+.custom-theme .el-table td:first-child .cell,
+.custom-theme .el-table th:first-child .cell {
+ padding-left: 0;
+}
+
+.custom-theme .el-table--border,
+.custom-theme .el-table--group {
+ border: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table--border::after,
+.custom-theme .el-table--group::after,
+.custom-theme .el-table::before {
+ content: '';
+ position: absolute;
+ background-color: #e6ebf5;
+ z-index: 1;
+}
+
+.custom-theme .el-table--border::after,
+.custom-theme .el-table--group::after {
+ top: 0;
+ right: 0;
+ width: 1px;
+ height: 100%;
+}
+
+.custom-theme .el-table::before {
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 1px;
+}
+
+.custom-theme .el-table--border {
+ border-right: none;
+ border-bottom: none;
+}
+
+.custom-theme .el-table--border td,
+.custom-theme .el-table--border th {
+ border-right: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table--border td:first-child .cell,
+.custom-theme .el-table--border th:first-child .cell {
+ padding-left: 10px;
+}
+
+.custom-theme .el-table--border .has-gutter td:nth-last-of-type(2),
+.custom-theme .el-table--border .has-gutter th:nth-last-of-type(2) {
+ border-right: none;
+}
+
+.custom-theme .el-table--border th.gutter:last-of-type {
+ border-bottom: 1px solid #e6ebf5;
+ border-bottom-width: 1px;
+}
+
+.custom-theme .el-table--border th {
+ border-bottom: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table--hidden {
+ visibility: hidden;
+}
+
+.custom-theme .el-table__fixed,
+.custom-theme .el-table__fixed-right {
+ position: absolute;
+ top: 0;
+ left: 0;
+ overflow-x: hidden;
+ -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.12);
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.12);
+}
+
+.custom-theme .el-table__fixed-right::before,
+.custom-theme .el-table__fixed::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 1px;
+ background-color: #e6ebf5;
+ z-index: 4;
+}
+
+.custom-theme .el-table__fixed-right-patch {
+ position: absolute;
+ top: -1px;
+ right: 0;
+ background-color: #fff;
+ border-bottom: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table__fixed-right {
+ top: 0;
+ left: auto;
+ right: 0;
+}
+
+.custom-theme .el-table__fixed-right .el-table__fixed-body-wrapper,
+.custom-theme .el-table__fixed-right .el-table__fixed-footer-wrapper,
+.custom-theme .el-table__fixed-right .el-table__fixed-header-wrapper {
+ left: auto;
+ right: 0;
+}
+
+.custom-theme .el-table__fixed-header-wrapper {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 3;
+}
+
+.custom-theme .el-table__fixed-footer-wrapper {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ z-index: 3;
+}
+
+.custom-theme .el-table__fixed-footer-wrapper tbody td {
+ border-top: 1px solid #e6ebf5;
+ background-color: #f5f7fa;
+ color: #5a5e66;
+}
+
+.custom-theme .el-table__fixed-body-wrapper {
+ position: absolute;
+ left: 0;
+ top: 37px;
+ overflow: hidden;
+ z-index: 3;
+}
+
+.custom-theme .el-table__body-wrapper,
+.custom-theme .el-table__footer-wrapper,
+.custom-theme .el-table__header-wrapper {
+ width: 100%;
+}
+
+.custom-theme .el-table__footer-wrapper {
+ margin-top: -1px;
+}
+
+.custom-theme .el-table__footer-wrapper td {
+ border-top: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table__body,
+.custom-theme .el-table__footer,
+.custom-theme .el-table__header {
+ table-layout: fixed;
+}
+
+.custom-theme .el-table__footer-wrapper,
+.custom-theme .el-table__header-wrapper {
+ overflow: hidden;
+}
+
+.custom-theme .el-table__footer-wrapper tbody td,
+.custom-theme .el-table__header-wrapper tbody td {
+ background-color: #f5f7fa;
+ color: #5a5e66;
+}
+
+.custom-theme .el-table__body-wrapper {
+ overflow: auto;
+ position: relative;
+}
+
+.custom-theme .el-table__body-wrapper.is-scroll-none~.el-table__fixed,
+.custom-theme .el-table__body-wrapper.is-scroll-none~.el-table__fixed-right {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-table__body-wrapper.is-scroll-left~.el-table__fixed {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-table__body-wrapper.is-scroll-right~.el-table__fixed-right {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-table__body-wrapper .el-table--border.is-scroll-right~.el-table__fixed-right {
+ border-left: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table__body-wrapper .el-table--border.is-scroll-left~.el-table__fixed {
+ border-right: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-table .caret-wrapper {
+ position: relative;
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ height: 13px;
+ width: 24px;
+ cursor: pointer;
+ overflow: initial;
+}
+
+.custom-theme .el-table .sort-caret {
+ color: #0a76a4;
+ width: 14px;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.custom-theme .el-table .ascending .sort-caret.ascending {
+ color: #262729;
+}
+
+.custom-theme .el-table .descending .sort-caret.descending {
+ color: #262729;
+}
+
+.custom-theme .el-table .hidden-columns {
+ visibility: hidden;
+ position: absolute;
+ z-index: -1;
+}
+
+.custom-theme .el-table--striped .el-table__body tr.el-table__row--striped td {
+ background: #fafafa;
+}
+
+.custom-theme .el-table--striped .el-table__body tr.el-table__row--striped.current-row td {
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-table__body tr.hover-row.current-row>td,
+.custom-theme .el-table__body tr.hover-row.el-table__row--striped.current-row>td,
+.custom-theme .el-table__body tr.hover-row.el-table__row--striped>td,
+.custom-theme .el-table__body tr.hover-row>td {
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-table__body tr.current-row>td {
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-table__column-resize-proxy {
+ position: absolute;
+ left: 200px;
+ top: 0;
+ bottom: 0;
+ width: 0;
+ border-left: 1px solid #e6ebf5;
+ z-index: 10;
+}
+
+.custom-theme .el-table__column-filter-trigger {
+ display: inline-block;
+ line-height: 34px;
+ cursor: pointer;
+}
+
+.custom-theme .el-table__column-filter-trigger i {
+ color: #0a76a4;
+ font-size: 12px;
+ -webkit-transform: scale(0.75);
+ transform: scale(0.75);
+}
+
+.custom-theme .el-table--enable-row-transition .el-table__body td {
+ -webkit-transition: background-color 0.25s ease;
+ transition: background-color 0.25s ease;
+}
+
+.custom-theme .el-table--enable-row-hover .el-table__body tr:hover>td {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-table--fluid-height .el-table__fixed,
+.custom-theme .el-table--fluid-height .el-table__fixed-right {
+ bottom: 0;
+ overflow: hidden;
+}
+
+.custom-theme .el-checkbox {
+ color: #5a5e66;
+ font-weight: 500;
+ font-size: 14px;
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-checkbox.is-bordered {
+ padding: 9px 20px 9px 10px;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-checked {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-disabled {
+ border-color: #e6ebf5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered {
+ margin-left: 10px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium {
+ padding: 7px 20px 7px 10px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label {
+ line-height: 17px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner {
+ height: 14px;
+ width: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small {
+ padding: 3px 15px 7px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label {
+ line-height: 15px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini {
+ padding: 1px 15px 5px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label {
+ line-height: 12px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox__input {
+ white-space: nowrap;
+ cursor: pointer;
+ outline: 0;
+ display: inline-block;
+ line-height: 1;
+ position: relative;
+ vertical-align: middle;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after {
+ cursor: not-allowed;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before {
+ background-color: #b4bccc;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after {
+ -webkit-transform: rotate(45deg) scaleY(1);
+ transform: rotate(45deg) scaleY(1);
+}
+
+.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before {
+ content: '';
+ position: absolute;
+ display: block;
+ background-color: #fff;
+ height: 2px;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ left: 0;
+ right: 0;
+ top: 5px;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after {
+ display: none;
+}
+
+.custom-theme .el-checkbox__inner {
+ display: inline-block;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 2px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 14px;
+ height: 14px;
+ background-color: #fff;
+ z-index: 1;
+ -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+ transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+}
+
+.custom-theme .el-checkbox__inner:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__inner::after {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ content: '';
+ border: 1px solid #fff;
+ border-left: 0;
+ border-top: 0;
+ height: 7px;
+ left: 4px;
+ position: absolute;
+ top: 1px;
+ -webkit-transform: rotate(45deg) scaleY(0);
+ transform: rotate(45deg) scaleY(0);
+ width: 3px;
+ -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms,
+ -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ -webkit-transform-origin: center;
+ transform-origin: center;
+}
+
+.custom-theme .el-checkbox__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ width: 0;
+ height: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox__label {
+ display: inline-block;
+ padding-left: 10px;
+ line-height: 19px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox+.el-checkbox {
+ margin-left: 30px;
+}
+
+.custom-theme .el-checkbox-button {
+ position: relative;
+ display: inline-block;
+}
+
+.custom-theme .el-checkbox-button__inner {
+ display: inline-block;
+ line-height: 1;
+ font-weight: 500;
+ white-space: nowrap;
+ vertical-align: middle;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-left: 0;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ position: relative;
+ -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button__inner.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-checkbox-button__inner:hover {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-'] {
+ line-height: 0.9;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-checkbox-button__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+ -webkit-box-shadow: -1px 0 0 0 #7d7d7f;
+ box-shadow: -1px 0 0 0 #7d7d7f;
+}
+
+.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner {
+ border-left: 1px solid #d8dce5;
+ border-radius: 4px 0 0 4px;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner {
+ border-radius: 0 4px 4px 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-checkbox-group {
+ font-size: 0;
+}
+
+.custom-theme .el-tag {
+ background-color: rgba(38, 39, 41, 0.1);
+ display: inline-block;
+ padding: 0 10px;
+ height: 32px;
+ line-height: 30px;
+ font-size: 12px;
+ color: #262729;
+ border-radius: 4px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid rgba(38, 39, 41, 0.2);
+ white-space: nowrap;
+}
+
+.custom-theme .el-tag .el-icon-close {
+ border-radius: 50%;
+ text-align: center;
+ position: relative;
+ cursor: pointer;
+ font-size: 12px;
+ height: 18px;
+ width: 18px;
+ line-height: 18px;
+ vertical-align: middle;
+ top: -1px;
+ right: -5px;
+ color: #262729;
+}
+
+.custom-theme .el-tag .el-icon-close::before {
+ display: block;
+}
+
+.custom-theme .el-tag .el-icon-close:hover {
+ background-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-tag--info {
+ background-color: rgba(10, 118, 164, 0.1);
+ border-color: rgba(10, 118, 164, 0.2);
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info.is-hit {
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close {
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close:hover {
+ background-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-tag--success {
+ background-color: rgba(64, 145, 103, 0.1);
+ border-color: rgba(64, 145, 103, 0.2);
+ color: #409167;
+}
+
+.custom-theme .el-tag--success.is-hit {
+ border-color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close {
+ color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close:hover {
+ background-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-tag--warning {
+ background-color: rgba(157, 164, 8, 0.1);
+ border-color: rgba(157, 164, 8, 0.2);
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning.is-hit {
+ border-color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close {
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close:hover {
+ background-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-tag--danger {
+ background-color: rgba(179, 69, 14, 0.1);
+ border-color: rgba(179, 69, 14, 0.2);
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger.is-hit {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close {
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close:hover {
+ background-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-tag--medium {
+ height: 28px;
+ line-height: 26px;
+}
+
+.custom-theme .el-tag--medium .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--small {
+ height: 24px;
+ padding: 0 8px;
+ line-height: 22px;
+}
+
+.custom-theme .el-tag--small .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--mini {
+ height: 20px;
+ padding: 0 5px;
+ line-height: 19px;
+}
+
+.custom-theme .el-tag--mini .el-icon-close {
+ margin-left: -3px;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.custom-theme .el-table-column--selection .cell {
+ padding-left: 14px;
+ padding-right: 14px;
+}
+
+.custom-theme .el-table-filter {
+ border: solid 1px #e6ebf5;
+ border-radius: 2px;
+ background-color: #fff;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 2px 0;
+}
+
+.custom-theme .el-table-filter__list {
+ padding: 5px 0;
+ margin: 0;
+ list-style: none;
+ min-width: 100px;
+}
+
+.custom-theme .el-table-filter__list-item {
+ line-height: 36px;
+ padding: 0 10px;
+ cursor: pointer;
+ font-size: 14px;
+}
+
+.custom-theme .el-table-filter__list-item:hover {
+ background-color: #e9e9ea;
+ color: #515254;
+}
+
+.custom-theme .el-table-filter__list-item.is-active {
+ background-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-table-filter__content {
+ min-width: 100px;
+}
+
+.custom-theme .el-table-filter__bottom {
+ border-top: 1px solid #e6ebf5;
+ padding: 8px;
+}
+
+.custom-theme .el-table-filter__bottom button {
+ background: 0 0;
+ border: none;
+ color: #5a5e66;
+ cursor: pointer;
+ font-size: 13px;
+ padding: 0 3px;
+}
+
+.custom-theme .el-table-filter__bottom button:hover {
+ color: #262729;
+}
+
+.custom-theme .el-table-filter__bottom button:focus {
+ outline: 0;
+}
+
+.custom-theme .el-table-filter__bottom button.is-disabled {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-table-filter__checkbox-group {
+ padding: 10px;
+}
+
+.custom-theme .el-table-filter__checkbox-group label.el-checkbox {
+ display: block;
+ margin-bottom: 8px;
+ margin-left: 5px;
+}
+
+.custom-theme .el-table-filter__checkbox-group .el-checkbox:last-child {
+ margin-bottom: 0;
+}
+
+.custom-theme .el-date-table {
+ font-size: 12px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover div {
+ background-color: #edf2fc;
+}
+
+.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td.available:hover {
+ color: #5a5e66;
+}
+
+.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td:first-child div {
+ margin-left: 5px;
+ border-top-left-radius: 15px;
+ border-bottom-left-radius: 15px;
+}
+
+.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td:last-child div {
+ margin-right: 5px;
+ border-top-right-radius: 15px;
+ border-bottom-right-radius: 15px;
+}
+
+.custom-theme .el-date-table.is-week-mode .el-date-table__row.current div {
+ background-color: #edf2fc;
+}
+
+.custom-theme .el-date-table td {
+ width: 32px;
+ height: 30px;
+ padding: 4px 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ text-align: center;
+ cursor: pointer;
+ position: relative;
+}
+
+.custom-theme .el-date-table td div {
+ height: 30px;
+ padding: 3px 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-date-table td span {
+ width: 24px;
+ height: 24px;
+ display: block;
+ margin: 0 auto;
+ line-height: 24px;
+ position: absolute;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ border-radius: 50%;
+}
+
+.custom-theme .el-date-table td.next-month,
+.custom-theme .el-date-table td.prev-month {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-table td.today {
+ position: relative;
+}
+
+.custom-theme .el-date-table td.today span {
+ color: #262729;
+}
+
+.custom-theme .el-date-table td.today.end-date span,
+.custom-theme .el-date-table td.today.start-date span {
+ color: #fff;
+}
+
+.custom-theme .el-date-table td.available:hover {
+ color: #262729;
+}
+
+.custom-theme .el-date-table td.in-range div {
+ background-color: #edf2fc;
+}
+
+.custom-theme .el-date-table td.in-range div:hover {
+ background-color: #edf2fc;
+}
+
+.custom-theme .el-date-table td.current:not(.disabled) span {
+ color: #fff;
+ background-color: #262729;
+}
+
+.custom-theme .el-date-table td.end-date div,
+.custom-theme .el-date-table td.start-date div {
+ color: #fff;
+}
+
+.custom-theme .el-date-table td.end-date span,
+.custom-theme .el-date-table td.start-date span {
+ background-color: #262729;
+}
+
+.custom-theme .el-date-table td.start-date div {
+ margin-left: 5px;
+ border-top-left-radius: 15px;
+ border-bottom-left-radius: 15px;
+}
+
+.custom-theme .el-date-table td.end-date div {
+ margin-right: 5px;
+ border-top-right-radius: 15px;
+ border-bottom-right-radius: 15px;
+}
+
+.custom-theme .el-date-table td.disabled div {
+ background-color: #f5f7fa;
+ opacity: 1;
+ cursor: not-allowed;
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-table td.week {
+ font-size: 80%;
+ color: #5a5e66;
+}
+
+.custom-theme .el-date-table th {
+ padding: 5px;
+ color: #5a5e66;
+ font-weight: 400;
+ border-bottom: solid 1px #e6ebf5;
+}
+
+.custom-theme .el-month-table {
+ font-size: 12px;
+ margin: -1px;
+ border-collapse: collapse;
+}
+
+.custom-theme .el-month-table td {
+ text-align: center;
+ padding: 20px 3px;
+ cursor: pointer;
+}
+
+.custom-theme .el-month-table td.disabled .cell {
+ background-color: #f5f7fa;
+ cursor: not-allowed;
+ color: #b4bccc;
+}
+
+.custom-theme .el-month-table td.disabled .cell:hover {
+ color: #b4bccc;
+}
+
+.custom-theme .el-month-table td .cell {
+ width: 48px;
+ height: 32px;
+ display: block;
+ line-height: 32px;
+ color: #5a5e66;
+ margin: 0 auto;
+}
+
+.custom-theme .el-month-table td .cell:hover {
+ color: #262729;
+}
+
+.custom-theme .el-month-table td.current:not(.disabled) .cell {
+ color: #262729;
+}
+
+.custom-theme .el-year-table {
+ font-size: 12px;
+ margin: -1px;
+ border-collapse: collapse;
+}
+
+.custom-theme .el-year-table .el-icon {
+ color: #2d2f33;
+}
+
+.custom-theme .el-year-table td {
+ text-align: center;
+ padding: 20px 3px;
+ cursor: pointer;
+}
+
+.custom-theme .el-year-table td.disabled .cell {
+ background-color: #f5f7fa;
+ cursor: not-allowed;
+ color: #b4bccc;
+}
+
+.custom-theme .el-year-table td.disabled .cell:hover {
+ color: #b4bccc;
+}
+
+.custom-theme .el-year-table td .cell {
+ width: 48px;
+ height: 32px;
+ display: block;
+ line-height: 32px;
+ color: #5a5e66;
+ margin: 0 auto;
+}
+
+.custom-theme .el-year-table td .cell:hover {
+ color: #262729;
+}
+
+.custom-theme .el-year-table td.current:not(.disabled) .cell {
+ color: #262729;
+}
+
+.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper {
+ width: 33.3%;
+}
+
+.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper:nth-child(2) {
+ margin-left: 1%;
+}
+
+.custom-theme .el-time-spinner__wrapper {
+ max-height: 190px;
+ overflow: auto;
+ display: inline-block;
+ width: 50%;
+ vertical-align: top;
+ position: relative;
+}
+
+.custom-theme .el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) {
+ padding-bottom: 15px;
+}
+
+.custom-theme .el-time-spinner__wrapper.is-arrow {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ text-align: center;
+ overflow: hidden;
+}
+
+.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list {
+ -webkit-transform: translateY(-32px);
+ transform: translateY(-32px);
+}
+
+.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active) {
+ background: #fff;
+ cursor: default;
+}
+
+.custom-theme .el-time-spinner__arrow {
+ font-size: 12px;
+ color: #878d99;
+ position: absolute;
+ left: 0;
+ width: 100%;
+ z-index: 1;
+ text-align: center;
+ height: 30px;
+ line-height: 30px;
+ cursor: pointer;
+}
+
+.custom-theme .el-time-spinner__arrow:hover {
+ color: #262729;
+}
+
+.custom-theme .el-time-spinner__arrow.el-icon-arrow-up {
+ top: 10px;
+}
+
+.custom-theme .el-time-spinner__arrow.el-icon-arrow-down {
+ bottom: 10px;
+}
+
+.custom-theme .el-time-spinner__input.el-input {
+ width: 70%;
+}
+
+.custom-theme .el-time-spinner__input.el-input .el-input__inner {
+ padding: 0;
+ text-align: center;
+}
+
+.custom-theme .el-time-spinner__list {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ text-align: center;
+}
+
+.custom-theme .el-time-spinner__list::after,
+.custom-theme .el-time-spinner__list::before {
+ content: '';
+ display: block;
+ width: 100%;
+ height: 80px;
+}
+
+.custom-theme .el-time-spinner__item {
+ height: 32px;
+ line-height: 32px;
+ font-size: 12px;
+ color: #5a5e66;
+}
+
+.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active) {
+ background: #f5f7fa;
+ cursor: pointer;
+}
+
+.custom-theme .el-time-spinner__item.active:not(.disabled) {
+ color: #2d2f33;
+ font-weight: 700;
+}
+
+.custom-theme .el-time-spinner__item.disabled {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .fade-in-linear-enter-active,
+.custom-theme .fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .fade-in-linear-enter,
+.custom-theme .fade-in-linear-leave,
+.custom-theme .fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-linear-enter-active,
+.custom-theme .el-fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .el-fade-in-linear-enter,
+.custom-theme .el-fade-in-linear-leave,
+.custom-theme .el-fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-enter-active,
+.custom-theme .el-fade-in-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-fade-in-enter,
+.custom-theme .el-fade-in-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-zoom-in-center-enter-active,
+.custom-theme .el-zoom-in-center-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-zoom-in-center-enter,
+.custom-theme .el-zoom-in-center-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleX(0);
+ transform: scaleX(0);
+}
+
+.custom-theme .el-zoom-in-top-enter-active,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center top;
+ transform-origin: center top;
+}
+
+.custom-theme .el-zoom-in-top-enter,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-bottom-enter-active,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+}
+
+.custom-theme .el-zoom-in-bottom-enter,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-left-enter-active,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 1;
+ -webkit-transform: scale(1, 1);
+ transform: scale(1, 1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+}
+
+.custom-theme .el-zoom-in-left-enter,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 0;
+ -webkit-transform: scale(0.45, 0.45);
+ transform: scale(0.45, 0.45);
+}
+
+.custom-theme .collapse-transition {
+ -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+ transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+}
+
+.custom-theme .horizontal-collapse-transition {
+ -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+ transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+}
+
+.custom-theme .el-list-enter-active,
+.custom-theme .el-list-leave-active {
+ -webkit-transition: all 1s;
+ transition: all 1s;
+}
+
+.custom-theme .el-list-enter,
+.custom-theme .el-list-leave-active {
+ opacity: 0;
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+}
+
+.custom-theme .el-opacity-transition {
+ -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-date-editor {
+ position: relative;
+ display: inline-block;
+ text-align: left;
+}
+
+.custom-theme .el-date-editor.el-input,
+.custom-theme .el-date-editor.el-input__inner {
+ width: 220px;
+}
+
+.custom-theme .el-date-editor--daterange.el-input,
+.custom-theme .el-date-editor--daterange.el-input__inner,
+.custom-theme .el-date-editor--timerange.el-input,
+.custom-theme .el-date-editor--timerange.el-input__inner {
+ width: 350px;
+}
+
+.custom-theme .el-date-editor--datetimerange.el-input,
+.custom-theme .el-date-editor--datetimerange.el-input__inner {
+ width: 400px;
+}
+
+.custom-theme .el-date-editor .el-range__icon {
+ font-size: 14px;
+ margin-left: -5px;
+ color: #b4bccc;
+ float: left;
+ line-height: 32px;
+}
+
+.custom-theme .el-date-editor .el-range-input {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border: none;
+ outline: 0;
+ display: inline-block;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ width: 39%;
+ text-align: center;
+ font-size: 14px;
+ color: #5a5e66;
+}
+
+.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-separator {
+ display: inline-block;
+ height: 100%;
+ padding: 0 5px;
+ margin: 0;
+ text-align: center;
+ line-height: 32px;
+ font-size: 14px;
+ width: 5%;
+ color: #2d2f33;
+}
+
+.custom-theme .el-date-editor .el-range__close-icon {
+ font-size: 14px;
+ color: #b4bccc;
+ width: 25px;
+ display: inline-block;
+ float: right;
+ line-height: 32px;
+}
+
+.custom-theme .el-range-editor.el-input__inner {
+ padding: 3px 10px;
+}
+
+.custom-theme .el-range-editor.is-active {
+ border-color: #262729;
+}
+
+.custom-theme .el-range-editor.is-active:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-range-editor--medium.el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-range-editor--medium .el-range-separator {
+ line-height: 28px;
+ font-size: 14px;
+}
+
+.custom-theme .el-range-editor--medium .el-range-input {
+ font-size: 14px;
+}
+
+.custom-theme .el-range-editor--medium .el-range__close-icon,
+.custom-theme .el-range-editor--medium .el-range__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-range-editor--small.el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-range-editor--small .el-range-separator {
+ line-height: 24px;
+ font-size: 13px;
+}
+
+.custom-theme .el-range-editor--small .el-range-input {
+ font-size: 13px;
+}
+
+.custom-theme .el-range-editor--small .el-range__close-icon,
+.custom-theme .el-range-editor--small .el-range__icon {
+ line-height: 24px;
+}
+
+.custom-theme .el-range-editor--mini.el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-range-editor--mini .el-range-separator {
+ line-height: 20px;
+ font-size: 12px;
+}
+
+.custom-theme .el-range-editor--mini .el-range-input {
+ font-size: 12px;
+}
+
+.custom-theme .el-range-editor--mini .el-range__close-icon,
+.custom-theme .el-range-editor--mini .el-range__icon {
+ line-height: 20px;
+}
+
+.custom-theme .el-range-editor.is-disabled {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-range-editor.is-disabled:focus,
+.custom-theme .el-range-editor.is-disabled:hover {
+ border-color: #dfe4ed;
+}
+
+.custom-theme .el-range-editor.is-disabled input {
+ background-color: #f5f7fa;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled .el-range-separator {
+ color: #b4bccc;
+}
+
+.custom-theme .el-picker-panel {
+ color: #5a5e66;
+ border: 1px solid #dfe4ed;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ background: #fff;
+ border-radius: 4px;
+ line-height: 30px;
+ margin: 5px 0;
+}
+
+.custom-theme .el-picker-panel__body-wrapper::after,
+.custom-theme .el-picker-panel__body::after {
+ content: '';
+ display: table;
+ clear: both;
+}
+
+.custom-theme .el-picker-panel__content {
+ position: relative;
+ margin: 15px;
+}
+
+.custom-theme .el-picker-panel__footer {
+ border-top: 1px solid #e4e4e4;
+ padding: 4px;
+ text-align: right;
+ background-color: #fff;
+ position: relative;
+ font-size: 0;
+}
+
+.custom-theme .el-picker-panel__shortcut {
+ display: block;
+ width: 100%;
+ border: 0;
+ background-color: transparent;
+ line-height: 28px;
+ font-size: 14px;
+ color: #5a5e66;
+ padding-left: 12px;
+ text-align: left;
+ outline: 0;
+ cursor: pointer;
+}
+
+.custom-theme .el-picker-panel__shortcut:hover {
+ color: #262729;
+}
+
+.custom-theme .el-picker-panel__shortcut.active {
+ background-color: #e6f1fe;
+ color: #262729;
+}
+
+.custom-theme .el-picker-panel__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;
+}
+
+.custom-theme .el-picker-panel__btn[disabled] {
+ color: #ccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-picker-panel__icon-btn {
+ font-size: 12px;
+ color: #2d2f33;
+ border: 0;
+ background: 0 0;
+ cursor: pointer;
+ outline: 0;
+ margin-top: 8px;
+}
+
+.custom-theme .el-picker-panel__icon-btn:hover {
+ color: #262729;
+}
+
+.custom-theme .el-picker-panel__icon-btn.is-disabled {
+ color: #bbb;
+}
+
+.custom-theme .el-picker-panel__icon-btn.is-disabled:hover {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-picker-panel__link-btn {
+ vertical-align: middle;
+}
+
+.custom-theme .el-picker-panel .popper__arrow {
+ -webkit-transform: translateX(-400%);
+ transform: translateX(-400%);
+}
+
+.custom-theme .el-picker-panel [slot='sidebar'],
+.custom-theme .el-picker-panel__sidebar {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 110px;
+ border-right: 1px solid #e4e4e4;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding-top: 6px;
+ background-color: #fff;
+ overflow: auto;
+}
+
+.custom-theme .el-picker-panel [slot='sidebar']+.el-picker-panel__body,
+.custom-theme .el-picker-panel__sidebar+.el-picker-panel__body {
+ margin-left: 110px;
+}
+
+.custom-theme .el-date-picker {
+ width: 322px;
+}
+
+.custom-theme .el-date-picker.has-sidebar.has-time {
+ width: 434px;
+}
+
+.custom-theme .el-date-picker.has-sidebar {
+ width: 438px;
+}
+
+.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper {
+ position: relative;
+}
+
+.custom-theme .el-date-picker .el-picker-panel__content {
+ width: 292px;
+}
+
+.custom-theme .el-date-picker table {
+ table-layout: fixed;
+ width: 100%;
+}
+
+.custom-theme .el-date-picker__editor-wrap {
+ position: relative;
+ display: table-cell;
+ padding: 0 5px;
+}
+
+.custom-theme .el-date-picker__time-header {
+ position: relative;
+ border-bottom: 1px solid #e4e4e4;
+ font-size: 12px;
+ padding: 8px 5px 5px 5px;
+ display: table;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-date-picker__header {
+ margin: 12px;
+ text-align: center;
+}
+
+.custom-theme .el-date-picker__header--bordered {
+ margin-bottom: 0;
+ padding-bottom: 12px;
+ border-bottom: solid 1px #e6ebf5;
+}
+
+.custom-theme .el-date-picker__header--bordered+.el-picker-panel__content {
+ margin-top: 0;
+}
+
+.custom-theme .el-date-picker__header-label {
+ font-size: 16px;
+ font-weight: 500;
+ padding: 0 5px;
+ line-height: 22px;
+ text-align: center;
+ cursor: pointer;
+ color: #5a5e66;
+}
+
+.custom-theme .el-date-picker__header-label:hover {
+ color: #262729;
+}
+
+.custom-theme .el-date-picker__header-label.active {
+ color: #262729;
+}
+
+.custom-theme .el-date-picker__prev-btn {
+ float: left;
+}
+
+.custom-theme .el-date-picker__next-btn {
+ float: right;
+}
+
+.custom-theme .el-date-picker__time-wrap {
+ padding: 10px;
+ text-align: center;
+}
+
+.custom-theme .el-date-picker__time-label {
+ float: left;
+ cursor: pointer;
+ line-height: 30px;
+ margin-left: 10px;
+}
+
+.custom-theme .el-date-range-picker {
+ width: 646px;
+}
+
+.custom-theme .el-date-range-picker.has-sidebar {
+ width: 756px;
+}
+
+.custom-theme .el-date-range-picker table {
+ table-layout: fixed;
+ width: 100%;
+}
+
+.custom-theme .el-date-range-picker .el-picker-panel__body {
+ min-width: 513px;
+}
+
+.custom-theme .el-date-range-picker .el-picker-panel__content {
+ margin: 0;
+}
+
+.custom-theme .el-date-range-picker__header {
+ position: relative;
+ text-align: center;
+ height: 28px;
+}
+
+.custom-theme .el-date-range-picker__header [class*='arrow-left'] {
+ float: left;
+}
+
+.custom-theme .el-date-range-picker__header [class*='arrow-right'] {
+ float: right;
+}
+
+.custom-theme .el-date-range-picker__header div {
+ font-size: 16px;
+ font-weight: 500;
+ margin-right: 50px;
+}
+
+.custom-theme .el-date-range-picker__content {
+ float: left;
+ width: 50%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 16px;
+}
+
+.custom-theme .el-date-range-picker__content.is-left {
+ border-right: 1px solid #e4e4e4;
+}
+
+.custom-theme .el-date-range-picker__content.is-right .el-date-range-picker__header div {
+ margin-left: 50px;
+ margin-right: 50px;
+}
+
+.custom-theme .el-date-range-picker__editors-wrap {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: table-cell;
+}
+
+.custom-theme .el-date-range-picker__editors-wrap.is-right {
+ text-align: right;
+}
+
+.custom-theme .el-date-range-picker__time-header {
+ position: relative;
+ border-bottom: 1px solid #e4e4e4;
+ font-size: 12px;
+ padding: 8px 5px 5px 5px;
+ display: table;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-date-range-picker__time-header>.el-icon-arrow-right {
+ font-size: 20px;
+ vertical-align: middle;
+ display: table-cell;
+ color: #2d2f33;
+}
+
+.custom-theme .el-date-range-picker__time-picker-wrap {
+ position: relative;
+ display: table-cell;
+ padding: 0 5px;
+}
+
+.custom-theme .el-date-range-picker__time-picker-wrap .el-picker-panel {
+ position: absolute;
+ top: 13px;
+ right: 0;
+ z-index: 1;
+ background: #fff;
+}
+
+.custom-theme .el-time-range-picker {
+ width: 354px;
+ overflow: visible;
+}
+
+.custom-theme .el-time-range-picker__content {
+ position: relative;
+ text-align: center;
+ padding: 10px;
+}
+
+.custom-theme .el-time-range-picker__cell {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 4px 7px 7px;
+ width: 50%;
+ display: inline-block;
+}
+
+.custom-theme .el-time-range-picker__header {
+ margin-bottom: 5px;
+ text-align: center;
+ font-size: 14px;
+}
+
+.custom-theme .el-time-range-picker__body {
+ border-radius: 2px;
+ border: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-time-panel {
+ margin: 5px 0;
+ border: solid 1px #dfe4ed;
+ background-color: #fff;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ border-radius: 2px;
+ position: absolute;
+ width: 180px;
+ left: 0;
+ z-index: 1000;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-time-panel__content {
+ font-size: 0;
+ position: relative;
+ overflow: hidden;
+}
+
+.custom-theme .el-time-panel__content::after,
+.custom-theme .el-time-panel__content::before {
+ content: '';
+ top: 50%;
+ position: absolute;
+ margin-top: -15px;
+ height: 32px;
+ z-index: -1;
+ left: 0;
+ right: 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding-top: 6px;
+ text-align: left;
+ border-top: 1px solid #dfe4ed;
+ border-bottom: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-time-panel__content::after {
+ left: 50%;
+ margin-left: 12%;
+ margin-right: 12%;
+}
+
+.custom-theme .el-time-panel__content::before {
+ padding-left: 50%;
+ margin-right: 12%;
+ margin-left: 12%;
+}
+
+.custom-theme .el-time-panel__content.has-seconds::after {
+ left: calc(100% / 3 * 2);
+}
+
+.custom-theme .el-time-panel__content.has-seconds::before {
+ padding-left: calc(100% / 3);
+}
+
+.custom-theme .el-time-panel__footer {
+ border-top: 1px solid #e4e4e4;
+ padding: 4px;
+ height: 36px;
+ line-height: 25px;
+ text-align: right;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-time-panel__btn {
+ border: none;
+ line-height: 28px;
+ padding: 0 5px;
+ margin: 0 5px;
+ cursor: pointer;
+ background-color: transparent;
+ outline: 0;
+ font-size: 12px;
+ color: #2d2f33;
+}
+
+.custom-theme .el-time-panel__btn.confirm {
+ font-weight: 800;
+ color: #262729;
+}
+
+.custom-theme .el-time-panel .popper__arrow {
+ -webkit-transform: translateX(-400%);
+ transform: translateX(-400%);
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-scrollbar {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-scrollbar:active>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:hover>.el-scrollbar__bar {
+ opacity: 1;
+ -webkit-transition: opacity 340ms ease-out;
+ transition: opacity 340ms ease-out;
+}
+
+.custom-theme .el-scrollbar__wrap {
+ overflow: scroll;
+ height: 100%;
+}
+
+.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-scrollbar__thumb {
+ position: relative;
+ display: block;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ border-radius: inherit;
+ background-color: rgba(135, 141, 153, 0.3);
+ -webkit-transition: 0.3s background-color;
+ transition: 0.3s background-color;
+}
+
+.custom-theme .el-scrollbar__thumb:hover {
+ background-color: rgba(135, 141, 153, 0.5);
+}
+
+.custom-theme .el-scrollbar__bar {
+ position: absolute;
+ right: 2px;
+ bottom: 2px;
+ z-index: 1;
+ border-radius: 4px;
+ opacity: 0;
+ -webkit-transition: opacity 120ms ease-out;
+ transition: opacity 120ms ease-out;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical {
+ width: 6px;
+ top: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical>div {
+ width: 100%;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal {
+ height: 6px;
+ left: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal>div {
+ height: 100%;
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .fade-in-linear-enter-active,
+.custom-theme .fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .fade-in-linear-enter,
+.custom-theme .fade-in-linear-leave,
+.custom-theme .fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-linear-enter-active,
+.custom-theme .el-fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .el-fade-in-linear-enter,
+.custom-theme .el-fade-in-linear-leave,
+.custom-theme .el-fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-enter-active,
+.custom-theme .el-fade-in-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-fade-in-enter,
+.custom-theme .el-fade-in-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-zoom-in-center-enter-active,
+.custom-theme .el-zoom-in-center-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-zoom-in-center-enter,
+.custom-theme .el-zoom-in-center-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleX(0);
+ transform: scaleX(0);
+}
+
+.custom-theme .el-zoom-in-top-enter-active,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center top;
+ transform-origin: center top;
+}
+
+.custom-theme .el-zoom-in-top-enter,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-bottom-enter-active,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+}
+
+.custom-theme .el-zoom-in-bottom-enter,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-left-enter-active,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 1;
+ -webkit-transform: scale(1, 1);
+ transform: scale(1, 1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+}
+
+.custom-theme .el-zoom-in-left-enter,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 0;
+ -webkit-transform: scale(0.45, 0.45);
+ transform: scale(0.45, 0.45);
+}
+
+.custom-theme .collapse-transition {
+ -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+ transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+}
+
+.custom-theme .horizontal-collapse-transition {
+ -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+ transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+}
+
+.custom-theme .el-list-enter-active,
+.custom-theme .el-list-leave-active {
+ -webkit-transition: all 1s;
+ transition: all 1s;
+}
+
+.custom-theme .el-list-enter,
+.custom-theme .el-list-leave-active {
+ opacity: 0;
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+}
+
+.custom-theme .el-opacity-transition {
+ -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-date-editor {
+ position: relative;
+ display: inline-block;
+ text-align: left;
+}
+
+.custom-theme .el-date-editor.el-input,
+.custom-theme .el-date-editor.el-input__inner {
+ width: 220px;
+}
+
+.custom-theme .el-date-editor--daterange.el-input,
+.custom-theme .el-date-editor--daterange.el-input__inner,
+.custom-theme .el-date-editor--timerange.el-input,
+.custom-theme .el-date-editor--timerange.el-input__inner {
+ width: 350px;
+}
+
+.custom-theme .el-date-editor--datetimerange.el-input,
+.custom-theme .el-date-editor--datetimerange.el-input__inner {
+ width: 400px;
+}
+
+.custom-theme .el-date-editor .el-range__icon {
+ font-size: 14px;
+ margin-left: -5px;
+ color: #b4bccc;
+ float: left;
+ line-height: 32px;
+}
+
+.custom-theme .el-date-editor .el-range-input {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border: none;
+ outline: 0;
+ display: inline-block;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ width: 39%;
+ text-align: center;
+ font-size: 14px;
+ color: #5a5e66;
+}
+
+.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-separator {
+ display: inline-block;
+ height: 100%;
+ padding: 0 5px;
+ margin: 0;
+ text-align: center;
+ line-height: 32px;
+ font-size: 14px;
+ width: 5%;
+ color: #2d2f33;
+}
+
+.custom-theme .el-date-editor .el-range__close-icon {
+ font-size: 14px;
+ color: #b4bccc;
+ width: 25px;
+ display: inline-block;
+ float: right;
+ line-height: 32px;
+}
+
+.custom-theme .el-range-editor.el-input__inner {
+ padding: 3px 10px;
+}
+
+.custom-theme .el-range-editor.is-active {
+ border-color: #262729;
+}
+
+.custom-theme .el-range-editor.is-active:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-range-editor--medium.el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-range-editor--medium .el-range-separator {
+ line-height: 28px;
+ font-size: 14px;
+}
+
+.custom-theme .el-range-editor--medium .el-range-input {
+ font-size: 14px;
+}
+
+.custom-theme .el-range-editor--medium .el-range__close-icon,
+.custom-theme .el-range-editor--medium .el-range__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-range-editor--small.el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-range-editor--small .el-range-separator {
+ line-height: 24px;
+ font-size: 13px;
+}
+
+.custom-theme .el-range-editor--small .el-range-input {
+ font-size: 13px;
+}
+
+.custom-theme .el-range-editor--small .el-range__close-icon,
+.custom-theme .el-range-editor--small .el-range__icon {
+ line-height: 24px;
+}
+
+.custom-theme .el-range-editor--mini.el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-range-editor--mini .el-range-separator {
+ line-height: 20px;
+ font-size: 12px;
+}
+
+.custom-theme .el-range-editor--mini .el-range-input {
+ font-size: 12px;
+}
+
+.custom-theme .el-range-editor--mini .el-range__close-icon,
+.custom-theme .el-range-editor--mini .el-range__icon {
+ line-height: 20px;
+}
+
+.custom-theme .el-range-editor.is-disabled {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-range-editor.is-disabled:focus,
+.custom-theme .el-range-editor.is-disabled:hover {
+ border-color: #dfe4ed;
+}
+
+.custom-theme .el-range-editor.is-disabled input {
+ background-color: #f5f7fa;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled .el-range-separator {
+ color: #b4bccc;
+}
+
+.custom-theme .el-picker-panel {
+ color: #5a5e66;
+ border: 1px solid #dfe4ed;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ background: #fff;
+ border-radius: 4px;
+ line-height: 30px;
+ margin: 5px 0;
+}
+
+.custom-theme .el-picker-panel__body-wrapper::after,
+.custom-theme .el-picker-panel__body::after {
+ content: '';
+ display: table;
+ clear: both;
+}
+
+.custom-theme .el-picker-panel__content {
+ position: relative;
+ margin: 15px;
+}
+
+.custom-theme .el-picker-panel__footer {
+ border-top: 1px solid #e4e4e4;
+ padding: 4px;
+ text-align: right;
+ background-color: #fff;
+ position: relative;
+ font-size: 0;
+}
+
+.custom-theme .el-picker-panel__shortcut {
+ display: block;
+ width: 100%;
+ border: 0;
+ background-color: transparent;
+ line-height: 28px;
+ font-size: 14px;
+ color: #5a5e66;
+ padding-left: 12px;
+ text-align: left;
+ outline: 0;
+ cursor: pointer;
+}
+
+.custom-theme .el-picker-panel__shortcut:hover {
+ color: #262729;
+}
+
+.custom-theme .el-picker-panel__shortcut.active {
+ background-color: #e6f1fe;
+ color: #262729;
+}
+
+.custom-theme .el-picker-panel__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;
+}
+
+.custom-theme .el-picker-panel__btn[disabled] {
+ color: #ccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-picker-panel__icon-btn {
+ font-size: 12px;
+ color: #2d2f33;
+ border: 0;
+ background: 0 0;
+ cursor: pointer;
+ outline: 0;
+ margin-top: 8px;
+}
+
+.custom-theme .el-picker-panel__icon-btn:hover {
+ color: #262729;
+}
+
+.custom-theme .el-picker-panel__icon-btn.is-disabled {
+ color: #bbb;
+}
+
+.custom-theme .el-picker-panel__icon-btn.is-disabled:hover {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-picker-panel__link-btn {
+ vertical-align: middle;
+}
+
+.custom-theme .el-picker-panel .popper__arrow {
+ -webkit-transform: translateX(-400%);
+ transform: translateX(-400%);
+}
+
+.custom-theme .el-picker-panel [slot='sidebar'],
+.custom-theme .el-picker-panel__sidebar {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 110px;
+ border-right: 1px solid #e4e4e4;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding-top: 6px;
+ background-color: #fff;
+ overflow: auto;
+}
+
+.custom-theme .el-picker-panel [slot='sidebar']+.el-picker-panel__body,
+.custom-theme .el-picker-panel__sidebar+.el-picker-panel__body {
+ margin-left: 110px;
+}
+
+.custom-theme .el-date-picker {
+ width: 322px;
+}
+
+.custom-theme .el-date-picker.has-sidebar.has-time {
+ width: 434px;
+}
+
+.custom-theme .el-date-picker.has-sidebar {
+ width: 438px;
+}
+
+.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper {
+ position: relative;
+}
+
+.custom-theme .el-date-picker .el-picker-panel__content {
+ width: 292px;
+}
+
+.custom-theme .el-date-picker table {
+ table-layout: fixed;
+ width: 100%;
+}
+
+.custom-theme .el-date-picker__editor-wrap {
+ position: relative;
+ display: table-cell;
+ padding: 0 5px;
+}
+
+.custom-theme .el-date-picker__time-header {
+ position: relative;
+ border-bottom: 1px solid #e4e4e4;
+ font-size: 12px;
+ padding: 8px 5px 5px 5px;
+ display: table;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-date-picker__header {
+ margin: 12px;
+ text-align: center;
+}
+
+.custom-theme .el-date-picker__header--bordered {
+ margin-bottom: 0;
+ padding-bottom: 12px;
+ border-bottom: solid 1px #e6ebf5;
+}
+
+.custom-theme .el-date-picker__header--bordered+.el-picker-panel__content {
+ margin-top: 0;
+}
+
+.custom-theme .el-date-picker__header-label {
+ font-size: 16px;
+ font-weight: 500;
+ padding: 0 5px;
+ line-height: 22px;
+ text-align: center;
+ cursor: pointer;
+ color: #5a5e66;
+}
+
+.custom-theme .el-date-picker__header-label:hover {
+ color: #262729;
+}
+
+.custom-theme .el-date-picker__header-label.active {
+ color: #262729;
+}
+
+.custom-theme .el-date-picker__prev-btn {
+ float: left;
+}
+
+.custom-theme .el-date-picker__next-btn {
+ float: right;
+}
+
+.custom-theme .el-date-picker__time-wrap {
+ padding: 10px;
+ text-align: center;
+}
+
+.custom-theme .el-date-picker__time-label {
+ float: left;
+ cursor: pointer;
+ line-height: 30px;
+ margin-left: 10px;
+}
+
+.custom-theme .el-scrollbar {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-scrollbar:active>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:hover>.el-scrollbar__bar {
+ opacity: 1;
+ -webkit-transition: opacity 340ms ease-out;
+ transition: opacity 340ms ease-out;
+}
+
+.custom-theme .el-scrollbar__wrap {
+ overflow: scroll;
+ height: 100%;
+}
+
+.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-scrollbar__thumb {
+ position: relative;
+ display: block;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ border-radius: inherit;
+ background-color: rgba(135, 141, 153, 0.3);
+ -webkit-transition: 0.3s background-color;
+ transition: 0.3s background-color;
+}
+
+.custom-theme .el-scrollbar__thumb:hover {
+ background-color: rgba(135, 141, 153, 0.5);
+}
+
+.custom-theme .el-scrollbar__bar {
+ position: absolute;
+ right: 2px;
+ bottom: 2px;
+ z-index: 1;
+ border-radius: 4px;
+ opacity: 0;
+ -webkit-transition: opacity 120ms ease-out;
+ transition: opacity 120ms ease-out;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical {
+ width: 6px;
+ top: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical>div {
+ width: 100%;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal {
+ height: 6px;
+ left: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal>div {
+ height: 100%;
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .time-select {
+ margin: 5px 0;
+ min-width: 0;
+}
+
+.custom-theme .time-select .el-picker-panel__content {
+ max-height: 200px;
+ margin: 0;
+}
+
+.custom-theme .time-select-item {
+ padding: 8px 10px;
+ font-size: 14px;
+ line-height: 20px;
+}
+
+.custom-theme .time-select-item.selected:not(.disabled) {
+ color: #262729;
+ font-weight: 700;
+}
+
+.custom-theme .time-select-item.disabled {
+ color: #dfe4ed;
+ cursor: not-allowed;
+}
+
+.custom-theme .time-select-item:hover {
+ background-color: #f5f7fa;
+ font-weight: 700;
+ cursor: pointer;
+}
+
+.custom-theme .fade-in-linear-enter-active,
+.custom-theme .fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .fade-in-linear-enter,
+.custom-theme .fade-in-linear-leave,
+.custom-theme .fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-linear-enter-active,
+.custom-theme .el-fade-in-linear-leave-active {
+ -webkit-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.custom-theme .el-fade-in-linear-enter,
+.custom-theme .el-fade-in-linear-leave,
+.custom-theme .el-fade-in-linear-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-fade-in-enter-active,
+.custom-theme .el-fade-in-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-fade-in-enter,
+.custom-theme .el-fade-in-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-zoom-in-center-enter-active,
+.custom-theme .el-zoom-in-center-leave-active {
+ -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-zoom-in-center-enter,
+.custom-theme .el-zoom-in-center-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleX(0);
+ transform: scaleX(0);
+}
+
+.custom-theme .el-zoom-in-top-enter-active,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center top;
+ transform-origin: center top;
+}
+
+.custom-theme .el-zoom-in-top-enter,
+.custom-theme .el-zoom-in-top-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-bottom-enter-active,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+}
+
+.custom-theme .el-zoom-in-bottom-enter,
+.custom-theme .el-zoom-in-bottom-leave-active {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+}
+
+.custom-theme .el-zoom-in-left-enter-active,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 1;
+ -webkit-transform: scale(1, 1);
+ transform: scale(1, 1);
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+}
+
+.custom-theme .el-zoom-in-left-enter,
+.custom-theme .el-zoom-in-left-leave-active {
+ opacity: 0;
+ -webkit-transform: scale(0.45, 0.45);
+ transform: scale(0.45, 0.45);
+}
+
+.custom-theme .collapse-transition {
+ -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+ transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out,
+ 0.3s padding-bottom ease-in-out;
+}
+
+.custom-theme .horizontal-collapse-transition {
+ -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+ transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out,
+ 0.3s padding-right ease-in-out;
+}
+
+.custom-theme .el-list-enter-active,
+.custom-theme .el-list-leave-active {
+ -webkit-transition: all 1s;
+ transition: all 1s;
+}
+
+.custom-theme .el-list-enter,
+.custom-theme .el-list-leave-active {
+ opacity: 0;
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+}
+
+.custom-theme .el-opacity-transition {
+ -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1);
+}
+
+.custom-theme .el-date-editor {
+ position: relative;
+ display: inline-block;
+ text-align: left;
+}
+
+.custom-theme .el-date-editor.el-input,
+.custom-theme .el-date-editor.el-input__inner {
+ width: 220px;
+}
+
+.custom-theme .el-date-editor--daterange.el-input,
+.custom-theme .el-date-editor--daterange.el-input__inner,
+.custom-theme .el-date-editor--timerange.el-input,
+.custom-theme .el-date-editor--timerange.el-input__inner {
+ width: 350px;
+}
+
+.custom-theme .el-date-editor--datetimerange.el-input,
+.custom-theme .el-date-editor--datetimerange.el-input__inner {
+ width: 400px;
+}
+
+.custom-theme .el-date-editor .el-range__icon {
+ font-size: 14px;
+ margin-left: -5px;
+ color: #b4bccc;
+ float: left;
+ line-height: 32px;
+}
+
+.custom-theme .el-date-editor .el-range-input {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border: none;
+ outline: 0;
+ display: inline-block;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ width: 39%;
+ text-align: center;
+ font-size: 14px;
+ color: #5a5e66;
+}
+
+.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-input::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-date-editor .el-range-separator {
+ display: inline-block;
+ height: 100%;
+ padding: 0 5px;
+ margin: 0;
+ text-align: center;
+ line-height: 32px;
+ font-size: 14px;
+ width: 5%;
+ color: #2d2f33;
+}
+
+.custom-theme .el-date-editor .el-range__close-icon {
+ font-size: 14px;
+ color: #b4bccc;
+ width: 25px;
+ display: inline-block;
+ float: right;
+ line-height: 32px;
+}
+
+.custom-theme .el-range-editor.el-input__inner {
+ padding: 3px 10px;
+}
+
+.custom-theme .el-range-editor.is-active {
+ border-color: #262729;
+}
+
+.custom-theme .el-range-editor.is-active:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-range-editor--medium.el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-range-editor--medium .el-range-separator {
+ line-height: 28px;
+ font-size: 14px;
+}
+
+.custom-theme .el-range-editor--medium .el-range-input {
+ font-size: 14px;
+}
+
+.custom-theme .el-range-editor--medium .el-range__close-icon,
+.custom-theme .el-range-editor--medium .el-range__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-range-editor--small.el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-range-editor--small .el-range-separator {
+ line-height: 24px;
+ font-size: 13px;
+}
+
+.custom-theme .el-range-editor--small .el-range-input {
+ font-size: 13px;
+}
+
+.custom-theme .el-range-editor--small .el-range__close-icon,
+.custom-theme .el-range-editor--small .el-range__icon {
+ line-height: 24px;
+}
+
+.custom-theme .el-range-editor--mini.el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-range-editor--mini .el-range-separator {
+ line-height: 20px;
+ font-size: 12px;
+}
+
+.custom-theme .el-range-editor--mini .el-range-input {
+ font-size: 12px;
+}
+
+.custom-theme .el-range-editor--mini .el-range__close-icon,
+.custom-theme .el-range-editor--mini .el-range__icon {
+ line-height: 20px;
+}
+
+.custom-theme .el-range-editor.is-disabled {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-range-editor.is-disabled:focus,
+.custom-theme .el-range-editor.is-disabled:hover {
+ border-color: #dfe4ed;
+}
+
+.custom-theme .el-range-editor.is-disabled input {
+ background-color: #f5f7fa;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled input::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-range-editor.is-disabled .el-range-separator {
+ color: #b4bccc;
+}
+
+.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper {
+ width: 33.3%;
+}
+
+.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper:nth-child(2) {
+ margin-left: 1%;
+}
+
+.custom-theme .el-time-spinner__wrapper {
+ max-height: 190px;
+ overflow: auto;
+ display: inline-block;
+ width: 50%;
+ vertical-align: top;
+ position: relative;
+}
+
+.custom-theme .el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) {
+ padding-bottom: 15px;
+}
+
+.custom-theme .el-time-spinner__wrapper.is-arrow {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ text-align: center;
+ overflow: hidden;
+}
+
+.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list {
+ -webkit-transform: translateY(-32px);
+ transform: translateY(-32px);
+}
+
+.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active) {
+ background: #fff;
+ cursor: default;
+}
+
+.custom-theme .el-time-spinner__arrow {
+ font-size: 12px;
+ color: #878d99;
+ position: absolute;
+ left: 0;
+ width: 100%;
+ z-index: 1;
+ text-align: center;
+ height: 30px;
+ line-height: 30px;
+ cursor: pointer;
+}
+
+.custom-theme .el-time-spinner__arrow:hover {
+ color: #262729;
+}
+
+.custom-theme .el-time-spinner__arrow.el-icon-arrow-up {
+ top: 10px;
+}
+
+.custom-theme .el-time-spinner__arrow.el-icon-arrow-down {
+ bottom: 10px;
+}
+
+.custom-theme .el-time-spinner__input.el-input {
+ width: 70%;
+}
+
+.custom-theme .el-time-spinner__input.el-input .el-input__inner {
+ padding: 0;
+ text-align: center;
+}
+
+.custom-theme .el-time-spinner__list {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ text-align: center;
+}
+
+.custom-theme .el-time-spinner__list::after,
+.custom-theme .el-time-spinner__list::before {
+ content: '';
+ display: block;
+ width: 100%;
+ height: 80px;
+}
+
+.custom-theme .el-time-spinner__item {
+ height: 32px;
+ line-height: 32px;
+ font-size: 12px;
+ color: #5a5e66;
+}
+
+.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active) {
+ background: #f5f7fa;
+ cursor: pointer;
+}
+
+.custom-theme .el-time-spinner__item.active:not(.disabled) {
+ color: #2d2f33;
+ font-weight: 700;
+}
+
+.custom-theme .el-time-spinner__item.disabled {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-time-panel {
+ margin: 5px 0;
+ border: solid 1px #dfe4ed;
+ background-color: #fff;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ border-radius: 2px;
+ position: absolute;
+ width: 180px;
+ left: 0;
+ z-index: 1000;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-time-panel__content {
+ font-size: 0;
+ position: relative;
+ overflow: hidden;
+}
+
+.custom-theme .el-time-panel__content::after,
+.custom-theme .el-time-panel__content::before {
+ content: '';
+ top: 50%;
+ position: absolute;
+ margin-top: -15px;
+ height: 32px;
+ z-index: -1;
+ left: 0;
+ right: 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding-top: 6px;
+ text-align: left;
+ border-top: 1px solid #dfe4ed;
+ border-bottom: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-time-panel__content::after {
+ left: 50%;
+ margin-left: 12%;
+ margin-right: 12%;
+}
+
+.custom-theme .el-time-panel__content::before {
+ padding-left: 50%;
+ margin-right: 12%;
+ margin-left: 12%;
+}
+
+.custom-theme .el-time-panel__content.has-seconds::after {
+ left: calc(100% / 3 * 2);
+}
+
+.custom-theme .el-time-panel__content.has-seconds::before {
+ padding-left: calc(100% / 3);
+}
+
+.custom-theme .el-time-panel__footer {
+ border-top: 1px solid #e4e4e4;
+ padding: 4px;
+ height: 36px;
+ line-height: 25px;
+ text-align: right;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-time-panel__btn {
+ border: none;
+ line-height: 28px;
+ padding: 0 5px;
+ margin: 0 5px;
+ cursor: pointer;
+ background-color: transparent;
+ outline: 0;
+ font-size: 12px;
+ color: #2d2f33;
+}
+
+.custom-theme .el-time-panel__btn.confirm {
+ font-weight: 800;
+ color: #262729;
+}
+
+.custom-theme .el-time-panel .popper__arrow {
+ -webkit-transform: translateX(-400%);
+ transform: translateX(-400%);
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-scrollbar {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-scrollbar:active>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:hover>.el-scrollbar__bar {
+ opacity: 1;
+ -webkit-transition: opacity 340ms ease-out;
+ transition: opacity 340ms ease-out;
+}
+
+.custom-theme .el-scrollbar__wrap {
+ overflow: scroll;
+ height: 100%;
+}
+
+.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-scrollbar__thumb {
+ position: relative;
+ display: block;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ border-radius: inherit;
+ background-color: rgba(135, 141, 153, 0.3);
+ -webkit-transition: 0.3s background-color;
+ transition: 0.3s background-color;
+}
+
+.custom-theme .el-scrollbar__thumb:hover {
+ background-color: rgba(135, 141, 153, 0.5);
+}
+
+.custom-theme .el-scrollbar__bar {
+ position: absolute;
+ right: 2px;
+ bottom: 2px;
+ z-index: 1;
+ border-radius: 4px;
+ opacity: 0;
+ -webkit-transition: opacity 120ms ease-out;
+ transition: opacity 120ms ease-out;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical {
+ width: 6px;
+ top: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical>div {
+ width: 100%;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal {
+ height: 6px;
+ left: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal>div {
+ height: 100%;
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .el-popover {
+ position: absolute;
+ background: #fff;
+ min-width: 150px;
+ border-radius: 4px;
+ border: 1px solid #e6ebf5;
+ padding: 12px;
+ z-index: 2000;
+ color: #5a5e66;
+ line-height: 1.4;
+ text-align: justify;
+ word-break: break-all;
+ font-size: 14px;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+
+.custom-theme .el-popover--plain {
+ padding: 18px 20px;
+}
+
+.custom-theme .el-popover__title {
+ color: #2d2f33;
+ font-size: 16px;
+ line-height: 1;
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-tooltip__popper {
+ position: absolute;
+ border-radius: 4px;
+ padding: 10px;
+ z-index: 2000;
+ font-size: 12px;
+ line-height: 1.2;
+}
+
+.custom-theme .el-tooltip__popper .popper__arrow,
+.custom-theme .el-tooltip__popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-tooltip__popper .popper__arrow {
+ border-width: 6px;
+}
+
+.custom-theme .el-tooltip__popper .popper__arrow::after {
+ content: ' ';
+ border-width: 5px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ border-top-color: #2d2f33;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -5px;
+ border-top-color: #2d2f33;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ border-top-width: 0;
+ border-bottom-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -5px;
+ border-top-width: 0;
+ border-bottom-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow {
+ left: -6px;
+ border-right-color: #2d2f33;
+ border-left-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -5px;
+ left: 1px;
+ border-right-color: #2d2f33;
+ border-left-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow {
+ right: -6px;
+ border-right-width: 0;
+ border-left-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -5px;
+ margin-left: -5px;
+ border-right-width: 0;
+ border-left-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-dark {
+ background: #2d2f33;
+ color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light {
+ background: #fff;
+ border: 1px solid #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow {
+ border-top-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow::after {
+ border-top-color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow {
+ border-bottom-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow::after {
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow {
+ border-left-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow::after {
+ border-left-color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow {
+ border-right-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow::after {
+ border-right-color: #fff;
+}
+
+.custom-theme .v-modal-enter {
+ -webkit-animation: v-modal-in 0.2s ease;
+ animation: v-modal-in 0.2s ease;
+}
+
+.custom-theme .v-modal-leave {
+ -webkit-animation: v-modal-out 0.2s ease forwards;
+ animation: v-modal-out 0.2s ease forwards;
+}
+
+@keyframes v-modal-in {
+ 0% {
+ opacity: 0;
+ }
+}
+
+@keyframes v-modal-out {
+ 100% {
+ opacity: 0;
+ }
+}
+
+.custom-theme .v-modal {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ opacity: 0.5;
+ background: #000;
+}
+
+.custom-theme .el-button {
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-color: #d8dce5;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ -webkit-transition: 0.1s;
+ transition: 0.1s;
+ font-weight: 500;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button+.el-button {
+ margin-left: 10px;
+}
+
+.custom-theme .el-button.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-button:focus,
+.custom-theme .el-button:hover {
+ color: #262729;
+ border-color: #bebebf;
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-button:active {
+ color: #222325;
+ border-color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button::-moz-focus-inner {
+ border: 0;
+}
+
+.custom-theme .el-button [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-button.is-plain:focus,
+.custom-theme .el-button.is-plain:hover {
+ background: #fff;
+ border-color: #262729;
+ color: #262729;
+}
+
+.custom-theme .el-button.is-plain:active {
+ background: #fff;
+ border-color: #222325;
+ color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button.is-active {
+ color: #222325;
+ border-color: #222325;
+}
+
+.custom-theme .el-button.is-disabled,
+.custom-theme .el-button.is-disabled:focus,
+.custom-theme .el-button.is-disabled:hover {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+}
+
+.custom-theme .el-button.is-disabled.el-button--text {
+ background-color: transparent;
+}
+
+.custom-theme .el-button.is-disabled.is-plain,
+.custom-theme .el-button.is-disabled.is-plain:focus,
+.custom-theme .el-button.is-disabled.is-plain:hover {
+ background-color: #fff;
+ border-color: #e6ebf5;
+ color: #b4bccc;
+}
+
+.custom-theme .el-button.is-loading {
+ position: relative;
+ pointer-events: none;
+}
+
+.custom-theme .el-button.is-loading:before {
+ pointer-events: none;
+ content: '';
+ position: absolute;
+ left: -1px;
+ top: -1px;
+ right: -1px;
+ bottom: -1px;
+ border-radius: inherit;
+ background-color: rgba(255, 255, 255, 0.35);
+}
+
+.custom-theme .el-button.is-round {
+ border-radius: 20px;
+ padding: 12px 23px;
+}
+
+.custom-theme .el-button--primary {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-button--primary:focus,
+.custom-theme .el-button--primary:hover {
+ background: #515254;
+ border-color: #515254;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-disabled,
+.custom-theme .el-button--primary.is-disabled:active,
+.custom-theme .el-button--primary.is-disabled:focus,
+.custom-theme .el-button--primary.is-disabled:hover {
+ color: #fff;
+ background-color: #939394;
+ border-color: #939394;
+}
+
+.custom-theme .el-button--primary.is-plain {
+ color: #262729;
+ background: #e9e9ea;
+ border-color: #a8a9a9;
+}
+
+.custom-theme .el-button--primary.is-plain:focus,
+.custom-theme .el-button--primary.is-plain:hover {
+ background: #262729;
+ border-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-plain:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-plain.is-disabled,
+.custom-theme .el-button--primary.is-plain.is-disabled:active,
+.custom-theme .el-button--primary.is-plain.is-disabled:focus,
+.custom-theme .el-button--primary.is-plain.is-disabled:hover {
+ color: #7d7d7f;
+ background-color: #e9e9ea;
+ border-color: #d4d4d4;
+}
+
+.custom-theme .el-button--success {
+ color: #fff;
+ background-color: #409167;
+ border-color: #409167;
+}
+
+.custom-theme .el-button--success:focus,
+.custom-theme .el-button--success:hover {
+ background: #66a785;
+ border-color: #66a785;
+ color: #fff;
+}
+
+.custom-theme .el-button--success:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-disabled,
+.custom-theme .el-button--success.is-disabled:active,
+.custom-theme .el-button--success.is-disabled:focus,
+.custom-theme .el-button--success.is-disabled:hover {
+ color: #fff;
+ background-color: #a0c8b3;
+ border-color: #a0c8b3;
+}
+
+.custom-theme .el-button--success.is-plain {
+ color: #409167;
+ background: #ecf4f0;
+ border-color: #b3d3c2;
+}
+
+.custom-theme .el-button--success.is-plain:focus,
+.custom-theme .el-button--success.is-plain:hover {
+ background: #409167;
+ border-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-plain:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-plain.is-disabled,
+.custom-theme .el-button--success.is-plain.is-disabled:active,
+.custom-theme .el-button--success.is-plain.is-disabled:focus,
+.custom-theme .el-button--success.is-plain.is-disabled:hover {
+ color: #8cbda4;
+ background-color: #ecf4f0;
+ border-color: #d9e9e1;
+}
+
+.custom-theme .el-button--warning {
+ color: #fff;
+ background-color: #9da408;
+ border-color: #9da408;
+}
+
+.custom-theme .el-button--warning:focus,
+.custom-theme .el-button--warning:hover {
+ background: #b1b639;
+ border-color: #b1b639;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-disabled,
+.custom-theme .el-button--warning.is-disabled:active,
+.custom-theme .el-button--warning.is-disabled:focus,
+.custom-theme .el-button--warning.is-disabled:hover {
+ color: #fff;
+ background-color: #ced284;
+ border-color: #ced284;
+}
+
+.custom-theme .el-button--warning.is-plain {
+ color: #9da408;
+ background: #f5f6e6;
+ border-color: #d8db9c;
+}
+
+.custom-theme .el-button--warning.is-plain:focus,
+.custom-theme .el-button--warning.is-plain:hover {
+ background: #9da408;
+ border-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-plain:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-plain.is-disabled,
+.custom-theme .el-button--warning.is-plain.is-disabled:active,
+.custom-theme .el-button--warning.is-plain.is-disabled:focus,
+.custom-theme .el-button--warning.is-plain.is-disabled:hover {
+ color: #c4c86b;
+ background-color: #f5f6e6;
+ border-color: #ebedce;
+}
+
+.custom-theme .el-button--danger {
+ color: #fff;
+ background-color: #b3450e;
+ border-color: #b3450e;
+}
+
+.custom-theme .el-button--danger:focus,
+.custom-theme .el-button--danger:hover {
+ background: #c26a3e;
+ border-color: #c26a3e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-disabled,
+.custom-theme .el-button--danger.is-disabled:active,
+.custom-theme .el-button--danger.is-disabled:focus,
+.custom-theme .el-button--danger.is-disabled:hover {
+ color: #fff;
+ background-color: #d9a287;
+ border-color: #d9a287;
+}
+
+.custom-theme .el-button--danger.is-plain {
+ color: #b3450e;
+ background: #f7ece7;
+ border-color: #e1b59f;
+}
+
+.custom-theme .el-button--danger.is-plain:focus,
+.custom-theme .el-button--danger.is-plain:hover {
+ background: #b3450e;
+ border-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-plain:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-plain.is-disabled,
+.custom-theme .el-button--danger.is-plain.is-disabled:active,
+.custom-theme .el-button--danger.is-plain.is-disabled:focus,
+.custom-theme .el-button--danger.is-plain.is-disabled:hover {
+ color: #d18f6e;
+ background-color: #f7ece7;
+ border-color: #f0dacf;
+}
+
+.custom-theme .el-button--info {
+ color: #fff;
+ background-color: #0a76a4;
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-button--info:focus,
+.custom-theme .el-button--info:hover {
+ background: #3b91b6;
+ border-color: #3b91b6;
+ color: #fff;
+}
+
+.custom-theme .el-button--info:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-disabled,
+.custom-theme .el-button--info.is-disabled:active,
+.custom-theme .el-button--info.is-disabled:focus,
+.custom-theme .el-button--info.is-disabled:hover {
+ color: #fff;
+ background-color: #85bbd2;
+ border-color: #85bbd2;
+}
+
+.custom-theme .el-button--info.is-plain {
+ color: #0a76a4;
+ background: #e7f1f6;
+ border-color: #9dc8db;
+}
+
+.custom-theme .el-button--info.is-plain:focus,
+.custom-theme .el-button--info.is-plain:hover {
+ background: #0a76a4;
+ border-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-plain:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-plain.is-disabled,
+.custom-theme .el-button--info.is-plain.is-disabled:active,
+.custom-theme .el-button--info.is-plain.is-disabled:focus,
+.custom-theme .el-button--info.is-plain.is-disabled:hover {
+ color: #6cadc8;
+ background-color: #e7f1f6;
+ border-color: #cee4ed;
+}
+
+.custom-theme .el-button--medium {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button--medium.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-button--small {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--small.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-button--mini {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--mini.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-button--text {
+ border: none;
+ color: #262729;
+ background: 0 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.custom-theme .el-button--text:focus,
+.custom-theme .el-button--text:hover {
+ color: #515254;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button--text:active {
+ color: #222325;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button-group {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-button-group::after,
+.custom-theme .el-button-group::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-button-group::after {
+ clear: both;
+}
+
+.custom-theme .el-button-group .el-button {
+ float: left;
+ position: relative;
+}
+
+.custom-theme .el-button-group .el-button+.el-button {
+ margin-left: 0;
+}
+
+.custom-theme .el-button-group .el-button:first-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:last-child) {
+ margin-right: -1px;
+}
+
+.custom-theme .el-button-group .el-button:active,
+.custom-theme .el-button-group .el-button:focus,
+.custom-theme .el-button-group .el-button:hover {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button.is-active {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button--primary:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-message-box {
+ display: inline-block;
+ width: 420px;
+ padding-bottom: 10px;
+ vertical-align: middle;
+ background-color: #fff;
+ border-radius: 4px;
+ border: 1px solid #e6ebf5;
+ font-size: 18px;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ text-align: left;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+.custom-theme .el-message-box__wrapper {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ text-align: center;
+}
+
+.custom-theme .el-message-box__wrapper::after {
+ content: '';
+ display: inline-block;
+ height: 100%;
+ width: 0;
+ vertical-align: middle;
+}
+
+.custom-theme .el-message-box__header {
+ position: relative;
+ padding: 15px;
+ padding-bottom: 10px;
+}
+
+.custom-theme .el-message-box__title {
+ padding-left: 0;
+ margin-bottom: 0;
+ font-size: 18px;
+ line-height: 1;
+ color: #2d2f33;
+}
+
+.custom-theme .el-message-box__headerbtn {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ padding: 0;
+ border: none;
+ outline: 0;
+ background: 0 0;
+ font-size: 16px;
+ cursor: pointer;
+}
+
+.custom-theme .el-message-box__headerbtn .el-message-box__close {
+ color: #0a76a4;
+}
+
+.custom-theme .el-message-box__headerbtn:focus .el-message-box__close,
+.custom-theme .el-message-box__headerbtn:hover .el-message-box__close {
+ color: #262729;
+}
+
+.custom-theme .el-message-box__content {
+ position: relative;
+ padding: 10px 15px;
+ color: #5a5e66;
+ font-size: 14px;
+}
+
+.custom-theme .el-message-box__input {
+ padding-top: 15px;
+}
+
+.custom-theme .el-message-box__input input.invalid {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-message-box__input input.invalid:focus {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-message-box__status {
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+ font-size: 24px !important;
+}
+
+.custom-theme .el-message-box__status::before {
+ padding-left: 1px;
+}
+
+.custom-theme .el-message-box__status+.el-message-box__message {
+ padding-left: 36px;
+ padding-right: 12px;
+}
+
+.custom-theme .el-message-box__status.el-icon-success {
+ color: #409167;
+}
+
+.custom-theme .el-message-box__status.el-icon-info {
+ color: #0a76a4;
+}
+
+.custom-theme .el-message-box__status.el-icon-warning {
+ color: #9da408;
+}
+
+.custom-theme .el-message-box__status.el-icon-error {
+ color: #b3450e;
+}
+
+.custom-theme .el-message-box__message {
+ margin: 0;
+}
+
+.custom-theme .el-message-box__message p {
+ margin: 20px 20px 20px 20px;
+ line-height: 24px;
+}
+
+.custom-theme .el-message-box__errormsg {
+ color: #b3450e;
+ font-size: 12px;
+ min-height: 18px;
+ margin-top: 2px;
+}
+
+.custom-theme .el-message-box__btns {
+ padding: 5px 15px 0;
+ text-align: right;
+}
+
+.custom-theme .el-message-box__btns button:nth-child(2) {
+ margin-left: 10px;
+}
+
+.custom-theme .el-message-box__btns-reverse {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+}
+
+.custom-theme .el-message-box--center {
+ padding-bottom: 30px;
+}
+
+.custom-theme .el-message-box--center .el-message-box__header {
+ padding-top: 30px;
+}
+
+.custom-theme .el-message-box--center .el-message-box__title {
+ position: relative;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.custom-theme .el-message-box--center .el-message-box__status {
+ position: relative;
+ top: auto;
+ padding-right: 5px;
+ text-align: center;
+ -webkit-transform: translateY(-1px);
+ transform: translateY(-1px);
+}
+
+.custom-theme .el-message-box--center .el-message-box__message {
+ margin-left: 0;
+}
+
+.custom-theme .el-message-box--center .el-message-box__btns,
+.custom-theme .el-message-box--center .el-message-box__content {
+ text-align: center;
+}
+
+.custom-theme .el-message-box--center .el-message-box__content {
+ padding-left: 27px;
+ padding-right: 27px;
+}
+
+.custom-theme .msgbox-fade-enter-active {
+ -webkit-animation: msgbox-fade-in 0.3s;
+ animation: msgbox-fade-in 0.3s;
+}
+
+.custom-theme .msgbox-fade-leave-active {
+ -webkit-animation: msgbox-fade-out 0.3s;
+ animation: msgbox-fade-out 0.3s;
+}
+
+@-webkit-keyframes msgbox-fade-in {
+ 0% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes msgbox-fade-in {
+ 0% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes msgbox-fade-out {
+ 0% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+}
+
+@keyframes msgbox-fade-out {
+ 0% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ opacity: 0;
+ }
+}
+
+.custom-theme .el-breadcrumb {
+ font-size: 14px;
+ line-height: 1;
+}
+
+.custom-theme .el-breadcrumb::after,
+.custom-theme .el-breadcrumb::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-breadcrumb::after {
+ clear: both;
+}
+
+.custom-theme .el-breadcrumb__separator {
+ margin: 0 9px;
+ font-weight: 700;
+ color: #b4bccc;
+}
+
+.custom-theme .el-breadcrumb__separator[class*='icon'] {
+ margin: 0 6px;
+ font-weight: 400;
+}
+
+.custom-theme .el-breadcrumb__item {
+ float: left;
+}
+
+.custom-theme .el-breadcrumb__inner,
+.custom-theme .el-breadcrumb__inner a {
+ font-weight: 700;
+ -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ color: #1890FF;
+}
+
+.custom-theme .el-breadcrumb__inner a:hover,
+.custom-theme .el-breadcrumb__inner:hover {
+ color: #262729;
+ cursor: pointer;
+}
+
+.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner,
+.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a,
+.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,
+.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner:hover {
+ font-weight: 400;
+ color: #5a5e66;
+ cursor: text;
+}
+
+.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__separator {
+ display: none;
+}
+
+.custom-theme .el-form--label-left .el-form-item__label {
+ text-align: left;
+}
+
+.custom-theme .el-form--label-top .el-form-item__label {
+ float: none;
+ display: inline-block;
+ text-align: left;
+ padding: 0 0 10px 0;
+}
+
+.custom-theme .el-form--inline .el-form-item {
+ display: inline-block;
+ margin-right: 10px;
+ vertical-align: top;
+}
+
+.custom-theme .el-form--inline .el-form-item__label {
+ float: none;
+ display: inline-block;
+}
+
+.custom-theme .el-form--inline .el-form-item__content {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.custom-theme .el-form--inline.el-form--label-top .el-form-item__content {
+ display: block;
+}
+
+.custom-theme .el-form-item {
+ margin-bottom: 22px;
+}
+
+.custom-theme .el-form-item::after,
+.custom-theme .el-form-item::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-form-item::after {
+ clear: both;
+}
+
+.custom-theme .el-form-item .el-form-item {
+ margin-bottom: 0;
+}
+
+.custom-theme .el-form-item .el-input__validateIcon {
+ display: none;
+}
+
+.custom-theme .el-form-item--medium .el-form-item__label {
+ line-height: 36px;
+}
+
+.custom-theme .el-form-item--medium .el-form-item__content {
+ line-height: 36px;
+}
+
+.custom-theme .el-form-item--small .el-form-item__label {
+ line-height: 32px;
+}
+
+.custom-theme .el-form-item--small .el-form-item__content {
+ line-height: 32px;
+}
+
+.custom-theme .el-form-item--small.el-form-item {
+ margin-bottom: 18px;
+}
+
+.custom-theme .el-form-item--small .el-form-item__error {
+ padding-top: 2px;
+}
+
+.custom-theme .el-form-item--mini .el-form-item__label {
+ line-height: 28px;
+}
+
+.custom-theme .el-form-item--mini .el-form-item__content {
+ line-height: 28px;
+}
+
+.custom-theme .el-form-item--mini.el-form-item {
+ margin-bottom: 18px;
+}
+
+.custom-theme .el-form-item--mini .el-form-item__error {
+ padding-top: 1px;
+}
+
+.custom-theme .el-form-item__label {
+ text-align: right;
+ vertical-align: middle;
+ float: left;
+ font-size: 14px;
+ color: #5a5e66;
+ line-height: 40px;
+ padding: 0 12px 0 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-form-item__content {
+ line-height: 40px;
+ position: relative;
+ font-size: 14px;
+}
+
+.custom-theme .el-form-item__content::after,
+.custom-theme .el-form-item__content::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-form-item__content::after {
+ clear: both;
+}
+
+.custom-theme .el-form-item__error {
+ color: #b3450e;
+ font-size: 12px;
+ line-height: 1;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ left: 0;
+}
+
+.custom-theme .el-form-item__error--inline {
+ position: relative;
+ top: auto;
+ left: auto;
+ display: inline-block;
+ margin-left: 10px;
+}
+
+.custom-theme .el-form-item.is-required .el-form-item__label:before {
+ content: '*';
+ color: #b3450e;
+ margin-right: 4px;
+}
+
+.custom-theme .el-form-item.is-error .el-input__inner,
+.custom-theme .el-form-item.is-error .el-input__inner:focus,
+.custom-theme .el-form-item.is-error .el-textarea__inner,
+.custom-theme .el-form-item.is-error .el-textarea__inner:focus {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-form-item.is-error .el-input-group__append .el-input__inner,
+.custom-theme .el-form-item.is-error .el-input-group__prepend .el-input__inner {
+ border-color: transparent;
+}
+
+.custom-theme .el-form-item.is-error .el-input__validateIcon {
+ color: #b3450e;
+}
+
+.custom-theme .el-form-item.is-success .el-input__inner,
+.custom-theme .el-form-item.is-success .el-input__inner:focus,
+.custom-theme .el-form-item.is-success .el-textarea__inner,
+.custom-theme .el-form-item.is-success .el-textarea__inner:focus {
+ border-color: #409167;
+}
+
+.custom-theme .el-form-item.is-success .el-input-group__append .el-input__inner,
+.custom-theme .el-form-item.is-success .el-input-group__prepend .el-input__inner {
+ border-color: transparent;
+}
+
+.custom-theme .el-form-item.is-success .el-input__validateIcon {
+ color: #409167;
+}
+
+.custom-theme .el-form-item--feedback .el-input__validateIcon {
+ display: inline-block;
+}
+
+.custom-theme .el-tabs__header {
+ padding: 0;
+ position: relative;
+ margin: 0 0 15px;
+}
+
+.custom-theme .el-tabs__active-bar {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ height: 2px;
+ background-color: #262729;
+ z-index: 1;
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),
+ -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ list-style: none;
+}
+
+.custom-theme .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;
+ -webkit-transition: all 0.15s;
+ transition: all 0.15s;
+}
+
+.custom-theme .el-tabs__new-tab .el-icon-plus {
+ -webkit-transform: scale(0.8, 0.8);
+ transform: scale(0.8, 0.8);
+}
+
+.custom-theme .el-tabs__new-tab:hover {
+ color: #262729;
+}
+
+.custom-theme .el-tabs__nav-wrap {
+ overflow: hidden;
+ margin-bottom: -1px;
+ position: relative;
+}
+
+.custom-theme .el-tabs__nav-wrap::after {
+ content: '';
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 2px;
+ background-color: #dfe4ed;
+ z-index: 1;
+}
+
+.custom-theme .el-tabs__nav-wrap.is-scrollable {
+ padding: 0 20px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-tabs__nav-scroll {
+ overflow: hidden;
+}
+
+.custom-theme .el-tabs__nav-next,
+.custom-theme .el-tabs__nav-prev {
+ position: absolute;
+ cursor: pointer;
+ line-height: 44px;
+ font-size: 12px;
+ color: #878d99;
+}
+
+.custom-theme .el-tabs__nav-next {
+ right: 0;
+}
+
+.custom-theme .el-tabs__nav-prev {
+ left: 0;
+}
+
+.custom-theme .el-tabs__nav {
+ white-space: nowrap;
+ position: relative;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+ float: left;
+ z-index: 2;
+}
+
+.custom-theme .el-tabs__item {
+ padding: 0 20px;
+ height: 40px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ line-height: 40px;
+ display: inline-block;
+ list-style: none;
+ font-size: 14px;
+ font-weight: 500;
+ color: #2d2f33;
+ position: relative;
+}
+
+.custom-theme .el-tabs__item:focus,
+.custom-theme .el-tabs__item:focus:active {
+ outline: 0;
+}
+
+.custom-theme .el-tabs__item .el-icon-close {
+ border-radius: 50%;
+ text-align: center;
+ -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ margin-left: 5px;
+}
+
+.custom-theme .el-tabs__item .el-icon-close:before {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+ display: inline-block;
+}
+
+.custom-theme .el-tabs__item .el-icon-close:hover {
+ background-color: #b4bccc;
+ color: #fff;
+}
+
+.custom-theme .el-tabs__item.is-active {
+ color: #262729;
+}
+
+.custom-theme .el-tabs__item:hover {
+ color: #262729;
+ cursor: pointer;
+}
+
+.custom-theme .el-tabs__item.is-disabled {
+ color: #b4bccc;
+ cursor: default;
+}
+
+.custom-theme .el-tabs__content {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header {
+ border-bottom: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after {
+ content: none;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__nav {
+ border: 1px solid #dfe4ed;
+ border-bottom: none;
+ border-radius: 4px 4px 0 0;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__active-bar {
+ display: none;
+}
+
+.custom-theme .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;
+ -webkit-transform-origin: 100% 50%;
+ transform-origin: 100% 50%;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item {
+ border-bottom: 1px solid transparent;
+ border-left: 1px solid #dfe4ed;
+ -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),
+ padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),
+ padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item:first-child {
+ border-left: none;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover {
+ padding-left: 13px;
+ padding-right: 13px;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close {
+ width: 14px;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable {
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+.custom-theme .el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close {
+ width: 14px;
+}
+
+.custom-theme .el-tabs--border-card {
+ background: #fff;
+ border: 1px solid #d8dce5;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+ 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.custom-theme .el-tabs--border-card>.el-tabs__content {
+ padding: 15px;
+}
+
+.custom-theme .el-tabs--border-card>.el-tabs__header {
+ background-color: #f5f7fa;
+ border-bottom: 1px solid #dfe4ed;
+ margin: 0;
+}
+
+.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after {
+ content: none;
+}
+
+.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__item {
+ -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ border: 1px solid transparent;
+ margin: -1px -1px 0;
+ color: #878d99;
+}
+
+.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
+ color: #262729;
+ background-color: #fff;
+ border-right-color: #d8dce5;
+ border-left-color: #d8dce5;
+}
+
+.custom-theme .el-tabs--border-card>.el-tabs__header .el-tabs__item:hover {
+ color: #262729;
+}
+
+.custom-theme .el-tabs--bottom:not(.el-tabs--border-card):not(.el-tabs--card) .el-tabs__item:nth-child(2),
+.custom-theme .el-tabs--top:not(.el-tabs--border-card):not(.el-tabs--card) .el-tabs__item:nth-child(2) {
+ padding-left: 0;
+}
+
+.custom-theme .el-tabs--bottom .el-tabs__header {
+ margin-bottom: 0;
+ margin-top: 10px;
+}
+
+.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__header {
+ border-bottom: 0;
+ border-top: 1px solid #d8dce5;
+}
+
+.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap {
+ margin-top: -1px;
+ margin-bottom: 0;
+}
+
+.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__item {
+ border: 1px solid transparent;
+ margin: 0 -1px -1px -1px;
+}
+
+.custom-theme .el-tabs--left,
+.custom-theme .el-tabs--right {
+ overflow: hidden;
+}
+
+.custom-theme .el-tabs--left .el-tabs__header,
+.custom-theme .el-tabs--left .el-tabs__nav-scroll,
+.custom-theme .el-tabs--left .el-tabs__nav-wrap,
+.custom-theme .el-tabs--right .el-tabs__header,
+.custom-theme .el-tabs--right .el-tabs__nav-scroll,
+.custom-theme .el-tabs--right .el-tabs__nav-wrap {
+ height: 100%;
+}
+
+.custom-theme .el-tabs--left .el-tabs__active-bar,
+.custom-theme .el-tabs--right .el-tabs__active-bar {
+ top: 0;
+ bottom: auto;
+ width: 2px;
+ height: auto;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-wrap,
+.custom-theme .el-tabs--right .el-tabs__nav-wrap {
+ margin-bottom: 0;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-wrap.is-scrollable,
+.custom-theme .el-tabs--right .el-tabs__nav-wrap.is-scrollable {
+ padding: 30px 0;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-wrap::after,
+.custom-theme .el-tabs--right .el-tabs__nav-wrap::after {
+ height: 100%;
+ width: 2px;
+ bottom: auto;
+ top: 0;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav,
+.custom-theme .el-tabs--right .el-tabs__nav {
+ float: none;
+}
+
+.custom-theme .el-tabs--left .el-tabs__item,
+.custom-theme .el-tabs--right .el-tabs__item {
+ display: block;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-next,
+.custom-theme .el-tabs--left .el-tabs__nav-prev,
+.custom-theme .el-tabs--right .el-tabs__nav-next,
+.custom-theme .el-tabs--right .el-tabs__nav-prev {
+ height: 30px;
+ line-height: 30px;
+ width: 100%;
+ text-align: center;
+ cursor: pointer;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-next i,
+.custom-theme .el-tabs--left .el-tabs__nav-prev i,
+.custom-theme .el-tabs--right .el-tabs__nav-next i,
+.custom-theme .el-tabs--right .el-tabs__nav-prev i {
+ -webkit-transform: rotateZ(90deg);
+ transform: rotateZ(90deg);
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-prev,
+.custom-theme .el-tabs--right .el-tabs__nav-prev {
+ left: auto;
+ top: 0;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-next,
+.custom-theme .el-tabs--right .el-tabs__nav-next {
+ right: auto;
+ bottom: 0;
+}
+
+.custom-theme .el-tabs--left .el-tabs__header {
+ float: left;
+ margin-bottom: 0;
+ margin-right: 10px;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-wrap {
+ margin-right: -1px;
+}
+
+.custom-theme .el-tabs--left .el-tabs__nav-wrap::after {
+ left: auto;
+ right: 0;
+}
+
+.custom-theme .el-tabs--left .el-tabs__active-bar {
+ right: 0;
+ left: auto;
+}
+
+.custom-theme .el-tabs--left .el-tabs__item {
+ text-align: right;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__active-bar {
+ display: none;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item {
+ border-left: none;
+ border-right: 1px solid #dfe4ed;
+ border-bottom: none;
+ border-top: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item:first-child {
+ border-right: 1px solid #dfe4ed;
+ border-top: none;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active {
+ border: 1px solid #dfe4ed;
+ border-right-color: #fff;
+ border-left: none;
+ border-bottom: none;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active:first-child {
+ border-top: none;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active:last-child {
+ border-bottom: none;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__nav {
+ border-radius: 4px 0 0 4px;
+ border-bottom: 1px solid #dfe4ed;
+ border-right: none;
+}
+
+.custom-theme .el-tabs--left.el-tabs--card .el-tabs__new-tab {
+ float: none;
+}
+
+.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__header {
+ border-right: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item {
+ border: 1px solid transparent;
+ margin: -1px 0 -1px -1px;
+}
+
+.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item.is-active {
+ border-color: transparent;
+ border-top-color: #d1dbe5;
+ border-bottom-color: #d1dbe5;
+}
+
+.custom-theme .el-tabs--right .el-tabs__header {
+ float: right;
+ margin-bottom: 0;
+ margin-left: 10px;
+}
+
+.custom-theme .el-tabs--right .el-tabs__nav-wrap {
+ margin-left: -1px;
+}
+
+.custom-theme .el-tabs--right .el-tabs__nav-wrap::after {
+ left: 0;
+ right: auto;
+}
+
+.custom-theme .el-tabs--right .el-tabs__active-bar {
+ left: 0;
+}
+
+.custom-theme .el-tabs--right.el-tabs--card .el-tabs__active-bar {
+ display: none;
+}
+
+.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item {
+ border-bottom: none;
+ border-top: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item:first-child {
+ border-left: 1px solid #dfe4ed;
+ border-top: none;
+}
+
+.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active {
+ border: 1px solid #dfe4ed;
+ border-left-color: #fff;
+ border-right: none;
+ border-bottom: none;
+}
+
+.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active:first-child {
+ border-top: none;
+}
+
+.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active:last-child {
+ border-bottom: none;
+}
+
+.custom-theme .el-tabs--right.el-tabs--card .el-tabs__nav {
+ border-radius: 0 4px 4px 0;
+ border-bottom: 1px solid #dfe4ed;
+ border-left: none;
+}
+
+.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__header {
+ border-left: 1px solid #dfe4ed;
+}
+
+.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item {
+ border: 1px solid transparent;
+ margin: -1px -1px -1px 0;
+}
+
+.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item.is-active {
+ border-color: transparent;
+ border-top-color: #d1dbe5;
+ border-bottom-color: #d1dbe5;
+}
+
+.custom-theme .slideInLeft-transition,
+.custom-theme .slideInRight-transition {
+ display: inline-block;
+}
+
+.custom-theme .slideInRight-enter {
+ -webkit-animation: slideInRight-enter 0.3s;
+ animation: slideInRight-enter 0.3s;
+}
+
+.custom-theme .slideInRight-leave {
+ position: absolute;
+ left: 0;
+ right: 0;
+ -webkit-animation: slideInRight-leave 0.3s;
+ animation: slideInRight-leave 0.3s;
+}
+
+.custom-theme .slideInLeft-enter {
+ -webkit-animation: slideInLeft-enter 0.3s;
+ animation: slideInLeft-enter 0.3s;
+}
+
+.custom-theme .slideInLeft-leave {
+ position: absolute;
+ left: 0;
+ right: 0;
+ -webkit-animation: slideInLeft-leave 0.3s;
+ animation: slideInLeft-leave 0.3s;
+}
+
+@-webkit-keyframes slideInRight-enter {
+ 0% {
+ opacity: 0;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@keyframes slideInRight-enter {
+ 0% {
+ opacity: 0;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes slideInRight-leave {
+ 0% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ opacity: 0;
+ }
+}
+
+@keyframes slideInRight-leave {
+ 0% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ opacity: 0;
+ }
+}
+
+@-webkit-keyframes slideInLeft-enter {
+ 0% {
+ opacity: 0;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@keyframes slideInLeft-enter {
+ 0% {
+ opacity: 0;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes slideInLeft-leave {
+ 0% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ opacity: 0;
+ }
+}
+
+@keyframes slideInLeft-leave {
+ 0% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ opacity: 0;
+ }
+}
+
+.custom-theme .el-tag {
+ background-color: rgba(38, 39, 41, 0.1);
+ display: inline-block;
+ padding: 0 10px;
+ height: 32px;
+ line-height: 30px;
+ font-size: 12px;
+ color: #262729;
+ border-radius: 4px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid rgba(38, 39, 41, 0.2);
+ white-space: nowrap;
+}
+
+.custom-theme .el-tag .el-icon-close {
+ border-radius: 50%;
+ text-align: center;
+ position: relative;
+ cursor: pointer;
+ font-size: 12px;
+ height: 18px;
+ width: 18px;
+ line-height: 18px;
+ vertical-align: middle;
+ top: -1px;
+ right: -5px;
+ color: #262729;
+}
+
+.custom-theme .el-tag .el-icon-close::before {
+ display: block;
+}
+
+.custom-theme .el-tag .el-icon-close:hover {
+ background-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-tag--info {
+ background-color: rgba(10, 118, 164, 0.1);
+ border-color: rgba(10, 118, 164, 0.2);
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info.is-hit {
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close {
+ color: #0a76a4;
+}
+
+.custom-theme .el-tag--info .el-tag__close:hover {
+ background-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-tag--success {
+ background-color: rgba(64, 145, 103, 0.1);
+ border-color: rgba(64, 145, 103, 0.2);
+ color: #409167;
+}
+
+.custom-theme .el-tag--success.is-hit {
+ border-color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close {
+ color: #409167;
+}
+
+.custom-theme .el-tag--success .el-tag__close:hover {
+ background-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-tag--warning {
+ background-color: rgba(157, 164, 8, 0.1);
+ border-color: rgba(157, 164, 8, 0.2);
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning.is-hit {
+ border-color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close {
+ color: #9da408;
+}
+
+.custom-theme .el-tag--warning .el-tag__close:hover {
+ background-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-tag--danger {
+ background-color: rgba(179, 69, 14, 0.1);
+ border-color: rgba(179, 69, 14, 0.2);
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger.is-hit {
+ border-color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close {
+ color: #b3450e;
+}
+
+.custom-theme .el-tag--danger .el-tag__close:hover {
+ background-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-tag--medium {
+ height: 28px;
+ line-height: 26px;
+}
+
+.custom-theme .el-tag--medium .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--small {
+ height: 24px;
+ padding: 0 8px;
+ line-height: 22px;
+}
+
+.custom-theme .el-tag--small .el-icon-close {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-tag--mini {
+ height: 20px;
+ padding: 0 5px;
+ line-height: 19px;
+}
+
+.custom-theme .el-tag--mini .el-icon-close {
+ margin-left: -3px;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.custom-theme .el-tree {
+ cursor: default;
+ background: #fff;
+ color: #5a5e66;
+}
+
+.custom-theme .el-tree__empty-block {
+ position: relative;
+ min-height: 60px;
+ text-align: center;
+ width: 100%;
+ height: 100%;
+}
+
+.custom-theme .el-tree__empty-text {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ color: #623615;
+}
+
+.custom-theme .el-tree-node {
+ white-space: nowrap;
+}
+
+.custom-theme .el-tree-node__content {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ height: 26px;
+ cursor: pointer;
+}
+
+.custom-theme .el-tree-node__content>.el-tree-node__expand-icon {
+ padding: 6px;
+}
+
+.custom-theme .el-tree-node__content>.el-checkbox {
+ margin-right: 8px;
+}
+
+.custom-theme .el-tree-node__content:hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-tree-node__expand-icon {
+ cursor: pointer;
+ color: #b4bccc;
+ font-size: 12px;
+ -webkit-transform: rotate(0);
+ transform: rotate(0);
+ -webkit-transition: -webkit-transform 0.3s ease-in-out;
+ transition: -webkit-transform 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
+}
+
+.custom-theme .el-tree-node__expand-icon.expanded {
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.custom-theme .el-tree-node__expand-icon.is-leaf {
+ color: transparent;
+ cursor: default;
+}
+
+.custom-theme .el-tree-node__label {
+ font-size: 14px;
+}
+
+.custom-theme .el-tree-node__loading-icon {
+ margin-right: 8px;
+ font-size: 14px;
+ color: #b4bccc;
+}
+
+.custom-theme .el-tree-node>.el-tree-node__children {
+ overflow: hidden;
+ background-color: transparent;
+}
+
+.custom-theme .el-tree-node.is-expanded>.el-tree-node__children {
+ display: block;
+}
+
+.custom-theme .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+ background-color: #eee;
+}
+
+.custom-theme .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 0.2s;
+ transition: opacity 0.2s;
+}
+
+.custom-theme .el-alert.is-center {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.custom-theme .el-alert--success {
+ background-color: #ecf4f0;
+ color: #409167;
+}
+
+.custom-theme .el-alert--success .el-alert__description {
+ color: #409167;
+}
+
+.custom-theme .el-alert--info {
+ background-color: #e7f1f6;
+ color: #0a76a4;
+}
+
+.custom-theme .el-alert--info .el-alert__description {
+ color: #0a76a4;
+}
+
+.custom-theme .el-alert--warning {
+ background-color: #f5f6e6;
+ color: #9da408;
+}
+
+.custom-theme .el-alert--warning .el-alert__description {
+ color: #9da408;
+}
+
+.custom-theme .el-alert--error {
+ background-color: #f7ece7;
+ color: #b3450e;
+}
+
+.custom-theme .el-alert--error .el-alert__description {
+ color: #b3450e;
+}
+
+.custom-theme .el-alert__content {
+ display: table-cell;
+ padding: 0 8px;
+}
+
+.custom-theme .el-alert__icon {
+ font-size: 16px;
+ width: 16px;
+}
+
+.custom-theme .el-alert__icon.is-big {
+ font-size: 28px;
+ width: 28px;
+}
+
+.custom-theme .el-alert__title {
+ font-size: 13px;
+ line-height: 18px;
+}
+
+.custom-theme .el-alert__title.is-bold {
+ font-weight: 700;
+}
+
+.custom-theme .el-alert .el-alert__description {
+ font-size: 12px;
+ margin: 5px 0 0 0;
+}
+
+.custom-theme .el-alert__closebtn {
+ font-size: 12px;
+ color: #b4bccc;
+ opacity: 1;
+ position: absolute;
+ top: 12px;
+ right: 15px;
+ cursor: pointer;
+}
+
+.custom-theme .el-alert__closebtn.is-customed {
+ font-style: normal;
+ font-size: 13px;
+ top: 9px;
+}
+
+.custom-theme .el-alert-fade-enter,
+.custom-theme .el-alert-fade-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-notification {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ width: 330px;
+ padding: 14px 26px 14px 13px;
+ border-radius: 8px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid #e6ebf5;
+ position: fixed;
+ background-color: #fff;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ -webkit-transition: opacity 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s,
+ -webkit-transform 0.3s;
+ transition: opacity 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s,
+ -webkit-transform 0.3s;
+ transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s,
+ bottom 0.3s;
+ transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s,
+ bottom 0.3s, -webkit-transform 0.3s;
+ overflow: hidden;
+}
+
+.custom-theme .el-notification.right {
+ right: 16px;
+}
+
+.custom-theme .el-notification.left {
+ left: 16px;
+}
+
+.custom-theme .el-notification__group {
+ margin-left: 13px;
+}
+
+.custom-theme .el-notification__title {
+ font-weight: 700;
+ font-size: 16px;
+ color: #2d2f33;
+ margin: 0;
+}
+
+.custom-theme .el-notification__content {
+ font-size: 14px;
+ line-height: 21px;
+ margin: 6px 0 0 0;
+ color: #5a5e66;
+ text-align: justify;
+}
+
+.custom-theme .el-notification__content p {
+ margin: 0;
+}
+
+.custom-theme .el-notification__icon {
+ height: 24px;
+ width: 24px;
+ font-size: 24px;
+ -webkit-transform: translateY(4px);
+ transform: translateY(4px);
+}
+
+.custom-theme .el-notification__closeBtn {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ cursor: pointer;
+ color: #878d99;
+ font-size: 16px;
+}
+
+.custom-theme .el-notification__closeBtn:hover {
+ color: #5a5e66;
+}
+
+.custom-theme .el-notification .el-icon-success {
+ color: #409167;
+}
+
+.custom-theme .el-notification .el-icon-error {
+ color: #b3450e;
+}
+
+.custom-theme .el-notification .el-icon-info {
+ color: #0a76a4;
+}
+
+.custom-theme .el-notification .el-icon-warning {
+ color: #9da408;
+}
+
+.custom-theme .el-notification-fade-enter.right {
+ right: 0;
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+}
+
+.custom-theme .el-notification-fade-enter.left {
+ left: 0;
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+}
+
+.custom-theme .el-notification-fade-leave-active {
+ opacity: 0;
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input-number {
+ position: relative;
+ display: inline-block;
+ width: 180px;
+ line-height: 38px;
+}
+
+.custom-theme .el-input-number .el-input {
+ display: block;
+}
+
+.custom-theme .el-input-number .el-input__inner {
+ -webkit-appearance: none;
+ padding-left: 50px;
+ padding-right: 50px;
+ text-align: center;
+}
+
+.custom-theme .el-input-number__decrease,
+.custom-theme .el-input-number__increase {
+ position: absolute;
+ z-index: 1;
+ top: 1px;
+ width: 40px;
+ height: auto;
+ text-align: center;
+ background: #f5f7fa;
+ color: #5a5e66;
+ cursor: pointer;
+ font-size: 13px;
+}
+
+.custom-theme .el-input-number__decrease:hover,
+.custom-theme .el-input-number__increase:hover {
+ color: #262729;
+}
+
+.custom-theme .el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),
+.custom-theme .el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled) {
+ border-color: #262729;
+}
+
+.custom-theme .el-input-number__decrease.is-disabled,
+.custom-theme .el-input-number__increase.is-disabled {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input-number__increase {
+ right: 1px;
+ border-radius: 0 4px 4px 0;
+ border-left: 1px solid #d8dce5;
+}
+
+.custom-theme .el-input-number__decrease {
+ left: 1px;
+ border-radius: 4px 0 0 4px;
+ border-right: 1px solid #d8dce5;
+}
+
+.custom-theme .el-input-number.is-disabled .el-input-number__decrease,
+.custom-theme .el-input-number.is-disabled .el-input-number__increase {
+ border-color: #dfe4ed;
+ color: #dfe4ed;
+}
+
+.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover,
+.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover {
+ color: #dfe4ed;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input-number--medium {
+ width: 200px;
+ line-height: 34px;
+}
+
+.custom-theme .el-input-number--medium .el-input-number__decrease,
+.custom-theme .el-input-number--medium .el-input-number__increase {
+ width: 36px;
+ font-size: 14px;
+}
+
+.custom-theme .el-input-number--medium .el-input__inner {
+ padding-left: 43px;
+ padding-right: 43px;
+}
+
+.custom-theme .el-input-number--small {
+ width: 130px;
+ line-height: 30px;
+}
+
+.custom-theme .el-input-number--small .el-input-number__decrease,
+.custom-theme .el-input-number--small .el-input-number__increase {
+ width: 32px;
+ font-size: 13px;
+}
+
+.custom-theme .el-input-number--small .el-input-number__decrease [class*='el-icon'],
+.custom-theme .el-input-number--small .el-input-number__increase [class*='el-icon'] {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+}
+
+.custom-theme .el-input-number--small .el-input__inner {
+ padding-left: 39px;
+ padding-right: 39px;
+}
+
+.custom-theme .el-input-number--mini {
+ width: 130px;
+ line-height: 26px;
+}
+
+.custom-theme .el-input-number--mini .el-input-number__decrease,
+.custom-theme .el-input-number--mini .el-input-number__increase {
+ width: 28px;
+ font-size: 12px;
+}
+
+.custom-theme .el-input-number--mini .el-input-number__decrease [class*='el-icon'],
+.custom-theme .el-input-number--mini .el-input-number__increase [class*='el-icon'] {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-input-number--mini .el-input__inner {
+ padding-left: 35px;
+ padding-right: 35px;
+}
+
+.custom-theme .el-input-number.is-without-controls .el-input__inner {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input__inner {
+ padding-left: 15px;
+ padding-right: 50px;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__decrease,
+.custom-theme .el-input-number.is-controls-right .el-input-number__increase {
+ height: auto;
+ line-height: 19px;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__decrease [class*='el-icon'],
+.custom-theme .el-input-number.is-controls-right .el-input-number__increase [class*='el-icon'] {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__increase {
+ border-radius: 0 4px 0 0;
+ border-bottom: 1px solid #d8dce5;
+}
+
+.custom-theme .el-input-number.is-controls-right .el-input-number__decrease {
+ right: 1px;
+ bottom: 1px;
+ top: auto;
+ left: auto;
+ border-right: none;
+ border-left: 1px solid #d8dce5;
+ border-radius: 0 0 4px 0;
+}
+
+.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='decrease'],
+.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='increase'] {
+ line-height: 17px;
+}
+
+.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='decrease'],
+.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='increase'] {
+ line-height: 15px;
+}
+
+.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='decrease'],
+.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='increase'] {
+ line-height: 13px;
+}
+
+.custom-theme .el-tooltip__popper {
+ position: absolute;
+ border-radius: 4px;
+ padding: 10px;
+ z-index: 2000;
+ font-size: 12px;
+ line-height: 1.2;
+}
+
+.custom-theme .el-tooltip__popper .popper__arrow,
+.custom-theme .el-tooltip__popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-tooltip__popper .popper__arrow {
+ border-width: 6px;
+}
+
+.custom-theme .el-tooltip__popper .popper__arrow::after {
+ content: ' ';
+ border-width: 5px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ border-top-color: #2d2f33;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -5px;
+ border-top-color: #2d2f33;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ border-top-width: 0;
+ border-bottom-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -5px;
+ border-top-width: 0;
+ border-bottom-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow {
+ left: -6px;
+ border-right-color: #2d2f33;
+ border-left-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -5px;
+ left: 1px;
+ border-right-color: #2d2f33;
+ border-left-width: 0;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow {
+ right: -6px;
+ border-right-width: 0;
+ border-left-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -5px;
+ margin-left: -5px;
+ border-right-width: 0;
+ border-left-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-dark {
+ background: #2d2f33;
+ color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light {
+ background: #fff;
+ border: 1px solid #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow {
+ border-top-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow::after {
+ border-top-color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow {
+ border-bottom-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow::after {
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow {
+ border-left-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow::after {
+ border-left-color: #fff;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow {
+ border-right-color: #2d2f33;
+}
+
+.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow::after {
+ border-right-color: #fff;
+}
+
+.custom-theme .el-slider::after,
+.custom-theme .el-slider::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-slider::after {
+ clear: both;
+}
+
+.custom-theme .el-slider__runway {
+ width: 100%;
+ height: 6px;
+ margin: 16px 0;
+ background-color: #dfe4ed;
+ border-radius: 3px;
+ position: relative;
+ cursor: pointer;
+ vertical-align: middle;
+}
+
+.custom-theme .el-slider__runway.show-input {
+ margin-right: 160px;
+ width: auto;
+}
+
+.custom-theme .el-slider__runway.disabled {
+ cursor: default;
+}
+
+.custom-theme .el-slider__runway.disabled .el-slider__bar {
+ background-color: #b4bccc;
+}
+
+.custom-theme .el-slider__runway.disabled .el-slider__button {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.hover,
+.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper:hover {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.dragging {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-slider__runway.disabled .el-slider__button.dragging,
+.custom-theme .el-slider__runway.disabled .el-slider__button.hover,
+.custom-theme .el-slider__runway.disabled .el-slider__button:hover {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+}
+
+.custom-theme .el-slider__runway.disabled .el-slider__button.hover,
+.custom-theme .el-slider__runway.disabled .el-slider__button:hover {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-slider__runway.disabled .el-slider__button.dragging {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-slider__input {
+ float: right;
+ margin-top: 3px;
+}
+
+.custom-theme .el-slider__bar {
+ height: 6px;
+ background-color: #262729;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ position: absolute;
+}
+
+.custom-theme .el-slider__button-wrapper {
+ height: 36px;
+ width: 36px;
+ position: absolute;
+ z-index: 1001;
+ top: -15px;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ background-color: transparent;
+ text-align: center;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-slider__button-wrapper::after {
+ display: inline-block;
+ content: '';
+ height: 100%;
+ vertical-align: middle;
+}
+
+.custom-theme .el-slider__button-wrapper .el-tooltip {
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.custom-theme .el-slider__button-wrapper.hover,
+.custom-theme .el-slider__button-wrapper:hover {
+ cursor: -webkit-grab;
+ cursor: grab;
+}
+
+.custom-theme .el-slider__button-wrapper.dragging {
+ cursor: -webkit-grabbing;
+ cursor: grabbing;
+}
+
+.custom-theme .el-slider__button {
+ width: 16px;
+ height: 16px;
+ border: solid 2px #262729;
+ background-color: #fff;
+ border-radius: 50%;
+ -webkit-transition: 0.2s;
+ transition: 0.2s;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-slider__button.dragging,
+.custom-theme .el-slider__button.hover,
+.custom-theme .el-slider__button:hover {
+ -webkit-transform: scale(1.2);
+ transform: scale(1.2);
+}
+
+.custom-theme .el-slider__button.hover,
+.custom-theme .el-slider__button:hover {
+ cursor: -webkit-grab;
+ cursor: grab;
+}
+
+.custom-theme .el-slider__button.dragging {
+ cursor: -webkit-grabbing;
+ cursor: grabbing;
+}
+
+.custom-theme .el-slider__stop {
+ position: absolute;
+ height: 6px;
+ width: 6px;
+ border-radius: 100%;
+ background-color: #fff;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+}
+
+.custom-theme .el-slider.is-vertical {
+ position: relative;
+}
+
+.custom-theme .el-slider.is-vertical .el-slider__runway {
+ width: 4px;
+ height: 100%;
+ margin: 0 16px;
+}
+
+.custom-theme .el-slider.is-vertical .el-slider__bar {
+ width: 4px;
+ height: auto;
+ border-radius: 0 0 3px 3px;
+}
+
+.custom-theme .el-slider.is-vertical .el-slider__button-wrapper {
+ top: auto;
+ left: -15px;
+ -webkit-transform: translateY(50%);
+ transform: translateY(50%);
+}
+
+.custom-theme .el-slider.is-vertical .el-slider__stop {
+ -webkit-transform: translateY(50%);
+ transform: translateY(50%);
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input {
+ padding-bottom: 58px;
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input {
+ overflow: visible;
+ float: none;
+ position: absolute;
+ bottom: 22px;
+ width: 36px;
+ margin-top: 15px;
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner {
+ text-align: center;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase {
+ top: 32px;
+ margin-top: -1px;
+ border: 1px solid #d8dce5;
+ line-height: 20px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease {
+ width: 18px;
+ right: 18px;
+ border-bottom-left-radius: 4px;
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase {
+ width: 19px;
+ border-bottom-right-radius: 4px;
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,
+.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase {
+ border-color: #262729;
+}
+
+.custom-theme .el-loading-parent--relative {
+ position: relative !important;
+}
+
+.custom-theme .el-loading-parent--hidden {
+ overflow: hidden !important;
+}
+
+.custom-theme .el-loading-mask {
+ position: absolute;
+ z-index: 10000;
+ background-color: rgba(255, 255, 255, 0.9);
+ margin: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ -webkit-transition: opacity 0.3s;
+ transition: opacity 0.3s;
+}
+
+.custom-theme .el-loading-mask.is-fullscreen {
+ position: fixed;
+}
+
+.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner {
+ margin-top: -25px;
+}
+
+.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner .circular {
+ height: 50px;
+ width: 50px;
+}
+
+.custom-theme .el-loading-spinner {
+ top: 50%;
+ margin-top: -21px;
+ width: 100%;
+ text-align: center;
+ position: absolute;
+}
+
+.custom-theme .el-loading-spinner .el-loading-text {
+ color: #262729;
+ margin: 3px 0;
+ font-size: 14px;
+}
+
+.custom-theme .el-loading-spinner .circular {
+ height: 42px;
+ width: 42px;
+ -webkit-animation: loading-rotate 2s linear infinite;
+ animation: loading-rotate 2s linear infinite;
+}
+
+.custom-theme .el-loading-spinner .path {
+ -webkit-animation: loading-dash 1.5s ease-in-out infinite;
+ animation: loading-dash 1.5s ease-in-out infinite;
+ stroke-dasharray: 90, 150;
+ stroke-dashoffset: 0;
+ stroke-width: 2;
+ stroke: #262729;
+ stroke-linecap: round;
+}
+
+.custom-theme .el-loading-spinner i {
+ color: #262729;
+}
+
+.custom-theme .el-loading-fade-enter,
+.custom-theme .el-loading-fade-leave-active {
+ opacity: 0;
+}
+
+@-webkit-keyframes loading-rotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loading-rotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-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;
+ }
+}
+
+@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;
+ }
+}
+
+.custom-theme .el-row {
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-row::after,
+.custom-theme .el-row::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-row::after {
+ clear: both;
+}
+
+.custom-theme .el-row--flex {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+
+.custom-theme .el-row--flex:after,
+.custom-theme .el-row--flex:before {
+ display: none;
+}
+
+.custom-theme .el-row--flex.is-justify-center {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.custom-theme .el-row--flex.is-justify-end {
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+}
+
+.custom-theme .el-row--flex.is-justify-space-between {
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+
+.custom-theme .el-row--flex.is-justify-space-around {
+ -ms-flex-pack: distribute;
+ justify-content: space-around;
+}
+
+.custom-theme .el-row--flex.is-align-middle {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.custom-theme .el-row--flex.is-align-bottom {
+ -webkit-box-align: end;
+ -ms-flex-align: end;
+ align-items: flex-end;
+}
+
+.custom-theme [class*='el-col-'] {
+ float: left;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-col-0 {
+ display: none;
+}
+
+.custom-theme .el-col-1 {
+ width: 4.16667%;
+}
+
+.custom-theme .el-col-offset-1 {
+ margin-left: 4.16667%;
+}
+
+.custom-theme .el-col-pull-1 {
+ position: relative;
+ right: 4.16667%;
+}
+
+.custom-theme .el-col-push-1 {
+ position: relative;
+ left: 4.16667%;
+}
+
+.custom-theme .el-col-2 {
+ width: 8.33333%;
+}
+
+.custom-theme .el-col-offset-2 {
+ margin-left: 8.33333%;
+}
+
+.custom-theme .el-col-pull-2 {
+ position: relative;
+ right: 8.33333%;
+}
+
+.custom-theme .el-col-push-2 {
+ position: relative;
+ left: 8.33333%;
+}
+
+.custom-theme .el-col-3 {
+ width: 12.5%;
+}
+
+.custom-theme .el-col-offset-3 {
+ margin-left: 12.5%;
+}
+
+.custom-theme .el-col-pull-3 {
+ position: relative;
+ right: 12.5%;
+}
+
+.custom-theme .el-col-push-3 {
+ position: relative;
+ left: 12.5%;
+}
+
+.custom-theme .el-col-4 {
+ width: 16.66667%;
+}
+
+.custom-theme .el-col-offset-4 {
+ margin-left: 16.66667%;
+}
+
+.custom-theme .el-col-pull-4 {
+ position: relative;
+ right: 16.66667%;
+}
+
+.custom-theme .el-col-push-4 {
+ position: relative;
+ left: 16.66667%;
+}
+
+.custom-theme .el-col-5 {
+ width: 20.83333%;
+}
+
+.custom-theme .el-col-offset-5 {
+ margin-left: 20.83333%;
+}
+
+.custom-theme .el-col-pull-5 {
+ position: relative;
+ right: 20.83333%;
+}
+
+.custom-theme .el-col-push-5 {
+ position: relative;
+ left: 20.83333%;
+}
+
+.custom-theme .el-col-6 {
+ width: 25%;
+}
+
+.custom-theme .el-col-offset-6 {
+ margin-left: 25%;
+}
+
+.custom-theme .el-col-pull-6 {
+ position: relative;
+ right: 25%;
+}
+
+.custom-theme .el-col-push-6 {
+ position: relative;
+ left: 25%;
+}
+
+.custom-theme .el-col-7 {
+ width: 29.16667%;
+}
+
+.custom-theme .el-col-offset-7 {
+ margin-left: 29.16667%;
+}
+
+.custom-theme .el-col-pull-7 {
+ position: relative;
+ right: 29.16667%;
+}
+
+.custom-theme .el-col-push-7 {
+ position: relative;
+ left: 29.16667%;
+}
+
+.custom-theme .el-col-8 {
+ width: 33.33333%;
+}
+
+.custom-theme .el-col-offset-8 {
+ margin-left: 33.33333%;
+}
+
+.custom-theme .el-col-pull-8 {
+ position: relative;
+ right: 33.33333%;
+}
+
+.custom-theme .el-col-push-8 {
+ position: relative;
+ left: 33.33333%;
+}
+
+.custom-theme .el-col-9 {
+ width: 37.5%;
+}
+
+.custom-theme .el-col-offset-9 {
+ margin-left: 37.5%;
+}
+
+.custom-theme .el-col-pull-9 {
+ position: relative;
+ right: 37.5%;
+}
+
+.custom-theme .el-col-push-9 {
+ position: relative;
+ left: 37.5%;
+}
+
+.custom-theme .el-col-10 {
+ width: 41.66667%;
+}
+
+.custom-theme .el-col-offset-10 {
+ margin-left: 41.66667%;
+}
+
+.custom-theme .el-col-pull-10 {
+ position: relative;
+ right: 41.66667%;
+}
+
+.custom-theme .el-col-push-10 {
+ position: relative;
+ left: 41.66667%;
+}
+
+.custom-theme .el-col-11 {
+ width: 45.83333%;
+}
+
+.custom-theme .el-col-offset-11 {
+ margin-left: 45.83333%;
+}
+
+.custom-theme .el-col-pull-11 {
+ position: relative;
+ right: 45.83333%;
+}
+
+.custom-theme .el-col-push-11 {
+ position: relative;
+ left: 45.83333%;
+}
+
+.custom-theme .el-col-12 {
+ width: 50%;
+}
+
+.custom-theme .el-col-offset-12 {
+ margin-left: 50%;
+}
+
+.custom-theme .el-col-pull-12 {
+ position: relative;
+ right: 50%;
+}
+
+.custom-theme .el-col-push-12 {
+ position: relative;
+ left: 50%;
+}
+
+.custom-theme .el-col-13 {
+ width: 54.16667%;
+}
+
+.custom-theme .el-col-offset-13 {
+ margin-left: 54.16667%;
+}
+
+.custom-theme .el-col-pull-13 {
+ position: relative;
+ right: 54.16667%;
+}
+
+.custom-theme .el-col-push-13 {
+ position: relative;
+ left: 54.16667%;
+}
+
+.custom-theme .el-col-14 {
+ width: 58.33333%;
+}
+
+.custom-theme .el-col-offset-14 {
+ margin-left: 58.33333%;
+}
+
+.custom-theme .el-col-pull-14 {
+ position: relative;
+ right: 58.33333%;
+}
+
+.custom-theme .el-col-push-14 {
+ position: relative;
+ left: 58.33333%;
+}
+
+.custom-theme .el-col-15 {
+ width: 62.5%;
+}
+
+.custom-theme .el-col-offset-15 {
+ margin-left: 62.5%;
+}
+
+.custom-theme .el-col-pull-15 {
+ position: relative;
+ right: 62.5%;
+}
+
+.custom-theme .el-col-push-15 {
+ position: relative;
+ left: 62.5%;
+}
+
+.custom-theme .el-col-16 {
+ width: 66.66667%;
+}
+
+.custom-theme .el-col-offset-16 {
+ margin-left: 66.66667%;
+}
+
+.custom-theme .el-col-pull-16 {
+ position: relative;
+ right: 66.66667%;
+}
+
+.custom-theme .el-col-push-16 {
+ position: relative;
+ left: 66.66667%;
+}
+
+.custom-theme .el-col-17 {
+ width: 70.83333%;
+}
+
+.custom-theme .el-col-offset-17 {
+ margin-left: 70.83333%;
+}
+
+.custom-theme .el-col-pull-17 {
+ position: relative;
+ right: 70.83333%;
+}
+
+.custom-theme .el-col-push-17 {
+ position: relative;
+ left: 70.83333%;
+}
+
+.custom-theme .el-col-18 {
+ width: 75%;
+}
+
+.custom-theme .el-col-offset-18 {
+ margin-left: 75%;
+}
+
+.custom-theme .el-col-pull-18 {
+ position: relative;
+ right: 75%;
+}
+
+.custom-theme .el-col-push-18 {
+ position: relative;
+ left: 75%;
+}
+
+.custom-theme .el-col-19 {
+ width: 79.16667%;
+}
+
+.custom-theme .el-col-offset-19 {
+ margin-left: 79.16667%;
+}
+
+.custom-theme .el-col-pull-19 {
+ position: relative;
+ right: 79.16667%;
+}
+
+.custom-theme .el-col-push-19 {
+ position: relative;
+ left: 79.16667%;
+}
+
+.custom-theme .el-col-20 {
+ width: 83.33333%;
+}
+
+.custom-theme .el-col-offset-20 {
+ margin-left: 83.33333%;
+}
+
+.custom-theme .el-col-pull-20 {
+ position: relative;
+ right: 83.33333%;
+}
+
+.custom-theme .el-col-push-20 {
+ position: relative;
+ left: 83.33333%;
+}
+
+.custom-theme .el-col-21 {
+ width: 87.5%;
+}
+
+.custom-theme .el-col-offset-21 {
+ margin-left: 87.5%;
+}
+
+.custom-theme .el-col-pull-21 {
+ position: relative;
+ right: 87.5%;
+}
+
+.custom-theme .el-col-push-21 {
+ position: relative;
+ left: 87.5%;
+}
+
+.custom-theme .el-col-22 {
+ width: 91.66667%;
+}
+
+.custom-theme .el-col-offset-22 {
+ margin-left: 91.66667%;
+}
+
+.custom-theme .el-col-pull-22 {
+ position: relative;
+ right: 91.66667%;
+}
+
+.custom-theme .el-col-push-22 {
+ position: relative;
+ left: 91.66667%;
+}
+
+.custom-theme .el-col-23 {
+ width: 95.83333%;
+}
+
+.custom-theme .el-col-offset-23 {
+ margin-left: 95.83333%;
+}
+
+.custom-theme .el-col-pull-23 {
+ position: relative;
+ right: 95.83333%;
+}
+
+.custom-theme .el-col-push-23 {
+ position: relative;
+ left: 95.83333%;
+}
+
+.custom-theme .el-col-24 {
+ width: 100%;
+}
+
+.custom-theme .el-col-offset-24 {
+ margin-left: 100%;
+}
+
+.custom-theme .el-col-pull-24 {
+ position: relative;
+ right: 100%;
+}
+
+.custom-theme .el-col-push-24 {
+ position: relative;
+ left: 100%;
+}
+
+@media only screen and (max-width: 768px) {
+ .custom-theme .el-col-xs-0 {
+ display: none;
+ }
+
+ .custom-theme .el-col-xs-1 {
+ width: 4.16667%;
+ }
+
+ .custom-theme .el-col-xs-offset-1 {
+ margin-left: 4.16667%;
+ }
+
+ .custom-theme .el-col-xs-pull-1 {
+ position: relative;
+ right: 4.16667%;
+ }
+
+ .custom-theme .el-col-xs-push-1 {
+ position: relative;
+ left: 4.16667%;
+ }
+
+ .custom-theme .el-col-xs-2 {
+ width: 8.33333%;
+ }
+
+ .custom-theme .el-col-xs-offset-2 {
+ margin-left: 8.33333%;
+ }
+
+ .custom-theme .el-col-xs-pull-2 {
+ position: relative;
+ right: 8.33333%;
+ }
+
+ .custom-theme .el-col-xs-push-2 {
+ position: relative;
+ left: 8.33333%;
+ }
+
+ .custom-theme .el-col-xs-3 {
+ width: 12.5%;
+ }
+
+ .custom-theme .el-col-xs-offset-3 {
+ margin-left: 12.5%;
+ }
+
+ .custom-theme .el-col-xs-pull-3 {
+ position: relative;
+ right: 12.5%;
+ }
+
+ .custom-theme .el-col-xs-push-3 {
+ position: relative;
+ left: 12.5%;
+ }
+
+ .custom-theme .el-col-xs-4 {
+ width: 16.66667%;
+ }
+
+ .custom-theme .el-col-xs-offset-4 {
+ margin-left: 16.66667%;
+ }
+
+ .custom-theme .el-col-xs-pull-4 {
+ position: relative;
+ right: 16.66667%;
+ }
+
+ .custom-theme .el-col-xs-push-4 {
+ position: relative;
+ left: 16.66667%;
+ }
+
+ .custom-theme .el-col-xs-5 {
+ width: 20.83333%;
+ }
+
+ .custom-theme .el-col-xs-offset-5 {
+ margin-left: 20.83333%;
+ }
+
+ .custom-theme .el-col-xs-pull-5 {
+ position: relative;
+ right: 20.83333%;
+ }
+
+ .custom-theme .el-col-xs-push-5 {
+ position: relative;
+ left: 20.83333%;
+ }
+
+ .custom-theme .el-col-xs-6 {
+ width: 25%;
+ }
+
+ .custom-theme .el-col-xs-offset-6 {
+ margin-left: 25%;
+ }
+
+ .custom-theme .el-col-xs-pull-6 {
+ position: relative;
+ right: 25%;
+ }
+
+ .custom-theme .el-col-xs-push-6 {
+ position: relative;
+ left: 25%;
+ }
+
+ .custom-theme .el-col-xs-7 {
+ width: 29.16667%;
+ }
+
+ .custom-theme .el-col-xs-offset-7 {
+ margin-left: 29.16667%;
+ }
+
+ .custom-theme .el-col-xs-pull-7 {
+ position: relative;
+ right: 29.16667%;
+ }
+
+ .custom-theme .el-col-xs-push-7 {
+ position: relative;
+ left: 29.16667%;
+ }
+
+ .custom-theme .el-col-xs-8 {
+ width: 33.33333%;
+ }
+
+ .custom-theme .el-col-xs-offset-8 {
+ margin-left: 33.33333%;
+ }
+
+ .custom-theme .el-col-xs-pull-8 {
+ position: relative;
+ right: 33.33333%;
+ }
+
+ .custom-theme .el-col-xs-push-8 {
+ position: relative;
+ left: 33.33333%;
+ }
+
+ .custom-theme .el-col-xs-9 {
+ width: 37.5%;
+ }
+
+ .custom-theme .el-col-xs-offset-9 {
+ margin-left: 37.5%;
+ }
+
+ .custom-theme .el-col-xs-pull-9 {
+ position: relative;
+ right: 37.5%;
+ }
+
+ .custom-theme .el-col-xs-push-9 {
+ position: relative;
+ left: 37.5%;
+ }
+
+ .custom-theme .el-col-xs-10 {
+ width: 41.66667%;
+ }
+
+ .custom-theme .el-col-xs-offset-10 {
+ margin-left: 41.66667%;
+ }
+
+ .custom-theme .el-col-xs-pull-10 {
+ position: relative;
+ right: 41.66667%;
+ }
+
+ .custom-theme .el-col-xs-push-10 {
+ position: relative;
+ left: 41.66667%;
+ }
+
+ .custom-theme .el-col-xs-11 {
+ width: 45.83333%;
+ }
+
+ .custom-theme .el-col-xs-offset-11 {
+ margin-left: 45.83333%;
+ }
+
+ .custom-theme .el-col-xs-pull-11 {
+ position: relative;
+ right: 45.83333%;
+ }
+
+ .custom-theme .el-col-xs-push-11 {
+ position: relative;
+ left: 45.83333%;
+ }
+
+ .custom-theme .el-col-xs-12 {
+ width: 50%;
+ }
+
+ .custom-theme .el-col-xs-offset-12 {
+ margin-left: 50%;
+ }
+
+ .custom-theme .el-col-xs-pull-12 {
+ position: relative;
+ right: 50%;
+ }
+
+ .custom-theme .el-col-xs-push-12 {
+ position: relative;
+ left: 50%;
+ }
+
+ .custom-theme .el-col-xs-13 {
+ width: 54.16667%;
+ }
+
+ .custom-theme .el-col-xs-offset-13 {
+ margin-left: 54.16667%;
+ }
+
+ .custom-theme .el-col-xs-pull-13 {
+ position: relative;
+ right: 54.16667%;
+ }
+
+ .custom-theme .el-col-xs-push-13 {
+ position: relative;
+ left: 54.16667%;
+ }
+
+ .custom-theme .el-col-xs-14 {
+ width: 58.33333%;
+ }
+
+ .custom-theme .el-col-xs-offset-14 {
+ margin-left: 58.33333%;
+ }
+
+ .custom-theme .el-col-xs-pull-14 {
+ position: relative;
+ right: 58.33333%;
+ }
+
+ .custom-theme .el-col-xs-push-14 {
+ position: relative;
+ left: 58.33333%;
+ }
+
+ .custom-theme .el-col-xs-15 {
+ width: 62.5%;
+ }
+
+ .custom-theme .el-col-xs-offset-15 {
+ margin-left: 62.5%;
+ }
+
+ .custom-theme .el-col-xs-pull-15 {
+ position: relative;
+ right: 62.5%;
+ }
+
+ .custom-theme .el-col-xs-push-15 {
+ position: relative;
+ left: 62.5%;
+ }
+
+ .custom-theme .el-col-xs-16 {
+ width: 66.66667%;
+ }
+
+ .custom-theme .el-col-xs-offset-16 {
+ margin-left: 66.66667%;
+ }
+
+ .custom-theme .el-col-xs-pull-16 {
+ position: relative;
+ right: 66.66667%;
+ }
+
+ .custom-theme .el-col-xs-push-16 {
+ position: relative;
+ left: 66.66667%;
+ }
+
+ .custom-theme .el-col-xs-17 {
+ width: 70.83333%;
+ }
+
+ .custom-theme .el-col-xs-offset-17 {
+ margin-left: 70.83333%;
+ }
+
+ .custom-theme .el-col-xs-pull-17 {
+ position: relative;
+ right: 70.83333%;
+ }
+
+ .custom-theme .el-col-xs-push-17 {
+ position: relative;
+ left: 70.83333%;
+ }
+
+ .custom-theme .el-col-xs-18 {
+ width: 75%;
+ }
+
+ .custom-theme .el-col-xs-offset-18 {
+ margin-left: 75%;
+ }
+
+ .custom-theme .el-col-xs-pull-18 {
+ position: relative;
+ right: 75%;
+ }
+
+ .custom-theme .el-col-xs-push-18 {
+ position: relative;
+ left: 75%;
+ }
+
+ .custom-theme .el-col-xs-19 {
+ width: 79.16667%;
+ }
+
+ .custom-theme .el-col-xs-offset-19 {
+ margin-left: 79.16667%;
+ }
+
+ .custom-theme .el-col-xs-pull-19 {
+ position: relative;
+ right: 79.16667%;
+ }
+
+ .custom-theme .el-col-xs-push-19 {
+ position: relative;
+ left: 79.16667%;
+ }
+
+ .custom-theme .el-col-xs-20 {
+ width: 83.33333%;
+ }
+
+ .custom-theme .el-col-xs-offset-20 {
+ margin-left: 83.33333%;
+ }
+
+ .custom-theme .el-col-xs-pull-20 {
+ position: relative;
+ right: 83.33333%;
+ }
+
+ .custom-theme .el-col-xs-push-20 {
+ position: relative;
+ left: 83.33333%;
+ }
+
+ .custom-theme .el-col-xs-21 {
+ width: 87.5%;
+ }
+
+ .custom-theme .el-col-xs-offset-21 {
+ margin-left: 87.5%;
+ }
+
+ .custom-theme .el-col-xs-pull-21 {
+ position: relative;
+ right: 87.5%;
+ }
+
+ .custom-theme .el-col-xs-push-21 {
+ position: relative;
+ left: 87.5%;
+ }
+
+ .custom-theme .el-col-xs-22 {
+ width: 91.66667%;
+ }
+
+ .custom-theme .el-col-xs-offset-22 {
+ margin-left: 91.66667%;
+ }
+
+ .custom-theme .el-col-xs-pull-22 {
+ position: relative;
+ right: 91.66667%;
+ }
+
+ .custom-theme .el-col-xs-push-22 {
+ position: relative;
+ left: 91.66667%;
+ }
+
+ .custom-theme .el-col-xs-23 {
+ width: 95.83333%;
+ }
+
+ .custom-theme .el-col-xs-offset-23 {
+ margin-left: 95.83333%;
+ }
+
+ .custom-theme .el-col-xs-pull-23 {
+ position: relative;
+ right: 95.83333%;
+ }
+
+ .custom-theme .el-col-xs-push-23 {
+ position: relative;
+ left: 95.83333%;
+ }
+
+ .custom-theme .el-col-xs-24 {
+ width: 100%;
+ }
+
+ .custom-theme .el-col-xs-offset-24 {
+ margin-left: 100%;
+ }
+
+ .custom-theme .el-col-xs-pull-24 {
+ position: relative;
+ right: 100%;
+ }
+
+ .custom-theme .el-col-xs-push-24 {
+ position: relative;
+ left: 100%;
+ }
+}
+
+@media only screen and (min-width: 768px) {
+ .custom-theme .el-col-sm-0 {
+ display: none;
+ }
+
+ .custom-theme .el-col-sm-1 {
+ width: 4.16667%;
+ }
+
+ .custom-theme .el-col-sm-offset-1 {
+ margin-left: 4.16667%;
+ }
+
+ .custom-theme .el-col-sm-pull-1 {
+ position: relative;
+ right: 4.16667%;
+ }
+
+ .custom-theme .el-col-sm-push-1 {
+ position: relative;
+ left: 4.16667%;
+ }
+
+ .custom-theme .el-col-sm-2 {
+ width: 8.33333%;
+ }
+
+ .custom-theme .el-col-sm-offset-2 {
+ margin-left: 8.33333%;
+ }
+
+ .custom-theme .el-col-sm-pull-2 {
+ position: relative;
+ right: 8.33333%;
+ }
+
+ .custom-theme .el-col-sm-push-2 {
+ position: relative;
+ left: 8.33333%;
+ }
+
+ .custom-theme .el-col-sm-3 {
+ width: 12.5%;
+ }
+
+ .custom-theme .el-col-sm-offset-3 {
+ margin-left: 12.5%;
+ }
+
+ .custom-theme .el-col-sm-pull-3 {
+ position: relative;
+ right: 12.5%;
+ }
+
+ .custom-theme .el-col-sm-push-3 {
+ position: relative;
+ left: 12.5%;
+ }
+
+ .custom-theme .el-col-sm-4 {
+ width: 16.66667%;
+ }
+
+ .custom-theme .el-col-sm-offset-4 {
+ margin-left: 16.66667%;
+ }
+
+ .custom-theme .el-col-sm-pull-4 {
+ position: relative;
+ right: 16.66667%;
+ }
+
+ .custom-theme .el-col-sm-push-4 {
+ position: relative;
+ left: 16.66667%;
+ }
+
+ .custom-theme .el-col-sm-5 {
+ width: 20.83333%;
+ }
+
+ .custom-theme .el-col-sm-offset-5 {
+ margin-left: 20.83333%;
+ }
+
+ .custom-theme .el-col-sm-pull-5 {
+ position: relative;
+ right: 20.83333%;
+ }
+
+ .custom-theme .el-col-sm-push-5 {
+ position: relative;
+ left: 20.83333%;
+ }
+
+ .custom-theme .el-col-sm-6 {
+ width: 25%;
+ }
+
+ .custom-theme .el-col-sm-offset-6 {
+ margin-left: 25%;
+ }
+
+ .custom-theme .el-col-sm-pull-6 {
+ position: relative;
+ right: 25%;
+ }
+
+ .custom-theme .el-col-sm-push-6 {
+ position: relative;
+ left: 25%;
+ }
+
+ .custom-theme .el-col-sm-7 {
+ width: 29.16667%;
+ }
+
+ .custom-theme .el-col-sm-offset-7 {
+ margin-left: 29.16667%;
+ }
+
+ .custom-theme .el-col-sm-pull-7 {
+ position: relative;
+ right: 29.16667%;
+ }
+
+ .custom-theme .el-col-sm-push-7 {
+ position: relative;
+ left: 29.16667%;
+ }
+
+ .custom-theme .el-col-sm-8 {
+ width: 33.33333%;
+ }
+
+ .custom-theme .el-col-sm-offset-8 {
+ margin-left: 33.33333%;
+ }
+
+ .custom-theme .el-col-sm-pull-8 {
+ position: relative;
+ right: 33.33333%;
+ }
+
+ .custom-theme .el-col-sm-push-8 {
+ position: relative;
+ left: 33.33333%;
+ }
+
+ .custom-theme .el-col-sm-9 {
+ width: 37.5%;
+ }
+
+ .custom-theme .el-col-sm-offset-9 {
+ margin-left: 37.5%;
+ }
+
+ .custom-theme .el-col-sm-pull-9 {
+ position: relative;
+ right: 37.5%;
+ }
+
+ .custom-theme .el-col-sm-push-9 {
+ position: relative;
+ left: 37.5%;
+ }
+
+ .custom-theme .el-col-sm-10 {
+ width: 41.66667%;
+ }
+
+ .custom-theme .el-col-sm-offset-10 {
+ margin-left: 41.66667%;
+ }
+
+ .custom-theme .el-col-sm-pull-10 {
+ position: relative;
+ right: 41.66667%;
+ }
+
+ .custom-theme .el-col-sm-push-10 {
+ position: relative;
+ left: 41.66667%;
+ }
+
+ .custom-theme .el-col-sm-11 {
+ width: 45.83333%;
+ }
+
+ .custom-theme .el-col-sm-offset-11 {
+ margin-left: 45.83333%;
+ }
+
+ .custom-theme .el-col-sm-pull-11 {
+ position: relative;
+ right: 45.83333%;
+ }
+
+ .custom-theme .el-col-sm-push-11 {
+ position: relative;
+ left: 45.83333%;
+ }
+
+ .custom-theme .el-col-sm-12 {
+ width: 50%;
+ }
+
+ .custom-theme .el-col-sm-offset-12 {
+ margin-left: 50%;
+ }
+
+ .custom-theme .el-col-sm-pull-12 {
+ position: relative;
+ right: 50%;
+ }
+
+ .custom-theme .el-col-sm-push-12 {
+ position: relative;
+ left: 50%;
+ }
+
+ .custom-theme .el-col-sm-13 {
+ width: 54.16667%;
+ }
+
+ .custom-theme .el-col-sm-offset-13 {
+ margin-left: 54.16667%;
+ }
+
+ .custom-theme .el-col-sm-pull-13 {
+ position: relative;
+ right: 54.16667%;
+ }
+
+ .custom-theme .el-col-sm-push-13 {
+ position: relative;
+ left: 54.16667%;
+ }
+
+ .custom-theme .el-col-sm-14 {
+ width: 58.33333%;
+ }
+
+ .custom-theme .el-col-sm-offset-14 {
+ margin-left: 58.33333%;
+ }
+
+ .custom-theme .el-col-sm-pull-14 {
+ position: relative;
+ right: 58.33333%;
+ }
+
+ .custom-theme .el-col-sm-push-14 {
+ position: relative;
+ left: 58.33333%;
+ }
+
+ .custom-theme .el-col-sm-15 {
+ width: 62.5%;
+ }
+
+ .custom-theme .el-col-sm-offset-15 {
+ margin-left: 62.5%;
+ }
+
+ .custom-theme .el-col-sm-pull-15 {
+ position: relative;
+ right: 62.5%;
+ }
+
+ .custom-theme .el-col-sm-push-15 {
+ position: relative;
+ left: 62.5%;
+ }
+
+ .custom-theme .el-col-sm-16 {
+ width: 66.66667%;
+ }
+
+ .custom-theme .el-col-sm-offset-16 {
+ margin-left: 66.66667%;
+ }
+
+ .custom-theme .el-col-sm-pull-16 {
+ position: relative;
+ right: 66.66667%;
+ }
+
+ .custom-theme .el-col-sm-push-16 {
+ position: relative;
+ left: 66.66667%;
+ }
+
+ .custom-theme .el-col-sm-17 {
+ width: 70.83333%;
+ }
+
+ .custom-theme .el-col-sm-offset-17 {
+ margin-left: 70.83333%;
+ }
+
+ .custom-theme .el-col-sm-pull-17 {
+ position: relative;
+ right: 70.83333%;
+ }
+
+ .custom-theme .el-col-sm-push-17 {
+ position: relative;
+ left: 70.83333%;
+ }
+
+ .custom-theme .el-col-sm-18 {
+ width: 75%;
+ }
+
+ .custom-theme .el-col-sm-offset-18 {
+ margin-left: 75%;
+ }
+
+ .custom-theme .el-col-sm-pull-18 {
+ position: relative;
+ right: 75%;
+ }
+
+ .custom-theme .el-col-sm-push-18 {
+ position: relative;
+ left: 75%;
+ }
+
+ .custom-theme .el-col-sm-19 {
+ width: 79.16667%;
+ }
+
+ .custom-theme .el-col-sm-offset-19 {
+ margin-left: 79.16667%;
+ }
+
+ .custom-theme .el-col-sm-pull-19 {
+ position: relative;
+ right: 79.16667%;
+ }
+
+ .custom-theme .el-col-sm-push-19 {
+ position: relative;
+ left: 79.16667%;
+ }
+
+ .custom-theme .el-col-sm-20 {
+ width: 83.33333%;
+ }
+
+ .custom-theme .el-col-sm-offset-20 {
+ margin-left: 83.33333%;
+ }
+
+ .custom-theme .el-col-sm-pull-20 {
+ position: relative;
+ right: 83.33333%;
+ }
+
+ .custom-theme .el-col-sm-push-20 {
+ position: relative;
+ left: 83.33333%;
+ }
+
+ .custom-theme .el-col-sm-21 {
+ width: 87.5%;
+ }
+
+ .custom-theme .el-col-sm-offset-21 {
+ margin-left: 87.5%;
+ }
+
+ .custom-theme .el-col-sm-pull-21 {
+ position: relative;
+ right: 87.5%;
+ }
+
+ .custom-theme .el-col-sm-push-21 {
+ position: relative;
+ left: 87.5%;
+ }
+
+ .custom-theme .el-col-sm-22 {
+ width: 91.66667%;
+ }
+
+ .custom-theme .el-col-sm-offset-22 {
+ margin-left: 91.66667%;
+ }
+
+ .custom-theme .el-col-sm-pull-22 {
+ position: relative;
+ right: 91.66667%;
+ }
+
+ .custom-theme .el-col-sm-push-22 {
+ position: relative;
+ left: 91.66667%;
+ }
+
+ .custom-theme .el-col-sm-23 {
+ width: 95.83333%;
+ }
+
+ .custom-theme .el-col-sm-offset-23 {
+ margin-left: 95.83333%;
+ }
+
+ .custom-theme .el-col-sm-pull-23 {
+ position: relative;
+ right: 95.83333%;
+ }
+
+ .custom-theme .el-col-sm-push-23 {
+ position: relative;
+ left: 95.83333%;
+ }
+
+ .custom-theme .el-col-sm-24 {
+ width: 100%;
+ }
+
+ .custom-theme .el-col-sm-offset-24 {
+ margin-left: 100%;
+ }
+
+ .custom-theme .el-col-sm-pull-24 {
+ position: relative;
+ right: 100%;
+ }
+
+ .custom-theme .el-col-sm-push-24 {
+ position: relative;
+ left: 100%;
+ }
+}
+
+@media only screen and (min-width: 992px) {
+ .custom-theme .el-col-md-0 {
+ display: none;
+ }
+
+ .custom-theme .el-col-md-1 {
+ width: 4.16667%;
+ }
+
+ .custom-theme .el-col-md-offset-1 {
+ margin-left: 4.16667%;
+ }
+
+ .custom-theme .el-col-md-pull-1 {
+ position: relative;
+ right: 4.16667%;
+ }
+
+ .custom-theme .el-col-md-push-1 {
+ position: relative;
+ left: 4.16667%;
+ }
+
+ .custom-theme .el-col-md-2 {
+ width: 8.33333%;
+ }
+
+ .custom-theme .el-col-md-offset-2 {
+ margin-left: 8.33333%;
+ }
+
+ .custom-theme .el-col-md-pull-2 {
+ position: relative;
+ right: 8.33333%;
+ }
+
+ .custom-theme .el-col-md-push-2 {
+ position: relative;
+ left: 8.33333%;
+ }
+
+ .custom-theme .el-col-md-3 {
+ width: 12.5%;
+ }
+
+ .custom-theme .el-col-md-offset-3 {
+ margin-left: 12.5%;
+ }
+
+ .custom-theme .el-col-md-pull-3 {
+ position: relative;
+ right: 12.5%;
+ }
+
+ .custom-theme .el-col-md-push-3 {
+ position: relative;
+ left: 12.5%;
+ }
+
+ .custom-theme .el-col-md-4 {
+ width: 16.66667%;
+ }
+
+ .custom-theme .el-col-md-offset-4 {
+ margin-left: 16.66667%;
+ }
+
+ .custom-theme .el-col-md-pull-4 {
+ position: relative;
+ right: 16.66667%;
+ }
+
+ .custom-theme .el-col-md-push-4 {
+ position: relative;
+ left: 16.66667%;
+ }
+
+ .custom-theme .el-col-md-5 {
+ width: 20.83333%;
+ }
+
+ .custom-theme .el-col-md-offset-5 {
+ margin-left: 20.83333%;
+ }
+
+ .custom-theme .el-col-md-pull-5 {
+ position: relative;
+ right: 20.83333%;
+ }
+
+ .custom-theme .el-col-md-push-5 {
+ position: relative;
+ left: 20.83333%;
+ }
+
+ .custom-theme .el-col-md-6 {
+ width: 25%;
+ }
+
+ .custom-theme .el-col-md-offset-6 {
+ margin-left: 25%;
+ }
+
+ .custom-theme .el-col-md-pull-6 {
+ position: relative;
+ right: 25%;
+ }
+
+ .custom-theme .el-col-md-push-6 {
+ position: relative;
+ left: 25%;
+ }
+
+ .custom-theme .el-col-md-7 {
+ width: 29.16667%;
+ }
+
+ .custom-theme .el-col-md-offset-7 {
+ margin-left: 29.16667%;
+ }
+
+ .custom-theme .el-col-md-pull-7 {
+ position: relative;
+ right: 29.16667%;
+ }
+
+ .custom-theme .el-col-md-push-7 {
+ position: relative;
+ left: 29.16667%;
+ }
+
+ .custom-theme .el-col-md-8 {
+ width: 33.33333%;
+ }
+
+ .custom-theme .el-col-md-offset-8 {
+ margin-left: 33.33333%;
+ }
+
+ .custom-theme .el-col-md-pull-8 {
+ position: relative;
+ right: 33.33333%;
+ }
+
+ .custom-theme .el-col-md-push-8 {
+ position: relative;
+ left: 33.33333%;
+ }
+
+ .custom-theme .el-col-md-9 {
+ width: 37.5%;
+ }
+
+ .custom-theme .el-col-md-offset-9 {
+ margin-left: 37.5%;
+ }
+
+ .custom-theme .el-col-md-pull-9 {
+ position: relative;
+ right: 37.5%;
+ }
+
+ .custom-theme .el-col-md-push-9 {
+ position: relative;
+ left: 37.5%;
+ }
+
+ .custom-theme .el-col-md-10 {
+ width: 41.66667%;
+ }
+
+ .custom-theme .el-col-md-offset-10 {
+ margin-left: 41.66667%;
+ }
+
+ .custom-theme .el-col-md-pull-10 {
+ position: relative;
+ right: 41.66667%;
+ }
+
+ .custom-theme .el-col-md-push-10 {
+ position: relative;
+ left: 41.66667%;
+ }
+
+ .custom-theme .el-col-md-11 {
+ width: 45.83333%;
+ }
+
+ .custom-theme .el-col-md-offset-11 {
+ margin-left: 45.83333%;
+ }
+
+ .custom-theme .el-col-md-pull-11 {
+ position: relative;
+ right: 45.83333%;
+ }
+
+ .custom-theme .el-col-md-push-11 {
+ position: relative;
+ left: 45.83333%;
+ }
+
+ .custom-theme .el-col-md-12 {
+ width: 50%;
+ }
+
+ .custom-theme .el-col-md-offset-12 {
+ margin-left: 50%;
+ }
+
+ .custom-theme .el-col-md-pull-12 {
+ position: relative;
+ right: 50%;
+ }
+
+ .custom-theme .el-col-md-push-12 {
+ position: relative;
+ left: 50%;
+ }
+
+ .custom-theme .el-col-md-13 {
+ width: 54.16667%;
+ }
+
+ .custom-theme .el-col-md-offset-13 {
+ margin-left: 54.16667%;
+ }
+
+ .custom-theme .el-col-md-pull-13 {
+ position: relative;
+ right: 54.16667%;
+ }
+
+ .custom-theme .el-col-md-push-13 {
+ position: relative;
+ left: 54.16667%;
+ }
+
+ .custom-theme .el-col-md-14 {
+ width: 58.33333%;
+ }
+
+ .custom-theme .el-col-md-offset-14 {
+ margin-left: 58.33333%;
+ }
+
+ .custom-theme .el-col-md-pull-14 {
+ position: relative;
+ right: 58.33333%;
+ }
+
+ .custom-theme .el-col-md-push-14 {
+ position: relative;
+ left: 58.33333%;
+ }
+
+ .custom-theme .el-col-md-15 {
+ width: 62.5%;
+ }
+
+ .custom-theme .el-col-md-offset-15 {
+ margin-left: 62.5%;
+ }
+
+ .custom-theme .el-col-md-pull-15 {
+ position: relative;
+ right: 62.5%;
+ }
+
+ .custom-theme .el-col-md-push-15 {
+ position: relative;
+ left: 62.5%;
+ }
+
+ .custom-theme .el-col-md-16 {
+ width: 66.66667%;
+ }
+
+ .custom-theme .el-col-md-offset-16 {
+ margin-left: 66.66667%;
+ }
+
+ .custom-theme .el-col-md-pull-16 {
+ position: relative;
+ right: 66.66667%;
+ }
+
+ .custom-theme .el-col-md-push-16 {
+ position: relative;
+ left: 66.66667%;
+ }
+
+ .custom-theme .el-col-md-17 {
+ width: 70.83333%;
+ }
+
+ .custom-theme .el-col-md-offset-17 {
+ margin-left: 70.83333%;
+ }
+
+ .custom-theme .el-col-md-pull-17 {
+ position: relative;
+ right: 70.83333%;
+ }
+
+ .custom-theme .el-col-md-push-17 {
+ position: relative;
+ left: 70.83333%;
+ }
+
+ .custom-theme .el-col-md-18 {
+ width: 75%;
+ }
+
+ .custom-theme .el-col-md-offset-18 {
+ margin-left: 75%;
+ }
+
+ .custom-theme .el-col-md-pull-18 {
+ position: relative;
+ right: 75%;
+ }
+
+ .custom-theme .el-col-md-push-18 {
+ position: relative;
+ left: 75%;
+ }
+
+ .custom-theme .el-col-md-19 {
+ width: 79.16667%;
+ }
+
+ .custom-theme .el-col-md-offset-19 {
+ margin-left: 79.16667%;
+ }
+
+ .custom-theme .el-col-md-pull-19 {
+ position: relative;
+ right: 79.16667%;
+ }
+
+ .custom-theme .el-col-md-push-19 {
+ position: relative;
+ left: 79.16667%;
+ }
+
+ .custom-theme .el-col-md-20 {
+ width: 83.33333%;
+ }
+
+ .custom-theme .el-col-md-offset-20 {
+ margin-left: 83.33333%;
+ }
+
+ .custom-theme .el-col-md-pull-20 {
+ position: relative;
+ right: 83.33333%;
+ }
+
+ .custom-theme .el-col-md-push-20 {
+ position: relative;
+ left: 83.33333%;
+ }
+
+ .custom-theme .el-col-md-21 {
+ width: 87.5%;
+ }
+
+ .custom-theme .el-col-md-offset-21 {
+ margin-left: 87.5%;
+ }
+
+ .custom-theme .el-col-md-pull-21 {
+ position: relative;
+ right: 87.5%;
+ }
+
+ .custom-theme .el-col-md-push-21 {
+ position: relative;
+ left: 87.5%;
+ }
+
+ .custom-theme .el-col-md-22 {
+ width: 91.66667%;
+ }
+
+ .custom-theme .el-col-md-offset-22 {
+ margin-left: 91.66667%;
+ }
+
+ .custom-theme .el-col-md-pull-22 {
+ position: relative;
+ right: 91.66667%;
+ }
+
+ .custom-theme .el-col-md-push-22 {
+ position: relative;
+ left: 91.66667%;
+ }
+
+ .custom-theme .el-col-md-23 {
+ width: 95.83333%;
+ }
+
+ .custom-theme .el-col-md-offset-23 {
+ margin-left: 95.83333%;
+ }
+
+ .custom-theme .el-col-md-pull-23 {
+ position: relative;
+ right: 95.83333%;
+ }
+
+ .custom-theme .el-col-md-push-23 {
+ position: relative;
+ left: 95.83333%;
+ }
+
+ .custom-theme .el-col-md-24 {
+ width: 100%;
+ }
+
+ .custom-theme .el-col-md-offset-24 {
+ margin-left: 100%;
+ }
+
+ .custom-theme .el-col-md-pull-24 {
+ position: relative;
+ right: 100%;
+ }
+
+ .custom-theme .el-col-md-push-24 {
+ position: relative;
+ left: 100%;
+ }
+}
+
+@media only screen and (min-width: 1200px) {
+ .custom-theme .el-col-lg-0 {
+ display: none;
+ }
+
+ .custom-theme .el-col-lg-1 {
+ width: 4.16667%;
+ }
+
+ .custom-theme .el-col-lg-offset-1 {
+ margin-left: 4.16667%;
+ }
+
+ .custom-theme .el-col-lg-pull-1 {
+ position: relative;
+ right: 4.16667%;
+ }
+
+ .custom-theme .el-col-lg-push-1 {
+ position: relative;
+ left: 4.16667%;
+ }
+
+ .custom-theme .el-col-lg-2 {
+ width: 8.33333%;
+ }
+
+ .custom-theme .el-col-lg-offset-2 {
+ margin-left: 8.33333%;
+ }
+
+ .custom-theme .el-col-lg-pull-2 {
+ position: relative;
+ right: 8.33333%;
+ }
+
+ .custom-theme .el-col-lg-push-2 {
+ position: relative;
+ left: 8.33333%;
+ }
+
+ .custom-theme .el-col-lg-3 {
+ width: 12.5%;
+ }
+
+ .custom-theme .el-col-lg-offset-3 {
+ margin-left: 12.5%;
+ }
+
+ .custom-theme .el-col-lg-pull-3 {
+ position: relative;
+ right: 12.5%;
+ }
+
+ .custom-theme .el-col-lg-push-3 {
+ position: relative;
+ left: 12.5%;
+ }
+
+ .custom-theme .el-col-lg-4 {
+ width: 16.66667%;
+ }
+
+ .custom-theme .el-col-lg-offset-4 {
+ margin-left: 16.66667%;
+ }
+
+ .custom-theme .el-col-lg-pull-4 {
+ position: relative;
+ right: 16.66667%;
+ }
+
+ .custom-theme .el-col-lg-push-4 {
+ position: relative;
+ left: 16.66667%;
+ }
+
+ .custom-theme .el-col-lg-5 {
+ width: 20.83333%;
+ }
+
+ .custom-theme .el-col-lg-offset-5 {
+ margin-left: 20.83333%;
+ }
+
+ .custom-theme .el-col-lg-pull-5 {
+ position: relative;
+ right: 20.83333%;
+ }
+
+ .custom-theme .el-col-lg-push-5 {
+ position: relative;
+ left: 20.83333%;
+ }
+
+ .custom-theme .el-col-lg-6 {
+ width: 25%;
+ }
+
+ .custom-theme .el-col-lg-offset-6 {
+ margin-left: 25%;
+ }
+
+ .custom-theme .el-col-lg-pull-6 {
+ position: relative;
+ right: 25%;
+ }
+
+ .custom-theme .el-col-lg-push-6 {
+ position: relative;
+ left: 25%;
+ }
+
+ .custom-theme .el-col-lg-7 {
+ width: 29.16667%;
+ }
+
+ .custom-theme .el-col-lg-offset-7 {
+ margin-left: 29.16667%;
+ }
+
+ .custom-theme .el-col-lg-pull-7 {
+ position: relative;
+ right: 29.16667%;
+ }
+
+ .custom-theme .el-col-lg-push-7 {
+ position: relative;
+ left: 29.16667%;
+ }
+
+ .custom-theme .el-col-lg-8 {
+ width: 33.33333%;
+ }
+
+ .custom-theme .el-col-lg-offset-8 {
+ margin-left: 33.33333%;
+ }
+
+ .custom-theme .el-col-lg-pull-8 {
+ position: relative;
+ right: 33.33333%;
+ }
+
+ .custom-theme .el-col-lg-push-8 {
+ position: relative;
+ left: 33.33333%;
+ }
+
+ .custom-theme .el-col-lg-9 {
+ width: 37.5%;
+ }
+
+ .custom-theme .el-col-lg-offset-9 {
+ margin-left: 37.5%;
+ }
+
+ .custom-theme .el-col-lg-pull-9 {
+ position: relative;
+ right: 37.5%;
+ }
+
+ .custom-theme .el-col-lg-push-9 {
+ position: relative;
+ left: 37.5%;
+ }
+
+ .custom-theme .el-col-lg-10 {
+ width: 41.66667%;
+ }
+
+ .custom-theme .el-col-lg-offset-10 {
+ margin-left: 41.66667%;
+ }
+
+ .custom-theme .el-col-lg-pull-10 {
+ position: relative;
+ right: 41.66667%;
+ }
+
+ .custom-theme .el-col-lg-push-10 {
+ position: relative;
+ left: 41.66667%;
+ }
+
+ .custom-theme .el-col-lg-11 {
+ width: 45.83333%;
+ }
+
+ .custom-theme .el-col-lg-offset-11 {
+ margin-left: 45.83333%;
+ }
+
+ .custom-theme .el-col-lg-pull-11 {
+ position: relative;
+ right: 45.83333%;
+ }
+
+ .custom-theme .el-col-lg-push-11 {
+ position: relative;
+ left: 45.83333%;
+ }
+
+ .custom-theme .el-col-lg-12 {
+ width: 50%;
+ }
+
+ .custom-theme .el-col-lg-offset-12 {
+ margin-left: 50%;
+ }
+
+ .custom-theme .el-col-lg-pull-12 {
+ position: relative;
+ right: 50%;
+ }
+
+ .custom-theme .el-col-lg-push-12 {
+ position: relative;
+ left: 50%;
+ }
+
+ .custom-theme .el-col-lg-13 {
+ width: 54.16667%;
+ }
+
+ .custom-theme .el-col-lg-offset-13 {
+ margin-left: 54.16667%;
+ }
+
+ .custom-theme .el-col-lg-pull-13 {
+ position: relative;
+ right: 54.16667%;
+ }
+
+ .custom-theme .el-col-lg-push-13 {
+ position: relative;
+ left: 54.16667%;
+ }
+
+ .custom-theme .el-col-lg-14 {
+ width: 58.33333%;
+ }
+
+ .custom-theme .el-col-lg-offset-14 {
+ margin-left: 58.33333%;
+ }
+
+ .custom-theme .el-col-lg-pull-14 {
+ position: relative;
+ right: 58.33333%;
+ }
+
+ .custom-theme .el-col-lg-push-14 {
+ position: relative;
+ left: 58.33333%;
+ }
+
+ .custom-theme .el-col-lg-15 {
+ width: 62.5%;
+ }
+
+ .custom-theme .el-col-lg-offset-15 {
+ margin-left: 62.5%;
+ }
+
+ .custom-theme .el-col-lg-pull-15 {
+ position: relative;
+ right: 62.5%;
+ }
+
+ .custom-theme .el-col-lg-push-15 {
+ position: relative;
+ left: 62.5%;
+ }
+
+ .custom-theme .el-col-lg-16 {
+ width: 66.66667%;
+ }
+
+ .custom-theme .el-col-lg-offset-16 {
+ margin-left: 66.66667%;
+ }
+
+ .custom-theme .el-col-lg-pull-16 {
+ position: relative;
+ right: 66.66667%;
+ }
+
+ .custom-theme .el-col-lg-push-16 {
+ position: relative;
+ left: 66.66667%;
+ }
+
+ .custom-theme .el-col-lg-17 {
+ width: 70.83333%;
+ }
+
+ .custom-theme .el-col-lg-offset-17 {
+ margin-left: 70.83333%;
+ }
+
+ .custom-theme .el-col-lg-pull-17 {
+ position: relative;
+ right: 70.83333%;
+ }
+
+ .custom-theme .el-col-lg-push-17 {
+ position: relative;
+ left: 70.83333%;
+ }
+
+ .custom-theme .el-col-lg-18 {
+ width: 75%;
+ }
+
+ .custom-theme .el-col-lg-offset-18 {
+ margin-left: 75%;
+ }
+
+ .custom-theme .el-col-lg-pull-18 {
+ position: relative;
+ right: 75%;
+ }
+
+ .custom-theme .el-col-lg-push-18 {
+ position: relative;
+ left: 75%;
+ }
+
+ .custom-theme .el-col-lg-19 {
+ width: 79.16667%;
+ }
+
+ .custom-theme .el-col-lg-offset-19 {
+ margin-left: 79.16667%;
+ }
+
+ .custom-theme .el-col-lg-pull-19 {
+ position: relative;
+ right: 79.16667%;
+ }
+
+ .custom-theme .el-col-lg-push-19 {
+ position: relative;
+ left: 79.16667%;
+ }
+
+ .custom-theme .el-col-lg-20 {
+ width: 83.33333%;
+ }
+
+ .custom-theme .el-col-lg-offset-20 {
+ margin-left: 83.33333%;
+ }
+
+ .custom-theme .el-col-lg-pull-20 {
+ position: relative;
+ right: 83.33333%;
+ }
+
+ .custom-theme .el-col-lg-push-20 {
+ position: relative;
+ left: 83.33333%;
+ }
+
+ .custom-theme .el-col-lg-21 {
+ width: 87.5%;
+ }
+
+ .custom-theme .el-col-lg-offset-21 {
+ margin-left: 87.5%;
+ }
+
+ .custom-theme .el-col-lg-pull-21 {
+ position: relative;
+ right: 87.5%;
+ }
+
+ .custom-theme .el-col-lg-push-21 {
+ position: relative;
+ left: 87.5%;
+ }
+
+ .custom-theme .el-col-lg-22 {
+ width: 91.66667%;
+ }
+
+ .custom-theme .el-col-lg-offset-22 {
+ margin-left: 91.66667%;
+ }
+
+ .custom-theme .el-col-lg-pull-22 {
+ position: relative;
+ right: 91.66667%;
+ }
+
+ .custom-theme .el-col-lg-push-22 {
+ position: relative;
+ left: 91.66667%;
+ }
+
+ .custom-theme .el-col-lg-23 {
+ width: 95.83333%;
+ }
+
+ .custom-theme .el-col-lg-offset-23 {
+ margin-left: 95.83333%;
+ }
+
+ .custom-theme .el-col-lg-pull-23 {
+ position: relative;
+ right: 95.83333%;
+ }
+
+ .custom-theme .el-col-lg-push-23 {
+ position: relative;
+ left: 95.83333%;
+ }
+
+ .custom-theme .el-col-lg-24 {
+ width: 100%;
+ }
+
+ .custom-theme .el-col-lg-offset-24 {
+ margin-left: 100%;
+ }
+
+ .custom-theme .el-col-lg-pull-24 {
+ position: relative;
+ right: 100%;
+ }
+
+ .custom-theme .el-col-lg-push-24 {
+ position: relative;
+ left: 100%;
+ }
+}
+
+@media only screen and (min-width: 1920px) {
+ .custom-theme .el-col-xl-0 {
+ display: none;
+ }
+
+ .custom-theme .el-col-xl-1 {
+ width: 4.16667%;
+ }
+
+ .custom-theme .el-col-xl-offset-1 {
+ margin-left: 4.16667%;
+ }
+
+ .custom-theme .el-col-xl-pull-1 {
+ position: relative;
+ right: 4.16667%;
+ }
+
+ .custom-theme .el-col-xl-push-1 {
+ position: relative;
+ left: 4.16667%;
+ }
+
+ .custom-theme .el-col-xl-2 {
+ width: 8.33333%;
+ }
+
+ .custom-theme .el-col-xl-offset-2 {
+ margin-left: 8.33333%;
+ }
+
+ .custom-theme .el-col-xl-pull-2 {
+ position: relative;
+ right: 8.33333%;
+ }
+
+ .custom-theme .el-col-xl-push-2 {
+ position: relative;
+ left: 8.33333%;
+ }
+
+ .custom-theme .el-col-xl-3 {
+ width: 12.5%;
+ }
+
+ .custom-theme .el-col-xl-offset-3 {
+ margin-left: 12.5%;
+ }
+
+ .custom-theme .el-col-xl-pull-3 {
+ position: relative;
+ right: 12.5%;
+ }
+
+ .custom-theme .el-col-xl-push-3 {
+ position: relative;
+ left: 12.5%;
+ }
+
+ .custom-theme .el-col-xl-4 {
+ width: 16.66667%;
+ }
+
+ .custom-theme .el-col-xl-offset-4 {
+ margin-left: 16.66667%;
+ }
+
+ .custom-theme .el-col-xl-pull-4 {
+ position: relative;
+ right: 16.66667%;
+ }
+
+ .custom-theme .el-col-xl-push-4 {
+ position: relative;
+ left: 16.66667%;
+ }
+
+ .custom-theme .el-col-xl-5 {
+ width: 20.83333%;
+ }
+
+ .custom-theme .el-col-xl-offset-5 {
+ margin-left: 20.83333%;
+ }
+
+ .custom-theme .el-col-xl-pull-5 {
+ position: relative;
+ right: 20.83333%;
+ }
+
+ .custom-theme .el-col-xl-push-5 {
+ position: relative;
+ left: 20.83333%;
+ }
+
+ .custom-theme .el-col-xl-6 {
+ width: 25%;
+ }
+
+ .custom-theme .el-col-xl-offset-6 {
+ margin-left: 25%;
+ }
+
+ .custom-theme .el-col-xl-pull-6 {
+ position: relative;
+ right: 25%;
+ }
+
+ .custom-theme .el-col-xl-push-6 {
+ position: relative;
+ left: 25%;
+ }
+
+ .custom-theme .el-col-xl-7 {
+ width: 29.16667%;
+ }
+
+ .custom-theme .el-col-xl-offset-7 {
+ margin-left: 29.16667%;
+ }
+
+ .custom-theme .el-col-xl-pull-7 {
+ position: relative;
+ right: 29.16667%;
+ }
+
+ .custom-theme .el-col-xl-push-7 {
+ position: relative;
+ left: 29.16667%;
+ }
+
+ .custom-theme .el-col-xl-8 {
+ width: 33.33333%;
+ }
+
+ .custom-theme .el-col-xl-offset-8 {
+ margin-left: 33.33333%;
+ }
+
+ .custom-theme .el-col-xl-pull-8 {
+ position: relative;
+ right: 33.33333%;
+ }
+
+ .custom-theme .el-col-xl-push-8 {
+ position: relative;
+ left: 33.33333%;
+ }
+
+ .custom-theme .el-col-xl-9 {
+ width: 37.5%;
+ }
+
+ .custom-theme .el-col-xl-offset-9 {
+ margin-left: 37.5%;
+ }
+
+ .custom-theme .el-col-xl-pull-9 {
+ position: relative;
+ right: 37.5%;
+ }
+
+ .custom-theme .el-col-xl-push-9 {
+ position: relative;
+ left: 37.5%;
+ }
+
+ .custom-theme .el-col-xl-10 {
+ width: 41.66667%;
+ }
+
+ .custom-theme .el-col-xl-offset-10 {
+ margin-left: 41.66667%;
+ }
+
+ .custom-theme .el-col-xl-pull-10 {
+ position: relative;
+ right: 41.66667%;
+ }
+
+ .custom-theme .el-col-xl-push-10 {
+ position: relative;
+ left: 41.66667%;
+ }
+
+ .custom-theme .el-col-xl-11 {
+ width: 45.83333%;
+ }
+
+ .custom-theme .el-col-xl-offset-11 {
+ margin-left: 45.83333%;
+ }
+
+ .custom-theme .el-col-xl-pull-11 {
+ position: relative;
+ right: 45.83333%;
+ }
+
+ .custom-theme .el-col-xl-push-11 {
+ position: relative;
+ left: 45.83333%;
+ }
+
+ .custom-theme .el-col-xl-12 {
+ width: 50%;
+ }
+
+ .custom-theme .el-col-xl-offset-12 {
+ margin-left: 50%;
+ }
+
+ .custom-theme .el-col-xl-pull-12 {
+ position: relative;
+ right: 50%;
+ }
+
+ .custom-theme .el-col-xl-push-12 {
+ position: relative;
+ left: 50%;
+ }
+
+ .custom-theme .el-col-xl-13 {
+ width: 54.16667%;
+ }
+
+ .custom-theme .el-col-xl-offset-13 {
+ margin-left: 54.16667%;
+ }
+
+ .custom-theme .el-col-xl-pull-13 {
+ position: relative;
+ right: 54.16667%;
+ }
+
+ .custom-theme .el-col-xl-push-13 {
+ position: relative;
+ left: 54.16667%;
+ }
+
+ .custom-theme .el-col-xl-14 {
+ width: 58.33333%;
+ }
+
+ .custom-theme .el-col-xl-offset-14 {
+ margin-left: 58.33333%;
+ }
+
+ .custom-theme .el-col-xl-pull-14 {
+ position: relative;
+ right: 58.33333%;
+ }
+
+ .custom-theme .el-col-xl-push-14 {
+ position: relative;
+ left: 58.33333%;
+ }
+
+ .custom-theme .el-col-xl-15 {
+ width: 62.5%;
+ }
+
+ .custom-theme .el-col-xl-offset-15 {
+ margin-left: 62.5%;
+ }
+
+ .custom-theme .el-col-xl-pull-15 {
+ position: relative;
+ right: 62.5%;
+ }
+
+ .custom-theme .el-col-xl-push-15 {
+ position: relative;
+ left: 62.5%;
+ }
+
+ .custom-theme .el-col-xl-16 {
+ width: 66.66667%;
+ }
+
+ .custom-theme .el-col-xl-offset-16 {
+ margin-left: 66.66667%;
+ }
+
+ .custom-theme .el-col-xl-pull-16 {
+ position: relative;
+ right: 66.66667%;
+ }
+
+ .custom-theme .el-col-xl-push-16 {
+ position: relative;
+ left: 66.66667%;
+ }
+
+ .custom-theme .el-col-xl-17 {
+ width: 70.83333%;
+ }
+
+ .custom-theme .el-col-xl-offset-17 {
+ margin-left: 70.83333%;
+ }
+
+ .custom-theme .el-col-xl-pull-17 {
+ position: relative;
+ right: 70.83333%;
+ }
+
+ .custom-theme .el-col-xl-push-17 {
+ position: relative;
+ left: 70.83333%;
+ }
+
+ .custom-theme .el-col-xl-18 {
+ width: 75%;
+ }
+
+ .custom-theme .el-col-xl-offset-18 {
+ margin-left: 75%;
+ }
+
+ .custom-theme .el-col-xl-pull-18 {
+ position: relative;
+ right: 75%;
+ }
+
+ .custom-theme .el-col-xl-push-18 {
+ position: relative;
+ left: 75%;
+ }
+
+ .custom-theme .el-col-xl-19 {
+ width: 79.16667%;
+ }
+
+ .custom-theme .el-col-xl-offset-19 {
+ margin-left: 79.16667%;
+ }
+
+ .custom-theme .el-col-xl-pull-19 {
+ position: relative;
+ right: 79.16667%;
+ }
+
+ .custom-theme .el-col-xl-push-19 {
+ position: relative;
+ left: 79.16667%;
+ }
+
+ .custom-theme .el-col-xl-20 {
+ width: 83.33333%;
+ }
+
+ .custom-theme .el-col-xl-offset-20 {
+ margin-left: 83.33333%;
+ }
+
+ .custom-theme .el-col-xl-pull-20 {
+ position: relative;
+ right: 83.33333%;
+ }
+
+ .custom-theme .el-col-xl-push-20 {
+ position: relative;
+ left: 83.33333%;
+ }
+
+ .custom-theme .el-col-xl-21 {
+ width: 87.5%;
+ }
+
+ .custom-theme .el-col-xl-offset-21 {
+ margin-left: 87.5%;
+ }
+
+ .custom-theme .el-col-xl-pull-21 {
+ position: relative;
+ right: 87.5%;
+ }
+
+ .custom-theme .el-col-xl-push-21 {
+ position: relative;
+ left: 87.5%;
+ }
+
+ .custom-theme .el-col-xl-22 {
+ width: 91.66667%;
+ }
+
+ .custom-theme .el-col-xl-offset-22 {
+ margin-left: 91.66667%;
+ }
+
+ .custom-theme .el-col-xl-pull-22 {
+ position: relative;
+ right: 91.66667%;
+ }
+
+ .custom-theme .el-col-xl-push-22 {
+ position: relative;
+ left: 91.66667%;
+ }
+
+ .custom-theme .el-col-xl-23 {
+ width: 95.83333%;
+ }
+
+ .custom-theme .el-col-xl-offset-23 {
+ margin-left: 95.83333%;
+ }
+
+ .custom-theme .el-col-xl-pull-23 {
+ position: relative;
+ right: 95.83333%;
+ }
+
+ .custom-theme .el-col-xl-push-23 {
+ position: relative;
+ left: 95.83333%;
+ }
+
+ .custom-theme .el-col-xl-24 {
+ width: 100%;
+ }
+
+ .custom-theme .el-col-xl-offset-24 {
+ margin-left: 100%;
+ }
+
+ .custom-theme .el-col-xl-pull-24 {
+ position: relative;
+ right: 100%;
+ }
+
+ .custom-theme .el-col-xl-push-24 {
+ position: relative;
+ left: 100%;
+ }
+}
+
+.custom-theme .el-progress {
+ position: relative;
+ line-height: 1;
+}
+
+.custom-theme .el-progress__text {
+ font-size: 14px;
+ color: #5a5e66;
+ display: inline-block;
+ vertical-align: middle;
+ margin-left: 10px;
+ line-height: 1;
+}
+
+.custom-theme .el-progress__text i {
+ vertical-align: middle;
+ display: block;
+}
+
+.custom-theme .el-progress--circle {
+ display: inline-block;
+}
+
+.custom-theme .el-progress--circle .el-progress__text {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ margin: 0;
+ -webkit-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+}
+
+.custom-theme .el-progress--circle .el-progress__text i {
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.custom-theme .el-progress--without-text .el-progress__text {
+ display: none;
+}
+
+.custom-theme .el-progress--without-text .el-progress-bar {
+ padding-right: 0;
+ margin-right: 0;
+ display: block;
+}
+
+.custom-theme .el-progress--text-inside .el-progress-bar {
+ padding-right: 0;
+ margin-right: 0;
+}
+
+.custom-theme .el-progress.is-success .el-progress-bar__inner {
+ background-color: #409167;
+}
+
+.custom-theme .el-progress.is-success .el-progress__text {
+ color: #409167;
+}
+
+.custom-theme .el-progress.is-exception .el-progress-bar__inner {
+ background-color: #b3450e;
+}
+
+.custom-theme .el-progress.is-exception .el-progress__text {
+ color: #b3450e;
+}
+
+.custom-theme .el-progress-bar {
+ padding-right: 50px;
+ display: inline-block;
+ vertical-align: middle;
+ width: 100%;
+ margin-right: -55px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-progress-bar__outer {
+ height: 6px;
+ border-radius: 100px;
+ background-color: #e6ebf5;
+ overflow: hidden;
+ position: relative;
+ vertical-align: middle;
+}
+
+.custom-theme .el-progress-bar__inner {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 100%;
+ background-color: #262729;
+ text-align: right;
+ border-radius: 100px;
+ line-height: 1;
+ white-space: nowrap;
+}
+
+.custom-theme .el-progress-bar__inner::after {
+ display: inline-block;
+ content: '';
+ height: 100%;
+ vertical-align: middle;
+}
+
+.custom-theme .el-progress-bar__innerText {
+ display: inline-block;
+ vertical-align: middle;
+ color: #fff;
+ font-size: 12px;
+ margin: 0 5px;
+}
+
+@-webkit-keyframes progress {
+ 0% {
+ background-position: 0 0;
+ }
+
+ 100% {
+ background-position: 32px 0;
+ }
+}
+
+@keyframes progress {
+ 0% {
+ background-position: 0 0;
+ }
+
+ 100% {
+ background-position: 32px 0;
+ }
+}
+
+.custom-theme .el-upload {
+ display: inline-block;
+ text-align: center;
+ cursor: pointer;
+}
+
+.custom-theme .el-upload__input {
+ display: none;
+}
+
+.custom-theme .el-upload__tip {
+ font-size: 12px;
+ color: #5a5e66;
+ margin-top: 7px;
+}
+
+.custom-theme .el-upload iframe {
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ opacity: 0;
+}
+
+.custom-theme .el-upload--picture-card {
+ background-color: #fbfdff;
+ border: 1px dashed #c0ccda;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 148px;
+ height: 148px;
+ cursor: pointer;
+ line-height: 146px;
+ vertical-align: top;
+}
+
+.custom-theme .el-upload--picture-card i {
+ font-size: 28px;
+ color: #8c939d;
+}
+
+.custom-theme .el-upload--picture-card:hover {
+ border-color: #262729;
+ color: #262729;
+}
+
+.custom-theme .el-upload-dragger {
+ background-color: #fff;
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 360px;
+ height: 180px;
+ text-align: center;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+}
+
+.custom-theme .el-upload-dragger .el-icon-upload {
+ font-size: 67px;
+ color: #b4bccc;
+ margin: 40px 0 16px;
+ line-height: 50px;
+}
+
+.custom-theme .el-upload-dragger+.el-upload__tip {
+ text-align: center;
+}
+
+.custom-theme .el-upload-dragger~.el-upload__files {
+ border-top: 1px solid #d8dce5;
+ margin-top: 7px;
+ padding-top: 5px;
+}
+
+.custom-theme .el-upload-dragger .el-upload__text {
+ color: #5a5e66;
+ font-size: 14px;
+ text-align: center;
+}
+
+.custom-theme .el-upload-dragger .el-upload__text em {
+ color: #262729;
+ font-style: normal;
+}
+
+.custom-theme .el-upload-dragger:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-upload-dragger.is-dragover {
+ background-color: rgba(32, 159, 255, 0.06);
+ border: 2px dashed #262729;
+}
+
+.custom-theme .el-upload-list {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.custom-theme .el-upload-list__item {
+ -webkit-transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
+ font-size: 14px;
+ color: #5a5e66;
+ line-height: 1.8;
+ margin-top: 5px;
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 4px;
+ width: 100%;
+}
+
+.custom-theme .el-upload-list__item .el-progress {
+ position: absolute;
+ top: 20px;
+ width: 100%;
+}
+
+.custom-theme .el-upload-list__item .el-progress__text {
+ position: absolute;
+ right: 0;
+ top: -13px;
+}
+
+.custom-theme .el-upload-list__item .el-progress-bar {
+ margin-right: 0;
+ padding-right: 0;
+}
+
+.custom-theme .el-upload-list__item:first-child {
+ margin-top: 10px;
+}
+
+.custom-theme .el-upload-list__item .el-icon-upload-success {
+ color: #409167;
+}
+
+.custom-theme .el-upload-list__item .el-icon-close {
+ display: none;
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ cursor: pointer;
+ opacity: 0.75;
+ color: #5a5e66;
+}
+
+.custom-theme .el-upload-list__item .el-icon-close:hover {
+ opacity: 1;
+}
+
+.custom-theme .el-upload-list__item .el-icon-close-tip {
+ display: none;
+ position: absolute;
+ top: 5px;
+ right: 0;
+ cursor: pointer;
+ opacity: 1;
+ color: #262729;
+ -webkit-transform: translate(15%, 0);
+ transform: translate(15%, 0);
+}
+
+.custom-theme .el-upload-list__item:hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-upload-list__item:hover .el-icon-close {
+ display: inline-block;
+}
+
+.custom-theme .el-upload-list__item:hover .el-progress__text {
+ display: none;
+}
+
+.custom-theme .el-upload-list__item.is-success .el-upload-list__item-status-label {
+ display: block;
+}
+
+.custom-theme .el-upload-list__item.is-success .el-upload-list__item-name:focus,
+.custom-theme .el-upload-list__item.is-success .el-upload-list__item-name:hover {
+ color: #262729;
+ cursor: pointer;
+}
+
+.custom-theme .el-upload-list__item.is-success:focus .el-icon-close-tip {
+ display: inline-block;
+}
+
+.custom-theme .el-upload-list__item.is-success:active,
+.custom-theme .el-upload-list__item.is-success:focus:not(.focusing) {
+ outline-width: 0;
+}
+
+.custom-theme .el-upload-list__item.is-success:active .el-icon-close-tip,
+.custom-theme .el-upload-list__item.is-success:focus:not(.focusing) .el-icon-close-tip {
+ display: none;
+}
+
+.custom-theme .el-upload-list__item.is-success:focus .el-upload-list__item-status-label,
+.custom-theme .el-upload-list__item.is-success:hover .el-upload-list__item-status-label {
+ display: none;
+}
+
+.custom-theme .el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label {
+ display: block;
+}
+
+.custom-theme .el-upload-list__item-name {
+ color: #5a5e66;
+ display: block;
+ margin-right: 40px;
+ overflow: hidden;
+ padding-left: 4px;
+ text-overflow: ellipsis;
+ -webkit-transition: color 0.3s;
+ transition: color 0.3s;
+ white-space: nowrap;
+}
+
+.custom-theme .el-upload-list__item-name [class^='el-icon'] {
+ height: 100%;
+ margin-right: 7px;
+ color: #878d99;
+ line-height: inherit;
+}
+
+.custom-theme .el-upload-list__item-status-label {
+ position: absolute;
+ right: 5px;
+ top: 0;
+ line-height: inherit;
+ display: none;
+}
+
+.custom-theme .el-upload-list__item-delete {
+ position: absolute;
+ right: 10px;
+ top: 0;
+ font-size: 12px;
+ color: #5a5e66;
+ display: none;
+}
+
+.custom-theme .el-upload-list__item-delete:hover {
+ color: #262729;
+}
+
+.custom-theme .el-upload-list--picture-card {
+ margin: 0;
+ display: inline;
+ vertical-align: top;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item {
+ overflow: hidden;
+ background-color: #fff;
+ border: 1px solid #c0ccda;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 148px;
+ height: 148px;
+ margin: 0 8px 8px 0;
+ display: inline-block;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-check,
+.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check {
+ color: #fff;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-close {
+ display: none;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label {
+ display: none;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text {
+ display: block;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-name {
+ display: none;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-thumbnail {
+ width: 100%;
+ height: 100%;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-status-label {
+ position: absolute;
+ right: -15px;
+ top: -6px;
+ width: 40px;
+ height: 24px;
+ background: #13ce66;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-status-label i {
+ font-size: 12px;
+ margin-top: 11px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ cursor: default;
+ text-align: center;
+ color: #fff;
+ opacity: 0;
+ font-size: 20px;
+ background-color: rgba(0, 0, 0, 0.5);
+ -webkit-transition: opacity 0.3s;
+ transition: opacity 0.3s;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions::after {
+ display: inline-block;
+ content: '';
+ height: 100%;
+ vertical-align: middle;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions span {
+ display: none;
+ cursor: pointer;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions span+span {
+ margin-left: 15px;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete {
+ position: static;
+ font-size: inherit;
+ color: inherit;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions:hover {
+ opacity: 1;
+}
+
+.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions:hover span {
+ display: inline-block;
+}
+
+.custom-theme .el-upload-list--picture-card .el-progress {
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ bottom: auto;
+ width: 126px;
+}
+
+.custom-theme .el-upload-list--picture-card .el-progress .el-progress__text {
+ top: 50%;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item {
+ overflow: hidden;
+ background-color: #fff;
+ border: 1px solid #c0ccda;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin-top: 10px;
+ padding: 10px 10px 10px 90px;
+ height: 92px;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item .el-icon-check,
+.custom-theme .el-upload-list--picture .el-upload-list__item .el-icon-circle-check {
+ color: #fff;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label {
+ background: 0 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ top: -2px;
+ right: -12px;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item:hover .el-progress__text {
+ display: block;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name {
+ line-height: 70px;
+ margin-top: 0;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i {
+ display: none;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item-thumbnail {
+ vertical-align: middle;
+ display: inline-block;
+ width: 70px;
+ height: 70px;
+ float: left;
+ position: relative;
+ z-index: 1;
+ margin-left: -80px;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item-name {
+ display: block;
+ margin-top: 20px;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item-name i {
+ font-size: 70px;
+ line-height: 1;
+ position: absolute;
+ left: 9px;
+ top: 10px;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item-status-label {
+ position: absolute;
+ right: -17px;
+ top: -7px;
+ width: 46px;
+ height: 26px;
+ background: #13ce66;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-box-shadow: 0 1px 1px #ccc;
+ box-shadow: 0 1px 1px #ccc;
+}
+
+.custom-theme .el-upload-list--picture .el-upload-list__item-status-label i {
+ font-size: 12px;
+ margin-top: 12px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.custom-theme .el-upload-list--picture .el-progress {
+ position: relative;
+ top: -7px;
+}
+
+.custom-theme .el-upload-cover {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ z-index: 10;
+ cursor: default;
+}
+
+.custom-theme .el-upload-cover::after {
+ display: inline-block;
+ content: '';
+ height: 100%;
+ vertical-align: middle;
+}
+
+.custom-theme .el-upload-cover img {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+.custom-theme .el-upload-cover__label {
+ position: absolute;
+ right: -15px;
+ top: -6px;
+ width: 40px;
+ height: 24px;
+ background: #13ce66;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
+}
+
+.custom-theme .el-upload-cover__label i {
+ font-size: 12px;
+ margin-top: 11px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ color: #fff;
+}
+
+.custom-theme .el-upload-cover__progress {
+ display: inline-block;
+ vertical-align: middle;
+ position: static;
+ width: 243px;
+}
+
+.custom-theme .el-upload-cover__progress+.el-upload__inner {
+ opacity: 0;
+}
+
+.custom-theme .el-upload-cover__content {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.custom-theme .el-upload-cover__interact {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.72);
+ text-align: center;
+}
+
+.custom-theme .el-upload-cover__interact .btn {
+ display: inline-block;
+ color: #fff;
+ font-size: 14px;
+ cursor: pointer;
+ vertical-align: middle;
+ -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
+ -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
+ margin-top: 60px;
+}
+
+.custom-theme .el-upload-cover__interact .btn i {
+ margin-top: 0;
+}
+
+.custom-theme .el-upload-cover__interact .btn span {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+
+.custom-theme .el-upload-cover__interact .btn:not(:first-child) {
+ margin-left: 35px;
+}
+
+.custom-theme .el-upload-cover__interact .btn:hover {
+ -webkit-transform: translateY(-13px);
+ transform: translateY(-13px);
+}
+
+.custom-theme .el-upload-cover__interact .btn:hover span {
+ opacity: 1;
+}
+
+.custom-theme .el-upload-cover__interact .btn i {
+ color: #fff;
+ display: block;
+ font-size: 24px;
+ line-height: inherit;
+ margin: 0 auto 5px;
+}
+
+.custom-theme .el-upload-cover__title {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ background-color: #fff;
+ height: 36px;
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ font-weight: 400;
+ text-align: left;
+ padding: 0 10px;
+ margin: 0;
+ line-height: 36px;
+ font-size: 14px;
+ color: #2d2f33;
+}
+
+.custom-theme .el-upload-cover+.el-upload__inner {
+ opacity: 0;
+ position: relative;
+ z-index: 1;
+}
+
+.custom-theme .el-progress {
+ position: relative;
+ line-height: 1;
+}
+
+.custom-theme .el-progress__text {
+ font-size: 14px;
+ color: #5a5e66;
+ display: inline-block;
+ vertical-align: middle;
+ margin-left: 10px;
+ line-height: 1;
+}
+
+.custom-theme .el-progress__text i {
+ vertical-align: middle;
+ display: block;
+}
+
+.custom-theme .el-progress--circle {
+ display: inline-block;
+}
+
+.custom-theme .el-progress--circle .el-progress__text {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ margin: 0;
+ -webkit-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+}
+
+.custom-theme .el-progress--circle .el-progress__text i {
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.custom-theme .el-progress--without-text .el-progress__text {
+ display: none;
+}
+
+.custom-theme .el-progress--without-text .el-progress-bar {
+ padding-right: 0;
+ margin-right: 0;
+ display: block;
+}
+
+.custom-theme .el-progress--text-inside .el-progress-bar {
+ padding-right: 0;
+ margin-right: 0;
+}
+
+.custom-theme .el-progress.is-success .el-progress-bar__inner {
+ background-color: #409167;
+}
+
+.custom-theme .el-progress.is-success .el-progress__text {
+ color: #409167;
+}
+
+.custom-theme .el-progress.is-exception .el-progress-bar__inner {
+ background-color: #b3450e;
+}
+
+.custom-theme .el-progress.is-exception .el-progress__text {
+ color: #b3450e;
+}
+
+.custom-theme .el-progress-bar {
+ padding-right: 50px;
+ display: inline-block;
+ vertical-align: middle;
+ width: 100%;
+ margin-right: -55px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-progress-bar__outer {
+ height: 6px;
+ border-radius: 100px;
+ background-color: #e6ebf5;
+ overflow: hidden;
+ position: relative;
+ vertical-align: middle;
+}
+
+.custom-theme .el-progress-bar__inner {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 100%;
+ background-color: #262729;
+ text-align: right;
+ border-radius: 100px;
+ line-height: 1;
+ white-space: nowrap;
+}
+
+.custom-theme .el-progress-bar__inner::after {
+ display: inline-block;
+ content: '';
+ height: 100%;
+ vertical-align: middle;
+}
+
+.custom-theme .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;
+ }
+}
+
+.custom-theme .el-time-spinner {
+ width: 100%;
+ white-space: nowrap;
+}
+
+.custom-theme .el-spinner {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-spinner-inner {
+ -webkit-animation: rotate 2s linear infinite;
+ animation: rotate 2s linear infinite;
+ width: 50px;
+ height: 50px;
+}
+
+.custom-theme .el-spinner-inner .path {
+ stroke: #ececec;
+ stroke-linecap: round;
+ -webkit-animation: dash 1.5s ease-in-out infinite;
+ animation: dash 1.5s ease-in-out infinite;
+}
+
+@-webkit-keyframes rotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes rotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-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;
+ }
+}
+
+@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;
+ }
+}
+
+.custom-theme .el-message {
+ min-width: 380px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 4px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #e6ebf5;
+ position: fixed;
+ left: 50%;
+ top: 20px;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ background-color: #edf2fc;
+ -webkit-transition: opacity 0.3s, -webkit-transform 0.4s;
+ transition: opacity 0.3s, -webkit-transform 0.4s;
+ transition: opacity 0.3s, transform 0.4s;
+ transition: opacity 0.3s, transform 0.4s, -webkit-transform 0.4s;
+ overflow: hidden;
+ padding: 15px 15px 15px 20px;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.custom-theme .el-message.is-center {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.custom-theme .el-message p {
+ margin: 0;
+}
+
+.custom-theme .el-message--info .el-message__content {
+ color: #0a76a4;
+}
+
+.custom-theme .el-message--success {
+ background-color: #E7FAF0;
+ border-color: #D0F5E0;
+}
+
+.custom-theme .el-message--success .el-message__content {
+ color: #13CE66;
+}
+
+.custom-theme .el-message--warning {
+ background-color: #FFF8E7;
+ border-color: #FFF1CC;
+}
+
+.custom-theme .el-message--warning .el-message__content {
+ color: #FFBB00;
+}
+
+.custom-theme .el-message--error {
+ background-color: #FFEDED;
+ border-color: #FFDBDC;
+}
+
+.custom-theme .el-message--error .el-message__content {
+ color: #FF2443;
+}
+
+.custom-theme .el-message__icon {
+ margin-right: 10px;
+}
+
+.custom-theme .el-message__content {
+ padding: 0;
+ font-size: 14px;
+ line-height: 1;
+}
+
+.custom-theme .el-message__content:focus {
+ outline-width: 0;
+}
+
+.custom-theme .el-message__closeBtn {
+ position: absolute;
+ top: 50%;
+ right: 15px;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+ cursor: pointer;
+ color: #b4bccc;
+ font-size: 16px;
+}
+
+.custom-theme .el-message__closeBtn:focus {
+ outline-width: 0;
+}
+
+.custom-theme .el-message__closeBtn:hover {
+ color: #878d99;
+}
+
+.custom-theme .el-message .el-icon-success {
+ color: #409167;
+}
+
+.custom-theme .el-message .el-icon-error {
+ color: #b3450e;
+}
+
+.custom-theme .el-message .el-icon-info {
+ color: #0a76a4;
+}
+
+.custom-theme .el-message .el-icon-warning {
+ color: #9da408;
+}
+
+.custom-theme .el-message-fade-enter,
+.custom-theme .el-message-fade-leave-active {
+ opacity: 0;
+ -webkit-transform: translate(-50%, -100%);
+ transform: translate(-50%, -100%);
+}
+
+.custom-theme .el-badge {
+ position: relative;
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.custom-theme .el-badge__content {
+ background-color: #b3450e;
+ 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;
+}
+
+.custom-theme .el-badge__content.is-fixed {
+ position: absolute;
+ top: 0;
+ right: 10px;
+ -webkit-transform: translateY(-50%) translateX(100%);
+ transform: translateY(-50%) translateX(100%);
+}
+
+.custom-theme .el-badge__content.is-fixed.is-dot {
+ right: 5px;
+}
+
+.custom-theme .el-badge__content.is-dot {
+ height: 8px;
+ width: 8px;
+ padding: 0;
+ right: 0;
+ border-radius: 50%;
+}
+
+.custom-theme .el-card {
+ border-radius: 4px;
+ border: 1px solid #e6ebf5;
+ background-color: #fff;
+ overflow: hidden;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ color: #2d2f33;
+}
+
+.custom-theme .el-card__header {
+ padding: 18px 20px;
+ border-bottom: 1px solid #e6ebf5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-card__body {
+ padding: 20px;
+}
+
+.custom-theme .el-rate {
+ height: 20px;
+ line-height: 1;
+}
+
+.custom-theme .el-rate:active,
+.custom-theme .el-rate:focus {
+ outline-width: 0;
+}
+
+.custom-theme .el-rate__item {
+ display: inline-block;
+ position: relative;
+ font-size: 0;
+ vertical-align: middle;
+}
+
+.custom-theme .el-rate__icon {
+ position: relative;
+ display: inline-block;
+ font-size: 18px;
+ margin-right: 6px;
+ color: #b4bccc;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+}
+
+.custom-theme .el-rate__icon.hover {
+ -webkit-transform: scale(1.15);
+ transform: scale(1.15);
+}
+
+.custom-theme .el-rate__icon .path2 {
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+
+.custom-theme .el-rate__decimal {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: inline-block;
+ overflow: hidden;
+}
+
+.custom-theme .el-rate__text {
+ font-size: 14px;
+ vertical-align: middle;
+}
+
+.custom-theme .el-steps {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+
+.custom-theme .el-steps--simple {
+ padding: 13px 8%;
+ border-radius: 4px;
+ background: #f5f7fa;
+}
+
+.custom-theme .el-steps--horizontal {
+ white-space: nowrap;
+}
+
+.custom-theme .el-steps--vertical {
+ height: 100%;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-flow: column;
+ flex-flow: column;
+}
+
+.custom-theme .el-step {
+ position: relative;
+ -ms-flex-negative: 1;
+ flex-shrink: 1;
+}
+
+.custom-theme .el-step:last-of-type .el-step__line {
+ display: none;
+}
+
+.custom-theme .el-step:last-of-type.is-flex {
+ -ms-flex-preferred-size: auto !important;
+ flex-basis: auto !important;
+ -ms-flex-negative: 0;
+ flex-shrink: 0;
+ -webkit-box-flex: 0;
+ -ms-flex-positive: 0;
+ flex-grow: 0;
+}
+
+.custom-theme .el-step:last-of-type .el-step__description,
+.custom-theme .el-step:last-of-type .el-step__main {
+ padding-right: 0;
+}
+
+.custom-theme .el-step__head {
+ position: relative;
+ width: 100%;
+}
+
+.custom-theme .el-step__head.is-process {
+ color: #2d2f33;
+ border-color: #2d2f33;
+}
+
+.custom-theme .el-step__head.is-wait {
+ color: #b4bccc;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-step__head.is-success {
+ color: #409167;
+ border-color: #409167;
+}
+
+.custom-theme .el-step__head.is-error {
+ color: #b3450e;
+ border-color: #b3450e;
+}
+
+.custom-theme .el-step__head.is-finish {
+ color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-step__icon {
+ position: relative;
+ z-index: 1;
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ width: 24px;
+ height: 24px;
+ font-size: 14px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ background: #fff;
+ -webkit-transition: 0.15s ease-out;
+ transition: 0.15s ease-out;
+}
+
+.custom-theme .el-step__icon.is-text {
+ border-radius: 50%;
+ border: 2px solid;
+ border-color: inherit;
+}
+
+.custom-theme .el-step__icon.is-icon {
+ width: 40px;
+}
+
+.custom-theme .el-step__icon-inner {
+ display: inline-block;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ text-align: center;
+ font-weight: 700;
+ line-height: 1;
+ color: inherit;
+}
+
+.custom-theme .el-step__icon-inner[class*='el-icon']:not(.is-status) {
+ font-size: 25px;
+ font-weight: 400;
+}
+
+.custom-theme .el-step__icon-inner.is-status {
+ -webkit-transform: translateY(1px);
+ transform: translateY(1px);
+}
+
+.custom-theme .el-step__line {
+ position: absolute;
+ border-color: inherit;
+ background-color: #b4bccc;
+}
+
+.custom-theme .el-step__line-inner {
+ display: block;
+ border-width: 1px;
+ border-style: solid;
+ border-color: inherit;
+ -webkit-transition: 0.15s ease-out;
+ transition: 0.15s ease-out;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-step__main {
+ white-space: normal;
+ text-align: left;
+}
+
+.custom-theme .el-step__title {
+ font-size: 16px;
+ line-height: 38px;
+}
+
+.custom-theme .el-step__title.is-process {
+ font-weight: 700;
+ color: #2d2f33;
+}
+
+.custom-theme .el-step__title.is-wait {
+ color: #b4bccc;
+}
+
+.custom-theme .el-step__title.is-success {
+ color: #409167;
+}
+
+.custom-theme .el-step__title.is-error {
+ color: #b3450e;
+}
+
+.custom-theme .el-step__title.is-finish {
+ color: #262729;
+}
+
+.custom-theme .el-step__description {
+ padding-right: 10%;
+ margin-top: -5px;
+ font-size: 12px;
+ line-height: 20px;
+ font-weight: 400;
+}
+
+.custom-theme .el-step__description.is-process {
+ color: #2d2f33;
+}
+
+.custom-theme .el-step__description.is-wait {
+ color: #b4bccc;
+}
+
+.custom-theme .el-step__description.is-success {
+ color: #409167;
+}
+
+.custom-theme .el-step__description.is-error {
+ color: #b3450e;
+}
+
+.custom-theme .el-step__description.is-finish {
+ color: #262729;
+}
+
+.custom-theme .el-step.is-horizontal {
+ display: inline-block;
+}
+
+.custom-theme .el-step.is-horizontal .el-step__line {
+ height: 2px;
+ top: 11px;
+ left: 0;
+ right: 0;
+}
+
+.custom-theme .el-step.is-vertical {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+
+.custom-theme .el-step.is-vertical .el-step__head {
+ -webkit-box-flex: 0;
+ -ms-flex-positive: 0;
+ flex-grow: 0;
+ width: 24px;
+}
+
+.custom-theme .el-step.is-vertical .el-step__main {
+ padding-left: 10px;
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+}
+
+.custom-theme .el-step.is-vertical .el-step__title {
+ line-height: 24px;
+ padding-bottom: 8px;
+}
+
+.custom-theme .el-step.is-vertical .el-step__line {
+ width: 2px;
+ top: 0;
+ bottom: 0;
+ left: 11px;
+}
+
+.custom-theme .el-step.is-vertical .el-step__icon.is-icon {
+ width: 24px;
+}
+
+.custom-theme .el-step.is-center .el-step__head {
+ text-align: center;
+}
+
+.custom-theme .el-step.is-center .el-step__main {
+ text-align: center;
+}
+
+.custom-theme .el-step.is-center .el-step__description {
+ padding-left: 20%;
+ padding-right: 20%;
+}
+
+.custom-theme .el-step.is-center .el-step__line {
+ left: 50%;
+ right: -50%;
+}
+
+.custom-theme .el-step.is-simple {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.custom-theme .el-step.is-simple .el-step__head {
+ width: auto;
+ font-size: 0;
+ padding-right: 10px;
+}
+
+.custom-theme .el-step.is-simple .el-step__icon {
+ background: 0 0;
+ width: 16px;
+ height: 16px;
+ font-size: 12px;
+}
+
+.custom-theme .el-step.is-simple .el-step__icon-inner[class*='el-icon']:not(.is-status) {
+ font-size: 18px;
+}
+
+.custom-theme .el-step.is-simple .el-step__icon-inner.is-status {
+ -webkit-transform: scale(0.8) translateY(1px);
+ transform: scale(0.8) translateY(1px);
+}
+
+.custom-theme .el-step.is-simple .el-step__main {
+ position: relative;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+}
+
+.custom-theme .el-step.is-simple .el-step__title {
+ font-size: 16px;
+ line-height: 20px;
+}
+
+.custom-theme .el-step.is-simple:not(:last-of-type) .el-step__title {
+ max-width: 50%;
+ word-break: break-all;
+}
+
+.custom-theme .el-step.is-simple .el-step__arrow {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.custom-theme .el-step.is-simple .el-step__arrow::after,
+.custom-theme .el-step.is-simple .el-step__arrow::before {
+ content: '';
+ display: inline-block;
+ position: absolute;
+ height: 15px;
+ width: 1px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-step.is-simple .el-step__arrow::before {
+ -webkit-transform: rotate(-45deg) translateY(-4px);
+ transform: rotate(-45deg) translateY(-4px);
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+}
+
+.custom-theme .el-step.is-simple .el-step__arrow::after {
+ -webkit-transform: rotate(45deg) translateY(4px);
+ transform: rotate(45deg) translateY(4px);
+ -webkit-transform-origin: 100% 100%;
+ transform-origin: 100% 100%;
+}
+
+.custom-theme .el-step.is-simple:last-of-type .el-step__arrow {
+ display: none;
+}
+
+.custom-theme .el-carousel {
+ overflow-x: hidden;
+ position: relative;
+}
+
+.custom-theme .el-carousel__container {
+ position: relative;
+ height: 300px;
+}
+
+.custom-theme .el-carousel__arrow {
+ border: none;
+ outline: 0;
+ padding: 0;
+ margin: 0;
+ height: 36px;
+ width: 36px;
+ cursor: pointer;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+ border-radius: 50%;
+ background-color: rgba(31, 45, 61, 0.11);
+ color: #fff;
+ position: absolute;
+ top: 50%;
+ z-index: 10;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+ text-align: center;
+ font-size: 12px;
+}
+
+.custom-theme .el-carousel__arrow--left {
+ left: 16px;
+}
+
+.custom-theme .el-carousel__arrow--right {
+ right: 16px;
+}
+
+.custom-theme .el-carousel__arrow:hover {
+ background-color: rgba(31, 45, 61, 0.23);
+}
+
+.custom-theme .el-carousel__arrow i {
+ cursor: pointer;
+}
+
+.custom-theme .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;
+}
+
+.custom-theme .el-carousel__indicators--outside {
+ bottom: 26px;
+ text-align: center;
+ position: static;
+ -webkit-transform: none;
+ transform: none;
+}
+
+.custom-theme .el-carousel__indicators--outside .el-carousel__indicator:hover button {
+ opacity: 0.64;
+}
+
+.custom-theme .el-carousel__indicators--outside button {
+ background-color: #b4bccc;
+ opacity: 0.24;
+}
+
+.custom-theme .el-carousel__indicators--labels {
+ left: 0;
+ right: 0;
+ -webkit-transform: none;
+ transform: none;
+ text-align: center;
+}
+
+.custom-theme .el-carousel__indicators--labels .el-carousel__button {
+ height: auto;
+ width: auto;
+ padding: 2px 18px;
+ font-size: 12px;
+}
+
+.custom-theme .el-carousel__indicators--labels .el-carousel__indicator {
+ padding: 6px 4px;
+}
+
+.custom-theme .el-carousel__indicator {
+ display: inline-block;
+ background-color: transparent;
+ padding: 12px 4px;
+ cursor: pointer;
+}
+
+.custom-theme .el-carousel__indicator:hover button {
+ opacity: 0.72;
+}
+
+.custom-theme .el-carousel__indicator.is-active button {
+ opacity: 1;
+}
+
+.custom-theme .el-carousel__button {
+ display: block;
+ opacity: 0.48;
+ width: 30px;
+ height: 2px;
+ background-color: #fff;
+ border: none;
+ outline: 0;
+ padding: 0;
+ margin: 0;
+ cursor: pointer;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+}
+
+.custom-theme .carousel-arrow-left-enter,
+.custom-theme .carousel-arrow-left-leave-active {
+ -webkit-transform: translateY(-50%) translateX(-10px);
+ transform: translateY(-50%) translateX(-10px);
+ opacity: 0;
+}
+
+.custom-theme .carousel-arrow-right-enter,
+.custom-theme .carousel-arrow-right-leave-active {
+ -webkit-transform: translateY(-50%) translateX(10px);
+ transform: translateY(-50%) translateX(10px);
+ opacity: 0;
+}
+
+.custom-theme .el-scrollbar {
+ overflow: hidden;
+ position: relative;
+}
+
+.custom-theme .el-scrollbar:active>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:focus>.el-scrollbar__bar,
+.custom-theme .el-scrollbar:hover>.el-scrollbar__bar {
+ opacity: 1;
+ -webkit-transition: opacity 340ms ease-out;
+ transition: opacity 340ms ease-out;
+}
+
+.custom-theme .el-scrollbar__wrap {
+ overflow: scroll;
+ height: 100%;
+}
+
+.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+
+.custom-theme .el-scrollbar__thumb {
+ position: relative;
+ display: block;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ border-radius: inherit;
+ background-color: rgba(135, 141, 153, 0.3);
+ -webkit-transition: 0.3s background-color;
+ transition: 0.3s background-color;
+}
+
+.custom-theme .el-scrollbar__thumb:hover {
+ background-color: rgba(135, 141, 153, 0.5);
+}
+
+.custom-theme .el-scrollbar__bar {
+ position: absolute;
+ right: 2px;
+ bottom: 2px;
+ z-index: 1;
+ border-radius: 4px;
+ opacity: 0;
+ -webkit-transition: opacity 120ms ease-out;
+ transition: opacity 120ms ease-out;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical {
+ width: 6px;
+ top: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-vertical>div {
+ width: 100%;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal {
+ height: 6px;
+ left: 2px;
+}
+
+.custom-theme .el-scrollbar__bar.is-horizontal>div {
+ height: 100%;
+}
+
+.custom-theme .el-carousel__item {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: inline-block;
+ overflow: hidden;
+ z-index: 0;
+}
+
+.custom-theme .el-carousel__item.is-active {
+ z-index: 2;
+}
+
+.custom-theme .el-carousel__item.is-animating {
+ -webkit-transition: -webkit-transform 0.4s ease-in-out;
+ transition: -webkit-transform 0.4s ease-in-out;
+ transition: transform 0.4s ease-in-out;
+ transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out;
+}
+
+.custom-theme .el-carousel__item--card {
+ width: 50%;
+ -webkit-transition: -webkit-transform 0.4s ease-in-out;
+ transition: -webkit-transform 0.4s ease-in-out;
+ transition: transform 0.4s ease-in-out;
+ transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out;
+}
+
+.custom-theme .el-carousel__item--card.is-in-stage {
+ cursor: pointer;
+ z-index: 1;
+}
+
+.custom-theme .el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,
+.custom-theme .el-carousel__item--card.is-in-stage:hover .el-carousel__mask {
+ opacity: 0.12;
+}
+
+.custom-theme .el-carousel__item--card.is-active {
+ z-index: 2;
+}
+
+.custom-theme .el-carousel__mask {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ background-color: #fff;
+ opacity: 0.24;
+ -webkit-transition: 0.2s;
+ transition: 0.2s;
+}
+
+.custom-theme .el-collapse {
+ border-top: 1px solid #e6ebf5;
+ border-bottom: 1px solid #e6ebf5;
+}
+
+.custom-theme .el-collapse-item__header {
+ height: 48px;
+ line-height: 48px;
+ background-color: #fff;
+ color: #2d2f33;
+ cursor: pointer;
+ border-bottom: 1px solid #e6ebf5;
+ font-size: 13px;
+ font-weight: 500;
+ -webkit-transition: border-bottom-color 0.3s;
+ transition: border-bottom-color 0.3s;
+}
+
+.custom-theme .el-collapse-item__header:active,
+.custom-theme .el-collapse-item__header:focus:not(.focusing) {
+ outline-width: 0;
+}
+
+.custom-theme .el-collapse-item__arrow {
+ margin-right: 8px;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+ float: right;
+ line-height: 48px;
+ font-weight: 300;
+}
+
+.custom-theme .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 #e6ebf5;
+}
+
+.custom-theme .el-collapse-item__content {
+ padding-bottom: 25px;
+ font-size: 13px;
+ color: #2d2f33;
+ line-height: 1.769230769230769;
+}
+
+.custom-theme .el-collapse-item.is-active .el-collapse-item__header {
+ border-bottom-color: transparent;
+}
+
+.custom-theme .el-collapse-item.is-active .el-collapse-item__header .el-collapse-item__arrow {
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.custom-theme .el-collapse-item:last-child {
+ margin-bottom: -1px;
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-popper .popper__arrow,
+.custom-theme .el-popper .popper__arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.custom-theme .el-popper .popper__arrow {
+ border-width: 6px;
+ -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+}
+
+.custom-theme .el-popper .popper__arrow::after {
+ content: ' ';
+ border-width: 6px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] {
+ margin-bottom: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow {
+ bottom: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-color: #e6ebf5;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after {
+ bottom: 1px;
+ margin-left: -6px;
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] {
+ margin-top: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow {
+ top: -6px;
+ left: 50%;
+ margin-right: 3px;
+ border-top-width: 0;
+ border-bottom-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after {
+ top: 1px;
+ margin-left: -6px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.custom-theme .el-popper[x-placement^='right'] {
+ margin-left: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow {
+ top: 50%;
+ left: -6px;
+ margin-bottom: 3px;
+ border-right-color: #e6ebf5;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after {
+ bottom: -6px;
+ left: 1px;
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.custom-theme .el-popper[x-placement^='left'] {
+ margin-right: 12px;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow {
+ top: 50%;
+ right: -6px;
+ margin-bottom: 3px;
+ border-right-width: 0;
+ border-left-color: #e6ebf5;
+}
+
+.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after {
+ right: 1px;
+ bottom: -6px;
+ margin-left: -6px;
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.custom-theme .el-cascader {
+ display: inline-block;
+ position: relative;
+ font-size: 14px;
+ line-height: 40px;
+}
+
+.custom-theme .el-cascader .el-input,
+.custom-theme .el-cascader .el-input__inner {
+ cursor: pointer;
+}
+
+.custom-theme .el-cascader .el-input__icon {
+ -webkit-transition: none;
+ transition: none;
+}
+
+.custom-theme .el-cascader .el-icon-arrow-down {
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+ font-size: 14px;
+}
+
+.custom-theme .el-cascader .el-icon-arrow-down.is-reverse {
+ -webkit-transform: rotateZ(180deg);
+ transform: rotateZ(180deg);
+}
+
+.custom-theme .el-cascader .el-icon-circle-close {
+ z-index: 2;
+ -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-cascader .el-icon-circle-close:hover {
+ color: #878d99;
+}
+
+.custom-theme .el-cascader__clearIcon {
+ z-index: 2;
+ position: relative;
+}
+
+.custom-theme .el-cascader__label {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 100%;
+ padding: 0 25px 0 15px;
+ color: #5a5e66;
+ width: 100%;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ cursor: pointer;
+ text-align: left;
+ font-size: inherit;
+}
+
+.custom-theme .el-cascader__label span {
+ color: #000;
+}
+
+.custom-theme .el-cascader--medium {
+ font-size: 14px;
+ line-height: 36px;
+}
+
+.custom-theme .el-cascader--small {
+ font-size: 13px;
+ line-height: 32px;
+}
+
+.custom-theme .el-cascader--mini {
+ font-size: 12px;
+ line-height: 28px;
+}
+
+.custom-theme .el-cascader.is-disabled .el-cascader__label {
+ z-index: 2;
+ color: #b4bccc;
+}
+
+.custom-theme .el-cascader-menus {
+ white-space: nowrap;
+ background: #fff;
+ position: absolute;
+ margin: 5px 0;
+ z-index: 2;
+ border: solid 1px #dfe4ed;
+ border-radius: 2px;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+
+.custom-theme .el-cascader-menus .popper__arrow {
+ -webkit-transform: translateX(-400%);
+ transform: translateX(-400%);
+}
+
+.custom-theme .el-cascader-menu {
+ display: inline-block;
+ vertical-align: top;
+ height: 204px;
+ overflow: auto;
+ border-right: solid 1px #dfe4ed;
+ background-color: #fff;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 6px 0;
+ min-width: 160px;
+}
+
+.custom-theme .el-cascader-menu:last-child {
+ border-right: 0;
+}
+
+.custom-theme .el-cascader-menu__item {
+ font-size: 14px;
+ padding: 8px 20px;
+ position: relative;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ color: #5a5e66;
+ height: 34px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ cursor: pointer;
+}
+
+.custom-theme .el-cascader-menu__item--extensible:after {
+ font-family: element-icons;
+ content: '\e604';
+ font-size: 14px;
+ color: #bfcbd9;
+ position: absolute;
+ right: 15px;
+}
+
+.custom-theme .el-cascader-menu__item.is-disabled {
+ color: #b4bccc;
+ background-color: #fff;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-cascader-menu__item.is-disabled:hover {
+ background-color: #fff;
+}
+
+.custom-theme .el-cascader-menu__item.is-active {
+ color: #262729;
+}
+
+.custom-theme .el-cascader-menu__item:hover {
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-cascader-menu__item.selected {
+ color: #fff;
+ background-color: #f5f7fa;
+}
+
+.custom-theme .el-cascader-menu__item__keyword {
+ font-weight: 700;
+}
+
+.custom-theme .el-cascader-menu--flexible {
+ height: auto;
+ max-height: 180px;
+ overflow: auto;
+}
+
+.custom-theme .el-cascader-menu--flexible .el-cascader-menu__item {
+ overflow: visible;
+}
+
+.custom-theme .el-color-hue-slider {
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 280px;
+ height: 12px;
+ background-color: red;
+ padding: 0 2px;
+}
+
+.custom-theme .el-color-hue-slider__bar {
+ position: relative;
+ background: -webkit-gradient(linear,
+ left top,
+ right top,
+ from(red),
+ color-stop(17%, #ff0),
+ color-stop(33%, #0f0),
+ color-stop(50%, #0ff),
+ color-stop(67%, #00f),
+ color-stop(83%, #f0f),
+ to(red));
+ background: linear-gradient(to right,
+ red 0,
+ #ff0 17%,
+ #0f0 33%,
+ #0ff 50%,
+ #00f 67%,
+ #f0f 83%,
+ red 100%);
+ height: 100%;
+}
+
+.custom-theme .el-color-hue-slider__thumb {
+ position: absolute;
+ cursor: pointer;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ left: 0;
+ top: 0;
+ width: 4px;
+ height: 100%;
+ border-radius: 1px;
+ background: #fff;
+ border: 1px solid #f0f0f0;
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
+ z-index: 1;
+}
+
+.custom-theme .el-color-hue-slider.is-vertical {
+ width: 12px;
+ height: 180px;
+ padding: 2px 0;
+}
+
+.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__bar {
+ background: -webkit-gradient(linear,
+ left top,
+ left bottom,
+ from(red),
+ color-stop(17%, #ff0),
+ color-stop(33%, #0f0),
+ color-stop(50%, #0ff),
+ color-stop(67%, #00f),
+ color-stop(83%, #f0f),
+ to(red));
+ background: linear-gradient(to bottom,
+ red 0,
+ #ff0 17%,
+ #0f0 33%,
+ #0ff 50%,
+ #00f 67%,
+ #f0f 83%,
+ red 100%);
+}
+
+.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__thumb {
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 4px;
+}
+
+.custom-theme .el-color-svpanel {
+ position: relative;
+ width: 280px;
+ height: 180px;
+}
+
+.custom-theme .el-color-svpanel__black,
+.custom-theme .el-color-svpanel__white {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.custom-theme .el-color-svpanel__white {
+ background: -webkit-gradient(linear,
+ left top,
+ right top,
+ from(#fff),
+ to(rgba(255, 255, 255, 0)));
+ background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
+}
+
+.custom-theme .el-color-svpanel__black {
+ background: -webkit-gradient(linear,
+ left bottom,
+ left top,
+ from(#000),
+ to(transparent));
+ background: linear-gradient(to top, #000, transparent);
+}
+
+.custom-theme .el-color-svpanel__cursor {
+ position: absolute;
+}
+
+.custom-theme .el-color-svpanel__cursor>div {
+ cursor: head;
+ width: 4px;
+ height: 4px;
+ -webkit-box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3),
+ 0 0 1px 2px rgba(0, 0, 0, 0.4);
+ box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3),
+ 0 0 1px 2px rgba(0, 0, 0, 0.4);
+ border-radius: 50%;
+ -webkit-transform: translate(-2px, -2px);
+ transform: translate(-2px, -2px);
+}
+
+.custom-theme .el-color-alpha-slider {
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 280px;
+ height: 12px;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
+}
+
+.custom-theme .el-color-alpha-slider__bar {
+ position: relative;
+ background: -webkit-gradient(linear,
+ left top,
+ right top,
+ from(rgba(255, 255, 255, 0)),
+ to(white));
+ background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, #fff 100%);
+ height: 100%;
+}
+
+.custom-theme .el-color-alpha-slider__thumb {
+ position: absolute;
+ cursor: pointer;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ left: 0;
+ top: 0;
+ width: 4px;
+ height: 100%;
+ border-radius: 1px;
+ background: #fff;
+ border: 1px solid #f0f0f0;
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
+ z-index: 1;
+}
+
+.custom-theme .el-color-alpha-slider.is-vertical {
+ width: 20px;
+ height: 180px;
+}
+
+.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar {
+ background: -webkit-gradient(linear,
+ left top,
+ left bottom,
+ from(rgba(255, 255, 255, 0)),
+ to(white));
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, #fff 100%);
+}
+
+.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb {
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 4px;
+}
+
+.custom-theme .el-color-dropdown {
+ width: 300px;
+}
+
+.custom-theme .el-color-dropdown__main-wrapper {
+ margin-bottom: 6px;
+}
+
+.custom-theme .el-color-dropdown__main-wrapper::after {
+ content: '';
+ display: table;
+ clear: both;
+}
+
+.custom-theme .el-color-dropdown__btns {
+ margin-top: 6px;
+ text-align: right;
+}
+
+.custom-theme .el-color-dropdown__value {
+ float: left;
+ line-height: 26px;
+ font-size: 12px;
+ color: #000;
+ width: 160px;
+}
+
+.custom-theme .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;
+}
+
+.custom-theme .el-color-dropdown__btn[disabled] {
+ color: #ccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-color-dropdown__btn:hover {
+ color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-color-dropdown__link-btn {
+ cursor: pointer;
+ color: #262729;
+ text-decoration: none;
+ padding: 15px;
+ font-size: 12px;
+}
+
+.custom-theme .el-color-dropdown__link-btn:hover {
+ color: tint(#262729, 20%);
+}
+
+.custom-theme .el-color-picker {
+ display: inline-block;
+ position: relative;
+ line-height: normal;
+ height: 40px;
+}
+
+.custom-theme .el-color-picker.is-disabled .el-color-picker__trigger {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-color-picker--medium {
+ height: 36px;
+}
+
+.custom-theme .el-color-picker--medium .el-color-picker__trigger {
+ height: 36px;
+ width: 36px;
+}
+
+.custom-theme .el-color-picker--medium .el-color-picker__mask {
+ height: 34px;
+ width: 34px;
+}
+
+.custom-theme .el-color-picker--small {
+ height: 32px;
+}
+
+.custom-theme .el-color-picker--small .el-color-picker__trigger {
+ height: 32px;
+ width: 32px;
+}
+
+.custom-theme .el-color-picker--small .el-color-picker__mask {
+ height: 30px;
+ width: 30px;
+}
+
+.custom-theme .el-color-picker--small .el-color-picker__empty,
+.custom-theme .el-color-picker--small .el-color-picker__icon {
+ -webkit-transform: translate3d(-50%, -50%, 0) scale(0.8);
+ transform: translate3d(-50%, -50%, 0) scale(0.8);
+}
+
+.custom-theme .el-color-picker--mini {
+ height: 28px;
+}
+
+.custom-theme .el-color-picker--mini .el-color-picker__trigger {
+ height: 28px;
+ width: 28px;
+}
+
+.custom-theme .el-color-picker--mini .el-color-picker__mask {
+ height: 26px;
+ width: 26px;
+}
+
+.custom-theme .el-color-picker--mini .el-color-picker__empty,
+.custom-theme .el-color-picker--mini .el-color-picker__icon {
+ -webkit-transform: translate3d(-50%, -50%, 0) scale(0.8);
+ transform: translate3d(-50%, -50%, 0) scale(0.8);
+}
+
+.custom-theme .el-color-picker__mask {
+ height: 38px;
+ width: 38px;
+ border-radius: 4px;
+ position: absolute;
+ top: 1px;
+ left: 1px;
+ z-index: 1;
+ cursor: not-allowed;
+ background-color: rgba(255, 255, 255, 0.7);
+}
+
+.custom-theme .el-color-picker__trigger {
+ display: inline-block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ height: 40px;
+ width: 40px;
+ padding: 4px;
+ border: 1px solid #e6e6e6;
+ border-radius: 4px;
+ font-size: 0;
+ position: relative;
+ cursor: pointer;
+}
+
+.custom-theme .el-color-picker__color {
+ position: relative;
+ display: block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid #999;
+ border-radius: 2px;
+ width: 100%;
+ height: 100%;
+ text-align: center;
+}
+
+.custom-theme .el-color-picker__color.is-alpha {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
+}
+
+.custom-theme .el-color-picker__color-inner {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.custom-theme .el-color-picker__empty {
+ font-size: 12px;
+ color: #999;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate3d(-50%, -50%, 0);
+ transform: translate3d(-50%, -50%, 0);
+}
+
+.custom-theme .el-color-picker__icon {
+ display: inline-block;
+ position: absolute;
+ width: 100%;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate3d(-50%, -50%, 0);
+ transform: translate3d(-50%, -50%, 0);
+ color: #fff;
+ text-align: center;
+ font-size: 12px;
+}
+
+.custom-theme .el-color-picker__panel {
+ position: absolute;
+ z-index: 10;
+ padding: 6px;
+ background-color: #fff;
+ border: 1px solid #e6ebf5;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+
+.custom-theme .el-input {
+ position: relative;
+ font-size: 14px;
+ display: inline-block;
+ width: 100%;
+}
+
+.custom-theme .el-input::-webkit-scrollbar {
+ z-index: 11;
+ width: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar:horizontal {
+ height: 6px;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ width: 6px;
+ background: #b4bccc;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-corner {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track {
+ background: #fff;
+}
+
+.custom-theme .el-input::-webkit-scrollbar-track-piece {
+ background: #fff;
+ width: 6px;
+}
+
+.custom-theme .el-input__inner {
+ -webkit-appearance: none;
+ background-color: #fff;
+ background-image: none;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #5a5e66;
+ display: inline-block;
+ font-size: inherit;
+ height: 40px;
+ line-height: 1;
+ outline: 0;
+ padding: 0 15px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ width: 100%;
+}
+
+.custom-theme .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-input__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input__suffix {
+ position: absolute;
+ height: 100%;
+ right: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ pointer-events: none;
+}
+
+.custom-theme .el-input__suffix-inner {
+ pointer-events: all;
+}
+
+.custom-theme .el-input__prefix {
+ position: absolute;
+ height: 100%;
+ left: 5px;
+ top: 0;
+ text-align: center;
+ color: #b4bccc;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+}
+
+.custom-theme .el-input__icon {
+ height: 100%;
+ width: 25px;
+ text-align: center;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s;
+ line-height: 40px;
+}
+
+.custom-theme .el-input__icon:after {
+ content: '';
+ height: 100%;
+ width: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-input__validateIcon {
+ pointer-events: none;
+}
+
+.custom-theme .el-input.is-active .el-input__inner {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-input.is-disabled .el-input__icon {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-input--suffix .el-input__inner {
+ padding-right: 30px;
+}
+
+.custom-theme .el-input--prefix .el-input__inner {
+ padding-left: 30px;
+}
+
+.custom-theme .el-input--medium {
+ font-size: 14px;
+}
+
+.custom-theme .el-input--medium .el-input__inner {
+ height: 36px;
+}
+
+.custom-theme .el-input--medium .el-input__icon {
+ line-height: 36px;
+}
+
+.custom-theme .el-input--small {
+ font-size: 13px;
+}
+
+.custom-theme .el-input--small .el-input__inner {
+ height: 32px;
+}
+
+.custom-theme .el-input--small .el-input__icon {
+ line-height: 32px;
+}
+
+.custom-theme .el-input--mini {
+ font-size: 12px;
+}
+
+.custom-theme .el-input--mini .el-input__inner {
+ height: 28px;
+}
+
+.custom-theme .el-input--mini .el-input__icon {
+ line-height: 28px;
+}
+
+.custom-theme .el-input-group {
+ line-height: normal;
+ display: inline-table;
+ width: 100%;
+ border-collapse: separate;
+}
+
+.custom-theme .el-input-group>.el-input__inner {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.custom-theme .el-input-group__append,
+.custom-theme .el-input-group__prepend {
+ background-color: #f5f7fa;
+ color: #0a76a4;
+ vertical-align: middle;
+ display: table-cell;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ padding: 0 20px;
+ width: 1px;
+ white-space: nowrap;
+}
+
+.custom-theme .el-input-group__append:focus,
+.custom-theme .el-input-group__prepend:focus {
+ outline: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-select,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-select {
+ display: inline-block;
+ margin: -20px;
+}
+
+.custom-theme .el-input-group__append button.el-button,
+.custom-theme .el-input-group__append div.el-select .el-input__inner,
+.custom-theme .el-input-group__append div.el-select:hover .el-input__inner,
+.custom-theme .el-input-group__prepend button.el-button,
+.custom-theme .el-input-group__prepend div.el-select .el-input__inner,
+.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner {
+ border-color: transparent;
+ background-color: transparent;
+ color: inherit;
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.custom-theme .el-input-group__append .el-button,
+.custom-theme .el-input-group__append .el-input,
+.custom-theme .el-input-group__prepend .el-button,
+.custom-theme .el-input-group__prepend .el-input {
+ font-size: inherit;
+}
+
+.custom-theme .el-input-group__prepend {
+ border-right: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-input-group__append {
+ border-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--prepend .el-input__inner {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-input-group--append .el-input__inner {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-textarea {
+ display: inline-block;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.custom-theme .el-textarea__inner {
+ display: block;
+ resize: vertical;
+ padding: 5px 15px;
+ line-height: 1.5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ font-size: 14px;
+ color: #5a5e66;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #d8dce5;
+ border-radius: 4px;
+ -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.custom-theme .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:hover {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-textarea__inner:focus {
+ outline: 0;
+ border-color: #262729;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner {
+ background-color: #f5f7fa;
+ border-color: #dfe4ed;
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder {
+ color: #b4bccc;
+}
+
+.custom-theme .el-button {
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-color: #d8dce5;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ -webkit-transition: 0.1s;
+ transition: 0.1s;
+ font-weight: 500;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button+.el-button {
+ margin-left: 10px;
+}
+
+.custom-theme .el-button.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-button:focus,
+.custom-theme .el-button:hover {
+ color: #262729;
+ border-color: #bebebf;
+ background-color: #e9e9ea;
+}
+
+.custom-theme .el-button:active {
+ color: #222325;
+ border-color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button::-moz-focus-inner {
+ border: 0;
+}
+
+.custom-theme .el-button [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-button.is-plain:focus,
+.custom-theme .el-button.is-plain:hover {
+ background: #fff;
+ border-color: #262729;
+ color: #262729;
+}
+
+.custom-theme .el-button.is-plain:active {
+ background: #fff;
+ border-color: #222325;
+ color: #222325;
+ outline: 0;
+}
+
+.custom-theme .el-button.is-active {
+ color: #222325;
+ border-color: #222325;
+}
+
+.custom-theme .el-button.is-disabled,
+.custom-theme .el-button.is-disabled:focus,
+.custom-theme .el-button.is-disabled:hover {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+}
+
+.custom-theme .el-button.is-disabled.el-button--text {
+ background-color: transparent;
+}
+
+.custom-theme .el-button.is-disabled.is-plain,
+.custom-theme .el-button.is-disabled.is-plain:focus,
+.custom-theme .el-button.is-disabled.is-plain:hover {
+ background-color: #fff;
+ border-color: #e6ebf5;
+ color: #b4bccc;
+}
+
+.custom-theme .el-button.is-loading {
+ position: relative;
+ pointer-events: none;
+}
+
+.custom-theme .el-button.is-loading:before {
+ pointer-events: none;
+ content: '';
+ position: absolute;
+ left: -1px;
+ top: -1px;
+ right: -1px;
+ bottom: -1px;
+ border-radius: inherit;
+ background-color: rgba(255, 255, 255, 0.35);
+}
+
+.custom-theme .el-button.is-round {
+ border-radius: 20px;
+ padding: 12px 23px;
+}
+
+.custom-theme .el-button--primary {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-button--primary:focus,
+.custom-theme .el-button--primary:hover {
+ background: #515254;
+ border-color: #515254;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-disabled,
+.custom-theme .el-button--primary.is-disabled:active,
+.custom-theme .el-button--primary.is-disabled:focus,
+.custom-theme .el-button--primary.is-disabled:hover {
+ color: #fff;
+ background-color: #939394;
+ border-color: #939394;
+}
+
+.custom-theme .el-button--primary.is-plain {
+ color: #262729;
+ background: #e9e9ea;
+ border-color: #a8a9a9;
+}
+
+.custom-theme .el-button--primary.is-plain:focus,
+.custom-theme .el-button--primary.is-plain:hover {
+ background: #262729;
+ border-color: #262729;
+ color: #fff;
+}
+
+.custom-theme .el-button--primary.is-plain:active {
+ background: #222325;
+ border-color: #222325;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--primary.is-plain.is-disabled,
+.custom-theme .el-button--primary.is-plain.is-disabled:active,
+.custom-theme .el-button--primary.is-plain.is-disabled:focus,
+.custom-theme .el-button--primary.is-plain.is-disabled:hover {
+ color: #7d7d7f;
+ background-color: #e9e9ea;
+ border-color: #d4d4d4;
+}
+
+.custom-theme .el-button--success {
+ color: #fff;
+ background-color: #409167;
+ border-color: #409167;
+}
+
+.custom-theme .el-button--success:focus,
+.custom-theme .el-button--success:hover {
+ background: #66a785;
+ border-color: #66a785;
+ color: #fff;
+}
+
+.custom-theme .el-button--success:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-disabled,
+.custom-theme .el-button--success.is-disabled:active,
+.custom-theme .el-button--success.is-disabled:focus,
+.custom-theme .el-button--success.is-disabled:hover {
+ color: #fff;
+ background-color: #a0c8b3;
+ border-color: #a0c8b3;
+}
+
+.custom-theme .el-button--success.is-plain {
+ color: #409167;
+ background: #ecf4f0;
+ border-color: #b3d3c2;
+}
+
+.custom-theme .el-button--success.is-plain:focus,
+.custom-theme .el-button--success.is-plain:hover {
+ background: #409167;
+ border-color: #409167;
+ color: #fff;
+}
+
+.custom-theme .el-button--success.is-plain:active {
+ background: #3a835d;
+ border-color: #3a835d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--success.is-plain.is-disabled,
+.custom-theme .el-button--success.is-plain.is-disabled:active,
+.custom-theme .el-button--success.is-plain.is-disabled:focus,
+.custom-theme .el-button--success.is-plain.is-disabled:hover {
+ color: #8cbda4;
+ background-color: #ecf4f0;
+ border-color: #d9e9e1;
+}
+
+.custom-theme .el-button--warning {
+ color: #fff;
+ background-color: #9da408;
+ border-color: #9da408;
+}
+
+.custom-theme .el-button--warning:focus,
+.custom-theme .el-button--warning:hover {
+ background: #b1b639;
+ border-color: #b1b639;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-disabled,
+.custom-theme .el-button--warning.is-disabled:active,
+.custom-theme .el-button--warning.is-disabled:focus,
+.custom-theme .el-button--warning.is-disabled:hover {
+ color: #fff;
+ background-color: #ced284;
+ border-color: #ced284;
+}
+
+.custom-theme .el-button--warning.is-plain {
+ color: #9da408;
+ background: #f5f6e6;
+ border-color: #d8db9c;
+}
+
+.custom-theme .el-button--warning.is-plain:focus,
+.custom-theme .el-button--warning.is-plain:hover {
+ background: #9da408;
+ border-color: #9da408;
+ color: #fff;
+}
+
+.custom-theme .el-button--warning.is-plain:active {
+ background: #8d9407;
+ border-color: #8d9407;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--warning.is-plain.is-disabled,
+.custom-theme .el-button--warning.is-plain.is-disabled:active,
+.custom-theme .el-button--warning.is-plain.is-disabled:focus,
+.custom-theme .el-button--warning.is-plain.is-disabled:hover {
+ color: #c4c86b;
+ background-color: #f5f6e6;
+ border-color: #ebedce;
+}
+
+.custom-theme .el-button--danger {
+ color: #fff;
+ background-color: #b3450e;
+ border-color: #b3450e;
+}
+
+.custom-theme .el-button--danger:focus,
+.custom-theme .el-button--danger:hover {
+ background: #c26a3e;
+ border-color: #c26a3e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-disabled,
+.custom-theme .el-button--danger.is-disabled:active,
+.custom-theme .el-button--danger.is-disabled:focus,
+.custom-theme .el-button--danger.is-disabled:hover {
+ color: #fff;
+ background-color: #d9a287;
+ border-color: #d9a287;
+}
+
+.custom-theme .el-button--danger.is-plain {
+ color: #b3450e;
+ background: #f7ece7;
+ border-color: #e1b59f;
+}
+
+.custom-theme .el-button--danger.is-plain:focus,
+.custom-theme .el-button--danger.is-plain:hover {
+ background: #b3450e;
+ border-color: #b3450e;
+ color: #fff;
+}
+
+.custom-theme .el-button--danger.is-plain:active {
+ background: #a13e0d;
+ border-color: #a13e0d;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--danger.is-plain.is-disabled,
+.custom-theme .el-button--danger.is-plain.is-disabled:active,
+.custom-theme .el-button--danger.is-plain.is-disabled:focus,
+.custom-theme .el-button--danger.is-plain.is-disabled:hover {
+ color: #d18f6e;
+ background-color: #f7ece7;
+ border-color: #f0dacf;
+}
+
+.custom-theme .el-button--info {
+ color: #fff;
+ background-color: #0a76a4;
+ border-color: #0a76a4;
+}
+
+.custom-theme .el-button--info:focus,
+.custom-theme .el-button--info:hover {
+ background: #3b91b6;
+ border-color: #3b91b6;
+ color: #fff;
+}
+
+.custom-theme .el-button--info:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-disabled,
+.custom-theme .el-button--info.is-disabled:active,
+.custom-theme .el-button--info.is-disabled:focus,
+.custom-theme .el-button--info.is-disabled:hover {
+ color: #fff;
+ background-color: #85bbd2;
+ border-color: #85bbd2;
+}
+
+.custom-theme .el-button--info.is-plain {
+ color: #0a76a4;
+ background: #e7f1f6;
+ border-color: #9dc8db;
+}
+
+.custom-theme .el-button--info.is-plain:focus,
+.custom-theme .el-button--info.is-plain:hover {
+ background: #0a76a4;
+ border-color: #0a76a4;
+ color: #fff;
+}
+
+.custom-theme .el-button--info.is-plain:active {
+ background: #096a94;
+ border-color: #096a94;
+ color: #fff;
+ outline: 0;
+}
+
+.custom-theme .el-button--info.is-plain.is-disabled,
+.custom-theme .el-button--info.is-plain.is-disabled:active,
+.custom-theme .el-button--info.is-plain.is-disabled:focus,
+.custom-theme .el-button--info.is-plain.is-disabled:hover {
+ color: #6cadc8;
+ background-color: #e7f1f6;
+ border-color: #cee4ed;
+}
+
+.custom-theme .el-button--medium {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-button--medium.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-button--small {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--small.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-button--mini {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-button--mini.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-button--text {
+ border: none;
+ color: #262729;
+ background: 0 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.custom-theme .el-button--text:focus,
+.custom-theme .el-button--text:hover {
+ color: #515254;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button--text:active {
+ color: #222325;
+ border-color: transparent;
+ background-color: transparent;
+}
+
+.custom-theme .el-button-group {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.custom-theme .el-button-group::after,
+.custom-theme .el-button-group::before {
+ display: table;
+ content: '';
+}
+
+.custom-theme .el-button-group::after {
+ clear: both;
+}
+
+.custom-theme .el-button-group .el-button {
+ float: left;
+ position: relative;
+}
+
+.custom-theme .el-button-group .el-button+.el-button {
+ margin-left: 0;
+}
+
+.custom-theme .el-button-group .el-button:first-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.custom-theme .el-button-group .el-button:not(:last-child) {
+ margin-right: -1px;
+}
+
+.custom-theme .el-button-group .el-button:active,
+.custom-theme .el-button-group .el-button:focus,
+.custom-theme .el-button-group .el-button:hover {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button.is-active {
+ z-index: 1;
+}
+
+.custom-theme .el-button-group .el-button--primary:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:first-child {
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:last-child {
+ border-left-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ border-right-color: rgba(255, 255, 255, 0.5);
+}
+
+.custom-theme .el-checkbox {
+ color: #5a5e66;
+ font-weight: 500;
+ font-size: 14px;
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.custom-theme .el-checkbox.is-bordered {
+ padding: 9px 20px 9px 10px;
+ border-radius: 4px;
+ border: 1px solid #d8dce5;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-checked {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox.is-bordered.is-disabled {
+ border-color: #e6ebf5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox.is-bordered+.el-checkbox.is-bordered {
+ margin-left: 10px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium {
+ padding: 7px 20px 7px 10px;
+ border-radius: 4px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label {
+ line-height: 17px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner {
+ height: 14px;
+ width: 14px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small {
+ padding: 3px 15px 7px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label {
+ line-height: 15px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini {
+ padding: 1px 15px 5px 10px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label {
+ line-height: 12px;
+ font-size: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner {
+ height: 12px;
+ width: 12px;
+}
+
+.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after {
+ height: 6px;
+ width: 2px;
+}
+
+.custom-theme .el-checkbox__input {
+ white-space: nowrap;
+ cursor: pointer;
+ outline: 0;
+ display: inline-block;
+ line-height: 1;
+ position: relative;
+ vertical-align: middle;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after {
+ cursor: not-allowed;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label {
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #d8dce5;
+}
+
+.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before {
+ background-color: #b4bccc;
+ border-color: #b4bccc;
+}
+
+.custom-theme .el-checkbox__input.is-disabled+span.el-checkbox__label {
+ color: #b4bccc;
+ cursor: not-allowed;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after {
+ -webkit-transform: rotate(45deg) scaleY(1);
+ transform: rotate(45deg) scaleY(1);
+}
+
+.custom-theme .el-checkbox__input.is-checked+.el-checkbox__label {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+ background-color: #262729;
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before {
+ content: '';
+ position: absolute;
+ display: block;
+ background-color: #fff;
+ height: 2px;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ left: 0;
+ right: 0;
+ top: 5px;
+}
+
+.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after {
+ display: none;
+}
+
+.custom-theme .el-checkbox__inner {
+ display: inline-block;
+ position: relative;
+ border: 1px solid #d8dce5;
+ border-radius: 2px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 14px;
+ height: 14px;
+ background-color: #fff;
+ z-index: 1;
+ -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+ transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
+ background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
+}
+
+.custom-theme .el-checkbox__inner:hover {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox__inner::after {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ content: '';
+ border: 1px solid #fff;
+ border-left: 0;
+ border-top: 0;
+ height: 7px;
+ left: 4px;
+ position: absolute;
+ top: 1px;
+ -webkit-transform: rotate(45deg) scaleY(0);
+ transform: rotate(45deg) scaleY(0);
+ width: 3px;
+ -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms,
+ -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms;
+ -webkit-transform-origin: center;
+ transform-origin: center;
+}
+
+.custom-theme .el-checkbox__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ width: 0;
+ height: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox__label {
+ display: inline-block;
+ padding-left: 10px;
+ line-height: 19px;
+ font-size: 14px;
+}
+
+.custom-theme .el-checkbox+.el-checkbox {
+ margin-left: 30px;
+}
+
+.custom-theme .el-checkbox-button {
+ position: relative;
+ display: inline-block;
+}
+
+.custom-theme .el-checkbox-button__inner {
+ display: inline-block;
+ line-height: 1;
+ font-weight: 500;
+ white-space: nowrap;
+ vertical-align: middle;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #d8dce5;
+ border-left: 0;
+ color: #5a5e66;
+ -webkit-appearance: none;
+ text-align: center;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ position: relative;
+ -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ padding: 12px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button__inner.is-round {
+ padding: 12px 20px;
+}
+
+.custom-theme .el-checkbox-button__inner:hover {
+ color: #262729;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-'] {
+ line-height: 0.9;
+}
+
+.custom-theme .el-checkbox-button__inner [class*='el-icon-']+span {
+ margin-left: 5px;
+}
+
+.custom-theme .el-checkbox-button__original {
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ margin: 0;
+ left: -999px;
+}
+
+.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner {
+ color: #fff;
+ background-color: #262729;
+ border-color: #262729;
+ -webkit-box-shadow: -1px 0 0 0 #7d7d7f;
+ box-shadow: -1px 0 0 0 #7d7d7f;
+}
+
+.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner {
+ color: #b4bccc;
+ cursor: not-allowed;
+ background-image: none;
+ background-color: #fff;
+ border-color: #e6ebf5;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner {
+ border-left: 1px solid #d8dce5;
+ border-radius: 4px 0 0 4px;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner {
+ border-color: #262729;
+}
+
+.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner {
+ border-radius: 0 4px 4px 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner {
+ padding: 10px 20px;
+ font-size: 14px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round {
+ padding: 10px 20px;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner {
+ padding: 9px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round {
+ padding: 9px 15px;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner {
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 0;
+}
+
+.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round {
+ padding: 7px 15px;
+}
+
+.custom-theme .el-checkbox-group {
+ font-size: 0;
+}
+
+.custom-theme .el-transfer {
+ font-size: 14px;
+}
+
+.custom-theme .el-transfer__buttons {
+ display: inline-block;
+ vertical-align: middle;
+ padding: 0 30px;
+}
+
+.custom-theme .el-transfer__button {
+ display: block;
+ margin: 0 auto;
+ padding: 10px;
+ border-radius: 50%;
+ color: #fff;
+ background-color: #262729;
+ font-size: 0;
+}
+
+.custom-theme .el-transfer__button.is-with-texts {
+ border-radius: 4px;
+}
+
+.custom-theme .el-transfer__button.is-disabled {
+ border: 1px solid #d8dce5;
+ background-color: #f5f7fa;
+ color: #b4bccc;
+}
+
+.custom-theme .el-transfer__button.is-disabled:hover {
+ border: 1px solid #d8dce5;
+ background-color: #f5f7fa;
+ color: #b4bccc;
+}
+
+.custom-theme .el-transfer__button:first-child {
+ margin-bottom: 10px;
+}
+
+.custom-theme .el-transfer__button:nth-child(2) {
+ margin: 0;
+}
+
+.custom-theme .el-transfer__button i,
+.custom-theme .el-transfer__button span {
+ font-size: 14px;
+}
+
+.custom-theme .el-transfer__button [class*='el-icon-']+span {
+ margin-left: 0;
+}
+
+.custom-theme .el-transfer-panel {
+ border: 1px solid #e6ebf5;
+ border-radius: 4px;
+ overflow: hidden;
+ background: #fff;
+ display: inline-block;
+ vertical-align: middle;
+ width: 200px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.custom-theme .el-transfer-panel__body {
+ height: 246px;
+}
+
+.custom-theme .el-transfer-panel__body.is-with-footer {
+ padding-bottom: 40px;
+}
+
+.custom-theme .el-transfer-panel__list {
+ margin: 0;
+ padding: 6px 0;
+ list-style: none;
+ height: 246px;
+ overflow: auto;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-transfer-panel__list.is-filterable {
+ height: 194px;
+ padding-top: 0;
+}
+
+.custom-theme .el-transfer-panel__item {
+ height: 30px;
+ line-height: 30px;
+ padding-left: 15px;
+ display: block;
+}
+
+.custom-theme .el-transfer-panel__item+.el-transfer-panel__item {
+ margin-left: 0;
+}
+
+.custom-theme .el-transfer-panel__item.el-checkbox {
+ color: #5a5e66;
+}
+
+.custom-theme .el-transfer-panel__item:hover {
+ color: #262729;
+}
+
+.custom-theme .el-transfer-panel__item.el-checkbox .el-checkbox__label {
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ display: block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding-left: 24px;
+ line-height: 30px;
+}
+
+.custom-theme .el-transfer-panel__item .el-checkbox__input {
+ position: absolute;
+ top: 8px;
+}
+
+.custom-theme .el-transfer-panel__filter {
+ text-align: center;
+ margin: 15px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: block;
+ width: auto;
+}
+
+.custom-theme .el-transfer-panel__filter .el-input__inner {
+ height: 32px;
+ width: 100%;
+ font-size: 12px;
+ display: inline-block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 16px;
+ padding-right: 10px;
+ padding-left: 30px;
+}
+
+.custom-theme .el-transfer-panel__filter .el-input__icon {
+ margin-left: 5px;
+}
+
+.custom-theme .el-transfer-panel__filter .el-icon-circle-close {
+ cursor: pointer;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__header {
+ height: 40px;
+ line-height: 40px;
+ background: #f5f7fa;
+ margin: 0;
+ padding-left: 15px;
+ border-bottom: 1px solid #e6ebf5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #000;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox {
+ display: block;
+ line-height: 40px;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label {
+ font-size: 16px;
+ color: #2d2f33;
+ font-weight: 400;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span {
+ position: absolute;
+ right: 15px;
+ color: #878d99;
+ font-size: 12px;
+ font-weight: 400;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__footer {
+ height: 40px;
+ background: #fff;
+ margin: 0;
+ padding: 0;
+ border-top: 1px solid #e6ebf5;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ z-index: 1;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__footer::after {
+ display: inline-block;
+ content: '';
+ height: 100%;
+ vertical-align: middle;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__footer .el-checkbox {
+ padding-left: 20px;
+ color: #5a5e66;
+}
+
+.custom-theme .el-transfer-panel .el-transfer-panel__empty {
+ margin: 0;
+ height: 30px;
+ line-height: 30px;
+ padding: 6px 15px 0;
+ color: #878d99;
+}
+
+.custom-theme .el-transfer-panel .el-checkbox__label {
+ padding-left: 8px;
+}
+
+.custom-theme .el-transfer-panel .el-checkbox__inner {
+ height: 14px;
+ width: 14px;
+ border-radius: 3px;
+}
+
+.custom-theme .el-transfer-panel .el-checkbox__inner::after {
+ height: 6px;
+ width: 3px;
+ left: 4px;
+}
+
+.custom-theme .el-container {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-container.is-vertical {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+}
+
+.custom-theme .el-header {
+ padding: 0 20px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-aside {
+ overflow: auto;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.custom-theme .el-main {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ overflow: auto;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 20px;
+}
+
+.custom-theme .el-footer {
+ padding: 0 20px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
\ No newline at end of file
diff --git a/src/components/ActionButton/index.vue b/src/components/ActionButton/index.vue
new file mode 100644
index 0000000..b7629f2
--- /dev/null
+++ b/src/components/ActionButton/index.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
diff --git a/src/components/ActionTips/index.vue b/src/components/ActionTips/index.vue
new file mode 100644
index 0000000..ab974e7
--- /dev/null
+++ b/src/components/ActionTips/index.vue
@@ -0,0 +1,38 @@
+
+
+ {content}
+
+
+
+
+
+
diff --git a/src/components/AdminInfoDialog/index.vue b/src/components/AdminInfoDialog/index.vue
new file mode 100644
index 0000000..316f925
--- /dev/null
+++ b/src/components/AdminInfoDialog/index.vue
@@ -0,0 +1,342 @@
+
+
+
+
+
+
+
+
+
+
+ 点击编辑
+
+
+
+
+ {{ adminInfo.phone | maskPhone }}
+
+
+
+
+
+
+
+
+ 复制
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 重置
+
+
+
+
+
+
+
diff --git a/src/components/BackToTop/index.vue b/src/components/BackToTop/index.vue
new file mode 100644
index 0000000..ff2a1c1
--- /dev/null
+++ b/src/components/BackToTop/index.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue
new file mode 100644
index 0000000..9a80afd
--- /dev/null
+++ b/src/components/Breadcrumb/index.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+ {{ generateTitle(item.meta.title) }}
+
+ {{
+ generateTitle(item.meta.title)
+ }}
+
+
+
+
+
+
+
+
diff --git a/src/components/Charts/Keyboard.vue b/src/components/Charts/Keyboard.vue
new file mode 100644
index 0000000..0b258f3
--- /dev/null
+++ b/src/components/Charts/Keyboard.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
diff --git a/src/components/Charts/LineMarker.vue b/src/components/Charts/LineMarker.vue
new file mode 100644
index 0000000..3dd7436
--- /dev/null
+++ b/src/components/Charts/LineMarker.vue
@@ -0,0 +1,227 @@
+
+
+
+
+
diff --git a/src/components/Charts/MixChart.vue b/src/components/Charts/MixChart.vue
new file mode 100644
index 0000000..c416542
--- /dev/null
+++ b/src/components/Charts/MixChart.vue
@@ -0,0 +1,271 @@
+
+
+
+
+
diff --git a/src/components/Charts/mixins/resize.js b/src/components/Charts/mixins/resize.js
new file mode 100644
index 0000000..b1e76e9
--- /dev/null
+++ b/src/components/Charts/mixins/resize.js
@@ -0,0 +1,56 @@
+import { debounce } from '@/utils'
+
+export default {
+ data() {
+ return {
+ $_sidebarElm: null,
+ $_resizeHandler: null
+ }
+ },
+ mounted() {
+ this.initListener()
+ },
+ activated() {
+ if (!this.$_resizeHandler) {
+ // avoid duplication init
+ this.initListener()
+ }
+
+ // when keep-alive chart activated, auto resize
+ this.resize()
+ },
+ beforeDestroy() {
+ this.destroyListener()
+ },
+ deactivated() {
+ this.destroyListener()
+ },
+ methods: {
+ // use $_ for mixins properties
+ // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
+ $_sidebarResizeHandler(e) {
+ if (e.propertyName === 'width') {
+ this.$_resizeHandler()
+ }
+ },
+ initListener() {
+ this.$_resizeHandler = debounce(() => {
+ this.resize()
+ }, 100)
+ window.addEventListener('resize', this.$_resizeHandler)
+
+ this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
+ this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ destroyListener() {
+ window.removeEventListener('resize', this.$_resizeHandler)
+ this.$_resizeHandler = null
+
+ this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ resize() {
+ const { chart } = this
+ chart && chart.resize()
+ }
+ }
+}
diff --git a/src/components/Common/CountDownBtn.vue b/src/components/Common/CountDownBtn.vue
new file mode 100644
index 0000000..91a6304
--- /dev/null
+++ b/src/components/Common/CountDownBtn.vue
@@ -0,0 +1,69 @@
+
+
+ {{ btnText }}
+
+
+
+
+
+
diff --git a/src/components/Common/CustomFieldForm.vue b/src/components/Common/CustomFieldForm.vue
new file mode 100644
index 0000000..493bed0
--- /dev/null
+++ b/src/components/Common/CustomFieldForm.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ {{ i.label }}
+
+
+
+
+
+ 保存
+
+
+ 重置
+
+
+
+
+
+
+
+
diff --git a/src/components/Common/CustomToolTip.vue b/src/components/Common/CustomToolTip.vue
new file mode 100644
index 0000000..3483bff
--- /dev/null
+++ b/src/components/Common/CustomToolTip.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Common/UserPicker.vue b/src/components/Common/UserPicker.vue
new file mode 100644
index 0000000..708475f
--- /dev/null
+++ b/src/components/Common/UserPicker.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ConfirmLayer/index.js b/src/components/ConfirmLayer/index.js
new file mode 100644
index 0000000..38e3830
--- /dev/null
+++ b/src/components/ConfirmLayer/index.js
@@ -0,0 +1,31 @@
+import Vue from 'vue'
+import ConfirmLayer from './index.vue'
+
+let $vm = null
+const ConfirmLayerPlugin = Vue.extend(ConfirmLayer)
+
+const callback = action => {
+ if (action === 'confirm') {
+ $vm.reslove(action)
+ } else {
+ $vm.reject(action)
+ }
+ $vm = null
+}
+
+const confirm = (content, title, options) =>
+ new Promise((reslove, reject) => {
+ const propsData = { title, content, ...options }
+ $vm = new ConfirmLayerPlugin({ propsData }).$mount()
+ $vm.reject = reject
+ $vm.reslove = reslove
+ $vm.callback = callback
+ $vm.visible = true
+ document.body.appendChild($vm.$el)
+ })
+
+export default {
+ install(Vue) {
+ Vue.prototype.$confirm = confirm
+ }
+}
diff --git a/src/components/ConfirmLayer/index.vue b/src/components/ConfirmLayer/index.vue
new file mode 100644
index 0000000..fad3eb8
--- /dev/null
+++ b/src/components/ConfirmLayer/index.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ confirmButtonText
+ }}
+ {{
+ cancelButtonText
+ }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/CustomButton/index.vue b/src/components/CustomButton/index.vue
new file mode 100644
index 0000000..7a737c2
--- /dev/null
+++ b/src/components/CustomButton/index.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/CustomChoiceDatePicker/index.vue b/src/components/CustomChoiceDatePicker/index.vue
new file mode 100644
index 0000000..e3d9bca
--- /dev/null
+++ b/src/components/CustomChoiceDatePicker/index.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/CustomEmoji/biaoqing.js b/src/components/CustomEmoji/biaoqing.js
new file mode 100644
index 0000000..7778e08
--- /dev/null
+++ b/src/components/CustomEmoji/biaoqing.js
@@ -0,0 +1,2307 @@
+var biaoqingArr = [
+ {
+ name: '表情系列',
+ iconArr: [
+ {
+ className: 'bg-1f604',
+ icon: '😄'
+ },
+ {
+ className: 'bg-1f603',
+ icon: '😃'
+ },
+ {
+ className: 'bg-1f600',
+ icon: '😀'
+ },
+ {
+ className: 'bg-1f60a',
+ icon: '😊'
+ },
+ {
+ className: 'bg-f263a',
+ icon: '☺'
+ },
+ {
+ className: 'bg-1f609',
+ icon: '😉'
+ },
+ {
+ className: 'bg-1f60d',
+ icon: '😍'
+ },
+ {
+ className: 'bg-1f618',
+ icon: '😘'
+ },
+ {
+ className: 'bg-1f61a',
+ icon: '😚'
+ },
+ {
+ className: 'bg-1f617',
+ icon: '😗'
+ },
+ {
+ className: 'bg-1f619',
+ icon: '😙'
+ },
+ {
+ className: 'bg-1f61c',
+ icon: '😜'
+ },
+ {
+ className: 'bg-1f61d',
+ icon: '😝'
+ },
+ {
+ className: 'bg-1f61b',
+ icon: '😛'
+ },
+ {
+ className: 'bg-1f633',
+ icon: '😳'
+ },
+ {
+ className: 'bg-1f601',
+ icon: '😁'
+ },
+ {
+ className: 'bg-1f614',
+ icon: '😔'
+ },
+ {
+ className: 'bg-1f60c',
+ icon: '😌'
+ },
+ {
+ className: 'bg-1f612',
+ icon: '😒'
+ },
+ {
+ className: 'bg-1f61e',
+ icon: '😞'
+ },
+ {
+ className: 'bg-1f623',
+ icon: '😣'
+ },
+ {
+ className: 'bg-1f622',
+ icon: '😢'
+ },
+ {
+ className: 'bg-1f602',
+ icon: '😂'
+ },
+ {
+ className: 'bg-1f62d',
+ icon: '😭'
+ },
+ {
+ className: 'bg-1f62a',
+ icon: '😪'
+ },
+ {
+ className: 'bg-1f625',
+ icon: '😥'
+ },
+ {
+ className: 'bg-1f630',
+ icon: '😰'
+ },
+ {
+ className: 'bg-1f605',
+ icon: '😅'
+ },
+ {
+ className: 'bg-1f613',
+ icon: '😓'
+ },
+ {
+ className: 'bg-1f629',
+ icon: '😩'
+ },
+ {
+ className: 'bg-1f62b',
+ icon: '😫'
+ },
+ {
+ className: 'bg-1f628',
+ icon: '😨'
+ },
+ {
+ className: 'bg-1f631',
+ icon: '😱'
+ },
+ {
+ className: 'bg-1f620',
+ icon: '😠'
+ },
+ {
+ className: 'bg-1f621',
+ icon: '😡'
+ },
+ {
+ className: 'bg-1f624',
+ icon: '😤'
+ },
+ {
+ className: 'bg-1f616',
+ icon: '😖'
+ },
+ {
+ className: 'bg-1f606',
+ icon: '😆'
+ },
+ {
+ className: 'bg-1f60b',
+ icon: '😋'
+ },
+ {
+ className: 'bg-1f637',
+ icon: '😷'
+ },
+ {
+ className: 'bg-1f60e',
+ icon: '😎'
+ },
+ {
+ className: 'bg-1f634',
+ icon: '😴'
+ },
+ {
+ className: 'bg-1f635',
+ icon: '😵'
+ },
+ {
+ className: 'bg-1f632',
+ icon: '😲'
+ },
+ {
+ className: 'bg-1f61f',
+ icon: '😟'
+ },
+ {
+ className: 'bg-1f626',
+ icon: '😦'
+ },
+ {
+ className: 'bg-1f627',
+ icon: '😧'
+ },
+ {
+ className: 'bg-1f608',
+ icon: '😈'
+ },
+ {
+ className: 'bg-1f47f',
+ icon: '👿'
+ },
+ {
+ className: 'bg-1f62e',
+ icon: '😮'
+ },
+ {
+ className: 'bg-1f62c',
+ icon: '😬'
+ },
+ {
+ className: 'bg-1f610',
+ icon: '😐'
+ },
+ {
+ className: 'bg-1f615',
+ icon: '😕'
+ },
+ {
+ className: 'bg-1f62f',
+ icon: '😯'
+ },
+ {
+ className: 'bg-1f636',
+ icon: '😶'
+ },
+ {
+ className: 'bg-1f607',
+ icon: '😇'
+ },
+ {
+ className: 'bg-1f60f',
+ icon: '😏'
+ },
+ {
+ className: 'bg-1f611',
+ icon: '😑'
+ },
+ {
+ className: 'bg-1f63a',
+ icon: '😺'
+ },
+ {
+ className: 'bg-1f638',
+ icon: '😸'
+ },
+ {
+ className: 'bg-1f63b',
+ icon: '😻'
+ },
+ {
+ className: 'bg-1f63d',
+ icon: '😽'
+ },
+ {
+ className: 'bg-1f63c',
+ icon: '😼'
+ },
+
+ {
+ className: 'bg-1f640',
+ icon: '🙀'
+ },
+ {
+ className: 'bg-1f63f',
+ icon: '😿'
+ },
+ {
+ className: 'bg-1f639',
+ icon: '😹'
+ },
+ {
+ className: 'bg-1f63e',
+ icon: '😾'
+ },
+ {
+ className: 'bg-1f479',
+ icon: '👹'
+ },
+ {
+ className: 'bg-1f47a',
+ icon: '👺'
+ }
+ ]
+ },
+ {
+ name: '动物系列',
+ iconArr: [
+ {
+ className: 'bg-1f436',
+ icon: '🐶'
+ },
+ {
+ className: 'bg-1f43a',
+ icon: '🐺'
+ },
+ {
+ className: 'bg-1f42d',
+ icon: '🐱'
+ },
+ {
+ className: 'bg-1f42d',
+ icon: '🐭'
+ },
+ {
+ className: 'bg-1f439',
+ icon: '🐹'
+ },
+ {
+ className: 'bg-1f430',
+ icon: '🐰'
+ }, {
+ className: 'bg-1f438',
+ icon: '🐸'
+ },
+ {
+ className: 'bg-1f42f',
+ icon: '🐨'
+ },
+ {
+ className: 'bg-1f43b',
+ icon: '🐻'
+ },
+ {
+ className: 'bg-1f437',
+ icon: '🐷'
+ },
+ {
+ className: 'bg-1f43d',
+ icon: '🐽'
+ },
+ {
+ className: 'bg-1f42e',
+ icon: '🐮'
+ },
+ {
+ className: 'bg-1f417',
+ icon: '🐗'
+ },
+ {
+ className: 'bg-1f435',
+ icon: '🐵'
+ },
+ {
+ className: 'bg-1f412',
+ icon: '🐒'
+ },
+ {
+ className: 'bg-1f434',
+ icon: '🐴'
+ },
+ {
+ className: 'bg-1f411',
+ icon: '🐑'
+ },
+ {
+ className: 'bg-1f418',
+ icon: '🐘'
+ },
+ {
+ className: 'bg-1f43c',
+ icon: '🐼'
+ },
+ {
+ className: 'bg-1f427',
+ icon: '🐧'
+ },
+ {
+ className: 'bg-1f426',
+ icon: '🐦'
+ },
+ {
+ className: 'bg-1f424',
+ icon: '🐤'
+ },
+ {
+ className: 'bg-1f425',
+ icon: '🐥'
+ },
+ {
+ className: 'bg-1f423',
+ icon: '🐣'
+ },
+ {
+ className: 'bg-1f414',
+ icon: '🐔'
+ },
+ {
+ className: 'bg-1f40d',
+ icon: '🐍'
+ },
+ {
+ className: 'bg-1f422',
+ icon: '🐢'
+ },
+ {
+ className: 'bg-1f41b',
+ icon: '🐛'
+ },
+ {
+ className: 'bg-1f41d',
+ icon: '🐝'
+ },
+ {
+ className: 'bg-1f41c',
+ icon: '🐜'
+ },
+ {
+ className: 'bg-1f41e',
+ icon: '🐞'
+ },
+ {
+ className: 'bg-1f40c',
+ icon: '🐌'
+ },
+ {
+ className: 'bg-1f419',
+ icon: '🐙'
+ },
+ {
+ className: 'bg-1f420',
+ icon: '🐠'
+ },
+ {
+ className: 'bg-1f41f',
+ icon: '🐟'
+ },
+ {
+ className: 'bg-1f42c',
+ icon: '🐬'
+ },
+ {
+ className: 'bg-1f433',
+ icon: '🐳'
+ },
+ {
+ className: 'bg-1f40b',
+ icon: '🐋'
+ },
+ {
+ className: 'bg-1f404',
+ icon: '🐄'
+ },
+ {
+ className: 'bg-1f40f',
+ icon: '🐏'
+ },
+ {
+ className: 'bg-1f400',
+ icon: '🐀'
+ },
+ {
+ className: 'bg-1f403',
+ icon: '🐃'
+ },
+ {
+ className: 'bg-1f405',
+ icon: '🐅'
+ },
+ {
+ className: 'bg-1f407',
+ icon: '🐇'
+ },
+ {
+ className: 'bg-1f409',
+ icon: '🐉'
+ },
+ {
+ className: 'bg-1f40e',
+ icon: '🐎'
+ },
+ {
+ className: 'bg-1f410',
+ icon: '🐐'
+ },
+ {
+ className: 'bg-1f413',
+ icon: '🐓'
+ },
+ {
+ className: 'bg-1f415',
+ icon: '🐕'
+ },
+ {
+ className: 'bg-1f416',
+ icon: '🐖'
+ },
+
+ {
+ className: 'bg-1f401',
+ icon: '🐁'
+ },
+ {
+ className: 'bg-1f402',
+ icon: '🐂'
+ },
+ {
+ className: 'bg-1f432',
+ icon: '🐲'
+ },
+ {
+ className: 'bg-1f421',
+ icon: '🐡'
+ },
+ {
+ className: 'bg-1f40a',
+ icon: '🐊'
+ },
+ {
+ className: 'bg-1f42b',
+ icon: '🐫'
+ },
+ {
+ className: 'bg-1f42a',
+ icon: '🐪'
+ },
+
+ {
+ className: 'bg-1f406',
+ icon: '🐆'
+ },
+ {
+ className: 'bg-1f408',
+ icon: '🐈'
+ },
+ {
+ className: 'bg-1f429',
+ icon: '🐩'
+ },
+ {
+ className: 'bg-1f43e',
+ icon: '🐾'
+ },
+ {
+ className: 'bg-1f648',
+ icon: '🙈'
+ },
+ {
+ className: 'bg-1f649',
+ icon: '🙉'
+ },
+
+ {
+ className: 'bg-1f480',
+ icon: '💀'
+ },
+ {
+ className: 'bg-1f47d',
+ icon: '👽'
+ },
+ {
+ className: 'bg-1f63a',
+ icon: '😺'
+ },
+ {
+ className: 'bg-1f638',
+ icon: '😸'
+ },
+ {
+ className: 'bg-1f63b',
+ icon: '😻'
+ },
+ {
+ className: 'bg-1f63d',
+ icon: '😽'
+ },
+ {
+ className: 'bg-1f63c',
+ icon: '😼'
+ },
+ {
+ className: 'bg-1f640',
+ icon: '🙀'
+ },
+ {
+ className: 'bg-1f63f',
+ icon: '😿'
+ },
+ {
+ className: 'bg-1f639',
+ icon: '😹'
+ },
+
+ {
+ className: 'bg-1f63e',
+ icon: '😾'
+ }
+ ]
+ },
+ {
+ name: '食物系列',
+ iconArr: [
+ {
+ className: 'bg-f2615',
+ icon: '☕'
+ },
+ {
+ className: 'bg-1f375',
+ icon: '🍵'
+ },
+ {
+ className: 'bg-1f376',
+ icon: '🍶'
+ },
+ {
+ className: 'bg-1f37c',
+ icon: '🍼'
+ },
+ {
+ className: 'bg-1f37a',
+ icon: '🍺'
+ },
+ {
+ className: 'bg-1f37b',
+ icon: '🍻'
+ },
+ {
+ className: 'bg-1f378',
+ icon: '🍸'
+ },
+ {
+ className: 'bg-1f379',
+ icon: '🍹'
+ },
+ {
+ className: 'bg-1f377',
+ icon: '🍷'
+ },
+
+ {
+ className: 'bg-1f374',
+ icon: '🍴'
+ },
+ {
+ className: 'bg-1f355',
+ icon: '🍕'
+ },
+ {
+ className: 'bg-1f354',
+ icon: '🍔'
+ },
+
+ {
+ className: 'bg-1f35f',
+ icon: '🍟'
+ },
+ {
+ className: 'bg-1f357',
+ icon: '🍗'
+ },
+
+ {
+ className: 'bg-1f356',
+ icon: '🍖'
+ },
+ {
+ className: 'bg-1f35d',
+ icon: '🍝'
+ },
+
+ {
+ className: 'bg-1f35b',
+ icon: '🍛'
+ },
+ {
+ className: 'bg-1f364',
+ icon: '🍤'
+ },
+ {
+ className: 'bg-1f363',
+ icon: '🍣'
+ },
+
+ {
+ className: 'bg-1f365',
+ icon: '🍥'
+ },
+ {
+ className: 'bg-1f359',
+ icon: '🍙'
+ },
+
+ {
+ className: 'bg-1f358',
+ icon: '🍘'
+ },
+ {
+ className: 'bg-1f35a',
+ icon: '🍚'
+ },
+ {
+ className: 'bg-1f35c',
+ icon: '🍜'
+ },
+
+ {
+ className: 'bg-1f372',
+ icon: '🍲'
+ },
+ {
+ className: 'bg-1f362',
+ icon: '🍢'
+ },
+ {
+ className: 'bg-1f361',
+ icon: '🍡'
+ },
+ {
+ className: 'bg-1f373',
+ icon: '🍳'
+ },
+
+ {
+ className: 'bg-1f35e',
+ icon: '🍞'
+ },
+ {
+ className: 'bg-1f369',
+ icon: '🍩'
+ },
+
+ {
+ className: 'bg-1f36e',
+ icon: '🍮'
+ },
+ {
+ className: 'bg-1f366',
+ icon: '🍦'
+ },
+ {
+ className: 'bg-1f368',
+ icon: '🍨'
+ },
+
+ {
+ className: 'bg-1f367',
+ icon: '🍧'
+ },
+ {
+ className: 'bg-1f382',
+ icon: '🎂'
+ },
+ {
+ className: 'bg-1f370',
+ icon: '🍰'
+ },
+
+ {
+ className: 'bg-1f36a',
+ icon: '🍪'
+ },
+ {
+ className: 'bg-1f36b',
+ icon: '🍫'
+ },
+ {
+ className: 'bg-1f36c',
+ icon: '🍬'
+ },
+
+ {
+ className: 'bg-1f36d',
+ icon: '🍭'
+ },
+ {
+ className: 'bg-1f36f',
+ icon: '🍯'
+ },
+ {
+ className: 'bg-1f34e',
+ icon: '🍎'
+ },
+ {
+ className: 'bg-1f34f',
+ icon: '🍏'
+ },
+ {
+ className: 'bg-1f34a',
+ icon: '🍊'
+ },
+ {
+ className: 'bg-1f34b',
+ icon: '🍋'
+ },
+
+ {
+ className: 'bg-1f352',
+ icon: '🍒'
+ },
+ {
+ className: 'bg-1f347',
+ icon: '🍇'
+ },
+
+ {
+ className: 'bg-1f349',
+ icon: '🍉'
+ },
+ {
+ className: 'bg-1f353',
+ icon: '🍓'
+ },
+ {
+ className: 'bg-1f351',
+ icon: '🍑'
+ },
+ {
+ className: 'bg-1f348',
+ icon: '🍈'
+ },
+
+ {
+ className: 'bg-1f34c',
+ icon: '🍌'
+ },
+ {
+ className: 'bg-1f350',
+ icon: '🍐'
+ },
+ {
+ className: 'bg-1f34d',
+ icon: '🍍'
+ },
+ {
+ className: 'bg-1f360',
+ icon: '🍠'
+ },
+ {
+ className: 'bg-1f346',
+ icon: '🍆'
+ },
+ {
+ className: 'bg-1f345',
+ icon: '🍅'
+ },
+
+ {
+ className: 'bg-1f33d',
+ icon: '🌽'
+ }
+
+ ]
+ },
+ {
+ name: '植物系列',
+ iconArr: [
+ {
+ className: 'bg-1f490',
+ icon: '💐'
+ },
+ {
+ className: 'bg-1f338',
+ icon: '🌸'
+ },
+ {
+ className: 'bg-1f337',
+ icon: '🌷'
+ },
+ {
+ className: 'bg-1f340',
+ icon: '🍀'
+ },
+ {
+ className: 'bg-1f339',
+ icon: '🌹'
+ },
+ {
+ className: 'bg-1f33b',
+ icon: '🌻'
+ },
+ {
+ className: 'bg-1f33a',
+ icon: '🌺'
+ },
+ {
+ className: 'bg-1f341',
+ icon: '🍁'
+ },
+ {
+ className: 'bg-1f343',
+ icon: '🍃'
+ },
+ {
+ className: 'bg-1f342',
+ icon: '🍂'
+ },
+ {
+ className: 'bg-1f33f',
+ icon: '🌿'
+ },
+ {
+ className: 'bg-1f33e',
+ icon: '🌾'
+ },
+
+ {
+ className: 'bg-1f344',
+ icon: '🍄'
+ },
+ {
+ className: 'bg-1f335',
+ icon: '🌵'
+ },
+ {
+ className: 'bg-1f334',
+ icon: '🌴'
+ },
+
+ {
+ className: 'bg-1f332',
+ icon: '🌲'
+ },
+ {
+ className: 'bg-1f333',
+ icon: '🌳'
+ },
+
+ {
+ className: 'bg-1f330',
+ icon: '🌰'
+ },
+ {
+ className: 'bg-1f331',
+ icon: '🌱'
+ },
+ {
+ className: 'bg-1f33c',
+ icon: '🌼'
+ },
+ {
+ className: 'bg-1f310',
+ icon: '🌐'
+ },
+
+ {
+ className: 'bg-1f31e',
+ icon: '🌞'
+ },
+ {
+ className: 'bg-1f31d',
+ icon: '🌝'
+ },
+ {
+ className: 'bg-1f31a',
+ icon: '🌚'
+ },
+
+ {
+ className: 'bg-1f311',
+ icon: '🌑'
+ },
+ {
+ className: 'bg-1f312',
+ icon: '🌒'
+ },
+ {
+ className: 'bg-1f313',
+ icon: '🌓'
+ },
+
+ {
+ className: 'bg-1f314',
+ icon: '🌔'
+ },
+ {
+ className: 'bg-1f315',
+ icon: '🌕'
+ },
+ {
+ className: 'bg-1f316',
+ icon: '🌖'
+ },
+ {
+ className: 'bg-1f317',
+ icon: '🌗'
+ },
+ {
+ className: 'bg-1f31c',
+ icon: '🌜'
+ },
+
+ {
+ className: 'bg-1f31b',
+ icon: '🌛'
+ },
+ {
+ className: 'bg-1f319',
+ icon: '🌙'
+ },
+ {
+ className: 'bg-1f30d',
+ icon: '🌍'
+ },
+ {
+ className: 'bg-1f30e',
+ icon: '🌎'
+ },
+ {
+ className: 'bg-1f30f',
+ icon: '🌏'
+ },
+
+ {
+ className: 'bg-1f30b',
+ icon: '🌋'
+ },
+ {
+ className: 'bg-1f30c',
+ icon: '🌌'
+ },
+ {
+ className: 'bg-1f320',
+ icon: '🌠'
+ },
+ {
+ className: 'bg-f2b50',
+ icon: '⭐'
+ },
+
+ {
+ className: 'bg-f2600',
+ icon: '☀'
+ },
+
+ {
+ className: 'bg-f26c5',
+ icon: '⛅'
+ },
+ {
+ className: 'bg-f2601',
+ icon: '☁'
+ },
+ {
+ className: 'bg-f26a1',
+ icon: '⚡'
+ },
+
+ {
+ className: 'bg-f2614',
+ icon: '☔'
+ },
+ {
+ className: 'bg-f2744',
+ icon: '❄'
+ },
+ {
+ className: 'bg-f26c4',
+ icon: '⛄'
+ },
+
+ {
+ className: 'bg-1f300',
+ icon: '🌀'
+ },
+ {
+ className: 'bg-1f301',
+ icon: '🌁'
+ },
+ {
+ className: 'bg-1f308',
+ icon: '🌈'
+ },
+ {
+ className: 'bg-1f30a',
+ icon: '🌊'
+ },
+
+ {
+ className: 'bg-1f525',
+ icon: '🔥'
+ },
+ {
+ className: 'bg-f2728',
+ icon: '✨'
+ },
+ {
+ className: 'bg-1f31f',
+ icon: '🌟'
+ },
+ {
+ className: 'bg-1f4ab',
+ icon: '💫'
+ },
+ {
+ className: 'bg-1f4a5',
+ icon: '💥'
+ },
+ {
+ className: 'bg-1f4a2',
+ icon: '💢'
+ },
+ {
+ className: 'bg-1f4a6',
+ icon: '💦'
+ },
+ {
+ className: 'bg-1f4a7',
+ icon: '💧'
+ },
+ {
+ className: 'bg-1f318',
+ icon: '🌘'
+ },
+ {
+ className: 'bg-1f4a4',
+ icon: '💤'
+ },
+ {
+ className: 'bg-1f4a8',
+ icon: '💨'
+ }
+ ]
+ },
+ {
+ name: '生肖系列',
+ iconArr: [
+ {
+ className: 'bg-1f401',
+ icon: '🐁'
+ },
+ {
+ className: 'bg-1f402',
+ icon: '🐂'
+ },
+ {
+ className: 'bg-1f405',
+ icon: '🐅'
+ },
+ {
+ className: 'bg-1f407',
+ icon: '🐇'
+ },
+ {
+ className: 'bg-1f409',
+ icon: '🐉'
+ },
+ {
+ className: 'bg-1f40d',
+ icon: '🐍'
+ },
+ {
+ className: 'bg-1f40e',
+ icon: '🐎'
+ },
+ {
+ className: 'bg-1f410',
+ icon: '🐐'
+ },
+ {
+ className: 'bg-1f412',
+ icon: '🐒'
+ },
+ {
+ className: 'bg-1f413',
+ icon: '🐓'
+ },
+ {
+ className: 'bg-1f415',
+ icon: '🐕'
+ },
+ {
+ className: 'bg-1f416',
+ icon: '🐖'
+ },
+ {
+ className: 'bg-f2648',
+ icon: '♈'
+ },
+ {
+ className: 'bg-f2649',
+ icon: '♉'
+ },
+ {
+ className: 'bg-f264a',
+ icon: '♊'
+ },
+ {
+ className: 'bg-f264b',
+ icon: '♋'
+ },
+ {
+ className: 'bg-f264c',
+ icon: '♌'
+ },
+ {
+ className: 'bg-f264d',
+ icon: '♍'
+ },
+ {
+ className: 'bg-f264e',
+ icon: '♎'
+ },
+ {
+ className: 'bg-f264f',
+ icon: '♏'
+ },
+ {
+ className: 'bg-f2650',
+ icon: '♐'
+ },
+ {
+ className: 'bg-f2651',
+ icon: '♑'
+ },
+ {
+ className: 'bg-f2652',
+ icon: '♒'
+ },
+ {
+ className: 'bg-f2653',
+ icon: '♓'
+ }
+
+ ]
+ },
+ {
+ name: '运动系列',
+ iconArr: [
+ {
+ className: 'bg-1f4f0',
+ icon: '📰'
+ },
+ {
+ className: 'bg-1f3a8',
+ icon: '🎨'
+ },
+ {
+ className: 'bg-1f3ac',
+ icon: '🎬'
+ }, {
+ className: 'bg-1f3a4',
+ icon: '🎤'
+ },
+ {
+ className: 'bg-1f3a7',
+ icon: '🎧'
+ }, {
+ className: 'bg-1f3bc',
+ icon: '🎼'
+ },
+ {
+ className: 'bg-1f3b5',
+ icon: '🎵'
+ }, {
+ className: 'bg-1f3b6',
+ icon: '🎶'
+ },
+ {
+ className: 'bg-1f3b9',
+ icon: '🎹'
+ }, {
+ className: 'bg-1f3bb',
+ icon: '🎻'
+ },
+ {
+ className: 'bg-1f3b7',
+ icon: '🎷'
+ }, {
+ className: 'bg-1f3b8',
+ icon: '🎸'
+ },
+ {
+ className: 'bg-1f47e',
+ icon: '👾'
+ }, {
+ className: 'bg-1f3ae',
+ icon: '🎮'
+ },
+ {
+ className: 'bg-1f0cf',
+ icon: '🃏'
+ }, {
+ className: 'bg-1f3b4',
+ icon: '🎴'
+ },
+ {
+ className: 'bg-1f004',
+ icon: '🀄'
+ }, {
+ className: 'bg-1f3b2',
+ icon: '🎲'
+ },
+ {
+ className: 'bg-1f3af',
+ icon: '🎯'
+ }, {
+ className: 'bg-1f3c8',
+ icon: '🏈'
+ },
+ {
+ className: 'bg-1f3c0',
+ icon: '🏀'
+ }, {
+ className: 'bg-f26bd',
+ icon: '⚽'
+ },
+ {
+ className: 'bg-f26be',
+ icon: '⚾'
+ }, {
+ className: 'bg-1f3be',
+ icon: '🎾'
+ },
+ {
+ className: 'bg-1f3b1',
+ icon: '🎱'
+ }, {
+ className: 'bg-1f3c9',
+ icon: '🏉'
+ },
+ {
+ className: 'bg-1f3b3',
+ icon: '🎳'
+ }, {
+ className: 'bg-f26f3',
+ icon: '⛳'
+ },
+ {
+ className: 'bg-1f6b5',
+ icon: '🚵'
+ }, {
+ className: 'bg-1f6b4',
+ icon: '🚴'
+ },
+ {
+ className: 'bg-1f3c1',
+ icon: '🏁'
+ }, {
+ className: 'bg-1f3c7',
+ icon: '🏇'
+ },
+ {
+ className: 'bg-1f3c6',
+ icon: '🏆'
+ }, {
+ className: 'bg-1f3bf',
+ icon: '🎿'
+ },
+ {
+ className: 'bg-1f3c2',
+ icon: '🏂'
+ }, {
+ className: 'bg-1f3ca',
+ icon: '🏊'
+ },
+ {
+ className: 'bg-1f3c4',
+ icon: '🏄'
+ }, {
+ className: 'bg-1f3a3',
+ icon: '🎣'
+ }
+
+ ]
+ }, {
+ name: '人物系列',
+ iconArr: [
+ {
+ className: 'bg-1f442',
+ icon: '👂'
+ }, {
+ className: 'bg-1f440',
+ icon: '👀'
+ }, {
+ className: 'bg-1f443',
+ icon: '👃'
+ }, {
+ className: 'bg-1f445',
+ icon: '👅'
+ }, {
+ className: 'bg-1f444',
+ icon: '👄'
+ }, {
+ className: 'bg-1f44d',
+ icon: '👍'
+ }, {
+ className: 'bg-1f44e',
+ icon: '👎'
+ }, {
+ className: 'bg-1f44c',
+ icon: '👌'
+ },
+ {
+ className: 'bg-1f44a',
+ icon: '👊'
+ }, {
+ className: 'bg-f270a',
+ icon: '✊'
+ }, {
+ className: 'bg-f270c',
+ icon: '✌'
+ }, {
+ className: 'bg-1f44b',
+ icon: '👋'
+ }, {
+ className: 'bg-f270b',
+ icon: '✋'
+ }, {
+ className: 'bg-1f450',
+ icon: '👐'
+ }, {
+ className: 'bg-1f446',
+ icon: '👆'
+ }, {
+ className: 'bg-1f447',
+ icon: '👇'
+ },
+ {
+ className: 'bg-1f449',
+ icon: '👉'
+ }, {
+ className: 'bg-1f448',
+ icon: '👈'
+ }, {
+ className: 'bg-1f64c',
+ icon: '🙌'
+ }, {
+ className: 'bg-1f64f',
+ icon: '🙏'
+ }, {
+ className: 'bg-f261d',
+ icon: '☝'
+ }, {
+ className: 'bg-1f44f',
+ icon: '👏'
+ }, {
+ className: 'bg-1f6b6',
+ icon: '🚶'
+ }, {
+ className: 'bg-1f4aa',
+ icon: '💪'
+ },
+ {
+ className: 'bg-1f3c3',
+ icon: '🏃'
+ }, {
+ className: 'bg-1f483',
+ icon: '💃'
+ }, {
+ className: 'bg-1f46b',
+ icon: '👫'
+ }, {
+ className: 'bg-1f46a',
+ icon: '👪'
+ }, {
+ className: 'bg-1f46c',
+ icon: '👬'
+ }, {
+ className: 'bg-1f46d',
+ icon: '👭'
+ }, {
+ className: 'bg-1f48f',
+ icon: '💏'
+ }, {
+ className: 'bg-1f491',
+ icon: '💑'
+ },
+ {
+ className: 'bg-1f46f',
+ icon: '👯'
+ }, {
+ className: 'bg-1f645',
+ icon: '🙆'
+ }, {
+ className: 'bg-1f646',
+ icon: '🙅'
+ }, {
+ className: 'bg-1f481',
+ icon: '💁'
+ }, {
+ className: 'bg-1f64b',
+ icon: '🙋'
+ }, {
+ className: 'bg-1f487',
+ icon: '💇'
+ }, {
+ className: 'bg-1f485',
+ icon: '💅'
+ }, {
+ className: 'bg-1f470',
+ icon: '👰'
+ },
+ {
+ className: 'bg-1f64e',
+ icon: '🙎'
+ }, {
+ className: 'bg-1f64d',
+ icon: '🙍'
+ }, {
+ className: 'bg-1f647',
+ icon: '🙇'
+ }, {
+ className: 'bg-1f3a9',
+ icon: '🎩'
+ }, {
+ className: 'bg-1f451',
+ icon: '👑'
+ }, {
+ className: 'bg-1f452',
+ icon: '👒'
+ }, {
+ className: 'bg-1f45f',
+ icon: '👟'
+ }, {
+ className: 'bg-1f45e',
+ icon: '👞'
+ },
+ {
+ className: 'bg-1f461',
+ icon: '👡'
+ }, {
+ className: 'bg-1f460',
+ icon: '👠'
+ }, {
+ className: 'bg-1f462',
+ icon: '👢'
+ }, {
+ className: 'bg-1f455',
+ icon: '👕'
+ }, {
+ className: 'bg-1f454',
+ icon: '👔'
+ }, {
+ className: 'bg-1f45a',
+ icon: '👚'
+ }, {
+ className: 'bg-1f457',
+ icon: '👗'
+ }, {
+ className: 'bg-1f3bd',
+ icon: '🎽'
+ },
+ {
+ className: 'bg-1f456',
+ icon: '👖'
+ }, {
+ className: 'bg-1f458',
+ icon: '👘'
+ }, {
+ className: 'bg-1f459',
+ icon: '👙'
+ }, {
+ className: 'bg-1f4bc',
+ icon: '💼'
+ }, {
+ className: 'bg-1f45c',
+ icon: '👜'
+ }, {
+ className: 'bg-1f45d',
+ icon: '👝'
+ }, {
+ className: 'bg-1f45b',
+ icon: '👛'
+ }, {
+ className: 'bg-1f453',
+ icon: '👓'
+ },
+ {
+ className: 'bg-1f380',
+ icon: '🎀'
+ }, {
+ className: 'bg-1f302',
+ icon: '🌂'
+ }, {
+ className: 'bg-1f484',
+ icon: '💄'
+ }, {
+ className: 'bg-1f48b',
+ icon: '💋'
+ }, {
+ className: 'bg-1f463',
+ icon: '👣'
+ }, {
+ className: 'bg-1f48e',
+ icon: '💎'
+ }, {
+ className: 'bg-1f48d',
+ icon: '💍'
+ }
+
+ ]
+ },
+ {
+ name: '花样系列',
+ iconArr: [
+ {
+ className: 'bg-1f451',
+ icon: '👑'
+ }, {
+ className: 'bg-1f525',
+ icon: '🔥'
+ }, {
+ className: 'bg-2728',
+ icon: '✨'
+ }, {
+ className: 'bg-1f31f',
+ icon: '🌟'
+ }, {
+ className: 'bg-1f4ab',
+ icon: '💫'
+ },
+ {
+ className: 'bg-1f4a5',
+ icon: '💥'
+ }, {
+ className: 'bg-1f380',
+ icon: '🎀'
+ }, {
+ className: 'bg-1f302',
+ icon: '🌂'
+ }, {
+ className: 'bg-1f484',
+ icon: '💄'
+ }, {
+ className: 'bg-1f49b',
+ icon: '💛'
+ },
+ {
+ className: 'bg-1f499',
+ icon: '💙'
+ }, {
+ className: 'bg-1f49c',
+ icon: '💜'
+ }, {
+ className: 'bg-1f49a',
+ icon: '💚'
+ }, {
+ className: 'bg-f2764',
+ icon: '❤'
+ }, {
+ className: 'bg-1f494',
+ icon: '💔'
+ },
+ {
+ className: 'bg-1f497',
+ icon: '💗'
+ }, {
+ className: 'bg-1f493',
+ icon: '💓'
+ }, {
+ className: 'bg-1f495',
+ icon: '💕'
+ }, {
+ className: 'bg-1f496',
+ icon: '💖'
+ }, {
+ className: 'bg-1f49e',
+ icon: '💞'
+ },
+ {
+ className: 'bg-1f498',
+ icon: '💘'
+ }, {
+ className: 'bg-1f48c',
+ icon: '💌'
+ }, {
+ className: 'bg-1f48b',
+ icon: '💋'
+ }, {
+ className: 'bg-1f38d',
+ icon: '🎍'
+ }, {
+ className: 'bg-1f49d',
+ icon: '💝'
+ },
+ {
+ className: 'bg-1f38e',
+ icon: '🎎'
+ }, {
+ className: 'bg-1f392',
+ icon: '🎒'
+ }, {
+ className: 'bg-1f393',
+ icon: '🎓'
+ }, {
+ className: 'bg-1f38f',
+ icon: '🎏'
+ }, {
+ className: 'bg-1f386',
+ icon: '🎆'
+ },
+ {
+ className: 'bg-1f387',
+ icon: '🎇'
+ }, {
+ className: 'bg-1f390',
+ icon: '🎐'
+ }, {
+ className: 'bg-1f391',
+ icon: '🎑'
+ }, {
+ className: 'bg-1f383',
+ icon: '🎃'
+ }, {
+ className: 'bg-1f47b',
+ icon: '👻'
+ },
+ {
+ className: 'bg-1f385',
+ icon: '🎅'
+ }, {
+ className: 'bg-1f384',
+ icon: '🎄'
+ }, {
+ className: 'bg-1f381',
+ icon: '🎁'
+ }, {
+ className: 'bg-1f38b',
+ icon: '🎋'
+ }, {
+ className: 'bg-1f389',
+ icon: '🎉'
+ },
+ {
+ className: 'bg-1f38a',
+ icon: '🎊'
+ }, {
+ className: 'bg-1f388',
+ icon: '🎈'
+ }, {
+ className: 'bg-1f38c',
+ icon: '🎌'
+ }
+ ]
+ },
+ {
+ name: '文字系列',
+ iconArr: [
+ {
+ className: 'bg-1f22f',
+ icon: '🈯'
+ }, {
+ className: 'bg-1f233',
+ icon: '🈳'
+ },
+ {
+ className: 'bg-1f235',
+ icon: '🈵'
+ }, {
+ className: 'bg-1f234',
+ icon: '🈴'
+ }, {
+ className: 'bg-1f232',
+ icon: '🈲'
+ }, {
+ className: 'bg-1f250',
+ icon: '🉐'
+ },
+
+ {
+ className: 'bg-1f239',
+ icon: '🈹'
+ }, {
+ className: 'bg-1f23a',
+ icon: '🈺'
+ },
+ {
+ className: 'bg-1f236',
+ icon: '🈶'
+ }, {
+ className: 'bg-1f21a',
+ icon: '🈚'
+ }, {
+ className: 'bg-1f6be',
+ icon: '🚾'
+ }, {
+ className: 'bg-1f17f',
+ icon: '🅿'
+ },
+
+ {
+ className: 'bg-1f237',
+ icon: '🈷'
+ }, {
+ className: 'bg-1f238',
+ icon: '🈸'
+ },
+ {
+ className: 'bg-1f202',
+ icon: '🈂'
+ }, {
+ className: 'bg-f24c2',
+ icon: 'Ⓜ'
+ }, {
+ className: 'bg-1f251',
+ icon: '🉑'
+ }, {
+ className: 'bg-f3299',
+ icon: '㊙'
+ },
+
+ {
+ className: 'bg-f3297',
+ icon: '㊗'
+ }, {
+ className: 'bg-1f191',
+ icon: '🆑'
+ },
+ {
+ className: 'bg-1f198',
+ icon: '🆘'
+ }, {
+ className: 'bg-1f194',
+ icon: '🆔'
+ }, {
+ className: 'bg-1f51e',
+ icon: '🔞'
+ }, {
+ className: 'bg-1f6ab',
+ icon: '🚫'
+ },
+
+ {
+ className: 'bg-1f19a',
+ icon: '🆚'
+ }, {
+ className: 'bg-1f171',
+ icon: '🅱'
+ },
+ {
+ className: 'bg-1f170',
+ icon: '🅰'
+ }, {
+ className: 'bg-1f18e',
+ icon: '🆎'
+ }, {
+ className: 'bg-1f17e',
+ icon: '🅾'
+ }, {
+ className: 'bg-f2747',
+ icon: '❇'
+ }
+
+ ]
+ },
+ {
+ name: '标识系列',
+ iconArr: [
+ {
+ className: 'bg-1f6bb',
+ icon: '🚻'
+ }, {
+ className: 'bg-1f6b9',
+ icon: '🚹'
+ }, {
+ className: 'bg-1f6ba',
+ icon: '🚺'
+ }, {
+ className: 'bg-1f6bc',
+ icon: '🚼'
+ }, {
+ className: 'bg-1f6b0',
+ icon: '🚰'
+ }, {
+ className: 'bg-1f6ae',
+ icon: '🚮'
+ }, {
+ className: 'bg-f267f',
+ icon: '♿'
+ }, {
+ className: 'bg-1f6ad',
+ icon: '🚭'
+ }, {
+ className: 'bg-1f6c2',
+ icon: '🛂'
+ }, {
+ className: 'bg-1f6c4',
+ icon: '🛄'
+ }, {
+ className: 'bg-1f6c5',
+ icon: '🛅'
+ },
+ {
+ className: 'bg-1f6c3',
+ icon: '🛃'
+ }, {
+ className: 'bg-1f6ab',
+ icon: '🚫'
+ }, {
+ className: 'bg-1f51e',
+ icon: '🔞'
+ }, {
+ className: 'bg-1f6af',
+ icon: '🚯'
+ }, {
+ className: 'bg-1f6b1',
+ icon: '🚱'
+ }, {
+ className: 'bg-1f6b3',
+ icon: '🚳'
+ }, {
+ className: 'bg-1f6b7',
+ icon: '🚷'
+ }, {
+ className: 'bg-1f6b8',
+ icon: '🚸'
+ }, {
+ className: 'bg-f26d4',
+ icon: '⛔'
+ }, {
+ className: 'bg-f2733',
+ icon: '✳'
+ }, {
+ className: 'bg-f2747',
+ icon: '❇'
+ },
+ {
+ className: 'bg-f274e',
+ icon: '❎'
+ }, {
+ className: 'bg-f2705',
+ icon: '✅'
+ }, {
+ className: 'bg-f2734',
+ icon: '✴'
+ }, {
+ className: 'bg-1f49f',
+ icon: '💟'
+ }, {
+ className: 'bg-1f4f3',
+ icon: '📳'
+ }, {
+ className: 'bg-1f4f4',
+ icon: '📴'
+ }, {
+ className: 'bg-1f4a0',
+ icon: '💠'
+ }, {
+ className: 'bg-f27bf',
+ icon: '➿'
+ }, {
+ className: 'bg-f267b',
+ icon: '♻'
+ }, {
+ className: 'bg-f26ce',
+ icon: '⛎'
+ }, {
+ className: 'bg-1f51f',
+ icon: '🔟'
+ },
+
+ {
+ className: 'bg-f2b06',
+ icon: '⬆'
+ }, {
+ className: 'bg-f2b07',
+ icon: '⬇'
+ }, {
+ className: 'bg-f2b05',
+ icon: '⬅'
+ }, {
+ className: 'bg-f27a1',
+ icon: '➡'
+ }, {
+ className: 'bg-1f523',
+ icon: '🔣'
+ }, {
+ className: 'bg-1f522',
+ icon: '🔢'
+ }, {
+ className: 'bg-1f520',
+ icon: '🔠'
+ }, {
+ className: 'bg-1f521',
+ icon: '🔡'
+ }, {
+ className: 'bg-1f524',
+ icon: '🔤'
+ }, {
+ className: 'bg-f2197',
+ icon: '↗'
+ }, {
+ className: 'bg-f2196',
+ icon: '↖'
+ },
+ {
+ className: 'bg-f2198',
+ icon: '↘'
+ }, {
+ className: 'bg-f2199',
+ icon: '↙'
+ }, {
+ className: 'bg-f2194',
+ icon: '↔'
+ }, {
+ className: 'bg-f2195',
+ icon: '↕'
+ }, {
+ className: 'bg-1f504',
+ icon: '🔄'
+ }, {
+ className: 'bg-f25c0',
+ icon: '◀'
+ }, {
+ className: 'bg-f25b6',
+ icon: '▶'
+ }, {
+ className: 'bg-1f53c',
+ icon: '🔼'
+ }, {
+ className: 'bg-1f53d',
+ icon: '🔽'
+ }, {
+ className: 'bg-f21a9',
+ icon: '↩'
+ }, {
+ className: 'bg-f21aa',
+ icon: '↪'
+ },
+ {
+ className: 'bg-f2139',
+ icon: 'ℹ'
+ }, {
+ className: 'bg-f23ea',
+ icon: '⏪'
+ }, {
+ className: 'bg-f23eb',
+ icon: '⏫'
+ }, {
+ className: 'bg-f23ec',
+ icon: '⏬'
+ }, {
+ className: 'bg-f2935',
+ icon: '⤵'
+ }, {
+ className: 'bg-f2934',
+ icon: '⤴'
+ }, {
+ className: 'bg-1f197',
+ icon: '🆗'
+ }, {
+ className: 'bg-1f500',
+ icon: '🔀'
+ }, {
+ className: 'bg-1f501',
+ icon: '🔁'
+ }, {
+ className: 'bg-1f502',
+ icon: '🔂'
+ }, {
+ className: 'bg-1f195',
+ icon: '🆕'
+ },
+ {
+ className: 'bg-1f199',
+ icon: '🆙'
+ }, {
+ className: 'bg-1f192',
+ icon: '🆒'
+ }, {
+ className: 'bg-1f193',
+ icon: '🆓'
+ }, {
+ className: 'bg-1f196',
+ icon: '🆖'
+ }, {
+ className: 'bg-1f4f6',
+ icon: '📶'
+ }, {
+ className: 'bg-1f3a6',
+ icon: '🎦'
+ }, {
+ className: 'bg-1f201',
+ icon: '🈁'
+ }, {
+ className: 'bg-1f52f',
+ icon: '🔯'
+ }, {
+ className: 'bg-1f3e7',
+ icon: '🏧'
+ }, {
+ className: 'bg-1f4b9',
+ icon: '💹'
+ }, {
+ className: 'bg-1f4b2',
+ icon: '💲'
+ },
+ {
+ className: 'bg-1f4b1',
+ icon: '💱'
+ },
+ {
+ className: 'bg-f274c',
+ icon: '❌'
+ }, {
+ className: 'bg-f2757',
+ icon: '❗'
+ }, {
+ className: 'bg-f2753',
+ icon: '❓'
+ }, {
+ className: 'bg-f2755',
+ icon: '❕'
+ }, {
+ className: 'bg-f2754',
+ icon: '❔'
+ }, {
+ className: 'bg-f2b55',
+ icon: '⭕'
+ }, {
+ className: 'bg-1f51d',
+ icon: '🔝'
+ }, {
+ className: 'bg-1f51a',
+ icon: '🔚'
+ }, {
+ className: 'bg-1f519',
+ icon: '🔙'
+ },
+ {
+ className: 'bg-1f51b',
+ icon: '🔛'
+ }, {
+ className: 'bg-1f51c',
+ icon: '🔜'
+ }, {
+ className: 'bg-1f503',
+ icon: '🔃'
+ }, {
+ className: 'bg-1f55b',
+ icon: '🕛'
+ }, {
+ className: 'bg-1f567',
+ icon: '🕧'
+ }, {
+ className: 'bg-1f550',
+ icon: '🕐'
+ }, {
+ className: 'bg-1f55c',
+ icon: '🕜'
+ }, {
+ className: 'bg-1f551',
+ icon: '🕑'
+ }, {
+ className: 'bg-1f55d',
+ icon: '🕝'
+ }, {
+ className: 'bg-1f552',
+ icon: '🕒'
+ }, {
+ className: 'bg-1f55e',
+ icon: '🕞'
+ },
+ {
+ className: 'bg-1f553',
+ icon: '🕓'
+ }, {
+ className: 'bg-1f55f',
+ icon: '🕟'
+ }, {
+ className: 'bg-1f554',
+ icon: '🕔'
+ }, {
+ className: 'bg-1f560',
+ icon: '🕠'
+ }, {
+ className: 'bg-1f555',
+ icon: '🕕'
+ }, {
+ className: 'bg-1f556',
+ icon: '🕖'
+ }, {
+ className: 'bg-1f557',
+ icon: '🕗'
+ }, {
+ className: 'bg-1f558',
+ icon: '🕘'
+ }, {
+ className: 'bg-1f559',
+ icon: '🕙'
+ }, {
+ className: 'bg-1f55a',
+ icon: '🕚'
+ }, {
+ className: 'bg-1f561',
+ icon: '🕡'
+ },
+
+ {
+ className: 'bg-1f562',
+ icon: '🕢'
+ }, {
+ className: 'bg-1f564',
+ icon: '🕤'
+ }, {
+ className: 'bg-1f565',
+ icon: '🕥'
+ }, {
+ className: 'bg-1f566',
+ icon: '🕦'
+ }, {
+ className: 'bg-f2795',
+ icon: '➕'
+ }, {
+ className: 'bg-f2796',
+ icon: '➖'
+ }, {
+ className: 'bg-f2797',
+ icon: '➗'
+ }, {
+ className: 'bg-f2660',
+ icon: '♠'
+ }, {
+ className: 'bg-f2665',
+ icon: '♥'
+ }, {
+ className: 'bg-f2663',
+ icon: '♣'
+ }, {
+ className: 'bg-f2666',
+ icon: '♦'
+ },
+ {
+ className: 'bg-1f4ae',
+ icon: '💮'
+ }, {
+ className: 'bg-1f4af',
+ icon: '💯'
+ }, {
+ className: 'bg-f2714',
+ icon: '✔'
+ }, {
+ className: 'bg-f2611',
+ icon: '☑'
+ }, {
+ className: 'bg-1f518',
+ icon: '🔘'
+ }, {
+ className: 'bg-1f517',
+ icon: '🔗'
+ }, {
+ className: 'bg-f27b0',
+ icon: '➰'
+ }, {
+ className: 'bg-f3030',
+ icon: '〰'
+ }, {
+ className: 'bg-f303d',
+ icon: '〽'
+ }, {
+ className: 'bg-1f531',
+ icon: '🔱'
+ }, {
+ className: 'bg-f25fc',
+ icon: '◼'
+ },
+ {
+ className: 'bg-f25fb',
+ icon: '◻'
+ }, {
+ className: 'bg-f25fe',
+ icon: '◾'
+ }, {
+ className: 'bg-f25fd',
+ icon: '◽'
+ }, {
+ className: 'bg-f25aa',
+ icon: '▪'
+ }, {
+ className: 'bg-f25ab',
+ icon: '▫'
+ }, {
+ className: 'bg-1f53a',
+ icon: '🔺'
+ }, {
+ className: 'bg-1f532',
+ icon: '🔲'
+ }, {
+ className: 'bg-1f533',
+ icon: '🔳'
+ }, {
+ className: 'bg-f26ab',
+ icon: '⚫'
+ }, {
+ className: 'bg-f26aa',
+ icon: '⚪'
+ }, {
+ className: 'bg-1f534',
+ icon: '🔴'
+ },
+ {
+ className: 'bg-1f535',
+ icon: '🔵'
+ }, {
+ className: 'bg-1f53b',
+ icon: '🔻'
+ }, {
+ className: 'bg-1f536',
+ icon: '🔶'
+ }, {
+ className: 'bg-1f537',
+ icon: '🔷'
+ }, {
+ className: 'bg-1f538',
+ icon: '🔸'
+ }, {
+ className: 'bg-1f539',
+ icon: '🔹'
+ }, {
+ className: 'bg-f2716',
+ icon: '✖'
+ }
+ ]
+ }
+]
+export {
+ biaoqingArr
+
+}
diff --git a/src/components/CustomEmoji/biaoqing.vue b/src/components/CustomEmoji/biaoqing.vue
new file mode 100644
index 0000000..4a6d9c1
--- /dev/null
+++ b/src/components/CustomEmoji/biaoqing.vue
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/CustomEmoji/emoji_sorites.css b/src/components/CustomEmoji/emoji_sorites.css
new file mode 100644
index 0000000..003ded8
--- /dev/null
+++ b/src/components/CustomEmoji/emoji_sorites.css
@@ -0,0 +1,3956 @@
+.bg-1f0cf {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -5px;
+}
+.bg-1f3a3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -651px;
+}
+.bg-1f3a4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -39px;
+}
+.bg-1f3a5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -39px;
+}
+.bg-1f3a6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -5px;
+}
+.bg-1f3a7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -39px;
+}
+.bg-1f3a8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -73px;
+}
+.bg-1f3a9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -73px;
+}
+.bg-1f3aa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -73px;
+}
+.bg-1f3ab {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -5px;
+}
+.bg-1f3ac {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -39px;
+}
+.bg-1f3ad {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -73px;
+}
+.bg-1f3ae {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -107px;
+}
+.bg-1f3af {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -107px;
+}
+.bg-1f3b0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -107px;
+}
+.bg-1f3b1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -107px;
+}
+.bg-1f3b2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -5px;
+}
+.bg-1f3b3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -39px;
+}
+.bg-1f3b4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -73px;
+}
+.bg-1f3b5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -107px;
+}
+.bg-1f3b6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -141px;
+}
+.bg-1f3b7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -141px;
+}
+.bg-1f3b8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -141px;
+}
+.bg-1f3b9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -141px;
+}
+.bg-1f3bb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -141px;
+}
+.bg-1f3bc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -5px;
+}
+.bg-1f3bd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -39px;
+}
+.bg-1f3be {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -73px;
+}
+.bg-1f3bf {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -107px;
+}
+.bg-1f3c0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -141px;
+}
+.bg-1f3c1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -175px;
+}
+.bg-1f3c2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -175px;
+}
+.bg-1f3c3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -175px;
+}
+.bg-1f3c4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -175px;
+}
+.bg-1f3c6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -175px;
+}
+.bg-1f3c7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -175px;
+}
+.bg-1f3c8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -5px;
+}
+.bg-1f3c9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -39px;
+}
+.bg-1f3ca {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -73px;
+}
+.bg-1f3e0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -107px;
+}
+.bg-1f3e1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -141px;
+}
+.bg-1f3e2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -175px;
+}
+.bg-1f3e3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -209px;
+}
+.bg-1f3e4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -209px;
+}
+.bg-1f3e5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -209px;
+}
+.bg-1f3e6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -209px;
+}
+.bg-1f3e7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -209px;
+}
+.bg-1f3e8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -209px;
+}
+.bg-1f3e9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -209px;
+}
+.bg-1f3ea {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -5px;
+}
+.bg-1f3eb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -39px;
+}
+.bg-1f3ec {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -73px;
+}
+.bg-1f3ed {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -107px;
+}
+.bg-1f3ee {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -141px;
+}
+.bg-1f3ef {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -175px;
+}
+.bg-1f3f0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -209px;
+}
+.bg-1f004 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -243px;
+}
+.bg-1f4a0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -243px;
+}
+.bg-1f4a1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -243px;
+}
+.bg-1f4a2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -243px;
+}
+.bg-1f4a3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -243px;
+}
+.bg-1f4a4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -243px;
+}
+.bg-1f4a5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -243px;
+}
+.bg-1f4a6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -243px;
+}
+.bg-1f4a7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -5px;
+}
+.bg-1f4a8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -39px;
+}
+.bg-1f4aa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -73px;
+}
+.bg-1f4ab {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -107px;
+}
+.bg-1f4ae {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -141px;
+}
+.bg-1f4af {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -175px;
+}
+.bg-1f4b0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -209px;
+}
+.bg-1f4b1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -243px;
+}
+.bg-1f4b2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -277px;
+}
+.bg-1f4b3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -277px;
+}
+.bg-1f4b4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -277px;
+}
+.bg-1f4b5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -277px;
+}
+.bg-1f4b6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -277px;
+}
+.bg-1f4b7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -277px;
+}
+.bg-1f4b8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -277px;
+}
+.bg-1f4b9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -277px;
+}
+.bg-1f4ba {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -277px;
+}
+.bg-1f4bb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -5px;
+}
+.bg-1f4bc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -39px;
+}
+.bg-1f4bd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -73px;
+}
+.bg-1f4be {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -107px;
+}
+.bg-1f4bf {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -141px;
+}
+.bg-1f4c0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -175px;
+}
+.bg-1f4c1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -209px;
+}
+.bg-1f4c2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -243px;
+}
+.bg-1f4c3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -277px;
+}
+.bg-1f4c4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -311px;
+}
+.bg-1f4c5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -311px;
+}
+.bg-1f4c6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -311px;
+}
+.bg-1f4c7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -311px;
+}
+.bg-1f4c8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -311px;
+}
+.bg-1f4c9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -311px;
+}
+.bg-1f4ca {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -311px;
+}
+.bg-1f4cb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -311px;
+}
+.bg-1f4cc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -311px;
+}
+.bg-1f4cd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -311px;
+}
+.bg-1f4ce {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -5px;
+}
+.bg-1f4cf {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -39px;
+}
+.bg-1f4d0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -73px;
+}
+.bg-1f4d1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -107px;
+}
+.bg-1f4d2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -141px;
+}
+.bg-1f4d3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -175px;
+}
+.bg-1f4d4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -209px;
+}
+.bg-1f4d5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -243px;
+}
+.bg-1f4d6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -277px;
+}
+.bg-1f4d7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -311px;
+}
+.bg-1f4d8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -345px;
+}
+.bg-1f4d9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -345px;
+}
+.bg-1f4da {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -345px;
+}
+.bg-1f4db {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -345px;
+}
+.bg-1f4dc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -345px;
+}
+.bg-1f4dd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -345px;
+}
+.bg-1f4de {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -345px;
+}
+.bg-1f4df {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -345px;
+}
+.bg-1f4e0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -345px;
+}
+.bg-1f4e1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -345px;
+}
+.bg-1f4e2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -345px;
+}
+.bg-1f4e3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -5px;
+}
+.bg-1f4e4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -39px;
+}
+.bg-1f4e5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -73px;
+}
+.bg-1f4e6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -107px;
+}
+.bg-1f4e7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -141px;
+}
+.bg-1f4e8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -175px;
+}
+.bg-1f4e9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -209px;
+}
+.bg-1f4ea {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -243px;
+}
+.bg-1f4eb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -277px;
+}
+.bg-1f4ec {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -311px;
+}
+.bg-1f4ed {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -345px;
+}
+.bg-1f4ee {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -379px;
+}
+.bg-1f4ef {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -379px;
+}
+.bg-1f4f0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -379px;
+}
+.bg-1f4f1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -379px;
+}
+.bg-1f4f2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -379px;
+}
+.bg-1f4f3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -379px;
+}
+.bg-1f4f4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -379px;
+}
+.bg-1f4f6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -379px;
+}
+.bg-1f4f7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -379px;
+}
+.bg-1f4f9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -379px;
+}
+.bg-1f4fa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -379px;
+}
+.bg-1f4fb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -379px;
+}
+.bg-1f4fc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -5px;
+}
+.bg-1f5fb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -39px;
+}
+.bg-1f5fc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -73px;
+}
+.bg-1f5fe {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -107px;
+}
+.bg-1f5ff {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -141px;
+}
+.bg-1f6a0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -175px;
+}
+.bg-1f6a1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -209px;
+}
+.bg-1f6a2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -243px;
+}
+.bg-1f6a3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -277px;
+}
+.bg-1f6a4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -311px;
+}
+.bg-1f6a5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -345px;
+}
+.bg-1f6a6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -379px;
+}
+.bg-1f6a7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -413px;
+}
+.bg-1f6a8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -413px;
+}
+.bg-1f6a9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -413px;
+}
+.bg-1f6aa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -413px;
+}
+.bg-1f6ab {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -413px;
+}
+.bg-1f6ac {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -413px;
+}
+.bg-1f6ad {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -413px;
+}
+.bg-1f6ae {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -413px;
+}
+.bg-1f6af {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -413px;
+}
+.bg-1f6b0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -413px;
+}
+.bg-1f6b1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -413px;
+}
+.bg-1f6b2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -413px;
+}
+.bg-1f6b3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -413px;
+}
+.bg-1f6b4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -5px;
+}
+.bg-1f6b5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -39px;
+}
+.bg-1f6b6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -73px;
+}
+.bg-1f6b7 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -107px;
+}
+.bg-1f6b8 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -141px;
+}
+.bg-1f6b9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -175px;
+}
+.bg-1f6ba {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -209px;
+}
+.bg-1f6bb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -243px;
+}
+.bg-1f6bc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -277px;
+}
+.bg-1f6bd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -311px;
+}
+.bg-1f6be {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -345px;
+}
+.bg-1f6bf {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -379px;
+}
+.bg-1f6c0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -413px;
+}
+.bg-1f6c1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -447px;
+}
+.bg-1f6c2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -447px;
+}
+.bg-1f6c3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -447px;
+}
+.bg-1f6c4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -447px;
+}
+.bg-1f6c5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -447px;
+}
+.bg-1f17e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -447px;
+}
+.bg-1f17f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -447px;
+}
+.bg-1f18e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -447px;
+}
+.bg-1f19a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -447px;
+}
+.bg-1f21a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -447px;
+}
+.bg-1f22f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -447px;
+}
+.bg-1f23a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -447px;
+}
+.bg-1f30a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -447px;
+}
+.bg-1f30b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -447px;
+}
+.bg-1f30c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -5px;
+}
+.bg-1f30d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -39px;
+}
+.bg-1f30e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -73px;
+}
+.bg-1f30f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -107px;
+}
+.bg-1f31a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -141px;
+}
+.bg-1f31b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -175px;
+}
+.bg-1f31c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -209px;
+}
+.bg-1f31d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -243px;
+}
+.bg-1f31e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -277px;
+}
+.bg-1f31f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -311px;
+}
+.bg-1f33a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -345px;
+}
+.bg-1f33b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -379px;
+}
+.bg-1f33c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -413px;
+}
+.bg-1f33d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -447px;
+}
+.bg-1f33e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -481px;
+}
+.bg-1f33f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -481px;
+}
+.bg-1f34a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -481px;
+}
+.bg-1f34b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -481px;
+}
+.bg-1f34c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -481px;
+}
+.bg-1f34d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -481px;
+}
+.bg-1f34e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -481px;
+}
+.bg-1f34f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -481px;
+}
+.bg-1f35a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -481px;
+}
+.bg-1f35b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -481px;
+}
+.bg-1f35c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -481px;
+}
+.bg-1f35d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -481px;
+}
+.bg-1f35e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -481px;
+}
+.bg-1f35f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -481px;
+}
+.bg-1f36a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -481px;
+}
+.bg-1f36b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -5px;
+}
+.bg-1f36c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -39px;
+}
+.bg-1f36d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -73px;
+}
+.bg-1f36e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -107px;
+}
+.bg-1f36f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -141px;
+}
+.bg-1f37a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -175px;
+}
+.bg-1f37b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -209px;
+}
+.bg-1f37c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -243px;
+}
+.bg-1f38a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -277px;
+}
+.bg-1f38b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -311px;
+}
+.bg-1f38c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -345px;
+}
+.bg-1f38d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -379px;
+}
+.bg-1f38e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -413px;
+}
+.bg-1f38f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -447px;
+}
+.bg-1f40a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -481px;
+}
+.bg-1f40b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -515px;
+}
+.bg-1f40c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -515px;
+}
+.bg-1f40d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -515px;
+}
+.bg-1f40e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -515px;
+}
+.bg-1f40f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -515px;
+}
+.bg-1f41a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -515px;
+}
+.bg-1f41b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -515px;
+}
+.bg-1f41c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -515px;
+}
+.bg-1f41d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -515px;
+}
+.bg-1f41e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -515px;
+}
+.bg-1f41f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -515px;
+}
+.bg-1f42a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -515px;
+}
+.bg-1f42b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -515px;
+}
+.bg-1f42c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -515px;
+}
+.bg-1f42d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -515px;
+}
+.bg-1f42e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -515px;
+}
+.bg-1f42f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -5px;
+}
+.bg-1f43a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -39px;
+}
+.bg-1f43b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -73px;
+}
+.bg-1f43c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -107px;
+}
+.bg-1f43d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -141px;
+}
+.bg-1f43e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -175px;
+}
+.bg-1f44a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -209px;
+}
+.bg-1f44b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -243px;
+}
+.bg-1f44c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -277px;
+}
+.bg-1f44d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -311px;
+}
+.bg-1f44e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -345px;
+}
+.bg-1f44f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -379px;
+}
+.bg-1f45a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -413px;
+}
+.bg-1f45b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -447px;
+}
+.bg-1f45c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -481px;
+}
+.bg-1f45d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -515px;
+}
+.bg-1f45e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -549px;
+}
+.bg-1f45f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -549px;
+}
+.bg-1f46a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -549px;
+}
+.bg-1f46b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -549px;
+}
+.bg-1f46c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -549px;
+}
+.bg-1f46d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -549px;
+}
+.bg-1f46f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -549px;
+}
+.bg-1f47a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -549px;
+}
+.bg-1f47b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -549px;
+}
+.bg-1f47d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -549px;
+}
+.bg-1f47e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -549px;
+}
+.bg-1f47f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -549px;
+}
+.bg-1f48a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -549px;
+}
+.bg-1f48b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -549px;
+}
+.bg-1f48c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -549px;
+}
+.bg-1f48d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -549px;
+}
+.bg-1f48e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -549px;
+}
+.bg-1f48f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -5px;
+}
+.bg-1f49a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -39px;
+}
+.bg-1f49b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -73px;
+}
+.bg-1f49c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -107px;
+}
+.bg-1f49d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -141px;
+}
+.bg-1f49e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -175px;
+}
+.bg-1f49f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -209px;
+}
+.bg-1f50a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -243px;
+}
+.bg-1f50b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -277px;
+}
+.bg-1f50c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -311px;
+}
+.bg-1f50d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -345px;
+}
+.bg-1f50e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -379px;
+}
+.bg-1f51a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -413px;
+}
+.bg-1f51b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -447px;
+}
+.bg-1f51c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -481px;
+}
+.bg-1f51d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -515px;
+}
+.bg-1f51e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -549px;
+}
+.bg-1f51f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -583px;
+}
+.bg-1f52a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -583px;
+}
+.bg-1f52b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -583px;
+}
+.bg-1f52c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -583px;
+}
+.bg-1f52e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -583px;
+}
+.bg-1f52f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -583px;
+}
+.bg-1f53a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -583px;
+}
+.bg-1f53b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -583px;
+}
+.bg-1f53c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -583px;
+}
+.bg-1f53d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -583px;
+}
+.bg-1f55a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -583px;
+}
+.bg-1f55b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -583px;
+}
+.bg-1f55c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -583px;
+}
+.bg-1f55d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -583px;
+}
+.bg-1f55e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -583px;
+}
+.bg-1f55f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -583px;
+}
+.bg-1f60a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -583px;
+}
+.bg-1f60b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -583px;
+}
+.bg-1f60c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -5px;
+}
+.bg-1f60d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -39px;
+}
+.bg-1f60e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -73px;
+}
+.bg-1f60f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -107px;
+}
+.bg-1f61a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -141px;
+}
+.bg-1f61b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -175px;
+}
+.bg-1f61c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -209px;
+}
+.bg-1f61d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -243px;
+}
+.bg-1f61e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -277px;
+}
+.bg-1f61f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -311px;
+}
+.bg-1f62a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -345px;
+}
+.bg-1f62b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -379px;
+}
+.bg-1f62c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -413px;
+}
+.bg-1f62d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -447px;
+}
+.bg-1f62e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -481px;
+}
+.bg-1f62f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -515px;
+}
+.bg-1f63a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -549px;
+}
+.bg-1f63b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -583px;
+}
+.bg-1f63c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -617px;
+}
+.bg-1f63d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -617px;
+}
+.bg-1f63e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -617px;
+}
+.bg-1f63f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -617px;
+}
+.bg-1f64a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -617px;
+}
+.bg-1f64b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -617px;
+}
+.bg-1f64c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -617px;
+}
+.bg-1f64d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -617px;
+}
+.bg-1f64e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -617px;
+}
+.bg-1f64f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -617px;
+}
+.bg-1f68a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -617px;
+}
+.bg-1f68b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -617px;
+}
+.bg-1f68c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -617px;
+}
+.bg-1f68d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -617px;
+}
+.bg-1f68e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -617px;
+}
+.bg-1f68f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -617px;
+}
+.bg-1f69a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -617px;
+}
+.bg-1f69b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -617px;
+}
+.bg-1f69c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -617px;
+}
+.bg-1f69d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -5px;
+}
+.bg-1f69e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -39px;
+}
+.bg-1f69f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -73px;
+}
+.bg-1f170 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -107px;
+}
+.bg-1f171 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -141px;
+}
+.bg-1f191 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -175px;
+}
+.bg-1f192 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -209px;
+}
+.bg-1f193 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -243px;
+}
+.bg-1f194 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -277px;
+}
+.bg-1f195 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -311px;
+}
+.bg-1f196 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -345px;
+}
+.bg-1f197 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -379px;
+}
+.bg-1f198 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -413px;
+}
+.bg-1f199 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -447px;
+}
+.bg-1f201 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -481px;
+}
+.bg-1f202 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -515px;
+}
+.bg-1f232 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -549px;
+}
+.bg-1f233 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -583px;
+}
+.bg-1f234 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -617px;
+}
+.bg-1f235 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -651px;
+}
+.bg-1f236 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -651px;
+}
+.bg-1f237 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -651px;
+}
+.bg-1f238 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -651px;
+}
+.bg-1f239 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -651px;
+}
+.bg-1f250 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -651px;
+}
+.bg-1f251 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -651px;
+}
+.bg-1f300 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -651px;
+}
+.bg-1f301 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -651px;
+}
+.bg-1f302 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -651px;
+}
+.bg-1f304 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -651px;
+}
+.bg-1f306 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -651px;
+}
+.bg-1f307 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -651px;
+}
+.bg-1f308 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -651px;
+}
+.bg-1f310 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -651px;
+}
+.bg-1f311 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -5px;
+}
+.bg-1f312 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -651px;
+}
+.bg-1f313 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -651px;
+}
+.bg-1f314 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -651px;
+}
+.bg-1f315 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -651px;
+}
+.bg-1f316 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -5px;
+}
+.bg-1f317 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -39px;
+}
+.bg-1f318 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -73px;
+}
+.bg-1f319 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -107px;
+}
+.bg-1f320 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -141px;
+}
+.bg-1f330 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -175px;
+}
+.bg-1f331 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -209px;
+}
+.bg-1f332 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -243px;
+}
+.bg-1f333 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -277px;
+}
+.bg-1f334 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -311px;
+}
+.bg-1f335 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -345px;
+}
+.bg-1f337 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -379px;
+}
+.bg-1f338 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -413px;
+}
+.bg-1f339 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -447px;
+}
+.bg-1f340 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -481px;
+}
+.bg-1f341 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -515px;
+}
+.bg-1f342 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -549px;
+}
+.bg-1f343 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -583px;
+}
+.bg-1f344 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -617px;
+}
+.bg-1f345 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -651px;
+}
+.bg-1f346 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -685px;
+}
+.bg-1f347 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -685px;
+}
+.bg-1f348 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -685px;
+}
+.bg-1f349 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -685px;
+}
+.bg-1f350 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -685px;
+}
+.bg-1f351 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -685px;
+}
+.bg-1f352 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -685px;
+}
+.bg-1f353 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -685px;
+}
+.bg-1f354 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -685px;
+}
+.bg-1f355 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -685px;
+}
+.bg-1f356 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -685px;
+}
+.bg-1f357 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -685px;
+}
+.bg-1f358 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -685px;
+}
+.bg-1f359 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -685px;
+}
+.bg-1f360 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -685px;
+}
+.bg-1f361 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -685px;
+}
+.bg-1f362 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -685px;
+}
+.bg-1f363 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -685px;
+}
+.bg-1f364 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -685px;
+}
+.bg-1f365 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -685px;
+}
+.bg-1f366 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -685px;
+}
+.bg-1f367 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -5px;
+}
+.bg-1f368 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -39px;
+}
+.bg-1f369 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -73px;
+}
+.bg-1f370 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -107px;
+}
+.bg-1f371 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -141px;
+}
+.bg-1f372 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -175px;
+}
+.bg-1f373 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -209px;
+}
+.bg-1f374 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -243px;
+}
+.bg-1f375 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -277px;
+}
+.bg-1f376 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -311px;
+}
+.bg-1f377 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -345px;
+}
+.bg-1f378 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -379px;
+}
+.bg-1f379 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -413px;
+}
+.bg-1f380 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -447px;
+}
+.bg-1f381 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -481px;
+}
+.bg-1f382 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -515px;
+}
+.bg-1f383 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -549px;
+}
+.bg-1f384 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -583px;
+}
+.bg-1f385 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -617px;
+}
+.bg-1f386 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -651px;
+}
+.bg-1f387 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -685px;
+}
+.bg-1f388 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -719px;
+}
+.bg-1f389 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -719px;
+}
+.bg-1f390 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -719px;
+}
+.bg-1f391 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -719px;
+}
+.bg-1f392 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -719px;
+}
+.bg-1f393 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -719px;
+}
+.bg-1f400 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -719px;
+}
+.bg-1f401 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -719px;
+}
+.bg-1f402 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -719px;
+}
+.bg-1f403 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -719px;
+}
+.bg-1f404 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -719px;
+}
+.bg-1f405 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -719px;
+}
+.bg-1f406 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -719px;
+}
+.bg-1f407 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -719px;
+}
+.bg-1f408 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -719px;
+}
+.bg-1f409 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -719px;
+}
+.bg-1f410 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -719px;
+}
+.bg-1f411 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -719px;
+}
+.bg-1f412 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -719px;
+}
+.bg-1f413 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -719px;
+}
+.bg-1f414 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -719px;
+}
+.bg-1f415 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -719px;
+}
+.bg-1f416 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -5px;
+}
+.bg-1f417 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -39px;
+}
+.bg-1f418 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -73px;
+}
+.bg-1f419 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -107px;
+}
+.bg-1f420 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -141px;
+}
+.bg-1f421 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -175px;
+}
+.bg-1f422 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -209px;
+}
+.bg-1f423 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -243px;
+}
+.bg-1f424 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -277px;
+}
+.bg-1f425 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -311px;
+}
+.bg-1f426 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -345px;
+}
+.bg-1f427 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -379px;
+}
+.bg-1f428 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -413px;
+}
+.bg-1f429 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -447px;
+}
+.bg-1f430 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -481px;
+}
+.bg-1f431 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -515px;
+}
+.bg-1f432 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -549px;
+}
+.bg-1f433 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -583px;
+}
+.bg-1f434 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -617px;
+}
+.bg-1f435 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -651px;
+}
+.bg-1f436 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -685px;
+}
+.bg-1f437 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -719px;
+}
+.bg-1f438 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -753px;
+}
+.bg-1f439 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -753px;
+}
+.bg-1f440 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -753px;
+}
+.bg-1f442 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -753px;
+}
+.bg-1f443 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -753px;
+}
+.bg-1f444 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -753px;
+}
+.bg-1f445 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -753px;
+}
+.bg-1f446 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -753px;
+}
+.bg-1f447 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -753px;
+}
+.bg-1f448 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -753px;
+}
+.bg-1f449 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -753px;
+}
+.bg-1f450 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -753px;
+}
+.bg-1f451 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -753px;
+}
+.bg-1f452 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -753px;
+}
+.bg-1f453 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -753px;
+}
+.bg-1f454 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -753px;
+}
+.bg-1f455 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -753px;
+}
+.bg-1f456 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -753px;
+}
+.bg-1f457 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -753px;
+}
+.bg-1f458 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -753px;
+}
+.bg-1f459 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -753px;
+}
+.bg-1f460 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -753px;
+}
+.bg-1f461 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -753px;
+}
+.bg-1f462 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -5px;
+}
+.bg-1f463 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -39px;
+}
+.bg-1f470 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -73px;
+}
+.bg-1f479 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -107px;
+}
+.bg-1f480 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -141px;
+}
+.bg-1f481 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -175px;
+}
+.bg-1f483 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -209px;
+}
+.bg-1f484 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -243px;
+}
+.bg-1f485 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -277px;
+}
+.bg-1f487 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -311px;
+}
+.bg-1f488 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -345px;
+}
+.bg-1f490 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -379px;
+}
+.bg-1f491 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -413px;
+}
+.bg-1f492 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -447px;
+}
+.bg-1f493 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -481px;
+}
+.bg-1f494 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -515px;
+}
+.bg-1f495 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -549px;
+}
+.bg-1f496 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -583px;
+}
+.bg-1f497 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -617px;
+}
+.bg-1f498 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -651px;
+}
+.bg-1f499 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -685px;
+}
+.bg-1f500 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -719px;
+}
+.bg-1f501 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -753px;
+}
+.bg-1f502 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -787px;
+}
+.bg-1f503 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -787px;
+}
+.bg-1f504 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -787px;
+}
+.bg-1f505 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -787px;
+}
+.bg-1f506 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -787px;
+}
+.bg-1f507 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -787px;
+}
+.bg-1f508 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -787px;
+}
+.bg-1f509 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -787px;
+}
+.bg-1f510 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -787px;
+}
+.bg-1f511 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -787px;
+}
+.bg-1f512 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -787px;
+}
+.bg-1f513 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -787px;
+}
+.bg-1f514 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -787px;
+}
+.bg-1f515 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -787px;
+}
+.bg-1f516 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -787px;
+}
+.bg-1f517 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -787px;
+}
+.bg-1f518 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -787px;
+}
+.bg-1f519 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -787px;
+}
+.bg-1f520 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -787px;
+}
+.bg-1f521 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -787px;
+}
+.bg-1f522 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -787px;
+}
+.bg-1f523 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -787px;
+}
+.bg-1f524 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -787px;
+}
+.bg-1f525 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -787px;
+}
+.bg-1f526 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -5px;
+}
+.bg-1f527 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -39px;
+}
+.bg-1f528 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -73px;
+}
+.bg-1f529 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -107px;
+}
+.bg-1f530 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -141px;
+}
+.bg-1f531 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -175px;
+}
+.bg-1f532 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -209px;
+}
+.bg-1f533 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -243px;
+}
+.bg-1f534 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -277px;
+}
+.bg-1f535 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -311px;
+}
+.bg-1f536 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -345px;
+}
+.bg-1f537 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -379px;
+}
+.bg-1f538 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -413px;
+}
+.bg-1f539 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -447px;
+}
+.bg-1f550 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -481px;
+}
+.bg-1f551 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -515px;
+}
+.bg-1f552 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -549px;
+}
+.bg-1f553 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -583px;
+}
+.bg-1f554 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -617px;
+}
+.bg-1f555 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -651px;
+}
+.bg-1f556 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -685px;
+}
+.bg-1f557 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -719px;
+}
+.bg-1f558 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -753px;
+}
+.bg-1f559 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -787px;
+}
+.bg-1f560 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -821px;
+}
+.bg-1f561 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -821px;
+}
+.bg-1f562 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -821px;
+}
+.bg-1f564 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -821px;
+}
+.bg-1f565 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -821px;
+}
+.bg-1f566 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -821px;
+}
+.bg-1f567 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -821px;
+}
+.bg-1f600 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -821px;
+}
+.bg-1f601 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -821px;
+}
+.bg-1f602 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -821px;
+}
+.bg-1f603 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -821px;
+}
+.bg-1f604 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -821px;
+}
+.bg-1f605 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -821px;
+}
+.bg-1f606 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -821px;
+}
+.bg-1f607 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -821px;
+}
+.bg-1f608 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -821px;
+}
+.bg-1f609 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -821px;
+}
+.bg-1f610 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -821px;
+}
+.bg-1f611 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -821px;
+}
+.bg-1f612 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -821px;
+}
+.bg-1f613 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -821px;
+}
+.bg-1f614 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -821px;
+}
+.bg-1f615 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -821px;
+}
+.bg-1f616 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -821px;
+}
+.bg-1f617 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -821px;
+}
+.bg-1f618 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -5px;
+}
+.bg-1f619 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -39px;
+}
+.bg-1f620 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -73px;
+}
+.bg-1f621 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -107px;
+}
+.bg-1f622 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -141px;
+}
+.bg-1f623 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -175px;
+}
+.bg-1f624 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -209px;
+}
+.bg-1f625 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -243px;
+}
+.bg-1f626 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -277px;
+}
+.bg-1f627 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -311px;
+}
+.bg-1f628 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -345px;
+}
+.bg-1f629 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -379px;
+}
+.bg-1f630 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -413px;
+}
+.bg-1f631 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -447px;
+}
+.bg-1f632 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -481px;
+}
+.bg-1f633 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -515px;
+}
+.bg-1f634 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -549px;
+}
+.bg-1f635 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -583px;
+}
+.bg-1f636 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -617px;
+}
+.bg-1f637 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -651px;
+}
+.bg-1f638 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -685px;
+}
+.bg-1f639 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -719px;
+}
+.bg-1f640 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -753px;
+}
+.bg-1f645 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -787px;
+}
+.bg-1f646 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -821px;
+}
+.bg-1f647 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -855px;
+}
+.bg-1f648 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -855px;
+}
+.bg-1f649 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -855px;
+}
+.bg-1f680 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -855px;
+}
+.bg-1f681 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -855px;
+}
+.bg-1f682 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -855px;
+}
+.bg-1f683 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -855px;
+}
+.bg-1f684 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -855px;
+}
+.bg-1f685 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -855px;
+}
+.bg-1f686 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -855px;
+}
+.bg-1f687 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -855px;
+}
+.bg-1f688 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -855px;
+}
+.bg-1f689 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -855px;
+}
+.bg-1f690 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -855px;
+}
+.bg-1f691 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -855px;
+}
+.bg-1f692 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -855px;
+}
+.bg-1f693 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -855px;
+}
+.bg-1f694 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -855px;
+}
+.bg-1f695 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -855px;
+}
+.bg-1f696 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -855px;
+}
+.bg-1f697 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -855px;
+}
+.bg-1f698 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -855px;
+}
+.bg-1f699 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -855px;
+}
+.bg-f2b05 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -855px;
+}
+.bg-f2b06 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -855px;
+}
+.bg-f2b07 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -855px;
+}
+.bg-f2b50 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -5px;
+}
+.bg-f2b55 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -39px;
+}
+.bg-f21a9 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -73px;
+}
+.bg-f21aa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -107px;
+}
+.bg-f23ea {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -141px;
+}
+.bg-f23eb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -175px;
+}
+.bg-f23ec {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -209px;
+}
+.bg-f23f0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -243px;
+}
+.bg-f23f3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -277px;
+}
+.bg-f24c2 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -311px;
+}
+.bg-f25aa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -345px;
+}
+.bg-f25ab {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -379px;
+}
+.bg-f25b6 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -413px;
+}
+.bg-f25c0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -447px;
+}
+.bg-f25fb {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -481px;
+}
+.bg-f25fc {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -515px;
+}
+.bg-f25fd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -549px;
+}
+.bg-f25fe {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -583px;
+}
+.bg-f26a0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -617px;
+}
+.bg-f26a1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -651px;
+}
+.bg-f26aa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -685px;
+}
+.bg-f26ab {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -719px;
+}
+.bg-f26bd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -753px;
+}
+.bg-f26be {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -787px;
+}
+.bg-f26c4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -821px;
+}
+.bg-f26c5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -855px;
+}
+.bg-f26ce {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -889px;
+}
+.bg-f26d4 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -889px;
+}
+.bg-f26ea {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -889px;
+}
+.bg-f26f3 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -889px;
+}
+.bg-f26f5 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -889px;
+}
+.bg-f26fa {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -889px;
+}
+.bg-f26fd {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -889px;
+}
+.bg-f27a1 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -889px;
+}
+.bg-f27b0 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -889px;
+}
+.bg-f27bf {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -889px;
+}
+.bg-f231a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -889px;
+}
+.bg-f231b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -889px;
+}
+.bg-f260e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -889px;
+}
+.bg-f261d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -889px;
+}
+.bg-f263a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -889px;
+}
+.bg-f264a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -889px;
+}
+.bg-f264b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -889px;
+}
+.bg-f264c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -889px;
+}
+.bg-f264d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -889px;
+}
+.bg-f264e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -889px;
+}
+.bg-f264f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -889px;
+}
+.bg-f267b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -889px;
+}
+.bg-f267f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -889px;
+}
+.bg-f270a {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -889px;
+}
+.bg-f270b {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -889px;
+}
+.bg-f270c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -855px -889px;
+}
+.bg-f270f {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -889px -889px;
+}
+.bg-f274c {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -5px;
+}
+.bg-f274e {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -39px;
+}
+.bg-f303d {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -73px;
+}
+.bg-f2139 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -107px;
+}
+.bg-f2194 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -141px;
+}
+.bg-f2195 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -175px;
+}
+.bg-f2196 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -209px;
+}
+.bg-f2197 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -243px;
+}
+.bg-f2198 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -277px;
+}
+.bg-f2199 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -311px;
+}
+.bg-f2600 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -345px;
+}
+.bg-f2601 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -379px;
+}
+.bg-f2611 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -413px;
+}
+.bg-f2614 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -447px;
+}
+.bg-f2615 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -481px;
+}
+.bg-f2648 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -515px;
+}
+.bg-f2649 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -549px;
+}
+.bg-f2650 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -583px;
+}
+.bg-f2651 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -617px;
+}
+.bg-f2652 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -651px;
+}
+.bg-f2653 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -685px;
+}
+.bg-f2660 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -719px;
+}
+.bg-f2663 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -753px;
+}
+.bg-f2665 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -787px;
+}
+.bg-f2666 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -821px;
+}
+.bg-f2668 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -855px;
+}
+.bg-f2693 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -923px -889px;
+}
+.bg-f2702 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -5px -923px;
+}
+.bg-f2705 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -39px -923px;
+}
+.bg-f2708 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -73px -923px;
+}
+.bg-f2709 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -107px -923px;
+}
+.bg-f2712 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -141px -923px;
+}
+.bg-f2714 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -175px -923px;
+}
+.bg-f2716 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -209px -923px;
+}
+.bg-f2728 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -243px -923px;
+}
+.bg-f2733 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -277px -923px;
+}
+.bg-f2734 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -311px -923px;
+}
+.bg-f2744 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -345px -923px;
+}
+.bg-f2747 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -379px -923px;
+}
+.bg-f2753 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -413px -923px;
+}
+.bg-f2754 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -447px -923px;
+}
+.bg-f2755 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -481px -923px;
+}
+.bg-f2757 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -515px -923px;
+}
+.bg-f2764 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -549px -923px;
+}
+.bg-f2795 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -583px -923px;
+}
+.bg-f2796 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -617px -923px;
+}
+.bg-f2797 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -651px -923px;
+}
+.bg-f2934 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -685px -923px;
+}
+.bg-f2935 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -719px -923px;
+}
+.bg-f3030 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -753px -923px;
+}
+.bg-f3297 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -787px -923px;
+}
+.bg-f3299 {
+ width: 24px;
+ height: 24px;
+ background: url("/pic/custom-center/emoji.png") -821px -923px;
+}
+.bg-bqfh0 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -855px -923px;
+}
+.bg-bqfh1 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -888px -923px;
+}
+.bg-bqfh2 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -921px -923px;
+}
+.bg-bqfh3 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -957px -5px;
+}
+.bg-bqfh4 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -957px -38px;
+}
+.bg-bqfh5 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -957px -71px;
+}
+.bg-bqfh6 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -957px -104px;
+}
+.bg-bqfh7 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -957px -137px;
+}
+.bg-bqfh8 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -957px -170px;
+}
+.bg-bqfh9 {
+ width: 23px;
+ height: 23px;
+ background: url("/pic/custom-center/emoji.png") -957px -203px;
+}
+/*# sourceMappingURL=emoji_sorites.css.map */
diff --git a/src/components/CustomEmoji/emoji_sorites.css.map b/src/components/CustomEmoji/emoji_sorites.css.map
new file mode 100644
index 0000000..fc4e859
--- /dev/null
+++ b/src/components/CustomEmoji/emoji_sorites.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["emoji_sorites.less"],"names":[],"mappings":"AAEA;EACI,WAAA;EACA,YAAA;EACA,gBALI,6CAKJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAXI,gDAWJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjBI,6CAiBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvBI,8CAuBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7BI,6CA6BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnCI,8CAmCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzCI,6CAyCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/CI,8CA+CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArDI,8CAqDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3DI,8CA2DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjEI,+CAiEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvEI,+CAuEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7EI,8CA6EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnFI,+CAmFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzFI,+CAyFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/FI,gDA+FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArGI,8CAqGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3GI,+CA2GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjHI,+CAiHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvHI,gDAuHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7HI,8CA6HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnII,+CAmIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzII,+CAyIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/II,gDA+IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArJI,gDAqJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3JI,8CA2JJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjKI,+CAiKJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvKI,+CAuKJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7KI,gDA6KJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnLI,gDAmLJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzLI,8CAyLJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/LI,+CA+LJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArMI,+CAqMJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3MI,gDA2MJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjNI,gDAiNJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvNI,gDAuNJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7NI,8CA6NJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnOI,+CAmOJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzOI,+CAyOJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/OI,gDA+OJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArPI,gDAqPJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3PI,gDA2PJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjQI,8CAiQJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvQI,+CAuQJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7QI,+CA6QJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnRI,gDAmRJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzRI,gDAyRJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/RI,gDA+RJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArSI,gDAqSJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3SI,8CA2SJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjTI,+CAiTJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvTI,+CAuTJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7TI,gDA6TJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnUI,gDAmUJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzUI,gDAyUJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/UI,gDA+UJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArVI,8CAqVJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3VI,+CA2VJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjWI,+CAiWJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvWI,gDAuWJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7WI,gDA6WJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnXI,gDAmXJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzXI,gDAyXJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/XI,gDA+XJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArYI,8CAqYJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3YI,+CA2YJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjZI,+CAiZJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvZI,gDAuZJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7ZI,gDA6ZJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnaI,gDAmaJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzaI,gDAyaJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/aI,gDA+aJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArbI,8CAqbJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3bI,+CA2bJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjcI,+CAicJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvcI,gDAucJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7cI,gDA6cJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAndI,gDAmdJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzdI,gDAydJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/dI,gDA+dJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAreI,gDAqeJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3eI,8CA2eJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjfI,+CAifJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvfI,+CAufJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7fI,gDA6fJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAngBI,gDAmgBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzgBI,gDAygBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/gBI,gDA+gBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArhBI,gDAqhBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3hBI,gDA2hBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjiBI,8CAiiBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAviBI,+CAuiBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7iBI,+CA6iBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnjBI,gDAmjBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzjBI,gDAyjBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/jBI,gDA+jBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArkBI,gDAqkBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3kBI,gDA2kBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjlBI,gDAilBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvlBI,gDAulBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7lBI,8CA6lBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnmBI,+CAmmBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzmBI,+CAymBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/mBI,gDA+mBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArnBI,gDAqnBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3nBI,gDA2nBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjoBI,gDAioBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvoBI,gDAuoBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7oBI,gDA6oBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnpBI,gDAmpBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzpBI,8CAypBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/pBI,+CA+pBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArqBI,+CAqqBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3qBI,gDA2qBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjrBI,gDAirBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvrBI,gDAurBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7rBI,gDA6rBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnsBI,gDAmsBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzsBI,gDAysBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/sBI,gDA+sBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArtBI,gDAqtBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3tBI,8CA2tBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjuBI,+CAiuBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvuBI,+CAuuBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7uBI,gDA6uBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnvBI,gDAmvBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzvBI,gDAyvBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/vBI,gDA+vBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArwBI,gDAqwBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3wBI,gDA2wBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjxBI,gDAixBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvxBI,gDAuxBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7xBI,8CA6xBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnyBI,+CAmyBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzyBI,+CAyyBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/yBI,gDA+yBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArzBI,gDAqzBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3zBI,gDA2zBJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj0BI,gDAi0BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv0BI,gDAu0BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA70BI,gDA60BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn1BI,gDAm1BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz1BI,gDAy1BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/1BI,gDA+1BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr2BI,8CAq2BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA32BI,+CA22BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj3BI,+CAi3BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv3BI,gDAu3BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA73BI,gDA63BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn4BI,gDAm4BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz4BI,gDAy4BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/4BI,gDA+4BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr5BI,gDAq5BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA35BI,gDA25BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj6BI,gDAi6BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv6BI,gDAu6BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA76BI,8CA66BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn7BI,+CAm7BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz7BI,+CAy7BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/7BI,gDA+7BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr8BI,gDAq8BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA38BI,gDA28BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj9BI,gDAi9BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv9BI,gDAu9BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA79BI,gDA69BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn+BI,gDAm+BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz+BI,gDAy+BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/+BI,gDA++BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr/BI,gDAq/BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3/BI,8CA2/BJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjgCI,+CAigCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvgCI,+CAugCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7gCI,gDA6gCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnhCI,gDAmhCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzhCI,gDAyhCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/hCI,gDA+hCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAriCI,gDAqiCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3iCI,gDA2iCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjjCI,gDAijCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvjCI,gDAujCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7jCI,gDA6jCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnkCI,gDAmkCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzkCI,8CAykCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/kCI,+CA+kCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArlCI,+CAqlCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3lCI,gDA2lCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjmCI,gDAimCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvmCI,gDAumCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7mCI,gDA6mCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnnCI,gDAmnCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAznCI,gDAynCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/nCI,gDA+nCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAroCI,gDAqoCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3oCI,gDA2oCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjpCI,gDAipCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvpCI,gDAupCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7pCI,8CA6pCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnqCI,+CAmqCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzqCI,+CAyqCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/qCI,gDA+qCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArrCI,gDAqrCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3rCI,gDA2rCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjsCI,gDAisCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvsCI,gDAusCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7sCI,gDA6sCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAntCI,gDAmtCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAztCI,gDAytCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/tCI,gDA+tCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAruCI,gDAquCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3uCI,gDA2uCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjvCI,8CAivCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvvCI,+CAuvCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7vCI,+CA6vCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnwCI,gDAmwCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzwCI,gDAywCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/wCI,gDA+wCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArxCI,gDAqxCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3xCI,gDA2xCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjyCI,gDAiyCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvyCI,gDAuyCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7yCI,gDA6yCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnzCI,gDAmzCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzzCI,gDAyzCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/zCI,gDA+zCJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr0CI,gDAq0CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA30CI,8CA20CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj1CI,+CAi1CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv1CI,+CAu1CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA71CI,gDA61CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn2CI,gDAm2CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz2CI,gDAy2CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/2CI,gDA+2CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr3CI,gDAq3CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA33CI,gDA23CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj4CI,gDAi4CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv4CI,gDAu4CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA74CI,gDA64CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn5CI,gDAm5CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz5CI,gDAy5CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/5CI,gDA+5CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr6CI,8CAq6CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA36CI,+CA26CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj7CI,+CAi7CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv7CI,gDAu7CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA77CI,gDA67CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn8CI,gDAm8CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz8CI,gDAy8CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/8CI,gDA+8CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr9CI,gDAq9CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA39CI,gDA29CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj+CI,gDAi+CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv+CI,gDAu+CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7+CI,gDA6+CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn/CI,gDAm/CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz/CI,gDAy/CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA//CI,gDA+/CJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArgDI,8CAqgDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3gDI,+CA2gDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjhDI,+CAihDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvhDI,gDAuhDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7hDI,gDA6hDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAniDI,gDAmiDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAziDI,gDAyiDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/iDI,gDA+iDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArjDI,gDAqjDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3jDI,gDA2jDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjkDI,gDAikDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvkDI,gDAukDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7kDI,gDA6kDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnlDI,gDAmlDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzlDI,gDAylDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/lDI,gDA+lDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArmDI,8CAqmDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3mDI,+CA2mDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjnDI,+CAinDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvnDI,gDAunDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7nDI,gDA6nDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnoDI,gDAmoDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzoDI,gDAyoDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/oDI,gDA+oDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArpDI,gDAqpDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3pDI,gDA2pDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjqDI,gDAiqDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvqDI,gDAuqDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7qDI,gDA6qDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnrDI,gDAmrDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzrDI,gDAyrDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/rDI,gDA+rDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArsDI,gDAqsDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3sDI,8CA2sDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjtDI,+CAitDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvtDI,+CAutDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7tDI,gDA6tDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnuDI,gDAmuDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzuDI,gDAyuDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/uDI,gDA+uDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArvDI,gDAqvDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3vDI,gDA2vDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjwDI,gDAiwDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvwDI,gDAuwDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7wDI,gDA6wDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnxDI,gDAmxDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzxDI,gDAyxDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/xDI,gDA+xDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAryDI,gDAqyDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3yDI,gDA2yDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjzDI,8CAizDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvzDI,+CAuzDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7zDI,+CA6zDJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn0DI,gDAm0DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz0DI,gDAy0DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/0DI,gDA+0DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr1DI,gDAq1DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA31DI,gDA21DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj2DI,gDAi2DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv2DI,gDAu2DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA72DI,gDA62DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn3DI,gDAm3DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz3DI,gDAy3DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/3DI,gDA+3DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr4DI,gDAq4DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA34DI,gDA24DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj5DI,gDAi5DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv5DI,gDAu5DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA75DI,8CA65DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn6DI,+CAm6DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz6DI,+CAy6DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/6DI,gDA+6DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr7DI,gDAq7DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA37DI,gDA27DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj8DI,gDAi8DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv8DI,gDAu8DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA78DI,gDA68DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn9DI,gDAm9DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz9DI,gDAy9DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/9DI,gDA+9DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr+DI,gDAq+DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3+DI,gDA2+DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj/DI,gDAi/DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv/DI,gDAu/DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7/DI,gDA6/DJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAngEI,gDAmgEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzgEI,8CAygEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/gEI,+CA+gEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArhEI,+CAqhEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3hEI,gDA2hEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjiEI,gDAiiEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAviEI,gDAuiEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7iEI,gDA6iEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnjEI,gDAmjEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzjEI,gDAyjEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/jEI,gDA+jEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArkEI,gDAqkEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3kEI,gDA2kEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjlEI,gDAilEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvlEI,gDAulEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7lEI,gDA6lEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnmEI,gDAmmEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzmEI,gDAymEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/mEI,gDA+mEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArnEI,gDAqnEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3nEI,8CA2nEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjoEI,+CAioEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvoEI,+CAuoEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7oEI,gDA6oEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnpEI,gDAmpEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzpEI,gDAypEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/pEI,gDA+pEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArqEI,gDAqqEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3qEI,gDA2qEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjrEI,gDAirEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvrEI,gDAurEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7rEI,gDA6rEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnsEI,gDAmsEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzsEI,gDAysEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/sEI,gDA+sEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArtEI,gDAqtEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3tEI,gDA2tEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjuEI,gDAiuEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvuEI,gDAuuEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7uEI,8CA6uEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnvEI,+CAmvEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzvEI,+CAyvEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/vEI,gDA+vEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArwEI,gDAqwEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3wEI,gDA2wEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjxEI,gDAixEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvxEI,gDAuxEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7xEI,gDA6xEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnyEI,gDAmyEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzyEI,gDAyyEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/yEI,gDA+yEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArzEI,gDAqzEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3zEI,gDA2zEJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj0EI,gDAi0EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv0EI,4CAu0EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA70EI,gDA60EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn1EI,gDAm1EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz1EI,gDAy1EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/1EI,gDA+1EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr2EI,8CAq2EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA32EI,+CA22EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj3EI,+CAi3EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv3EI,gDAu3EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA73EI,gDA63EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn4EI,gDAm4EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz4EI,gDAy4EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/4EI,gDA+4EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr5EI,gDAq5EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA35EI,gDA25EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj6EI,gDAi6EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv6EI,gDAu6EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA76EI,gDA66EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn7EI,gDAm7EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz7EI,gDAy7EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/7EI,gDA+7EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr8EI,gDAq8EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA38EI,gDA28EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj9EI,gDAi9EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv9EI,gDAu9EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA79EI,8CA69EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn+EI,+CAm+EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz+EI,+CAy+EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/+EI,gDA++EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr/EI,gDAq/EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3/EI,gDA2/EJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjgFI,gDAigFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvgFI,gDAugFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7gFI,gDA6gFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnhFI,gDAmhFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzhFI,gDAyhFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/hFI,gDA+hFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAriFI,gDAqiFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3iFI,gDA2iFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjjFI,gDAijFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvjFI,gDAujFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7jFI,gDA6jFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnkFI,gDAmkFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzkFI,gDAykFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/kFI,gDA+kFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArlFI,gDAqlFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3lFI,8CA2lFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjmFI,+CAimFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvmFI,+CAumFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7mFI,gDA6mFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnnFI,gDAmnFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAznFI,gDAynFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/nFI,gDA+nFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAroFI,gDAqoFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3oFI,gDA2oFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjpFI,gDAipFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvpFI,gDAupFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7pFI,gDA6pFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnqFI,gDAmqFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzqFI,gDAyqFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/qFI,gDA+qFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArrFI,gDAqrFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3rFI,gDA2rFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjsFI,gDAisFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvsFI,gDAusFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7sFI,gDA6sFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAntFI,gDAmtFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAztFI,8CAytFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/tFI,+CA+tFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAruFI,+CAquFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3uFI,gDA2uFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjvFI,gDAivFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvvFI,gDAuvFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7vFI,gDA6vFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnwFI,gDAmwFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzwFI,gDAywFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/wFI,gDA+wFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArxFI,gDAqxFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3xFI,gDA2xFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjyFI,gDAiyFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvyFI,gDAuyFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7yFI,gDA6yFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnzFI,gDAmzFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzzFI,gDAyzFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/zFI,gDA+zFJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr0FI,gDAq0FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA30FI,gDA20FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj1FI,gDAi1FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv1FI,gDAu1FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA71FI,8CA61FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn2FI,+CAm2FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz2FI,+CAy2FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/2FI,gDA+2FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr3FI,gDAq3FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA33FI,gDA23FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj4FI,gDAi4FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv4FI,gDAu4FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA74FI,gDA64FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn5FI,gDAm5FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz5FI,gDAy5FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/5FI,gDA+5FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr6FI,gDAq6FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA36FI,gDA26FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj7FI,gDAi7FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv7FI,gDAu7FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA77FI,gDA67FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn8FI,gDAm8FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz8FI,gDAy8FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/8FI,gDA+8FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr9FI,gDAq9FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA39FI,gDA29FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj+FI,8CAi+FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv+FI,+CAu+FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7+FI,+CA6+FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn/FI,gDAm/FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz/FI,gDAy/FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA//FI,gDA+/FJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArgGI,gDAqgGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3gGI,gDA2gGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjhGI,gDAihGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvhGI,gDAuhGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7hGI,gDA6hGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAniGI,gDAmiGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAziGI,gDAyiGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/iGI,gDA+iGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArjGI,gDAqjGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3jGI,gDA2jGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjkGI,gDAikGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvkGI,gDAukGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7kGI,gDA6kGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnlGI,gDAmlGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzlGI,gDAylGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/lGI,gDA+lGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArmGI,gDAqmGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3mGI,8CA2mGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjnGI,+CAinGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvnGI,+CAunGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7nGI,gDA6nGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnoGI,gDAmoGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzoGI,gDAyoGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/oGI,gDA+oGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArpGI,gDAqpGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3pGI,gDA2pGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjqGI,gDAiqGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvqGI,gDAuqGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7qGI,gDA6qGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnrGI,gDAmrGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzrGI,gDAyrGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/rGI,gDA+rGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArsGI,gDAqsGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3sGI,gDA2sGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjtGI,gDAitGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvtGI,gDAutGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7tGI,gDA6tGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnuGI,gDAmuGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzuGI,gDAyuGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/uGI,gDA+uGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArvGI,8CAqvGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3vGI,+CA2vGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjwGI,+CAiwGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvwGI,gDAuwGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7wGI,gDA6wGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnxGI,gDAmxGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzxGI,gDAyxGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/xGI,gDA+xGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAryGI,gDAqyGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3yGI,gDA2yGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjzGI,gDAizGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvzGI,gDAuzGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7zGI,gDA6zGJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn0GI,gDAm0GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz0GI,gDAy0GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/0GI,gDA+0GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr1GI,gDAq1GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA31GI,gDA21GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj2GI,gDAi2GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv2GI,gDAu2GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA72GI,gDA62GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn3GI,gDAm3GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz3GI,gDAy3GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/3GI,gDA+3GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr4GI,8CAq4GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA34GI,+CA24GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj5GI,+CAi5GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv5GI,gDAu5GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA75GI,gDA65GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn6GI,gDAm6GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz6GI,gDAy6GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/6GI,gDA+6GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr7GI,gDAq7GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA37GI,gDA27GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj8GI,gDAi8GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv8GI,gDAu8GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA78GI,gDA68GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn9GI,gDAm9GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz9GI,gDAy9GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/9GI,gDA+9GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr+GI,gDAq+GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3+GI,gDA2+GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj/GI,gDAi/GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv/GI,gDAu/GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7/GI,gDA6/GJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAngHI,gDAmgHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzgHI,gDAygHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/gHI,gDA+gHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArhHI,8CAqhHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3hHI,+CA2hHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjiHI,+CAiiHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAviHI,gDAuiHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7iHI,gDA6iHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnjHI,gDAmjHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzjHI,gDAyjHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/jHI,gDA+jHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArkHI,gDAqkHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3kHI,gDA2kHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjlHI,gDAilHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvlHI,gDAulHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7lHI,gDA6lHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnmHI,gDAmmHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzmHI,gDAymHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/mHI,gDA+mHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArnHI,gDAqnHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3nHI,gDA2nHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjoHI,gDAioHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvoHI,gDAuoHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7oHI,gDA6oHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnpHI,gDAmpHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzpHI,gDAypHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/pHI,gDA+pHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArqHI,gDAqqHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3qHI,8CA2qHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjrHI,+CAirHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvrHI,+CAurHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7rHI,gDA6rHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnsHI,gDAmsHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzsHI,gDAysHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/sHI,gDA+sHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArtHI,gDAqtHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3tHI,gDA2tHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjuHI,gDAiuHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvuHI,gDAuuHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7uHI,gDA6uHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnvHI,gDAmvHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzvHI,gDAyvHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/vHI,gDA+vHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArwHI,gDAqwHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3wHI,gDA2wHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjxHI,gDAixHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvxHI,gDAuxHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7xHI,gDA6xHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnyHI,gDAmyHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzyHI,gDAyyHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/yHI,gDA+yHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArzHI,gDAqzHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3zHI,gDA2zHJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj0HI,8CAi0HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv0HI,+CAu0HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA70HI,+CA60HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn1HI,gDAm1HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz1HI,gDAy1HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/1HI,gDA+1HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr2HI,gDAq2HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA32HI,gDA22HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj3HI,gDAi3HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv3HI,gDAu3HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA73HI,gDA63HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn4HI,gDAm4HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz4HI,gDAy4HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/4HI,gDA+4HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr5HI,gDAq5HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA35HI,gDA25HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj6HI,gDAi6HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv6HI,gDAu6HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA76HI,gDA66HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn7HI,gDAm7HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz7HI,gDAy7HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/7HI,gDA+7HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr8HI,gDAq8HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA38HI,gDA28HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj9HI,gDAi9HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv9HI,gDAu9HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA79HI,8CA69HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn+HI,+CAm+HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz+HI,+CAy+HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/+HI,gDA++HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr/HI,gDAq/HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3/HI,gDA2/HJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjgII,gDAigIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvgII,gDAugIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7gII,gDA6gIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnhII,gDAmhIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzhII,gDAyhIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/hII,gDA+hIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAriII,gDAqiIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3iII,gDA2iIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjjII,gDAijIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvjII,gDAujIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7jII,gDA6jIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnkII,gDAmkIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzkII,gDAykIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/kII,gDA+kIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArlII,gDAqlIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3lII,gDA2lIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjmII,gDAimIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvmII,gDAumIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7mII,gDA6mIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnnII,gDAmnIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAznII,8CAynIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/nII,+CA+nIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAroII,+CAqoIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3oII,gDA2oIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjpII,gDAipIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvpII,gDAupIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7pII,gDA6pIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnqII,gDAmqIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzqII,gDAyqIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/qII,gDA+qIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArrII,gDAqrIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3rII,gDA2rIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjsII,gDAisIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvsII,gDAusIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7sII,gDA6sIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAntII,gDAmtIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAztII,gDAytIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/tII,gDA+tIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAruII,gDAquIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3uII,gDA2uIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjvII,gDAivIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvvII,gDAuvIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7vII,gDA6vIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnwII,gDAmwIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzwII,gDAywIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/wII,gDA+wIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArxII,gDAqxIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3xII,8CA2xIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjyII,+CAiyIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvyII,+CAuyIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7yII,gDA6yIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnzII,gDAmzIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzzII,gDAyzIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/zII,gDA+zIJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr0II,gDAq0IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA30II,gDA20IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj1II,gDAi1IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv1II,gDAu1IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA71II,gDA61IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn2II,gDAm2IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz2II,gDAy2IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/2II,gDA+2IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr3II,gDAq3IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA33II,gDA23IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj4II,gDAi4IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv4II,gDAu4IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA74II,gDA64IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn5II,gDAm5IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz5II,gDAy5IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/5II,gDA+5IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr6II,gDAq6IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA36II,gDA26IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj7II,gDAi7IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv7II,gDAu7IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA77II,8CA67IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn8II,+CAm8IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz8II,+CAy8IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/8II,gDA+8IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAr9II,gDAq9IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA39II,gDA29IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAj+II,gDAi+IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAv+II,gDAu+IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7+II,gDA6+IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAn/II,gDAm/IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAz/II,gDAy/IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA//II,gDA+/IJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArgJI,gDAqgJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3gJI,gDA2gJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjhJI,gDAihJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvhJI,gDAuhJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7hJI,gDA6hJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAniJI,gDAmiJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAziJI,gDAyiJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/iJI,gDA+iJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArjJI,gDAqjJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3jJI,gDA2jJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjkJI,gDAikJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvkJI,gDAukJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7kJI,gDA6kJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnlJI,gDAmlJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzlJI,gDAylJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA/lJI,gDA+lJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBArmJI,8CAqmJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA3mJI,+CA2mJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAjnJI,+CAinJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAvnJI,gDAunJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBA7nJI,gDA6nJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAnoJI,gDAmoJJ;;AAGJ;EACI,WAAA;EACA,YAAA;EACA,gBAzoJI,gDAyoJJ","file":"emoji_sorites.css"}
\ No newline at end of file
diff --git a/src/components/CustomEmoji/emoji_sorites.less b/src/components/CustomEmoji/emoji_sorites.less
new file mode 100644
index 0000000..d56c715
--- /dev/null
+++ b/src/components/CustomEmoji/emoji_sorites.less
@@ -0,0 +1,4747 @@
+@bgurl: '/pic/custom-center/emoji.png';
+
+.bg-1f0cf {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -5px;
+}
+
+.bg-1f3a3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -651px;
+}
+
+.bg-1f3a4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -39px;
+}
+
+.bg-1f3a5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -39px;
+}
+
+.bg-1f3a6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -5px;
+}
+
+.bg-1f3a7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -39px;
+}
+
+.bg-1f3a8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -73px;
+}
+
+.bg-1f3a9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -73px;
+}
+
+.bg-1f3aa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -73px;
+}
+
+.bg-1f3ab {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -5px;
+}
+
+.bg-1f3ac {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -39px;
+}
+
+.bg-1f3ad {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -73px;
+}
+
+.bg-1f3ae {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -107px;
+}
+
+.bg-1f3af {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -107px;
+}
+
+.bg-1f3b0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -107px;
+}
+
+.bg-1f3b1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -107px;
+}
+
+.bg-1f3b2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -5px;
+}
+
+.bg-1f3b3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -39px;
+}
+
+.bg-1f3b4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -73px;
+}
+
+.bg-1f3b5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -107px;
+}
+
+.bg-1f3b6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -141px;
+}
+
+.bg-1f3b7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -141px;
+}
+
+.bg-1f3b8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -141px;
+}
+
+.bg-1f3b9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -141px;
+}
+
+.bg-1f3bb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -141px;
+}
+
+.bg-1f3bc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -5px;
+}
+
+.bg-1f3bd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -39px;
+}
+
+.bg-1f3be {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -73px;
+}
+
+.bg-1f3bf {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -107px;
+}
+
+.bg-1f3c0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -141px;
+}
+
+.bg-1f3c1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -175px;
+}
+
+.bg-1f3c2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -175px;
+}
+
+.bg-1f3c3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -175px;
+}
+
+.bg-1f3c4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -175px;
+}
+
+.bg-1f3c6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -175px;
+}
+
+.bg-1f3c7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -175px;
+}
+
+.bg-1f3c8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -5px;
+}
+
+.bg-1f3c9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -39px;
+}
+
+.bg-1f3ca {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -73px;
+}
+
+.bg-1f3e0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -107px;
+}
+
+.bg-1f3e1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -141px;
+}
+
+.bg-1f3e2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -175px;
+}
+
+.bg-1f3e3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -209px;
+}
+
+.bg-1f3e4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -209px;
+}
+
+.bg-1f3e5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -209px;
+}
+
+.bg-1f3e6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -209px;
+}
+
+.bg-1f3e7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -209px;
+}
+
+.bg-1f3e8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -209px;
+}
+
+.bg-1f3e9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -209px;
+}
+
+.bg-1f3ea {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -5px;
+}
+
+.bg-1f3eb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -39px;
+}
+
+.bg-1f3ec {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -73px;
+}
+
+.bg-1f3ed {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -107px;
+}
+
+.bg-1f3ee {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -141px;
+}
+
+.bg-1f3ef {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -175px;
+}
+
+.bg-1f3f0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -209px;
+}
+
+.bg-1f004 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -243px;
+}
+
+.bg-1f4a0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -243px;
+}
+
+.bg-1f4a1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -243px;
+}
+
+.bg-1f4a2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -243px;
+}
+
+.bg-1f4a3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -243px;
+}
+
+.bg-1f4a4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -243px;
+}
+
+.bg-1f4a5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -243px;
+}
+
+.bg-1f4a6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -243px;
+}
+
+.bg-1f4a7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -5px;
+}
+
+.bg-1f4a8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -39px;
+}
+
+.bg-1f4aa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -73px;
+}
+
+.bg-1f4ab {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -107px;
+}
+
+.bg-1f4ae {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -141px;
+}
+
+.bg-1f4af {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -175px;
+}
+
+.bg-1f4b0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -209px;
+}
+
+.bg-1f4b1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -243px;
+}
+
+.bg-1f4b2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -277px;
+}
+
+.bg-1f4b3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -277px;
+}
+
+.bg-1f4b4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -277px;
+}
+
+.bg-1f4b5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -277px;
+}
+
+.bg-1f4b6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -277px;
+}
+
+.bg-1f4b7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -277px;
+}
+
+.bg-1f4b8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -277px;
+}
+
+.bg-1f4b9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -277px;
+}
+
+.bg-1f4ba {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -277px;
+}
+
+.bg-1f4bb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -5px;
+}
+
+.bg-1f4bc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -39px;
+}
+
+.bg-1f4bd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -73px;
+}
+
+.bg-1f4be {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -107px;
+}
+
+.bg-1f4bf {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -141px;
+}
+
+.bg-1f4c0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -175px;
+}
+
+.bg-1f4c1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -209px;
+}
+
+.bg-1f4c2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -243px;
+}
+
+.bg-1f4c3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -277px;
+}
+
+.bg-1f4c4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -311px;
+}
+
+.bg-1f4c5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -311px;
+}
+
+.bg-1f4c6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -311px;
+}
+
+.bg-1f4c7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -311px;
+}
+
+.bg-1f4c8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -311px;
+}
+
+.bg-1f4c9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -311px;
+}
+
+.bg-1f4ca {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -311px;
+}
+
+.bg-1f4cb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -311px;
+}
+
+.bg-1f4cc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -311px;
+}
+
+.bg-1f4cd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -311px;
+}
+
+.bg-1f4ce {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -5px;
+}
+
+.bg-1f4cf {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -39px;
+}
+
+.bg-1f4d0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -73px;
+}
+
+.bg-1f4d1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -107px;
+}
+
+.bg-1f4d2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -141px;
+}
+
+.bg-1f4d3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -175px;
+}
+
+.bg-1f4d4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -209px;
+}
+
+.bg-1f4d5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -243px;
+}
+
+.bg-1f4d6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -277px;
+}
+
+.bg-1f4d7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -311px;
+}
+
+.bg-1f4d8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -345px;
+}
+
+.bg-1f4d9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -345px;
+}
+
+.bg-1f4da {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -345px;
+}
+
+.bg-1f4db {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -345px;
+}
+
+.bg-1f4dc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -345px;
+}
+
+.bg-1f4dd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -345px;
+}
+
+.bg-1f4de {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -345px;
+}
+
+.bg-1f4df {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -345px;
+}
+
+.bg-1f4e0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -345px;
+}
+
+.bg-1f4e1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -345px;
+}
+
+.bg-1f4e2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -345px;
+}
+
+.bg-1f4e3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -5px;
+}
+
+.bg-1f4e4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -39px;
+}
+
+.bg-1f4e5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -73px;
+}
+
+.bg-1f4e6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -107px;
+}
+
+.bg-1f4e7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -141px;
+}
+
+.bg-1f4e8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -175px;
+}
+
+.bg-1f4e9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -209px;
+}
+
+.bg-1f4ea {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -243px;
+}
+
+.bg-1f4eb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -277px;
+}
+
+.bg-1f4ec {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -311px;
+}
+
+.bg-1f4ed {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -345px;
+}
+
+.bg-1f4ee {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -379px;
+}
+
+.bg-1f4ef {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -379px;
+}
+
+.bg-1f4f0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -379px;
+}
+
+.bg-1f4f1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -379px;
+}
+
+.bg-1f4f2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -379px;
+}
+
+.bg-1f4f3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -379px;
+}
+
+.bg-1f4f4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -379px;
+}
+
+.bg-1f4f6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -379px;
+}
+
+.bg-1f4f7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -379px;
+}
+
+.bg-1f4f9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -379px;
+}
+
+.bg-1f4fa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -379px;
+}
+
+.bg-1f4fb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -379px;
+}
+
+.bg-1f4fc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -5px;
+}
+
+.bg-1f5fb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -39px;
+}
+
+.bg-1f5fc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -73px;
+}
+
+.bg-1f5fe {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -107px;
+}
+
+.bg-1f5ff {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -141px;
+}
+
+.bg-1f6a0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -175px;
+}
+
+.bg-1f6a1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -209px;
+}
+
+.bg-1f6a2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -243px;
+}
+
+.bg-1f6a3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -277px;
+}
+
+.bg-1f6a4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -311px;
+}
+
+.bg-1f6a5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -345px;
+}
+
+.bg-1f6a6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -379px;
+}
+
+.bg-1f6a7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -413px;
+}
+
+.bg-1f6a8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -413px;
+}
+
+.bg-1f6a9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -413px;
+}
+
+.bg-1f6aa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -413px;
+}
+
+.bg-1f6ab {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -413px;
+}
+
+.bg-1f6ac {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -413px;
+}
+
+.bg-1f6ad {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -413px;
+}
+
+.bg-1f6ae {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -413px;
+}
+
+.bg-1f6af {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -413px;
+}
+
+.bg-1f6b0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -413px;
+}
+
+.bg-1f6b1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -413px;
+}
+
+.bg-1f6b2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -413px;
+}
+
+.bg-1f6b3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -413px;
+}
+
+.bg-1f6b4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -5px;
+}
+
+.bg-1f6b5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -39px;
+}
+
+.bg-1f6b6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -73px;
+}
+
+.bg-1f6b7 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -107px;
+}
+
+.bg-1f6b8 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -141px;
+}
+
+.bg-1f6b9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -175px;
+}
+
+.bg-1f6ba {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -209px;
+}
+
+.bg-1f6bb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -243px;
+}
+
+.bg-1f6bc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -277px;
+}
+
+.bg-1f6bd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -311px;
+}
+
+.bg-1f6be {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -345px;
+}
+
+.bg-1f6bf {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -379px;
+}
+
+.bg-1f6c0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -413px;
+}
+
+.bg-1f6c1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -447px;
+}
+
+.bg-1f6c2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -447px;
+}
+
+.bg-1f6c3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -447px;
+}
+
+.bg-1f6c4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -447px;
+}
+
+.bg-1f6c5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -447px;
+}
+
+.bg-1f17e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -447px;
+}
+
+.bg-1f17f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -447px;
+}
+
+.bg-1f18e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -447px;
+}
+
+.bg-1f19a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -447px;
+}
+
+.bg-1f21a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -447px;
+}
+
+.bg-1f22f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -447px;
+}
+
+.bg-1f23a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -447px;
+}
+
+.bg-1f30a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -447px;
+}
+
+.bg-1f30b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -447px;
+}
+
+.bg-1f30c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -5px;
+}
+
+.bg-1f30d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -39px;
+}
+
+.bg-1f30e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -73px;
+}
+
+.bg-1f30f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -107px;
+}
+
+.bg-1f31a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -141px;
+}
+
+.bg-1f31b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -175px;
+}
+
+.bg-1f31c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -209px;
+}
+
+.bg-1f31d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -243px;
+}
+
+.bg-1f31e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -277px;
+}
+
+.bg-1f31f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -311px;
+}
+
+.bg-1f33a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -345px;
+}
+
+.bg-1f33b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -379px;
+}
+
+.bg-1f33c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -413px;
+}
+
+.bg-1f33d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -447px;
+}
+
+.bg-1f33e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -481px;
+}
+
+.bg-1f33f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -481px;
+}
+
+.bg-1f34a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -481px;
+}
+
+.bg-1f34b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -481px;
+}
+
+.bg-1f34c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -481px;
+}
+
+.bg-1f34d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -481px;
+}
+
+.bg-1f34e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -481px;
+}
+
+.bg-1f34f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -481px;
+}
+
+.bg-1f35a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -481px;
+}
+
+.bg-1f35b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -481px;
+}
+
+.bg-1f35c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -481px;
+}
+
+.bg-1f35d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -481px;
+}
+
+.bg-1f35e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -481px;
+}
+
+.bg-1f35f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -481px;
+}
+
+.bg-1f36a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -481px;
+}
+
+.bg-1f36b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -5px;
+}
+
+.bg-1f36c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -39px;
+}
+
+.bg-1f36d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -73px;
+}
+
+.bg-1f36e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -107px;
+}
+
+.bg-1f36f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -141px;
+}
+
+.bg-1f37a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -175px;
+}
+
+.bg-1f37b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -209px;
+}
+
+.bg-1f37c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -243px;
+}
+
+.bg-1f38a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -277px;
+}
+
+.bg-1f38b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -311px;
+}
+
+.bg-1f38c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -345px;
+}
+
+.bg-1f38d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -379px;
+}
+
+.bg-1f38e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -413px;
+}
+
+.bg-1f38f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -447px;
+}
+
+.bg-1f40a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -481px;
+}
+
+.bg-1f40b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -515px;
+}
+
+.bg-1f40c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -515px;
+}
+
+.bg-1f40d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -515px;
+}
+
+.bg-1f40e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -515px;
+}
+
+.bg-1f40f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -515px;
+}
+
+.bg-1f41a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -515px;
+}
+
+.bg-1f41b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -515px;
+}
+
+.bg-1f41c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -515px;
+}
+
+.bg-1f41d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -515px;
+}
+
+.bg-1f41e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -515px;
+}
+
+.bg-1f41f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -515px;
+}
+
+.bg-1f42a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -515px;
+}
+
+.bg-1f42b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -515px;
+}
+
+.bg-1f42c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -515px;
+}
+
+.bg-1f42d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -515px;
+}
+
+.bg-1f42e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -515px;
+}
+
+.bg-1f42f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -5px;
+}
+
+.bg-1f43a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -39px;
+}
+
+.bg-1f43b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -73px;
+}
+
+.bg-1f43c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -107px;
+}
+
+.bg-1f43d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -141px;
+}
+
+.bg-1f43e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -175px;
+}
+
+.bg-1f44a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -209px;
+}
+
+.bg-1f44b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -243px;
+}
+
+.bg-1f44c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -277px;
+}
+
+.bg-1f44d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -311px;
+}
+
+.bg-1f44e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -345px;
+}
+
+.bg-1f44f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -379px;
+}
+
+.bg-1f45a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -413px;
+}
+
+.bg-1f45b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -447px;
+}
+
+.bg-1f45c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -481px;
+}
+
+.bg-1f45d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -515px;
+}
+
+.bg-1f45e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -549px;
+}
+
+.bg-1f45f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -549px;
+}
+
+.bg-1f46a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -549px;
+}
+
+.bg-1f46b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -549px;
+}
+
+.bg-1f46c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -549px;
+}
+
+.bg-1f46d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -549px;
+}
+
+.bg-1f46f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -549px;
+}
+
+.bg-1f47a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -549px;
+}
+
+.bg-1f47b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -549px;
+}
+
+.bg-1f47d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -549px;
+}
+
+.bg-1f47e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -549px;
+}
+
+.bg-1f47f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -549px;
+}
+
+.bg-1f48a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -549px;
+}
+
+.bg-1f48b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -549px;
+}
+
+.bg-1f48c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -549px;
+}
+
+.bg-1f48d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -549px;
+}
+
+.bg-1f48e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -549px;
+}
+
+.bg-1f48f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -5px;
+}
+
+.bg-1f49a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -39px;
+}
+
+.bg-1f49b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -73px;
+}
+
+.bg-1f49c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -107px;
+}
+
+.bg-1f49d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -141px;
+}
+
+.bg-1f49e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -175px;
+}
+
+.bg-1f49f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -209px;
+}
+
+.bg-1f50a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -243px;
+}
+
+.bg-1f50b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -277px;
+}
+
+.bg-1f50c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -311px;
+}
+
+.bg-1f50d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -345px;
+}
+
+.bg-1f50e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -379px;
+}
+
+.bg-1f51a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -413px;
+}
+
+.bg-1f51b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -447px;
+}
+
+.bg-1f51c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -481px;
+}
+
+.bg-1f51d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -515px;
+}
+
+.bg-1f51e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -549px;
+}
+
+.bg-1f51f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -583px;
+}
+
+.bg-1f52a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -583px;
+}
+
+.bg-1f52b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -583px;
+}
+
+.bg-1f52c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -583px;
+}
+
+.bg-1f52e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -583px;
+}
+
+.bg-1f52f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -583px;
+}
+
+.bg-1f53a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -583px;
+}
+
+.bg-1f53b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -583px;
+}
+
+.bg-1f53c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -583px;
+}
+
+.bg-1f53d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -583px;
+}
+
+.bg-1f55a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -583px;
+}
+
+.bg-1f55b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -583px;
+}
+
+.bg-1f55c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -583px;
+}
+
+.bg-1f55d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -583px;
+}
+
+.bg-1f55e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -583px;
+}
+
+.bg-1f55f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -583px;
+}
+
+.bg-1f60a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -583px;
+}
+
+.bg-1f60b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -583px;
+}
+
+.bg-1f60c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -5px;
+}
+
+.bg-1f60d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -39px;
+}
+
+.bg-1f60e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -73px;
+}
+
+.bg-1f60f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -107px;
+}
+
+.bg-1f61a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -141px;
+}
+
+.bg-1f61b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -175px;
+}
+
+.bg-1f61c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -209px;
+}
+
+.bg-1f61d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -243px;
+}
+
+.bg-1f61e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -277px;
+}
+
+.bg-1f61f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -311px;
+}
+
+.bg-1f62a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -345px;
+}
+
+.bg-1f62b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -379px;
+}
+
+.bg-1f62c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -413px;
+}
+
+.bg-1f62d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -447px;
+}
+
+.bg-1f62e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -481px;
+}
+
+.bg-1f62f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -515px;
+}
+
+.bg-1f63a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -549px;
+}
+
+.bg-1f63b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -583px;
+}
+
+.bg-1f63c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -617px;
+}
+
+.bg-1f63d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -617px;
+}
+
+.bg-1f63e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -617px;
+}
+
+.bg-1f63f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -617px;
+}
+
+.bg-1f64a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -617px;
+}
+
+.bg-1f64b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -617px;
+}
+
+.bg-1f64c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -617px;
+}
+
+.bg-1f64d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -617px;
+}
+
+.bg-1f64e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -617px;
+}
+
+.bg-1f64f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -617px;
+}
+
+.bg-1f68a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -617px;
+}
+
+.bg-1f68b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -617px;
+}
+
+.bg-1f68c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -617px;
+}
+
+.bg-1f68d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -617px;
+}
+
+.bg-1f68e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -617px;
+}
+
+.bg-1f68f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -617px;
+}
+
+.bg-1f69a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -617px;
+}
+
+.bg-1f69b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -617px;
+}
+
+.bg-1f69c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -617px;
+}
+
+.bg-1f69d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -5px;
+}
+
+.bg-1f69e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -39px;
+}
+
+.bg-1f69f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -73px;
+}
+
+.bg-1f170 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -107px;
+}
+
+.bg-1f171 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -141px;
+}
+
+.bg-1f191 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -175px;
+}
+
+.bg-1f192 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -209px;
+}
+
+.bg-1f193 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -243px;
+}
+
+.bg-1f194 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -277px;
+}
+
+.bg-1f195 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -311px;
+}
+
+.bg-1f196 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -345px;
+}
+
+.bg-1f197 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -379px;
+}
+
+.bg-1f198 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -413px;
+}
+
+.bg-1f199 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -447px;
+}
+
+.bg-1f201 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -481px;
+}
+
+.bg-1f202 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -515px;
+}
+
+.bg-1f232 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -549px;
+}
+
+.bg-1f233 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -583px;
+}
+
+.bg-1f234 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -617px;
+}
+
+.bg-1f235 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -651px;
+}
+
+.bg-1f236 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -651px;
+}
+
+.bg-1f237 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -651px;
+}
+
+.bg-1f238 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -651px;
+}
+
+.bg-1f239 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -651px;
+}
+
+.bg-1f250 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -651px;
+}
+
+.bg-1f251 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -651px;
+}
+
+.bg-1f300 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -651px;
+}
+
+.bg-1f301 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -651px;
+}
+
+.bg-1f302 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -651px;
+}
+
+.bg-1f304 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -651px;
+}
+
+.bg-1f306 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -651px;
+}
+
+.bg-1f307 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -651px;
+}
+
+.bg-1f308 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -651px;
+}
+
+.bg-1f310 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -651px;
+}
+
+.bg-1f311 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -5px;
+}
+
+.bg-1f312 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -651px;
+}
+
+.bg-1f313 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -651px;
+}
+
+.bg-1f314 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -651px;
+}
+
+.bg-1f315 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -651px;
+}
+
+.bg-1f316 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -5px;
+}
+
+.bg-1f317 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -39px;
+}
+
+.bg-1f318 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -73px;
+}
+
+.bg-1f319 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -107px;
+}
+
+.bg-1f320 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -141px;
+}
+
+.bg-1f330 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -175px;
+}
+
+.bg-1f331 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -209px;
+}
+
+.bg-1f332 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -243px;
+}
+
+.bg-1f333 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -277px;
+}
+
+.bg-1f334 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -311px;
+}
+
+.bg-1f335 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -345px;
+}
+
+.bg-1f337 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -379px;
+}
+
+.bg-1f338 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -413px;
+}
+
+.bg-1f339 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -447px;
+}
+
+.bg-1f340 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -481px;
+}
+
+.bg-1f341 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -515px;
+}
+
+.bg-1f342 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -549px;
+}
+
+.bg-1f343 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -583px;
+}
+
+.bg-1f344 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -617px;
+}
+
+.bg-1f345 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -651px;
+}
+
+.bg-1f346 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -685px;
+}
+
+.bg-1f347 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -685px;
+}
+
+.bg-1f348 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -685px;
+}
+
+.bg-1f349 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -685px;
+}
+
+.bg-1f350 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -685px;
+}
+
+.bg-1f351 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -685px;
+}
+
+.bg-1f352 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -685px;
+}
+
+.bg-1f353 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -685px;
+}
+
+.bg-1f354 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -685px;
+}
+
+.bg-1f355 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -685px;
+}
+
+.bg-1f356 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -685px;
+}
+
+.bg-1f357 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -685px;
+}
+
+.bg-1f358 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -685px;
+}
+
+.bg-1f359 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -685px;
+}
+
+.bg-1f360 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -685px;
+}
+
+.bg-1f361 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -685px;
+}
+
+.bg-1f362 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -685px;
+}
+
+.bg-1f363 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -685px;
+}
+
+.bg-1f364 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -685px;
+}
+
+.bg-1f365 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -685px;
+}
+
+.bg-1f366 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -685px;
+}
+
+.bg-1f367 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -5px;
+}
+
+.bg-1f368 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -39px;
+}
+
+.bg-1f369 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -73px;
+}
+
+.bg-1f370 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -107px;
+}
+
+.bg-1f371 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -141px;
+}
+
+.bg-1f372 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -175px;
+}
+
+.bg-1f373 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -209px;
+}
+
+.bg-1f374 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -243px;
+}
+
+.bg-1f375 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -277px;
+}
+
+.bg-1f376 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -311px;
+}
+
+.bg-1f377 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -345px;
+}
+
+.bg-1f378 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -379px;
+}
+
+.bg-1f379 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -413px;
+}
+
+.bg-1f380 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -447px;
+}
+
+.bg-1f381 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -481px;
+}
+
+.bg-1f382 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -515px;
+}
+
+.bg-1f383 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -549px;
+}
+
+.bg-1f384 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -583px;
+}
+
+.bg-1f385 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -617px;
+}
+
+.bg-1f386 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -651px;
+}
+
+.bg-1f387 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -685px;
+}
+
+.bg-1f388 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -719px;
+}
+
+.bg-1f389 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -719px;
+}
+
+.bg-1f390 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -719px;
+}
+
+.bg-1f391 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -719px;
+}
+
+.bg-1f392 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -719px;
+}
+
+.bg-1f393 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -719px;
+}
+
+.bg-1f400 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -719px;
+}
+
+.bg-1f401 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -719px;
+}
+
+.bg-1f402 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -719px;
+}
+
+.bg-1f403 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -719px;
+}
+
+.bg-1f404 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -719px;
+}
+
+.bg-1f405 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -719px;
+}
+
+.bg-1f406 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -719px;
+}
+
+.bg-1f407 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -719px;
+}
+
+.bg-1f408 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -719px;
+}
+
+.bg-1f409 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -719px;
+}
+
+.bg-1f410 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -719px;
+}
+
+.bg-1f411 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -719px;
+}
+
+.bg-1f412 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -719px;
+}
+
+.bg-1f413 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -719px;
+}
+
+.bg-1f414 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -719px;
+}
+
+.bg-1f415 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -719px;
+}
+
+.bg-1f416 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -5px;
+}
+
+.bg-1f417 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -39px;
+}
+
+.bg-1f418 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -73px;
+}
+
+.bg-1f419 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -107px;
+}
+
+.bg-1f420 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -141px;
+}
+
+.bg-1f421 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -175px;
+}
+
+.bg-1f422 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -209px;
+}
+
+.bg-1f423 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -243px;
+}
+
+.bg-1f424 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -277px;
+}
+
+.bg-1f425 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -311px;
+}
+
+.bg-1f426 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -345px;
+}
+
+.bg-1f427 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -379px;
+}
+
+.bg-1f428 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -413px;
+}
+
+.bg-1f429 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -447px;
+}
+
+.bg-1f430 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -481px;
+}
+
+.bg-1f431 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -515px;
+}
+
+.bg-1f432 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -549px;
+}
+
+.bg-1f433 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -583px;
+}
+
+.bg-1f434 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -617px;
+}
+
+.bg-1f435 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -651px;
+}
+
+.bg-1f436 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -685px;
+}
+
+.bg-1f437 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -719px;
+}
+
+.bg-1f438 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -753px;
+}
+
+.bg-1f439 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -753px;
+}
+
+.bg-1f440 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -753px;
+}
+
+.bg-1f442 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -753px;
+}
+
+.bg-1f443 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -753px;
+}
+
+.bg-1f444 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -753px;
+}
+
+.bg-1f445 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -753px;
+}
+
+.bg-1f446 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -753px;
+}
+
+.bg-1f447 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -753px;
+}
+
+.bg-1f448 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -753px;
+}
+
+.bg-1f449 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -753px;
+}
+
+.bg-1f450 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -753px;
+}
+
+.bg-1f451 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -753px;
+}
+
+.bg-1f452 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -753px;
+}
+
+.bg-1f453 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -753px;
+}
+
+.bg-1f454 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -753px;
+}
+
+.bg-1f455 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -753px;
+}
+
+.bg-1f456 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -753px;
+}
+
+.bg-1f457 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -753px;
+}
+
+.bg-1f458 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -753px;
+}
+
+.bg-1f459 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -753px;
+}
+
+.bg-1f460 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -753px;
+}
+
+.bg-1f461 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -753px;
+}
+
+.bg-1f462 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -5px;
+}
+
+.bg-1f463 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -39px;
+}
+
+.bg-1f470 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -73px;
+}
+
+.bg-1f479 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -107px;
+}
+
+.bg-1f480 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -141px;
+}
+
+.bg-1f481 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -175px;
+}
+
+.bg-1f483 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -209px;
+}
+
+.bg-1f484 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -243px;
+}
+
+.bg-1f485 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -277px;
+}
+
+.bg-1f487 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -311px;
+}
+
+.bg-1f488 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -345px;
+}
+
+.bg-1f490 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -379px;
+}
+
+.bg-1f491 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -413px;
+}
+
+.bg-1f492 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -447px;
+}
+
+.bg-1f493 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -481px;
+}
+
+.bg-1f494 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -515px;
+}
+
+.bg-1f495 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -549px;
+}
+
+.bg-1f496 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -583px;
+}
+
+.bg-1f497 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -617px;
+}
+
+.bg-1f498 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -651px;
+}
+
+.bg-1f499 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -685px;
+}
+
+.bg-1f500 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -719px;
+}
+
+.bg-1f501 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -753px;
+}
+
+.bg-1f502 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -787px;
+}
+
+.bg-1f503 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -787px;
+}
+
+.bg-1f504 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -787px;
+}
+
+.bg-1f505 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -787px;
+}
+
+.bg-1f506 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -787px;
+}
+
+.bg-1f507 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -787px;
+}
+
+.bg-1f508 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -787px;
+}
+
+.bg-1f509 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -787px;
+}
+
+.bg-1f510 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -787px;
+}
+
+.bg-1f511 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -787px;
+}
+
+.bg-1f512 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -787px;
+}
+
+.bg-1f513 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -787px;
+}
+
+.bg-1f514 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -787px;
+}
+
+.bg-1f515 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -787px;
+}
+
+.bg-1f516 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -787px;
+}
+
+.bg-1f517 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -787px;
+}
+
+.bg-1f518 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -787px;
+}
+
+.bg-1f519 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -787px;
+}
+
+.bg-1f520 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -787px;
+}
+
+.bg-1f521 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -787px;
+}
+
+.bg-1f522 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -787px;
+}
+
+.bg-1f523 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -787px;
+}
+
+.bg-1f524 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -787px;
+}
+
+.bg-1f525 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -787px;
+}
+
+.bg-1f526 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -5px;
+}
+
+.bg-1f527 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -39px;
+}
+
+.bg-1f528 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -73px;
+}
+
+.bg-1f529 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -107px;
+}
+
+.bg-1f530 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -141px;
+}
+
+.bg-1f531 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -175px;
+}
+
+.bg-1f532 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -209px;
+}
+
+.bg-1f533 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -243px;
+}
+
+.bg-1f534 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -277px;
+}
+
+.bg-1f535 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -311px;
+}
+
+.bg-1f536 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -345px;
+}
+
+.bg-1f537 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -379px;
+}
+
+.bg-1f538 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -413px;
+}
+
+.bg-1f539 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -447px;
+}
+
+.bg-1f550 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -481px;
+}
+
+.bg-1f551 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -515px;
+}
+
+.bg-1f552 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -549px;
+}
+
+.bg-1f553 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -583px;
+}
+
+.bg-1f554 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -617px;
+}
+
+.bg-1f555 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -651px;
+}
+
+.bg-1f556 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -685px;
+}
+
+.bg-1f557 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -719px;
+}
+
+.bg-1f558 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -753px;
+}
+
+.bg-1f559 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -787px;
+}
+
+.bg-1f560 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -821px;
+}
+
+.bg-1f561 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -821px;
+}
+
+.bg-1f562 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -821px;
+}
+
+.bg-1f564 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -821px;
+}
+
+.bg-1f565 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -821px;
+}
+
+.bg-1f566 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -821px;
+}
+
+.bg-1f567 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -821px;
+}
+
+.bg-1f600 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -821px;
+}
+
+.bg-1f601 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -821px;
+}
+
+.bg-1f602 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -821px;
+}
+
+.bg-1f603 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -821px;
+}
+
+.bg-1f604 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -821px;
+}
+
+.bg-1f605 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -821px;
+}
+
+.bg-1f606 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -821px;
+}
+
+.bg-1f607 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -821px;
+}
+
+.bg-1f608 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -821px;
+}
+
+.bg-1f609 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -821px;
+}
+
+.bg-1f610 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -821px;
+}
+
+.bg-1f611 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -821px;
+}
+
+.bg-1f612 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -821px;
+}
+
+.bg-1f613 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -821px;
+}
+
+.bg-1f614 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -821px;
+}
+
+.bg-1f615 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -821px;
+}
+
+.bg-1f616 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -821px;
+}
+
+.bg-1f617 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -821px;
+}
+
+.bg-1f618 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -5px;
+}
+
+.bg-1f619 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -39px;
+}
+
+.bg-1f620 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -73px;
+}
+
+.bg-1f621 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -107px;
+}
+
+.bg-1f622 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -141px;
+}
+
+.bg-1f623 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -175px;
+}
+
+.bg-1f624 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -209px;
+}
+
+.bg-1f625 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -243px;
+}
+
+.bg-1f626 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -277px;
+}
+
+.bg-1f627 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -311px;
+}
+
+.bg-1f628 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -345px;
+}
+
+.bg-1f629 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -379px;
+}
+
+.bg-1f630 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -413px;
+}
+
+.bg-1f631 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -447px;
+}
+
+.bg-1f632 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -481px;
+}
+
+.bg-1f633 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -515px;
+}
+
+.bg-1f634 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -549px;
+}
+
+.bg-1f635 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -583px;
+}
+
+.bg-1f636 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -617px;
+}
+
+.bg-1f637 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -651px;
+}
+
+.bg-1f638 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -685px;
+}
+
+.bg-1f639 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -719px;
+}
+
+.bg-1f640 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -753px;
+}
+
+.bg-1f645 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -787px;
+}
+
+.bg-1f646 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -821px;
+}
+
+.bg-1f647 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -855px;
+}
+
+.bg-1f648 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -855px;
+}
+
+.bg-1f649 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -855px;
+}
+
+.bg-1f680 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -855px;
+}
+
+.bg-1f681 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -855px;
+}
+
+.bg-1f682 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -855px;
+}
+
+.bg-1f683 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -855px;
+}
+
+.bg-1f684 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -855px;
+}
+
+.bg-1f685 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -855px;
+}
+
+.bg-1f686 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -855px;
+}
+
+.bg-1f687 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -855px;
+}
+
+.bg-1f688 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -855px;
+}
+
+.bg-1f689 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -855px;
+}
+
+.bg-1f690 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -855px;
+}
+
+.bg-1f691 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -855px;
+}
+
+.bg-1f692 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -855px;
+}
+
+.bg-1f693 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -855px;
+}
+
+.bg-1f694 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -855px;
+}
+
+.bg-1f695 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -855px;
+}
+
+.bg-1f696 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -855px;
+}
+
+.bg-1f697 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -855px;
+}
+
+.bg-1f698 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -855px;
+}
+
+.bg-1f699 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -855px;
+}
+
+.bg-f2b05 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -855px;
+}
+
+.bg-f2b06 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -855px;
+}
+
+.bg-f2b07 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -855px;
+}
+
+.bg-f2b50 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -5px;
+}
+
+.bg-f2b55 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -39px;
+}
+
+.bg-f21a9 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -73px;
+}
+
+.bg-f21aa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -107px;
+}
+
+.bg-f23ea {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -141px;
+}
+
+.bg-f23eb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -175px;
+}
+
+.bg-f23ec {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -209px;
+}
+
+.bg-f23f0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -243px;
+}
+
+.bg-f23f3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -277px;
+}
+
+.bg-f24c2 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -311px;
+}
+
+.bg-f25aa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -345px;
+}
+
+.bg-f25ab {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -379px;
+}
+
+.bg-f25b6 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -413px;
+}
+
+.bg-f25c0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -447px;
+}
+
+.bg-f25fb {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -481px;
+}
+
+.bg-f25fc {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -515px;
+}
+
+.bg-f25fd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -549px;
+}
+
+.bg-f25fe {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -583px;
+}
+
+.bg-f26a0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -617px;
+}
+
+.bg-f26a1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -651px;
+}
+
+.bg-f26aa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -685px;
+}
+
+.bg-f26ab {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -719px;
+}
+
+.bg-f26bd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -753px;
+}
+
+.bg-f26be {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -787px;
+}
+
+.bg-f26c4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -821px;
+}
+
+.bg-f26c5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -855px;
+}
+
+.bg-f26ce {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -889px;
+}
+
+.bg-f26d4 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -889px;
+}
+
+.bg-f26ea {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -889px;
+}
+
+.bg-f26f3 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -889px;
+}
+
+.bg-f26f5 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -889px;
+}
+
+.bg-f26fa {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -889px;
+}
+
+.bg-f26fd {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -889px;
+}
+
+.bg-f27a1 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -889px;
+}
+
+.bg-f27b0 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -889px;
+}
+
+.bg-f27bf {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -889px;
+}
+
+.bg-f231a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -889px;
+}
+
+.bg-f231b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -889px;
+}
+
+.bg-f260e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -889px;
+}
+
+.bg-f261d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -889px;
+}
+
+.bg-f263a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -889px;
+}
+
+.bg-f264a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -889px;
+}
+
+.bg-f264b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -889px;
+}
+
+.bg-f264c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -889px;
+}
+
+.bg-f264d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -889px;
+}
+
+.bg-f264e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -889px;
+}
+
+.bg-f264f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -889px;
+}
+
+.bg-f267b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -889px;
+}
+
+.bg-f267f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -889px;
+}
+
+.bg-f270a {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -889px;
+}
+
+.bg-f270b {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -889px;
+}
+
+.bg-f270c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -855px -889px;
+}
+
+.bg-f270f {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -889px -889px;
+}
+
+.bg-f274c {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -5px;
+}
+
+.bg-f274e {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -39px;
+}
+
+.bg-f303d {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -73px;
+}
+
+.bg-f2139 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -107px;
+}
+
+.bg-f2194 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -141px;
+}
+
+.bg-f2195 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -175px;
+}
+
+.bg-f2196 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -209px;
+}
+
+.bg-f2197 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -243px;
+}
+
+.bg-f2198 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -277px;
+}
+
+.bg-f2199 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -311px;
+}
+
+.bg-f2600 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -345px;
+}
+
+.bg-f2601 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -379px;
+}
+
+.bg-f2611 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -413px;
+}
+
+.bg-f2614 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -447px;
+}
+
+.bg-f2615 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -481px;
+}
+
+.bg-f2648 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -515px;
+}
+
+.bg-f2649 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -549px;
+}
+
+.bg-f2650 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -583px;
+}
+
+.bg-f2651 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -617px;
+}
+
+.bg-f2652 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -651px;
+}
+
+.bg-f2653 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -685px;
+}
+
+.bg-f2660 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -719px;
+}
+
+.bg-f2663 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -753px;
+}
+
+.bg-f2665 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -787px;
+}
+
+.bg-f2666 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -821px;
+}
+
+.bg-f2668 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -855px;
+}
+
+.bg-f2693 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -923px -889px;
+}
+
+.bg-f2702 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -5px -923px;
+}
+
+.bg-f2705 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -39px -923px;
+}
+
+.bg-f2708 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -73px -923px;
+}
+
+.bg-f2709 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -107px -923px;
+}
+
+.bg-f2712 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -141px -923px;
+}
+
+.bg-f2714 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -175px -923px;
+}
+
+.bg-f2716 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -209px -923px;
+}
+
+.bg-f2728 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -243px -923px;
+}
+
+.bg-f2733 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -277px -923px;
+}
+
+.bg-f2734 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -311px -923px;
+}
+
+.bg-f2744 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -345px -923px;
+}
+
+.bg-f2747 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -379px -923px;
+}
+
+.bg-f2753 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -413px -923px;
+}
+
+.bg-f2754 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -447px -923px;
+}
+
+.bg-f2755 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -481px -923px;
+}
+
+.bg-f2757 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -515px -923px;
+}
+
+.bg-f2764 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -549px -923px;
+}
+
+.bg-f2795 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -583px -923px;
+}
+
+.bg-f2796 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -617px -923px;
+}
+
+.bg-f2797 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -651px -923px;
+}
+
+.bg-f2934 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -685px -923px;
+}
+
+.bg-f2935 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -719px -923px;
+}
+
+.bg-f3030 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -753px -923px;
+}
+
+.bg-f3297 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -787px -923px;
+}
+
+.bg-f3299 {
+ width: 24px;
+ height: 24px;
+ background: url(@bgurl) -821px -923px;
+}
+
+.bg-bqfh0 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -855px -923px;
+}
+
+.bg-bqfh1 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -888px -923px;
+}
+
+.bg-bqfh2 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -921px -923px;
+}
+
+.bg-bqfh3 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -957px -5px;
+}
+
+.bg-bqfh4 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -957px -38px;
+}
+
+.bg-bqfh5 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -957px -71px;
+}
+
+.bg-bqfh6 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -957px -104px;
+}
+
+.bg-bqfh7 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -957px -137px;
+}
+
+.bg-bqfh8 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -957px -170px;
+}
+
+.bg-bqfh9 {
+ width: 23px;
+ height: 23px;
+ background: url(@bgurl) -957px -203px;
+}
diff --git a/src/components/Dialog/index.vue b/src/components/Dialog/index.vue
new file mode 100644
index 0000000..7ca5467
--- /dev/null
+++ b/src/components/Dialog/index.vue
@@ -0,0 +1,293 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+ • {{ subTitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DndList/index.vue b/src/components/DndList/index.vue
new file mode 100644
index 0000000..23ca006
--- /dev/null
+++ b/src/components/DndList/index.vue
@@ -0,0 +1,166 @@
+
+
+
+
{{ list1Title }}
+
+
+
+ {{ element.id }}[{{ element.author }}] {{ element.title }}
+
+
+
+
+
+
+
+
+
+
+
{{ list2Title }}
+
+
+
+ {{ element.id }} [{{ element.author }}] {{ element.title }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DragSelect/index.vue b/src/components/DragSelect/index.vue
new file mode 100644
index 0000000..1f0781c
--- /dev/null
+++ b/src/components/DragSelect/index.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Dropzone/index.vue b/src/components/Dropzone/index.vue
new file mode 100644
index 0000000..bad9eb9
--- /dev/null
+++ b/src/components/Dropzone/index.vue
@@ -0,0 +1,297 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ErrorLog/index.vue b/src/components/ErrorLog/index.vue
new file mode 100644
index 0000000..6119c03
--- /dev/null
+++ b/src/components/ErrorLog/index.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+ Error Log
+ Clear All
+
+
+
+
+
+ Msg:
+
+ {{ row.err.message }}
+
+
+
+
+ Info:
+
+ {{ row.vm.$vnode.tag }} error in {{ row.info }}
+
+
+
+
+ Url:
+
+ {{ row.url }}
+
+
+
+
+
+
+ {{ scope.row.err.stack }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/FNButton/index.vue b/src/components/FNButton/index.vue
new file mode 100644
index 0000000..a6509ae
--- /dev/null
+++ b/src/components/FNButton/index.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/GithubCorner/index.vue b/src/components/GithubCorner/index.vue
new file mode 100644
index 0000000..970faaf
--- /dev/null
+++ b/src/components/GithubCorner/index.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/GoodsStyleSelector/index.vue b/src/components/GoodsStyleSelector/index.vue
new file mode 100644
index 0000000..6535dc1
--- /dev/null
+++ b/src/components/GoodsStyleSelector/index.vue
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+
+
+
+ 提交
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ row.name }}
+
+ 最后更新:{{ row.updateAt }} 创建时间:{{ row.createAt }}
+
+
+
+
+
+
+
+
+
+
+
+ 已选择
+
+
+ 请选择
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Hamburger/index.vue b/src/components/Hamburger/index.vue
new file mode 100644
index 0000000..95c553e
--- /dev/null
+++ b/src/components/Hamburger/index.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/HeaderSearch/index.vue b/src/components/HeaderSearch/index.vue
new file mode 100644
index 0000000..5d61ba3
--- /dev/null
+++ b/src/components/HeaderSearch/index.vue
@@ -0,0 +1,208 @@
+
+
+
+
+
+
+
diff --git a/src/components/ImageCropper/index.vue b/src/components/ImageCropper/index.vue
new file mode 100644
index 0000000..65a4262
--- /dev/null
+++ b/src/components/ImageCropper/index.vue
@@ -0,0 +1,1779 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ lang.hint }}
+ {{ lang.noSupported }}
+
+
+
+
+ {{ errorMsg }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ↺
+ ↻
+
+
+
+
+
+
+
{{ lang.preview }}
+
+
+
+
{{ lang.preview }}
+
+
+
+
+
+
+
+
+
+
{{ lang.loading }}
+
+
+
+
+
+ {{ errorMsg }}
+
+
+
+ {{ lang.success }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ImageCropper/utils/data2blob.js b/src/components/ImageCropper/utils/data2blob.js
new file mode 100644
index 0000000..9c47f8a
--- /dev/null
+++ b/src/components/ImageCropper/utils/data2blob.js
@@ -0,0 +1,19 @@
+/**
+ * database64文件格式转换为2进制
+ *
+ * @param {[String]} data dataURL 的格式为 “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了
+ * @param {[String]} mime [description]
+ * @return {[blob]} [description]
+ */
+export default function(data, mime) {
+ data = data.split(',')[1]
+ data = window.atob(data)
+ var ia = new Uint8Array(data.length)
+ for (var i = 0; i < data.length; i++) {
+ ia[i] = data.charCodeAt(i)
+ }
+ // canvas.toDataURL 返回的默认格式就是 image/png
+ return new Blob([ia], {
+ type: mime
+ })
+}
diff --git a/src/components/ImageCropper/utils/effectRipple.js b/src/components/ImageCropper/utils/effectRipple.js
new file mode 100644
index 0000000..46a0164
--- /dev/null
+++ b/src/components/ImageCropper/utils/effectRipple.js
@@ -0,0 +1,39 @@
+/**
+ * 点击波纹效果
+ *
+ * @param {[event]} e [description]
+ * @param {[Object]} arg_opts [description]
+ * @return {[bollean]} [description]
+ */
+export default function(e, arg_opts) {
+ var opts = Object.assign({
+ ele: e.target, // 波纹作用元素
+ type: 'hit', // hit点击位置扩散center中心点扩展
+ bgc: 'rgba(0, 0, 0, 0.15)' // 波纹颜色
+ }, arg_opts)
+ var target = opts.ele
+ if (target) {
+ var rect = target.getBoundingClientRect()
+ var ripple = target.querySelector('.e-ripple')
+ if (!ripple) {
+ ripple = document.createElement('span')
+ ripple.className = 'e-ripple'
+ ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px'
+ target.appendChild(ripple)
+ } else {
+ ripple.className = 'e-ripple'
+ }
+ switch (opts.type) {
+ case 'center':
+ ripple.style.top = (rect.height / 2 - ripple.offsetHeight / 2) + 'px'
+ ripple.style.left = (rect.width / 2 - ripple.offsetWidth / 2) + 'px'
+ break
+ default:
+ ripple.style.top = (e.pageY - rect.top - ripple.offsetHeight / 2 - document.body.scrollTop) + 'px'
+ ripple.style.left = (e.pageX - rect.left - ripple.offsetWidth / 2 - document.body.scrollLeft) + 'px'
+ }
+ ripple.style.backgroundColor = opts.bgc
+ ripple.className = 'e-ripple z-active'
+ return false
+ }
+}
diff --git a/src/components/ImageCropper/utils/language.js b/src/components/ImageCropper/utils/language.js
new file mode 100644
index 0000000..727872d
--- /dev/null
+++ b/src/components/ImageCropper/utils/language.js
@@ -0,0 +1,232 @@
+export default {
+ zh: {
+ hint: '点击,或拖动图片至此处',
+ loading: '正在上传……',
+ noSupported: '浏览器不支持该功能,请使用IE10以上或其他现在浏览器!',
+ success: '上传成功',
+ fail: '图片上传失败',
+ preview: '头像预览',
+ btn: {
+ off: '取消',
+ close: '关闭',
+ back: '上一步',
+ save: '保存'
+ },
+ error: {
+ onlyImg: '仅限图片格式',
+ outOfSize: '单文件大小不能超过 ',
+ lowestPx: '图片最低像素为(宽*高):'
+ }
+ },
+ 'zh-tw': {
+ hint: '點擊,或拖動圖片至此處',
+ loading: '正在上傳……',
+ noSupported: '瀏覽器不支持該功能,請使用IE10以上或其他現代瀏覽器!',
+ success: '上傳成功',
+ fail: '圖片上傳失敗',
+ preview: '頭像預覽',
+ btn: {
+ off: '取消',
+ close: '關閉',
+ back: '上一步',
+ save: '保存'
+ },
+ error: {
+ onlyImg: '僅限圖片格式',
+ outOfSize: '單文件大小不能超過 ',
+ lowestPx: '圖片最低像素為(寬*高):'
+ }
+ },
+ en: {
+ hint: 'Click or drag the file here to upload',
+ loading: 'Uploading…',
+ noSupported: 'Browser is not supported, please use IE10+ or other browsers',
+ success: 'Upload success',
+ fail: 'Upload failed',
+ preview: 'Preview',
+ btn: {
+ off: 'Cancel',
+ close: 'Close',
+ back: 'Back',
+ save: 'Save'
+ },
+ error: {
+ onlyImg: 'Image only',
+ outOfSize: 'Image exceeds size limit: ',
+ lowestPx: 'Image\'s size is too low. Expected at least: '
+ }
+ },
+ ro: {
+ hint: 'Atinge sau trage fișierul aici',
+ loading: 'Se încarcă',
+ noSupported: 'Browser-ul tău nu suportă acest feature. Te rugăm încearcă cu alt browser.',
+ success: 'S-a încărcat cu succes',
+ fail: 'A apărut o problemă la încărcare',
+ preview: 'Previzualizează',
+
+ btn: {
+ off: 'Anulează',
+ close: 'Închide',
+ back: 'Înapoi',
+ save: 'Salvează'
+ },
+
+ error: {
+ onlyImg: 'Doar imagini',
+ outOfSize: 'Imaginea depășește limita de: ',
+ loewstPx: 'Imaginea este prea mică; Minim: '
+ }
+ },
+ ru: {
+ hint: 'Нажмите, или перетащите файл в это окно',
+ loading: 'Загружаю……',
+ noSupported: 'Ваш браузер не поддерживается, пожалуйста, используйте IE10 + или другие браузеры',
+ success: 'Загрузка выполнена успешно',
+ fail: 'Ошибка загрузки',
+ preview: 'Предпросмотр',
+ btn: {
+ off: 'Отменить',
+ close: 'Закрыть',
+ back: 'Назад',
+ save: 'Сохранить'
+ },
+ error: {
+ onlyImg: 'Только изображения',
+ outOfSize: 'Изображение превышает предельный размер: ',
+ lowestPx: 'Минимальный размер изображения: '
+ }
+ },
+ 'pt-br': {
+ hint: 'Clique ou arraste o arquivo aqui para carregar',
+ loading: 'Carregando…',
+ noSupported: 'Browser não suportado, use o IE10+ ou outro browser',
+ success: 'Sucesso ao carregar imagem',
+ fail: 'Falha ao carregar imagem',
+ preview: 'Pré-visualizar',
+ btn: {
+ off: 'Cancelar',
+ close: 'Fechar',
+ back: 'Voltar',
+ save: 'Salvar'
+ },
+ error: {
+ onlyImg: 'Apenas imagens',
+ outOfSize: 'A imagem excede o limite de tamanho: ',
+ lowestPx: 'O tamanho da imagem é muito pequeno. Tamanho mínimo: '
+ }
+ },
+ fr: {
+ hint: 'Cliquez ou glissez le fichier ici.',
+ loading: 'Téléchargement…',
+ noSupported: 'Votre navigateur n\'est pas supporté. Utilisez IE10 + ou un autre navigateur s\'il vous plaît.',
+ success: 'Téléchargement réussit',
+ fail: 'Téléchargement echoué',
+ preview: 'Aperçu',
+ btn: {
+ off: 'Annuler',
+ close: 'Fermer',
+ back: 'Retour',
+ save: 'Enregistrer'
+ },
+ error: {
+ onlyImg: 'Image uniquement',
+ outOfSize: 'L\'image sélectionnée dépasse la taille maximum: ',
+ lowestPx: 'L\'image sélectionnée est trop petite. Dimensions attendues: '
+ }
+ },
+ nl: {
+ hint: 'Klik hier of sleep een afbeelding in dit vlak',
+ loading: 'Uploaden…',
+ noSupported: 'Je browser wordt helaas niet ondersteund. Gebruik IE10+ of een andere browser.',
+ success: 'Upload succesvol',
+ fail: 'Upload mislukt',
+ preview: 'Voorbeeld',
+ btn: {
+ off: 'Annuleren',
+ close: 'Sluiten',
+ back: 'Terug',
+ save: 'Opslaan'
+ },
+ error: {
+ onlyImg: 'Alleen afbeeldingen',
+ outOfSize: 'De afbeelding is groter dan: ',
+ lowestPx: 'De afbeelding is te klein! Minimale afmetingen: '
+ }
+ },
+ tr: {
+ hint: 'Tıkla veya yüklemek istediğini buraya sürükle',
+ loading: 'Yükleniyor…',
+ noSupported: 'Tarayıcı desteklenmiyor, lütfen IE10+ veya farklı tarayıcı kullanın',
+ success: 'Yükleme başarılı',
+ fail: 'Yüklemede hata oluştu',
+ preview: 'Önizle',
+ btn: {
+ off: 'İptal',
+ close: 'Kapat',
+ back: 'Geri',
+ save: 'Kaydet'
+ },
+ error: {
+ onlyImg: 'Sadece resim',
+ outOfSize: 'Resim yükleme limitini aşıyor: ',
+ lowestPx: 'Resmin boyutu çok küçük. En az olması gereken: '
+ }
+ },
+ 'es-MX': {
+ hint: 'Selecciona o arrastra una imagen',
+ loading: 'Subiendo...',
+ noSupported: 'Tu navegador no es soportado, porfavor usa IE10+ u otros navegadores mas recientes',
+ success: 'Subido exitosamente',
+ fail: 'Sucedió un error',
+ preview: 'Vista previa',
+ btn: {
+ off: 'Cancelar',
+ close: 'Cerrar',
+ back: 'Atras',
+ save: 'Guardar'
+ },
+ error: {
+ onlyImg: 'Unicamente imagenes',
+ outOfSize: 'La imagen excede el tamaño maximo:',
+ lowestPx: 'La imagen es demasiado pequeño. Se espera por lo menos:'
+ }
+ },
+ de: {
+ hint: 'Klick hier oder zieh eine Datei hier rein zum Hochladen',
+ loading: 'Hochladen…',
+ noSupported: 'Browser wird nicht unterstützt, bitte verwende IE10+ oder andere Browser',
+ success: 'Upload erfolgreich',
+ fail: 'Upload fehlgeschlagen',
+ preview: 'Vorschau',
+ btn: {
+ off: 'Abbrechen',
+ close: 'Schließen',
+ back: 'Zurück',
+ save: 'Speichern'
+ },
+ error: {
+ onlyImg: 'Nur Bilder',
+ outOfSize: 'Das Bild ist zu groß: ',
+ lowestPx: 'Das Bild ist zu klein. Mindestens: '
+ }
+ },
+ ja: {
+ hint: 'クリック・ドラッグしてファイルをアップロード',
+ loading: 'アップロード中...',
+ noSupported: 'このブラウザは対応されていません。IE10+かその他の主要ブラウザをお使いください。',
+ success: 'アップロード成功',
+ fail: 'アップロード失敗',
+ preview: 'プレビュー',
+ btn: {
+ off: 'キャンセル',
+ close: '閉じる',
+ back: '戻る',
+ save: '保存'
+ },
+ error: {
+ onlyImg: '画像のみ',
+ outOfSize: '画像サイズが上限を超えています。上限: ',
+ lowestPx: '画像が小さすぎます。最小サイズ: '
+ }
+ }
+}
diff --git a/src/components/ImageCropper/utils/mimes.js b/src/components/ImageCropper/utils/mimes.js
new file mode 100644
index 0000000..e20c085
--- /dev/null
+++ b/src/components/ImageCropper/utils/mimes.js
@@ -0,0 +1,7 @@
+export default {
+ 'jpg': 'image/jpeg',
+ 'png': 'image/png',
+ 'gif': 'image/gif',
+ 'svg': 'image/svg+xml',
+ 'psd': 'image/photoshop'
+}
diff --git a/src/components/JsonEditor/index.vue b/src/components/JsonEditor/index.vue
new file mode 100644
index 0000000..c05b090
--- /dev/null
+++ b/src/components/JsonEditor/index.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Kanban/index.vue b/src/components/Kanban/index.vue
new file mode 100644
index 0000000..82f7dd7
--- /dev/null
+++ b/src/components/Kanban/index.vue
@@ -0,0 +1,99 @@
+
+
+
+ {{ headerText }}
+
+
+
+ {{ element.name }} {{ element.id }}
+
+
+
+
+
+
+
+
diff --git a/src/components/LangSelect/index.vue b/src/components/LangSelect/index.vue
new file mode 100644
index 0000000..374fe30
--- /dev/null
+++ b/src/components/LangSelect/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+ 中文
+
+
+ English
+
+
+ Español
+
+
+ 日本語
+
+
+
+
+
+
diff --git a/src/components/MDinput/index.vue b/src/components/MDinput/index.vue
new file mode 100644
index 0000000..c59ea34
--- /dev/null
+++ b/src/components/MDinput/index.vue
@@ -0,0 +1,360 @@
+
+
+
+
+
+
+
diff --git a/src/components/MarkdownEditor/default-options.js b/src/components/MarkdownEditor/default-options.js
new file mode 100644
index 0000000..303aa13
--- /dev/null
+++ b/src/components/MarkdownEditor/default-options.js
@@ -0,0 +1,31 @@
+// doc: https://nhnent.github.io/tui.editor/api/latest/ToastUIEditor.html#ToastUIEditor
+export default {
+ minHeight: '200px',
+ previewStyle: 'vertical',
+ useCommandShortcut: true,
+ useDefaultHTMLSanitizer: true,
+ usageStatistics: false,
+ hideModeSwitch: false,
+ toolbarItems: [
+ 'heading',
+ 'bold',
+ 'italic',
+ 'strike',
+ 'divider',
+ 'hr',
+ 'quote',
+ 'divider',
+ 'ul',
+ 'ol',
+ 'task',
+ 'indent',
+ 'outdent',
+ 'divider',
+ 'table',
+ 'image',
+ 'link',
+ 'divider',
+ 'code',
+ 'codeblock'
+ ]
+}
diff --git a/src/components/MarkdownEditor/index.vue b/src/components/MarkdownEditor/index.vue
new file mode 100644
index 0000000..1a8a01e
--- /dev/null
+++ b/src/components/MarkdownEditor/index.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
diff --git a/src/components/MobileView/AdBar.vue b/src/components/MobileView/AdBar.vue
new file mode 100644
index 0000000..300c78d
--- /dev/null
+++ b/src/components/MobileView/AdBar.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/MobileView/HoverBlock.vue b/src/components/MobileView/HoverBlock.vue
new file mode 100644
index 0000000..a7b6b04
--- /dev/null
+++ b/src/components/MobileView/HoverBlock.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
diff --git a/src/components/MobileView/MobileView.vue b/src/components/MobileView/MobileView.vue
new file mode 100644
index 0000000..efe3bdb
--- /dev/null
+++ b/src/components/MobileView/MobileView.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue
new file mode 100644
index 0000000..e489b2c
--- /dev/null
+++ b/src/components/Pagination/index.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
diff --git a/src/components/PanThumb/index.vue b/src/components/PanThumb/index.vue
new file mode 100644
index 0000000..1bcf417
--- /dev/null
+++ b/src/components/PanThumb/index.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/src/components/PicUploader/PicListUploader.vue b/src/components/PicUploader/PicListUploader.vue
new file mode 100644
index 0000000..2461a7d
--- /dev/null
+++ b/src/components/PicUploader/PicListUploader.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/PicUploader/PicUploader.vue b/src/components/PicUploader/PicUploader.vue
new file mode 100644
index 0000000..3b14d5f
--- /dev/null
+++ b/src/components/PicUploader/PicUploader.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue
new file mode 100644
index 0000000..55e8c1e
--- /dev/null
+++ b/src/components/RightPanel/index.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Screenfull/index.vue b/src/components/Screenfull/index.vue
new file mode 100644
index 0000000..260c90d
--- /dev/null
+++ b/src/components/Screenfull/index.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SectionTitle/SectionTitle.vue b/src/components/SectionTitle/SectionTitle.vue
new file mode 100644
index 0000000..d9e5a29
--- /dev/null
+++ b/src/components/SectionTitle/SectionTitle.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
diff --git a/src/components/SelectAssets/index.vue b/src/components/SelectAssets/index.vue
new file mode 100644
index 0000000..fd428f3
--- /dev/null
+++ b/src/components/SelectAssets/index.vue
@@ -0,0 +1,659 @@
+
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+ 例如:http://hairuyi.com/admin/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 返回上一级
+
+
+
+ 全部文件
+
+
+
+ {{ dir.showName }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.showName }}
+
+
+
+
+
+
+
+ {{ row.providerName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.name
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SelectBox/index.vue b/src/components/SelectBox/index.vue
new file mode 100644
index 0000000..ddffa88
--- /dev/null
+++ b/src/components/SelectBox/index.vue
@@ -0,0 +1,143 @@
+
+
+
+ {{ showString }}
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SelectDIYModule/index.vue b/src/components/SelectDIYModule/index.vue
new file mode 100644
index 0000000..9638540
--- /dev/null
+++ b/src/components/SelectDIYModule/index.vue
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
imgCheckChange(idx, item, val)"
+ >
+
+
+
+
+ {{ checkItem.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SelectModule/index.vue b/src/components/SelectModule/index.vue
new file mode 100644
index 0000000..0b4ddec
--- /dev/null
+++ b/src/components/SelectModule/index.vue
@@ -0,0 +1,311 @@
+
+
+
+
+
选择功能
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+
+
+
+
{{ item.name }}
+
+ 选取
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Share/DropdownMenu.vue b/src/components/Share/DropdownMenu.vue
new file mode 100644
index 0000000..d194a51
--- /dev/null
+++ b/src/components/Share/DropdownMenu.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
diff --git a/src/components/SizeSelect/index.vue b/src/components/SizeSelect/index.vue
new file mode 100644
index 0000000..cf68d21
--- /dev/null
+++ b/src/components/SizeSelect/index.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+ {{
+ item.label }}
+
+
+
+
+
+
diff --git a/src/components/SplitLine/index.vue b/src/components/SplitLine/index.vue
new file mode 100644
index 0000000..0b881a1
--- /dev/null
+++ b/src/components/SplitLine/index.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/src/components/Sticky/index.vue b/src/components/Sticky/index.vue
new file mode 100644
index 0000000..97ce0e9
--- /dev/null
+++ b/src/components/Sticky/index.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue
new file mode 100644
index 0000000..b07ded2
--- /dev/null
+++ b/src/components/SvgIcon/index.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/TextHoverEffect/Mallki.vue b/src/components/TextHoverEffect/Mallki.vue
new file mode 100644
index 0000000..5d6d16c
--- /dev/null
+++ b/src/components/TextHoverEffect/Mallki.vue
@@ -0,0 +1,113 @@
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue
new file mode 100644
index 0000000..e037974
--- /dev/null
+++ b/src/components/ThemePicker/index.vue
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
diff --git a/src/components/TimeFrequency/index.vue b/src/components/TimeFrequency/index.vue
new file mode 100644
index 0000000..c1fb465
--- /dev/null
+++ b/src/components/TimeFrequency/index.vue
@@ -0,0 +1,419 @@
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+ 请选择日期
+
+
+
+ {{ item.label }}
+
+
+
+
+
+ 请选择日期
+
+
+
+ {{ item.label }}
+
+
+
+
+
+ 提示:若选择28-31号,当月没有该日期,则默认为当前月份最后一天
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Tinymce/components/EditorImage.vue b/src/components/Tinymce/components/EditorImage.vue
new file mode 100644
index 0000000..07d48e6
--- /dev/null
+++ b/src/components/Tinymce/components/EditorImage.vue
@@ -0,0 +1,111 @@
+
+
+
+ upload
+
+
+
+
+ Click upload
+
+
+
+ Cancel
+
+
+ Confirm
+
+
+
+
+
+
+
+
diff --git a/src/components/Tinymce/dynamicLoadScript.js b/src/components/Tinymce/dynamicLoadScript.js
new file mode 100644
index 0000000..185f58d
--- /dev/null
+++ b/src/components/Tinymce/dynamicLoadScript.js
@@ -0,0 +1,59 @@
+let callbacks = []
+
+function loadedTinymce() {
+ // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144
+ // check is successfully downloaded script
+ return window.tinymce
+}
+
+const dynamicLoadScript = (src, callback) => {
+ const existingScript = document.getElementById(src)
+ const cb = callback || function() {}
+
+ if (!existingScript) {
+ const script = document.createElement('script')
+ script.src = src // src url for the third-party library being loaded.
+ script.id = src
+ document.body.appendChild(script)
+ callbacks.push(cb)
+ const onEnd = 'onload' in script ? stdOnEnd : ieOnEnd
+ onEnd(script)
+ }
+
+ if (existingScript && cb) {
+ if (loadedTinymce()) {
+ cb(null, existingScript)
+ } else {
+ callbacks.push(cb)
+ }
+ }
+
+ function stdOnEnd(script) {
+ script.onload = function() {
+ // this.onload = null here is necessary
+ // because even IE9 works not like others
+ this.onerror = this.onload = null
+ for (const cb of callbacks) {
+ cb(null, script)
+ }
+ callbacks = null
+ }
+ script.onerror = function() {
+ this.onerror = this.onload = null
+ cb(new Error('Failed to load ' + src), script)
+ }
+ }
+
+ function ieOnEnd(script) {
+ script.onreadystatechange = function() {
+ if (this.readyState !== 'complete' && this.readyState !== 'loaded') return
+ this.onreadystatechange = null
+ for (const cb of callbacks) {
+ cb(null, script) // there is no way to catch loading errors in IE8
+ }
+ callbacks = null
+ }
+ }
+}
+
+export default dynamicLoadScript
diff --git a/src/components/Tinymce/index.vue b/src/components/Tinymce/index.vue
new file mode 100644
index 0000000..38c0ba3
--- /dev/null
+++ b/src/components/Tinymce/index.vue
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
diff --git a/src/components/Tinymce/plugins.js b/src/components/Tinymce/plugins.js
new file mode 100644
index 0000000..058d2ae
--- /dev/null
+++ b/src/components/Tinymce/plugins.js
@@ -0,0 +1,7 @@
+// Any plugins you want to use has to be imported
+// Detail plugins list see https://www.tinymce.com/docs/plugins/
+// Custom builds see https://www.tinymce.com/download/custom-builds/
+
+const plugins = ['advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount']
+
+export default plugins
diff --git a/src/components/Tinymce/toolbar.js b/src/components/Tinymce/toolbar.js
new file mode 100644
index 0000000..4f8a545
--- /dev/null
+++ b/src/components/Tinymce/toolbar.js
@@ -0,0 +1,6 @@
+// Here is a list of the toolbar
+// Detail list see https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols
+
+const toolbar = ['searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote undo redo removeformat subscript superscript code codesample', 'hr bullist numlist link image charmap preview anchor pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen']
+
+export default toolbar
diff --git a/src/components/Upload/SingleImage.vue b/src/components/Upload/SingleImage.vue
new file mode 100644
index 0000000..d16bbf3
--- /dev/null
+++ b/src/components/Upload/SingleImage.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Upload/SingleImage2.vue b/src/components/Upload/SingleImage2.vue
new file mode 100644
index 0000000..07637a9
--- /dev/null
+++ b/src/components/Upload/SingleImage2.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+ Drag或点击上传
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Upload/SingleImage3.vue b/src/components/Upload/SingleImage3.vue
new file mode 100644
index 0000000..6300da4
--- /dev/null
+++ b/src/components/Upload/SingleImage3.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/UploadExcel/index.vue b/src/components/UploadExcel/index.vue
new file mode 100644
index 0000000..9e8ba8b
--- /dev/null
+++ b/src/components/UploadExcel/index.vue
@@ -0,0 +1,138 @@
+
+
+
+
+ Drop excel file here or
+
+ Browse
+
+
+
+
+
+
+
+
diff --git a/src/components/VerifySmsDialog/index.vue b/src/components/VerifySmsDialog/index.vue
new file mode 100644
index 0000000..dbc058d
--- /dev/null
+++ b/src/components/VerifySmsDialog/index.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
安全校验
+ 为了保护您的账户安全,请通过安全验证
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认
+ 取消
+
+
+
+
+
+
+
+
+
diff --git a/src/components/VerticalLine/VerticalLine.vue b/src/components/VerticalLine/VerticalLine.vue
new file mode 100644
index 0000000..d75d04b
--- /dev/null
+++ b/src/components/VerticalLine/VerticalLine.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
diff --git a/src/directive/clipboard/clipboard.js b/src/directive/clipboard/clipboard.js
new file mode 100644
index 0000000..514aad2
--- /dev/null
+++ b/src/directive/clipboard/clipboard.js
@@ -0,0 +1,49 @@
+// Inspired by https://github.com/Inndy/vue-clipboard2
+const Clipboard = require('clipboard')
+if (!Clipboard) {
+ throw new Error('you should npm install `clipboard` --save at first ')
+}
+
+export default {
+ bind(el, binding) {
+ if (binding.arg === 'success') {
+ el._v_clipboard_success = binding.value
+ } else if (binding.arg === 'error') {
+ el._v_clipboard_error = binding.value
+ } else {
+ const clipboard = new Clipboard(el, {
+ text() { return binding.value },
+ action() { return binding.arg === 'cut' ? 'cut' : 'copy' }
+ })
+ clipboard.on('success', e => {
+ const callback = el._v_clipboard_success
+ callback && callback(e) // eslint-disable-line
+ })
+ clipboard.on('error', e => {
+ const callback = el._v_clipboard_error
+ callback && callback(e) // eslint-disable-line
+ })
+ el._v_clipboard = clipboard
+ }
+ },
+ update(el, binding) {
+ if (binding.arg === 'success') {
+ el._v_clipboard_success = binding.value
+ } else if (binding.arg === 'error') {
+ el._v_clipboard_error = binding.value
+ } else {
+ el._v_clipboard.text = function() { return binding.value }
+ el._v_clipboard.action = function() { return binding.arg === 'cut' ? 'cut' : 'copy' }
+ }
+ },
+ unbind(el, binding) {
+ if (binding.arg === 'success') {
+ delete el._v_clipboard_success
+ } else if (binding.arg === 'error') {
+ delete el._v_clipboard_error
+ } else {
+ el._v_clipboard.destroy()
+ delete el._v_clipboard
+ }
+ }
+}
diff --git a/src/directive/clipboard/index.js b/src/directive/clipboard/index.js
new file mode 100644
index 0000000..02c9816
--- /dev/null
+++ b/src/directive/clipboard/index.js
@@ -0,0 +1,13 @@
+import Clipboard from './clipboard'
+
+const install = function(Vue) {
+ Vue.directive('Clipboard', Clipboard)
+}
+
+if (window.Vue) {
+ window.clipboard = Clipboard
+ Vue.use(install); // eslint-disable-line
+}
+
+Clipboard.install = install
+export default Clipboard
diff --git a/src/directive/drag/drag.js b/src/directive/drag/drag.js
new file mode 100644
index 0000000..f3936b3
--- /dev/null
+++ b/src/directive/drag/drag.js
@@ -0,0 +1,39 @@
+export default {
+ bind(el, binding) {
+ const odiv = el // 获取当前元素
+ console.log(odiv)
+ odiv.onmousedown = e => {
+ console.log('??鼠标按下了')
+ // 算出鼠标相对元素的位置
+ const disX = e.clientX - odiv.offsetLeft
+ const disY = e.clientY - odiv.offsetTop
+ // const moveWrapDom = document.getElementById(binding.value)
+
+ document.onmousemove = function(e) {
+ // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
+ const left = e.clientX - disX
+ const top = e.clientY - disY
+ if (top > window.screen.availHeight - this.selfHeight) {
+ this.positionX = window.screen.availHeight - this.selfHeight
+ return
+ }
+ if (left > window.screen.availHeight - this.selfWidth) {
+ this.positionY = window.screen.availHeight - this.selfWidth
+ return
+ }
+
+ // 绑定元素位置到positionX和positionY上面
+ this.positionX = top
+ this.positionY = left
+
+ // 移动当前元素
+ odiv.style.left = left + 'px'
+ odiv.style.top = top + 'px'
+ }
+ document.onmouseup = function(e) {
+ document.onmousemove = null
+ document.onmouseup = null
+ }
+ }
+ }
+}
diff --git a/src/directive/drag/index.js b/src/directive/drag/index.js
new file mode 100644
index 0000000..777c9bb
--- /dev/null
+++ b/src/directive/drag/index.js
@@ -0,0 +1,13 @@
+import drag from './drag'
+
+const install = function(Vue) {
+ Vue.directive('my-drag', drag)
+}
+
+if (window.Vue) {
+ window['my-drag'] = drag
+ Vue.use(install) // eslint-disable-line
+}
+
+drag.install = install
+export default drag
diff --git a/src/directive/el-drag-dialog/drag.js b/src/directive/el-drag-dialog/drag.js
new file mode 100644
index 0000000..d25e945
--- /dev/null
+++ b/src/directive/el-drag-dialog/drag.js
@@ -0,0 +1,77 @@
+export default {
+ bind(el, binding, vnode) {
+ const dialogHeaderEl = el.querySelector('.el-dialog__header')
+ const dragDom = el.querySelector('.el-dialog')
+ dialogHeaderEl.style.cssText += ';cursor:move;'
+ dragDom.style.cssText += ';top:0px;'
+
+ // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
+ const getStyle = (function() {
+ if (window.document.currentStyle) {
+ return (dom, attr) => dom.currentStyle[attr]
+ } else {
+ return (dom, attr) => getComputedStyle(dom, false)[attr]
+ }
+ })()
+
+ dialogHeaderEl.onmousedown = e => {
+ // 鼠标按下,计算当前元素距离可视区的距离
+ const disX = e.clientX - dialogHeaderEl.offsetLeft
+ const disY = e.clientY - dialogHeaderEl.offsetTop
+
+ const dragDomWidth = dragDom.offsetWidth
+ const dragDomHeight = dragDom.offsetHeight
+
+ const screenWidth = document.body.clientWidth
+ const screenHeight = document.body.clientHeight
+
+ const minDragDomLeft = dragDom.offsetLeft
+ const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth
+
+ const minDragDomTop = dragDom.offsetTop
+ const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight
+
+ // 获取到的值带px 正则匹配替换
+ let styL = getStyle(dragDom, 'left')
+ let styT = getStyle(dragDom, 'top')
+
+ if (styL.includes('%')) {
+ styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100)
+ styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100)
+ } else {
+ styL = +styL.replace(/\px/g, '')
+ styT = +styT.replace(/\px/g, '')
+ }
+
+ document.onmousemove = function(e) {
+ // 通过事件委托,计算移动的距离
+ let left = e.clientX - disX
+ let top = e.clientY - disY
+
+ // 边界处理
+ if (-left > minDragDomLeft) {
+ left = -minDragDomLeft
+ } else if (left > maxDragDomLeft) {
+ left = maxDragDomLeft
+ }
+
+ if (-top > minDragDomTop) {
+ top = -minDragDomTop
+ } else if (top > maxDragDomTop) {
+ top = maxDragDomTop
+ }
+
+ // 移动当前元素
+ dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
+
+ // emit onDrag event
+ vnode.child.$emit('dragDialog')
+ }
+
+ document.onmouseup = e => {
+ document.onmousemove = null
+ document.onmouseup = null
+ }
+ }
+ }
+}
diff --git a/src/directive/el-drag-dialog/index.js b/src/directive/el-drag-dialog/index.js
new file mode 100644
index 0000000..29facbf
--- /dev/null
+++ b/src/directive/el-drag-dialog/index.js
@@ -0,0 +1,13 @@
+import drag from './drag'
+
+const install = function(Vue) {
+ Vue.directive('el-drag-dialog', drag)
+}
+
+if (window.Vue) {
+ window['el-drag-dialog'] = drag
+ Vue.use(install); // eslint-disable-line
+}
+
+drag.install = install
+export default drag
diff --git a/src/directive/el-table/adaptive.js b/src/directive/el-table/adaptive.js
new file mode 100644
index 0000000..d229e9f
--- /dev/null
+++ b/src/directive/el-table/adaptive.js
@@ -0,0 +1,41 @@
+import { addResizeListener, removeResizeListener } from 'element-ui/src/utils/resize-event'
+
+/**
+ * How to use
+ * ...
+ * el-table height is must be set
+ * bottomOffset: 30(default) // The height of the table from the bottom of the page.
+ */
+
+const doResize = (el, binding, vnode) => {
+ const { componentInstance: $table } = vnode
+
+ const { value } = binding
+
+ if (!$table.height) {
+ throw new Error(`el-$table must set the height. Such as height='100px'`)
+ }
+ const bottomOffset = (value && value.bottomOffset) || 30
+
+ if (!$table) return
+
+ const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset
+ $table.layout.setHeight(height)
+ $table.doLayout()
+}
+
+export default {
+ bind(el, binding, vnode) {
+ el.resizeListener = () => {
+ doResize(el, binding, vnode)
+ }
+ // parameter 1 is must be "Element" type
+ addResizeListener(window.document.body, el.resizeListener)
+ },
+ inserted(el, binding, vnode) {
+ doResize(el, binding, vnode)
+ },
+ unbind(el) {
+ removeResizeListener(window.document.body, el.resizeListener)
+ }
+}
diff --git a/src/directive/el-table/index.js b/src/directive/el-table/index.js
new file mode 100644
index 0000000..d3d4515
--- /dev/null
+++ b/src/directive/el-table/index.js
@@ -0,0 +1,13 @@
+import adaptive from './adaptive'
+
+const install = function(Vue) {
+ Vue.directive('el-height-adaptive-table', adaptive)
+}
+
+if (window.Vue) {
+ window['el-height-adaptive-table'] = adaptive
+ Vue.use(install); // eslint-disable-line
+}
+
+adaptive.install = install
+export default adaptive
diff --git a/src/directive/permission/index.js b/src/directive/permission/index.js
new file mode 100644
index 0000000..e5dadd3
--- /dev/null
+++ b/src/directive/permission/index.js
@@ -0,0 +1,13 @@
+import permission from './permission'
+
+const install = function(Vue) {
+ Vue.directive('permission', permission)
+}
+
+if (window.Vue) {
+ window['permission'] = permission
+ Vue.use(install); // eslint-disable-line
+}
+
+permission.install = install
+export default permission
diff --git a/src/directive/permission/permission.js b/src/directive/permission/permission.js
new file mode 100644
index 0000000..49d1f88
--- /dev/null
+++ b/src/directive/permission/permission.js
@@ -0,0 +1,31 @@
+import store from '@/store'
+
+function checkPermission(el, binding) {
+ const { value } = binding
+ const roles = store.getters && store.getters.roles
+
+ if (value && value instanceof Array) {
+ if (value.length > 0) {
+ const permissionRoles = value
+
+ const hasPermission = roles.some(role => {
+ return permissionRoles.includes(role)
+ })
+
+ if (!hasPermission) {
+ el.parentNode && el.parentNode.removeChild(el)
+ }
+ }
+ } else {
+ throw new Error(`need roles! Like v-permission="['admin','editor']"`)
+ }
+}
+
+export default {
+ inserted(el, binding) {
+ checkPermission(el, binding)
+ },
+ update(el, binding) {
+ checkPermission(el, binding)
+ }
+}
diff --git a/src/directive/sticky.js b/src/directive/sticky.js
new file mode 100644
index 0000000..bc23466
--- /dev/null
+++ b/src/directive/sticky.js
@@ -0,0 +1,91 @@
+const vueSticky = {}
+let listenAction
+vueSticky.install = Vue => {
+ Vue.directive('sticky', {
+ inserted(el, binding) {
+ const params = binding.value || {}
+ const stickyTop = params.stickyTop || 0
+ const zIndex = params.zIndex || 1000
+ const elStyle = el.style
+
+ elStyle.position = '-webkit-sticky'
+ elStyle.position = 'sticky'
+ // if the browser support css sticky(Currently Safari, Firefox and Chrome Canary)
+ // if (~elStyle.position.indexOf('sticky')) {
+ // elStyle.top = `${stickyTop}px`;
+ // elStyle.zIndex = zIndex;
+ // return
+ // }
+ const elHeight = el.getBoundingClientRect().height
+ const elWidth = el.getBoundingClientRect().width
+ elStyle.cssText = `top: ${stickyTop}px; z-index: ${zIndex}`
+
+ const parentElm = el.parentNode || document.documentElement
+ const placeholder = document.createElement('div')
+ placeholder.style.display = 'none'
+ placeholder.style.width = `${elWidth}px`
+ placeholder.style.height = `${elHeight}px`
+ parentElm.insertBefore(placeholder, el)
+
+ let active = false
+
+ const getScroll = (target, top) => {
+ const prop = top ? 'pageYOffset' : 'pageXOffset'
+ const method = top ? 'scrollTop' : 'scrollLeft'
+ let ret = target[prop]
+ if (typeof ret !== 'number') {
+ ret = window.document.documentElement[method]
+ }
+ return ret
+ }
+
+ const sticky = () => {
+ if (active) {
+ return
+ }
+ if (!elStyle.height) {
+ elStyle.height = `${el.offsetHeight}px`
+ }
+
+ elStyle.position = 'fixed'
+ elStyle.width = `${elWidth}px`
+ placeholder.style.display = 'inline-block'
+ active = true
+ }
+
+ const reset = () => {
+ if (!active) {
+ return
+ }
+
+ elStyle.position = ''
+ placeholder.style.display = 'none'
+ active = false
+ }
+
+ const check = () => {
+ const scrollTop = getScroll(window, true)
+ const offsetTop = el.getBoundingClientRect().top
+ if (offsetTop < stickyTop) {
+ sticky()
+ } else {
+ if (scrollTop < elHeight + stickyTop) {
+ reset()
+ }
+ }
+ }
+ listenAction = () => {
+ check()
+ }
+
+ window.addEventListener('scroll', listenAction)
+ },
+
+ unbind() {
+ window.removeEventListener('scroll', listenAction)
+ }
+ })
+}
+
+export default vueSticky
+
diff --git a/src/directive/waves/index.js b/src/directive/waves/index.js
new file mode 100644
index 0000000..65f9b30
--- /dev/null
+++ b/src/directive/waves/index.js
@@ -0,0 +1,13 @@
+import waves from './waves'
+
+const install = function(Vue) {
+ Vue.directive('waves', waves)
+}
+
+if (window.Vue) {
+ window.waves = waves
+ Vue.use(install); // eslint-disable-line
+}
+
+waves.install = install
+export default waves
diff --git a/src/directive/waves/waves.css b/src/directive/waves/waves.css
new file mode 100644
index 0000000..af7a7ef
--- /dev/null
+++ b/src/directive/waves/waves.css
@@ -0,0 +1,26 @@
+.waves-ripple {
+ position: absolute;
+ border-radius: 100%;
+ background-color: rgba(0, 0, 0, 0.15);
+ background-clip: padding-box;
+ pointer-events: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ opacity: 1;
+}
+
+.waves-ripple.z-active {
+ opacity: 0;
+ -webkit-transform: scale(2);
+ -ms-transform: scale(2);
+ transform: scale(2);
+ -webkit-transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out;
+ transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out;
+ transition: opacity 1.2s ease-out, transform 0.6s ease-out;
+ transition: opacity 1.2s ease-out, transform 0.6s ease-out, -webkit-transform 0.6s ease-out;
+}
\ No newline at end of file
diff --git a/src/directive/waves/waves.js b/src/directive/waves/waves.js
new file mode 100644
index 0000000..ec2ff43
--- /dev/null
+++ b/src/directive/waves/waves.js
@@ -0,0 +1,72 @@
+import './waves.css'
+
+const context = '@@wavesContext'
+
+function handleClick(el, binding) {
+ function handle(e) {
+ const customOpts = Object.assign({}, binding.value)
+ const opts = Object.assign({
+ ele: el, // 波纹作用元素
+ type: 'hit', // hit 点击位置扩散 center中心点扩展
+ color: 'rgba(0, 0, 0, 0.15)' // 波纹颜色
+ },
+ customOpts
+ )
+ const target = opts.ele
+ if (target) {
+ target.style.position = 'relative'
+ target.style.overflow = 'hidden'
+ const rect = target.getBoundingClientRect()
+ let ripple = target.querySelector('.waves-ripple')
+ if (!ripple) {
+ ripple = document.createElement('span')
+ ripple.className = 'waves-ripple'
+ ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px'
+ target.appendChild(ripple)
+ } else {
+ ripple.className = 'waves-ripple'
+ }
+ switch (opts.type) {
+ case 'center':
+ ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + 'px'
+ ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + 'px'
+ break
+ default:
+ ripple.style.top =
+ (e.pageY - rect.top - ripple.offsetHeight / 2 - document.documentElement.scrollTop ||
+ document.body.scrollTop) + 'px'
+ ripple.style.left =
+ (e.pageX - rect.left - ripple.offsetWidth / 2 - document.documentElement.scrollLeft ||
+ document.body.scrollLeft) + 'px'
+ }
+ ripple.style.backgroundColor = opts.color
+ ripple.className = 'waves-ripple z-active'
+ return false
+ }
+ }
+
+ if (!el[context]) {
+ el[context] = {
+ removeHandle: handle
+ }
+ } else {
+ el[context].removeHandle = handle
+ }
+
+ return handle
+}
+
+export default {
+ bind(el, binding) {
+ el.addEventListener('click', handleClick(el, binding), false)
+ },
+ update(el, binding) {
+ el.removeEventListener('click', el[context].removeHandle, false)
+ el.addEventListener('click', handleClick(el, binding), false)
+ },
+ unbind(el) {
+ el.removeEventListener('click', el[context].removeHandle, false)
+ el[context] = null
+ delete el[context]
+ }
+}
diff --git a/src/filters/index.js b/src/filters/index.js
new file mode 100644
index 0000000..585279c
--- /dev/null
+++ b/src/filters/index.js
@@ -0,0 +1,80 @@
+// import parseTime, formatTime and set to filter
+export { parseTime, formatTime } from '@/utils'
+
+/**
+ * Show plural label if time is plural number
+ * @param {number} time
+ * @param {string} label
+ * @return {string}
+ */
+function pluralize(time, label) {
+ if (time === 1) {
+ return time + label
+ }
+ return time + label + 's'
+}
+
+/**
+ * @param {number} time
+ */
+export function timeAgo(time) {
+ const between = Date.now() / 1000 - Number(time)
+ if (between < 3600) {
+ return pluralize(~~(between / 60), ' 分钟')
+ } else if (between < 86400) {
+ return pluralize(~~(between / 3600), ' 小时')
+ } else {
+ return pluralize(~~(between / 86400), ' 天')
+ }
+}
+
+/**
+ * Number formatting
+ * like 10000 => 10k
+ * @param {number} num
+ * @param {number} digits
+ */
+export function numberFormatter(num, digits) {
+ const si = [
+ { value: 1e18, symbol: 'E' },
+ { value: 1e15, symbol: 'P' },
+ { value: 1e12, symbol: 'T' },
+ { value: 1e9, symbol: 'G' },
+ { value: 1e6, symbol: 'M' },
+ { value: 1e3, symbol: 'k' }
+ ]
+ for (let i = 0; i < si.length; i++) {
+ if (num >= si[i].value) {
+ return (
+ (num / si[i].value)
+ .toFixed(digits)
+ .replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
+ )
+ }
+ }
+ return num.toString()
+}
+
+/**
+ * 10000 => "10,000"
+ * @param {number} num
+ */
+export function toThousandFilter(num) {
+ return (+num || 0)
+ .toString()
+ .replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
+}
+
+/**
+ * Upper case first char
+ * @param {String} string
+ */
+export function uppercaseFirst(string) {
+ return string.charAt(0).toUpperCase() + string.slice(1)
+}
+
+export function maskPhone(value) {
+ const len = value.length
+ const x = value.substring(3, len - 4)
+ return value.replace(x, '****')
+}
diff --git a/src/global/variables/index.js b/src/global/variables/index.js
new file mode 100644
index 0000000..fefdccd
--- /dev/null
+++ b/src/global/variables/index.js
@@ -0,0 +1,3 @@
+const variables = { BaseUrl: process.env.VUE_APP_BASE_URL }
+
+export default variables
diff --git a/src/icons/index.js b/src/icons/index.js
new file mode 100644
index 0000000..2c6b309
--- /dev/null
+++ b/src/icons/index.js
@@ -0,0 +1,9 @@
+import Vue from 'vue'
+import SvgIcon from '@/components/SvgIcon'// svg component
+
+// register globally
+Vue.component('svg-icon', SvgIcon)
+
+const req = require.context('./svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys().map(requireContext)
+requireAll(req)
diff --git a/src/icons/svg/404.svg b/src/icons/svg/404.svg
new file mode 100644
index 0000000..1ee394b
--- /dev/null
+++ b/src/icons/svg/404.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/add.svg b/src/icons/svg/add.svg
new file mode 100644
index 0000000..0276fcd
--- /dev/null
+++ b/src/icons/svg/add.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/admin.svg b/src/icons/svg/admin.svg
new file mode 100644
index 0000000..81b5945
--- /dev/null
+++ b/src/icons/svg/admin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/android-icon.svg b/src/icons/svg/android-icon.svg
new file mode 100644
index 0000000..2e84b94
--- /dev/null
+++ b/src/icons/svg/android-icon.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/android.svg b/src/icons/svg/android.svg
new file mode 100644
index 0000000..7778bc2
--- /dev/null
+++ b/src/icons/svg/android.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/apple.svg b/src/icons/svg/apple.svg
new file mode 100644
index 0000000..9f671d8
--- /dev/null
+++ b/src/icons/svg/apple.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/applet-icon.svg b/src/icons/svg/applet-icon.svg
new file mode 100644
index 0000000..bf51c6b
--- /dev/null
+++ b/src/icons/svg/applet-icon.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/audit.svg b/src/icons/svg/audit.svg
new file mode 100644
index 0000000..5b42e2a
--- /dev/null
+++ b/src/icons/svg/audit.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/balance.svg b/src/icons/svg/balance.svg
new file mode 100644
index 0000000..64a22a4
--- /dev/null
+++ b/src/icons/svg/balance.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/bank-card.svg b/src/icons/svg/bank-card.svg
new file mode 100644
index 0000000..eb22911
--- /dev/null
+++ b/src/icons/svg/bank-card.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/bug.svg b/src/icons/svg/bug.svg
new file mode 100644
index 0000000..261d48f
--- /dev/null
+++ b/src/icons/svg/bug.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/chart.svg b/src/icons/svg/chart.svg
new file mode 100644
index 0000000..27728fb
--- /dev/null
+++ b/src/icons/svg/chart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/checked.svg b/src/icons/svg/checked.svg
new file mode 100644
index 0000000..61c2dd4
--- /dev/null
+++ b/src/icons/svg/checked.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/circle-check.svg b/src/icons/svg/circle-check.svg
new file mode 100644
index 0000000..6e375b8
--- /dev/null
+++ b/src/icons/svg/circle-check.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/circle-money.svg b/src/icons/svg/circle-money.svg
new file mode 100644
index 0000000..4c7fe8f
--- /dev/null
+++ b/src/icons/svg/circle-money.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/clipboard.svg b/src/icons/svg/clipboard.svg
new file mode 100644
index 0000000..34aa705
--- /dev/null
+++ b/src/icons/svg/clipboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/compile-circle.svg b/src/icons/svg/compile-circle.svg
new file mode 100644
index 0000000..bb7e9b8
--- /dev/null
+++ b/src/icons/svg/compile-circle.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/compile.svg b/src/icons/svg/compile.svg
new file mode 100644
index 0000000..1a39397
--- /dev/null
+++ b/src/icons/svg/compile.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/component.svg b/src/icons/svg/component.svg
new file mode 100644
index 0000000..207ada3
--- /dev/null
+++ b/src/icons/svg/component.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/copy.svg b/src/icons/svg/copy.svg
new file mode 100644
index 0000000..d79671a
--- /dev/null
+++ b/src/icons/svg/copy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/crown.svg b/src/icons/svg/crown.svg
new file mode 100644
index 0000000..ad1a8fb
--- /dev/null
+++ b/src/icons/svg/crown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/dashboard.svg b/src/icons/svg/dashboard.svg
new file mode 100644
index 0000000..5317d37
--- /dev/null
+++ b/src/icons/svg/dashboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/deduce.svg b/src/icons/svg/deduce.svg
new file mode 100644
index 0000000..12013b2
--- /dev/null
+++ b/src/icons/svg/deduce.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/delete.svg b/src/icons/svg/delete.svg
new file mode 100644
index 0000000..94fa898
--- /dev/null
+++ b/src/icons/svg/delete.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/detail.svg b/src/icons/svg/detail.svg
new file mode 100644
index 0000000..4c6f01e
--- /dev/null
+++ b/src/icons/svg/detail.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/diamond.svg b/src/icons/svg/diamond.svg
new file mode 100644
index 0000000..2fcebaa
--- /dev/null
+++ b/src/icons/svg/diamond.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/documentation.svg b/src/icons/svg/documentation.svg
new file mode 100644
index 0000000..7043122
--- /dev/null
+++ b/src/icons/svg/documentation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/download.svg b/src/icons/svg/download.svg
new file mode 100644
index 0000000..928cf10
--- /dev/null
+++ b/src/icons/svg/download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/drag.svg b/src/icons/svg/drag.svg
new file mode 100644
index 0000000..4185d3c
--- /dev/null
+++ b/src/icons/svg/drag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/duo-mai.svg b/src/icons/svg/duo-mai.svg
new file mode 100644
index 0000000..282aea6
--- /dev/null
+++ b/src/icons/svg/duo-mai.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/edit.svg b/src/icons/svg/edit.svg
new file mode 100644
index 0000000..4850d28
--- /dev/null
+++ b/src/icons/svg/edit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/education.svg b/src/icons/svg/education.svg
new file mode 100644
index 0000000..7bfb01d
--- /dev/null
+++ b/src/icons/svg/education.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/email.svg b/src/icons/svg/email.svg
new file mode 100644
index 0000000..2ffc968
--- /dev/null
+++ b/src/icons/svg/email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/emoji.svg b/src/icons/svg/emoji.svg
new file mode 100644
index 0000000..2ede1f5
--- /dev/null
+++ b/src/icons/svg/emoji.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/example.svg b/src/icons/svg/example.svg
new file mode 100644
index 0000000..ea7a089
--- /dev/null
+++ b/src/icons/svg/example.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/excel.svg b/src/icons/svg/excel.svg
new file mode 100644
index 0000000..74d97b8
--- /dev/null
+++ b/src/icons/svg/excel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/exit-fullscreen.svg b/src/icons/svg/exit-fullscreen.svg
new file mode 100644
index 0000000..9effc3a
--- /dev/null
+++ b/src/icons/svg/exit-fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/exit.svg b/src/icons/svg/exit.svg
new file mode 100644
index 0000000..f2c24d2
--- /dev/null
+++ b/src/icons/svg/exit.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/explore.svg b/src/icons/svg/explore.svg
new file mode 100644
index 0000000..cc5ace7
--- /dev/null
+++ b/src/icons/svg/explore.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/eye-1.svg b/src/icons/svg/eye-1.svg
new file mode 100644
index 0000000..b2caa51
--- /dev/null
+++ b/src/icons/svg/eye-1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/eye-2.svg b/src/icons/svg/eye-2.svg
new file mode 100644
index 0000000..e938944
--- /dev/null
+++ b/src/icons/svg/eye-2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/eye-open.svg b/src/icons/svg/eye-open.svg
new file mode 100644
index 0000000..88dcc98
--- /dev/null
+++ b/src/icons/svg/eye-open.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/eye.svg b/src/icons/svg/eye.svg
new file mode 100644
index 0000000..16ed2d8
--- /dev/null
+++ b/src/icons/svg/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/finance-center.svg b/src/icons/svg/finance-center.svg
new file mode 100644
index 0000000..30cbd9d
--- /dev/null
+++ b/src/icons/svg/finance-center.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/forbidden.svg b/src/icons/svg/forbidden.svg
new file mode 100644
index 0000000..12c49fe
--- /dev/null
+++ b/src/icons/svg/forbidden.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/form.svg b/src/icons/svg/form.svg
new file mode 100644
index 0000000..0c18caf
--- /dev/null
+++ b/src/icons/svg/form.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/full.svg b/src/icons/svg/full.svg
new file mode 100644
index 0000000..a937690
--- /dev/null
+++ b/src/icons/svg/full.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/fullscreen.svg b/src/icons/svg/fullscreen.svg
new file mode 100644
index 0000000..0e86b6f
--- /dev/null
+++ b/src/icons/svg/fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/gand-up.svg b/src/icons/svg/gand-up.svg
new file mode 100644
index 0000000..237aed1
--- /dev/null
+++ b/src/icons/svg/gand-up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/guide.svg b/src/icons/svg/guide.svg
new file mode 100644
index 0000000..b271001
--- /dev/null
+++ b/src/icons/svg/guide.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/icon.svg b/src/icons/svg/icon.svg
new file mode 100644
index 0000000..7024bec
--- /dev/null
+++ b/src/icons/svg/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/info.svg b/src/icons/svg/info.svg
new file mode 100644
index 0000000..19fa4ca
--- /dev/null
+++ b/src/icons/svg/info.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/institution.svg b/src/icons/svg/institution.svg
new file mode 100644
index 0000000..fb48468
--- /dev/null
+++ b/src/icons/svg/institution.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/international.svg b/src/icons/svg/international.svg
new file mode 100644
index 0000000..beb56c7
--- /dev/null
+++ b/src/icons/svg/international.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/ios-icon.svg b/src/icons/svg/ios-icon.svg
new file mode 100644
index 0000000..44c57c8
--- /dev/null
+++ b/src/icons/svg/ios-icon.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/jing-dong.svg b/src/icons/svg/jing-dong.svg
new file mode 100644
index 0000000..ee7101c
--- /dev/null
+++ b/src/icons/svg/jing-dong.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/kao-la.svg b/src/icons/svg/kao-la.svg
new file mode 100644
index 0000000..4a51bf0
--- /dev/null
+++ b/src/icons/svg/kao-la.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/lang.svg b/src/icons/svg/lang.svg
new file mode 100644
index 0000000..0821f67
--- /dev/null
+++ b/src/icons/svg/lang.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/language.svg b/src/icons/svg/language.svg
new file mode 100644
index 0000000..0082b57
--- /dev/null
+++ b/src/icons/svg/language.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/link.svg b/src/icons/svg/link.svg
new file mode 100644
index 0000000..48197ba
--- /dev/null
+++ b/src/icons/svg/link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/list.svg b/src/icons/svg/list.svg
new file mode 100644
index 0000000..20259ed
--- /dev/null
+++ b/src/icons/svg/list.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/lock-1.svg b/src/icons/svg/lock-1.svg
new file mode 100644
index 0000000..b3e2c7a
--- /dev/null
+++ b/src/icons/svg/lock-1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/lock.svg b/src/icons/svg/lock.svg
new file mode 100644
index 0000000..74fee54
--- /dev/null
+++ b/src/icons/svg/lock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/logo.svg b/src/icons/svg/logo.svg
new file mode 100644
index 0000000..90dbc53
--- /dev/null
+++ b/src/icons/svg/logo.svg
@@ -0,0 +1 @@
+智莺系统
\ No newline at end of file
diff --git a/src/icons/svg/master-app-manage.svg b/src/icons/svg/master-app-manage.svg
new file mode 100644
index 0000000..5282b5e
--- /dev/null
+++ b/src/icons/svg/master-app-manage.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/master-info-manage.svg b/src/icons/svg/master-info-manage.svg
new file mode 100644
index 0000000..0a7ade3
--- /dev/null
+++ b/src/icons/svg/master-info-manage.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/mei-tuan.svg b/src/icons/svg/mei-tuan.svg
new file mode 100644
index 0000000..37d65bd
--- /dev/null
+++ b/src/icons/svg/mei-tuan.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-diy.svg b/src/icons/svg/menu-diy.svg
new file mode 100644
index 0000000..f53559a
--- /dev/null
+++ b/src/icons/svg/menu-diy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-goods-center.svg b/src/icons/svg/menu-goods-center.svg
new file mode 100644
index 0000000..dee2b33
--- /dev/null
+++ b/src/icons/svg/menu-goods-center.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-members.svg b/src/icons/svg/menu-members.svg
new file mode 100644
index 0000000..efa0ab1
--- /dev/null
+++ b/src/icons/svg/menu-members.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-money.svg b/src/icons/svg/menu-money.svg
new file mode 100644
index 0000000..bb24609
--- /dev/null
+++ b/src/icons/svg/menu-money.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-nessage.svg b/src/icons/svg/menu-nessage.svg
new file mode 100644
index 0000000..d9feaf1
--- /dev/null
+++ b/src/icons/svg/menu-nessage.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-order.svg b/src/icons/svg/menu-order.svg
new file mode 100644
index 0000000..0e1b5dd
--- /dev/null
+++ b/src/icons/svg/menu-order.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-rule.svg b/src/icons/svg/menu-rule.svg
new file mode 100644
index 0000000..ebccb5b
--- /dev/null
+++ b/src/icons/svg/menu-rule.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-setting.svg b/src/icons/svg/menu-setting.svg
new file mode 100644
index 0000000..625c08c
--- /dev/null
+++ b/src/icons/svg/menu-setting.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-store.svg b/src/icons/svg/menu-store.svg
new file mode 100644
index 0000000..76daedd
--- /dev/null
+++ b/src/icons/svg/menu-store.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-system-manager.svg b/src/icons/svg/menu-system-manager.svg
new file mode 100644
index 0000000..55d346c
--- /dev/null
+++ b/src/icons/svg/menu-system-manager.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-theme.svg b/src/icons/svg/menu-theme.svg
new file mode 100644
index 0000000..527c5cd
--- /dev/null
+++ b/src/icons/svg/menu-theme.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/menu-workbench.svg b/src/icons/svg/menu-workbench.svg
new file mode 100644
index 0000000..1a36723
--- /dev/null
+++ b/src/icons/svg/menu-workbench.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/message-center.svg b/src/icons/svg/message-center.svg
new file mode 100644
index 0000000..3df1b95
--- /dev/null
+++ b/src/icons/svg/message-center.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/message.svg b/src/icons/svg/message.svg
new file mode 100644
index 0000000..14ca817
--- /dev/null
+++ b/src/icons/svg/message.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/mobile.svg b/src/icons/svg/mobile.svg
new file mode 100644
index 0000000..2914684
--- /dev/null
+++ b/src/icons/svg/mobile.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/money-settle.svg b/src/icons/svg/money-settle.svg
new file mode 100644
index 0000000..41c4b0a
--- /dev/null
+++ b/src/icons/svg/money-settle.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/money.svg b/src/icons/svg/money.svg
new file mode 100644
index 0000000..c1580de
--- /dev/null
+++ b/src/icons/svg/money.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/move.svg b/src/icons/svg/move.svg
new file mode 100644
index 0000000..179f751
--- /dev/null
+++ b/src/icons/svg/move.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/nested.svg b/src/icons/svg/nested.svg
new file mode 100644
index 0000000..06713a8
--- /dev/null
+++ b/src/icons/svg/nested.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/new-built.svg b/src/icons/svg/new-built.svg
new file mode 100644
index 0000000..7899d00
--- /dev/null
+++ b/src/icons/svg/new-built.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/operating-center.svg b/src/icons/svg/operating-center.svg
new file mode 100644
index 0000000..e1142ec
--- /dev/null
+++ b/src/icons/svg/operating-center.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/order-center.svg b/src/icons/svg/order-center.svg
new file mode 100644
index 0000000..aaf00a0
--- /dev/null
+++ b/src/icons/svg/order-center.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/order.svg b/src/icons/svg/order.svg
new file mode 100644
index 0000000..caf2511
--- /dev/null
+++ b/src/icons/svg/order.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/password.svg b/src/icons/svg/password.svg
new file mode 100644
index 0000000..e291d85
--- /dev/null
+++ b/src/icons/svg/password.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/pdf.svg b/src/icons/svg/pdf.svg
new file mode 100644
index 0000000..957aa0c
--- /dev/null
+++ b/src/icons/svg/pdf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/people.svg b/src/icons/svg/people.svg
new file mode 100644
index 0000000..43c43d3
--- /dev/null
+++ b/src/icons/svg/people.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/peoples.svg b/src/icons/svg/peoples.svg
new file mode 100644
index 0000000..aab852e
--- /dev/null
+++ b/src/icons/svg/peoples.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/permission.svg b/src/icons/svg/permission.svg
new file mode 100644
index 0000000..1f8c21a
--- /dev/null
+++ b/src/icons/svg/permission.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/pin-duo-duo.svg b/src/icons/svg/pin-duo-duo.svg
new file mode 100644
index 0000000..da785a1
--- /dev/null
+++ b/src/icons/svg/pin-duo-duo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/qq.svg b/src/icons/svg/qq.svg
new file mode 100644
index 0000000..ee13d4e
--- /dev/null
+++ b/src/icons/svg/qq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/question.svg b/src/icons/svg/question.svg
new file mode 100644
index 0000000..2cdd0fe
--- /dev/null
+++ b/src/icons/svg/question.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/recover.svg b/src/icons/svg/recover.svg
new file mode 100644
index 0000000..ea1cdae
--- /dev/null
+++ b/src/icons/svg/recover.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/review.svg b/src/icons/svg/review.svg
new file mode 100644
index 0000000..3f9845d
--- /dev/null
+++ b/src/icons/svg/review.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/rise.svg b/src/icons/svg/rise.svg
new file mode 100644
index 0000000..c3221ae
--- /dev/null
+++ b/src/icons/svg/rise.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/rollback.svg b/src/icons/svg/rollback.svg
new file mode 100644
index 0000000..7a86557
--- /dev/null
+++ b/src/icons/svg/rollback.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/search.svg b/src/icons/svg/search.svg
new file mode 100644
index 0000000..c80f56a
--- /dev/null
+++ b/src/icons/svg/search.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/secrity.svg b/src/icons/svg/secrity.svg
new file mode 100644
index 0000000..b227814
--- /dev/null
+++ b/src/icons/svg/secrity.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/select.svg b/src/icons/svg/select.svg
new file mode 100644
index 0000000..cb3e4e7
--- /dev/null
+++ b/src/icons/svg/select.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/setting-center.svg b/src/icons/svg/setting-center.svg
new file mode 100644
index 0000000..f3dfb59
--- /dev/null
+++ b/src/icons/svg/setting-center.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/shopping.svg b/src/icons/svg/shopping.svg
new file mode 100644
index 0000000..f395bc7
--- /dev/null
+++ b/src/icons/svg/shopping.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/size.svg b/src/icons/svg/size.svg
new file mode 100644
index 0000000..ddb25b8
--- /dev/null
+++ b/src/icons/svg/size.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/size2.svg b/src/icons/svg/size2.svg
new file mode 100644
index 0000000..17165aa
--- /dev/null
+++ b/src/icons/svg/size2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/skill.svg b/src/icons/svg/skill.svg
new file mode 100644
index 0000000..4b8feff
--- /dev/null
+++ b/src/icons/svg/skill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/star.svg b/src/icons/svg/star.svg
new file mode 100644
index 0000000..63a68b3
--- /dev/null
+++ b/src/icons/svg/star.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/stop.svg b/src/icons/svg/stop.svg
new file mode 100644
index 0000000..f0e9fab
--- /dev/null
+++ b/src/icons/svg/stop.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/su-ning.svg b/src/icons/svg/su-ning.svg
new file mode 100644
index 0000000..01f7520
--- /dev/null
+++ b/src/icons/svg/su-ning.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/subscribe.svg b/src/icons/svg/subscribe.svg
new file mode 100644
index 0000000..a0bd5a6
--- /dev/null
+++ b/src/icons/svg/subscribe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/switch-1.svg b/src/icons/svg/switch-1.svg
new file mode 100644
index 0000000..b374d84
--- /dev/null
+++ b/src/icons/svg/switch-1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/switch-2.svg b/src/icons/svg/switch-2.svg
new file mode 100644
index 0000000..8f6a82c
--- /dev/null
+++ b/src/icons/svg/switch-2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/switch-blue.svg b/src/icons/svg/switch-blue.svg
new file mode 100644
index 0000000..600f5b1
--- /dev/null
+++ b/src/icons/svg/switch-blue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/switch-green.svg b/src/icons/svg/switch-green.svg
new file mode 100644
index 0000000..c601419
--- /dev/null
+++ b/src/icons/svg/switch-green.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/system-management.svg b/src/icons/svg/system-management.svg
new file mode 100644
index 0000000..027dae7
--- /dev/null
+++ b/src/icons/svg/system-management.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/tab.svg b/src/icons/svg/tab.svg
new file mode 100644
index 0000000..b4b48e4
--- /dev/null
+++ b/src/icons/svg/tab.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/table.svg b/src/icons/svg/table.svg
new file mode 100644
index 0000000..0e3dc9d
--- /dev/null
+++ b/src/icons/svg/table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/tao-bao.svg b/src/icons/svg/tao-bao.svg
new file mode 100644
index 0000000..03c8f34
--- /dev/null
+++ b/src/icons/svg/tao-bao.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/theme.svg b/src/icons/svg/theme.svg
new file mode 100644
index 0000000..5982a2f
--- /dev/null
+++ b/src/icons/svg/theme.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/tree-table.svg b/src/icons/svg/tree-table.svg
new file mode 100644
index 0000000..8aafdb8
--- /dev/null
+++ b/src/icons/svg/tree-table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/tree.svg b/src/icons/svg/tree.svg
new file mode 100644
index 0000000..a087188
--- /dev/null
+++ b/src/icons/svg/tree.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/upload.svg b/src/icons/svg/upload.svg
new file mode 100644
index 0000000..ed0452f
--- /dev/null
+++ b/src/icons/svg/upload.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/user-tag.svg b/src/icons/svg/user-tag.svg
new file mode 100644
index 0000000..50cec2e
--- /dev/null
+++ b/src/icons/svg/user-tag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/user.svg b/src/icons/svg/user.svg
new file mode 100644
index 0000000..0ba0716
--- /dev/null
+++ b/src/icons/svg/user.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/web-icon.svg b/src/icons/svg/web-icon.svg
new file mode 100644
index 0000000..bd0b8d4
--- /dev/null
+++ b/src/icons/svg/web-icon.svg
@@ -0,0 +1 @@
+
diff --git a/src/icons/svg/wechat.svg b/src/icons/svg/wechat.svg
new file mode 100644
index 0000000..c586e55
--- /dev/null
+++ b/src/icons/svg/wechat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/wei-pin-hui.svg b/src/icons/svg/wei-pin-hui.svg
new file mode 100644
index 0000000..2275b85
--- /dev/null
+++ b/src/icons/svg/wei-pin-hui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/workbench.svg b/src/icons/svg/workbench.svg
new file mode 100644
index 0000000..f042864
--- /dev/null
+++ b/src/icons/svg/workbench.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/zip.svg b/src/icons/svg/zip.svg
new file mode 100644
index 0000000..f806fc4
--- /dev/null
+++ b/src/icons/svg/zip.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svgo.yml b/src/icons/svgo.yml
new file mode 100644
index 0000000..d11906a
--- /dev/null
+++ b/src/icons/svgo.yml
@@ -0,0 +1,22 @@
+# replace default config
+
+# multipass: true
+# full: true
+
+plugins:
+
+ # - name
+ #
+ # or:
+ # - name: false
+ # - name: true
+ #
+ # or:
+ # - name:
+ # param1: 1
+ # param2: 2
+
+- removeAttrs:
+ attrs:
+ - 'fill'
+ - 'fill-rule'
diff --git a/src/lang/en.js b/src/lang/en.js
new file mode 100644
index 0000000..ae221ba
--- /dev/null
+++ b/src/lang/en.js
@@ -0,0 +1,175 @@
+export default {
+ route: {
+ dashboard: 'Dashboard',
+ documentation: 'Documentation',
+ guide: 'Guide',
+ permission: 'Permission',
+ pagePermission: 'Page Permission',
+ rolePermission: 'Role Permission',
+ directivePermission: 'Directive Permission',
+ icons: 'Icons',
+ components: 'Components',
+ tinymce: 'Tinymce',
+ markdown: 'Markdown',
+ jsonEditor: 'JSON Editor',
+ dndList: 'Dnd List',
+ splitPane: 'SplitPane',
+ avatarUpload: 'Avatar Upload',
+ dropzone: 'Dropzone',
+ sticky: 'Sticky',
+ countTo: 'Count To',
+ componentMixin: 'Mixin',
+ backToTop: 'Back To Top',
+ dragDialog: 'Drag Dialog',
+ dragSelect: 'Drag Select',
+ dragKanban: 'Drag Kanban',
+ charts: 'Charts',
+ keyboardChart: 'Keyboard Chart',
+ lineChart: 'Line Chart',
+ mixChart: 'Mix Chart',
+ example: 'Example',
+ nested: 'Nested Routes',
+ menu1: 'Menu 1',
+ 'menu1-1': 'Menu 1-1',
+ 'menu1-2': 'Menu 1-2',
+ 'menu1-2-1': 'Menu 1-2-1',
+ 'menu1-2-2': 'Menu 1-2-2',
+ 'menu1-3': 'Menu 1-3',
+ menu2: 'Menu 2',
+ Table: 'Table',
+ dynamicTable: 'Dynamic Table',
+ dragTable: 'Drag Table',
+ inlineEditTable: 'Inline Edit',
+ complexTable: 'Complex Table',
+ tab: 'Tab',
+ form: 'Form',
+ createArticle: 'Create Article',
+ editArticle: 'Edit Article',
+ articleList: 'Article List',
+ errorPages: 'Error Pages',
+ page401: '401',
+ page404: '404',
+ errorLog: 'Error Log',
+ excel: 'Excel',
+ exportExcel: 'Export Excel',
+ selectExcel: 'Export Selected',
+ mergeHeader: 'Merge Header',
+ uploadExcel: 'Upload Excel',
+ zip: 'Zip',
+ pdf: 'PDF',
+ exportZip: 'Export Zip',
+ theme: 'Theme',
+ clipboardDemo: 'Clipboard',
+ i18n: 'I18n',
+ externalLink: 'External Link',
+ profile: 'Profile'
+ },
+ navbar: {
+ dashboard: 'Dashboard',
+ github: 'Github',
+ logOut: 'Log Out',
+ profile: 'Profile',
+ theme: 'Theme',
+ size: 'Global Size'
+ },
+ login: {
+ title: 'Login Form',
+ logIn: 'Login',
+ username: 'Username',
+ password: 'Password',
+ any: 'any',
+ thirdparty: 'Or connect with',
+ thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !'
+ },
+ documentation: {
+ documentation: 'Documentation',
+ github: 'Github Repository'
+ },
+ permission: {
+ addRole: 'New Role',
+ editPermission: 'Edit',
+ roles: 'Your roles',
+ switchRoles: 'Switch roles',
+ tips: 'In some cases, using v-permission will have no effect. For example: Element-UI el-tab or el-table-column and other scenes that dynamically render dom. You can only do this with v-if.',
+ delete: 'Delete',
+ confirm: 'Confirm',
+ cancel: 'Cancel'
+ },
+ guide: {
+ description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',
+ button: 'Show Guide'
+ },
+ components: {
+ documentation: 'Documentation',
+ tinymceTips: 'Rich text is a core feature of the management backend, but at the same time it is a place with lots of pits. In the process of selecting rich texts, I also took a lot of detours. The common rich texts on the market have been basically used, and I finally chose Tinymce. See the more detailed rich text comparison and introduction.',
+ dropzoneTips: 'Because my business has special needs, and has to upload images to qiniu, so instead of a third party, I chose encapsulate it by myself. It is very simple, you can see the detail code in @/components/Dropzone.',
+ stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',
+ backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',
+ backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',
+ imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.'
+ },
+ table: {
+ dynamicTips1: 'Fixed header, sorted by header order',
+ dynamicTips2: 'Not fixed header, sorted by click order',
+ dragTips1: 'The default order',
+ dragTips2: 'The after dragging order',
+ title: 'Title',
+ importance: 'Imp',
+ type: 'Type',
+ remark: 'Remark',
+ search: 'Search',
+ add: 'Add',
+ export: 'Export',
+ reviewer: 'reviewer',
+ id: 'ID',
+ date: 'Date',
+ author: 'Author',
+ readings: 'Readings',
+ status: 'Status',
+ actions: 'Actions',
+ edit: 'Edit',
+ publish: 'Publish',
+ draft: 'Draft',
+ delete: 'Delete',
+ cancel: 'Cancel',
+ confirm: 'Confirm'
+ },
+ example: {
+ warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details'
+ },
+ errorLog: {
+ tips: 'Please click the bug icon in the upper right corner',
+ description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',
+ documentation: 'Document introduction'
+ },
+ excel: {
+ export: 'Export',
+ selectedExport: 'Export Selected Items',
+ placeholder: 'Please enter the file name (default excel-list)'
+ },
+ zip: {
+ export: 'Export',
+ placeholder: 'Please enter the file name (default file)'
+ },
+ pdf: {
+ tips: 'Here we use window.print() to implement the feature of downloading PDF.'
+ },
+ theme: {
+ change: 'Change Theme',
+ documentation: 'Theme documentation',
+ tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'
+ },
+ tagsView: {
+ refresh: 'Refresh',
+ close: 'Close',
+ closeOthers: 'Close Others',
+ closeAll: 'Close All'
+ },
+ settings: {
+ title: 'Page style setting',
+ theme: 'Theme Color',
+ tagsView: 'Open Tags-View',
+ fixedHeader: 'Fixed Header',
+ sidebarLogo: 'Sidebar Logo'
+ }
+}
diff --git a/src/lang/es.js b/src/lang/es.js
new file mode 100644
index 0000000..8187bfe
--- /dev/null
+++ b/src/lang/es.js
@@ -0,0 +1,175 @@
+export default {
+ route: {
+ dashboard: 'Panel de control',
+ documentation: 'Documentación',
+ guide: 'Guía',
+ permission: 'Permisos',
+ rolePermission: 'Permisos de rol',
+ pagePermission: 'Permisos de la página',
+ directivePermission: 'Permisos de la directiva',
+ icons: 'Iconos',
+ components: 'Componentes',
+ tinymce: 'Tinymce',
+ markdown: 'Markdown',
+ jsonEditor: 'Editor JSON',
+ dndList: 'Lista Dnd',
+ splitPane: 'Panel dividido',
+ avatarUpload: 'Subir avatar',
+ dropzone: 'Subir ficheros',
+ sticky: 'Sticky',
+ countTo: 'CountTo',
+ componentMixin: 'Mixin',
+ backToTop: 'Ir arriba',
+ dragDialog: 'Drag Dialog',
+ dragSelect: 'Drag Select',
+ dragKanban: 'Drag Kanban',
+ charts: 'Gráficos',
+ keyboardChart: 'Keyboard Chart',
+ lineChart: 'Gráfico de líneas',
+ mixChart: 'Mix Chart',
+ example: 'Ejemplo',
+ nested: 'Rutas anidadass',
+ menu1: 'Menu 1',
+ 'menu1-1': 'Menu 1-1',
+ 'menu1-2': 'Menu 1-2',
+ 'menu1-2-1': 'Menu 1-2-1',
+ 'menu1-2-2': 'Menu 1-2-2',
+ 'menu1-3': 'Menu 1-3',
+ menu2: 'Menu 2',
+ Table: 'Tabla',
+ dynamicTable: 'Tabla dinámica',
+ dragTable: 'Arrastrar tabla',
+ inlineEditTable: 'Editor',
+ complexTable: 'Complex Table',
+ tab: 'Pestaña',
+ form: 'Formulario',
+ createArticle: 'Crear artículo',
+ editArticle: 'Editar artículo',
+ articleList: 'Listado de artículos',
+ errorPages: 'Páginas de error',
+ page401: '401',
+ page404: '404',
+ errorLog: 'Registro de errores',
+ excel: 'Excel',
+ exportExcel: 'Exportar a Excel',
+ selectExcel: 'Export seleccionado',
+ mergeHeader: 'Merge Header',
+ uploadExcel: 'Subir Excel',
+ zip: 'Zip',
+ pdf: 'PDF',
+ exportZip: 'Exportar a Zip',
+ theme: 'Tema',
+ clipboardDemo: 'Clipboard',
+ i18n: 'I18n',
+ externalLink: 'Enlace externo',
+ profile: 'Profile'
+ },
+ navbar: {
+ logOut: 'Salir',
+ dashboard: 'Panel de control',
+ github: 'Github',
+ theme: 'Tema',
+ size: 'Tamaño global',
+ profile: 'Profile'
+ },
+ login: {
+ title: 'Formulario de acceso',
+ logIn: 'Acceso',
+ username: 'Usuario',
+ password: 'Contraseña',
+ any: 'nada',
+ thirdparty: 'Conectar con',
+ thirdpartyTips: 'No se puede simular en local, así que combine su propia simulación de negocios. ! !'
+ },
+ documentation: {
+ documentation: 'Documentación',
+ github: 'Repositorio Github'
+ },
+ permission: {
+ addRole: 'Nuevo rol',
+ editPermission: 'Permiso de edición',
+ roles: 'Tus permisos',
+ switchRoles: 'Cambiar permisos',
+ tips: 'In some cases it is not suitable to use v-permission, such as element Tab component or el-table-column and other asynchronous rendering dom cases which can only be achieved by manually setting the v-if.',
+ delete: 'Borrar',
+ confirm: 'Confirmar',
+ cancel: 'Cancelar'
+ },
+ guide: {
+ description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',
+ button: 'Ver guía'
+ },
+ components: {
+ documentation: 'Documentación',
+ tinymceTips: 'Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.',
+ dropzoneTips: 'Because my business has special needs, and has to upload images to qiniu, so instead of a third party, I chose encapsulate it by myself. It is very simple, you can see the detail code in @/components/Dropzone.',
+ stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',
+ backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',
+ backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',
+ imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.'
+ },
+ table: {
+ dynamicTips1: 'Fixed header, sorted by header order',
+ dynamicTips2: 'Not fixed header, sorted by click order',
+ dragTips1: 'Orden por defecto',
+ dragTips2: 'The after dragging order',
+ title: 'Título',
+ importance: 'Importancia',
+ type: 'Tipo',
+ remark: 'Remark',
+ search: 'Buscar',
+ add: 'Añadir',
+ export: 'Exportar',
+ reviewer: 'reviewer',
+ id: 'ID',
+ date: 'Fecha',
+ author: 'Autor',
+ readings: 'Lector',
+ status: 'Estado',
+ actions: 'Acciones',
+ edit: 'Editar',
+ publish: 'Publicar',
+ draft: 'Draft',
+ delete: 'Eliminar',
+ cancel: 'Cancelar',
+ confirm: 'Confirmar'
+ },
+ example: {
+ warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details'
+ },
+ errorLog: {
+ tips: 'Please click the bug icon in the upper right corner',
+ description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',
+ documentation: 'Documento de introducción'
+ },
+ excel: {
+ export: 'Exportar',
+ selectedExport: 'Exportar seleccionados',
+ placeholder: 'Por favor escribe un nombre de fichero'
+ },
+ zip: {
+ export: 'Exportar',
+ placeholder: 'Por favor escribe un nombre de fichero'
+ },
+ pdf: {
+ tips: 'Here we use window.print() to implement the feature of downloading pdf.'
+ },
+ theme: {
+ change: 'Cambiar tema',
+ documentation: 'Documentación del tema',
+ tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'
+ },
+ tagsView: {
+ refresh: 'Actualizar',
+ close: 'Cerrar',
+ closeOthers: 'Cerrar otros',
+ closeAll: 'Cerrar todos'
+ },
+ settings: {
+ title: 'Page style setting',
+ theme: 'Theme Color',
+ tagsView: 'Open Tags-View',
+ fixedHeader: 'Fixed Header',
+ sidebarLogo: 'Sidebar Logo'
+ }
+}
diff --git a/src/lang/index.js b/src/lang/index.js
new file mode 100644
index 0000000..a1f2b9d
--- /dev/null
+++ b/src/lang/index.js
@@ -0,0 +1,55 @@
+import Vue from 'vue'
+import VueI18n from 'vue-i18n'
+import Cookies from 'js-cookie'
+import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
+import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
+import elementEsLocale from 'element-ui/lib/locale/lang/es'// element-ui lang
+import elementJaLocale from 'element-ui/lib/locale/lang/ja'// element-ui lang
+import enLocale from './en'
+import zhLocale from './zh'
+import esLocale from './es'
+import jaLocale from './ja'
+
+Vue.use(VueI18n)
+
+const messages = {
+ en: {
+ ...enLocale,
+ ...elementEnLocale
+ },
+ zh: {
+ ...zhLocale,
+ ...elementZhLocale
+ },
+ es: {
+ ...esLocale,
+ ...elementEsLocale
+ },
+ ja: {
+ ...jaLocale,
+ ...elementJaLocale
+ }
+}
+export function getLanguage() {
+ const chooseLanguage = Cookies.get('language')
+ if (chooseLanguage) return chooseLanguage
+
+ // if has not choose language
+ const language = (navigator.language || navigator.browserLanguage).toLowerCase()
+ const locales = Object.keys(messages)
+ for (const locale of locales) {
+ if (language.indexOf(locale) > -1) {
+ return locale
+ }
+ }
+ return 'zh'
+}
+const i18n = new VueI18n({
+ // set locale
+ // options: en | zh | es
+ locale: getLanguage(),
+ // set locale messages
+ messages
+})
+
+export default i18n
diff --git a/src/lang/ja.js b/src/lang/ja.js
new file mode 100644
index 0000000..7dccd12
--- /dev/null
+++ b/src/lang/ja.js
@@ -0,0 +1,175 @@
+export default {
+ route: {
+ dashboard: 'トップ',
+ documentation: 'ドキュメント',
+ guide: 'ガイド',
+ permission: '権限',
+ rolePermission: '権限ロール',
+ pagePermission: 'ページ権限',
+ directivePermission: 'ディレクティブ権限',
+ icons: 'アイコン',
+ components: 'コンポーネント',
+ tinymce: 'TinyMCE',
+ markdown: 'Markdown',
+ jsonEditor: 'JSON Editor',
+ dndList: 'Drag-And-Drop',
+ splitPane: 'パネル',
+ avatarUpload: 'アバターアップロード',
+ dropzone: 'Dropzone',
+ sticky: 'Sticky',
+ countTo: 'Count To',
+ componentMixin: 'コンポーネントMixin',
+ backToTop: 'BackToTop',
+ dragDialog: 'Drag Dialog',
+ dragSelect: 'Drag Select',
+ dragKanban: 'Drag 看板',
+ charts: 'チャート',
+ keyboardChart: 'Keyboardチャート',
+ lineChart: 'Lineチャート',
+ mixChart: 'Mixチャート',
+ example: 'Example',
+ nested: 'Nested Routes',
+ menu1: 'メニュー1',
+ 'menu1-1': 'メニュー 1-1',
+ 'menu1-2': 'メニュー 1-2',
+ 'menu1-2-1': 'メニュー 1-2-1',
+ 'menu1-2-2': 'メニュー 1-2-2',
+ 'menu1-3': 'メニュー 1-3',
+ menu2: 'メニュー 2',
+ Table: 'Table',
+ dynamicTable: '可変 Table',
+ dragTable: 'Drag Table',
+ inlineEditTable: 'Inline Edit Table',
+ complexTable: 'Complex Table',
+ tab: 'Tab',
+ form: 'フォーム',
+ createArticle: '投稿作成',
+ editArticle: '投稿編集',
+ articleList: '投稿リスト',
+ errorPages: 'エラーページ',
+ page401: '401',
+ page404: '404',
+ errorLog: 'エラーログ',
+ excel: 'Excel',
+ exportExcel: '一括エクスポート',
+ selectExcel: '複数選択エクスポート',
+ mergeHeader: 'ヘッダーマージ',
+ uploadExcel: 'アップロード',
+ zip: 'Zip',
+ pdf: 'PDF',
+ exportZip: 'Export Zip',
+ theme: 'テーマ変更',
+ clipboardDemo: 'Clipboard',
+ i18n: '多言語',
+ externalLink: '外部リンク',
+ profile: 'プロフィール'
+ },
+ navbar: {
+ dashboard: 'トップ',
+ github: 'GitHub',
+ logOut: 'ログアウト',
+ profile: 'プロフィール',
+ theme: 'テーマ変更',
+ size: '画面サイズ'
+ },
+ login: {
+ title: 'ユーザログイン',
+ logIn: 'ログイン',
+ username: 'ユーザ名',
+ password: 'パスワード',
+ any: 'password',
+ thirdparty: '外部IDでログイン',
+ thirdpartyTips: 'ローカル環境ではログインできません。実装が必要です。'
+ },
+ documentation: {
+ documentation: 'ドキュメント',
+ github: 'Github Link'
+ },
+ permission: {
+ addRole: 'ロール追加',
+ editPermission: 'ロール変更',
+ roles: 'ロール',
+ switchRoles: 'ロール切替',
+ tips: 'v-permissionは使えない時があります。例えば: Element-UI の el-tab、 el-table-column 及び他の dom。v-ifを使う必要があります。',
+ delete: '削除',
+ confirm: '確認',
+ cancel: 'キャンセル'
+ },
+ guide: {
+ description: 'ガイドは各機能の説明です。',
+ button: 'ガイドを見る'
+ },
+ components: {
+ documentation: 'ドキュメント',
+ tinymceTips: 'tinymceは管理画面に重要な機能ですが、その同時に落とし穴がありあす。tinymceを使う道のりが大変でした。Tinymceを使う時に各自のプロジェクト状況で判断が必要です。ドキュメントはこちら',
+ dropzoneTips: 'Third partyのパッケージを使わず、独自の実装しています。詳細は @/components/Dropzone',
+ stickyTips: 'ページの指定位置へスクロールした場合、表示されます。',
+ backToTopTips1: 'トップへスクロールが表示されます。',
+ backToTopTips2: 'ボタンのスタイルはカスタマイズできます。例えば、show/hide、height、position。 またはElementのel-tooltipを使って、ツールチップを実装できます。',
+ imageUploadTips: 'mockjsは使えないため、カスタマイズしています。公式の最新バージョンを使ってください。'
+ },
+ table: {
+ dynamicTips1: '先頭は固定、最後に追加',
+ dynamicTips2: '戦後に追加せず、指定列に追加',
+ dragTips1: 'デフォルト順番',
+ dragTips2: 'Drag後の順番',
+ title: 'タイトル',
+ importance: '重要',
+ type: 'タイプ',
+ remark: '評価',
+ search: '検索',
+ add: '追加',
+ export: 'エクスポート',
+ reviewer: 'レビュアー',
+ id: '番号',
+ date: '日時',
+ author: '作成者',
+ readings: '閲覧数',
+ status: 'ステータス',
+ actions: '操作',
+ edit: '編集',
+ publish: '公開',
+ draft: '下書き',
+ delete: 'キャンセル',
+ cancel: 'キャンセル',
+ confirm: '確認'
+ },
+ example: {
+ warning: '新規作成と編集画面は keep-alive を使えないです。keep-alive の include はrouteのキャッシュは使えないです。そのため、component name を使ってキャッシュさせるようにします。このようなキャッシュ機能を作りたい場合,localStorageを使う手があります。もしくは keep-alive の includeを使って、全ページキャッシュする方法はあります。'
+ },
+ errorLog: {
+ tips: '右上のbugアイコンをクリックしてください。',
+ description: '管理画面はspaを使う場合が多い、ユーザ体現向上はできますが、想定外エラーが発生する場合があります。Vueはそのエラーハンドリング機能を提供し、エラーレポートができます。',
+ documentation: 'ドキュメント'
+ },
+ excel: {
+ export: 'エクスポート',
+ selectedExport: 'エクスポート対象を選択してください。',
+ placeholder: 'ファイル名を入力してください。'
+ },
+ zip: {
+ export: 'エクスポート',
+ placeholder: 'ファイル名を入力してください。'
+ },
+ pdf: {
+ tips: 'window.print() を使ってPDFダウンロードしています。'
+ },
+ theme: {
+ change: 'テーマ切替',
+ documentation: 'ドキュメント',
+ tips: 'Tips: テーマの切り替え方法はnavbarのtheme-pickと異なります、使い方はドキュメントを確認してください。'
+ },
+ tagsView: {
+ refresh: '更新',
+ close: '閉じる',
+ closeOthers: 'その他閉じる',
+ closeAll: 'すべて閉じる'
+ },
+ settings: {
+ title: 'システムテーマ',
+ theme: 'テーマ色',
+ tagsView: 'Tags-View 開く',
+ fixedHeader: 'Fixed Header',
+ sidebarLogo: 'Sidebar Logo'
+ }
+}
diff --git a/src/lang/zh.js b/src/lang/zh.js
new file mode 100644
index 0000000..d7ef839
--- /dev/null
+++ b/src/lang/zh.js
@@ -0,0 +1,176 @@
+export default {
+ route: {
+ dashboard: '首页',
+ documentation: '文档',
+ guide: '引导页',
+ permission: '权限测试页',
+ rolePermission: '角色权限',
+ pagePermission: '页面权限',
+ directivePermission: '指令权限',
+ icons: '图标',
+ components: '组件',
+ tinymce: '富文本编辑器',
+ markdown: 'Markdown',
+ jsonEditor: 'JSON 编辑器',
+ dndList: '列表拖拽',
+ splitPane: 'Splitpane',
+ avatarUpload: '头像上传',
+ dropzone: 'Dropzone',
+ sticky: 'Sticky',
+ countTo: 'Count To',
+ componentMixin: '小组件',
+ backToTop: '返回顶部',
+ dragDialog: '拖拽 Dialog',
+ dragSelect: '拖拽 Select',
+ dragKanban: '可拖拽看板',
+ charts: '图表',
+ keyboardChart: '键盘图表',
+ lineChart: '折线图',
+ mixChart: '混合图表',
+ example: '综合实例',
+ nested: '路由嵌套',
+ menu1: '菜单1',
+ 'menu1-1': '菜单 1-1',
+ 'menu1-2': '菜单 1-2',
+ 'menu1-2-1': '菜单 1-2-1',
+ 'menu1-2-2': '菜单 1-2-2',
+ 'menu1-3': '菜单 1-3',
+ menu2: '菜单 2',
+ Table: 'Table',
+ dynamicTable: '动态 Table',
+ dragTable: '拖拽 Table',
+ inlineEditTable: 'Table 内编辑',
+ complexTable: '综合 Table',
+ tab: 'Tab',
+ form: '表单',
+ createArticle: '创建文章',
+ editArticle: '编辑文章',
+ articleList: '文章列表',
+ errorPages: '错误页面',
+ page401: '401',
+ page404: '404',
+ errorLog: '错误日志',
+ excel: 'Excel',
+ exportExcel: '导出 Excel',
+ selectExcel: '导出 已选择项',
+ mergeHeader: '导出 多级表头',
+ uploadExcel: '上传 Excel',
+ zip: 'Zip',
+ pdf: 'PDF',
+ exportZip: 'Export Zip',
+ theme: '换肤',
+ clipboardDemo: 'Clipboard',
+ i18n: '国际化',
+ externalLink: '外链',
+ profile: '个人中心'
+ },
+ navbar: {
+ dashboard: '首页',
+ github: '项目地址',
+ logOut: '退出登录',
+ profile: '个人中心',
+ theme: '换肤',
+ size: '布局大小',
+ modify: '修改资料'
+ },
+ login: {
+ title: '系统登录',
+ logIn: '登录',
+ username: '账号',
+ password: '密码',
+ any: '随便填',
+ thirdparty: '第三方登录',
+ thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!'
+ },
+ documentation: {
+ documentation: '文档',
+ github: 'Github 地址'
+ },
+ permission: {
+ addRole: '新增角色',
+ editPermission: '编辑权限',
+ roles: '你的权限',
+ switchRoles: '切换权限',
+ tips: '在某些情况下,不适合使用 v-permission。例如:Element-UI 的 el-tab 或 el-table-column 以及其它动态渲染 dom 的场景。你只能通过手动设置 v-if 来实现。',
+ delete: '删除',
+ confirm: '确定',
+ cancel: '取消'
+ },
+ guide: {
+ description: '引导页对于一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基于',
+ button: '打开引导'
+ },
+ components: {
+ documentation: '文档',
+ tinymceTips: '富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下选择了Tinymce。更详细的富文本比较和介绍见',
+ dropzoneTips: '由于我司业务有特殊需求,而且要传七牛 所以没用第三方,选择了自己封装。代码非常的简单,具体代码你可以在这里看到 @/components/Dropzone',
+ stickyTips: '当页面滚动到预设的位置会吸附在顶部',
+ backToTopTips1: '页面滚动到指定位置会在右下角出现返回顶部按钮',
+ backToTopTips2: '可自定义按钮的样式、show/hide、出现的高度、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素',
+ imageUploadTips: '由于我在使用时它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的话,优先还是使用官方版本。'
+ },
+ table: {
+ dynamicTips1: '固定表头, 按照表头顺序排序',
+ dynamicTips2: '不固定表头, 按照点击顺序排序',
+ dragTips1: '默认顺序',
+ dragTips2: '拖拽后顺序',
+ title: '标题',
+ importance: '重要性',
+ type: '类型',
+ remark: '点评',
+ search: '搜索',
+ add: '添加',
+ export: '导出',
+ reviewer: '审核人',
+ id: '序号',
+ date: '时间',
+ author: '作者',
+ readings: '阅读数',
+ status: '状态',
+ actions: '操作',
+ edit: '编辑',
+ publish: '发布',
+ draft: '草稿',
+ delete: '删除',
+ cancel: '取 消',
+ confirm: '确 定'
+ },
+ example: {
+ warning: '创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见'
+ },
+ errorLog: {
+ tips: '请点击右上角bug小图标',
+ description: '现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。',
+ documentation: '文档介绍'
+ },
+ excel: {
+ export: '导出',
+ selectedExport: '导出已选择项',
+ placeholder: '请输入文件名(默认excel-list)'
+ },
+ zip: {
+ export: '导出',
+ placeholder: '请输入文件名(默认file)'
+ },
+ pdf: {
+ tips: '这里使用 window.print() 来实现下载pdf的功能'
+ },
+ theme: {
+ change: '换肤',
+ documentation: '换肤文档',
+ tips: 'Tips: 它区别于 navbar 上的 theme-pick, 是两种不同的换肤方法,各自有不同的应用场景,具体请参考文档。'
+ },
+ tagsView: {
+ refresh: '刷新',
+ close: '关闭',
+ closeOthers: '关闭其它',
+ closeAll: '关闭所有'
+ },
+ settings: {
+ title: '系统布局配置',
+ theme: '主题色',
+ tagsView: '开启 Tags-View',
+ fixedHeader: '固定 Header',
+ sidebarLogo: '侧边栏 Logo'
+ }
+}
diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue
new file mode 100644
index 0000000..f4490c1
--- /dev/null
+++ b/src/layout/components/AppMain.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
new file mode 100644
index 0000000..f5fed92
--- /dev/null
+++ b/src/layout/components/Navbar.vue
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue
new file mode 100644
index 0000000..15c9edb
--- /dev/null
+++ b/src/layout/components/Settings/index.vue
@@ -0,0 +1,152 @@
+
+
+
+
{{ $t('settings.title') }}
+
+
+ {{ $t('settings.theme') }}
+
+
+
+
+ {{ $t('settings.tagsView') }}
+
+
+
+
+ {{ $t('settings.fixedHeader') }}
+
+
+
+
+ {{ $t('settings.sidebarLogo') }}
+
+
+
+
+
+
+
+ 菜单支持拼音搜索
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Sidebar/FixiOSBug.js b/src/layout/components/Sidebar/FixiOSBug.js
new file mode 100644
index 0000000..bc14856
--- /dev/null
+++ b/src/layout/components/Sidebar/FixiOSBug.js
@@ -0,0 +1,26 @@
+export default {
+ computed: {
+ device() {
+ return this.$store.state.app.device
+ }
+ },
+ mounted() {
+ // In order to fix the click on menu on the ios device will trigger the mouseleave bug
+ // https://github.com/PanJiaChen/vue-element-admin/issues/1135
+ this.fixBugIniOS()
+ },
+ methods: {
+ fixBugIniOS() {
+ const $subMenu = this.$refs.subMenu
+ if ($subMenu) {
+ const handleMouseleave = $subMenu.handleMouseleave
+ $subMenu.handleMouseleave = (e) => {
+ if (this.device === 'mobile') {
+ return
+ }
+ handleMouseleave(e)
+ }
+ }
+ }
+ }
+}
diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue
new file mode 100644
index 0000000..aa1f5da
--- /dev/null
+++ b/src/layout/components/Sidebar/Item.vue
@@ -0,0 +1,41 @@
+
+
+
diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue
new file mode 100644
index 0000000..530b3d5
--- /dev/null
+++ b/src/layout/components/Sidebar/Link.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Sidebar/Logo.vue b/src/layout/components/Sidebar/Logo.vue
new file mode 100644
index 0000000..0dbc1fd
--- /dev/null
+++ b/src/layout/components/Sidebar/Logo.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue
new file mode 100644
index 0000000..f87b70b
--- /dev/null
+++ b/src/layout/components/Sidebar/SidebarItem.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
new file mode 100644
index 0000000..fb014a2
--- /dev/null
+++ b/src/layout/components/Sidebar/index.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue
new file mode 100644
index 0000000..1d8b0e8
--- /dev/null
+++ b/src/layout/components/TagsView/ScrollPane.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
new file mode 100644
index 0000000..c3259fa
--- /dev/null
+++ b/src/layout/components/TagsView/index.vue
@@ -0,0 +1,301 @@
+
+
+
+
+ {{ generateTitle(tag.title) }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/index.js b/src/layout/components/index.js
new file mode 100644
index 0000000..104bd3a
--- /dev/null
+++ b/src/layout/components/index.js
@@ -0,0 +1,5 @@
+export { default as AppMain } from './AppMain'
+export { default as Navbar } from './Navbar'
+export { default as Settings } from './Settings'
+export { default as Sidebar } from './Sidebar/index.vue'
+export { default as TagsView } from './TagsView/index.vue'
diff --git a/src/layout/index.vue b/src/layout/index.vue
new file mode 100644
index 0000000..23dcad2
--- /dev/null
+++ b/src/layout/index.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
diff --git a/src/layout/mixin/ResizeHandler.js b/src/layout/mixin/ResizeHandler.js
new file mode 100644
index 0000000..e8d0df8
--- /dev/null
+++ b/src/layout/mixin/ResizeHandler.js
@@ -0,0 +1,45 @@
+import store from '@/store'
+
+const { body } = document
+const WIDTH = 992 // refer to Bootstrap's responsive design
+
+export default {
+ watch: {
+ $route(route) {
+ if (this.device === 'mobile' && this.sidebar.opened) {
+ store.dispatch('app/closeSideBar', { withoutAnimation: false })
+ }
+ }
+ },
+ beforeMount() {
+ window.addEventListener('resize', this.$_resizeHandler)
+ },
+ beforeDestroy() {
+ window.removeEventListener('resize', this.$_resizeHandler)
+ },
+ mounted() {
+ const isMobile = this.$_isMobile()
+ if (isMobile) {
+ store.dispatch('app/toggleDevice', 'mobile')
+ store.dispatch('app/closeSideBar', { withoutAnimation: true })
+ }
+ },
+ methods: {
+ // use $_ for mixins properties
+ // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
+ $_isMobile() {
+ const rect = body.getBoundingClientRect()
+ return rect.width - 1 < WIDTH
+ },
+ $_resizeHandler() {
+ if (!document.hidden) {
+ const isMobile = this.$_isMobile()
+ store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop')
+
+ if (isMobile) {
+ store.dispatch('app/closeSideBar', { withoutAnimation: true })
+ }
+ }
+ }
+ }
+}
diff --git a/src/main.js b/src/main.js
new file mode 100644
index 0000000..2fb747b
--- /dev/null
+++ b/src/main.js
@@ -0,0 +1,64 @@
+import Vue from 'vue'
+
+import Cookies from 'js-cookie'
+
+import 'normalize.css/normalize.css' // a modern alternative to CSS resets
+
+import Element from 'element-ui'
+import './styles/element-variables.scss'
+
+import '@/styles/index.scss' // global css
+
+import App from './App'
+import store from './store'
+import router from './router'
+import variables from './global/variables/index'
+import i18n from './lang' // internationalization
+import './icons' // icon
+import './permission' // permission control
+import './utils/error-log' // error log
+import mixins from './mixins'
+import * as filters from './filters' // global filters
+import bus from './utils/bus'
+import Lodash from './utils/lodash'
+import ConfirmLayer from './components/ConfirmLayer/index.js'
+import hevueImgPreview from 'hevue-img-preview'
+
+/**
+ * If you don't want to use mock-server
+ * you want to use MockJs for mock api
+ * you can execute: mockXHR()
+ *
+ * Currently MockJs will be used in the production environment,
+ * please remove it before going online ! ! !
+ */
+// if (process.env.NODE_ENV === 'production') {
+// const { mockXHR } = require('../mock')
+// mockXHR()
+// }
+
+Vue.use(Element, {
+ size: Cookies.get('size') || 'medium', // set element-ui default size
+ i18n: (key, value) => i18n.t(key, value)
+})
+Vue.use(ConfirmLayer)
+Vue.use(bus)
+Vue.use(Lodash)
+Vue.mixin(mixins)
+Vue.use(hevueImgPreview)
+Vue.prototype.$variables = variables
+
+// register global utility filters
+Object.keys(filters).forEach(key => {
+ Vue.filter(key, filters[key])
+})
+
+Vue.config.productionTip = false
+
+new Vue({
+ el: '#app',
+ router,
+ store,
+ i18n,
+ render: h => h(App)
+})
diff --git a/src/mixins/MarketingAppInfo.js b/src/mixins/MarketingAppInfo.js
new file mode 100644
index 0000000..5af370e
--- /dev/null
+++ b/src/mixins/MarketingAppInfo.js
@@ -0,0 +1,29 @@
+export default {
+ data() {
+ const baseUrl = './pic/marketing/'
+ const iconMap = {
+ zhiying_moments: '朋友圈.png',
+ zhiying_business_college: '商学院.png',
+ zhiying_wx_mentor: '朋友圈.png',
+ zhiying_yunfadan: '云发单.png',
+ zhiying_member_upgrade: '会员卡.png',
+ zhiying_proprietary: '权益卡.png',
+ zhiying_new_user_free: '免单.png',
+ zhiying_popup_window: '弹窗广告.png'
+ }
+ Object.keys(iconMap).map(key => {
+ iconMap[key] = baseUrl + iconMap[key]
+ })
+
+ return {
+ iconMap: iconMap,
+ // 能装修的模块应用
+ canSettingList: [
+ 'zhiying_business_college',
+ 'zhiying_new_user_free',
+ 'zhiying_moments',
+ 'zhiying_popup_window'
+ ]
+ }
+ }
+}
diff --git a/src/mixins/SetActiveTab.js b/src/mixins/SetActiveTab.js
new file mode 100644
index 0000000..5668589
--- /dev/null
+++ b/src/mixins/SetActiveTab.js
@@ -0,0 +1,36 @@
+export default {
+ methods: {
+ // 路由跳转到指定tab
+ setActiveTabByRoute() {
+ if (!this.$route.query.active) {
+ return
+ }
+ const keys = Object.keys(this.labelList)
+ let newActive = this.$route.query.active.toString()
+
+ if (keys.indexOf(newActive) > -1) {
+ newActive = newActive.toString()
+ this.activeName = newActive
+ setTimeout(() => {
+ // 解决activeName改变,active_bar没有改变
+ const offsetArr = this.getTabOffset()
+ let translateX = 'translateX(__OFFSET__px)'
+ translateX = translateX.replace('__OFFSET__', (offsetArr[keys.indexOf(newActive)]).toString())
+ document.querySelector('.el-tabs__active-bar').style.transform = translateX
+ }, 1000)
+ this.$router.push(this.$route.path)
+ }
+ },
+ getTabOffset() {
+ const arr = [0]
+ let total = 0
+ Object.keys(this.labelList).forEach((key) => {
+ const offsetWidth = document.querySelector('#tab-' + key).offsetWidth
+ total += offsetWidth
+ arr.push(total)
+ })
+ arr.pop()
+ return arr
+ }
+ }
+}
diff --git a/src/mixins/index.js b/src/mixins/index.js
new file mode 100644
index 0000000..9cd6265
--- /dev/null
+++ b/src/mixins/index.js
@@ -0,0 +1,14 @@
+// 为自定义的选项 'myOption' 注入一个处理器。
+
+const mixins = {
+ methods: {
+ linkTo(url, query) {
+ this.$router.push({
+ path: url,
+ query: query
+ })
+ }
+ }
+}
+
+export default mixins
diff --git a/src/mobile-views/MobileView/MobileView.vue b/src/mobile-views/MobileView/MobileView.vue
new file mode 100644
index 0000000..3c4eda2
--- /dev/null
+++ b/src/mobile-views/MobileView/MobileView.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/src/mobile-views/common/AdBar.vue b/src/mobile-views/common/AdBar.vue
new file mode 100644
index 0000000..4c52399
--- /dev/null
+++ b/src/mobile-views/common/AdBar.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/common/HoverBlock.vue b/src/mobile-views/common/HoverBlock.vue
new file mode 100644
index 0000000..4cf5935
--- /dev/null
+++ b/src/mobile-views/common/HoverBlock.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/MobileIndex.vue b/src/mobile-views/page/MobileIndex/MobileIndex.vue
new file mode 100644
index 0000000..d0e6724
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/MobileIndex.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/MultiBar.vue b/src/mobile-views/page/MobileIndex/components/MultiBar.vue
new file mode 100644
index 0000000..241e289
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/MultiBar.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/NavBar.vue b/src/mobile-views/page/MobileIndex/components/NavBar.vue
new file mode 100644
index 0000000..4514822
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/NavBar.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/NoticeBar.vue b/src/mobile-views/page/MobileIndex/components/NoticeBar.vue
new file mode 100644
index 0000000..3b42cec
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/NoticeBar.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+ {{ componentData.titleName }} **
+
+
{{ componentData.title }}
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/SearchBarView.vue b/src/mobile-views/page/MobileIndex/components/SearchBarView.vue
new file mode 100644
index 0000000..eeef7e0
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/SearchBarView.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/SliderBar.vue b/src/mobile-views/page/MobileIndex/components/SliderBar.vue
new file mode 100644
index 0000000..0659af3
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/SliderBar.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+ 第{{ index }}张
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/TabList.vue b/src/mobile-views/page/MobileIndex/components/TabList.vue
new file mode 100644
index 0000000..70a3ab3
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/TabList.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/TablistItem.vue b/src/mobile-views/page/MobileIndex/components/TablistItem.vue
new file mode 100644
index 0000000..d5ba1a5
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/TablistItem.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+ 這是一個商品商品商品的名字名字字名名字
+
+
這是一個商品商品商品的描述描述描述述描
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/MobileIndex/components/TabsBar.vue b/src/mobile-views/page/MobileIndex/components/TabsBar.vue
new file mode 100644
index 0000000..184a26e
--- /dev/null
+++ b/src/mobile-views/page/MobileIndex/components/TabsBar.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.subTitle }}
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/VipCenterIndex/VipCenterIndex.vue b/src/mobile-views/page/VipCenterIndex/VipCenterIndex.vue
new file mode 100644
index 0000000..5d3d348
--- /dev/null
+++ b/src/mobile-views/page/VipCenterIndex/VipCenterIndex.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+ 对接store中的数据,广告图片才会显示,此组件为公共组件.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/VipCenterIndex/components/HeaderBar.vue b/src/mobile-views/page/VipCenterIndex/components/HeaderBar.vue
new file mode 100644
index 0000000..0b49d76
--- /dev/null
+++ b/src/mobile-views/page/VipCenterIndex/components/HeaderBar.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
diff --git a/src/mobile-views/page/VipCenterIndex/components/MultiNav.vue b/src/mobile-views/page/VipCenterIndex/components/MultiNav.vue
new file mode 100644
index 0000000..14ef963
--- /dev/null
+++ b/src/mobile-views/page/VipCenterIndex/components/MultiNav.vue
@@ -0,0 +1,140 @@
+
+
+
+
这是标题
+
+
+
+
+
单项名字
+
+
+
+
+
+
单项名字
+
+
+
+
+
+
单项名字
+
+
+
+
+
+
单项名字
+
+
+
+
+
+
单项名字
+
+
+
+
+
+
单项名字
+
+
+
+
+
+
单项名字
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/VipCenterIndex/components/NavBar.vue b/src/mobile-views/page/VipCenterIndex/components/NavBar.vue
new file mode 100644
index 0000000..00ba844
--- /dev/null
+++ b/src/mobile-views/page/VipCenterIndex/components/NavBar.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
我的钱包
+
+
+
+
+
+
我的钱包
+
+
+
+
+
+
我的钱包
+
+
+
+
+
+
我的钱包
+
+
+
+
+
+
+
+
diff --git a/src/mobile-views/page/VipCenterIndex/components/StatisticsBar.vue b/src/mobile-views/page/VipCenterIndex/components/StatisticsBar.vue
new file mode 100644
index 0000000..698bbaf
--- /dev/null
+++ b/src/mobile-views/page/VipCenterIndex/components/StatisticsBar.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+ 上月预估收入: ¥ 1579.25
+
+
+
+
+
+ 上月预估收入: ¥ 1579.25
+
+
+
+
+
+
+
+
diff --git a/src/myModel/authorizeApi.js b/src/myModel/authorizeApi.js
new file mode 100644
index 0000000..a8b594b
--- /dev/null
+++ b/src/myModel/authorizeApi.js
@@ -0,0 +1,235 @@
+import Authorize from '@/api/setting-center/Authorize'
+
+const log = console.log.bind(console)
+
+class AuthorizeApi {
+ constructor() {
+ this.api = new Authorize()
+ }
+
+ cleanForTb(dataCell) {
+ const d = dataCell
+ const keyData = JSON.parse(d.keyData)
+ // 字段有残缺暂未完成
+ const result = {
+ id: d.id,
+ markName: d.name,
+ authorizeChannel: d.name,
+ apiAppKey: d.apiAppKey,
+ apiAppSecret: d.apiAppSecret,
+ promoteShare: d.promoteShare,
+ selfShare: d.selfShare,
+ androidSelfKey: keyData.android.selfKey,
+ iosSelfKey: keyData.ios.slefKey,
+ authorizeStatus: d.authStatus,
+ authorizeTime: 10,
+ // authorizeMode: '网页授权',
+ syncStartDate: d.syncTime,
+ useStatus: d.isUse,
+ accessToken: keyData.accessToken
+ }
+ return result
+ }
+
+ cleanForJd(dataCell) {
+ const d = dataCell
+ const keyData = JSON.parse(d.keyData)
+ // 字段有残缺暂未完成
+ const result = {
+ id: d.id,
+ markName: d.name,
+ authorizeChannel: d.name,
+ apiAppKey: d.apiAppKey,
+ apiAppSecret: d.apiAppSecret,
+ promoteShare: d.promoteShare,
+ selfShare: d.selfShare,
+ androidSelfKey: keyData.android.selfKey,
+ iosSelfKey: keyData.ios.selfKey,
+ authorizeStatus: d.authStatus,
+ authorizeTime: 10,
+ // authorizeMode: '网页授权',
+ syncStartDate: d.syncTime,
+ useStatus: d.isUse,
+ accessToken: keyData.accessToken
+ }
+ return result
+ }
+
+ cleanForPdd(dataCell) {
+ const d = dataCell
+ const keyData = JSON.parse(d.keyData)
+ // 字段有残缺暂未完成
+ const result = {
+ id: d.id,
+ markName: d.name,
+ authorizeChannel: d.name,
+ apiAppKey: d.apiAppKey,
+ apiAppSecret: d.apiAppSecret,
+ promoteShare: d.promoteShare,
+ selfShare: d.selfShare,
+ clientId: keyData.clientId,
+ authorizeStatus: d.authStatus,
+ authorizeTime: 10,
+ // authorizeMode: '网页授权',
+ syncStartDate: d.syncTime,
+ useStatus: d.isUse,
+ accessToken: keyData.accessToken
+ }
+ return result
+ }
+
+ cleanForWph(dataCell) {
+ const d = dataCell
+ const keyData = JSON.parse(d.keyData)
+ // 字段有残缺暂未完成
+ const result = {
+ id: d.id,
+ markName: d.name,
+ authorizeChannel: d.name,
+ apiAppKey: d.apiAppKey,
+ apiAppSecret: d.apiAppSecret,
+ promoteShare: d.promoteShare,
+ selfShare: d.selfShare,
+ androidSelfKey: keyData.android.selfKey,
+ iosSelfKey: keyData.ios.selfKey,
+ authorizeStatus: d.authStatus,
+ authorizeTime: 10,
+ // authorizeMode: '网页授权',
+ syncStartDate: d.syncTime,
+ useStatus: d.isUse,
+ accessToken: keyData.accessToken
+ }
+ return result
+ }
+
+ cleanForSn(dataCell) {
+ const d = dataCell
+ const keyData = JSON.parse(d.keyData)
+ // 字段有残缺暂未完成
+ const result = {
+ id: d.id,
+ markName: d.name,
+ authorizeChannel: d.name,
+ apiAppKey: d.apiAppKey,
+ apiAppSecret: d.apiAppSecret,
+ promoteShare: d.promoteShare,
+ selfShare: d.selfShare,
+ authorizeStatus: d.authStatus,
+ authorizeTime: 10,
+ // authorizeMode: '网页授权',
+ syncStartDate: d.syncTime,
+ useStatus: d.isUse,
+ accessToken: keyData.accessToken
+ }
+ return result
+ }
+
+ cleanForKl(dataCell) {
+ const d = dataCell
+ const keyData = JSON.parse(d.keyData)
+ // 字段有残缺暂未完成
+ const result = {
+ id: d.id,
+ markName: d.name,
+ authorizeChannel: d.name,
+ apiAppKey: d.apiAppKey,
+ apiAppSecret: d.apiAppSecret,
+ promoteShare: d.promoteShare,
+ selfShare: d.selfShare,
+ authorizeStatus: d.authStatus,
+ authorizeTime: 10,
+ // authorizeMode: '网页授权',
+ syncStartDate: d.syncTime,
+ useStatus: d.isUse,
+ accessToken: keyData.accessToken
+ }
+ return result
+ }
+
+ cleanForDm(dataCell) {
+ const d = dataCell
+ const keyData = JSON.parse(d.keyData)
+ // 字段有残缺暂未完成
+ const result = {
+ id: d.id,
+ markName: d.name,
+ authorizeChannel: d.name,
+ apiAppKey: d.apiAppKey,
+ apiAppSecret: d.apiAppSecret,
+ promoteShare: d.promoteShare,
+ selfShare: d.selfShare,
+ authorizeStatus: d.authStatus,
+ authorizeTime: 10,
+ // authorizeMode: '网页授权',
+ syncStartDate: d.syncTime,
+ useStatus: d.isUse,
+ accessToken: keyData.accessToken
+ }
+ return result
+ }
+
+ cleanByName(tableName, dataCell) {
+ const nameMap = {
+ taobao: this.cleanForTb,
+ jd: this.cleanForJd,
+ pdd: this.cleanForPdd,
+ wph: this.cleanForWph,
+ suning: this.cleanForSn,
+ kaola: this.cleanForKl,
+ duomai: this.cleanForDm
+ }
+ // log(tableName, 'in clean')
+ let func = () => {
+ log('name不存在于map中')
+ }
+ if (nameMap[tableName] !== undefined) {
+ func = nameMap[tableName]
+ }
+ return func(dataCell)
+ }
+
+ clean(tableName, data) {
+ const result = []
+ data.map(item => {
+ // const cell = func(item)
+ const cell = this.cleanByName(tableName, item)
+ result.push(cell)
+ })
+ // log(result, 'in clean')
+ return result
+ }
+
+ // 根据tabs选中的activeName拉取对应的数据
+ loadByName(tableName, page) {
+ const l = this.api.loadByName(tableName, page)
+ return l.then(res => {
+ const data = res.data
+ log(data, 'in load')
+ return this.clean(tableName, data)
+ })
+ }
+
+ // 提交数据,name是alliance-authorize中的activeName,data是要提交的数据
+ updataByName(name, data) {
+ // log(data, 'in updata')
+ const d = JSON.stringify(data)
+ const u = this.api.updataByName(name, d)
+ return u
+ }
+
+ unionUse(data) {
+ const d = JSON.stringify(data)
+ const u = this.api.unionUse(d)
+ return u
+ }
+
+ unionDelete(data) {
+ const d = JSON.stringify(data)
+ const u = this.api.unionDelete(d)
+ return u
+ }
+}
+
+const authorizeApi = new AuthorizeApi()
+
+export default authorizeApi
diff --git a/src/myModel/commonApi.js b/src/myModel/commonApi.js
new file mode 100644
index 0000000..e11a53e
--- /dev/null
+++ b/src/myModel/commonApi.js
@@ -0,0 +1,118 @@
+import CommonSet from '@/api/setting-center/CommonSet'
+const log = console.log.bind(console)
+
+class CommonSetApi {
+ constructor() {
+ this.api = new CommonSet()
+ }
+ getBase64FormUrl(url) {
+ const p = new Promise((resolve, reject) => {
+ const img = new Image()
+ let result = ''
+ img.crossOrigin = ''
+ img.src = url
+ img.onload = function() {
+ var canvas = document.createElement('canvas')
+ canvas.width = img.width
+ canvas.height = img.height
+ var ctx = canvas.getContext('2d')
+ ctx.drawImage(img, 0, 0, img.width, img.height)
+ var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase()
+ var dataURL = canvas.toDataURL('image/' + ext)
+ result = dataURL
+ resolve(result)
+ }
+ })
+ return p
+ }
+
+ async base64ByObject(animaList) {
+ let pList = []
+ animaList.map(item => {
+ const p = this.getBase64FormUrl(item.img)
+ pList.push(p)
+ })
+ await Promise.all(pList).then((i, index) => {
+ pList = i
+ })
+ animaList.map((item, index) => {
+ item.img = pList[index]
+ })
+ }
+
+ async formateData(data) {
+ const d = data
+ const appLogo = await this.getBase64FormUrl('http://' + d.appLogo)
+ const holderImage = await this.getBase64FormUrl('http://' + d.holderImage)
+ const loadAnima = d.loadAnima
+ await this.base64ByObject(loadAnima)
+ let result = {
+ appName: d.appName,
+ appDesc: d.describe,
+ appInviteType: d.inviteCodeSeting,
+ appInviteLength: d.inviteLength,
+ appLogo: appLogo,
+ goodsBgImg: holderImage,
+ appLoadingList: loadAnima,
+ sharePlatform: d.shareList,
+ sharePlatformIcon: d.platformList
+ }
+ result = JSON.stringify(result)
+ // log(result, 'result')
+ return result
+ }
+
+ // 更新提交数据
+ async updata(data) {
+ const formate = await this.formateData(data)
+ // log(formate, 'in updata')
+ const u = this.api.updata(formate)
+ return u
+ }
+
+ cleanFileItem(item) {
+ const i = item
+ const result = {
+ name: i.showName,
+ id: i.fileFid,
+ provider: i.provider,
+ userName: i.userNickname,
+ width: i.width,
+ height: i.height,
+ date: i.date,
+ size: i.fileSize,
+ imgUrl: 'http://' + i.imageUrl
+ }
+ log(result, 'result')
+ return result
+ }
+
+ cleanFileList(fileList) {
+ const f = fileList
+ const result = []
+ f.map(item => {
+ result.push(this.cleanFileItem(item))
+ })
+ return result
+ }
+ // 获取通用设置图片文件管理列表
+ loadFileList() {
+ const l = this.api.loadFileList()
+ return l.then(res => {
+ const data = res.data.fileList
+ // log(data, 'in loadFileList')
+ return this.cleanFileList(data)
+ })
+ }
+
+ loadFileList2(params) {
+ const l = this.api.loadFileList(params)
+ return l.then(res => {
+ return res.data
+ })
+ }
+}
+
+const commonApi = new CommonSetApi()
+
+export default commonApi
diff --git a/src/myModel/d3Api.js b/src/myModel/d3Api.js
new file mode 100644
index 0000000..7405a61
--- /dev/null
+++ b/src/myModel/d3Api.js
@@ -0,0 +1,30 @@
+import D3Set from '@/api/setting-center/D3Set'
+import _ from 'lodash'
+
+class D3SetApi {
+ constructor() {
+ this.api = new D3Set()
+ }
+
+ // 根据tabs选中的activeName拉取对应的数据
+ // name是第三方设置中的activeName
+ loadByName(name) {
+ const l = this.api.loadByName(name)
+ return l.then(res => {
+ const data = res.data
+ return _.cloneDeep(data)
+ })
+ }
+
+ // 提交数据,name是第三方设置中的activeName,data是要提交的数据
+ updataByName(name, data) {
+ // log(data, 'in updata')
+ const d = JSON.stringify(data)
+ const u = this.api.updataByName(name, d)
+ return u
+ }
+}
+
+const d3Api = new D3SetApi()
+
+export default d3Api
diff --git a/src/myModel/memberApi.js b/src/myModel/memberApi.js
new file mode 100644
index 0000000..a5314f8
--- /dev/null
+++ b/src/myModel/memberApi.js
@@ -0,0 +1,108 @@
+import MemberSet from '@/api/setting-center/MemberSet'
+const log = console.log.bind(console)
+
+class MemberSetApi {
+ constructor() {
+ this.api = new MemberSet()
+ }
+
+ getListByValid(validMemberCondition) {
+ const v = validMemberCondition
+ let keys = Object.keys(v)
+ const list = []
+
+ keys = keys.filter(
+ item => item !== 'orderPay' && item !== 'goodsCommission'
+ )
+
+ const keysMap = {
+ bindPhone: '1',
+ tbAuth: '2',
+ receive: '3',
+ withdraw: '4'
+ }
+
+ keys.map(item => {
+ if (v[item] === 1) {
+ list.push(keysMap[item])
+ }
+ })
+ return list
+ }
+
+ getRadioByCondition(newMemberCondition) {
+ const n = newMemberCondition
+ let radio = '0'
+ log(n, 'newMenber')
+ const condition = JSON.parse(n)
+ const k = Object.keys(condition)
+ radio = k.includes('registerIn') ? '0' : '1'
+ log(radio, 'radio')
+ return radio
+ }
+
+ loadClean(data) {
+ const d = data
+ const list = this.getListByValid(JSON.parse(d.validMemberCondition))
+ const radio = this.getRadioByCondition(d.newMemberCondition)
+ const dataForm = {
+ limitRegister: d.limitRegister,
+ limitText: d.limitRegisterText,
+ rules: JSON.parse(d.limitRegisterRule),
+ validMember: JSON.parse(d.validMemberCondition),
+ needInviteCode: d.needInviteCode,
+ newMemberCondition: JSON.parse(d.newMemberCondition),
+ checkList: list,
+ conditionRadio: radio
+ }
+ log(dataForm, 'clean')
+ return dataForm
+ }
+
+ // 页面数据初始化
+ load() {
+ const l = this.api.load()
+ return l.then(res => {
+ const data = res.data
+ log(data, 'in load')
+ return this.loadClean(data)
+ })
+ }
+
+ formateToNumber(obj) {
+ const keys = Object.keys(obj)
+ for (const k of keys) {
+ obj[k] = Number(obj[k])
+ }
+ return obj
+ }
+
+ formateData(data) {
+ const f = JSON.parse(JSON.stringify(data))
+ const toNum = this.formateToNumber
+ let result = {
+ limitRegister: Number(f.limitRegister),
+ limitRegisterRule: toNum(f.rules),
+ limitRegisterText: f.limitText,
+ validMemberCondition: toNum(f.validMember),
+ newMemberCondition: toNum(f.newMemberCondition),
+ needInviteCode: Number(f.needInviteCode)
+ }
+ log(result, 'result')
+ result = JSON.stringify(result)
+ return result
+ }
+
+ // 保存设置修改
+ updataSet(data) {
+ const formate = this.formateData(data)
+ log(formate, 'formate in here')
+ const u = this.api.updataSet(formate)
+ log(u, 'formate')
+ return u
+ }
+}
+
+const memberApi = new MemberSetApi()
+
+export default memberApi
diff --git a/src/myModel/paySetApi.js b/src/myModel/paySetApi.js
new file mode 100644
index 0000000..03df82f
--- /dev/null
+++ b/src/myModel/paySetApi.js
@@ -0,0 +1,48 @@
+import PaySet from '@/api/setting-center/PaySet'
+import request from '@/utils/request'
+
+class PaySetApi {
+ constructor() {
+ this.api = new PaySet()
+ }
+
+ clean(data) {
+ const d = data
+ const result = {
+ alipayId: d.payAliAppId,
+ privateKey: d.payAliPrivateKey,
+ publicKey: d.payAliPublicKey,
+ weChatId: d.payWxAppid,
+ mchId: d.payWxMchId,
+ weChatApiKey: d.payWxApiKey,
+ apiclientCert: d.payWxClientCert,
+ apiclientkey: d.payWxApiClientKey,
+ aliKeyType: d.payAliKeyType,
+ refundType: d.payRefundType,
+ payList: d.payType,
+ balanceImg: d.payBalanceImg,
+ aliPayImg: d.payAliPayImg,
+ wxPayImg: d.payWxPayImg
+ }
+ return result
+ }
+
+ load() {
+ const l = this.api.load()
+ return l.then(res => {
+ return this.clean(res.data)
+ })
+ }
+
+ saveData(data) {
+ return request({
+ url: '/setCenter/PaySet/payCenterSet',
+ method: 'post',
+ data
+ })
+ }
+}
+
+const paySetApi = new PaySetApi()
+
+export default paySetApi
diff --git a/src/myModel/pushSetApi.js b/src/myModel/pushSetApi.js
new file mode 100644
index 0000000..d7b620c
--- /dev/null
+++ b/src/myModel/pushSetApi.js
@@ -0,0 +1,73 @@
+import PushSet from '@/api/setting-center/PushSet'
+
+class PushSetApi {
+ constructor() {
+ this.api = new PushSet()
+ }
+
+ cleanApp(data) {
+ const d = data
+ const result = {
+ pushPlatform: d.pushPlatform,
+ mobAppKey: d.mobAppKey,
+ mobAppSecret: d.mobAppSecret,
+ huaWeiAppId: d.huaWeiAppId,
+ meiZuAppId: d.meiZuAppId,
+ meiZuAppKey: d.meiZuAppKey,
+ xiaoMiAppId: d.xiaoMiAppId,
+ xiaoMiAppkey: d.xiaoMiAppkey,
+ vivoAppId: d.vivoAppId,
+ vivoAppKey: d.vivoAppKey,
+ oppoAppId: d.oppoAppId,
+ oppoAppKey: d.oppoAppKey,
+ isOfficialPush: d.isOfficialPush
+ }
+ return result
+ }
+
+ loadForApp() {
+ const l = this.api.loadByName('appPush')
+ return l.then(res => {
+ const data = res.data
+ // return _.cloneDeep(data)
+ return this.cleanApp(data)
+ })
+ }
+
+ cleanMsg(data) {
+ const d = data
+ const result = {
+ publicSmsCount: d.publicSmsCount,
+ saleSmsCount: d.saleSmsCount,
+ smsEmptyTipsNum: d.smsEmptyTipsNum,
+ smsIsUnionTips: d.smsIsUnionTips,
+ smsIsUseSmsPush: d.smsIsUseSmsPush,
+ smsPushAppKey: d.smsPushAppKey,
+ smsPushAppSecret: d.smsPushAppSecret,
+ smsPushSign: d.smsPushSign,
+ smsTipsPhone: d.smsTipsPhone
+ }
+ return result
+ }
+
+ loadForMsg() {
+ const l = this.api.loadByName('smsPush')
+ return l.then(res => {
+ const data = res.data
+ // return _.cloneDeep(data)
+ return this.cleanMsg(data)
+ })
+ }
+
+ // 提交数据
+ updataByName(name, data) {
+ // log(data, 'in updata')
+ const d = JSON.stringify(data)
+ const u = this.api.updataByName(name, d)
+ return u
+ }
+}
+
+const pushSetApi = new PushSetApi()
+
+export default pushSetApi
diff --git a/src/permission.js b/src/permission.js
new file mode 100644
index 0000000..0d0a514
--- /dev/null
+++ b/src/permission.js
@@ -0,0 +1,83 @@
+import router from './router'
+import store from './store'
+import { Message } from 'element-ui'
+import NProgress from 'nprogress' // progress bar
+import 'nprogress/nprogress.css' // progress bar style
+import { getToken } from '@/utils/auth' // get token from cookie
+import getPageTitle from '@/utils/get-page-title'
+
+NProgress.configure({ showSpinner: false }) // NProgress Configuration
+
+const whiteList = ['/login', '/auth-redirect'] // no redirect whitelist
+
+router.beforeEach(async (to, from, next) => {
+ // start progress bar
+ NProgress.start()
+
+ // set page title
+ document.title = getPageTitle(to.meta.title)
+
+ // determine whether the user has logged in
+ const hasToken = getToken()
+
+ console.log(hasToken)
+
+ if (!hasToken) {
+ if (to.path === '/login') {
+ // if is logged in, redirect to the home page
+ next({ path: '/' })
+ NProgress.done() // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939
+ } else {
+ // determine whether the user has obtained his permission roles through getInfo
+ const hasRoles = store.getters.roles && store.getters.roles.length > 0
+ if (hasRoles) {
+ next()
+ } else {
+ try {
+ // get user info
+ // note: roles must be a object array! such as: ['admin'] or ,['developer','editor']
+ const { roles } = await store.dispatch('user/getInfo')
+
+ // generate accessible routes map based on roles
+ const accessRoutes = await store.dispatch(
+ 'permission/generateRoutes',
+ roles
+ )
+
+ // dynamically add accessible routes
+ router.addRoutes(accessRoutes)
+
+ // hack method to ensure that addRoutes is complete
+ // set the replace: true, so the navigation will not leave a history record
+ next({ ...to, replace: true })
+ } catch (error) {
+ // remove token and go to login page to re-login
+ await store.dispatch('user/resetToken')
+ Message.error(error || 'Has Error')
+ next(`/login?redirect=${to.path}`)
+ NProgress.done()
+ }
+ }
+ }
+ } else {
+ /* has no token*/
+
+ if (whiteList.indexOf(to.path) !== -1) {
+ // in the free login whitelist, go directly
+ next()
+ } else {
+ // other pages that do not have permission to access are redirected to the login page.
+ next(`/login?redirect=${to.path}`)
+ NProgress.done()
+ }
+ }
+
+
+
+
+})
+
+router.afterEach(() => {
+ // finish progress bar
+ NProgress.done()
+})
diff --git a/src/router/index.js b/src/router/index.js
new file mode 100644
index 0000000..0abc253
--- /dev/null
+++ b/src/router/index.js
@@ -0,0 +1,123 @@
+import Vue from 'vue'
+import Router from 'vue-router'
+
+Vue.use(Router)
+
+/* Layout */
+import Layout from '@/layout'
+
+/* Router Modules */
+import componentsRouter from './modules/components'
+import chartsRouter from './modules/charts'
+// import nestedRouter from './modules/nested'
+import homeIndexRouter from './modules/home-index'
+// import systemManagementRouter from './modules/system-management'
+
+/**
+ * Note: sub-menu only appear when route children.length >= 1
+ * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
+ *
+ * hidden: true if set true, item will not show in the sidebar(default is false)
+ * alwaysShow: true if set true, will always show the root menu
+ * if not set alwaysShow, when item has more than one children route,
+ * it will becomes nested mode, otherwise not show the root menu
+ * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb
+ * name:'router-name' the name is used by (must set!!!)
+ * meta : {
+ roles: ['admin','editor'] control the page roles (you can set multiple roles)
+ title: 'title' the name show in sidebar and breadcrumb (recommend set)
+ icon: 'svg-name'/'el-icon-x' the icon show in the sidebar
+ noCache: true if set true, the page will no be cached(default is false)
+ affix: true if set true, the tag will affix in the tags-view
+ breadcrumb: false if set false, the item will hidden in breadcrumb(default is true)
+ activeMenu: '/example/list' if set path, the sidebar will highlight the path you set
+ }
+ */
+
+/**
+ * constantRoutes
+ * a base page that does not have permission requirements
+ * all roles can be accessed
+ */
+export const constantRoutes = [
+ {
+ path: '/redirect',
+ component: Layout,
+ hidden: true,
+ children: [
+ {
+ path: '/redirect/:path(.*)',
+ component: () => import('@/views/redirect/index')
+ }
+ ]
+ },
+ {
+ path: '/login',
+ component: () => import('@/views/login/index'),
+ hidden: true
+ },
+ {
+ path: '/auth-redirect',
+ component: () => import('@/views/login/auth-redirect'),
+ hidden: true
+ },
+ {
+ path: '/404',
+ component: () => import('@/views/error-page/404'),
+ hidden: true
+ },
+ {
+ path: '/401',
+ component: () => import('@/views/error-page/401'),
+ hidden: true
+ },
+ {
+ path: '/11',
+ redirect: '/index'
+ }
+]
+
+/**
+ * asyncRoutes
+ * the routes that need to be dynamically loaded based on user roles
+ */
+export const asyncRoutes = [
+ homeIndexRouter,
+ // 404 page must be placed at the end !!!
+ { path: '*', redirect: '/404', hidden: true }
+]
+
+if (process.env.NODE_ENV === 'development') {
+ console.log('开发环境, 添加组件列表方便开发')
+ asyncRoutes.splice(0, 0, chartsRouter)
+ // asyncRoutes.splice(0, 0, nestedRouter)
+ asyncRoutes.splice(0, 0, componentsRouter)
+ asyncRoutes.splice(0, 0, {
+ path: '/icon',
+ component: Layout,
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/icons/index'),
+ name: 'Icons',
+ meta: { title: 'icons', icon: 'icon', noCache: true }
+ }
+ ]
+ })
+}
+const createRouter = () =>
+ new Router({
+ // mode: 'history', // require service support
+ scrollBehavior: () => ({ y: 0 }),
+ routes: constantRoutes
+ })
+
+const router = createRouter()
+
+// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
+export function resetRouter() {
+ const newRouter = createRouter()
+ router.matcher = newRouter.matcher // reset router
+}
+
+export default router
diff --git a/src/router/mobile/mobile-routes.js b/src/router/mobile/mobile-routes.js
new file mode 100644
index 0000000..e23226c
--- /dev/null
+++ b/src/router/mobile/mobile-routes.js
@@ -0,0 +1,22 @@
+const mobile_routes = [
+ {
+ path: 'mobile-index',
+ component: () => import('@/mobile-views/page/MobileIndex/MobileIndex'),
+ name: 'MobileIndex',
+ meta: { title: '首页模板装修', activeMenu: '/mp-custom-center/tabbar' },
+ hidden: true
+ },
+ {
+ path: 'vip-center',
+ component: () =>
+ import('@/mobile-views/page/VipCenterIndex/VipCenterIndex'),
+ name: 'VipCenterIndex',
+ meta: {
+ title: '会员中心模板装修',
+ activeMenu: '/mp-custom-center/vip-index'
+ },
+ hidden: true
+ }
+]
+
+export default mobile_routes
diff --git a/src/router/modules/charts.js b/src/router/modules/charts.js
new file mode 100644
index 0000000..59ebf18
--- /dev/null
+++ b/src/router/modules/charts.js
@@ -0,0 +1,36 @@
+/** When your routing table is too long, you can split it into small modules**/
+
+import Layout from '@/layout'
+
+const chartsRouter = {
+ path: '/charts',
+ component: Layout,
+ redirect: 'noRedirect',
+ name: 'Charts',
+ meta: {
+ title: 'charts',
+ icon: 'chart'
+ },
+ children: [
+ {
+ path: 'keyboard',
+ component: () => import('@/views/charts/keyboard'),
+ name: 'KeyboardChart',
+ meta: { title: 'keyboardChart', noCache: true }
+ },
+ {
+ path: 'line',
+ component: () => import('@/views/charts/line'),
+ name: 'LineChart',
+ meta: { title: 'lineChart', noCache: true }
+ },
+ {
+ path: 'mix-chart',
+ component: () => import('@/views/charts/mix-chart'),
+ name: 'MixChart',
+ meta: { title: 'mixChart', noCache: true }
+ }
+ ]
+}
+
+export default chartsRouter
diff --git a/src/router/modules/components.js b/src/router/modules/components.js
new file mode 100644
index 0000000..b7407e2
--- /dev/null
+++ b/src/router/modules/components.js
@@ -0,0 +1,102 @@
+/** When your routing table is too long, you can split it into small modules **/
+
+import Layout from '@/layout'
+
+const componentsRouter = {
+ path: '/components',
+ component: Layout,
+ redirect: 'noRedirect',
+ name: 'ComponentDemo',
+ meta: {
+ title: 'components',
+ icon: 'component'
+ },
+ children: [
+ {
+ path: 'tinymce',
+ component: () => import('@/views/components-demo/tinymce'),
+ name: 'TinymceDemo',
+ meta: { title: 'tinymce' }
+ },
+ {
+ path: 'markdown',
+ component: () => import('@/views/components-demo/markdown'),
+ name: 'MarkdownDemo',
+ meta: { title: 'markdown' }
+ },
+ {
+ path: 'json-editor',
+ component: () => import('@/views/components-demo/json-editor'),
+ name: 'JsonEditorDemo',
+ meta: { title: 'jsonEditor' }
+ },
+ {
+ path: 'split-pane',
+ component: () => import('@/views/components-demo/split-pane'),
+ name: 'SplitpaneDemo',
+ meta: { title: 'splitPane' }
+ },
+ {
+ path: 'avatar-upload',
+ component: () => import('@/views/components-demo/avatar-upload'),
+ name: 'AvatarUploadDemo',
+ meta: { title: 'avatarUpload' }
+ },
+ {
+ path: 'dropzone',
+ component: () => import('@/views/components-demo/dropzone'),
+ name: 'DropzoneDemo',
+ meta: { title: 'dropzone' }
+ },
+ {
+ path: 'sticky',
+ component: () => import('@/views/components-demo/sticky'),
+ name: 'StickyDemo',
+ meta: { title: 'sticky' }
+ },
+ {
+ path: 'count-to',
+ component: () => import('@/views/components-demo/count-to'),
+ name: 'CountToDemo',
+ meta: { title: 'countTo' }
+ },
+ {
+ path: 'mixin',
+ component: () => import('@/views/components-demo/mixin'),
+ name: 'ComponentMixinDemo',
+ meta: { title: 'componentMixin' }
+ },
+ {
+ path: 'back-to-top',
+ component: () => import('@/views/components-demo/back-to-top'),
+ name: 'BackToTopDemo',
+ meta: { title: 'backToTop' }
+ },
+ {
+ path: 'drag-dialog',
+ component: () => import('@/views/components-demo/drag-dialog'),
+ name: 'DragDialogDemo',
+ meta: { title: 'dragDialog' }
+ },
+ {
+ path: 'drag-select',
+ component: () => import('@/views/components-demo/drag-select'),
+ name: 'DragSelectDemo',
+ meta: { title: 'dragSelect' }
+ },
+ {
+ path: 'dnd-list',
+ component: () => import('@/views/components-demo/dnd-list'),
+ name: 'DndListDemo',
+ meta: { title: 'dndList' }
+ },
+ {
+ path: 'drag-kanban',
+ component: () => import('@/views/components-demo/drag-kanban'),
+ name: 'DragKanbanDemo',
+ meta: { title: 'dragKanban' }
+ }
+ ]
+}
+
+export default componentsRouter
diff --git a/src/router/modules/home-index.js b/src/router/modules/home-index.js
new file mode 100644
index 0000000..55aea0b
--- /dev/null
+++ b/src/router/modules/home-index.js
@@ -0,0 +1,23 @@
+/** When your routing table is too long, you can split it into small modules **/
+
+import Layout from '@/layout'
+
+const homeIndexRouter = {
+ path: '/',
+ component: Layout,
+ redirect: '/index',
+ name: 'HomeIndex',
+ meta: {
+ title: '首页',
+ icon: 'menu-workbench'
+ },
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/home-index/index'),
+ name: 'HomeIndex2',
+ meta: { title: '首页' }
+ }
+ ]
+}
+export default homeIndexRouter
diff --git a/src/router/modules/nested.js b/src/router/modules/nested.js
new file mode 100644
index 0000000..c52664c
--- /dev/null
+++ b/src/router/modules/nested.js
@@ -0,0 +1,66 @@
+/** When your routing table is too long, you can split it into small modules **/
+
+import Layout from '@/layout'
+
+const nestedRouter = {
+ path: '/nested',
+ component: Layout,
+ redirect: '/nested/menu1/menu1-1',
+ name: 'Nested',
+ meta: {
+ title: 'nested',
+ icon: 'nested'
+ },
+ children: [
+ {
+ path: 'menu1',
+ component: () => import('@/views/nested/menu1/index'), // Parent router-view
+ name: 'Menu1',
+ meta: { title: 'menu1' },
+ redirect: '/nested/menu1/menu1-1',
+ children: [
+ {
+ path: 'menu1-1',
+ component: () => import('@/views/nested/menu1/menu1-1'),
+ name: 'Menu1-1',
+ meta: { title: 'menu1-1' }
+ },
+ {
+ path: 'menu1-2',
+ component: () => import('@/views/nested/menu1/menu1-2'),
+ name: 'Menu1-2',
+ redirect: '/nested/menu1/menu1-2/menu1-2-1',
+ meta: { title: 'menu1-2' },
+ children: [
+ {
+ path: 'menu1-2-1',
+ component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'),
+ name: 'Menu1-2-1',
+ meta: { title: 'menu1-2-1' }
+ },
+ {
+ path: 'menu1-2-2',
+ component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'),
+ name: 'Menu1-2-2',
+ meta: { title: 'menu1-2-2' }
+ }
+ ]
+ },
+ {
+ path: 'menu1-3',
+ component: () => import('@/views/nested/menu1/menu1-3'),
+ name: 'Menu1-3',
+ meta: { title: 'menu1-3' }
+ }
+ ]
+ },
+ {
+ path: 'menu2',
+ name: 'Menu2',
+ component: () => import('@/views/nested/menu2/index'),
+ meta: { title: 'menu2' }
+ }
+ ]
+}
+
+export default nestedRouter
diff --git a/src/router/modules/system-management.js b/src/router/modules/system-management.js
new file mode 100644
index 0000000..6a25d2d
--- /dev/null
+++ b/src/router/modules/system-management.js
@@ -0,0 +1,32 @@
+/** When your routing table is too long, you can split it into small modules **/
+
+import Layout from '@/layout'
+
+/**
+ * 系统管理 路由
+ */
+const systemManagementRouter = {
+ path: '/system-management',
+ component: Layout,
+ redirect: '/system-management/index',
+ name: 'SystemManagement',
+ meta: {
+ title: '系统管理',
+ icon: 'system-management'
+ },
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/system-management/attachment-manage/attachment-manage'),
+ name: 'AttachmentManage',
+ meta: { title: '附件管理' }
+ },
+ {
+ path: '/permission-manage',
+ component: () => import('@/views/system-management/permission-manage/permission-manage'),
+ name: 'PermissionManage',
+ meta: { title: '权限管理' }
+ }
+ ]
+}
+export default systemManagementRouter
diff --git a/src/router/modules/table.js b/src/router/modules/table.js
new file mode 100644
index 0000000..d8e5030
--- /dev/null
+++ b/src/router/modules/table.js
@@ -0,0 +1,41 @@
+/** When your routing table is too long, you can split it into small modules **/
+
+import Layout from '@/layout'
+
+const tableRouter = {
+ path: '/table',
+ component: Layout,
+ redirect: '/table/complex-table',
+ name: 'Table',
+ meta: {
+ title: 'Table',
+ icon: 'table'
+ },
+ children: [
+ {
+ path: 'dynamic-table',
+ component: () => import('@/views/table/dynamic-table/index'),
+ name: 'DynamicTable',
+ meta: { title: 'dynamicTable' }
+ },
+ {
+ path: 'drag-table',
+ component: () => import('@/views/table/drag-table'),
+ name: 'DragTable',
+ meta: { title: 'dragTable' }
+ },
+ {
+ path: 'inline-edit-table',
+ component: () => import('@/views/table/inline-edit-table'),
+ name: 'InlineEditTable',
+ meta: { title: 'inlineEditTable' }
+ },
+ {
+ path: 'complex-table',
+ component: () => import('@/views/table/complex-table'),
+ name: 'ComplexTable',
+ meta: { title: 'complexTable' }
+ }
+ ]
+}
+export default tableRouter
diff --git a/src/settings.js b/src/settings.js
new file mode 100644
index 0000000..286ec85
--- /dev/null
+++ b/src/settings.js
@@ -0,0 +1,42 @@
+module.exports = {
+ title: '智莺总后台',
+
+ /**
+ * @type {boolean} true | false
+ * @description Whether show the settings right-panel
+ */
+ showSettings: true,
+
+ /**
+ * @type {boolean} true | false
+ * @description Whether need tagsView
+ */
+ tagsView: true,
+
+ /**
+ * @type {boolean} true | false
+ * @description Whether fix the header
+ */
+ fixedHeader: true,
+
+ /**
+ * @type {boolean} true | false
+ * @description Whether show the logo in sidebar
+ */
+ sidebarLogo: true,
+
+ /**
+ * @type {boolean} true | false
+ * @description Whether support pinyin search in headerSearch
+ * Bundle size minified 47.3kb,minified + gzipped 63kb
+ */
+ supportPinyinSearch: true,
+
+ /**
+ * @type {string | array} 'production' | ['production', 'development']
+ * @description Need show err logs component.
+ * The default is only used in the production env
+ * If you want to also use it in dev, you can pass ['production', 'development']
+ */
+ errorLog: 'production'
+}
diff --git a/src/store/getters.js b/src/store/getters.js
new file mode 100644
index 0000000..313210a
--- /dev/null
+++ b/src/store/getters.js
@@ -0,0 +1,16 @@
+const getters = {
+ sidebar: state => state.app.sidebar,
+ language: state => state.app.language,
+ size: state => state.app.size,
+ device: state => state.app.device,
+ visitedViews: state => state.tagsView.visitedViews,
+ cachedViews: state => state.tagsView.cachedViews,
+ token: state => state.user.token,
+ avatar: state => state.user.avatar,
+ name: state => state.user.name,
+ introduction: state => state.user.introduction,
+ roles: state => state.user.roles,
+ permission_routes: state => state.permission.routes,
+ errorLogs: state => state.errorLog.logs
+}
+export default getters
diff --git a/src/store/index.js b/src/store/index.js
new file mode 100644
index 0000000..0fd8395
--- /dev/null
+++ b/src/store/index.js
@@ -0,0 +1,25 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+import getters from './getters'
+
+Vue.use(Vuex)
+
+// https://webpack.js.org/guides/dependency-management/#requirecontext
+const modulesFiles = require.context('./modules', true, /\.js$/)
+
+// you do not need `import app from './modules/app'`
+// it will auto require all vuex module from modules file
+const modules = modulesFiles.keys().reduce((modules, modulePath) => {
+ // set './app.js' => 'app'
+ const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
+ const value = modulesFiles(modulePath)
+ modules[moduleName] = value.default
+ return modules
+}, {})
+
+const store = new Vuex.Store({
+ modules,
+ getters
+})
+
+export default store
diff --git a/src/store/modules/admin-info.js b/src/store/modules/admin-info.js
new file mode 100644
index 0000000..21dbf21
--- /dev/null
+++ b/src/store/modules/admin-info.js
@@ -0,0 +1,66 @@
+import { changeAdminAvatar, getAdminInfo } from '@/api/admin'
+
+const state = {
+ adminInfo: {},
+ isAdminEditDlgExist: false
+}
+
+const getters = {
+ adminInfo(state) {
+ return state.adminInfo
+ },
+ isAdminEditDlgExist(state) {
+ return state.isAdminEditDlgExist
+ }
+}
+
+const mutations = {
+ SET_ADMIN_INFO: (state, payload) => {
+ state.adminInfo = payload
+ },
+ TOGGLE_EDIT_DLG: (state, value) => {
+ state.isAdminEditDlgExist = value
+ },
+ SET_AVATAR: (state, value) => {
+ state.adminInfo.headerImg = value
+ }
+}
+
+const actions = {
+ initAdminInfo({ commit }, isShowDialog) {
+ return new Promise((resolve, reject) => {
+ getAdminInfo().then((res) => {
+ const data = res.data
+ commit('SET_ADMIN_INFO', data)
+ // 显示编辑弹窗
+ if (isShowDialog) {
+ commit('TOGGLE_EDIT_DLG', true)
+ }
+ resolve(data)
+ }).catch((error) => {
+ reject(error)
+ })
+ })
+ },
+
+ updateAvatar({ commit }, payload) {
+ return new Promise((resolve, reject) => {
+ changeAdminAvatar({ headImg: payload.saveName }).then((res) => {
+ const data = res.data
+ commit('SET_AVATAR', payload.fileName)
+ resolve(data)
+ }).catch((error) => {
+ console.log('error:', error)
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ getters,
+ actions
+}
diff --git a/src/store/modules/app-custom-page/tab-module/tab-module-decorate.js b/src/store/modules/app-custom-page/tab-module/tab-module-decorate.js
new file mode 100644
index 0000000..4db9874
--- /dev/null
+++ b/src/store/modules/app-custom-page/tab-module/tab-module-decorate.js
@@ -0,0 +1,35 @@
+import { fetchTemp, updateTemp } from '@/api/app-custom-center/tab-module-list'
+
+const actions = {
+ fetchTemp({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ fetchTemp(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+ updateTemp({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ updateTemp(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespaced: true,
+ actions
+}
diff --git a/src/store/modules/app-custom-page/tab-module/tab-module-list.js b/src/store/modules/app-custom-page/tab-module/tab-module-list.js
new file mode 100644
index 0000000..7ec2e7e
--- /dev/null
+++ b/src/store/modules/app-custom-page/tab-module/tab-module-list.js
@@ -0,0 +1,92 @@
+import {
+ fetchTemps,
+ addTemp,
+ deleteTemp,
+ useTemp,
+ cloneTemp
+} from '@/api/app-custom-center/tab-module-list'
+
+const actions = {
+ fetchTemps({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ fetchTemps(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ editTemp({ commit }, params) {
+ const query = { name: params.name, saveType: params.saveType }
+ if (params.id) {
+ query['id'] = params.id
+ }
+ if (params.selectImage) {
+ query['image'] = params.selectImage
+ }
+
+ return new Promise((resolve, reject) => {
+ addTemp(query)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ deleteTemp({ commit }, ids) {
+ return new Promise((resolve, reject) => {
+ deleteTemp({ id: ids })
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ useTemp({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ useTemp(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ cloneTemp({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ cloneTemp(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespaced: true,
+ actions
+}
diff --git a/src/store/modules/app-index.js b/src/store/modules/app-index.js
new file mode 100644
index 0000000..6195ebd
--- /dev/null
+++ b/src/store/modules/app-index.js
@@ -0,0 +1,12 @@
+import state from './app-index/state'
+import getters from './app-index/getters'
+import actions from './app-index/actions'
+import mutations from './app-index/mutations'
+
+export default {
+ namespaced: true,
+ state,
+ getters,
+ actions,
+ mutations
+}
diff --git a/src/store/modules/app-index/actions.js b/src/store/modules/app-index/actions.js
new file mode 100644
index 0000000..3ec0c09
--- /dev/null
+++ b/src/store/modules/app-index/actions.js
@@ -0,0 +1,73 @@
+// import { fetchTemp, saveModules } from '@/api/app-custom-center/app-index'
+// import IndexTemplateSet from '@/api/app-custom-center/app-index'
+
+// var api = new IndexTemplateSet()
+
+const actions = {
+ // 初始化首页的布局数据
+ initLayoutData({ commit }, data) {
+ const { api } = data
+ console.log('app-index 初始化頁面布局数据', data)
+
+ return new Promise((resolve, reject) => {
+ api
+ .fetchTemp({ templateId: data.id })
+ .then(response => {
+ console.log(response.data)
+ commit('UPDATE_LAYOUT', response.data)
+ resolve(response.data)
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+ // 更新首页模板布局数据
+ updateLayout({ commit }, data) {
+ console.log('更新的东西', data)
+ commit('UPDATE_LAYOUT', data)
+ },
+
+ saveDate({ getters }, params) {
+ const { api, id } = params
+ const data = JSON.parse(JSON.stringify(getters.getLayout))
+ data.templateId = id
+ if (data.bgColor === undefined || data.bgColor === null) {
+ data.bgColor = ''
+ }
+ console.log(JSON.stringify(data))
+ return new Promise((resolve, reject) => {
+ api
+ .saveModules(data)
+ .then(response => {
+ resolve(response.data)
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ /**
+ * 删除元素
+ *
+ * @param {*} { commit }
+ * @param {*} row 列表行
+ * @param {*} cate 二级分类
+ * @param {*} index 二级分类行
+ */
+ deleteItem({ getters }, data) {
+ const { row, cate, index, id } = data
+ console.log('删除元素', row, cate, index, id)
+
+ var tempList = getters.getLayout.moduleList
+
+ if (cate !== undefined && index !== undefined) {
+ tempList[row].listStyle[cate].moduleList.splice(index, 1)
+ } else {
+ tempList.splice(row, 1)
+ }
+ }
+}
+
+export default actions
diff --git a/src/store/modules/app-index/app-index.js b/src/store/modules/app-index/app-index.js
new file mode 100644
index 0000000..add7d65
--- /dev/null
+++ b/src/store/modules/app-index/app-index.js
@@ -0,0 +1,92 @@
+import {
+ fetchTemps,
+ addTemp,
+ deleteTemp,
+ useTemp,
+ cloneTemp
+} from '@/api/app-custom-center/index-module-list'
+
+const actions = {
+ fetchTemps({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ fetchTemps(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ editTemp({ commit }, params) {
+ const query = { name: params.name, saveType: params.saveType }
+ if (params.id) {
+ query['id'] = params.id
+ }
+ if (params.selectImage) {
+ query['image'] = params.selectImage
+ }
+
+ return new Promise((resolve, reject) => {
+ addTemp(query)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ deleteTemp({ commit }, ids) {
+ return new Promise((resolve, reject) => {
+ deleteTemp({ id: ids })
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ useTemp({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ useTemp(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+
+ cloneTemp({ commit }, params) {
+ return new Promise((resolve, reject) => {
+ cloneTemp(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespaced: true,
+ actions
+}
diff --git a/src/store/modules/app-index/getters.js b/src/store/modules/app-index/getters.js
new file mode 100644
index 0000000..113e638
--- /dev/null
+++ b/src/store/modules/app-index/getters.js
@@ -0,0 +1,10 @@
+const getters = {
+ getLayout(state) {
+ return state.layoutData
+ },
+ getCurrentCate(state) {
+ return state.currentCate
+ }
+}
+
+export default getters
diff --git a/src/store/modules/app-index/mutations.js b/src/store/modules/app-index/mutations.js
new file mode 100644
index 0000000..34a8fc0
--- /dev/null
+++ b/src/store/modules/app-index/mutations.js
@@ -0,0 +1,31 @@
+import lodash from 'lodash'
+
+const mutations = {
+ UPDATE_LAYOUT: (state, provider) => {
+ provider.moduleList = [...provider.moduleList] // 防止部分不触发更新
+
+ state.layoutData = provider
+ },
+ UPDATE_COMPONENT: (state, provider) => {
+ state.layoutData.moduleList = state.layoutData.moduleList.map(item => {
+ if (item.name === provider.name) {
+ return provider
+ }
+ return item
+ })
+ // 防止部分不触发更新
+ // 还要刷新state.layoutData的地址,因为其他地方有依赖state.layoutData进行响应
+ state.layoutData = lodash.cloneDeep(state.layoutData)
+ },
+
+ // tabar相关的mutations
+ // 更新关于tabbar模板列表的数据
+ SAVE_TAB_MUDULE_LIST: (state, provider) => {
+ state.tabbarData.tabList = lodash.cloneDeep(provider)
+ },
+ SAVE_TAB_MUDULE_EDITOR: (state, provider) => {
+ state.tabbarData.tabList = lodash.cloneDeep(provider)
+ }
+}
+
+export default mutations
diff --git a/src/store/modules/app-index/state.js b/src/store/modules/app-index/state.js
new file mode 100644
index 0000000..bbca05f
--- /dev/null
+++ b/src/store/modules/app-index/state.js
@@ -0,0 +1,4 @@
+const state = {
+ layoutData: {}
+}
+export default state
diff --git a/src/store/modules/app.js b/src/store/modules/app.js
new file mode 100644
index 0000000..cda5c2e
--- /dev/null
+++ b/src/store/modules/app.js
@@ -0,0 +1,67 @@
+import Cookies from 'js-cookie'
+import { getLanguage } from '@/lang/index'
+
+const state = {
+ sidebar: {
+ opened: Cookies.get('sidebarStatus')
+ ? !!+Cookies.get('sidebarStatus')
+ : true,
+ withoutAnimation: false
+ },
+ device: 'desktop',
+ language: getLanguage(),
+ size: Cookies.get('size') || 'medium'
+}
+
+const mutations = {
+ TOGGLE_SIDEBAR: state => {
+ state.sidebar.opened = !state.sidebar.opened
+ state.sidebar.withoutAnimation = false
+ if (state.sidebar.opened) {
+ Cookies.set('sidebarStatus', 1)
+ } else {
+ Cookies.set('sidebarStatus', 0)
+ }
+ },
+ CLOSE_SIDEBAR: (state, withoutAnimation) => {
+ Cookies.set('sidebarStatus', 0)
+ state.sidebar.opened = false
+ state.sidebar.withoutAnimation = withoutAnimation
+ },
+ TOGGLE_DEVICE: (state, device) => {
+ state.device = device
+ },
+ SET_LANGUAGE: (state, language) => {
+ state.language = language
+ Cookies.set('language', language)
+ },
+ SET_SIZE: (state, size) => {
+ state.size = size
+ Cookies.set('size', size)
+ }
+}
+
+const actions = {
+ toggleSideBar({ commit }) {
+ commit('TOGGLE_SIDEBAR')
+ },
+ closeSideBar({ commit }, { withoutAnimation }) {
+ commit('CLOSE_SIDEBAR', withoutAnimation)
+ },
+ toggleDevice({ commit }, device) {
+ commit('TOGGLE_DEVICE', device)
+ },
+ setLanguage({ commit }, language) {
+ commit('SET_LANGUAGE', language)
+ },
+ setSize({ commit }, size) {
+ commit('SET_SIZE', size)
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/errorLog.js b/src/store/modules/errorLog.js
new file mode 100644
index 0000000..6b01f95
--- /dev/null
+++ b/src/store/modules/errorLog.js
@@ -0,0 +1,28 @@
+const state = {
+ logs: []
+}
+
+const mutations = {
+ ADD_ERROR_LOG: (state, log) => {
+ state.logs.push(log)
+ },
+ CLEAR_ERROR_LOG: (state) => {
+ state.logs.splice(0)
+ }
+}
+
+const actions = {
+ addErrorLog({ commit }, log) {
+ commit('ADD_ERROR_LOG', log)
+ },
+ clearErrorLog({ commit }) {
+ commit('CLEAR_ERROR_LOG')
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
new file mode 100644
index 0000000..aeb5ee5
--- /dev/null
+++ b/src/store/modules/permission.js
@@ -0,0 +1,69 @@
+import { asyncRoutes, constantRoutes } from '@/router'
+
+/**
+ * Use meta.role to determine if the current user has permission
+ * @param roles
+ * @param route
+ */
+function hasPermission(roles, route) {
+ if (route.meta && route.meta.roles) {
+ return roles.some(role => route.meta.roles.includes(role))
+ } else {
+ return true
+ }
+}
+
+/**
+ * Filter asynchronous routing tables by recursion
+ * @param routes asyncRoutes
+ * @param roles
+ */
+export function filterAsyncRoutes(routes, roles) {
+ const res = []
+
+ routes.forEach(route => {
+ const tmp = { ...route }
+ if (hasPermission(roles, tmp)) {
+ if (tmp.children) {
+ tmp.children = filterAsyncRoutes(tmp.children, roles)
+ }
+ res.push(tmp)
+ }
+ })
+
+ return res
+}
+
+const state = {
+ routes: [],
+ addRoutes: []
+}
+
+const mutations = {
+ SET_ROUTES: (state, routes) => {
+ state.addRoutes = routes
+ state.routes = constantRoutes.concat(routes)
+ }
+}
+
+const actions = {
+ generateRoutes({ commit }, roles) {
+ return new Promise(resolve => {
+ let accessedRoutes
+ if (roles.includes('admin')) {
+ accessedRoutes = asyncRoutes || []
+ } else {
+ accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)
+ }
+ commit('SET_ROUTES', accessedRoutes)
+ resolve(accessedRoutes)
+ })
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js
new file mode 100644
index 0000000..640368c
--- /dev/null
+++ b/src/store/modules/settings.js
@@ -0,0 +1,36 @@
+import variables from '@/styles/element-variables.scss'
+import defaultSettings from '@/settings'
+
+const { showSettings, tagsView, fixedHeader, sidebarLogo, supportPinyinSearch } = defaultSettings
+
+const state = {
+ theme: variables.theme,
+ showSettings,
+ tagsView,
+ fixedHeader,
+ sidebarLogo,
+ supportPinyinSearch
+}
+
+const mutations = {
+ CHANGE_SETTING: (state, { key, value }) => {
+ // eslint-disable-next-line no-prototype-builtins
+ if (state.hasOwnProperty(key)) {
+ state[key] = value
+ }
+ }
+}
+
+const actions = {
+ changeSetting({ commit }, data) {
+ commit('CHANGE_SETTING', data)
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
+
diff --git a/src/store/modules/system-manage/attachment-manage.js b/src/store/modules/system-manage/attachment-manage.js
new file mode 100644
index 0000000..9c01852
--- /dev/null
+++ b/src/store/modules/system-manage/attachment-manage.js
@@ -0,0 +1,43 @@
+import CommonSet from '@/api/setting-center/CommonSet'
+
+const actions = {
+ // 获取文件列表
+ loadFiles({ commit }, params) {
+ var api = new CommonSet()
+
+ console.log(params)
+ return new Promise((resolve, reject) => {
+ api
+ .loadFileList(params)
+ .then(response => {
+ const { data } = response
+ resolve(data)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ },
+ // 上传文件
+ uploadFile({ commit }, params) {
+ var api = new CommonSet()
+
+ return new Promise((resolve, reject) => {
+ api
+ .uploadFile(params.file, params.fid, '')
+ .then(response => {
+ resolve(response)
+ })
+ .catch(error => {
+ console.error(error)
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespaced: true,
+ actions
+}
diff --git a/src/store/modules/tagsView.js b/src/store/modules/tagsView.js
new file mode 100644
index 0000000..57e7242
--- /dev/null
+++ b/src/store/modules/tagsView.js
@@ -0,0 +1,160 @@
+const state = {
+ visitedViews: [],
+ cachedViews: []
+}
+
+const mutations = {
+ ADD_VISITED_VIEW: (state, view) => {
+ if (state.visitedViews.some(v => v.path === view.path)) return
+ state.visitedViews.push(
+ Object.assign({}, view, {
+ title: view.meta.title || 'no-name'
+ })
+ )
+ },
+ ADD_CACHED_VIEW: (state, view) => {
+ if (state.cachedViews.includes(view.name)) return
+ if (!view.meta.noCache) {
+ state.cachedViews.push(view.name)
+ }
+ },
+
+ DEL_VISITED_VIEW: (state, view) => {
+ for (const [i, v] of state.visitedViews.entries()) {
+ if (v.path === view.path) {
+ state.visitedViews.splice(i, 1)
+ break
+ }
+ }
+ },
+ DEL_CACHED_VIEW: (state, view) => {
+ const index = state.cachedViews.indexOf(view.name)
+ index > -1 && state.cachedViews.splice(index, 1)
+ },
+
+ DEL_OTHERS_VISITED_VIEWS: (state, view) => {
+ state.visitedViews = state.visitedViews.filter(v => {
+ return v.meta.affix || v.path === view.path
+ })
+ },
+ DEL_OTHERS_CACHED_VIEWS: (state, view) => {
+ const index = state.cachedViews.indexOf(view.name)
+ if (index > -1) {
+ state.cachedViews = state.cachedViews.slice(index, index + 1)
+ } else {
+ // if index = -1, there is no cached tags
+ state.cachedViews = []
+ }
+ },
+
+ DEL_ALL_VISITED_VIEWS: state => {
+ // keep affix tags
+ const affixTags = state.visitedViews.filter(tag => tag.meta.affix)
+ state.visitedViews = affixTags
+ },
+ DEL_ALL_CACHED_VIEWS: state => {
+ state.cachedViews = []
+ },
+
+ UPDATE_VISITED_VIEW: (state, view) => {
+ for (let v of state.visitedViews) {
+ if (v.path === view.path) {
+ v = Object.assign(v, view)
+ break
+ }
+ }
+ }
+}
+
+const actions = {
+ addView({ dispatch }, view) {
+ dispatch('addVisitedView', view)
+ dispatch('addCachedView', view)
+ },
+ addVisitedView({ commit }, view) {
+ commit('ADD_VISITED_VIEW', view)
+ },
+ addCachedView({ commit }, view) {
+ commit('ADD_CACHED_VIEW', view)
+ },
+
+ delView({ dispatch, state }, view) {
+ return new Promise(resolve => {
+ dispatch('delVisitedView', view)
+ dispatch('delCachedView', view)
+ resolve({
+ visitedViews: [...state.visitedViews],
+ cachedViews: [...state.cachedViews]
+ })
+ })
+ },
+ delVisitedView({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_VISITED_VIEW', view)
+ resolve([...state.visitedViews])
+ })
+ },
+ delCachedView({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_CACHED_VIEW', view)
+ resolve([...state.cachedViews])
+ })
+ },
+
+ delOthersViews({ dispatch, state }, view) {
+ return new Promise(resolve => {
+ dispatch('delOthersVisitedViews', view)
+ dispatch('delOthersCachedViews', view)
+ resolve({
+ visitedViews: [...state.visitedViews],
+ cachedViews: [...state.cachedViews]
+ })
+ })
+ },
+ delOthersVisitedViews({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_OTHERS_VISITED_VIEWS', view)
+ resolve([...state.visitedViews])
+ })
+ },
+ delOthersCachedViews({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_OTHERS_CACHED_VIEWS', view)
+ resolve([...state.cachedViews])
+ })
+ },
+
+ delAllViews({ dispatch, state }, view) {
+ return new Promise(resolve => {
+ dispatch('delAllVisitedViews', view)
+ dispatch('delAllCachedViews', view)
+ resolve({
+ visitedViews: [...state.visitedViews],
+ cachedViews: [...state.cachedViews]
+ })
+ })
+ },
+ delAllVisitedViews({ commit, state }) {
+ return new Promise(resolve => {
+ commit('DEL_ALL_VISITED_VIEWS')
+ resolve([...state.visitedViews])
+ })
+ },
+ delAllCachedViews({ commit, state }) {
+ return new Promise(resolve => {
+ commit('DEL_ALL_CACHED_VIEWS')
+ resolve([...state.cachedViews])
+ })
+ },
+
+ updateVisitedView({ commit }, view) {
+ commit('UPDATE_VISITED_VIEW', view)
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
new file mode 100644
index 0000000..b87034c
--- /dev/null
+++ b/src/store/modules/user.js
@@ -0,0 +1,172 @@
+import { login, sendCode, logout } from '@/api/user'
+import { getToken, setToken, removeToken } from '@/utils/auth'
+import router, { resetRouter } from '@/router'
+
+const state = {
+ token: getToken(),
+ name: '',
+ avatar: '',
+ introduction: '',
+ roles: []
+}
+
+const mutations = {
+ SET_TOKEN: (state, token) => {
+ state.token = token
+ },
+ SET_INTRODUCTION: (state, introduction) => {
+ state.introduction = introduction
+ },
+ SET_NAME: (state, name) => {
+ state.name = name
+ },
+ SET_AVATAR: (state, avatar) => {
+ state.avatar = avatar
+ },
+ SET_ROLES: (state, roles) => {
+ state.roles = roles
+ }
+}
+
+const actions = {
+ sendCode({ commit }, userInfo) {
+ const { phone } = userInfo
+ return new Promise((resolve, reject) => {
+ sendCode({
+ phone: phone
+ })
+ .then(response => {
+ resolve()
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // user login
+ login({ commit }, userInfo) {
+ const { phone, password, code, type } = userInfo
+ return new Promise((resolve, reject) => {
+ // commit('SET_TOKEN', 'admin-token')
+ // setToken('admin-token')
+ // resolve()
+ login({
+ phone: phone,
+ pwd: password,
+ loginType: type,
+ code: code
+ })
+ .then(response => {
+ const { code } = response
+ if (code === 0) {
+ commit('SET_TOKEN', 'admin-token')
+ setToken('admin-token')
+ }
+ resolve(code)
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // get user info
+ getInfo({ commit, state }) {
+ return new Promise((resolve, reject) => {
+ var data = {
+ roles: ['admin'],
+ introduction: 'I am a super administrator',
+ avatar:
+ 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
+ name: 'Super Admin'
+ }
+ commit('SET_ROLES', data.roles)
+ commit('SET_NAME', data.name)
+ commit('SET_AVATAR', data.avatar)
+ commit('SET_INTRODUCTION', data.introduction)
+ resolve(data)
+ // getInfo(state.token)
+ // .then(response => {
+ // const { data } = response
+ // if (!data) {
+ // reject('Verification failed, please Login again.')
+ // }
+ // const { roles, name, avatar, introduction } = data
+ // // roles must be a non-empty array
+ // if (!roles || roles.length <= 0) {
+ // reject('getInfo: roles must be a non-null array!')
+ // }
+ // commit('SET_ROLES', roles)
+ // commit('SET_NAME', name)
+ // commit('SET_AVATAR', avatar)
+ // commit('SET_INTRODUCTION', introduction)
+ // resolve(data)
+ // })
+ // .catch(error => {
+ // reject(error)
+ // })
+ })
+ },
+
+ // user logout
+ logout({ commit, state, dispatch }) {
+ return new Promise((resolve, reject) => {
+ logout(state.token)
+ .then(() => {
+ commit('SET_TOKEN', '')
+ commit('SET_ROLES', [])
+ removeToken()
+ resetRouter()
+
+ // reset visited views and cached views
+ // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485
+ dispatch('tagsView/delAllViews', null, { root: true })
+
+ resolve()
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // remove token
+ resetToken({ commit }) {
+ return new Promise(resolve => {
+ commit('SET_TOKEN', '')
+ commit('SET_ROLES', [])
+ removeToken()
+ resolve()
+ })
+ },
+
+ // dynamically modify permissions
+ async changeRoles({ commit, dispatch }, role) {
+ const token = role + '-token'
+
+ commit('SET_TOKEN', token)
+ setToken(token)
+
+ const { roles } = await dispatch('getInfo')
+
+ resetRouter()
+
+ // generate accessible routes map based on roles
+ const accessRoutes = await dispatch('permission/generateRoutes', roles, {
+ root: true
+ })
+ // dynamically add accessible routes
+ router.addRoutes(accessRoutes)
+
+ // reset visited views and cached views
+ dispatch('tagsView/delAllViews', null, { root: true })
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/styles/btn.scss b/src/styles/btn.scss
new file mode 100644
index 0000000..3bbe3bf
--- /dev/null
+++ b/src/styles/btn.scss
@@ -0,0 +1,111 @@
+@import './variables.scss';
+
+@mixin colorBtn($color) {
+ background: $color;
+
+ &:hover {
+ color: $color;
+
+ &:before,
+ &:after {
+ background: $color;
+ }
+ }
+}
+
+.custom-btn{
+ outline: none;
+ cursor: pointer;
+}
+
+.line-btn {
+ @extend .custom-btn;
+ width: 88px;
+ height: 28px;
+ border-radius: 5px;
+ font: 400 14px PingFangSC-Regular, PingFang SC;
+}
+
+.blue-btn{
+ @extend .line-btn;
+ border: none;
+ color: #fff;
+ background-color: #1890ff;
+
+ &:hover {
+ color: #fff;
+ }
+}
+
+.light-blue-btn {
+ @include colorBtn($light-blue)
+}
+
+.gray-btn {
+ @extend .line-btn;
+ border: 1px solid #ddd;
+ color: #999;
+ background-color: #eee;
+}
+
+.red-btn {
+ @include colorBtn($red)
+}
+
+.pink-btn {
+ @include colorBtn($pink)
+}
+
+.green-btn {
+ @include colorBtn($green)
+}
+
+.tiffany-btn {
+ @include colorBtn($tiffany)
+}
+
+.yellow-btn {
+ @include colorBtn($yellow)
+}
+
+.pan-btn {
+ font-size: 14px;
+ color: #fff;
+ padding: 14px 36px;
+ border-radius: 8px;
+ border: none;
+ outline: none;
+ transition: 600ms ease all;
+ position: relative;
+ display: inline-block;
+
+ &:hover {
+ background: #fff;
+
+ &:before,
+ &:after {
+ width: 100%;
+ transition: 600ms ease all;
+ }
+ }
+
+ &:before,
+ &:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 2px;
+ width: 0;
+ transition: 400ms ease all;
+ }
+
+ &::after {
+ right: inherit;
+ top: inherit;
+ left: 0;
+ bottom: 0;
+ }
+}
+
+
diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss
new file mode 100644
index 0000000..4929541
--- /dev/null
+++ b/src/styles/element-ui.scss
@@ -0,0 +1,84 @@
+// cover some element-ui styles
+
+.el-breadcrumb__inner,
+.el-breadcrumb__inner a {
+ font-weight: 400 !important;
+}
+
+.el-upload {
+ input[type="file"] {
+ display: none !important;
+ }
+}
+
+.el-upload__input {
+ display: none;
+}
+
+.cell {
+ .el-tag {
+ margin-right: 0;
+ }
+}
+
+.small-padding {
+ .cell {
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+.fixed-width {
+ .el-button--mini {
+ padding: 7px 10px;
+ min-width: 60px;
+ }
+}
+
+.status-col {
+ .cell {
+ padding: 0 10px;
+ text-align: center;
+
+ .el-tag {
+ margin-right: 0;
+ }
+ }
+}
+
+// to fixed https://github.com/ElemeFE/element/issues/2461
+.el-dialog {
+ transform: none;
+ left: 0;
+ position: relative;
+ margin: 0 auto;
+}
+
+// refine element ui upload
+.upload-container {
+ .el-upload {
+ width: 100%;
+
+ .el-upload-dragger {
+ width: 100%;
+ height: 200px;
+ }
+ }
+}
+
+// dropdown
+.el-dropdown-menu {
+ a {
+ display: block
+ }
+}
+
+// fix date-picker ui bug in filter-item
+.el-range-editor.el-input__inner {
+ display: inline-flex !important;
+}
+
+// to fix el-date-picker css style
+.el-range-separator {
+ box-sizing: content-box;
+}
diff --git a/src/styles/element-variables.scss b/src/styles/element-variables.scss
new file mode 100644
index 0000000..5bdc4da
--- /dev/null
+++ b/src/styles/element-variables.scss
@@ -0,0 +1,31 @@
+/**
+* I think element-ui's default theme color is too light for long-term use.
+* So I modified the default color and you can modify it to your liking.
+**/
+
+/* theme color */
+$--color-primary: #1890ff;
+$--color-success: #13ce66;
+$--color-warning: #ffba00;
+$--color-danger: #ff4949;
+// $--color-info: #1E1E1E;
+
+$--button-font-weight: 400;
+
+// $--color-text-regular: #1f2d3d;
+
+$--border-color-light: #dfe4ed;
+$--border-color-lighter: #e6ebf5;
+
+$--table-border: 1px solid #dfe6ec;
+
+/* icon font path, required */
+$--font-path: "~element-ui/lib/theme-chalk/fonts";
+
+@import "~element-ui/packages/theme-chalk/src/index";
+
+// the :export directive is the magic sauce for webpack
+// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
+:export {
+ theme: $--color-primary;
+}
diff --git a/src/styles/global.scss b/src/styles/global.scss
new file mode 100644
index 0000000..5a6c907
--- /dev/null
+++ b/src/styles/global.scss
@@ -0,0 +1,17 @@
+@import './variables.scss';
+
+.text-white {
+ color: $white;
+}
+.bold {
+ font-weight: bold;
+}
+.section-common {
+ padding: 0 20px;
+}
+.inline-table {
+ display: inline-table;
+}
+.hover-wrap {
+ position: relative;
+}
diff --git a/src/styles/index.scss b/src/styles/index.scss
new file mode 100644
index 0000000..98b472e
--- /dev/null
+++ b/src/styles/index.scss
@@ -0,0 +1,199 @@
+@import './variables.scss';
+@import './mixin.scss';
+@import './transition.scss';
+@import './element-ui.scss';
+@import './sidebar.scss';
+@import './btn.scss';
+@import './global.scss';
+@import './page.scss';
+@import './origin.scss';
+@import './unit.scss';
+@import './property.scss';
+
+body {
+ height: 100%;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ text-rendering: optimizeLegibility;
+ font-family: Microsoft YaHei;
+}
+
+label {
+ font-weight: 700;
+}
+
+html {
+ height: 100%;
+ box-sizing: border-box;
+}
+
+#app {
+ height: 100%;
+}
+
+*,
+*:before,
+*:after {
+ box-sizing: inherit;
+}
+
+.no-padding {
+ padding: 0 !important;
+}
+
+.padding-content {
+ padding: 4px 0;
+}
+
+a:focus,
+a:active {
+ outline: none;
+}
+
+a,
+a:focus,
+a:hover {
+ cursor: pointer;
+ color: inherit;
+ text-decoration: none;
+}
+
+div:focus {
+ outline: none;
+}
+
+.fr {
+ float: right;
+}
+
+.fl {
+ float: left;
+}
+
+.pr-5 {
+ padding-right: 5px;
+}
+
+.pl-5 {
+ padding-left: 5px;
+}
+
+.block {
+ display: block;
+}
+
+.pointer {
+ cursor: pointer;
+}
+
+.inlineBlock {
+ display: block;
+}
+
+.clearfix {
+ &:after {
+ visibility: hidden;
+ display: block;
+ font-size: 0;
+ content: ' ';
+ clear: both;
+ height: 0;
+ }
+}
+
+aside {
+ background: #eef1f6;
+ padding: 8px 24px;
+ margin-bottom: 20px;
+ border-radius: 2px;
+ display: block;
+ line-height: 32px;
+ font-size: 16px;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
+ Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
+ color: #2c3e50;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ a {
+ color: #337ab7;
+ cursor: pointer;
+
+ &:hover {
+ color: rgb(32, 160, 255);
+ }
+ }
+}
+
+//main-container全局样式
+
+.components-container {
+ margin: 30px 50px;
+ position: relative;
+}
+
+.pagination-container {
+ margin-top: 30px;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.sub-navbar {
+ height: 50px;
+ line-height: 50px;
+ position: relative;
+ width: 100%;
+ text-align: right;
+ padding-right: 20px;
+ transition: 600ms ease position;
+ background: linear-gradient(
+ 90deg,
+ rgba(32, 182, 249, 1) 0%,
+ rgba(32, 182, 249, 1) 0%,
+ rgba(33, 120, 241, 1) 100%,
+ rgba(33, 120, 241, 1) 100%
+ );
+
+ .subtitle {
+ font-size: 20px;
+ color: #fff;
+ }
+
+ &.draft {
+ background: #d0d0d0;
+ }
+
+ &.deleted {
+ background: #d0d0d0;
+ }
+}
+
+.link-type,
+.link-type:focus {
+ color: #337ab7;
+ cursor: pointer;
+
+ &:hover {
+ color: rgb(32, 160, 255);
+ }
+}
+
+.filter-container {
+ padding-bottom: 10px;
+
+ .filter-item {
+ display: inline-block;
+ vertical-align: middle;
+ }
+}
+
+//refine vue-multiselect plugin
+.multiselect {
+ line-height: 16px;
+}
+
+.multiselect--active {
+ z-index: 1000 !important;
+}
diff --git a/src/styles/mixin.scss b/src/styles/mixin.scss
new file mode 100644
index 0000000..16ad4df
--- /dev/null
+++ b/src/styles/mixin.scss
@@ -0,0 +1,64 @@
+@mixin clearfix {
+ &:after {
+ content: '';
+ display: table;
+ clear: both;
+ }
+}
+
+@mixin linearGradient($deg, $colors...) {
+ background: linear-gradient($deg, $colors);
+}
+
+@mixin scrollBar {
+ &::-webkit-scrollbar-track-piece {
+ background: #d3dce6;
+ }
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: #99a9bf;
+ border-radius: 20px;
+ }
+}
+
+@mixin relative {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+
+@mixin pct($pct) {
+ width: #{$pct};
+ position: relative;
+ margin: 0 auto;
+}
+
+@mixin triangle($width, $height, $color, $direction) {
+ $width: $width/2;
+ $color-border-style: $height solid $color;
+ $transparent-border-style: $width solid transparent;
+ height: 0;
+ width: 0;
+
+ @if $direction==up {
+ border-bottom: $color-border-style;
+ border-left: $transparent-border-style;
+ border-right: $transparent-border-style;
+ } @else if $direction==right {
+ border-left: $color-border-style;
+ border-top: $transparent-border-style;
+ border-bottom: $transparent-border-style;
+ } @else if $direction==down {
+ border-top: $color-border-style;
+ border-left: $transparent-border-style;
+ border-right: $transparent-border-style;
+ } @else if $direction==left {
+ border-right: $color-border-style;
+ border-top: $transparent-border-style;
+ border-bottom: $transparent-border-style;
+ }
+}
diff --git a/src/styles/origin.scss b/src/styles/origin.scss
new file mode 100644
index 0000000..d9aec1a
--- /dev/null
+++ b/src/styles/origin.scss
@@ -0,0 +1,15 @@
+/**
+ * 对原生html标签的改造
+ */
+
+// chrome移除input[number]的上下箭头
+input[type='number']::-webkit-outer-spin-button,
+input[type='number']::-webkit-inner-spin-button {
+ -webkit-appearance: none !important;
+ margin: 0;
+}
+
+// firefox移除input[number]的上下箭头
+input[type='number'] {
+ -moz-appearance: textfield;
+}
diff --git a/src/styles/page.scss b/src/styles/page.scss
new file mode 100644
index 0000000..9a0d66e
--- /dev/null
+++ b/src/styles/page.scss
@@ -0,0 +1,194 @@
+/**
+ * 通用页面的样式表
+ */
+
+/* ------------------------ Zero ------------------------ */
+
+// 页面布局容器
+.container {
+ padding: 20px;
+}
+
+// 页面灰色背景布局容器
+.grey-bg-container {
+ padding: 20px;
+ background-color: #f9f9f9;
+}
+
+// 上下左右居中的盒模型
+.flex-box {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+// 上下居中的盒模型
+.flex-up-down{
+ display: flex;
+ align-items: center;
+}
+
+// 左右居中的盒模型
+.flex-left-right{
+ display: flex;
+ justify-content: center;
+}
+
+// 从左向右自动排布的盒模型
+.flex-start-wrap{
+ display: flex;
+ flex-wrap:wrap;
+ justify-content: flex-start
+}
+
+// 最通用的字体
+.common-font {
+ font: 400 14px PingFangSC-Regular, PingFang SC;
+}
+
+// 用于提示的点
+.hint-dot {
+ width: 7px;
+ height: 7px;
+ border-radius: 50%;
+}
+
+// 通常用于隐藏input框
+.hide-border{
+ border: none;
+ outline: none;
+}
+
+// 圆形盒子,适用于头像
+.circle-box{
+ overflow: hidden;
+ border-radius: 50%;
+}
+
+// 分隔线
+.line{
+ height: 2px;
+ background-color: #f2f2f2;
+}
+
+// 灰色滤镜
+.needless{
+ filter: grayscale(100%);
+}
+
+// 全屏
+.fullscreen{
+ width: 100vw;
+ height: 100vh;
+}
+
+// 单行超出以...表示
+.single-row-ellipsis{
+ overflow:hidden;
+ text-overflow:ellipsis;
+ white-space:nowrap;
+}
+
+// 模拟element的输入框样式
+.simulate-input{
+ border: 1px solid #dcdfe6;
+ border-radius: 4px;
+ box-sizing: border-box;
+ outline: none;
+ transition: all .2s;
+
+ &:hover{
+ border-color: #c0c4cc;
+ }
+
+ &:focus{
+ border-color: #2593fc;
+ }
+
+}
+
+// 最大化不变形图片
+.cover-img{
+ display: block;
+ object-fit: cover;
+}
+
+// 颜色 & 背景
+$type-list: (white, #fff), (primary, #2593fc), (success, #6bc863), (info, #999), (danger, #fc4448), (deep, #333), (warning, #FFBB00);
+@each $type, $hex-color in $type-list{
+
+ .#{""+$type}-color{
+ fill: $hex-color;
+ color: $hex-color;
+ }
+
+ .#{""+$type}-bg{
+ background-color: $hex-color;
+ }
+
+}
+
+/* ------------------------ ONE ------------------------ */
+
+// 蓝色提示点,于提示操作文本前使用
+.blue-hint-dot {
+ @extend .hint-dot;
+ background-color: #43a4fc;
+}
+
+// 红色提示点,于警告文本前使用
+.red-hint-dot {
+ @extend .hint-dot;
+ background-color: #fc4448;
+}
+
+// 分页
+.paging-box {
+ @extend .flex-box;
+ height: 90px;
+}
+
+// 存在el-input无法输入的情况,使用原生input可输入
+.simulate-el-input{
+ @extend .simulate-input;
+ padding: 0 15px;
+ height: 36px;
+
+ &.mini{
+ height: 28px;
+ }
+
+}
+
+// 存在el-input中的textarea无法输入的情况,使用原生textarea可输入
+.simulate-el-textarea{
+ padding: 5px 15px;
+ @extend .simulate-input;
+
+ &.no-resize{
+ resize: none;
+ }
+
+}
+
+.dialog-bottom-box{
+ @extend .flex-box;
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+}
+
+// 用于页面副标题小块
+.blue-block{
+ display: block;
+ margin-right: 15px;
+ width: 5px;
+ height: 12px;
+ background-color: #2593fc;
+}
+
+
+
+
+
+
diff --git a/src/styles/property.scss b/src/styles/property.scss
new file mode 100644
index 0000000..7cad034
--- /dev/null
+++ b/src/styles/property.scss
@@ -0,0 +1,47 @@
+/**
+ * 属性样式表
+ */
+
+
+@for $i from 1 through 100{
+ .ml-#{$i}{
+ margin-left: 1px * $i;
+ }
+}
+
+.ml-auto{
+ margin-left: auto;
+}
+
+.mlr-auto{
+ margin-left: auto;
+ margin-right: auto;
+}
+
+
+@for $i from 1 through 100{
+ .mt-#{$i}{
+ margin-top: 1px * $i;
+ }
+}
+
+.padding-15{
+ padding: 15px;
+}
+
+@each $widthNum in 34, 156, 200, 251{
+ .width-#{$widthNum}{
+ width: #{$widthNum}px;
+ }
+}
+
+@for $j from 18 through 36{
+ .height-#{$j}{
+ height: 1px * $j;
+ }
+}
+
+.size-35{
+ width: 35px;
+ height: 35px;
+}
diff --git a/src/styles/sidebar.scss b/src/styles/sidebar.scss
new file mode 100644
index 0000000..a1dc706
--- /dev/null
+++ b/src/styles/sidebar.scss
@@ -0,0 +1,226 @@
+#app {
+
+ .main-container {
+ min-height: 100%;
+ transition: margin-left .28s;
+ margin-left: $sideBarWidth;
+ position: relative;
+ }
+
+ .sidebar-container {
+ transition: width 0.28s;
+ width: $sideBarWidth !important;
+ background-color: $menuBg;
+ height: 100%;
+ position: fixed;
+ font-size: 0;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1001;
+ overflow: hidden;
+
+ // reset element-ui css
+ .horizontal-collapse-transition {
+ transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
+ }
+
+ .scrollbar-wrapper {
+ overflow-x: hidden !important;
+ }
+
+ .el-scrollbar__bar.is-vertical {
+ right: 0px;
+ }
+
+ .el-scrollbar {
+ height: 100%;
+ }
+
+ &.has-logo {
+ .el-scrollbar {
+ height: calc(100% - 50px);
+ }
+ }
+
+ .is-horizontal {
+ display: none;
+ }
+
+ a {
+ display: inline-block;
+ width: 100%;
+ overflow: hidden;
+ }
+
+ .svg-icon {
+ margin-right: 16px;
+ }
+
+ .sub-el-icon {
+ margin-right: 12px;
+ margin-left: -2px;
+ }
+
+ .el-menu {
+ border: none;
+ height: 100%;
+ width: 100% !important;
+ }
+
+ // menu hover
+ .submenu-title-noDropdown,
+ .el-submenu__title {
+ &:hover {
+ background-color: $menuHover !important;
+ }
+ }
+
+ .is-active>.el-submenu__title {
+ color: $subMenuActiveText !important;
+ }
+
+ & .nest-menu .el-submenu>.el-submenu__title,
+ & .el-submenu .el-menu-item {
+ min-width: $sideBarWidth !important;
+ background-color: $subMenuBg !important;
+
+ &:hover {
+ background-color: $subMenuHover !important;
+ }
+ }
+ }
+
+ .hideSidebar {
+ .sidebar-container {
+ width: 54px !important;
+ }
+
+ .main-container {
+ margin-left: 54px;
+ }
+
+ .submenu-title-noDropdown {
+ padding: 0 !important;
+ position: relative;
+
+ .el-tooltip {
+ padding: 0 !important;
+
+ .svg-icon {
+ margin-left: 20px;
+ }
+
+ .sub-el-icon {
+ margin-left: 19px;
+ }
+ }
+ }
+
+ .el-submenu {
+ overflow: hidden;
+
+ &>.el-submenu__title {
+ padding: 0 !important;
+
+ .svg-icon {
+ margin-left: 20px;
+ }
+
+ .sub-el-icon {
+ margin-left: 19px;
+ }
+
+ .el-submenu__icon-arrow {
+ display: none;
+ }
+ }
+ }
+
+ .el-menu--collapse {
+ .el-submenu {
+ &>.el-submenu__title {
+ &>span {
+ height: 0;
+ width: 0;
+ overflow: hidden;
+ visibility: hidden;
+ display: inline-block;
+ }
+ }
+ }
+ }
+ }
+
+ .el-menu--collapse .el-menu .el-submenu {
+ min-width: $sideBarWidth !important;
+ }
+
+ // mobile responsive
+ .mobile {
+ .main-container {
+ margin-left: 0;
+ }
+
+ .sidebar-container {
+ transition: transform .28s;
+ width: $sideBarWidth !important;
+ }
+
+ &.hideSidebar {
+ .sidebar-container {
+ pointer-events: none;
+ transition-duration: 0.3s;
+ transform: translate3d(-$sideBarWidth, 0, 0);
+ }
+ }
+ }
+
+ .withoutAnimation {
+
+ .main-container,
+ .sidebar-container {
+ transition: none;
+ }
+ }
+}
+
+// when menu collapsed
+.el-menu--vertical {
+ &>.el-menu {
+ .svg-icon {
+ margin-right: 16px;
+ }
+ .sub-el-icon {
+ margin-right: 12px;
+ margin-left: -2px;
+ }
+ }
+
+ .nest-menu .el-submenu>.el-submenu__title,
+ .el-menu-item {
+ &:hover {
+ // you can use $subMenuHover
+ background-color: $menuHover !important;
+ }
+ }
+
+ // the scroll bar appears when the subMenu is too long
+ >.el-menu--popup {
+ max-height: 100vh;
+ overflow-y: auto;
+
+ &::-webkit-scrollbar-track-piece {
+ background: #d3dce6;
+ }
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: #99a9bf;
+ border-radius: 20px;
+ }
+ }
+}
diff --git a/src/styles/transition.scss b/src/styles/transition.scss
new file mode 100644
index 0000000..4cb27cc
--- /dev/null
+++ b/src/styles/transition.scss
@@ -0,0 +1,48 @@
+// global transition css
+
+/* fade */
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 0.28s;
+}
+
+.fade-enter,
+.fade-leave-active {
+ opacity: 0;
+}
+
+/* fade-transform */
+.fade-transform-leave-active,
+.fade-transform-enter-active {
+ transition: all .5s;
+}
+
+.fade-transform-enter {
+ opacity: 0;
+ transform: translateX(-30px);
+}
+
+.fade-transform-leave-to {
+ opacity: 0;
+ transform: translateX(30px);
+}
+
+/* breadcrumb transition */
+.breadcrumb-enter-active,
+.breadcrumb-leave-active {
+ transition: all .5s;
+}
+
+.breadcrumb-enter,
+.breadcrumb-leave-active {
+ opacity: 0;
+ transform: translateX(20px);
+}
+
+.breadcrumb-move {
+ transition: all .5s;
+}
+
+.breadcrumb-leave-active {
+ position: absolute;
+}
diff --git a/src/styles/unit.scss b/src/styles/unit.scss
new file mode 100644
index 0000000..1857daf
--- /dev/null
+++ b/src/styles/unit.scss
@@ -0,0 +1,211 @@
+/**
+ * 组成页面的单元模块
+ */
+
+// 表单页面的操作栏
+.operate-box{
+ @extend .flex-up-down;
+ @extend .common-font;
+ height: 32px;
+
+ // 用于清除其默认的左距
+ .ml-0{
+ margin-left: 0!important;
+ }
+
+ .ml-auto-important{
+ margin-left: auto!important;
+ }
+
+ // 通用btn样式
+ .unit-btn{
+ @extend .custom-btn;
+ border: none;
+ border-radius: 2px;
+ height: 32px;
+ color: #fff;
+ background-color: #3da2ff;
+ }
+
+ // 刷新按钮
+ .refresh {
+ @extend .unit-btn;
+ width: 46px;
+ }
+
+ // 新建按钮
+ .create {
+ @extend .unit-btn;
+ margin-left: 8px;
+ width: 67px;
+ }
+
+ // 绿色的新建按钮
+ .green-create{
+ @extend .unit-btn;
+ margin-left: 8px;
+ width: 122px;
+ background-color: #13ce66;
+ }
+
+ // 删除按钮
+ .delete{
+ @extend .unit-btn;
+ margin-left: 8px;
+ width: 67px;
+ background-color: #fc3e42;
+ }
+
+ .export{
+ @extend .unit-btn;
+ margin-left: 8px;
+ width: 77px;
+ border: 1px solid #9cdcaf;
+ color: #72db92;
+ background-color: #f3fff1;
+ }
+
+ // 菜单按钮
+ .menu {
+ @extend .unit-btn;
+ margin-left: auto;
+ width: 48px;
+ }
+
+ // 搜索按钮
+ .search {
+ @extend .unit-btn;
+ margin-left: 8px;
+ width: 40px;
+ }
+
+ // block是用来提示的,无点击功能
+ .block{
+ @extend .common-font;
+ margin-left: 8px;
+ padding: 0 12px;
+ height: 32px;
+ border-radius: 2px;
+ line-height: 32px;
+ }
+
+ .primary-block{
+ @extend .block;
+ border: 1px solid #d1eaff;
+ color: #3da2ff;
+ background-color: #e8f4ff;
+ }
+
+ .success-block{
+ @extend .block;
+ border: 1px solid #d0f5e0;
+ color: #6ac863;
+ background-color: #e7faf0;
+ }
+
+ .danger-block{
+ @extend .block;
+ border: 1px solid #ffdbdc;
+ color: #fc4448;
+ background-color: #ffeded;
+ }
+
+ // --------以下是对element框架的改造--------
+
+ // 按钮
+ .el-button{
+ padding: 0 8px;
+ margin-left: 8px;
+ height: 32px;
+ }
+
+ // input框
+ .el-input__inner{
+ height: 32px;
+ }
+
+}
+
+// 表格操作项
+.operate-table-box{
+ @extend .flex-box;
+
+ .icon-box {
+ @extend .flex-box;
+ @extend .size-35;
+ margin: 0 7px;
+ border-radius: 50%;
+ cursor: pointer;
+
+ .i-size {
+ font-size: 21px;
+ }
+
+ .svg-size{
+ width: 18px;
+ height: 18px;
+ }
+
+ }
+
+ $type-list: primary, success, danger;
+
+ @each $type in $type-list{
+
+ .#{$type}{
+ @extend .#{$type}-color;
+ &:hover{
+ @extend .white-color;
+ @extend .#{$type}-bg;
+ }
+ }
+
+ }
+
+}
+
+// dialog内部
+.slot-box{
+
+ .el-tabs__nav-wrap{
+ padding-left: 33px;
+ color: #dd1100;
+ background-color: #f8f8f8;
+
+ .el-tabs__item{
+ color: #999;
+ }
+ .is-active{
+ color: #2593fc;
+ }
+
+ &::after{
+ background-color: #f8f8f8;
+ }
+
+ }
+
+ .el-tabs__header{
+ margin-bottom: 0;
+ }
+
+}
+
+// 改变form-item的内部样式
+.small-mb-form{
+ .el-form-item {
+ margin-bottom: 10px;
+ }
+
+ &.item-340{
+ width: 340px;
+ }
+
+ &.item-center{
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+}
+
+
diff --git a/src/styles/variables.scss b/src/styles/variables.scss
new file mode 100644
index 0000000..fec69d2
--- /dev/null
+++ b/src/styles/variables.scss
@@ -0,0 +1,76 @@
+// base color
+$blue: #324157;
+$light-blue: #3a71a8;
+$red: #c03639;
+$pink: #e65d6e;
+$green: #30b08f;
+$tiffany: #4ab7bd;
+$yellow: #fec171;
+$panGreen: #30b08f;
+
+//常用的颜色
+$white: #fff;
+$gray-1: #ffeded;
+// $gray-2: #eceff0;
+$gray-3: #d9d9d9;
+// $gray-4: #dcdee0;
+$gray-5: #eceff0;
+// $gray-6: #969799;
+// $gray-7: #646566;
+// $gray-8: #323233;
+$gray-9: #333333;
+// 常用背景颜色
+$bg-gray: #f9f9f9;
+
+// base font-size
+$font-size-xs: 12px;
+$font-size-sm: 14px;
+$font-size-md: 16px;
+$font-size-lg: 20px;
+$font-size-max: 36px;
+$font-weight-bold: 500;
+
+// font-color
+$text-color-default: #333333;
+$text-color-gray: #666;
+$text-color-light-gray: #999;
+
+//border 边框颜色
+$border-theme-1: $gray-1;
+$border-theme-2: $gray-3;
+$border-theme-3: $blue;
+
+// sidebar
+$menuText: #fff;
+$menuActiveText: #a0d1ff;
+$subMenuActiveText: #a0d1ff; // https://github.com/ElemeFE/element/issues/12951
+
+
+$menuBg: #005DFB;
+
+$menuHover: #1890FF;
+
+$subMenuBg: #0350D7;
+$subMenuHover: #1890ff;
+
+//$menuBg: #365fa4;
+//
+//$menuHover: #1f488b;
+//
+//$subMenuBg: #1f488b;
+//$subMenuHover: #1890ff;
+
+$sideBarWidth: 210px;
+
+// the :export directive is the magic sauce for webpack
+// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
+:export {
+ menuText: $menuText;
+ menuActiveText: $menuActiveText;
+ subMenuActiveText: $subMenuActiveText;
+ menuBg: $menuBg;
+ menuHover: $menuHover;
+ subMenuBg: $subMenuBg;
+ subMenuHover: $subMenuHover;
+ sideBarWidth: $sideBarWidth;
+}
diff --git a/src/utils/auth.js b/src/utils/auth.js
new file mode 100644
index 0000000..08a43d6
--- /dev/null
+++ b/src/utils/auth.js
@@ -0,0 +1,15 @@
+import Cookies from 'js-cookie'
+
+const TokenKey = 'Admin-Token'
+
+export function getToken() {
+ return Cookies.get(TokenKey)
+}
+
+export function setToken(token) {
+ return Cookies.set(TokenKey, token)
+}
+
+export function removeToken() {
+ return Cookies.remove(TokenKey)
+}
diff --git a/src/utils/bus.js b/src/utils/bus.js
new file mode 100644
index 0000000..7accafa
--- /dev/null
+++ b/src/utils/bus.js
@@ -0,0 +1,8 @@
+const Bus = {
+ // install 是默认的方法。当外界在 use 这个组件的时候,就会调用本身的 install 方法,同时传一个 Vue 这个类的参数。
+ install: function(Vue) {
+ Vue.prototype.$bus = new Vue()
+ }
+}
+
+export default Bus
diff --git a/src/utils/clipboard.js b/src/utils/clipboard.js
new file mode 100644
index 0000000..cf5b07a
--- /dev/null
+++ b/src/utils/clipboard.js
@@ -0,0 +1,32 @@
+import Vue from 'vue'
+import Clipboard from 'clipboard'
+
+function clipboardSuccess() {
+ Vue.prototype.$message({
+ message: 'Copy successfully',
+ type: 'success',
+ duration: 1500
+ })
+}
+
+function clipboardError() {
+ Vue.prototype.$message({
+ message: 'Copy failed',
+ type: 'error'
+ })
+}
+
+export default function handleClipboard(text, event) {
+ const clipboard = new Clipboard(event.target, {
+ text: () => text
+ })
+ clipboard.on('success', () => {
+ clipboardSuccess()
+ clipboard.destroy()
+ })
+ clipboard.on('error', () => {
+ clipboardError()
+ clipboard.destroy()
+ })
+ clipboard.onClick(event)
+}
diff --git a/src/utils/error-log.js b/src/utils/error-log.js
new file mode 100644
index 0000000..a7f5b55
--- /dev/null
+++ b/src/utils/error-log.js
@@ -0,0 +1,35 @@
+import Vue from 'vue'
+import store from '@/store'
+import { isString, isArray } from '@/utils/validate'
+import settings from '@/settings'
+
+// you can set in settings.js
+// errorLog:'production' | ['production', 'development']
+const { errorLog: needErrorLog } = settings
+
+function checkNeed() {
+ const env = process.env.NODE_ENV
+ if (isString(needErrorLog)) {
+ return env === needErrorLog
+ }
+ if (isArray(needErrorLog)) {
+ return needErrorLog.includes(env)
+ }
+ return false
+}
+
+if (checkNeed()) {
+ Vue.config.errorHandler = function(err, vm, info, a) {
+ // Don't ask me why I use Vue.nextTick, it just a hack.
+ // detail see https://forum.vuejs.org/t/dispatch-in-vue-config-errorhandler-has-some-problem/23500
+ Vue.nextTick(() => {
+ store.dispatch('errorLog/addErrorLog', {
+ err,
+ vm,
+ info,
+ url: window.location.href
+ })
+ console.error(err, info)
+ })
+ }
+}
diff --git a/src/utils/get-page-title.js b/src/utils/get-page-title.js
new file mode 100644
index 0000000..4b6604c
--- /dev/null
+++ b/src/utils/get-page-title.js
@@ -0,0 +1,13 @@
+import defaultSettings from '@/settings'
+import i18n from '@/lang'
+
+const title = defaultSettings.title || 'Vue Element Admin'
+
+export default function getPageTitle(key) {
+ const hasKey = i18n.te(`route.${key}`)
+ if (hasKey) {
+ const pageName = i18n.t(`route.${key}`)
+ return `${pageName} - ${title}`
+ }
+ return `${title}`
+}
diff --git a/src/utils/i18n.js b/src/utils/i18n.js
new file mode 100644
index 0000000..76be5a4
--- /dev/null
+++ b/src/utils/i18n.js
@@ -0,0 +1,12 @@
+// translate router.meta.title, be used in breadcrumb sidebar tagsview
+export function generateTitle(title) {
+ const hasKey = this.$te('route.' + title)
+
+ if (hasKey) {
+ // $t :this method from vue-i18n, inject in @/lang/index.js
+ const translatedTitle = this.$t('route.' + title)
+
+ return translatedTitle
+ }
+ return title
+}
diff --git a/src/utils/index.js b/src/utils/index.js
new file mode 100644
index 0000000..3225d3c
--- /dev/null
+++ b/src/utils/index.js
@@ -0,0 +1,357 @@
+/**
+ * Created by PanJiaChen on 16/11/18.
+ */
+
+/**
+ * Parse the time to string
+ * @param {(Object|string|number)} time
+ * @param {string} cFormat
+ * @returns {string | null}
+ */
+export function parseTime(time, cFormat) {
+ if (arguments.length === 0 || !time) {
+ return null
+ }
+ const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
+ let date
+ if (typeof time === 'object') {
+ date = time
+ } else {
+ if ((typeof time === 'string')) {
+ if ((/^[0-9]+$/.test(time))) {
+ // support "1548221490638"
+ time = parseInt(time)
+ } else {
+ // support safari
+ // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
+ time = time.replace(new RegExp(/-/gm), '/')
+ }
+ }
+
+ if ((typeof time === 'number') && (time.toString().length === 10)) {
+ time = time * 1000
+ }
+ date = new Date(time)
+ }
+ const formatObj = {
+ y: date.getFullYear(),
+ m: date.getMonth() + 1,
+ d: date.getDate(),
+ h: date.getHours(),
+ i: date.getMinutes(),
+ s: date.getSeconds(),
+ a: date.getDay()
+ }
+ const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
+ const value = formatObj[key]
+ // Note: getDay() returns 0 on Sunday
+ if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
+ return value.toString().padStart(2, '0')
+ })
+ return time_str
+}
+
+/**
+ * @param {number} time
+ * @param {string} option
+ * @returns {string}
+ */
+export function formatTime(time, option) {
+ if (('' + time).length === 10) {
+ time = parseInt(time) * 1000
+ } else {
+ time = +time
+ }
+ const d = new Date(time)
+ const now = Date.now()
+
+ const diff = (now - d) / 1000
+
+ if (diff < 30) {
+ return '刚刚'
+ } else if (diff < 3600) {
+ // less 1 hour
+ return Math.ceil(diff / 60) + '分钟前'
+ } else if (diff < 3600 * 24) {
+ return Math.ceil(diff / 3600) + '小时前'
+ } else if (diff < 3600 * 24 * 2) {
+ return '1天前'
+ }
+ if (option) {
+ return parseTime(time, option)
+ } else {
+ return (
+ d.getMonth() +
+ 1 +
+ '月' +
+ d.getDate() +
+ '日' +
+ d.getHours() +
+ '时' +
+ d.getMinutes() +
+ '分'
+ )
+ }
+}
+
+/**
+ * @param {string} url
+ * @returns {Object}
+ */
+export function getQueryObject(url) {
+ url = url == null ? window.location.href : url
+ const search = url.substring(url.lastIndexOf('?') + 1)
+ const obj = {}
+ const reg = /([^?&=]+)=([^?&=]*)/g
+ search.replace(reg, (rs, $1, $2) => {
+ const name = decodeURIComponent($1)
+ let val = decodeURIComponent($2)
+ val = String(val)
+ obj[name] = val
+ return rs
+ })
+ return obj
+}
+
+/**
+ * @param {string} input value
+ * @returns {number} output value
+ */
+export function byteLength(str) {
+ // returns the byte length of an utf8 string
+ let s = str.length
+ for (var i = str.length - 1; i >= 0; i--) {
+ const code = str.charCodeAt(i)
+ if (code > 0x7f && code <= 0x7ff) s++
+ else if (code > 0x7ff && code <= 0xffff) s += 2
+ if (code >= 0xDC00 && code <= 0xDFFF) i--
+ }
+ return s
+}
+
+/**
+ * @param {Array} actual
+ * @returns {Array}
+ */
+export function cleanArray(actual) {
+ const newArray = []
+ for (let i = 0; i < actual.length; i++) {
+ if (actual[i]) {
+ newArray.push(actual[i])
+ }
+ }
+ return newArray
+}
+
+/**
+ * @param {Object} json
+ * @returns {Array}
+ */
+export function param(json) {
+ if (!json) return ''
+ return cleanArray(
+ Object.keys(json).map(key => {
+ if (json[key] === undefined) return ''
+ return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])
+ })
+ ).join('&')
+}
+
+/**
+ * @param {string} url
+ * @returns {Object}
+ */
+export function param2Obj(url) {
+ const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
+ if (!search) {
+ return {}
+ }
+ const obj = {}
+ const searchArr = search.split('&')
+ searchArr.forEach(v => {
+ const index = v.indexOf('=')
+ if (index !== -1) {
+ const name = v.substring(0, index)
+ const val = v.substring(index + 1, v.length)
+ obj[name] = val
+ }
+ })
+ return obj
+}
+
+/**
+ * @param {string} val
+ * @returns {string}
+ */
+export function html2Text(val) {
+ const div = document.createElement('div')
+ div.innerHTML = val
+ return div.textContent || div.innerText
+}
+
+/**
+ * Merges two objects, giving the last one precedence
+ * @param {Object} target
+ * @param {(Object|Array)} source
+ * @returns {Object}
+ */
+export function objectMerge(target, source) {
+ if (typeof target !== 'object') {
+ target = {}
+ }
+ if (Array.isArray(source)) {
+ return source.slice()
+ }
+ Object.keys(source).forEach(property => {
+ const sourceProperty = source[property]
+ if (typeof sourceProperty === 'object') {
+ target[property] = objectMerge(target[property], sourceProperty)
+ } else {
+ target[property] = sourceProperty
+ }
+ })
+ return target
+}
+
+/**
+ * @param {HTMLElement} element
+ * @param {string} className
+ */
+export function toggleClass(element, className) {
+ if (!element || !className) {
+ return
+ }
+ let classString = element.className
+ const nameIndex = classString.indexOf(className)
+ if (nameIndex === -1) {
+ classString += '' + className
+ } else {
+ classString =
+ classString.substr(0, nameIndex) +
+ classString.substr(nameIndex + className.length)
+ }
+ element.className = classString
+}
+
+/**
+ * @param {string} type
+ * @returns {Date}
+ */
+export function getTime(type) {
+ if (type === 'start') {
+ return new Date().getTime() - 3600 * 1000 * 24 * 90
+ } else {
+ return new Date(new Date().toDateString())
+ }
+}
+
+/**
+ * @param {Function} func
+ * @param {number} wait
+ * @param {boolean} immediate
+ * @return {*}
+ */
+export function debounce(func, wait, immediate) {
+ let timeout, args, context, timestamp, result
+
+ const later = function() {
+ // 据上一次触发时间间隔
+ const last = +new Date() - timestamp
+
+ // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
+ if (last < wait && last > 0) {
+ timeout = setTimeout(later, wait - last)
+ } else {
+ timeout = null
+ // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
+ if (!immediate) {
+ result = func.apply(context, args)
+ if (!timeout) context = args = null
+ }
+ }
+ }
+
+ return function(...args) {
+ context = this
+ timestamp = +new Date()
+ const callNow = immediate && !timeout
+ // 如果延时不存在,重新设定延时
+ if (!timeout) timeout = setTimeout(later, wait)
+ if (callNow) {
+ result = func.apply(context, args)
+ context = args = null
+ }
+
+ return result
+ }
+}
+
+/**
+ * This is just a simple version of deep copy
+ * Has a lot of edge cases bug
+ * If you want to use a perfect deep copy, use lodash's _.cloneDeep
+ * @param {Object} source
+ * @returns {Object}
+ */
+export function deepClone(source) {
+ if (!source && typeof source !== 'object') {
+ throw new Error('error arguments', 'deepClone')
+ }
+ const targetObj = source.constructor === Array ? [] : {}
+ Object.keys(source).forEach(keys => {
+ if (source[keys] && typeof source[keys] === 'object') {
+ targetObj[keys] = deepClone(source[keys])
+ } else {
+ targetObj[keys] = source[keys]
+ }
+ })
+ return targetObj
+}
+
+/**
+ * @param {Array} arr
+ * @returns {Array}
+ */
+export function uniqueArr(arr) {
+ return Array.from(new Set(arr))
+}
+
+/**
+ * @returns {string}
+ */
+export function createUniqueString() {
+ const timestamp = +new Date() + ''
+ const randomNum = parseInt((1 + Math.random()) * 65536) + ''
+ return (+(randomNum + timestamp)).toString(32)
+}
+
+/**
+ * Check if an element has a class
+ * @param {HTMLElement} elm
+ * @param {string} cls
+ * @returns {boolean}
+ */
+export function hasClass(ele, cls) {
+ return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'))
+}
+
+/**
+ * Add class to element
+ * @param {HTMLElement} elm
+ * @param {string} cls
+ */
+export function addClass(ele, cls) {
+ if (!hasClass(ele, cls)) ele.className += ' ' + cls
+}
+
+/**
+ * Remove class from element
+ * @param {HTMLElement} elm
+ * @param {string} cls
+ */
+export function removeClass(ele, cls) {
+ if (hasClass(ele, cls)) {
+ const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)')
+ ele.className = ele.className.replace(reg, ' ')
+ }
+}
diff --git a/src/utils/lodash.js b/src/utils/lodash.js
new file mode 100644
index 0000000..56e659a
--- /dev/null
+++ b/src/utils/lodash.js
@@ -0,0 +1,9 @@
+import _ from 'lodash'
+const Lodash = {
+ // install 是默认的方法。当外界在 use 这个组件的时候,就会调用本身的 install 方法,同时传一个 Vue 这个类的参数。
+ install: function(Vue) {
+ Vue.prototype.$lodash = _
+ }
+}
+
+export default Lodash
diff --git a/src/utils/open-window.js b/src/utils/open-window.js
new file mode 100644
index 0000000..723f046
--- /dev/null
+++ b/src/utils/open-window.js
@@ -0,0 +1,25 @@
+/**
+ *Created by PanJiaChen on 16/11/29.
+ * @param {String} url
+ * @param {String} title
+ * @param {Number} w
+ * @param {Number} h
+ */
+export default function openWindow(url, title, w, h) {
+ // Fixes dual-screen position Most browsers Firefox
+ const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left
+ const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top
+
+ const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width
+ const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height
+
+ const left = ((width / 2) - (w / 2)) + dualScreenLeft
+ const top = ((height / 2) - (h / 2)) + dualScreenTop
+ const newWindow = window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left)
+
+ // Puts focus on the newWindow
+ if (window.focus) {
+ newWindow.focus()
+ }
+}
+
diff --git a/src/utils/permission.js b/src/utils/permission.js
new file mode 100644
index 0000000..221d384
--- /dev/null
+++ b/src/utils/permission.js
@@ -0,0 +1,25 @@
+import store from '@/store'
+
+/**
+ * @param {Array} value
+ * @returns {Boolean}
+ * @example see @/views/permission/directive.vue
+ */
+export default function checkPermission(value) {
+ if (value && value instanceof Array && value.length > 0) {
+ const roles = store.getters && store.getters.roles
+ const permissionRoles = value
+
+ const hasPermission = roles.some(role => {
+ return permissionRoles.includes(role)
+ })
+
+ if (!hasPermission) {
+ return false
+ }
+ return true
+ } else {
+ console.error(`need roles! Like v-permission="['admin','editor']"`)
+ return false
+ }
+}
diff --git a/src/utils/request.js b/src/utils/request.js
new file mode 100644
index 0000000..3f6d32f
--- /dev/null
+++ b/src/utils/request.js
@@ -0,0 +1,89 @@
+import axios from 'axios'
+import { Message } from 'element-ui'
+import store from '@/store'
+import { getToken } from '@/utils/auth'
+
+// create an axios instance
+const service = axios.create({
+ baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
+ // withCredentials: true, // send cookies when cross-domain requests
+ timeout: 5000, // request timeout
+ withCredentials: true
+})
+
+// request interceptor
+service.interceptors.request.use(
+ config => {
+ // do something before request is sent
+
+ if (store.getters.token) {
+ // let each request carry token
+ // ['X-Token'] is a custom headers key
+ // please modify it according to the actual situation
+ config.headers['X-Token'] = getToken()
+ }
+ return config
+ },
+ error => {
+ // do something with request error
+ console.log(error) // for debug
+ return Promise.reject(error)
+ }
+)
+
+// response interceptor
+service.interceptors.response.use(
+ /**
+ * If you want to get http information such as headers or status
+ * Please return response => response
+ */
+
+ /**
+ * Determine the request status by custom code
+ * Here is just an example
+ * You can also judge the status by HTTP Status Code
+ */
+ response => {
+ const res = response.data
+ // if the custom code is not 20000, it is judged as an error.
+ if (res.code !== 0) {
+ Message({
+ message: res.message || 'Error',
+ type: 'error',
+ duration: 5 * 1000
+ })
+ return Promise.reject(new Error(res.message || 'Error'))
+ } else {
+ return res
+ }
+ },
+ error => {
+ const errorMsg = error.response.data.msg
+ console.log(error.response.data)
+ // 特殊处理401,需要验证手机号
+ if (error.response.data.code === 401) {
+ return error.response.data
+ }
+ // 登录超时,重新登录
+ // if (error.response.data.code === 403) {
+ // store.dispatch('user/resetToken').then(() => {
+ // location.reload()
+ // })
+ // Message({
+ // message: '登录超时,请重新登录',
+ // type: 'error',
+ // duration: 5 * 1000
+ // })
+ // return
+ // }
+
+ Message({
+ message: errorMsg ?? error,
+ type: 'error',
+ duration: 5 * 1000
+ })
+ return Promise.reject(error)
+ }
+)
+
+export default service
diff --git a/src/utils/scroll-to.js b/src/utils/scroll-to.js
new file mode 100644
index 0000000..c5d8e04
--- /dev/null
+++ b/src/utils/scroll-to.js
@@ -0,0 +1,58 @@
+Math.easeInOutQuad = function(t, b, c, d) {
+ t /= d / 2
+ if (t < 1) {
+ return c / 2 * t * t + b
+ }
+ t--
+ return -c / 2 * (t * (t - 2) - 1) + b
+}
+
+// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
+var requestAnimFrame = (function() {
+ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) }
+})()
+
+/**
+ * Because it's so fucking difficult to detect the scrolling element, just move them all
+ * @param {number} amount
+ */
+function move(amount) {
+ document.documentElement.scrollTop = amount
+ document.body.parentNode.scrollTop = amount
+ document.body.scrollTop = amount
+}
+
+function position() {
+ return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop
+}
+
+/**
+ * @param {number} to
+ * @param {number} duration
+ * @param {Function} callback
+ */
+export function scrollTo(to, duration, callback) {
+ const start = position()
+ const change = to - start
+ const increment = 20
+ let currentTime = 0
+ duration = (typeof (duration) === 'undefined') ? 500 : duration
+ var animateScroll = function() {
+ // increment the time
+ currentTime += increment
+ // find the value with the quadratic in-out easing function
+ var val = Math.easeInOutQuad(currentTime, start, change, duration)
+ // move the document.body
+ move(val)
+ // do the animation unless its over
+ if (currentTime < duration) {
+ requestAnimFrame(animateScroll)
+ } else {
+ if (callback && typeof (callback) === 'function') {
+ // the animation is done so lets callback
+ callback()
+ }
+ }
+ }
+ animateScroll()
+}
diff --git a/src/utils/tools.js b/src/utils/tools.js
new file mode 100644
index 0000000..21c2fb3
--- /dev/null
+++ b/src/utils/tools.js
@@ -0,0 +1,116 @@
+/**
+ * post写法get传参
+ * @param obj
+ * @returns {string}
+ */
+export function postConvertGet(obj) {
+ let params = ''
+ if (obj === undefined) {
+ return params
+ } else if (JSON.stringify(obj) === '{}') {
+ return params
+ } else {
+ for (const [key, value] of Object.entries(obj)) {
+ params += `${key}=${value}&`
+ }
+ params = `?${params.slice(0, -1)}`
+ return params
+ }
+}
+
+/**
+ * 时间戳转换
+ * @param date
+ * @returns {string}
+ */
+export function convertTimestamp(date) {
+ const addZero = num => (num > 9 ? num : '0' + num)
+ return `${date.getFullYear()}-${date.getMonth() +
+ 1}-${date.getDate()} ${addZero(date.getHours())}:${addZero(
+ date.getMinutes()
+ )}:${addZero(date.getSeconds())}`
+}
+
+/**
+ * 对数组进行过滤
+ * @param list
+ * @param param
+ * @returns [*]
+ */
+export function filterList(list, param) {
+ return list.map(item => item[param])
+}
+
+/**
+ * 移除文件路径,保留文件名
+ * @param str
+ * @returns {T}
+ */
+export function removeFileDomain(str) {
+ return str
+ .split('\\')
+ .pop()
+ .split('/')
+ .pop()
+}
+
+/**
+ * 移除空值
+ * @param obj
+ * @returns {*}
+ */
+export function removeEmptyValue(obj) {
+ Object.keys(obj).forEach(key => {
+ if (obj[key] === null || obj[key] === undefined || obj[key] === '') {
+ delete obj[key]
+ }
+ })
+ return obj
+}
+
+/**
+ * 数组转为字符串
+ * @param arr
+ * @returns {string}
+ */
+export function arrayConvertString(arr) {
+ const list = arr.map(item => Number(item))
+ const listStr = JSON.stringify(list)
+ return listStr.substring(1, listStr.length - 1)
+}
+
+/**
+ * 判断一个字符串是否是正整数
+ * @param str
+ * @returns {boolean}
+ */
+export function isNormalInteger(str) {
+ const n = Math.floor(Number(str))
+ return n !== Infinity && String(n) === str && n >= 0
+}
+
+/**
+ * 下载图片
+ * @param imgsrc
+ * @param name
+ * @returns {boolean}
+ */
+export function downloadIamge(imgsrc, name) {
+ var image = new Image()
+ // 解决跨域 Canvas 污染问题
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.onload = function() {
+ var canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ var context = canvas.getContext('2d')
+ context.drawImage(image, 0, 0, image.width, image.height)
+ var url = canvas.toDataURL('image/png') // 得到图片的base64编码数据
+ var a = document.createElement('a') // 生成一个a元素
+ var event = new MouseEvent('click') // 创建一个单击事件
+ a.download = name || 'photo' // 设置图片名称
+ a.href = url // 将生成的URL设置为a.href属性
+ a.dispatchEvent(event) // 触发a的单击事件
+ }
+ image.src = imgsrc
+}
diff --git a/src/utils/validate.js b/src/utils/validate.js
new file mode 100644
index 0000000..32218c5
--- /dev/null
+++ b/src/utils/validate.js
@@ -0,0 +1,91 @@
+/**
+ * Created by PanJiaChen on 16/11/18.
+ */
+
+/**
+ * @param {string} path
+ * @returns {Boolean}
+ */
+export function isExternal(path) {
+ return /^(https?:|mailto:|tel:)/.test(path)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validUsername(str) {
+ const valid_map = ['admin', 'editor']
+ return valid_map.indexOf(str.trim()) >= 0
+}
+export function validPhone(str) {
+ console.log(str, /^1[3456789]\d{9}$/.test(str))
+ return /^1[3456789]\d{9}$/.test(str)
+}
+
+/**
+ * @param {string} url
+ * @returns {Boolean}
+ */
+export function validURL(url) {
+ const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
+ return reg.test(url)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validLowerCase(str) {
+ const reg = /^[a-z]+$/
+ return reg.test(str)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validUpperCase(str) {
+ const reg = /^[A-Z]+$/
+ return reg.test(str)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validAlphabets(str) {
+ const reg = /^[A-Za-z]+$/
+ return reg.test(str)
+}
+
+/**
+ * @param {string} email
+ * @returns {Boolean}
+ */
+export function validEmail(email) {
+ const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+ return reg.test(email)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function isString(str) {
+ if (typeof str === 'string' || str instanceof String) {
+ return true
+ }
+ return false
+}
+
+/**
+ * @param {Array} arg
+ * @returns {Boolean}
+ */
+export function isArray(arg) {
+ if (typeof Array.isArray === 'undefined') {
+ return Object.prototype.toString.call(arg) === '[object Array]'
+ }
+ return Array.isArray(arg)
+}
diff --git a/src/vendor/Export2Excel.js b/src/vendor/Export2Excel.js
new file mode 100644
index 0000000..d8a2af3
--- /dev/null
+++ b/src/vendor/Export2Excel.js
@@ -0,0 +1,220 @@
+/* eslint-disable */
+import { saveAs } from 'file-saver'
+import XLSX from 'xlsx'
+
+function generateArray(table) {
+ var out = [];
+ var rows = table.querySelectorAll('tr');
+ var ranges = [];
+ for (var R = 0; R < rows.length; ++R) {
+ var outRow = [];
+ var row = rows[R];
+ var columns = row.querySelectorAll('td');
+ for (var C = 0; C < columns.length; ++C) {
+ var cell = columns[C];
+ var colspan = cell.getAttribute('colspan');
+ var rowspan = cell.getAttribute('rowspan');
+ var cellValue = cell.innerText;
+ if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue;
+
+ //Skip ranges
+ ranges.forEach(function (range) {
+ if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {
+ for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null);
+ }
+ });
+
+ //Handle Row Span
+ if (rowspan || colspan) {
+ rowspan = rowspan || 1;
+ colspan = colspan || 1;
+ ranges.push({
+ s: {
+ r: R,
+ c: outRow.length
+ },
+ e: {
+ r: R + rowspan - 1,
+ c: outRow.length + colspan - 1
+ }
+ });
+ };
+
+ //Handle Value
+ outRow.push(cellValue !== "" ? cellValue : null);
+
+ //Handle Colspan
+ if (colspan)
+ for (var k = 0; k < colspan - 1; ++k) outRow.push(null);
+ }
+ out.push(outRow);
+ }
+ return [out, ranges];
+};
+
+function datenum(v, date1904) {
+ if (date1904) v += 1462;
+ var epoch = Date.parse(v);
+ return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);
+}
+
+function sheet_from_array_of_arrays(data, opts) {
+ var ws = {};
+ var range = {
+ s: {
+ c: 10000000,
+ r: 10000000
+ },
+ e: {
+ c: 0,
+ r: 0
+ }
+ };
+ for (var R = 0; R != data.length; ++R) {
+ for (var C = 0; C != data[R].length; ++C) {
+ if (range.s.r > R) range.s.r = R;
+ if (range.s.c > C) range.s.c = C;
+ if (range.e.r < R) range.e.r = R;
+ if (range.e.c < C) range.e.c = C;
+ var cell = {
+ v: data[R][C]
+ };
+ if (cell.v == null) continue;
+ var cell_ref = XLSX.utils.encode_cell({
+ c: C,
+ r: R
+ });
+
+ if (typeof cell.v === 'number') cell.t = 'n';
+ else if (typeof cell.v === 'boolean') cell.t = 'b';
+ else if (cell.v instanceof Date) {
+ cell.t = 'n';
+ cell.z = XLSX.SSF._table[14];
+ cell.v = datenum(cell.v);
+ } else cell.t = 's';
+
+ ws[cell_ref] = cell;
+ }
+ }
+ if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);
+ return ws;
+}
+
+function Workbook() {
+ if (!(this instanceof Workbook)) return new Workbook();
+ this.SheetNames = [];
+ this.Sheets = {};
+}
+
+function s2ab(s) {
+ var buf = new ArrayBuffer(s.length);
+ var view = new Uint8Array(buf);
+ for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
+ return buf;
+}
+
+export function export_table_to_excel(id) {
+ var theTable = document.getElementById(id);
+ var oo = generateArray(theTable);
+ var ranges = oo[1];
+
+ /* original data */
+ var data = oo[0];
+ var ws_name = "SheetJS";
+
+ var wb = new Workbook(),
+ ws = sheet_from_array_of_arrays(data);
+
+ /* add ranges to worksheet */
+ // ws['!cols'] = ['apple', 'banan'];
+ ws['!merges'] = ranges;
+
+ /* add worksheet to workbook */
+ wb.SheetNames.push(ws_name);
+ wb.Sheets[ws_name] = ws;
+
+ var wbout = XLSX.write(wb, {
+ bookType: 'xlsx',
+ bookSST: false,
+ type: 'binary'
+ });
+
+ saveAs(new Blob([s2ab(wbout)], {
+ type: "application/octet-stream"
+ }), "test.xlsx")
+}
+
+export function export_json_to_excel({
+ multiHeader = [],
+ header,
+ data,
+ filename,
+ merges = [],
+ autoWidth = true,
+ bookType = 'xlsx'
+} = {}) {
+ /* original data */
+ filename = filename || 'excel-list'
+ data = [...data]
+ data.unshift(header);
+
+ for (let i = multiHeader.length - 1; i > -1; i--) {
+ data.unshift(multiHeader[i])
+ }
+
+ var ws_name = "SheetJS";
+ var wb = new Workbook(),
+ ws = sheet_from_array_of_arrays(data);
+
+ if (merges.length > 0) {
+ if (!ws['!merges']) ws['!merges'] = [];
+ merges.forEach(item => {
+ ws['!merges'].push(XLSX.utils.decode_range(item))
+ })
+ }
+
+ if (autoWidth) {
+ /*设置worksheet每列的最大宽度*/
+ const colWidth = data.map(row => row.map(val => {
+ /*先判断是否为null/undefined*/
+ if (val == null) {
+ return {
+ 'wch': 10
+ };
+ }
+ /*再判断是否为中文*/
+ else if (val.toString().charCodeAt(0) > 255) {
+ return {
+ 'wch': val.toString().length * 2
+ };
+ } else {
+ return {
+ 'wch': val.toString().length
+ };
+ }
+ }))
+ /*以第一行为初始值*/
+ let result = colWidth[0];
+ for (let i = 1; i < colWidth.length; i++) {
+ for (let j = 0; j < colWidth[i].length; j++) {
+ if (result[j]['wch'] < colWidth[i][j]['wch']) {
+ result[j]['wch'] = colWidth[i][j]['wch'];
+ }
+ }
+ }
+ ws['!cols'] = result;
+ }
+
+ /* add worksheet to workbook */
+ wb.SheetNames.push(ws_name);
+ wb.Sheets[ws_name] = ws;
+
+ var wbout = XLSX.write(wb, {
+ bookType: bookType,
+ bookSST: false,
+ type: 'binary'
+ });
+ saveAs(new Blob([s2ab(wbout)], {
+ type: "application/octet-stream"
+ }), `${filename}.${bookType}`);
+}
diff --git a/src/vendor/Export2Zip.js b/src/vendor/Export2Zip.js
new file mode 100644
index 0000000..db70707
--- /dev/null
+++ b/src/vendor/Export2Zip.js
@@ -0,0 +1,24 @@
+/* eslint-disable */
+import { saveAs } from 'file-saver'
+import JSZip from 'jszip'
+
+export function export_txt_to_zip(th, jsonData, txtName, zipName) {
+ const zip = new JSZip()
+ const txt_name = txtName || 'file'
+ const zip_name = zipName || 'file'
+ const data = jsonData
+ let txtData = `${th}\r\n`
+ data.forEach((row) => {
+ let tempStr = ''
+ tempStr = row.toString()
+ txtData += `${tempStr}\r\n`
+ })
+ zip.file(`${txt_name}.txt`, txtData)
+ zip.generateAsync({
+ type: "blob"
+ }).then((blob) => {
+ saveAs(blob, `${zip_name}.zip`)
+ }, (err) => {
+ alert('导出失败')
+ })
+}
diff --git a/src/views/charts/keyboard.vue b/src/views/charts/keyboard.vue
new file mode 100644
index 0000000..4bbda0f
--- /dev/null
+++ b/src/views/charts/keyboard.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/charts/line.vue b/src/views/charts/line.vue
new file mode 100644
index 0000000..fea1497
--- /dev/null
+++ b/src/views/charts/line.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/charts/mix-chart.vue b/src/views/charts/mix-chart.vue
new file mode 100644
index 0000000..c57db75
--- /dev/null
+++ b/src/views/charts/mix-chart.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/clipboard/index.vue b/src/views/clipboard/index.vue
new file mode 100644
index 0000000..4a6bdd1
--- /dev/null
+++ b/src/views/clipboard/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ copy
+
+
+
+
+
+ copy
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/avatar-upload.vue b/src/views/components-demo/avatar-upload.vue
new file mode 100644
index 0000000..5fb6471
--- /dev/null
+++ b/src/views/components-demo/avatar-upload.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+ Change Avatar
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/back-to-top.vue b/src/views/components-demo/back-to-top.vue
new file mode 100644
index 0000000..58d9d75
--- /dev/null
+++ b/src/views/components-demo/back-to-top.vue
@@ -0,0 +1,150 @@
+
+
+
{{ $t('components.backToTopTips1') }}
+
{{ $t('components.backToTopTips2') }}
+
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/count-to.vue b/src/views/components-demo/count-to.vue
new file mode 100644
index 0000000..70681df
--- /dev/null
+++ b/src/views/components-demo/count-to.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
+
<count-to :start-val='{{ _startVal }}' :end-val='{{ _endVal }}' :duration='{{ _duration }}'
+ :decimals='{{ _decimals }}' :separator='{{ _separator }}' :prefix='{{ _prefix }}' :suffix='{{ _suffix }}'
+ :autoplay=false>
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/dnd-list.vue b/src/views/components-demo/dnd-list.vue
new file mode 100644
index 0000000..e299fa6
--- /dev/null
+++ b/src/views/components-demo/dnd-list.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
diff --git a/src/views/components-demo/drag-dialog.vue b/src/views/components-demo/drag-dialog.vue
new file mode 100644
index 0000000..c815b28
--- /dev/null
+++ b/src/views/components-demo/drag-dialog.vue
@@ -0,0 +1,61 @@
+
+
+
+ open a Drag Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/drag-kanban.vue b/src/views/components-demo/drag-kanban.vue
new file mode 100644
index 0000000..943be45
--- /dev/null
+++ b/src/views/components-demo/drag-kanban.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/drag-select.vue b/src/views/components-demo/drag-select.vue
new file mode 100644
index 0000000..905ecb9
--- /dev/null
+++ b/src/views/components-demo/drag-select.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
diff --git a/src/views/components-demo/dropzone.vue b/src/views/components-demo/dropzone.vue
new file mode 100644
index 0000000..cdfc71b
--- /dev/null
+++ b/src/views/components-demo/dropzone.vue
@@ -0,0 +1,31 @@
+
+
+
+ Based on dropzone .
+ {{ $t('components.dropzoneTips') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/json-editor.vue b/src/views/components-demo/json-editor.vue
new file mode 100644
index 0000000..85bf383
--- /dev/null
+++ b/src/views/components-demo/json-editor.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/markdown.vue b/src/views/components-demo/markdown.vue
new file mode 100644
index 0000000..876db00
--- /dev/null
+++ b/src/views/components-demo/markdown.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ Basic:
+
+
+
+
+
+
+ Markdown Mode:
+
+
+
+
+
+
+ Customize Toolbar:
+
+
+
+
+
+
+ I18n:
+
+
+
+
+
+
+ Get HTML
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/mixin.vue b/src/views/components-demo/mixin.vue
new file mode 100644
index 0000000..86efa86
--- /dev/null
+++ b/src/views/components-demo/mixin.vue
@@ -0,0 +1,212 @@
+
+
+
+
+
+ Buttons
+
+
+
+
+ Documentation
+
+
+
+
+ Icons
+
+
+
+
+ Excel
+
+
+
+
+ Table
+
+
+
+
+ Form
+
+
+
+
+ Theme
+
+
+
+
+
+
+
+
+
+
+ Material Design 的input
+
+
+
+
+
+ 标题
+
+
+
+
+
+
+
+
+
+
+ 图片hover效果
+
+
+
+ vue-element-admin
+
+
+
+
+
+
+
+
+ 水波纹 waves v-directive
+
+
+
+ 水波纹效果
+
+
+
+
+
+
+
+
+ hover text
+
+
+
+
+
+
+
+
+
+
+
+
+ Share
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/split-pane.vue b/src/views/components-demo/split-pane.vue
new file mode 100644
index 0000000..7dba353
--- /dev/null
+++ b/src/views/components-demo/split-pane.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/sticky.vue b/src/views/components-demo/sticky.vue
new file mode 100644
index 0000000..de86e1a
--- /dev/null
+++ b/src/views/components-demo/sticky.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+ Platform
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+ Link
+
+
+
+
+ Url
+
+
+
+
+
+
+
+
+
+
+ publish
+
+
+
+
+
Sticky header, {{ $t('components.stickyTips') }}
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
+ placeholder
+
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
placeholder
+
+
+
+
+
+
+
diff --git a/src/views/components-demo/tinymce.vue b/src/views/components-demo/tinymce.vue
new file mode 100644
index 0000000..544219f
--- /dev/null
+++ b/src/views/components-demo/tinymce.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/BarChart.vue b/src/views/dashboard/admin/components/BarChart.vue
new file mode 100644
index 0000000..be0af34
--- /dev/null
+++ b/src/views/dashboard/admin/components/BarChart.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/BoxCard.vue b/src/views/dashboard/admin/components/BoxCard.vue
new file mode 100644
index 0000000..4bd0532
--- /dev/null
+++ b/src/views/dashboard/admin/components/BoxCard.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+ Vue
+
+
+
+ JavaScript
+
+
+
+ Css
+
+
+
+ ESLint
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/LineChart.vue b/src/views/dashboard/admin/components/LineChart.vue
new file mode 100644
index 0000000..e654168
--- /dev/null
+++ b/src/views/dashboard/admin/components/LineChart.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/PanelGroup.vue b/src/views/dashboard/admin/components/PanelGroup.vue
new file mode 100644
index 0000000..589236e
--- /dev/null
+++ b/src/views/dashboard/admin/components/PanelGroup.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/PieChart.vue b/src/views/dashboard/admin/components/PieChart.vue
new file mode 100644
index 0000000..4d2ef32
--- /dev/null
+++ b/src/views/dashboard/admin/components/PieChart.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/RaddarChart.vue b/src/views/dashboard/admin/components/RaddarChart.vue
new file mode 100644
index 0000000..52c8f9f
--- /dev/null
+++ b/src/views/dashboard/admin/components/RaddarChart.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/TodoList/Todo.vue b/src/views/dashboard/admin/components/TodoList/Todo.vue
new file mode 100644
index 0000000..c4b3cae
--- /dev/null
+++ b/src/views/dashboard/admin/components/TodoList/Todo.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/TodoList/index.scss b/src/views/dashboard/admin/components/TodoList/index.scss
new file mode 100644
index 0000000..74ce0d5
--- /dev/null
+++ b/src/views/dashboard/admin/components/TodoList/index.scss
@@ -0,0 +1,320 @@
+.todoapp {
+ font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ line-height: 1.4em;
+ color: #4d4d4d;
+ min-width: 230px;
+ max-width: 550px;
+ margin: 0 auto ;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-weight: 300;
+ background: #fff;
+ z-index: 1;
+ position: relative;
+ button {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: none;
+ font-size: 100%;
+ vertical-align: baseline;
+ font-family: inherit;
+ font-weight: inherit;
+ color: inherit;
+ -webkit-appearance: none;
+ appearance: none;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+ :focus {
+ outline: 0;
+ }
+ .hidden {
+ display: none;
+ }
+ .todoapp {
+ background: #fff;
+ margin: 130px 0 40px 0;
+ position: relative;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
+ }
+ .todoapp input::-webkit-input-placeholder {
+ font-style: italic;
+ font-weight: 300;
+ color: #e6e6e6;
+ }
+ .todoapp input::-moz-placeholder {
+ font-style: italic;
+ font-weight: 300;
+ color: #e6e6e6;
+ }
+ .todoapp input::input-placeholder {
+ font-style: italic;
+ font-weight: 300;
+ color: #e6e6e6;
+ }
+ .todoapp h1 {
+ position: absolute;
+ top: -155px;
+ width: 100%;
+ font-size: 100px;
+ font-weight: 100;
+ text-align: center;
+ color: rgba(175, 47, 47, 0.15);
+ -webkit-text-rendering: optimizeLegibility;
+ -moz-text-rendering: optimizeLegibility;
+ text-rendering: optimizeLegibility;
+ }
+ .new-todo,
+ .edit {
+ position: relative;
+ margin: 0;
+ width: 100%;
+ font-size: 18px;
+ font-family: inherit;
+ font-weight: inherit;
+ line-height: 1.4em;
+ border: 0;
+ color: inherit;
+ padding: 6px;
+ border: 1px solid #999;
+ box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2);
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+ .new-todo {
+ padding: 10px 16px 16px 60px;
+ border: none;
+ background: rgba(0, 0, 0, 0.003);
+ box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03);
+ }
+ .main {
+ position: relative;
+ z-index: 2;
+ border-top: 1px solid #e6e6e6;
+ }
+ .toggle-all {
+ text-align: center;
+ border: none;
+ /* Mobile Safari */
+ opacity: 0;
+ position: absolute;
+ }
+ .toggle-all+label {
+ width: 60px;
+ height: 34px;
+ font-size: 0;
+ position: absolute;
+ top: -52px;
+ left: -13px;
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+ }
+ .toggle-all+label:before {
+ content: '❯';
+ font-size: 22px;
+ color: #e6e6e6;
+ padding: 10px 27px 10px 27px;
+ }
+ .toggle-all:checked+label:before {
+ color: #737373;
+ }
+ .todo-list {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
+ .todo-list li {
+ position: relative;
+ font-size: 24px;
+ border-bottom: 1px solid #ededed;
+ }
+ .todo-list li:last-child {
+ border-bottom: none;
+ }
+ .todo-list li.editing {
+ border-bottom: none;
+ padding: 0;
+ }
+ .todo-list li.editing .edit {
+ display: block;
+ width: 506px;
+ padding: 12px 16px;
+ margin: 0 0 0 43px;
+ }
+ .todo-list li.editing .view {
+ display: none;
+ }
+ .todo-list li .toggle {
+ text-align: center;
+ width: 40px;
+ /* auto, since non-WebKit browsers doesn't support input styling */
+ height: auto;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ margin: auto 0;
+ border: none;
+ /* Mobile Safari */
+ -webkit-appearance: none;
+ appearance: none;
+ }
+ .todo-list li .toggle {
+ opacity: 0;
+ }
+ .todo-list li .toggle+label {
+ /*
+ Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433
+ IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/
+ */
+ background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E');
+ background-repeat: no-repeat;
+ background-position: center left;
+ background-size: 36px;
+ }
+ .todo-list li .toggle:checked+label {
+ background-size: 36px;
+ background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E');
+ }
+ .todo-list li label {
+ word-break: break-all;
+ padding: 15px 15px 15px 50px;
+ display: block;
+ line-height: 1.0;
+ font-size: 14px;
+ transition: color 0.4s;
+ }
+ .todo-list li.completed label {
+ color: #d9d9d9;
+ text-decoration: line-through;
+ }
+ .todo-list li .destroy {
+ display: none;
+ position: absolute;
+ top: 0;
+ right: 10px;
+ bottom: 0;
+ width: 40px;
+ height: 40px;
+ margin: auto 0;
+ font-size: 30px;
+ color: #cc9a9a;
+ transition: color 0.2s ease-out;
+ cursor: pointer;
+ }
+ .todo-list li .destroy:hover {
+ color: #af5b5e;
+ }
+ .todo-list li .destroy:after {
+ content: '×';
+ }
+ .todo-list li:hover .destroy {
+ display: block;
+ }
+ .todo-list li .edit {
+ display: none;
+ }
+ .todo-list li.editing:last-child {
+ margin-bottom: -1px;
+ }
+ .footer {
+ color: #777;
+ position: relative;
+ padding: 10px 15px;
+ height: 40px;
+ text-align: center;
+ border-top: 1px solid #e6e6e6;
+ }
+ .footer:before {
+ content: '';
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 40px;
+ overflow: hidden;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 8px 0 -3px #f6f6f6, 0 9px 1px -3px rgba(0, 0, 0, 0.2), 0 16px 0 -6px #f6f6f6, 0 17px 2px -6px rgba(0, 0, 0, 0.2);
+ }
+ .todo-count {
+ float: left;
+ text-align: left;
+ }
+ .todo-count strong {
+ font-weight: 300;
+ }
+ .filters {
+ margin: 0;
+ padding: 0;
+ position: relative;
+ z-index: 1;
+ list-style: none;
+ }
+ .filters li {
+ display: inline;
+ }
+ .filters li a {
+ color: inherit;
+ font-size: 12px;
+ padding: 3px 7px;
+ text-decoration: none;
+ border: 1px solid transparent;
+ border-radius: 3px;
+ }
+ .filters li a:hover {
+ border-color: rgba(175, 47, 47, 0.1);
+ }
+ .filters li a.selected {
+ border-color: rgba(175, 47, 47, 0.2);
+ }
+ .clear-completed,
+ html .clear-completed:active {
+ float: right;
+ position: relative;
+ line-height: 20px;
+ text-decoration: none;
+ cursor: pointer;
+ }
+ .clear-completed:hover {
+ text-decoration: underline;
+ }
+ .info {
+ margin: 65px auto 0;
+ color: #bfbfbf;
+ font-size: 10px;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ text-align: center;
+ }
+ .info p {
+ line-height: 1;
+ }
+ .info a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: 400;
+ }
+ .info a:hover {
+ text-decoration: underline;
+ }
+ /*
+ Hack to remove background from Mobile Safari.
+ Can't use it globally since it destroys checkboxes in Firefox
+*/
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
+ .toggle-all,
+ .todo-list li .toggle {
+ background: none;
+ }
+ .todo-list li .toggle {
+ height: 40px;
+ }
+ }
+ @media (max-width: 430px) {
+ .footer {
+ height: 50px;
+ }
+ .filters {
+ bottom: 10px;
+ }
+ }
+}
diff --git a/src/views/dashboard/admin/components/TodoList/index.vue b/src/views/dashboard/admin/components/TodoList/index.vue
new file mode 100644
index 0000000..7f5877c
--- /dev/null
+++ b/src/views/dashboard/admin/components/TodoList/index.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/TransactionTable.vue b/src/views/dashboard/admin/components/TransactionTable.vue
new file mode 100644
index 0000000..d07b0ed
--- /dev/null
+++ b/src/views/dashboard/admin/components/TransactionTable.vue
@@ -0,0 +1,55 @@
+
+
+
+
+ {{ scope.row.order_no | orderNoFilter }}
+
+
+
+
+ ¥{{ scope.row.price | toThousandFilter }}
+
+
+
+
+
+ {{ row.status }}
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/admin/components/mixins/resize.js b/src/views/dashboard/admin/components/mixins/resize.js
new file mode 100644
index 0000000..234953b
--- /dev/null
+++ b/src/views/dashboard/admin/components/mixins/resize.js
@@ -0,0 +1,55 @@
+import { debounce } from '@/utils'
+
+export default {
+ data() {
+ return {
+ $_sidebarElm: null,
+ $_resizeHandler: null
+ }
+ },
+ mounted() {
+ this.$_resizeHandler = debounce(() => {
+ if (this.chart) {
+ this.chart.resize()
+ }
+ }, 100)
+ this.$_initResizeEvent()
+ this.$_initSidebarResizeEvent()
+ },
+ beforeDestroy() {
+ this.$_destroyResizeEvent()
+ this.$_destroySidebarResizeEvent()
+ },
+ // to fixed bug when cached by keep-alive
+ // https://github.com/PanJiaChen/vue-element-admin/issues/2116
+ activated() {
+ this.$_initResizeEvent()
+ this.$_initSidebarResizeEvent()
+ },
+ deactivated() {
+ this.$_destroyResizeEvent()
+ this.$_destroySidebarResizeEvent()
+ },
+ methods: {
+ // use $_ for mixins properties
+ // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
+ $_initResizeEvent() {
+ window.addEventListener('resize', this.$_resizeHandler)
+ },
+ $_destroyResizeEvent() {
+ window.removeEventListener('resize', this.$_resizeHandler)
+ },
+ $_sidebarResizeHandler(e) {
+ if (e.propertyName === 'width') {
+ this.$_resizeHandler()
+ }
+ },
+ $_initSidebarResizeEvent() {
+ this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
+ this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ $_destroySidebarResizeEvent() {
+ this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
+ }
+ }
+}
diff --git a/src/views/dashboard/admin/index.vue b/src/views/dashboard/admin/index.vue
new file mode 100644
index 0000000..8cb557b
--- /dev/null
+++ b/src/views/dashboard/admin/index.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/editor/index.vue b/src/views/dashboard/editor/index.vue
new file mode 100644
index 0000000..9723bcc
--- /dev/null
+++ b/src/views/dashboard/editor/index.vue
@@ -0,0 +1,74 @@
+
+
+
+
+ Your roles:
+ {{ item }}
+
+
+
+ {{ name }}
+ Editor's Dashboard
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue
new file mode 100644
index 0000000..1720ea8
--- /dev/null
+++ b/src/views/dashboard/index.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
diff --git a/src/views/documentation/index.vue b/src/views/documentation/index.vue
new file mode 100644
index 0000000..d3f7746
--- /dev/null
+++ b/src/views/documentation/index.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
diff --git a/src/views/error-log/components/ErrorTestA.vue b/src/views/error-log/components/ErrorTestA.vue
new file mode 100644
index 0000000..52654e0
--- /dev/null
+++ b/src/views/error-log/components/ErrorTestA.vue
@@ -0,0 +1,13 @@
+
+
+
+ {{ a.a }}
+
+
+
+
+
diff --git a/src/views/error-log/components/ErrorTestB.vue b/src/views/error-log/components/ErrorTestB.vue
new file mode 100644
index 0000000..d796bee
--- /dev/null
+++ b/src/views/error-log/components/ErrorTestB.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/src/views/error-log/index.vue b/src/views/error-log/index.vue
new file mode 100644
index 0000000..a02dc05
--- /dev/null
+++ b/src/views/error-log/index.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
{{ $t('errorLog.tips') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/error-page/401.vue b/src/views/error-page/401.vue
new file mode 100644
index 0000000..a52ed23
--- /dev/null
+++ b/src/views/error-page/401.vue
@@ -0,0 +1,99 @@
+
+
+
+ 返回
+
+
+
+
+ Oops!
+
+ gif来源airbnb 页面
+ 你没有权限去该页面
+ 如有不满请联系你领导
+
+ 或者你可以去:
+
+
+ 回首页
+
+
+
+ 随便看看
+
+ 点我看图
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/error-page/404.vue b/src/views/error-page/404.vue
new file mode 100644
index 0000000..1791f55
--- /dev/null
+++ b/src/views/error-page/404.vue
@@ -0,0 +1,228 @@
+
+
+
+
+
+
OOPS!
+
+
{{ message }}
+
Please check that the URL you entered is correct, or click the button below to return to the homepage.
+
Back to home
+
+
+
+
+
+
+
+
diff --git a/src/views/example/components/ArticleDetail.vue b/src/views/example/components/ArticleDetail.vue
new file mode 100644
index 0000000..5d74d1c
--- /dev/null
+++ b/src/views/example/components/ArticleDetail.vue
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+ Publish
+
+
+ Draft
+
+
+
+
+
+
+
+
+
+
+ Title
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ contentShortLength }}words
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/example/components/Dropdown/Comment.vue b/src/views/example/components/Dropdown/Comment.vue
new file mode 100644
index 0000000..d34b2b9
--- /dev/null
+++ b/src/views/example/components/Dropdown/Comment.vue
@@ -0,0 +1,41 @@
+
+
+
+ {{ !comment_disabled?'Comment: opened':'Comment: closed' }}
+
+
+
+
+
+
+ Close comment
+
+
+ Open comment
+
+
+
+
+
+
+
+
diff --git a/src/views/example/components/Dropdown/Platform.vue b/src/views/example/components/Dropdown/Platform.vue
new file mode 100644
index 0000000..0a52726
--- /dev/null
+++ b/src/views/example/components/Dropdown/Platform.vue
@@ -0,0 +1,46 @@
+
+
+
+ Platfroms({{ platforms.length }})
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
diff --git a/src/views/example/components/Dropdown/SourceUrl.vue b/src/views/example/components/Dropdown/SourceUrl.vue
new file mode 100644
index 0000000..8f47485
--- /dev/null
+++ b/src/views/example/components/Dropdown/SourceUrl.vue
@@ -0,0 +1,38 @@
+
+
+
+ Link
+
+
+
+
+
+
+ URL
+
+
+
+
+
+
+
+
diff --git a/src/views/example/components/Dropdown/index.js b/src/views/example/components/Dropdown/index.js
new file mode 100644
index 0000000..bc0c171
--- /dev/null
+++ b/src/views/example/components/Dropdown/index.js
@@ -0,0 +1,3 @@
+export { default as CommentDropdown } from './Comment'
+export { default as PlatformDropdown } from './Platform'
+export { default as SourceUrlDropdown } from './SourceUrl'
diff --git a/src/views/example/components/Warning.vue b/src/views/example/components/Warning.vue
new file mode 100644
index 0000000..d24fe29
--- /dev/null
+++ b/src/views/example/components/Warning.vue
@@ -0,0 +1,10 @@
+
+
+ {{ $t('example.warning') }}
+ Document
+
+
+
diff --git a/src/views/example/create.vue b/src/views/example/create.vue
new file mode 100644
index 0000000..f28ce28
--- /dev/null
+++ b/src/views/example/create.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/src/views/example/edit.vue b/src/views/example/edit.vue
new file mode 100644
index 0000000..87b6126
--- /dev/null
+++ b/src/views/example/edit.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/src/views/example/list.vue b/src/views/example/list.vue
new file mode 100644
index 0000000..7cdc4ac
--- /dev/null
+++ b/src/views/example/list.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+ {{ scope.row.id }}
+
+
+
+
+
+ {{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+ {{ scope.row.author }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.status }}
+
+
+
+
+
+
+
+ {{ row.title }}
+
+
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/excel/components/AutoWidthOption.vue b/src/views/excel/components/AutoWidthOption.vue
new file mode 100644
index 0000000..9050e65
--- /dev/null
+++ b/src/views/excel/components/AutoWidthOption.vue
@@ -0,0 +1,34 @@
+
+
+ Cell Auto-Width:
+
+
+ True
+
+
+ False
+
+
+
+
+
+
diff --git a/src/views/excel/components/BookTypeOption.vue b/src/views/excel/components/BookTypeOption.vue
new file mode 100644
index 0000000..af9fed3
--- /dev/null
+++ b/src/views/excel/components/BookTypeOption.vue
@@ -0,0 +1,39 @@
+
+
+ Book Type:
+
+
+
+
+
+
+
diff --git a/src/views/excel/components/FilenameOption.vue b/src/views/excel/components/FilenameOption.vue
new file mode 100644
index 0000000..c8e0530
--- /dev/null
+++ b/src/views/excel/components/FilenameOption.vue
@@ -0,0 +1,28 @@
+
+
+
+ Filename:
+
+
+
+
+
diff --git a/src/views/excel/export-excel.vue b/src/views/excel/export-excel.vue
new file mode 100644
index 0000000..92df140
--- /dev/null
+++ b/src/views/excel/export-excel.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+ {{ scope.$index }}
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+ {{ scope.row.author }}
+
+
+
+
+ {{ scope.row.pageviews }}
+
+
+
+
+
+ {{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/excel/merge-header.vue b/src/views/excel/merge-header.vue
new file mode 100644
index 0000000..4be0227
--- /dev/null
+++ b/src/views/excel/merge-header.vue
@@ -0,0 +1,101 @@
+
+
+
+ Export
+
+
+
+
+ {{ scope.$index }}
+
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+ {{ scope.row.author }}
+
+
+
+
+ {{ scope.row.pageviews }}
+
+
+
+
+
+
+ {{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+
+
+
diff --git a/src/views/excel/select-excel.vue b/src/views/excel/select-excel.vue
new file mode 100644
index 0000000..b12fc2c
--- /dev/null
+++ b/src/views/excel/select-excel.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+ {{ $t('excel.selectedExport') }}
+
+
+ Documentation
+
+
+
+
+
+ {{ scope.$index }}
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+ {{ scope.row.author }}
+
+
+
+
+ {{ scope.row.pageviews }}
+
+
+
+
+
+ {{ scope.row.display_time }}
+
+
+
+
+
+
+
diff --git a/src/views/excel/upload-excel.vue b/src/views/excel/upload-excel.vue
new file mode 100644
index 0000000..1772b7f
--- /dev/null
+++ b/src/views/excel/upload-excel.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/finance-center/index.vue b/src/views/finance-center/index.vue
new file mode 100644
index 0000000..5c6d151
--- /dev/null
+++ b/src/views/finance-center/index.vue
@@ -0,0 +1,14 @@
+
+
+ 财务中心
+
+
+
+
+
+
diff --git a/src/views/guide/index.vue b/src/views/guide/index.vue
new file mode 100644
index 0000000..636ca27
--- /dev/null
+++ b/src/views/guide/index.vue
@@ -0,0 +1,35 @@
+
+
+
+
+ {{ $t('guide.button') }}
+
+
+
+
+
diff --git a/src/views/guide/steps.js b/src/views/guide/steps.js
new file mode 100644
index 0000000..283c672
--- /dev/null
+++ b/src/views/guide/steps.js
@@ -0,0 +1,53 @@
+const steps = [
+ {
+ element: '#hamburger-container',
+ popover: {
+ title: 'Hamburger',
+ description: 'Open && Close sidebar',
+ position: 'bottom'
+ }
+ },
+ {
+ element: '#breadcrumb-container',
+ popover: {
+ title: 'Breadcrumb',
+ description: 'Indicate the current page location',
+ position: 'bottom'
+ }
+ },
+ {
+ element: '#header-search',
+ popover: {
+ title: 'Page Search',
+ description: 'Page search, quick navigation',
+ position: 'left'
+ }
+ },
+ {
+ element: '#screenfull',
+ popover: {
+ title: 'Screenfull',
+ description: 'Set the page into fullscreen',
+ position: 'left'
+ }
+ },
+ {
+ element: '#size-select',
+ popover: {
+ title: 'Switch Size',
+ description: 'Switch the system size',
+ position: 'left'
+ }
+ },
+ {
+ element: '#tags-view-container',
+ popover: {
+ title: 'Tags view',
+ description: 'The history of the page you visited',
+ position: 'bottom'
+ },
+ padding: 0
+ }
+]
+
+export default steps
diff --git a/src/views/home-index/index.vue b/src/views/home-index/index.vue
new file mode 100644
index 0000000..d8c8bd8
--- /dev/null
+++ b/src/views/home-index/index.vue
@@ -0,0 +1,14 @@
+
+
+ 首页
+
+
+
+
+
+
diff --git a/src/views/i18n-demo/index.vue b/src/views/i18n-demo/index.vue
new file mode 100644
index 0000000..32cee07
--- /dev/null
+++ b/src/views/i18n-demo/index.vue
@@ -0,0 +1,168 @@
+
+
+
+
+
+ {{ $t('i18nView.title') }}
+
+
+
+
+ 简体中文
+
+
+ English
+
+
+ Español
+
+
+ 日本語
+
+
+
+ {{ $t('i18nView.note') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('i18nView.default') }}
+
+
+ {{ $t('i18nView.primary') }}
+
+
+ {{ $t('i18nView.success') }}
+
+
+ {{ $t('i18nView.info') }}
+
+
+ {{ $t('i18nView.warning') }}
+
+
+ {{ $t('i18nView.danger') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/i18n-demo/local.js b/src/views/i18n-demo/local.js
new file mode 100644
index 0000000..ae38dd2
--- /dev/null
+++ b/src/views/i18n-demo/local.js
@@ -0,0 +1,83 @@
+
+export default {
+ zh: {
+ i18nView: {
+ title: '切换语言',
+ note: '本项目国际化基于 vue-i18n',
+ datePlaceholder: '请选择日期',
+ selectPlaceholder: '请选择',
+ tableDate: '日期',
+ tableName: '姓名',
+ tableAddress: '地址',
+ default: '默认按钮',
+ primary: '主要按钮',
+ success: '成功按钮',
+ info: '信息按钮',
+ warning: '警告按钮',
+ danger: '危险按钮',
+ one: '一',
+ two: '二',
+ three: '三'
+ }
+ },
+ en: {
+ i18nView: {
+ title: 'Switch Language',
+ note: 'The internationalization of this project is based on vue-i18n',
+ datePlaceholder: 'Pick a day',
+ selectPlaceholder: 'Select',
+ tableDate: 'tableDate',
+ tableName: 'tableName',
+ tableAddress: 'tableAddress',
+ default: 'default:',
+ primary: 'primary',
+ success: 'success',
+ info: 'info',
+ warning: 'warning',
+ danger: 'danger',
+ one: 'One',
+ two: 'Two',
+ three: 'Three'
+ }
+ },
+ es: {
+ i18nView: {
+ title: 'Switch Language',
+ note: 'The internationalization of this project is based on vue-i18n',
+ datePlaceholder: 'Pick a day',
+ selectPlaceholder: 'Select',
+ tableDate: 'tableDate',
+ tableName: 'tableName',
+ tableAddress: 'tableAddress',
+ default: 'default:',
+ primary: 'primary',
+ success: 'success',
+ info: 'info',
+ warning: 'warning',
+ danger: 'danger',
+ one: 'One',
+ two: 'Two',
+ three: 'Three'
+ }
+ },
+ ja: {
+ i18nView: {
+ title: '言語切替',
+ note: 'vue-i18nを使っています',
+ datePlaceholder: '日時選択',
+ selectPlaceholder: '選択してください',
+ tableDate: '日時',
+ tableName: '姓名',
+ tableAddress: '住所',
+ default: 'default',
+ primary: 'primary',
+ success: 'success',
+ info: 'info',
+ warning: 'warning',
+ danger: 'danger',
+ one: '1',
+ two: '2',
+ three: '3'
+ }
+ }
+}
diff --git a/src/views/icons/element-icons.js b/src/views/icons/element-icons.js
new file mode 100644
index 0000000..9ea4d63
--- /dev/null
+++ b/src/views/icons/element-icons.js
@@ -0,0 +1,3 @@
+const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-to-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round']
+
+export default elementIcons
diff --git a/src/views/icons/index.vue b/src/views/icons/index.vue
new file mode 100644
index 0000000..5756da1
--- /dev/null
+++ b/src/views/icons/index.vue
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+ {{ generateIconCode(item) }}
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+ {{ generateElementIconCode(item) }}
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/icons/svg-icons.js b/src/views/icons/svg-icons.js
new file mode 100644
index 0000000..1e3c66d
--- /dev/null
+++ b/src/views/icons/svg-icons.js
@@ -0,0 +1,10 @@
+const req = require.context('../../icons/svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys()
+
+const re = /\.\/(.*)\.svg/
+
+const svgIcons = requireAll(req).map(i => {
+ return i.match(re)[1]
+})
+
+export default svgIcons
diff --git a/src/views/login/auth-redirect.vue b/src/views/login/auth-redirect.vue
new file mode 100644
index 0000000..7df8934
--- /dev/null
+++ b/src/views/login/auth-redirect.vue
@@ -0,0 +1,15 @@
+
diff --git a/src/views/login/components/SocialSignin.vue b/src/views/login/components/SocialSignin.vue
new file mode 100644
index 0000000..e9bf4f2
--- /dev/null
+++ b/src/views/login/components/SocialSignin.vue
@@ -0,0 +1,72 @@
+
+
+
+
+ WeChat
+
+
+
+ QQ
+
+
+
+
+
+
+
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
new file mode 100644
index 0000000..3d2d5e7
--- /dev/null
+++ b/src/views/login/index.vue
@@ -0,0 +1,497 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ reSend
+ }}
+
+
+
+
+
+ {{ $t('login.logIn') }}
+
+
+
+
+
+
+
+
+ {{ $t('login.thirdpartyTips') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/account-manager-management/components/allot-master-dialog.vue b/src/views/master-info-manage/account-manager-management/components/allot-master-dialog.vue
new file mode 100644
index 0000000..782c8ac
--- /dev/null
+++ b/src/views/master-info-manage/account-manager-management/components/allot-master-dialog.vue
@@ -0,0 +1,367 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重置
+
+
+
+
+
+ 已选 {{ multipleSelection.length }} 个站长
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.stateText }}
+
+
+
+
+
+
+
+
+
+ 确认选择
+ 取消
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/account-manager-management/components/client-delete-dialog.vue b/src/views/master-info-manage/account-manager-management/components/client-delete-dialog.vue
new file mode 100644
index 0000000..aac944f
--- /dev/null
+++ b/src/views/master-info-manage/account-manager-management/components/client-delete-dialog.vue
@@ -0,0 +1,109 @@
+
+
+
+
+ 是否删除所选列表内容?删除后不可恢复
+
+
+ 确认
+ 取消
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/account-manager-management/components/client-detail-dialog.vue b/src/views/master-info-manage/account-manager-management/components/client-detail-dialog.vue
new file mode 100644
index 0000000..59157a2
--- /dev/null
+++ b/src/views/master-info-manage/account-manager-management/components/client-detail-dialog.vue
@@ -0,0 +1,238 @@
+
+
+
+
+ 明细
+
+
+
+
+ {{ itemChoseData.id }}
+
+
+
+ 复制
+
+
+
+
+
+
+ {{ itemChoseData.phone }}
+
+
+
+ 复制
+
+
+
+
+
+
+ {{ itemChoseData.roleName }}
+
+
+
+
+ {{ itemChoseData.name }}
+
+
+
+ 复制
+
+
+
+
+
+
+ {{
+ itemChoseData.wechatNum
+ }}
+
+
+
+ 复制
+
+
+
+
+
+
+ {{
+ itemChoseData.userCount
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/account-manager-management/components/client-edit-dialog.vue b/src/views/master-info-manage/account-manager-management/components/client-edit-dialog.vue
new file mode 100644
index 0000000..919530d
--- /dev/null
+++ b/src/views/master-info-manage/account-manager-management/components/client-edit-dialog.vue
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认
+ 取消
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/account-manager-management/components/client-number-dialog.vue b/src/views/master-info-manage/account-manager-management/components/client-number-dialog.vue
new file mode 100644
index 0000000..de9000f
--- /dev/null
+++ b/src/views/master-info-manage/account-manager-management/components/client-number-dialog.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.stateText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/account-manager-management/index.vue b/src/views/master-info-manage/account-manager-management/index.vue
new file mode 100644
index 0000000..40461df
--- /dev/null
+++ b/src/views/master-info-manage/account-manager-management/index.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.userCount }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/company-authentication/components/audit-dialog.vue b/src/views/master-info-manage/company-authentication/components/audit-dialog.vue
new file mode 100644
index 0000000..493b4a9
--- /dev/null
+++ b/src/views/master-info-manage/company-authentication/components/audit-dialog.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/company-authentication/components/detail-dialog.vue b/src/views/master-info-manage/company-authentication/components/detail-dialog.vue
new file mode 100644
index 0000000..0fb6d05
--- /dev/null
+++ b/src/views/master-info-manage/company-authentication/components/detail-dialog.vue
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+ {{ formData.companyName }}
+
+
+
+
+ {{ formData.companyAddress === undefined ? '-' : formData.companyAddress }}
+
+
+
+
+
+
+
+ {{ formData.companyRegistrar }}
+
+
+
+
+ {{ formData.companyNo === undefined ? '-' : formData.companyNo }}
+
+
+
+
+
+
+
+
+
+
+
+
+ • {{ formData.companyVerifyText }}
+
+
+
+
+
+
+
+ {{ formData.memo }}
+
+
+
+
+ 审核
+
+
+
+
+
+
+ {{ formData.submitTime === undefined ? '-' : formData.submitTime }}
+
+
+
+
+ {{ formData.auditTime === undefined ? '-' : formData.auditTime }}
+
+
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/company-authentication/components/state-dialog.vue b/src/views/master-info-manage/company-authentication/components/state-dialog.vue
new file mode 100644
index 0000000..e7cc26e
--- /dev/null
+++ b/src/views/master-info-manage/company-authentication/components/state-dialog.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ • {{ selectItem.idVerifiedText }}
+
+
+ {{ selectItem.memo !== undefined && selectItem.memo.length > 0 ? selectItem.memo : '暂无' }}
+
+
+
+
+ 确定
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/company-authentication/index.vue b/src/views/master-info-manage/company-authentication/index.vue
new file mode 100644
index 0000000..a4446bd
--- /dev/null
+++ b/src/views/master-info-manage/company-authentication/index.vue
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看图片
+
+
+
+
+
+ {{ scope.row.idVerifiedText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/master-level/components/editor-dialog.vue b/src/views/master-info-manage/master-level/components/editor-dialog.vue
new file mode 100644
index 0000000..7200dbe
--- /dev/null
+++ b/src/views/master-info-manage/master-level/components/editor-dialog.vue
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %
+
+
+
+
+ %
+
+
+
+
+ 元
+
+
+
+
+
+ %
+
+
+
+
+ 至
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/master-level/index.vue b/src/views/master-info-manage/master-level/index.vue
new file mode 100644
index 0000000..d117f7d
--- /dev/null
+++ b/src/views/master-info-manage/master-level/index.vue
@@ -0,0 +1,268 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/real-name-authentication/components/audit-dialog.vue b/src/views/master-info-manage/real-name-authentication/components/audit-dialog.vue
new file mode 100644
index 0000000..731a558
--- /dev/null
+++ b/src/views/master-info-manage/real-name-authentication/components/audit-dialog.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/real-name-authentication/components/delete-dialog.vue b/src/views/master-info-manage/real-name-authentication/components/delete-dialog.vue
new file mode 100644
index 0000000..b5b92b1
--- /dev/null
+++ b/src/views/master-info-manage/real-name-authentication/components/delete-dialog.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+ 是否删除所选列表内容,删除后不可恢复
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/real-name-authentication/components/details-dialog.vue b/src/views/master-info-manage/real-name-authentication/components/details-dialog.vue
new file mode 100644
index 0000000..bcb0040
--- /dev/null
+++ b/src/views/master-info-manage/real-name-authentication/components/details-dialog.vue
@@ -0,0 +1,274 @@
+
+
+
+
+
+
+
+
+
+
+ {{ formData.id }}
+
+
+
+
+ {{ formData.nickname === undefined ? '-' : formData.nickname }}
+
+
+
+
+
+
+
+ {{ formData.phone === undefined ? '-' : formData.phone }}
+
+
+
+
+ {{ formData.name === undefined ? '-' : formData.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ formData.idCard === undefined ? '-' : formData.idCard }}
+
+
+
+
+
+
+ 审核
+
+
+
+
+
+
+
+
+ • {{ formData.idVerifiedText }}
+
+
+
+
+ {{ formData.memo }}
+
+
+
+
+
+
+
+ {{ formData.idAuditTime === undefined ? '-' : formData.idAuditTime }}
+
+
+
+
+ {{ formData.idSubmitTime === undefined ? '-' : formData.idSubmitTime }}
+
+
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/real-name-authentication/components/state-dialog.vue b/src/views/master-info-manage/real-name-authentication/components/state-dialog.vue
new file mode 100644
index 0000000..7ba464f
--- /dev/null
+++ b/src/views/master-info-manage/real-name-authentication/components/state-dialog.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ ● {{ realNameAuthSelectItem.idVerifiedText }}
+
+
+ 无
+
+
+
+
+ 确定
+
+
+
+
+
+
+
+
diff --git a/src/views/master-info-manage/real-name-authentication/index.vue b/src/views/master-info-manage/real-name-authentication/index.vue
new file mode 100644
index 0000000..3e14e34
--- /dev/null
+++ b/src/views/master-info-manage/real-name-authentication/index.vue
@@ -0,0 +1,296 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看图片
+
+
+
+
+
+
+
+ 查看图片
+
+
+
+
+
+ {{ scope.row.idVerifiedText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/message-manage/index.vue b/src/views/message-manage/index.vue
new file mode 100644
index 0000000..098c8bf
--- /dev/null
+++ b/src/views/message-manage/index.vue
@@ -0,0 +1,14 @@
+
+
+ 消息管理
+
+
+
+
+
+
diff --git a/src/views/nested/menu1/index.vue b/src/views/nested/menu1/index.vue
new file mode 100644
index 0000000..30cb670
--- /dev/null
+++ b/src/views/nested/menu1/index.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/views/nested/menu1/menu1-1/index.vue b/src/views/nested/menu1/menu1-1/index.vue
new file mode 100644
index 0000000..27e173a
--- /dev/null
+++ b/src/views/nested/menu1/menu1-1/index.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/views/nested/menu1/menu1-2/index.vue b/src/views/nested/menu1/menu1-2/index.vue
new file mode 100644
index 0000000..0c86276
--- /dev/null
+++ b/src/views/nested/menu1/menu1-2/index.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue b/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue
new file mode 100644
index 0000000..f87d88f
--- /dev/null
+++ b/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue b/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue
new file mode 100644
index 0000000..d88789f
--- /dev/null
+++ b/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/views/nested/menu1/menu1-3/index.vue b/src/views/nested/menu1/menu1-3/index.vue
new file mode 100644
index 0000000..f7cd073
--- /dev/null
+++ b/src/views/nested/menu1/menu1-3/index.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/views/nested/menu2/index.vue b/src/views/nested/menu2/index.vue
new file mode 100644
index 0000000..19dd48f
--- /dev/null
+++ b/src/views/nested/menu2/index.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/views/pdf/content.js b/src/views/pdf/content.js
new file mode 100644
index 0000000..e62b1a2
--- /dev/null
+++ b/src/views/pdf/content.js
@@ -0,0 +1,58 @@
+const title = 'Plans for the Next Iteration of Vue.js'
+
+const content = `Last week atVue.js London I gave a brief sneak peek of what’s coming in the next major version of Vue. This post provides an in-depth overview of the plan.
+
+Why a new majorversion?
+Vue 2.0 was releasedexactly two years ago (how time flies!). During this period, the core has remained backwards compatible with five minor releases. We’ve accumulated a number of ideas that would bring improvements, but they were held off because they would result in breaking changes. At the same time, the JavaScript ecosystem and the language itself has been evolving rapidly. There are greatly improved tools that could enhance our workflow, and many new language features that could unlock simpler, more complete, and more efficient solutions to the problems Vue is trying to solve. What’s more exciting is that we are seeing ES2015 support becoming a baseline for all major evergreen browsers. Vue 3.0 aims to leverage these new language features to make Vue core smaller, faster, and more powerful.
+Vue 3.0 is currently in prototyping phase, and we have already implemented a runtime close to feature-parity with 2.x.Many of the items listed below are either already implemented, or confirmed to be feasible. Ones that are not yet implemented or still in exploration phase are marked with a *.
+The Details
+High-Level APIChanges
+TL;DR: Everything except render function API and scoped-slots syntax will either remain the same or can be made 2.x compatible via a compatibility build.
+Since it’s a new major, there is going to be some breaking changes. However, we take backwards compatibility seriously, so we want to start communicating these changes as soon as possible. Here’s the currently planned public API changes:
+Template syntax will remain 99% the same. There may be small tweaks in scoped slots syntax, but other than that we have no plans to change anything else for templates. 3.0 will support class-based components natively, with the aim to provide an API that is pleasant to use in native ES2015 without requiring any transpilation or stage-x features. Most current options will have a reasonable mapping in the class-based API. Stage-x features such as class fields and decorators can still be used optionally to enhance the authoring experience. In addition, the API is designed with TypeScript type inference in mind. The 3.x codebase will itself be written in TypeScript, and providing improved TypeScript support. (That said, usage of TypeScript in an application is still entirely optional.) The 2.x object-based component format will still be supported by internally transforming the object to a corresponding class. Mixins will still be supported.* Top level APIs will likely receive an overhaul to avoid globally mutating the Vue runtime when installing plugins. Instead, plugins will be applied and scoped to a component tree. This will make it easier to test components that rely on specific plugins, and also make it possible to mount multiple Vue applications on the same page with different plugins, but using the same Vue runtime.* Functional components can finally be plain functions —however, async components will now need to be explicitly created via a helper function. The part that will receive the most changes is the Virtual DOM format used in render functions. We are currently collecting feedback from major library authors and will be sharing more details as we are more confident of the changes, but as long as you don’t heavily rely on hand-written (non-JSX) render functions in your app, upgrading should be a reasonably straightforward process.
+Source Code Architecture
+TL;DR: better decoupled internal modules, TypeScript, and a codebase that is easier to contribute to.
+We are re-writing 3.0 from the ground up for a cleaner and more maintainable architecture, in particular trying to make it easier to contribute to. We are breaking some internal functionalities into individual packages in order to isolate the scope of complexity. For example, the observer module will become its own package, with its own public API and tests. Note this does not affect framework-level API— you will not have to manually import individual bits from multiple packages in order to use Vue. Instead, the final Vue package is assembled using these internal packages.
+The codebase is also now written in TypeScript. Although this will make proficiency in TypeScript a pre-requisite for contributing to the new codebase, we believe the type information and IDE support will actually make it easier for a new contributor to make meaningful contributions.
+Decoupling the observer and scheduler into separate packages also allows us to easily experiment with alternative implementations of these parts. For example, we can implement an IE11 compatible observer implementation with the same API, or an alternative scheduler that leveragesrequestIdleCallback
to yield to the browser during long updates.*
+
+Observation Mechanism
+TL;DR: more complete, precise, efficient and debuggable reactivity tracking & API for creating observables.
+3.0 will ship with a Proxy-based observer implementation that provides reactivity tracking with full language coverage. This eliminates a number of limitations of Vue 2’s current implementation based onObject.defineProperty
:
+The new observer also features the following:
+Easily understand why a component is re-rendering
+
+Other Runtime Improvements
+TL;DR: smaller, faster, tree-shakable features, fragments & portals, custom renderer API.
+Compiler Improvements*
+TL;DR: tree-shaking friendly output, more AOT optimizations, parser with better error info and source map support.
+IE11 Support*
+TL;DR: it will be supported, but in a separate build with the same reactivity limitations of Vue 2.x.
+The new codebase currently targets evergreen browsers only and assumes baseline native ES2015 support. But alas, we know a lot of our users still need to support IE11 for the foreseeable future. Most of the ES2015 features used can be transpiled / polyfilled for IE11, with the exception for Proxies. Our plan is to implement an alternative observer with the same API, but using the good old ES5Object.defineProperty
API. A separate build of Vue 3.x will be distributed using this observer implementation. However, this build will be subject to the same change detection caveats of Vue 2.x and thus not fully compatible with the “modern” build of 3.x. We are aware that this imposes some inconvenience for library authors as they will need to be aware of compatibility for two different builds, but we will make sure to provide clear guidelines on this when we reach that stage.
+How Do We GetThere
+First of all, although we are announcing it today, we do not have a definitive timeline yet. What we do know at the moment is the steps we will be taking to get there:
+1. Internal Feedback for the Runtime Prototype
+This is the phase we are in right now. Currently, we already have a working runtime prototype that includes the new observer, Virtual DOM and component implementation. We have invited a group of authors of influential community projects to provide feedback for the internal changes, and would like to make sure they are comfortable with the changes before moving forward. We want to ensure that important libraries in the ecosystem will be ready at the same time when we release 3.0, so that users relying on those projects can upgrade easily.
+2. Public Feedback viaRFCs
+Once we gain a certain level of confidence in the new design, for each breaking change we will be opening a dedicated RFC issue which includes:
+We will anticipate public feedback from the wider community to help us consolidate these ideas.
+3. Introduce Compatible Features in 2.x &2.x-next
+We are not forgetting about 2.x! In fact, we plan to use 2.x to progressively accustom users to the new changes. We will be gradually introducing confirmed API changes into 2.x via opt-in adaptors, and 2.x-next will allow users to try out the new Proxy-based observer.
+The last minor release in 2.x will become LTS and continue to receive bug and security fixes for 18 months when 3.0 is released.
+4. AlphaPhase
+Next, we will finish up the compiler and server-side rendering parts of 3.0 and start making alpha releases. These will mostly be for stability testing purposes in small greenfield apps.
+5. BetaPhase
+During beta phase, our main goal is updating support libraries and tools like Vue Router, Vuex, Vue CLI, Vue DevTools and make sure they work smoothly with the new core. We will also be working with major library authors from the community to help them get ready for 3.0.
+6. RCPhase
+Once we consider the API and codebase stable, we will enter RC phase with API freeze. During this phase we will also work on a “compat build”: a build of 3.0 that includes compatibility layers for 2.x API. This build will also ship with a flag you can turn on to emit deprecation warnings for 2.x API usage in your app. The compat build can be used as a guide to upgrade your app to 3.0.
+7. IE11build
+The last task before the final release will be the IE11 compatibility build as mentioned above.
+8. FinalRelease
+In all honesty, we don’t know when this will happen yet, but likely in 2019. Again, we care more about shipping something that is solid and stable rather than hitting specific dates. There is a lot of work to be done, but we are excited for what’s coming next!
`
+
+const data = {
+ title,
+ content
+}
+
+export default data
diff --git a/src/views/pdf/download.vue b/src/views/pdf/download.vue
new file mode 100644
index 0000000..a348c69
--- /dev/null
+++ b/src/views/pdf/download.vue
@@ -0,0 +1,201 @@
+
+
+
+
+ {{ article.title }}
+
+
+
+ This article is from Evan You on
medium
+
+
+
+
+
+
+
+
diff --git a/src/views/pdf/index.vue b/src/views/pdf/index.vue
new file mode 100644
index 0000000..b875295
--- /dev/null
+++ b/src/views/pdf/index.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+ Click to download PDF
+
+
+
+
+
diff --git a/src/views/permission/components/SwitchRoles.vue b/src/views/permission/components/SwitchRoles.vue
new file mode 100644
index 0000000..de1176a
--- /dev/null
+++ b/src/views/permission/components/SwitchRoles.vue
@@ -0,0 +1,32 @@
+
+
+
+ {{ $t('permission.roles') }}: {{ roles }}
+
+ {{ $t('permission.switchRoles') }}:
+
+
+
+
+
+
+
+
diff --git a/src/views/permission/directive.vue b/src/views/permission/directive.vue
new file mode 100644
index 0000000..02e2ece
--- /dev/null
+++ b/src/views/permission/directive.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ Only
+ admin can see this
+
+
+ v-permission="['admin']"
+
+
+
+
+
+ Only
+ editor can see this
+
+
+ v-permission="['editor']"
+
+
+
+
+
+ Both
+ admin and
+ editor can see this
+
+
+ v-permission="['admin','editor']"
+
+
+
+
+
+
+ {{ $t('permission.tips') }}
+ e.g.
+
+
+
+
+ Admin can see this
+
+ v-if="checkPermission(['admin'])"
+
+
+
+
+ Editor can see this
+
+ v-if="checkPermission(['editor'])"
+
+
+
+
+ Both admin or editor can see this
+
+ v-if="checkPermission(['admin','editor'])"
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/permission/page.vue b/src/views/permission/page.vue
new file mode 100644
index 0000000..5291a78
--- /dev/null
+++ b/src/views/permission/page.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/src/views/permission/role.vue b/src/views/permission/role.vue
new file mode 100644
index 0000000..3e37a79
--- /dev/null
+++ b/src/views/permission/role.vue
@@ -0,0 +1,283 @@
+
+
+
+ {{ $t('permission.addRole') }}
+
+
+
+
+
+ {{ scope.row.key }}
+
+
+
+
+ {{ scope.row.name }}
+
+
+
+
+ {{ scope.row.description }}
+
+
+
+
+
+ {{ $t('permission.editPermission') }}
+
+
+ {{ $t('permission.delete') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('permission.cancel') }}
+
+
+ {{ $t('permission.confirm') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/profile/components/Account.vue b/src/views/profile/components/Account.vue
new file mode 100644
index 0000000..9f2e386
--- /dev/null
+++ b/src/views/profile/components/Account.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+ Update
+
+
+
+
+
diff --git a/src/views/profile/components/Activity.vue b/src/views/profile/components/Activity.vue
new file mode 100644
index 0000000..dd5db3a
--- /dev/null
+++ b/src/views/profile/components/Activity.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
Iron Man
+
Shared publicly - 7:30 PM today
+
+
+ Lorem ipsum represents a long-held tradition for designers,
+ typographers and the like. Some people hate it and argue for
+ its demise, but others ignore the hate as they create awesome
+ tools to help create filler text for everyone from bacon lovers
+ to Charlie Sheen fans.
+
+
+
+
+
+ Share
+
+
+
+
+
+ Like
+
+
+
+
+
+
+
+
Captain American
+
Sent you a message - yesterday
+
+
+ Lorem ipsum represents a long-held tradition for designers,
+ typographers and the like. Some people hate it and argue for
+ its demise, but others ignore the hate as they create awesome
+ tools to help create filler text for everyone from bacon lovers
+ to Charlie Sheen fans.
+
+
+
+
+
+ Share
+
+
+
+
+
+ Like
+
+
+
+
+
+
+
+
Spider Man
+
Posted 4 photos - 2 days ago
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/profile/components/Timeline.vue b/src/views/profile/components/Timeline.vue
new file mode 100644
index 0000000..ba90b3d
--- /dev/null
+++ b/src/views/profile/components/Timeline.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+ {{ item.title }}
+ {{ item.content }}
+
+
+
+
+
+
+
diff --git a/src/views/profile/components/UserCard.vue b/src/views/profile/components/UserCard.vue
new file mode 100644
index 0000000..2476f04
--- /dev/null
+++ b/src/views/profile/components/UserCard.vue
@@ -0,0 +1,134 @@
+
+
+
+ About me
+
+
+
+
+
+ Hello
+ {{ user.role }}
+
+
+
+
{{ user.name }}
+
{{ user.role | uppercaseFirst }}
+
+
+
+
+
+
+
+
+ JS in Computer Science from the University of Technology
+
+
+
+
+
+
+
+
+ Vue
+
+
+
+ JavaScript
+
+
+
+ Css
+
+
+
+ ESLint
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/profile/index.vue b/src/views/profile/index.vue
new file mode 100644
index 0000000..87e4f94
--- /dev/null
+++ b/src/views/profile/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/qiniu/upload.vue b/src/views/qiniu/upload.vue
new file mode 100644
index 0000000..9dc9aed
--- /dev/null
+++ b/src/views/qiniu/upload.vue
@@ -0,0 +1,41 @@
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+
+
+
diff --git a/src/views/redirect/index.vue b/src/views/redirect/index.vue
new file mode 100644
index 0000000..db4c1d6
--- /dev/null
+++ b/src/views/redirect/index.vue
@@ -0,0 +1,12 @@
+
diff --git a/src/views/system-management/attachment-manage/attachment-manage.vue b/src/views/system-management/attachment-manage/attachment-manage.vue
new file mode 100644
index 0000000..0dbb3fb
--- /dev/null
+++ b/src/views/system-management/attachment-manage/attachment-manage.vue
@@ -0,0 +1,835 @@
+
+
+
+
+
+
+ 所有无用文件会由程序自动清理, 手动删除后可能会造成未知错误!
+
+
+
+
+ 清理失效文件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传
+
+
+
+
+
+ 删除
+
+
+
+
+ 新建文件夹
+
+
+
+ 附件统计
+
+
+
+ 本地存储上传至七牛云OSS
+
+
+ 本地存储
+
+ 总容量:100GB ,已使用:10GB
+
+
+ 七牛云OSS
+
+ 已使用:10GB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 返回上一级
+
+
+
+ 全部文件
+
+
+
+ {{ dir.showName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.showName }}
+
+
+
+
+
+
+
+
+
+
+ {{ row.providerName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 列表展示内容
+
+
+
+
+ 附件id
+
+
+ 宽度
+
+
+ 来源类型
+
+
+
+
+ 文件预览
+
+
+ 存储引擎
+
+
+ 高度
+
+
+
+
+ 文件大小
+
+
+ 操作
+
+
+ 会员昵称
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system-management/attachment-manage/components/AttachmentCount.vue b/src/views/system-management/attachment-manage/components/AttachmentCount.vue
new file mode 100644
index 0000000..4da93b0
--- /dev/null
+++ b/src/views/system-management/attachment-manage/components/AttachmentCount.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system-management/attachment-manage/components/Pie.vue b/src/views/system-management/attachment-manage/components/Pie.vue
new file mode 100644
index 0000000..3a9ed5e
--- /dev/null
+++ b/src/views/system-management/attachment-manage/components/Pie.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
diff --git a/src/views/system-management/attachment-manage/components/mixins/resize.js b/src/views/system-management/attachment-manage/components/mixins/resize.js
new file mode 100644
index 0000000..b1e76e9
--- /dev/null
+++ b/src/views/system-management/attachment-manage/components/mixins/resize.js
@@ -0,0 +1,56 @@
+import { debounce } from '@/utils'
+
+export default {
+ data() {
+ return {
+ $_sidebarElm: null,
+ $_resizeHandler: null
+ }
+ },
+ mounted() {
+ this.initListener()
+ },
+ activated() {
+ if (!this.$_resizeHandler) {
+ // avoid duplication init
+ this.initListener()
+ }
+
+ // when keep-alive chart activated, auto resize
+ this.resize()
+ },
+ beforeDestroy() {
+ this.destroyListener()
+ },
+ deactivated() {
+ this.destroyListener()
+ },
+ methods: {
+ // use $_ for mixins properties
+ // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
+ $_sidebarResizeHandler(e) {
+ if (e.propertyName === 'width') {
+ this.$_resizeHandler()
+ }
+ },
+ initListener() {
+ this.$_resizeHandler = debounce(() => {
+ this.resize()
+ }, 100)
+ window.addEventListener('resize', this.$_resizeHandler)
+
+ this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
+ this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ destroyListener() {
+ window.removeEventListener('resize', this.$_resizeHandler)
+ this.$_resizeHandler = null
+
+ this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ resize() {
+ const { chart } = this
+ chart && chart.resize()
+ }
+ }
+}
diff --git a/src/views/system-management/permission-manage/manager-list/admin-list.vue b/src/views/system-management/permission-manage/manager-list/admin-list.vue
new file mode 100644
index 0000000..d8c9149
--- /dev/null
+++ b/src/views/system-management/permission-manage/manager-list/admin-list.vue
@@ -0,0 +1,386 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system-management/permission-manage/manager-list/components/admin-editor-dialog.vue b/src/views/system-management/permission-manage/manager-list/components/admin-editor-dialog.vue
new file mode 100644
index 0000000..5008e61
--- /dev/null
+++ b/src/views/system-management/permission-manage/manager-list/components/admin-editor-dialog.vue
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system-management/permission-manage/permission-manage.vue b/src/views/system-management/permission-manage/permission-manage.vue
new file mode 100644
index 0000000..ec349ff
--- /dev/null
+++ b/src/views/system-management/permission-manage/permission-manage.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
diff --git a/src/views/system-management/permission-manage/permission-setting/components/permission-editor-dialog.vue b/src/views/system-management/permission-manage/permission-setting/components/permission-editor-dialog.vue
new file mode 100644
index 0000000..0e9442e
--- /dev/null
+++ b/src/views/system-management/permission-manage/permission-setting/components/permission-editor-dialog.vue
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system-management/permission-manage/permission-setting/components/permission-manage-dialog.vue b/src/views/system-management/permission-manage/permission-setting/components/permission-manage-dialog.vue
new file mode 100644
index 0000000..38d380f
--- /dev/null
+++ b/src/views/system-management/permission-manage/permission-setting/components/permission-manage-dialog.vue
@@ -0,0 +1,345 @@
+
+
+
+
+
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+ {{ scope.row.subTitle }}
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+ 确定
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system-management/permission-manage/permission-setting/components/permission-use-state-dialog.vue b/src/views/system-management/permission-manage/permission-setting/components/permission-use-state-dialog.vue
new file mode 100644
index 0000000..8cde17e
--- /dev/null
+++ b/src/views/system-management/permission-manage/permission-setting/components/permission-use-state-dialog.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+ 未分配
+ 已分配{{ userList.length }}人
+
+
+
+
+
+
+
+
diff --git a/src/views/system-management/permission-manage/permission-setting/permission-settings.vue b/src/views/system-management/permission-manage/permission-setting/permission-settings.vue
new file mode 100644
index 0000000..fa477b3
--- /dev/null
+++ b/src/views/system-management/permission-manage/permission-setting/permission-settings.vue
@@ -0,0 +1,434 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.useStr }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/tab/components/TabPane.vue b/src/views/tab/components/TabPane.vue
new file mode 100644
index 0000000..3fb1439
--- /dev/null
+++ b/src/views/tab/components/TabPane.vue
@@ -0,0 +1,103 @@
+
+
+
+
+ {{ scope.row.id }}
+
+
+
+
+
+ {{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+ {{ row.title }}
+ {{ row.type }}
+
+
+
+
+
+ {{ scope.row.author }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.pageviews }}
+
+
+
+
+
+
+ {{ row.status }}
+
+
+
+
+
+
+
+
diff --git a/src/views/tab/index.vue b/src/views/tab/index.vue
new file mode 100644
index 0000000..2a35fa5
--- /dev/null
+++ b/src/views/tab/index.vue
@@ -0,0 +1,57 @@
+
+
+ mounted times :{{ createdTimes }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table/complex-table.vue b/src/views/table/complex-table.vue
new file mode 100644
index 0000000..6cad8db
--- /dev/null
+++ b/src/views/table/complex-table.vue
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('table.search') }}
+
+
+ {{ $t('table.add') }}
+
+
+ {{ $t('table.export') }}
+
+
+ {{ $t('table.reviewer') }}
+
+
+
+
+
+
+ {{ row.id }}
+
+
+
+
+ {{ row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+ {{ row.title }}
+ {{ row.type | typeFilter }}
+
+
+
+
+ {{ row.author }}
+
+
+
+
+ {{ row.reviewer }}
+
+
+
+
+
+
+
+
+
+ {{ row.pageviews }}
+ 0
+
+
+
+
+
+ {{ row.status }}
+
+
+
+
+
+
+ {{ $t('table.edit') }}
+
+
+ {{ $t('table.publish') }}
+
+
+ {{ $t('table.draft') }}
+
+
+ {{ $t('table.delete') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table/drag-table.vue b/src/views/table/drag-table.vue
new file mode 100644
index 0000000..6ba9dad
--- /dev/null
+++ b/src/views/table/drag-table.vue
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+ {{ row.id }}
+
+
+
+
+
+ {{ row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+ {{ row.title }}
+
+
+
+
+
+ {{ row.author }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.pageviews }}
+
+
+
+
+
+
+ {{ row.status }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('table.dragTips1') }} : {{ oldList }}
+
+
+ {{ $t('table.dragTips2') }} : {{ newList }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table/dynamic-table/components/FixedThead.vue b/src/views/table/dynamic-table/components/FixedThead.vue
new file mode 100644
index 0000000..c3deb92
--- /dev/null
+++ b/src/views/table/dynamic-table/components/FixedThead.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+ apple
+
+
+ banana
+
+
+ orange
+
+
+
+
+
+
+
+
+ {{ scope.row[fruit] }}
+
+
+
+
+
+
+
+
diff --git a/src/views/table/dynamic-table/components/UnfixedThead.vue b/src/views/table/dynamic-table/components/UnfixedThead.vue
new file mode 100644
index 0000000..831b070
--- /dev/null
+++ b/src/views/table/dynamic-table/components/UnfixedThead.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+ apple
+
+
+ banana
+
+
+ orange
+
+
+
+
+
+
+
+
+ {{ scope.row[fruit] }}
+
+
+
+
+
+
+
diff --git a/src/views/table/dynamic-table/index.vue b/src/views/table/dynamic-table/index.vue
new file mode 100644
index 0000000..b1a6a6d
--- /dev/null
+++ b/src/views/table/dynamic-table/index.vue
@@ -0,0 +1,24 @@
+
+
+
+ {{ $t('table.dynamicTips1') }}
+
+
+
+
+ {{ $t('table.dynamicTips2') }}
+
+
+
+
+
+
+
diff --git a/src/views/table/inline-edit-table.vue b/src/views/table/inline-edit-table.vue
new file mode 100644
index 0000000..10cf619
--- /dev/null
+++ b/src/views/table/inline-edit-table.vue
@@ -0,0 +1,165 @@
+
+
+
+
+
+ {{ row.id }}
+
+
+
+
+
+ {{ row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+ {{ row.author }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.status }}
+
+
+
+
+
+
+
+
+
+ cancel
+
+
+ {{ row.title }}
+
+
+
+
+
+
+ Ok
+
+
+ Edit
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/theme/index.vue b/src/views/theme/index.vue
new file mode 100644
index 0000000..bfa5953
--- /dev/null
+++ b/src/views/theme/index.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
{{ $t('theme.change') }} :
+
+
+
+
+
+
+
+ Primary
+
+
+ Success
+
+
+ Info
+
+
+ Warning
+
+
+ Danger
+
+
+
+
+
+
+
+
+ Search
+
+
+ Upload
+
+
+
+
+
+
+ {{ tag.name }}
+
+
+
+
+
+
+ Option A
+
+
+ Option B
+
+
+ Option C
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/zip/index.vue b/src/views/zip/index.vue
new file mode 100644
index 0000000..3d1d88a
--- /dev/null
+++ b/src/views/zip/index.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+ {{ $t('zip.export') }} Zip
+
+
+
+
+ {{ scope.$index }}
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+ {{ scope.row.author }}
+
+
+
+
+ {{ scope.row.pageviews }}
+
+
+
+
+
+ {{ scope.row.display_time }}
+
+
+
+
+
+
+
diff --git a/tests/utils/formatTime.spec.js b/tests/utils/formatTime.spec.js
new file mode 100644
index 0000000..d07e414
--- /dev/null
+++ b/tests/utils/formatTime.spec.js
@@ -0,0 +1,29 @@
+import { formatTime } from '@/utils/index.js'
+describe('Utils:formatTime', () => {
+ const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01"
+ const retrofit = 5 * 1000
+
+ it('ten digits timestamp', () => {
+ expect(formatTime((d / 1000).toFixed(0))).toBe('7月13日17时54分')
+ })
+ it('test now', () => {
+ expect(formatTime(+new Date() - 1)).toBe('刚刚')
+ })
+ it('less two minute', () => {
+ expect(formatTime(+new Date() - 60 * 2 * 1000 + retrofit)).toBe('2分钟前')
+ })
+ it('less two hour', () => {
+ expect(formatTime(+new Date() - 60 * 60 * 2 * 1000 + retrofit)).toBe('2小时前')
+ })
+ it('less one day', () => {
+ expect(formatTime(+new Date() - 60 * 60 * 24 * 1 * 1000)).toBe('1天前')
+ })
+ it('more than one day', () => {
+ expect(formatTime(d)).toBe('7月13日17时54分')
+ })
+ it('format', () => {
+ expect(formatTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54')
+ expect(formatTime(d, '{y}-{m}-{d}')).toBe('2018-07-13')
+ expect(formatTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54')
+ })
+})
diff --git a/tests/utils/param2Obj.spec.js b/tests/utils/param2Obj.spec.js
new file mode 100644
index 0000000..e106ed8
--- /dev/null
+++ b/tests/utils/param2Obj.spec.js
@@ -0,0 +1,14 @@
+import { param2Obj } from '@/utils/index.js'
+describe('Utils:param2Obj', () => {
+ const url = 'https://github.com/PanJiaChen/vue-element-admin?name=bill&age=29&sex=1&field=dGVzdA==&key=%E6%B5%8B%E8%AF%95'
+
+ it('param2Obj test', () => {
+ expect(param2Obj(url)).toEqual({
+ name: 'bill',
+ age: '29',
+ sex: '1',
+ field: window.btoa('test'),
+ key: '测试'
+ })
+ })
+})
diff --git a/tests/utils/parseTime.spec.js b/tests/utils/parseTime.spec.js
new file mode 100644
index 0000000..3e138d0
--- /dev/null
+++ b/tests/utils/parseTime.spec.js
@@ -0,0 +1,37 @@
+import { parseTime } from '@/utils/index.js'
+
+describe('Utils:parseTime', () => {
+ const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01"
+ it('timestamp', () => {
+ expect(parseTime(d)).toBe('2018-07-13 17:54:01')
+ })
+
+ it('timestamp string', () => {
+ expect(parseTime((d + ''))).toBe('2018-07-13 17:54:01')
+ })
+
+ it('ten digits timestamp', () => {
+ expect(parseTime((d / 1000).toFixed(0))).toBe('2018-07-13 17:54:01')
+ })
+ it('new Date', () => {
+ expect(parseTime(new Date(d))).toBe('2018-07-13 17:54:01')
+ })
+ it('format', () => {
+ expect(parseTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54')
+ expect(parseTime(d, '{y}-{m}-{d}')).toBe('2018-07-13')
+ expect(parseTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54')
+ })
+ it('get the day of the week', () => {
+ expect(parseTime(d, '{a}')).toBe('五') // 星期五
+ })
+ it('get the day of the week', () => {
+ expect(parseTime(+d + 1000 * 60 * 60 * 24 * 2, '{a}')).toBe('日') // 星期日
+ })
+ it('empty argument', () => {
+ expect(parseTime()).toBeNull()
+ })
+
+ it('null', () => {
+ expect(parseTime(null)).toBeNull()
+ })
+})
diff --git a/tests/utils/validate.spec.js b/tests/utils/validate.spec.js
new file mode 100644
index 0000000..ef2efe6
--- /dev/null
+++ b/tests/utils/validate.spec.js
@@ -0,0 +1,28 @@
+import { validUsername, validURL, validLowerCase, validUpperCase, validAlphabets } from '@/utils/validate.js'
+describe('Utils:validate', () => {
+ it('validUsername', () => {
+ expect(validUsername('admin')).toBe(true)
+ expect(validUsername('editor')).toBe(true)
+ expect(validUsername('xxxx')).toBe(false)
+ })
+ it('validURL', () => {
+ expect(validURL('https://github.com/PanJiaChen/vue-element-admin')).toBe(true)
+ expect(validURL('http://github.com/PanJiaChen/vue-element-admin')).toBe(true)
+ expect(validURL('github.com/PanJiaChen/vue-element-admin')).toBe(false)
+ })
+ it('validLowerCase', () => {
+ expect(validLowerCase('abc')).toBe(true)
+ expect(validLowerCase('Abc')).toBe(false)
+ expect(validLowerCase('123abc')).toBe(false)
+ })
+ it('validUpperCase', () => {
+ expect(validUpperCase('ABC')).toBe(true)
+ expect(validUpperCase('Abc')).toBe(false)
+ expect(validUpperCase('123ABC')).toBe(false)
+ })
+ it('validAlphabets', () => {
+ expect(validAlphabets('ABC')).toBe(true)
+ expect(validAlphabets('Abc')).toBe(true)
+ expect(validAlphabets('123aBC')).toBe(false)
+ })
+})
diff --git a/unit/.eslintrc.js b/unit/.eslintrc.js
new file mode 100644
index 0000000..958d51b
--- /dev/null
+++ b/unit/.eslintrc.js
@@ -0,0 +1,5 @@
+module.exports = {
+ env: {
+ jest: true
+ }
+}
diff --git a/unit/components/Hamburger.spec.js b/unit/components/Hamburger.spec.js
new file mode 100644
index 0000000..01ea303
--- /dev/null
+++ b/unit/components/Hamburger.spec.js
@@ -0,0 +1,18 @@
+import { shallowMount } from '@vue/test-utils'
+import Hamburger from '@/components/Hamburger/index.vue'
+describe('Hamburger.vue', () => {
+ it('toggle click', () => {
+ const wrapper = shallowMount(Hamburger)
+ const mockFn = jest.fn()
+ wrapper.vm.$on('toggleClick', mockFn)
+ wrapper.find('.hamburger').trigger('click')
+ expect(mockFn).toBeCalled()
+ })
+ it('prop isActive', () => {
+ const wrapper = shallowMount(Hamburger)
+ wrapper.setProps({ isActive: true })
+ expect(wrapper.contains('.is-active')).toBe(true)
+ wrapper.setProps({ isActive: false })
+ expect(wrapper.contains('.is-active')).toBe(false)
+ })
+})
diff --git a/unit/components/SvgIcon.spec.js b/unit/components/SvgIcon.spec.js
new file mode 100644
index 0000000..31467a9
--- /dev/null
+++ b/unit/components/SvgIcon.spec.js
@@ -0,0 +1,22 @@
+import { shallowMount } from '@vue/test-utils'
+import SvgIcon from '@/components/SvgIcon/index.vue'
+describe('SvgIcon.vue', () => {
+ it('iconClass', () => {
+ const wrapper = shallowMount(SvgIcon, {
+ propsData: {
+ iconClass: 'test'
+ }
+ })
+ expect(wrapper.find('use').attributes().href).toBe('#icon-test')
+ })
+ it('className', () => {
+ const wrapper = shallowMount(SvgIcon, {
+ propsData: {
+ iconClass: 'test'
+ }
+ })
+ expect(wrapper.classes().length).toBe(1)
+ wrapper.setProps({ className: 'test' })
+ expect(wrapper.classes().includes('test')).toBe(true)
+ })
+})