diff --git a/front-end/.editorconfig b/front-end/.editorconfig deleted file mode 100644 index 3454886..0000000 --- a/front-end/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# 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/front-end/.env.development b/front-end/.env.development deleted file mode 100644 index 2f6e1f1..0000000 --- a/front-end/.env.development +++ /dev/null @@ -1,11 +0,0 @@ -# just a flag -VUE_APP_ENV = 'development' -# 以下路径变量必须得用VUE_APP开头 -# ACCESS_TOKEN default value -VUE_APP_ACCESS_TOKEN = '' -# base api 本地环境执行npm run dev ,取此 api 前缀; 不是线上(生产)环境使用的 -VUE_APP_BASE_API = 'http://api.ebc.com' -# client id -VUE_APP_CLIENT_ID = 'localhost' -# 默认的图片上传分组 -VUE_APP_UPLOAD_BUCKET_NAME = 'test' diff --git a/front-end/.env.production b/front-end/.env.production deleted file mode 100644 index 69eb5a3..0000000 --- a/front-end/.env.production +++ /dev/null @@ -1,11 +0,0 @@ -# just a flag -VUE_APP_ENV = 'production' -# 以下路径变量必须得用VUE_APP开头 -# ACCESS_TOKEN default value -VUE_APP_ACCESS_TOKEN = '' -# base api 生产环境执行npm run build; 从src\utils\index.js 的 VUE_APP_BASE_API() 动态获取 -VUE_APP_BASE_API = 'http://api.test.org' -# client id -VUE_APP_CLIENT_ID = 'localhost' -# 默认的图片上传分组 -VUE_APP_UPLOAD_BUCKET_NAME = 'test' diff --git a/front-end/.env.qa b/front-end/.env.qa deleted file mode 100644 index 2c9b845..0000000 --- a/front-end/.env.qa +++ /dev/null @@ -1,11 +0,0 @@ -# 连接测试的api数据 -VUE_APP_ENV = 'qa' -# 以下路径变量必须得用VUE_APP开头 -# ACCESS_TOKEN default value -VUE_APP_ACCESS_TOKEN = '' -# base api 本地环境执行npm run qa ,取此 api 前缀; 不是线上(生产)环境使用的 -VUE_APP_BASE_API = 'http://api.ebc1.com' -# client id -VUE_APP_CLIENT_ID = 'localhost' -# 默认的图片上传分组 -VUE_APP_UPLOAD_BUCKET_NAME = 'test' diff --git a/front-end/.env.staging b/front-end/.env.staging deleted file mode 100644 index a8793a0..0000000 --- a/front-end/.env.staging +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV = production - -# just a flag -ENV = 'staging' - -# base api -VUE_APP_BASE_API = '/stage-api' - diff --git a/front-end/.env.test b/front-end/.env.test deleted file mode 100644 index 094d62f..0000000 --- a/front-end/.env.test +++ /dev/null @@ -1,11 +0,0 @@ -# test 环境,默认了 VUE_APP_ACCESS_TOKEN 的值,将不经过Api -VUE_APP_ENV = 'test' -# 以下路径变量必须得用VUE_APP开头 -# ACCESS_TOKEN default value -VUE_APP_ACCESS_TOKEN = 'test' -# base api -VUE_APP_BASE_API = 'http://api.skyer.org' -# client id -VUE_APP_CLIENT_ID = 'localhost' -# 默认的图片上传分组 -VUE_APP_UPLOAD_BUCKET_NAME = 'test' diff --git a/front-end/.env.uat b/front-end/.env.uat deleted file mode 100644 index a3edf8a..0000000 --- a/front-end/.env.uat +++ /dev/null @@ -1,11 +0,0 @@ -# 连接测试的api数据 -VUE_APP_ENV = 'uat' -# 以下路径变量必须得用VUE_APP开头 -# ACCESS_TOKEN default value -VUE_APP_ACCESS_TOKEN = '' -# base api 本地环境执行npm run uat ,取此 api 前缀; 不是线上(生产)环境使用的 -VUE_APP_BASE_API = 'https://omniapi.k8s9.com' -# client id -VUE_APP_CLIENT_ID = 'localhost' -# 默认的图片上传分组 -VUE_APP_UPLOAD_BUCKET_NAME = 'test' diff --git a/front-end/.eslintignore b/front-end/.eslintignore deleted file mode 100644 index 4b1d2dc..0000000 --- a/front-end/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -build/*.js -src/assets -public -dist -src/components/BjTreeSelect/vue-treeselect.cjs.js diff --git a/front-end/.eslintrc.js b/front-end/.eslintrc.js deleted file mode 100644 index 36326cd..0000000 --- a/front-end/.eslintrc.js +++ /dev/null @@ -1,293 +0,0 @@ -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': [ - 0, - { - singleline: 3, - multiline: { - max: 3, - allowFirstLine: false, - }, - }, - ], - 'vue/html-self-closing': [ - 'error', - { - html: { - void: 'always', - normal: 'any', - component: 'any', - }, - svg: 'always', - math: 'always', - }, - ], - 'vue/no-side-effects-in-computed-properties': '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', - 'vue/html-closing-bracket-newline': [ - 'off', - { - singleline: 'never', - multiline: 'always', - }, - ], - 'vue/html-indent': [ - 'off', - { - attribute: 1, - baseIndent: 1, - closeBracket: 0, - alignAttributesVertically: true, - ignores: [], - }, - ], - '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, 'only-multiline'], - '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: [0, '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, 'always'], - 'semi-spacing': [ - 2, - { - before: false, - after: true, - }, - ], - 'space-before-blocks': [2, 'always'], - 'space-before-function-paren': [0, 'always'], - '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': [ - 0, - 'always', - { - objectsInObjects: false, - }, - ], - 'array-bracket-spacing': [2, 'never'], - }, -}; diff --git a/front-end/.gitignore b/front-end/.gitignore deleted file mode 100644 index 78a752d..0000000 --- a/front-end/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -.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 -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.local - -package-lock.json -yarn.lock diff --git a/front-end/.gitlab-ci.yml b/front-end/.gitlab-ci.yml deleted file mode 100644 index 32da9a2..0000000 --- a/front-end/.gitlab-ci.yml +++ /dev/null @@ -1,5 +0,0 @@ -include: http://api.k8s9.com/devops/v1/projects/285085540595404800/ci_contents/pipelines/afb0fc82-1964-4557-bf7d-954d8a380b47/content.yaml - -#include: http://api.baogicloud.com/devops/v1/projects/204888765897510912/ci_contents/pipelines/0ce800a5-e58a-4953-9636-f506efb3ff85/content.yaml -# -##include: http://api.baogicloud.com/devops/v1/projects/187577360164982784/ci_contents/pipelines/84c3efc1-6c6e-4e3c-b5c4-7237b03c9413/content.yaml \ No newline at end of file diff --git a/front-end/.prettierrc.js b/front-end/.prettierrc.js deleted file mode 100644 index 00bfa9c..0000000 --- a/front-end/.prettierrc.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = { - endOfLine: 'auto', //换行 自动 - printWidth: 100, // 每行代码长度(默认80) - singleQuote: true, // 使用单引号(默认false) - tabWidth: 2, //缩进 - useTabs: false, // 是否使用tab进行缩进(默认false) - trailingComma: 'all', // 多行使用拖尾逗号(默认none) - semi: true, // 声明结尾使用分号(默认true) - bracketSpacing: true, // 对象字面量的大括号间使用空格(默认true) - jsxBracketSameLine: false, // 多行JSX中的>放置在最后一行的结尾,而不是另起一行(默认false) - jsxSingleQuote: true, // 在jsx中使用单引号代替双引号 - arrowParens: 'avoid', // 只有一个参数的箭头函数的参数是否带圆括号(默认avoid) -}; diff --git a/front-end/.travis.yml b/front-end/.travis.yml deleted file mode 100644 index f4be7a0..0000000 --- a/front-end/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: 10 -script: npm run test -notifications: - email: false diff --git a/front-end/LICENSE b/front-end/LICENSE deleted file mode 100644 index 6151575..0000000 --- a/front-end/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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/front-end/README.md b/front-end/README.md deleted file mode 100644 index c54ecc0..0000000 --- a/front-end/README.md +++ /dev/null @@ -1,156 +0,0 @@ -# 规范 - -多行查询 /this\.cancel\(\{\n._\n._\)/ - -- 全局 element 组件已经默认 size="mini" -- 组件名称/文件 大写开头 -- 声明变量必须加上 let 关键字.不要再使用 var -- const 常量 ,大写 如:`PAGE_LIST` -- 禁用、启用、删除等操作,需要弹窗确认 - ```js - /** 禁用 */ - onStatus(flag, row) { - const TEXT = STATUS_ENABLED_NUM.bjGet(flag); - this.$confirm(`您正在 ${TEXT} ${row.brandName},是否继续?`, '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - this.operationApi({ - ids: [row.id], - status: flag, - }); - }) - .catch(() => {}); - }, - /** 删除操作 */ - onDelete(row) { - this.$confirm(`您正在删除 ${row.brandName},是否继续?`, '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - this.batchDeleteApi({ ids: [row.id] }); - }) - .catch(() => {}); - }, - ``` -- 列表的状态列,用`el-tag`展示 - ```html - {{ STATUS_ENABLED_NUM.bjGet(scope.row.status) }} - ``` - - 新增/编辑的内容较少,使用`BjDrawerForm`弹窗展示,较多内容使用新页面 - - (新增/编辑等)页面的保存确认等按钮,放在右上角,可吸顶 - ```html - 基本信息 - - - - ``` -- 路由命名 - 以父级路由为前缀,依次向后增长 - 当前路由名称应与文件路径基本一致 - 列表页面路由以 Index 结尾 - 新增页面路由以 Add 结尾 - 编辑页面路由以 Edit 结尾 - 详情页面路由以 View 结尾 - 配置页面路由以 Config 结尾 - 路由长度默认为四级,前三级为模块菜单,第四级为页面和功能 - -# 通用样式 - -- `bj-label-colon` 表单 label 文字加冒号 -- `full-width` 宽度 100% -- `tips` 提示文字,小号,灰色 -- `link` 模拟链接,蓝色,可点击 - -# 组件 - -## 列表页面的公共混入 - -`import pageMiXin from '@/utils/page-mixin.js';` - -## BjPage - -路径 src\components\BjPage\index.vue -路径 src\components\BjPage\mixin.js - -## 详情页面的公共混入 - -`import viewMiXin from '@/utils/view-mixin.js';` - -## BjDialogList - -## ScrollLoad - -列表滚动加载 packages\ScrollLoad\README.md - -## ScrollSelect - -## - -- BjImportFile 导入 -- BjDialogList 通用弹窗选择:弹出一个列表,可以搜索 -- BjDivider 分割线 -- BjDrawerForm 右侧弹窗 【新建、编辑】类使用 -- BjSelectLov 下拉选择 -- BjCheckboxLov 复选 -- BjRadioLov 单选 -- BjRouteTabs tab 页的路由跳转头部 -- BjInputMoney 金额 input -- ScrollSelect 支持 滚动加载、api 搜索 的下拉选择框, -- BjPagingTable 带分页的表格 -- BjSelectProvinces dialog 弹窗选择中国的省/市 -- BjInputNumber 数量 input 正整数 -- BjSelectChinaArea 下拉选择中国的省/市/区 单独 all type="city" type="area" -- BjUpload 带缩略图的上传组件 -- BjDialogTable - -## 其它组件 - -1. 日期组件 `el-date-picker` 需要设置 - -- class="full-width => 宽度 100% -- value-format="yyyy-MM-dd" - -2. 下拉选择 尽量使用 `BjSelectLov` 组件 - 单选 尽量使用 `BjRadioLov` 组件 - 复选 尽量使用 `BjCheckboxLov` 组件 - -3. `input` 需要设置 - -- :maxlength="MAX_LENGTH.DEFAULT" -- clearable - -4. `el-dialog` 需要设置 - -- :close-on-click-modal="false" -- :close-on-press-escape="false" - -# 依赖 Node-sass 安装 - -不使用 Node-sass 会出现图标乱码 -Node-sass 版本高于 5.0.0,与会构建失败 -使用 原镜像 https://registry.npmjs.org/ 无法下载 5.0.0 以下的 Node-sass 版本 - -[来源知乎](https://zhuanlan.zhihu.com/p/147005226) - -```npm -npm config set registry http://registry.npm.taobao.org/ - -npm config set disturl https://npm.taobao.org/mirrors/node/ - -npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/ - -npm cache clean -f - -npm install node-sass@1.14.1 -``` diff --git a/front-end/babel.config.js b/front-end/babel.config.js deleted file mode 100644 index 9cfd5d7..0000000 --- a/front-end/babel.config.js +++ /dev/null @@ -1,23 +0,0 @@ -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'], - }, - }, - plugins: [ - [ - 'import', - { - libraryName: 'vxe-table', - style: true, - }, - ], - ], -}; diff --git a/front-end/charts/ebc-front/Chart.yaml b/front-end/charts/ebc-front/Chart.yaml deleted file mode 100644 index adb5e6b..0000000 --- a/front-end/charts/ebc-front/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: "1.0" -description: A Helm chart for Kubernetes -name: ebc-front -version: 0.1.0 diff --git a/front-end/charts/ebc-front/README.md b/front-end/charts/ebc-front/README.md deleted file mode 100644 index 5b153fd..0000000 --- a/front-end/charts/ebc-front/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Quick start - -部署文件的渲染模板,我们下文将定义一些变量,helm执行时会将变量渲染进模板文件中。 - -## _helpers.tpl - -这个文件我们用来进行标签模板的定义,以便在上文提到的位置进行标签渲染。 - -此项目标签总共分为两个部分: 平台、日志。 - -### 平台标签 - -#### deployment 级: - -``` -{{- define "service.labels.standard" -}} -choerodon.io/release: {{ .Release.Name | quote }} -{{- end -}} -``` -平台管理实例需要的实例ID。 - - -### 日志标签 - -#### deployment 级: - -``` -{{- define "service.logging.deployment.label" -}} -choerodon.io/logs-parser: {{ .Values.logs.parser | quote }} -{{- end -}} -``` -日志管理所需要的应用标签。该标签指定应用程序的日志格式,内置格式有`nginx`,`spring-boot`,`docker`对于前端服务请使用`nginx`,如果不需要收集日志请移除此段代码,并删除模板文件关于`service.logging.deployment.label`的引用。 - -## values.yaml - -这个文件中的键值对,即为我们上文中所引用的变量。 - -将所以有变量集中在一个文件中,方便部署的时候进行归档以及灵活替换。 - -同时,helm命令支持使用 `--set FOO_BAR=FOOBAR` 参数对values 文件中的变量进行赋值,可以进一步简化部署流程。 - - -## 参数对照表 - -参数名 | 含义 ---- | --- -preJob.preConfig.mysql{}|初始化配置所需manager_service数据库信息 -env.open.PRO_API_HOST|api地址 -env.open.PRO_DEVOPS_HOST|devops service地址 -env.open.PRO_CLIENT_ID|client id -env.open.PRO_TITLE_NAME|页面显示标题 -env.open.PRO_HEADER_TITLE_NAME|页面header标题 -env.open.PRO_HTTP|使用协议 -service.enable|创建service对象 -ingress.enable|创建ingress对象 -ingress.host|域名地址,此处不能带http:// diff --git a/front-end/charts/ebc-front/templates/_helpers.tpl b/front-end/charts/ebc-front/templates/_helpers.tpl deleted file mode 100644 index 2baa342..0000000 --- a/front-end/charts/ebc-front/templates/_helpers.tpl +++ /dev/null @@ -1,28 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{- /* -service.labels.standard prints the standard service Helm labels. -The standard labels are frequently used in metadata. -*/ -}} - -{{- define "service.image" -}} -{{- printf "%s:%s" .Values.image.repository (default (.Chart.Version) .Values.image.tag) -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for deployment. -*/}} -{{- define "app.deployment.apiVersion" -}} -{{- if semverCompare "<1.9-0" .Capabilities.KubeVersion.GitVersion -}} -{{- print "apps/v1beta2" -}} -{{- else -}} -{{- print "apps/v1" -}} -{{- end -}} -{{- end -}} - - -{{- define "service.labels.kubesphere" -}} -app: {{ .Release.Name | quote }} -app.kubernetes.io/name: {{ .Values.kubesphere.app.name | quote }} -app.kubernetes.io/version: {{ .Values.kubesphere.app.version | quote }} -version: {{ .Values.kubesphere.app.version | quote }} -{{- end -}} diff --git a/front-end/charts/ebc-front/templates/deployment.yaml b/front-end/charts/ebc-front/templates/deployment.yaml deleted file mode 100644 index e51dba5..0000000 --- a/front-end/charts/ebc-front/templates/deployment.yaml +++ /dev/null @@ -1,95 +0,0 @@ -apiVersion: {{ include "app.deployment.apiVersion" . }} -kind: Deployment -metadata: - name: {{ .Release.Name }} - labels: -{{ include "service.labels.kubesphere" . | indent 4 }} - annotations: - deployment.kubernetes.io/revision: '1' - kubesphere.io/creator: {{ .Values.kubesphere.app.creator | quote }} - servicemesh.kubesphere.io/enabled: '{{ .Values.kubesphere.app.servicemesh }}' -spec: - strategy: - type: {{ .Values.deploymentUpdate.type }} - {{- if eq .Values.deploymentUpdate.type "RollingUpdate" }} - rollingUpdate: - maxSurge: {{ .Values.deploymentUpdate.maxSurge }} - maxUnavailable: {{ .Values.deploymentUpdate.maxUnavailable }} - {{- else }} - rollingUpdate: null - {{- end}} - replicas: {{ .Values.replicaCount }} - selector: - matchLabels: -{{ include "service.labels.kubesphere" . | indent 6 }} - template: - metadata: - annotations: - sidecar.istio.io/inject: '{{ .Values.kubesphere.app.servicemesh }}' - labels: -{{ include "service.labels.kubesphere" . | indent 8 }} - spec: - volumes: - - name: host-time - hostPath: - path: /etc/localtime - type: '' - - name: data - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.existingClaim | default ( .Release.Name ) }} - {{- else }} - emptyDir: {} - {{- end }} - containers: - - name: {{ .Release.Name }} - image: {{ include "service.image" . }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - {{- range $name, $value := .Values.env.open }} - {{- if ne (len ($value | quote)) 0 }} - - name: {{ $name | quote }} - value: {{ $value | quote }} - {{- end }} - {{- end }} - ports: - - name: http-{{ .Values.service.port }} - containerPort: {{ .Values.service.port }} - protocol: TCP - {{- if not (empty .Values.deployment.managementPort) }} - - name: http-{{ .Values.deployment.managementPort }} - containerPort: {{ .Values.deployment.managementPort }} - protocol: TCP - {{- end }} - resources: -{{ toYaml .Values.resources | indent 12 }} - volumeMounts: - - name: host-time - readOnly: true - mountPath: /etc/localtime - - mountPath: /Charts - name: data - {{- if not (empty .Values.persistence.subPath) }} - subPath: {{ .Values.persistence.subPath }} - {{- end }} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - restartPolicy: Always - terminationGracePeriodSeconds: 30 - dnsPolicy: ClusterFirst - serviceAccountName: default - serviceAccount: default - securityContext: {} - schedulerName: default-scheduler -{{- with .Values.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} -{{- end }} -{{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} -{{- end }} -{{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} diff --git a/front-end/charts/ebc-front/templates/service.yaml b/front-end/charts/ebc-front/templates/service.yaml deleted file mode 100644 index 90584c9..0000000 --- a/front-end/charts/ebc-front/templates/service.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{{- if .Values.service.enabled }} -kind: Service -apiVersion: v1 -metadata: - name: {{ .Release.Name }} - labels: -{{ include "service.labels.kubesphere" . | indent 4 }} - annotations: - kubesphere.io/creator: {{ .Values.kubesphere.app.creator }} - kubesphere.io/serviceType: {{ .Values.kubesphere.app.serviceType | quote }} - {{- if .Values.kubesphere.app.ingress }} - service.beta.kubernetes.io/qingcloud-load-balancer-eip-ids: '' - service.beta.kubernetes.io/qingcloud-load-balancer-type: '0' - {{- end }} - servicemesh.kubesphere.io/enabled: '{{ .Values.kubesphere.app.servicemesh }}' -spec: - ports: - - name: http-{{ .Values.service.port }} - protocol: TCP - port: {{ .Values.service.port }} - targetPort: {{ .Values.service.port }} - {{- if not (empty .Values.service.nodePort) }} - nodePort: {{ .Values.service.nodePort }} - {{- end }} - {{- if not (empty .Values.deployment.managementPort) }} - - name: http-{{ .Values.deployment.managementPort }} - protocol: TCP - port: {{ .Values.deployment.managementPort }} - targetPort: {{ .Values.deployment.managementPort }} - {{- if not (empty .Values.deployment.nodePort) }} - nodePort: {{ .Values.deployment.nodePort }} - {{- end }} - {{- end }} - selector: -{{ include "service.labels.kubesphere" . | indent 4 }} - type: {{ .Values.service.type | quote }} - sessionAffinity: None - ipFamilies: - - IPv4 - ipFamilyPolicy: SingleStack - {{- end }} diff --git a/front-end/charts/ebc-front/values.yaml b/front-end/charts/ebc-front/values.yaml deleted file mode 100644 index 5870139..0000000 --- a/front-end/charts/ebc-front/values.yaml +++ /dev/null @@ -1,72 +0,0 @@ -## 实例运行数量 -replicaCount: 1 -## 设置默认的 image、imageTag 和 imagePullPolicy。 -image: - # 需设置镜像地址 repository: xxxxxx - pullPolicy: IfNotPresent -deployment: - managementPort: - nodePort: -kubesphere: - app: - name: ebc - version: v1 - creator: admin - servicemesh: true - # statelessservice statefulservice - serviceType: statelessservice - ingress: true -## Deployment 更新策略 -deploymentUpdate: - type: RollingUpdate - maxUnavailable: 25% - maxSurge: 25% -## Pod 节点分配 -## ref: https://kubernetes.io/docs/user-guide/node-selection/ -## -nodeSelector: {} -tolerations: [] -affinity: {} -## 资源请求和限制相关配置 -## ref: http://kubernetes.io/docs/user-guide/compute-resources/ -## -resources: - limits: - cpu: 900m - memory: 2Gi - requests: - cpu: 100m - memory: 512Mi -## service 相关设置 -## ref: http://kubernetes.io/docs/user-guide/services/ -## -service: - enabled: true - # LoadBalancer ClusterIP - type: LoadBalancer - port: 8080 - nodePort: -persistence: - enabled: false - ## A manually managed Persistent Volume and Claim - ## Requires persistence.enabled: true - ## If defined, PVC must be created manually before volume will be bound - # existingClaim: - # subPath: -env: - open: - SERVER_PORT: 8080 - BUILD_BASE_PATH: / - BUILD_WEBSOCKET_HOST: ws://192.168.16.173:8120 - BUILD_CLIENT_ID: ebc-front-uat - BUILD_API_HOST: http://192.168.12.101:8080/ - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true - BUILD_PLATFORM_VERSION: SAAS - BUILD_MULTIPLE_SKIN_ENABLE: false - BUILD_TOP_MENU_LABELS: HZERO_MENU - BUILD_TOP_MENU_UNION_LABEL: false - BUILD_TRACE_LOG_ENABLE: true - BUILD_IM_ENABLE: true - BUILD_IM_WEBSOCKET_HOST: ws://172.23.16.46:9876 - BUILD_INVALID_TIME: 120 - BUILD_CUSTOMIZE_ICON_NAME: customize-icon diff --git a/front-end/docker/Dockerfile b/front-end/docker/Dockerfile deleted file mode 100644 index bef9414..0000000 --- a/front-end/docker/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM registry.cn-shanghai.aliyuncs.com/c7n/frontbase:0.9.0 -RUN echo "Asia/shanghai" > /etc/timezone; -RUN chown -R nginx:nginx /usr/share/nginx/html -COPY --chown=nginx:nginx ./dist /usr/share/nginx/html -USER 101 -CMD ["nginx", "-g", "daemon off;"] diff --git a/front-end/fj.png b/front-end/fj.png deleted file mode 100644 index c485612..0000000 Binary files a/front-end/fj.png and /dev/null differ diff --git a/front-end/fjxx.png b/front-end/fjxx.png deleted file mode 100644 index 841aea2..0000000 Binary files a/front-end/fjxx.png and /dev/null differ diff --git a/front-end/getRouter.js b/front-end/getRouter.js deleted file mode 100644 index 2435fbd..0000000 --- a/front-end/getRouter.js +++ /dev/null @@ -1,131 +0,0 @@ -// import { asyncRoutes } from './src/router/index'; -const asyncRoutes = require('./src/router/index'); -console.log(asyncRoutes); - -// console.log( -// '权限表 permission.json 用于初始化菜单权限数据', -// [asyncRoutes[0], asyncRoutes[1]].map((e1, n1) => { -// return { -// permissionType: e1.permissionType || 'api', -// title: e1.meta.title, -// icon: e1.meta.icon || null, -// code: e1.name, -// hiddenFlag: false, -// sort: n1, -// children: !e1.children -// ? [] -// : e1.children.map((e2, n2) => { -// if (!e2.children || e2.children.length == 0) { -// console.log('只有二级:' + e1.meta.title + '-' + e2.meta.title); -// } -// return { -// permissionType: e2.permissionType || 'api', -// title: e2.meta.title, -// icon: e2.meta.icon || null, -// code: e2.name, -// hiddenFlag: false, -// sort: n2, -// children: !e2.children -// ? [] -// : e2.children.map((e3, n3) => { -// if (!e3.children || e3.children.length == 0) { -// console.log( -// '只有三级:' + e1.meta.title + '-' + e2.meta.title + '-' + e3.meta.title, -// ); -// } -// return { -// permissionType: e3.permissionType || 'api', -// title: e3.meta.title, -// icon: e3.meta.icon || null, -// code: e3.name, -// hiddenFlag: false, -// sort: n3, -// children: !e3.children -// ? [] -// : e3.children.map((e4, n4) => { -// // 有下划线的 默认为按钮,没有下划线的为页面,如果是tab页,则对应路由表permissionType=tab -// const DEFAULT_TYPE = e4.name.includes('_') ? 'btn' : 'page'; -// return { -// permissionType: e4.permissionType || DEFAULT_TYPE, -// title: e4.meta.title, -// icon: e4.meta.icon || null, -// code: e4.name, -// hiddenFlag: true, -// sort: n4, -// }; -// }), -// }; -// }), -// }; -// }), -// }; -// }), -// ); -const routes = [asyncRoutes[0], asyncRoutes[1]].map((e1, n1) => { - return { - permissionType: e1.permissionType || 'api', - title: e1.meta.title, - icon: e1.meta.icon || null, - code: e1.name, - hiddenFlag: false, - sort: n1, - children: !e1.children - ? [] - : e1.children.map((e2, n2) => { - if (!e2.children || e2.children.length == 0) { - console.log('只有二级:' + e1.meta.title + '-' + e2.meta.title); - } - return { - permissionType: e2.permissionType || 'api', - title: e2.meta.title, - icon: e2.meta.icon || null, - code: e2.name, - hiddenFlag: false, - sort: n2, - children: !e2.children - ? [] - : e2.children.map((e3, n3) => { - if (!e3.children || e3.children.length == 0) { - console.log( - '只有三级:' + e1.meta.title + '-' + e2.meta.title + '-' + e3.meta.title, - ); - } - return { - permissionType: e3.permissionType || 'api', - title: e3.meta.title, - icon: e3.meta.icon || null, - code: e3.name, - hiddenFlag: false, - sort: n3, - children: !e3.children - ? [] - : e3.children.map((e4, n4) => { - // 有下划线的 默认为按钮,没有下划线的为页面,如果是tab页,则对应路由表permissionType=tab - const DEFAULT_TYPE = e4.name.includes('_') ? 'btn' : 'page'; - return { - permissionType: e4.permissionType || DEFAULT_TYPE, - title: e4.meta.title, - icon: e4.meta.icon || null, - code: e4.name, - hiddenFlag: true, - sort: n4, - }; - }), - }; - }), - }; - }), - }; -}); - -const fs = require('fs'); -const content = JSON.stringify(routes, null, '\t'); -// 写入文件 -fs.writeFile('111.json', content, function(err) { - if (err) { - return console.log(err); - } - console.log('路由文件已经生成'); -}); - -// export default routes; diff --git a/front-end/gzh.png b/front-end/gzh.png deleted file mode 100644 index dab4a40..0000000 Binary files a/front-end/gzh.png and /dev/null differ diff --git a/front-end/jest.config.js b/front-end/jest.config.js deleted file mode 100644 index 143cdc8..0000000 --- a/front-end/jest.config.js +++ /dev/null @@ -1,24 +0,0 @@ -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/front-end/jsconfig.json b/front-end/jsconfig.json deleted file mode 100644 index adc4845..0000000 --- a/front-end/jsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./", - "paths": { - "@/*": ["src/*"] - } - }, - "exclude": ["node_modules", "dist"] -} diff --git a/front-end/package.json b/front-end/package.json deleted file mode 100644 index 8d9e577..0000000 --- a/front-end/package.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "name": "bj-admin", - "version": "4.4.0", - "description": "飞骥管理系统", - "author": "飞骥管理系统", - "scripts": { - "dev": "vue-cli-service serve --host 0.0.0.0", - "test": "vue-cli-service serve --host 0.0.0.0 --mode test", - "qa": "vue-cli-service serve --host 0.0.0.0 --mode qa", - "uat": "vue-cli-service serve --host 0.0.0.0 --mode uat", - "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": { - "@antv/g6": "^3.1.1", - "@antv/x6": "^1.28.1", - "@antv/x6-vue-shape": "^1.2.10", - "@bpmn-io/add-exporter": "^0.2.0", - "@bpmn-io/align-to-origin": "^0.7.0", - "@bpmn-io/properties-panel": "^0.10.0", - "@riophae/vue-treeselect": "^0.4.0", - "@vue/composition-api": "^1.4.1", - "axios": "^0.21.1", - "babel-loader": "^7.1.5", - "bin-code-editor": "^0.9.0", - "bpmn-js": "^8.7.3", - "bpmn-js-properties-panel": "^0.45.0", - "bpmn-js-signavio-compat": "^1.2.3", - "bpmn-moddle": "^7.1.2", - "browserslist": "^4.20.2", - "camunda-bpmn-moddle": "^6.1.0", - "clipboard": "2.0.4", - "codemirror": "^5.62.3", - "core-js": "3.6.5", - "diagram-js-minimap": "^2.0.4", - "diagram-js-origin": "^1.3.2", - "driver.js": "0.9.5", - "dropzone": "5.5.1", - "echarts": "4.2.1", - "element-china-area-data": "^5.0.2", - "element-ui": "2.15.6", - "file-saver": "2.0.1", - "flowchart-vue": "^0.19.2", - "fuse.js": "3.4.4", - "highlight.js": "^11.0.1", - "html2pdf.js": "^0.10.1", - "install": "^0.13.0", - "js-cookie": "2.2.0", - "jsonlint": "1.6.3", - "jsplumb": "^2.15.6", - "jszip": "^3.7.1", - "lodash": "^4.17.21", - "node-sass": "^4.14.1", - "normalize.css": "7.0.0", - "nprogress": "0.2.0", - "path-to-regexp": "2.4.0", - "screenfull": "4.2.0", - "script-loader": "0.7.2", - "sortablejs": "1.8.4", - "sql-formatter": "^4.0.2", - "vant": "^2.12.18", - "vue": "2.6.12", - "vue-axios": "^3.2.4", - "vue-clipboard2": "^0.3.1", - "vue-count-to": "1.0.13", - "vue-drag-resize": "^1.5.4", - "vue-draggable-resizable": "^2.3.0", - "vue-json-editor": "^1.4.3", - "vue-pdf": "^4.3.0", - "vue-router": "3.0.2", - "vue-scroll": "^2.1.13", - "vue-scrollto": "^2.20.0", - "vue-splitpane": "1.0.4", - "vue-super-flow": "^1.3.6", - "vuedraggable": "^2.24.3", - "vuescroll": "^4.17.3", - "vuex": "3.1.0", - "vxe-table": "^3.5.6", - "xe-utils": "^3.5.4" - }, - "devDependencies": { - "@babel/core": "^7.17.2", - "@vue/cli-plugin-babel": "4.4.4", - "@vue/cli-plugin-eslint": "4.4.4", - "@vue/cli-plugin-unit-jest": "4.4.4", - "@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": "23.6.0", - "babel-plugin-dynamic-import-node": "2.3.3", - "babel-plugin-import": "^1.13.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", - "lint-staged": "8.1.5", - "mockjs": "1.0.1-beta3", - "plop": "^2.7.4", - "runjs": "4.3.2", - "sass-loader": "8.0.2", - "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.12" - }, - "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/front-end/plopfile.js b/front-end/plopfile.js deleted file mode 100644 index 57387bf..0000000 --- a/front-end/plopfile.js +++ /dev/null @@ -1,9 +0,0 @@ -const viewGenerator = require('./plop-templates/view/prompt') -const componentGenerator = require('./plop-templates/component/prompt') -const storeGenerator = require('./plop-templates/store/prompt.js') - -module.exports = function(plop) { - plop.setGenerator('view', viewGenerator) - plop.setGenerator('component', componentGenerator) - plop.setGenerator('store', storeGenerator) -} diff --git a/front-end/postcss.config.js b/front-end/postcss.config.js deleted file mode 100644 index 961986e..0000000 --- a/front-end/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {} - } -} diff --git a/front-end/public/favicon.ico b/front-end/public/favicon.ico deleted file mode 100644 index 6d81964..0000000 Binary files a/front-end/public/favicon.ico and /dev/null differ diff --git a/front-end/public/index.html b/front-end/public/index.html deleted file mode 100644 index e918500..0000000 --- a/front-end/public/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - <%= webpackConfig.name %> - - -
- - - diff --git a/front-end/public/loading.html b/front-end/public/loading.html deleted file mode 100644 index 832c902..0000000 --- a/front-end/public/loading.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - 加载中…… - - -

加载中……

- - diff --git a/front-end/src/App.vue b/front-end/src/App.vue deleted file mode 100644 index 769c7f7..0000000 --- a/front-end/src/App.vue +++ /dev/null @@ -1,52 +0,0 @@ - - diff --git a/front-end/src/api/afterApi/index.js b/front-end/src/api/afterApi/index.js deleted file mode 100644 index bd1cd7b..0000000 --- a/front-end/src/api/afterApi/index.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - * @Author: 订单模块 - * @Date: 2021-10-19 10:27:31 - * @LastEditTime: 2021-11-03 20:08:48 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\index.js - */ -import internalRefundApi from './internalRefundApi'; -import thirdRefundApi from './thirdRefundApi'; - -export default { - ...internalRefundApi, - ...thirdRefundApi, -}; diff --git a/front-end/src/api/afterApi/internalRefundApi.js b/front-end/src/api/afterApi/internalRefundApi.js deleted file mode 100644 index 52b9a09..0000000 --- a/front-end/src/api/afterApi/internalRefundApi.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-11-03 17:08:17 - * @LastEditTime: 2022-02-24 13:28:45 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: 内部售后订单 - * @FilePath: \newBj-admin\src\api\orderApi\audit.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1', - items: [ - // 创建退货退款单 - { - key: 'addRefundGoodsOrder', - url: '/after-sale-headers/create-refund-goods', - method: 'POST', - loadingMore: 999, - }, - // 创建仅退款单 - { - key: 'addRefundOnlyOrder', - url: '/after-sale-headers/create-refund-only', - method: 'POST', - loadingMore: 999, - }, - // 退货退款单审核 - { key: 'auditRefundOrder', url: '/after-sale-headers/audit-refund', method: 'PUT' }, - // 退货退款单修改/打标 - { key: 'updateRefundOrder', url: '/after-sale-headers/refund-goods-edit', method: 'PUT' }, - // 退款单详情 - { - key: 'detailRefundOrder', - url: '/after-sale-headers/refund-goods-detail/{orderId}', - method: 'GET', - }, - // 内部售后单详情订单基本信息通过code和Id - { - key: 'detailRefundOrderByIdCode', - url: '/after-sale-headers/order-base-detail-by-id-code', - method: 'POST', - }, - // 退货退款单列表 - { key: 'pageRefundGoodsOrder', url: '/after-sale-headers/refund-goods-page', method: 'POST' }, - // 仅退款单列表 - { key: 'pageRefundOnlyOrder', url: '/after-sale-headers/refund-only-page', method: 'POST' }, - - // 详情 新增加退货退款商品 - { - key: 'addSkuToRefundGoodsOrder', - url: '/after-sale-headers/add-refund-goods', - method: 'POST', - }, - // 详情 新增加仅退款商品 - { key: 'addSkuToRefundOnlyOrder', url: '/after-sale-headers/add-refund-only', method: 'POST' }, - - // 根据innerNo查询可退款/退货商品 - - { - key: 'getRefundPageByInnerNo', - url: '/after-sale-items/refund-page-by-innerNo', - method: 'POST', - }, - - // 查询可退货商品行 itemId - { - key: 'getRefundGoodsItemListByItemId', - url: '/after-sale-item-lines/refund-goods-item-list/', - method: 'GET', - loadingHide: true, - }, - // 查询可退款商品行 itemId - { - key: 'getRefundOnlyItemListByItemId', - url: '/after-sale-item-lines/refund-only-item-list/', - method: 'GET', - loadingHide: true, - }, - // 详情页 查询商品行 itemId - { - key: 'getRefundDetailItemListByItemId', - url: '/after-sale-item-lines/item-line-details', - method: 'POST', - loadingHide: true, - }, - // 详情里的退货物流LIST - { - key: 'getAfterSaleLogistics', - url: '/after-sale-headers/refund-logistics/{orderId}', - method: 'GET', - }, - - // 详情页 删除 商品行 itemId - { - key: 'deleteRefundDetailItemListByItemId', - url: '/after-sale-headers/refund-delete-item', - method: 'DELETE', - }, - // 退货退款单审核 - { - key: 'auditRefundOrder', - url: '/after-sale-headers/audit-refund', - method: 'PUT', - }, - // 批量 退货退款单审核 - { - key: 'batchAuditRefundOrder', - url: '/after-sale-headers/batch-audit-refund', - method: 'PUT', - loadingMore: 999, - }, - - // 退货退款单审核列表 - { - key: 'getAuditRefundOrderPage', - url: '/after-sale-headers/refund-audit-page', - method: 'POST', - }, - // 退货退款单 已全部入库 - { - key: 'confirmRefundOrderWare', - url: '/after-sale-headers/confirm-ware/{orderId}', - method: 'PATCH', - }, - // 退货退款单 修改退货仓库 - - { - key: 'updateRefundOrderWarehouse', - url: '/after-sale-headers/update-warehouse', - method: 'PUT', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/afterApi/thirdRefundApi.js b/front-end/src/api/afterApi/thirdRefundApi.js deleted file mode 100644 index 3d469a0..0000000 --- a/front-end/src/api/afterApi/thirdRefundApi.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-11-03 17:08:17 - * @LastEditTime: 2022-02-24 13:28:45 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: 三方售后订单 - * @FilePath: \newBj-admin\src\api\orderApi\audit.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1', - items: [ - // 创建第三方售后单头 - { - key: 'addThirdRefundOrder', - url: '/third-party-after-sale-headers/create-thirdParty-refund', - method: 'POST', - loadingMore: 0, - }, - - // 第三方售后单头列表 - { - key: 'getThirdRefundOrder', - url: '/third-party-after-sale-headers/order-page', - method: 'POST', - loadingMore: 0, - }, - // 第三方售后单明细-退货/退款 - { - key: 'detailThirdRefundOrder', - url: '/third-party-after-sale-headers/{id}', - method: 'GET', - loadingMore: 0, - }, - - // 第三方售后单明细-退货/退款 - { - key: 'detailThirdRefundOrder', - url: '/third-party-after-sale-headers/order-base-detail-by-id-code', - method: 'POST', - loadingMore: 0, - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/authApi/index.js b/front-end/src/api/authApi/index.js deleted file mode 100644 index 866f6ee..0000000 --- a/front-end/src/api/authApi/index.js +++ /dev/null @@ -1,73 +0,0 @@ -/** - * 示例 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - /** *********** 字段权限 ********************* */ - /** - * 字段权限 - 分页查询接口列表 - * @organizationId : 0 - */ - { - key: 'xxx', - url: '/v1/{organizationId}/apis', - method: 'GET', - }, - /** - * 字段权限 - 接口字段维护列表 - * @organizationId : 0 - */ - { - key: 'xxx', - url: '/v1/{organizationId}/apis/{permissionId}/fields', - method: 'GET', - }, - - /** - * 权限维护 - 权限数据(角色),新建 or 更新 - * @organizationId : 0 - */ - { - key: 'xxx', - url: '/v1/{organizationId}/data-auth-manager/role/data/assign-role', - method: 'POST', - }, - - /** *********** 一个角色对应的 数据权限 ********************* */ - - /** - * 角色数据权限定义 - 数据权限定义列表 - * @organizationId : 0 - */ - { - key: 'getAuthorizationsByRoleId', - url: '/v1/{organizationId}/roles/{roleId}/role-auths/{organizationId}', - method: 'GET', - }, - /** - * 角色数据权限定义 - 批量新增或保存角色数据权限定义明细 - * @organizationId : 0 - */ - { - key: 'addAuthorizationsByRoleId', - url: '/v1/{organizationId}/roles/{roleId}/role-auths', - method: 'POST', - }, - /** - * 角色数据权限定义 - 删除角色数据权限定义 - * @organizationId : 0 - */ - { - key: 'delAuthorizationsByRoleId', - url: '/v1/{organizationId}/roles/{roleId}/role-auths', - method: 'DELETE', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/baseDataApi/afterSaleApi.js b/front-end/src/api/baseDataApi/afterSaleApi.js deleted file mode 100644 index b835202..0000000 --- a/front-end/src/api/baseDataApi/afterSaleApi.js +++ /dev/null @@ -1,41 +0,0 @@ -/** - * - * after-sales-reason-controller - * - * -POST /v1/after-sales-reasons/create -创建售后原因 - -DELETE /v1/after-sales-reasons/delete -删除售后原因 - -GET /v1/after-sales-reasons/detail/{id} -售后原因明细 - -GET /v1/after-sales-reasons/list -售后原因列表 - -GET /v1/after-sales-reasons/page -售后原因分页 - -PUT /v1/after-sales-reasons/update -修改售后原因 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/sord/v1/after-sales-reasons', - items: [ - { key: 'getAfterSalesReasonsList', url: '/list', method: 'GET' }, - { key: 'getAfterSalesReasons', url: '/page', method: 'GET' }, - { key: 'addAfterSalesReasons', url: '/create', method: 'POST' }, - { key: 'deleteAfterSalesReasons', url: '/delete', method: 'DELETE' }, - { key: 'detailAfterSalesReasons', url: '/detail/{id}', method: 'GET' }, - { key: 'updateAfterSalesReasons', url: '/update', method: 'PUT' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/baseDataApi/codeRuleApi.js b/front-end/src/api/baseDataApi/codeRuleApi.js deleted file mode 100644 index 656a909..0000000 --- a/front-end/src/api/baseDataApi/codeRuleApi.js +++ /dev/null @@ -1,41 +0,0 @@ -/** - * - *Code Rule Manager : 编码规则管理 - -DELETE /v1/{organizationId}/code-rule-dist -租户级删除编码规则分配 - -POST /v1/{organizationId}/code-rule-dist -租户级新增和更新编码规则分配 - -GET /v1/{organizationId}/code-rule/one -查询获取编码规则、编码规则分配、编码规则明细 - -GET /v1/{organizationId}/code-rule/rule-code -查询获取编码规则、编码规则分配、编码规则明细 - - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/spfm/v1', - items: [ - { key: 'getCodeRule', url: '/{organizationId}/code-rule', method: 'GET' }, - { key: 'addCodeRule', url: '/{organizationId}/code-rule', method: 'POST' }, - { key: 'deleteCodeRule', url: '/{organizationId}/code-rule', method: 'DELETE' }, - { key: 'detailCodeRule', url: '/{organizationId}/code-rule/{ruleId}', method: 'GET' }, - { - key: 'detailCodeRuleDistId', - url: '/{organizationId}/code-rule-detail/{ruleDistId}', - method: 'GET', - }, - // 租户级新增和更新编码规则明细 - { key: 'addCodeRuleDetail', url: '/{organizationId}/code-rule-detail', method: 'POST' }, - { key: 'deleteCodeRuleDetail', url: '/{organizationId}/code-rule-detail', method: 'DELETE' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/baseDataApi/countryApi.js b/front-end/src/api/baseDataApi/countryApi.js deleted file mode 100644 index 0aef79d..0000000 --- a/front-end/src/api/baseDataApi/countryApi.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - *Country : 国家信息管理 - -PATCH /v1/{organizationId}/countries -批量禁用国家定义 - -GET /v1/{organizationId}/countries/all -获取所有国家 - -POST /v1/{organizationId}/countries/regions -listCountryRegion - -POST /v1/{organizationId}/countries/regions/address -查询国家、地区 - -GET /v1/{organizationId}/country/region -queryCountryRegion - - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/spfm/v1', - items: [ - { key: 'getCountry', url: '/{organizationId}/countries', method: 'GET' }, - { key: 'listCountry', url: '/{organizationId}/countries/all', method: 'GET' }, - { key: 'addCountry', url: '/{organizationId}/country', method: 'POST' }, - { key: 'updateCountry', url: '/{organizationId}/countries/{countryId}', method: 'PUT' }, - // { key: 'deleteCountry', url: '/{organizationId}/countries', method: 'DELETE' }, - { key: 'detailCountry', url: '/v1/{organizationId}/countries/{countryId}', method: 'GET' }, - - /** - * Country Region : 地区信息管理Show/HideList OperationsExpand Operations -GET /v1/{organizationId}/countries/regions -查询国家/地区下的地区列表 - -GET /v1/{organizationId}/countries/regions/{regionId} -查询指定地区 - -PUT /v1/{organizationId}/countries/regions/{regionId} -禁用/启用地区定义,影响下级 - -POST /v1/{organizationId}/countries/{countryId}/region -新增地区定义 - -GET /v1/{organizationId}/countries/{countryId}/regions -查询国家下地区定义,使用树状结构返回 - -POST /v1/{organizationId}/countries/{countryId}/regions -批量新增地区定义 - -GET /v1/{organizationId}/countries/{countryId}/regions/lazy-tree -查询国家下地区定义,使用树状懒加载结构返回 - -GET /v1/{organizationId}/countries/{countryId}/regions/list -分页查询国家下地区定义 - -PUT /v1/{organizationId}/countries/{countryId}/regions/{regionId} -更新地区定义 - */ - { key: 'getCountryRegions', url: '/{organizationId}/countries', method: 'GET' }, - { key: 'addCountryRegions', url: '/{organizationId}/country', method: 'POST' }, - { key: 'updateCountryRegions', url: '/{organizationId}/countries/{countryId}', method: 'PUT' }, - // { key: 'deleteCountry', url: '/{organizationId}/countries', method: 'DELETE' }, - { - key: 'detailCountryRegions', - url: '/v1/{organizationId}/countries/{countryId}', - method: 'GET', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/baseDataApi/index.js b/front-end/src/api/baseDataApi/index.js deleted file mode 100644 index cc8919c..0000000 --- a/front-end/src/api/baseDataApi/index.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - */ -/** - * 模块接口 - */ - -import codeRuleApi from './codeRuleApi'; -import countryApi from './countryApi'; -import afterSaleApi from './afterSaleApi'; -import lovApi from './lovApi'; -export default { - ...codeRuleApi, - ...countryApi, - ...afterSaleApi, - ...lovApi, -}; diff --git a/front-end/src/api/baseDataApi/lovApi.js b/front-end/src/api/baseDataApi/lovApi.js deleted file mode 100644 index 87cd500..0000000 --- a/front-end/src/api/baseDataApi/lovApi.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Dealer Manage : 经销商管理 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/spfm/v1', - items: [ - /** - * 根据lovCode查询单个值集头 - */ - { - key: 'getLovHeadersByLovCode', - url: '/{organizationId}/lov-headers-code/{lovCode}', - method: 'GET', - }, - - /** - * 根据值集头ID分页查询值集值 - */ - { - key: 'getLovValuesByLovId', - url: '/{organizationId}/lov-headers/{lovId}/values', - method: 'GET', - }, - /** - * 批量删除值集值 - */ - { key: 'deleteLovValues', url: '/{organizationId}/lov-values', method: 'DELETE' }, - - /** - * 插入值集值 - */ - { key: 'addLovValues', url: '/{organizationId}/lov-values', method: 'POST' }, - - /** - * 更新值集值 - */ - { key: 'updateLovValues', url: '/{organizationId}/lov-values', method: 'PUT' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/channelApi/companyApi.js b/front-end/src/api/channelApi/companyApi.js deleted file mode 100644 index cd6ff0a..0000000 --- a/front-end/src/api/channelApi/companyApi.js +++ /dev/null @@ -1,13 +0,0 @@ -import { generate } from '@/utils/request'; -const config = { - prefix: '/schl', - items: [ - /** 获取默认集团 */ - { key: 'getDefaultCompany', url: '/v1/groups/default', method: 'GET' }, - /** 修改默认集团信息 */ - { key: 'updateCompanyInfo', url: '/v1/groups/update', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/channelApi/dealerApi.js b/front-end/src/api/channelApi/dealerApi.js deleted file mode 100644 index 7ce8b5d..0000000 --- a/front-end/src/api/channelApi/dealerApi.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Dealer Manage : 经销商管理 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/schl/v1/channel/dealer', - items: [ - /** - * 新增经销商 - */ - { key: 'addDealer', url: '/add', method: 'POST' }, - /** - * 删除经销商信息 - */ - { key: 'deleteDealer', url: '/delete', method: 'POST', type: 'query' }, - /** - * 根据Id获取经销商信息信息 - */ - { key: 'getDealerDetails', url: '/details', method: 'GET' }, - /** - * 分页获取信息 - */ - { key: 'getDealerPage', url: '/list', method: 'GET' }, - /** - * 修改经销商信息 - */ - { key: 'updateDealer', url: '/update', method: 'POST' }, - /** - * 禁用 OR 启用 - */ - { key: 'operationDealer', url: '/operation', method: 'POST', type: 'query' }, - /** - * 批量删除数据 - */ - { key: 'batchDeleteDealer', url: '/deletes', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/channelApi/index.js b/front-end/src/api/channelApi/index.js deleted file mode 100644 index a80cbdc..0000000 --- a/front-end/src/api/channelApi/index.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * 渠道模块接口 - */ - -import shopOnlineApi from './shopOnlineApi'; -import shopPhysicalApi from './shopPhysicalApi'; -import dealerApi from './dealerApi'; -import warehouseApi from './warehouseApi'; -import salesOrganizationApi from './salesOrganizationApi'; -import shopManageApi from './shopManageApi'; -import companyApi from './companyApi'; - -export default { - ...shopOnlineApi, - ...shopPhysicalApi, - ...dealerApi, - ...warehouseApi, - ...salesOrganizationApi, - ...shopManageApi, - ...companyApi, -}; diff --git a/front-end/src/api/channelApi/salesOrganizationApi.js b/front-end/src/api/channelApi/salesOrganizationApi.js deleted file mode 100644 index cbb5b42..0000000 --- a/front-end/src/api/channelApi/salesOrganizationApi.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * SalesOrganization Manage : 销售组织管理 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/schl/v1/channel/salesOrganization', - items: [ - /** - * 新增经销商 - */ - { key: 'addSalesOrganization', url: '/add', method: 'POST' }, - /** - * 删除经销商信息 - */ - { key: 'deleteSalesOrganization', url: '/delete', method: 'POST' }, - /** - * 根据Id获取经销商信息信息 - */ - { - key: 'getSalesOrganizationDetails', - url: '/details', - method: 'GET', - }, - /** - * 分页获取信息 - */ - { key: 'getSalesOrganizationPage', url: '/list', method: 'GET' }, - /** - * 修改销售组织 - */ - { key: 'updateSalesOrganization', url: '/update', method: 'POST' }, - /** - * 禁用 OR 启用 - */ - { key: 'operationSalesOrganization', url: '/operation', method: 'POST', type: 'query' }, - /** - * 根据租户Id获取销售组织信息 - */ - { key: 'getSalesOrganizationByTenantId', url: '/getByTenantId', method: 'GET' }, - /** - * 批量删除数据 - */ - { key: 'batchDeleteSalesOrganization', url: '/deletes', method: 'POST' }, - /** - * 公司列表树 - */ - { key: 'getSalesOrganizationTree', url: '/listOfTree', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/channelApi/shopManageApi.js b/front-end/src/api/channelApi/shopManageApi.js deleted file mode 100644 index e0ac749..0000000 --- a/front-end/src/api/channelApi/shopManageApi.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-08-06 13:46:48 - * @LastEditTime: 2021-10-19 13:46:07 - * @LastEditors: your name - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\channelApi\shopManageApi.js - */ -/** - * Physical Shop Manage : 门店管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/schl/v1', - items: [ - /** - * 查询列表 - */ - { key: 'getAllShopPage', url: '/shop/page', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/channelApi/shopOnlineApi.js b/front-end/src/api/channelApi/shopOnlineApi.js deleted file mode 100644 index 2532af8..0000000 --- a/front-end/src/api/channelApi/shopOnlineApi.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Online Shop Manage : 网店管理 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/schl/v1/online/shop', - items: [ - /** - * 查询列表 - */ - { key: 'getOnlineShopPage', url: '/page', method: 'get' }, - /** - * 网店设置 - */ - { key: 'setOnlineShop', url: '/setting', method: 'POST' }, - - /** - * 查询网店设置 - */ - { key: 'getOnlineShopSetting', url: '/get/setting', method: 'GET' }, - - /** - * 新增与修改 - */ - { key: 'saveOnlineShop', url: '/save', method: 'POST' }, - /** - * 禁用 OR 启用 - */ - { key: 'operationOnlineShop', url: '/operation', method: 'POST', type: 'query' }, - /** - * 查询详情 - */ - { key: 'getOnlineShopDetails', url: '/details', method: 'GET' }, - /** - * 删除数据 - */ - { key: 'deleteOnlineShop', url: '/delete', method: 'POST', type: 'query' }, - /** - * 批量删除数据 - */ - { key: 'batchDeleteOnlineShop', url: '/deletes', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/channelApi/shopPhysicalApi.js b/front-end/src/api/channelApi/shopPhysicalApi.js deleted file mode 100644 index 4af1854..0000000 --- a/front-end/src/api/channelApi/shopPhysicalApi.js +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Physical Shop Manage : 门店管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/schl/v1/physical/shop', - items: [ - /** - * 查询列表 - */ - { key: 'getPhysicalShopPage', url: '/page', method: 'get' }, - /** - * 网店设置 - */ - { key: 'setPhysicalShop', url: '/setting', method: 'POST' }, - /** - * 新增与修改 - */ - { key: 'addPhysicalShop', url: '/save', method: 'POST' }, - /** - * 禁用 OR 启用 - */ - { key: 'operationPhysicalShop', url: '/operation', method: 'POST', type: 'query' }, - /** - * 查询详情 - */ - { key: 'getPhysicalShopDetails', url: '/details', method: 'GET' }, - /** - * 删除数据 - */ - { key: 'deletePhysicalShop', url: '/delete', method: 'POST', type: 'query' }, - /** - * 批量删除数据 - */ - { key: 'batchDeletePhysicalShop', url: '/deletes', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/channelApi/warehouseApi.js b/front-end/src/api/channelApi/warehouseApi.js deleted file mode 100644 index 03d0c77..0000000 --- a/front-end/src/api/channelApi/warehouseApi.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-06-29 09:18:37 - * @LastEditTime: 2021-10-12 11:41:39 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\channelApi\warehouseApi.js - */ -/** - * Warehouse Manage : 渠道仓库管理 - */ -import { generate } from '@/utils/request'; -const config = { - // prefix: '/schl/v1/channel/warehouse', - prefix: 'stock/v1/storage/area', - items: [ - /** - * 新增渠道仓库 - */ - { key: 'addWarehouse', url: '', method: 'POST' }, - /** - * 根据Id获取渠道仓库信息 - */ - { key: 'getWarehouseDetails', url: '/{id}', method: 'GET' }, - /** - * 分页获取渠道仓库信息 - */ - { key: 'getWarehousePage', url: '', method: 'GET' }, - /** - * 修改渠道仓库 - */ - { key: 'updateWarehouse', url: '', method: 'PUT' }, - /** - * 禁用 OR 启用 - */ - { key: 'operationWarehouse', url: '/operation', method: 'POST', type: 'query' }, - /** - * 批量删除数据 - */ - { key: 'batchDeleteWarehouse', url: '/batchDelete', method: 'PATCH' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/commonApi/areaApi.js b/front-end/src/api/commonApi/areaApi.js deleted file mode 100644 index 6643f8b..0000000 --- a/front-end/src/api/commonApi/areaApi.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-06-29 09:18:37 - * @LastEditTime: 2021-09-10 17:52:10 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\commonApi\areaApi.js - */ -/** - * CnareaAdministrativeDivision Manage : 中国行政区划分管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/spfm/v1', - items: [ - /** - * 获取省市 - */ - { key: 'getDistrictTree', url: '/cnareaAdministrativeDivision/getDistrictTree', method: 'GET' }, - /** - * 获得省级行政区信息 - */ - { key: 'getProvince', url: '/cnareaAdministrativeDivision/getProvince', method: 'GET' }, - /** - * 获得市级及以下行政区信息 - */ - { key: 'getCity', url: '/cnareaAdministrativeDivision/getCity', method: 'GET' }, - /** - * 根据Id获取中国行政地区表信息 - */ - { - key: 'getAreaDetails', - url: '/cnareaAdministrativeDivision/details', - method: 'GET', - }, - /** - * 修改中国行政地区表 - */ - { key: 'updateArea', url: '/cnareaAdministrativeDivision/update', method: 'POST' }, - /** - * 删除中国行政地区表 - */ - { - key: 'deleteArea', - url: '/cnareaAdministrativeDivision/delete', - method: 'POST', - type: 'query', - }, - /** - * 新增中国行政地区表 - */ - { key: 'addArea', url: '/cnareaAdministrativeDivision/add', method: 'POST' }, - // 语言列表 - { key: 'getLanguages', url: '/languages/list', method: 'GET' }, - /** 数据源 */ - { key: 'getDatasource', url: '/{organizationId}/datasources', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/commonApi/index.js b/front-end/src/api/commonApi/index.js deleted file mode 100644 index cb6b157..0000000 --- a/front-end/src/api/commonApi/index.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 渠道模块接口 - */ - -import areaApi from './areaApi'; -import optionApi from './optionApi'; -import settingApi from './settingApi'; -import loginApi from './loginApi'; - -export default { - ...areaApi, - ...optionApi, - ...settingApi, - ...loginApi, -}; diff --git a/front-end/src/api/commonApi/loginApi.js b/front-end/src/api/commonApi/loginApi.js deleted file mode 100644 index 312b7d3..0000000 --- a/front-end/src/api/commonApi/loginApi.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * CnareaAdministrativeDivision Manage : 中国行政区划分管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/oauth', - items: [ - /** - * - * @access_token // http://api.skyer.org/oauth/logout?access_token=bf4411f3-95db-45f4-87c1-c179ab39e7ed - */ - { key: 'logout', url: '/logout', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/commonApi/optionApi.js b/front-end/src/api/commonApi/optionApi.js deleted file mode 100644 index d46e159..0000000 --- a/front-end/src/api/commonApi/optionApi.js +++ /dev/null @@ -1,100 +0,0 @@ -/** - * CnareaAdministrativeDivision Manage : 中国行政区划分管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '', - items: [ - /** - * 获取值集值 - * @lovCode - * SCHL.CHANNEL_TYPE 渠道类型 - * SCHL.SHOP_TYPE 店铺类型 - * SCHL.INVOICE_TYPE 发票种类 - */ - { key: 'getLovsValue', url: '/spfm/v1/lovs/value', method: 'GET', loadingHide: true }, - /** - * 商品分类管理-获取全部分类 - */ - { - key: 'getAllCategory', - url: '/sgoo/v1/categorys/tree', - method: 'POST', - loadingHide: true, - }, - /** - * 商品分页 - */ - { key: 'getPageGoods', url: '/sgoo/v1/goods/manager/page', method: 'post' }, - /** - * 品牌分页 - */ - { key: 'getPageBrand', url: '/sgoo/v1/goods/brand/page', method: 'post', loadingHide: true }, - /** - * 仓库 - */ - { - key: 'getListWarehouses', - url: '/stock/v1/warehouses/list-warehouse', - method: 'POST', - loadingHide: true, - }, - { - key: 'getListStorage', - url: '/stock/v1/storage/area', - method: 'GET', - loadingHide: true, - }, - /** - * 素材分页获取 - */ - { - key: 'getPageMaterial', - url: '/sgoo/v1/goods/material/list', - method: 'GET', - loadingHide: true, - }, - /** - * 查询全部属性 - */ - { key: 'getListAttribute', url: '/sgoo/v1/goods/attribute/list', method: 'POST' }, - - /** - * 执行器分页 - */ - { key: 'getExecutorList', url: '/ssdr/v1/executors', method: 'GET' }, - - /** - * 登录用户 - 查询可访问的租户列表 - */ - { - key: 'getTenants', - url: '/iam/skyer/v1/users/self-tenants', - method: 'GET', - }, - /** - * 并发可执行列表 - */ - { key: 'getExecutableList', url: '/ssdr/v1/executables', method: 'GET' }, - /** - * 并发可执行列表 - */ - { key: 'getInstallServices', url: '/sgoo/v1/install-services', method: 'GET' }, - - /** - * 标签列表 ?systemLabelFlag=true - */ - { key: 'getTags', url: '/tags/v1/labels/labelList', method: 'GET', loadingHide: true }, - - /** - * 售后原因列表 type 0 仅退款;1 退货退款 - */ - { key: 'getAfterSalesReasons', url: '/sord/v1/after-sales-reasons/list', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/commonApi/settingApi.js b/front-end/src/api/commonApi/settingApi.js deleted file mode 100644 index e8da2e2..0000000 --- a/front-end/src/api/commonApi/settingApi.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * CnareaAdministrativeDivision Manage : 中国行政区划分管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - /** - * 保存列表动态标题 - */ - { key: 'saveTabulation', url: '/v1/tabulation/save', method: 'POST', loadingHide: true }, - /** - * 获取用户动态标题 - */ - { key: 'getTabulation', url: '/v1/tabulation/list', method: 'GET', loadingHide: true }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/financeApi/checkingApi.js b/front-end/src/api/financeApi/checkingApi.js deleted file mode 100644 index 58b6986..0000000 --- a/front-end/src/api/financeApi/checkingApi.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Account Checking Manage : 对账管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sfin/v1', - items: [ - // 对账列表 - { key: 'getAccountCheckingList', url: '/account/checking/list', method: 'POST' }, - // 确认对账 - { key: 'notarizeAccountChecking', url: '/account/checking/notarize', method: 'POST' }, - - // 已对账列表 - { key: 'getAccountCheckingFinish', url: '/account/checking/finish', method: 'POST' }, - // 已对账详情 - { key: 'detailAccountCheckingFinish', url: '/account/checking/detail/{id}', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/financeApi/index.js b/front-end/src/api/financeApi/index.js deleted file mode 100644 index b269961..0000000 --- a/front-end/src/api/financeApi/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import parseStrategyApi from './parseStrategyApi'; -import checkingApi from './checkingApi'; - -export default { - ...parseStrategyApi, - ...checkingApi, -}; diff --git a/front-end/src/api/financeApi/parseStrategyApi.js b/front-end/src/api/financeApi/parseStrategyApi.js deleted file mode 100644 index 067ae99..0000000 --- a/front-end/src/api/financeApi/parseStrategyApi.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Brand Manage : 渠道仓库管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sfin/v1', - items: [ - // 平台账单(原始)-天猫 - { key: 'getOriginalBillTmallsPage', url: '/original/bill/tmalls/page', method: 'POST' }, - // 获取查询条件栏数据-天猫 - { - key: 'getOriginalBillTmallsQueryData', - url: '/original/bill/tmalls/query/data', - method: 'GET', - }, - - // 自动导入到正式表,一次执行三个流程(同步) - { - key: 'importOriginalBillTmalls', - url: '/{organizationId}/import/data/sync/auto-import?templateCode=SFIN.BILL_TM', - method: 'POST', - type: 'form', - }, - // 平台账单(原始)-京东 - { key: 'getOriginalBillJdsPage', url: '/original/bill/jds/page', method: 'POST' }, - // 获取查询条件栏数据-京东 - { key: 'getOriginalBillJdsQueryData', url: '/original/bill/jds/query/data', method: 'GET' }, - // 自动导入到正式表,一次执行三个流程(同步) - { - key: 'importOriginalBillJds', - url: '/{organizationId}/import/data/sync/auto-import?templateCode=SFIN.BILL_JD', - method: 'POST', - type: 'form', - }, - - // 平台账单管理 - { key: 'getBillsPage', url: '/bills/page', method: 'POST' }, - // 获取查询条件栏数据-平台账单管理 - { key: 'getBillsQueryData', url: '/bills/query/data', method: 'GET' }, - - // 新增、修改解析规则 - { key: 'saveParsingStrategys', url: '/parsing-strategys/save', method: 'PUT' }, - // 分页 - { key: 'getParsingStrategysPage', url: '/parsing-strategys/page', method: 'POST' }, - // 详情 - { key: 'getParsingStrategysDetail', url: '/parsing-strategys/detail/{id}', method: 'GET' }, - // 启用/禁用 - { - key: 'updateParsingStrategysStatus', - url: '/parsing-strategys/batch/enable', - method: 'PATCH', - }, - // 根据渠道类型编码,获取字段集 - { - key: 'getBasicSettingFieldList', - url: '/basic/setting/field/list', - method: 'GET', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/attributeApi.js b/front-end/src/api/goodsApi/attributeApi.js deleted file mode 100644 index dad6d86..0000000 --- a/front-end/src/api/goodsApi/attributeApi.js +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Attribute Manage : 渠道仓库管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/goods/attribute', - items: [ - /** - * 新增 - */ - { key: 'addAttribute', url: '/attribute', method: 'POST' }, - // /** - // * 删除 - // */ - // { key: 'deleteAttribute', url: '/delete', method: 'DELETE', type: 'query' }, - /** - * 分页 - */ - { key: 'getPageAttribute', url: '/page', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateAttribute', url: '/attribute', method: 'PUT' }, - /** - * 根据Id获取 - */ - { key: 'getDetailAttribute', url: '/detail/', method: 'GET' }, - /** - * 批量删除 - */ - { key: 'batchDeleteAttribute', url: '/batch-delete-attribute', method: 'PATCH' }, - /** - * 更新状态 - */ - { key: 'patchAttributeStatus', url: '/status', method: 'PATCH' }, - - /** ************************* */ - /** - * 根据分类或者商品查询所有属性及对应属性值 - * @goodsId - */ - { - key: 'getAttributeValueByGoodsId', - url: '/all-attribute-value-by-main/', - method: 'GET', - }, - /** - * 对属性添加对应属性值 - */ - { key: 'addAttributeValue', url: '/attribute-value', method: 'POST' }, - /** - * 查询属性对应的属性值 - * @attributeId - */ - { key: 'getAttributeValueByAttributeId', url: '/attribute-value/', method: 'GET' }, - /** - * 对属性更新对应属性值 - */ - { key: 'updateAttributeValue', url: '/attribute-value', method: 'POST' }, - /** - * 对属性更新对应属性值(单个) - */ - { key: 'updateSingleAttributeValue', url: '/single-attribute-value', method: 'PUT' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/attributeRelationApi.js b/front-end/src/api/goodsApi/attributeRelationApi.js deleted file mode 100644 index c158790..0000000 --- a/front-end/src/api/goodsApi/attributeRelationApi.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Attribute Manage : 渠道仓库管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/goods/attribute/relation', - items: [ - /** - * 新增 - */ - { key: 'addAttributeRelation', url: '/attribute-relation', method: 'POST' }, - - /** - * 分页 - */ - { key: 'getPageAttributeRelation', url: '/page-attribute-relation', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateAttributeRelation', url: '/attribute-relation', method: 'PUT' }, - /** - * 批量删除 - */ - { key: 'batchDeleteAttributeRelation', url: '/attribute-relation', method: 'PATCH' }, - /** - * 通过mainId查询当前属性 - */ - { key: 'getListAttributeRelation', url: '/list-attribute-relation/', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/auditApi.js b/front-end/src/api/goodsApi/auditApi.js deleted file mode 100644 index 4fc9173..0000000 --- a/front-end/src/api/goodsApi/auditApi.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * : 商品审核 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1', - items: [ - /** - * 获取商品审核 - */ - { key: 'getSkuAudit', url: '/sku-audit-settings/default', method: 'GET' }, - /** - * 修改审核 - */ - { key: 'updateSkuAudit', url: '/sku-audit-settings/update', method: 'PUT' }, - /** - * 获取sku审核列表 - */ - { key: 'getSkuAuditList', url: '/goods/sku/page', method: 'POST' }, - /** - * 获取sku审核详情 - */ - { key: 'getSkuAuditDetail', url: '/sku/audit/detail', method: 'POST' }, - /** - * sku审核 - */ - { key: 'skuAudit', url: '/sku/audit', method: 'POST', loadingMore: 100 }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/brandApi.js b/front-end/src/api/goodsApi/brandApi.js deleted file mode 100644 index ab4b7aa..0000000 --- a/front-end/src/api/goodsApi/brandApi.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Brand Manage : 渠道仓库管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/goods/brand', - items: [ - /** - * 新增 - */ - { key: 'addBrand', url: '/brand', method: 'POST' }, - /** - * 分页 - */ - { key: 'getPageBrand', url: '/page', method: 'post' }, - /** - * 修改 - */ - { key: 'updateBrand', url: '/brand', method: 'PUT' }, - /** - * 状态 - */ - { key: 'operationBrand', url: '/status', method: 'PATCH' }, - /** - * 批量删除 - */ - { key: 'batchDeleteBrand', url: '/batch-delete-brand', method: 'PATCH' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/categoryApi.js b/front-end/src/api/goodsApi/categoryApi.js deleted file mode 100644 index 7a8b913..0000000 --- a/front-end/src/api/goodsApi/categoryApi.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * - * Category Manage : 商品分类管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1', - items: [ - /** - * 新增 - */ - { key: 'addCategory', url: '/categorys/save', method: 'POST' }, - /** - * 分页 - */ - { key: 'getPageCategory', url: '/categorys/page', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateCategory', url: '/categorys/save', method: 'POST' }, - /** - * 状态 - */ - { key: 'operationCategory', url: '/categorys/update/status', method: 'POST' }, - /** - * 批量删除 - */ - { key: 'batchDeleteCategory', url: '/categorys/batch/delete', method: 'DELETE' }, - /** ************* */ - /** - * 统计分类 - */ - { key: 'getTotalCategory', url: '/total-category', method: 'POST' }, - /** - * 根据父级获取子级id - */ - { key: 'getSonCategory', url: '/list-by-front', method: 'GET' }, - /** - * 刷新分类redis - */ - { key: 'refreshCategory', url: '/category-refresh', method: 'GET' }, - /** - * 获取全部分类 - */ - { key: 'getAllCategory', url: '/categorys/tree', method: 'POST' }, - /** - * 复制上级 - */ - { - key: 'getPrentAttribute', - url: '/category/attributes/list/category/attribute', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/index.js b/front-end/src/api/goodsApi/index.js deleted file mode 100644 index d80302d..0000000 --- a/front-end/src/api/goodsApi/index.js +++ /dev/null @@ -1,33 +0,0 @@ -/* jshint esversion: 9 */ /** - * 商品模块接口 - */ - -import materialApi from './materialApi'; -import attributeApi from './attributeApi'; -import attributeRelationApi from './attributeRelationApi'; -import brandApi from './brandApi'; -import categoryApi from './categoryApi'; -import managerApi from './managerApi'; -import priceApi from './priceApi'; -import skuApi from './skuApi'; -import skuGroupApi from './skuGroupApi'; -import spuSonApi from './spuSonApi'; -import installServiceApi from './installServiceApi'; -import otherInfoApi from './otherInfoApi'; -import auditApi from './auditApi'; - -export default { - ...materialApi, - ...attributeApi, - ...attributeRelationApi, - ...brandApi, - ...categoryApi, - ...managerApi, - ...priceApi, - ...skuApi, - ...skuGroupApi, - ...spuSonApi, - ...installServiceApi, - ...otherInfoApi, - ...auditApi, -}; diff --git a/front-end/src/api/goodsApi/installServiceApi.js b/front-end/src/api/goodsApi/installServiceApi.js deleted file mode 100644 index ef95076..0000000 --- a/front-end/src/api/goodsApi/installServiceApi.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * goods-install-service : 安装服务管理 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/spu-install-services', - items: [ - { key: 'addSpuInstallServices', url: '', method: 'POST' }, - - { key: 'deleteSpuInstallServices', url: '', method: 'DELETE' }, - - { key: 'DetailSpuInstallServices', url: '/', method: 'GET' }, - - { key: 'getSpuInstallServices', url: '', method: 'GET' }, - - { key: 'updateSpuInstallServices', url: '', method: 'PUT' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/managerApi.js b/front-end/src/api/goodsApi/managerApi.js deleted file mode 100644 index 48974d7..0000000 --- a/front-end/src/api/goodsApi/managerApi.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * - * goods Manage : 商品管理 - - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/goods/manager', - items: [ - /** - * 新增 - */ - { key: 'add', url: '/goods', method: 'POST' }, - /** - * 分页 - */ - { key: 'getPage', url: '/page', method: 'post' }, - /** - * 修改 - */ - { key: 'update', url: '/goods', method: 'PUT' }, - /** - * 状态 - */ - { key: 'operation', url: '/goods', method: 'PATCH' }, - /** - * 详情 - */ - { key: 'detail', url: '/detail/', method: 'Get' }, - /** - * 批量删除 - */ - { key: 'batchDelete', url: '/batch-delete-goods', method: 'PATCH' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/materialApi.js b/front-end/src/api/goodsApi/materialApi.js deleted file mode 100644 index f196b24..0000000 --- a/front-end/src/api/goodsApi/materialApi.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Material Manage : 管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/goods/material', - items: [ - /** - * 新增 - */ - { key: 'addMaterial', url: '/add', method: 'POST' }, - /** - * 删除 - */ - { key: 'deleteMaterial', url: '/delete', method: 'DELETE', type: 'query' }, - - /** - * 分页获取 - */ - { key: 'getPageMaterial', url: '/list', method: 'GET' }, - /** - * 修改 - */ - { key: 'updateMaterial', url: '/edit', method: 'PUT' }, - /** - * 根据Id获取 - */ - { key: 'getDetailMaterial', url: '/', method: 'GET' }, - /** - * 批量删除 - */ - { key: 'batchDeleteMaterial', url: '/batch-delete', method: 'PATCH' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/otherInfoApi.js b/front-end/src/api/goodsApi/otherInfoApi.js deleted file mode 100644 index 3e45c5d..0000000 --- a/front-end/src/api/goodsApi/otherInfoApi.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * goods-spu-son : 子母商品管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/other/info', - items: [ - /** - * 新增 - */ - { key: 'addOtherInfo', url: '/save', method: 'POST' }, - /** - * 删除 - */ - { key: 'deleteOtherInfo', url: '/delete', method: 'POST' }, - - /** - * 分页获取 - */ - { key: 'getOtherInfo', url: '/page', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateOtherInfo', url: '/save', method: 'POST' }, - /** - * 修改 - */ - { key: 'detailsOtherInfo', url: '/details', method: 'GET' }, - - /** - * 禁用 OR 启用 - */ - { key: 'operationOtherInfo', url: '/operation', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/priceApi.js b/front-end/src/api/goodsApi/priceApi.js deleted file mode 100644 index 9121f3c..0000000 --- a/front-end/src/api/goodsApi/priceApi.js +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Price: 价格管理 - * - * 值集头创建 POST /v1/price/item/setting/add-head - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1', - items: [ - /** * SKU价格 */ - - // 查看商品价格列表 - { - key: 'getSkuPrices', - url: '/goods/prices/{skuCode}', - method: 'GET', - }, - { - key: 'addSkuPrices', - url: '/goods/prices', - method: 'POST', - }, - { - key: 'updateSkuPrices', - url: '/goods/prices', - method: 'PUT', - }, - { - key: 'deleteSkuPrices', - url: '/goods/prices', - method: 'DELETE', - }, - - /** * 价格项 */ - - /** - * 新增 - */ - { - key: 'addPriceItem', - url: '/price/item/setting/addValue', - method: 'POST', - }, - /** - * 分页 - */ - { key: 'getPagePriceItem', url: '/price/item/setting/page', method: 'GET' }, - /** - * 修改 - */ - { - key: 'updatePriceItem', - url: '/price/item/setting/value-update', - method: 'PUT', - }, - /** - * 租户价格项值集查询(所有数据列表) - */ - { key: 'getListPriceItem', url: '/price/item/setting', method: 'GET' }, - /** - * 删除 - */ - { - key: 'deletePriceItem', - url: '/price/item/setting/value-delete/', - method: 'DELETE', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/skuApi.js b/front-end/src/api/goodsApi/skuApi.js deleted file mode 100644 index 386e7b1..0000000 --- a/front-end/src/api/goodsApi/skuApi.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-29 14:15:07 - * @LastEditTime: 2021-08-02 14:49:28 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\goodsApi\skuApi.js - */ -/** - * goods-sku : 商品SKU - * - * 值集头创建 POST /v1/price/item/setting/add-head - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/goods/sku', - items: [ - /** - * 新增 - */ - { - key: 'addSku', - url: '', - method: 'POST', - loadingMore: 999, - }, - /** - * 分页 - */ - { key: 'getSku', url: '/page', method: 'POST' }, - /** - * 修改 - */ - { - key: 'updateSku', - url: '/update', - method: 'PUT', - }, - /** - * 根据属性创建商品sku列表 - */ - { - key: 'createSku', - url: '/createSkuList', - method: 'POST', - }, - - /** - * SKU详情 - */ - { key: 'detailSku', url: '/{id}', method: 'GET' }, - /** - * 根据商品id获取已经生成的sku - */ - { key: 'getOldSkuListBySpuId', url: '/goods/', method: 'GET' }, - /** - * 批量 提交 审核 - */ - { key: 'skuBatchSubmitAudit', url: '/batchAudit', method: 'PUT' }, - /** - * 删除 - */ - { - key: 'deleteSku', - url: '', - method: 'DELETE', - }, - - // 修改商品sku显示状态 - { - key: 'updateSkuStatus', - url: '/updateShowFlag', - method: 'PUT', - }, - - // 编辑商品价格 - { - key: 'updateSkuPrice', - url: '/sku-price', - method: 'PUT', - }, - - // 批量获取套餐明细列表 Array[ skuCode] - { - key: 'getMealsGoodsList', - url: '/meals-goods-list', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/skuGroupApi.js b/front-end/src/api/goodsApi/skuGroupApi.js deleted file mode 100644 index 6d73529..0000000 --- a/front-end/src/api/goodsApi/skuGroupApi.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * sku-group - - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/sku-groups', - items: [ - /** - * 新增 - */ - { key: 'addSkuGroup', url: '/sku-group', method: 'POST' }, - /** - * 删除 - */ - { key: 'deleteSkuGroup', url: '/group', method: 'DELETE' }, - - /** - * 分页获取 - */ - { key: 'getSkuGroup', url: '/page', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateSkuGroup', url: '/sku-group', method: 'POST' }, - /** - * 根据Id获取 - */ - { key: 'detailSkuGroup', url: '/detail/{groupId}', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/goodsApi/spuSonApi.js b/front-end/src/api/goodsApi/spuSonApi.js deleted file mode 100644 index 47d2639..0000000 --- a/front-end/src/api/goodsApi/spuSonApi.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * goods-spu-son : 子母商品管理 - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/spu-son-mums', - items: [ - /** - * 新增 - */ - { key: 'addSpuSonNum', url: '', method: 'POST' }, - /** - * 删除 - */ - { key: 'deleteSpuSonNum', url: '', method: 'DELETE' }, - - /** - * 分页获取 - */ - { key: 'getSpuSonNum', url: '', method: 'GET' }, - /** - * 修改 - */ - { key: 'updateSpuSonNum', url: '', method: 'PUT' }, - /** - * 根据Id获取 - */ - { key: 'detailSpuSonNum', url: '/', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/index.js b/front-end/src/api/index.js deleted file mode 100644 index 75c6ee1..0000000 --- a/front-end/src/api/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-06-23 10:00:10 - * @LastEditTime: 2022-04-28 10:23:35 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\index.js - */ -import commonApi from './commonApi/index'; -import userApi from './userApi/index'; -import userGroupApi from './userGroupApi/index'; -import testApi from './testApi'; -import tenantApi from './tenantApi/index'; -import roleApi from './roleApi/index'; -import authApi from './authApi/index'; -import channelApi from './channelApi/index'; -import goodsApi from './goodsApi/index'; -import settingApi from './settingApi/index'; -import messageApi from './messageApi/index'; -import stockApi from './stockApi/index'; -import baseDataApi from './baseDataApi/index'; -import worksheetApi from './worksheetApi/index'; -import logisticApi from './logisticApi/index'; -import menuApi from './menuApi/index'; -import simpApi from './simpApi/index'; -import orderApi from './orderApi'; -import strategyApi from './strategyApi'; -import tagsApi from './tagsApi'; -import promotionApi from './promotionApi'; -import afterApi from './afterApi'; -import financeApi from './financeApi'; // 财务 -import reportApi from './reportApi'; // 报表 - -export { - commonApi, - userApi, - userGroupApi, - testApi, - tenantApi, - roleApi, - authApi, - channelApi, - goodsApi, - settingApi, - messageApi, - stockApi, - baseDataApi, - worksheetApi, - logisticApi, - menuApi, - simpApi, - orderApi, - strategyApi, - tagsApi, - promotionApi, - afterApi, - financeApi, - reportApi, -}; diff --git a/front-end/src/api/logisticApi/abnormalApi.js b/front-end/src/api/logisticApi/abnormalApi.js deleted file mode 100644 index b2c928f..0000000 --- a/front-end/src/api/logisticApi/abnormalApi.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-09-08 11:16:34 - * @LastEditTime: 2021-09-14 19:44:02 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\logisticApi\abnormalApi.js - */ -/** 物流异常 */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/logistics/abnormal', - items: [ - { key: 'getLogisticAbnormal', url: '', method: 'get' }, - { key: 'getLogisticRefreshConfig', url: '/getRefreshConfig', method: 'get' }, - { key: 'updateRefreshConfig', url: '/updateRefreshConfig', method: 'PUT' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/logisticApi/businessApi.js b/front-end/src/api/logisticApi/businessApi.js deleted file mode 100644 index 0e34ae0..0000000 --- a/front-end/src/api/logisticApi/businessApi.js +++ /dev/null @@ -1,20 +0,0 @@ -/* jshint esversion: 9 */ -/** - * Logistics Businesss : 物流业务管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/logistics-businesss', - items: [ - { key: 'addLogisticsBusiness', url: '', method: 'POST' }, - { key: 'deleteLogisticsBusiness', url: '', method: 'DELETE' }, - { key: 'updateLogisticsBusiness', url: '', method: 'PUT' }, - { key: 'getLogisticsBusiness', url: '', method: 'GET' }, - { key: 'detailLogisticsBusiness', url: '/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/logisticApi/claimApi.js b/front-end/src/api/logisticApi/claimApi.js deleted file mode 100644 index 01b2ca9..0000000 --- a/front-end/src/api/logisticApi/claimApi.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-09-06 14:05:56 - * @LastEditTime: 2021-09-14 22:05:46 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\logisticApi\claim.js - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/breakage/claims', - items: [ - /** 破损理赔单列表 */ - { key: 'getLogisticClaim', url: '/page', method: 'get' }, - /** 破损理赔单明细 */ - { key: 'getLogisticClaimDetail', url: '/detail/{serialNum}', method: 'get' }, - /** 修改理赔单状态 */ - { key: 'updataLogisticClaimStatus', url: '/orderStatus', method: 'PATCH' }, - /** 修改理赔单 */ - { key: 'updataLogisticClaim', url: '/update', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/logisticApi/companyApi.js b/front-end/src/api/logisticApi/companyApi.js deleted file mode 100644 index e6c4d97..0000000 --- a/front-end/src/api/logisticApi/companyApi.js +++ /dev/null @@ -1,20 +0,0 @@ -/* jshint esversion: 9 */ -/** - * Logistics Companys : 物流商管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/logistics-companys', - items: [ - { key: 'addLogisticsCompany', url: '', method: 'POST' }, - { key: 'deleteLogisticsCompany', url: '', method: 'DELETE' }, - { key: 'updateLogisticsCompany', url: '', method: 'PUT' }, - { key: 'getLogisticsCompany', url: '', method: 'GET' }, - { key: 'detailLogisticsCompany', url: '/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/logisticApi/freightApi.js b/front-end/src/api/logisticApi/freightApi.js deleted file mode 100644 index b033409..0000000 --- a/front-end/src/api/logisticApi/freightApi.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-09-08 17:20:28 - * @LastEditTime: 2022-02-18 15:26:59 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\logisticApi\freightApi.js - */ -/* jshint esversion: 9 */ -/** - * Postage Template : 运费模板 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/postage-templates', - items: [ - { key: 'addLogisticsFreightTemplate', url: '', method: 'POST' }, - { key: 'deleteLogisticsFreightTemplate', url: '', method: 'DELETE' }, - { key: 'updateLogisticsFreightTemplate', url: '', method: 'PUT' }, - { key: 'getLogisticsFreightTemplate', url: '', method: 'GET' }, - { key: 'detailLogisticsFreightTemplate', url: '/', method: 'GET' }, - { key: 'operationLogisticsFreightTemplate', url: '/enabled', method: 'PUT' }, - - /** 模板适用物流业务、仓库 */ - { - key: 'getLogisticsFreightTemplateBusinessStorehouse', - url: '/business-storehouse', - method: 'GET', - }, - /** 查询模板已经绑定的仓库 */ - { - key: 'getBusinessStorehouse', - url: '/business-storehouse', - method: 'GET', - }, - /** 根据运费模板关联关系查物流商和物业业务 */ - { - key: 'getQueryLogistics', - url: '/query/logistics', - method: 'POST', - }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/logisticApi/index.js b/front-end/src/api/logisticApi/index.js deleted file mode 100644 index 4ccb9f6..0000000 --- a/front-end/src/api/logisticApi/index.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-08-06 13:55:19 - * @LastEditTime: 2021-09-08 17:10:17 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\stockApi\index.js - */ -/* jshint esversion: 9 */ -/** - * 模块接口 - */ - -import companyApi from './companyApi'; -import businessApi from './businessApi'; -import mappingApi from './mappingApi'; -import relationApi from './relationApi'; -import orderApi from './orderApi'; -import claimApi from './claimApi'; -import freightApi from './freightApi'; -import abnormalApi from './abnormalApi'; - -export default { - ...companyApi, - ...businessApi, - ...mappingApi, - ...relationApi, - ...orderApi, - ...claimApi, - ...freightApi, - ...abnormalApi, -}; diff --git a/front-end/src/api/logisticApi/mappingApi.js b/front-end/src/api/logisticApi/mappingApi.js deleted file mode 100644 index aaaa084..0000000 --- a/front-end/src/api/logisticApi/mappingApi.js +++ /dev/null @@ -1,20 +0,0 @@ -/* jshint esversion: 9 */ -/** - * logistics-mapping : 物流商管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/logistics/mappings', - items: [ - { key: 'addLogisticsMapping', url: '', method: 'POST' }, - { key: 'deleteLogisticsMapping', url: '/deletes', method: 'PATCH' }, - { key: 'updateLogisticsMapping', url: '', method: 'PUT' }, - { key: 'getLogisticsMapping', url: '/page', method: 'GET' }, - { key: 'detailLogisticsMapping', url: '/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/logisticApi/orderApi.js b/front-end/src/api/logisticApi/orderApi.js deleted file mode 100644 index f86dec5..0000000 --- a/front-end/src/api/logisticApi/orderApi.js +++ /dev/null @@ -1,21 +0,0 @@ -/* jshint esversion: 9 */ -/** - * Logistics Orders : 物流商管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/logistics-orders', - items: [ - { key: 'addLogisticsOrder', url: '', method: 'POST' }, - { key: 'deleteLogisticsOrder', url: '', method: 'DELETE' }, - { key: 'updateLogisticsOrder', url: '', method: 'PUT' }, - { key: 'getLogisticsOrderSales', url: '/sales', method: 'GET' }, - { key: 'getLogisticsOrderAfter', url: '/customer-service', method: 'GET' }, - { key: 'detailLogisticsOrder', url: '/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/logisticApi/relationApi.js b/front-end/src/api/logisticApi/relationApi.js deleted file mode 100644 index 7832e02..0000000 --- a/front-end/src/api/logisticApi/relationApi.js +++ /dev/null @@ -1,21 +0,0 @@ -/* jshint esversion: 9 */ -/** - * logistics-mapping : 物流商管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit/v1/logistics/relations', - items: [ - { key: 'addLogisticsRelation', url: '', method: 'POST' }, - { key: 'deleteLogisticsRelation', url: '/deletes', method: 'PATCH' }, - { key: 'updateLogisticsRelation', url: '/update', method: 'POST' }, - { key: 'getLogisticsRelation', url: '', method: 'GET' }, - { key: 'detailLogisticsRelation', url: '/', method: 'GET' }, - { key: 'getLogisticsWarehouse', url: '/warehouse', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/menuApi/index.js b/front-end/src/api/menuApi/index.js deleted file mode 100644 index dd5cdb9..0000000 --- a/front-end/src/api/menuApi/index.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Tenant(Site Level) : 租户管理(平台级) - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - // GET /skyer/v1/menus/tree菜单展示-获取导航栏树形菜单 - { key: 'treeMenu', url: '/skyer/v1/menus/tree', method: 'get' }, - - // 租户层-菜单管理-获取树形菜单 - { key: 'getMenuTree', url: '/skyer/v1/{organizationId}/menus/manage-tree', method: 'get' }, - - // 租户层-创建菜单 - - { key: 'addMenu', url: '/skyer/v1/{organizationId}/menus/create', method: 'POST' }, - - // 租户层-禁用菜单及其子菜单 - { key: 'disableMenu', url: '/skyer/v1/{organizationId}/menus/disable', method: 'PUT' }, - - // 租户层-启用菜单及其子菜单 - { key: 'enableMenu', url: '/skyer/v1/{organizationId}/menus/enable', method: 'PUT' }, - - { key: 'detailMenu', url: '/v1/tenants-manager/', method: 'GET' }, - - // 租户层-更新菜单 - { key: 'updateMenu', url: '/skyer/v1/{organizationId}/menus/update', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/messageApi/emailApi.js b/front-end/src/api/messageApi/emailApi.js deleted file mode 100644 index bc35cb7..0000000 --- a/front-end/src/api/messageApi/emailApi.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * File : 文件 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/smsg/v1', - items: [ - /** - * 获取列表 - */ - - { key: 'getEmail', url: '/{organizationId}/email/servers', method: 'GET' }, - { key: 'addEmail', url: '/{organizationId}/email/servers', method: 'POST' }, - { key: 'updateEmail', url: '/{organizationId}/email/servers', method: 'PUT' }, - { key: 'deleteEmail', url: '/{organizationId}/email/servers', method: 'DELETE' }, - // 查询邮箱服务明细 - { key: 'detailEmail', url: '/{organizationId}/email/servers/{serverId}', method: 'Get' }, - { - key: 'detailEmailConfig', - url: '/{organizationId}/email/servers/{serverId}/properties', - method: 'Get', - }, - // Email Filter : 邮箱账户黑白名单 - { key: 'getEmailFilters', url: '/{organizationId}/email-filters', method: 'GET' }, - { key: 'addEmailFilters', url: '/{organizationId}/email-filters', method: 'POST' }, - { key: 'updateEmailFilters', url: '/{organizationId}/email-filters', method: 'POST' }, - { key: 'deleteEmailFilters', url: '/{organizationId}/email-filters', method: 'DELETE' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/messageApi/index.js b/front-end/src/api/messageApi/index.js deleted file mode 100644 index ebd2323..0000000 --- a/front-end/src/api/messageApi/index.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-13 14:49:11 - * @LastEditTime: 2021-07-22 17:08:03 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\settingApi\index.js - */ -/** - * 模块接口 - */ - -import noticeApi from './noticeApi'; -import emailApi from './emailApi'; -import smsApi from './smsApi'; -import templateApi from './templateApi'; -import sendApi from './sendApi'; - -export default { - ...noticeApi, - ...emailApi, - ...smsApi, - ...templateApi, - ...sendApi, -}; diff --git a/front-end/src/api/messageApi/noticeApi.js b/front-end/src/api/messageApi/noticeApi.js deleted file mode 100644 index 4b7a33f..0000000 --- a/front-end/src/api/messageApi/noticeApi.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * File : 文件 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/smsg/v1', - items: [ - /** - * 获取列表 - */ - - { key: 'getNotices', url: '/{organizationId}/notices', method: 'GET' }, - { key: 'deleteNotices', url: '/{organizationId}/notices', method: 'DELETE' }, - { key: 'addNotices', url: '/{organizationId}/notices', method: 'POST' }, - { key: 'updateNotices', url: '/{organizationId}/notices', method: 'PUT' }, - { key: 'detailNotices', url: '/{organizationId}/notices/{noticeId}', method: 'GET' }, - // 发布 - { key: 'publishNotices', url: '/{organizationId}/notices/{noticeId}/publish', method: 'POST' }, - // 撤消 - { key: 'revokeNotices', url: '/{organizationId}/notices/{noticeId}/revoke', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/messageApi/sendApi.js b/front-end/src/api/messageApi/sendApi.js deleted file mode 100644 index c2ef64b..0000000 --- a/front-end/src/api/messageApi/sendApi.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Template Maintain : 邮箱账户与模板关系维护 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/smsg/v1', - items: [ - /** - * 获取列表 - */ - - { key: 'getSend', url: '/{organizationId}/template-servers', method: 'GET' }, - { key: 'addSend', url: '/{organizationId}/template-servers', method: 'POST' }, - { key: 'updateSend', url: '/{organizationId}/template-servers/{tempServerId}', method: 'PUT' }, - { - key: 'deleteSend', - url: '/{organizationId}/template-servers/{tempServerId}', - method: 'DELETE', - }, - // 查询邮箱服务明细 - { key: 'detailSend', url: '/{organizationId}/template-servers/detail', method: 'Get' }, - // 消息模板账户关联:查询模板行 - { - key: 'detailLineSend', - url: '/{organizationId}/template-servers/detail/line', - method: 'Get', - }, - // 消息模板账户关联:查询消息模板关联的服务 - { - key: 'getTempServerList', - url: '/{organizationId}/template-servers/line/{tempServerId}', - method: 'Get', - }, - // 删除消息模板账户行 - { - key: 'deleteLineSend', - url: '/{organizationId}/template-servers/line/{tempServerLineId}', - method: 'DELETE', - }, - // 复制消息发送配置 - { - key: 'addSendFilters', - url: '/{organizationId}/template-servers/{tempServerId}/copy', - method: 'GET', - }, - - /** * Relation Send Message : 关联发送消息 */ - // 关联发送消息,邮件/短信/站内信 - { - key: 'sendMessageRelevance', - url: '/{organizationId}/message/relevance', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/messageApi/smsApi.js b/front-end/src/api/messageApi/smsApi.js deleted file mode 100644 index 2ed9c70..0000000 --- a/front-end/src/api/messageApi/smsApi.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * SMS Server : 短信配置 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/smsg/v1', - items: [ - /** - * 发送一条短信消息,指定模板和参数 - */ - { key: 'sendSMS', url: '/{organizationId}/messages/call/template', method: 'POST' }, - // 列表 - { key: 'getSMS', url: '/{organizationId}/sms/servers', method: 'GET' }, - // 创建短信服务 - { key: 'addSMS', url: '/{organizationId}/sms/servers', method: 'POST' }, - // 删除短信配置 - { key: 'deleteSMS', url: '/{organizationId}/sms/servers', method: 'DELETE' }, - /** - * 修改短信服务 - */ - { key: 'updateSMS', url: '/{organizationId}/sms/servers', method: 'PUT' }, - /** - * 查询短信服务配置 - */ - { key: 'detailSMS', url: '/{organizationId}/sms/servers/{serverId}', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/messageApi/templateApi.js b/front-end/src/api/messageApi/templateApi.js deleted file mode 100644 index 0631286..0000000 --- a/front-end/src/api/messageApi/templateApi.js +++ /dev/null @@ -1,80 +0,0 @@ -/** - * File : 文件 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/smsg/v1', - items: [ - { key: 'getTemplates', url: '/{organizationId}/message/templates', method: 'GET' }, - { key: 'deleteTemplate', url: '/{organizationId}/message/templates', method: 'DELETE' }, - { key: 'addTemplate', url: '/{organizationId}/message/templates', method: 'POST' }, - { key: 'updateTemplate', url: '/{organizationId}/message/templates', method: 'PUT' }, - { - key: 'detailTemplate', - url: '/{organizationId}/message/templates/{templateId}', - method: 'GET', - }, - - /** * */ - - // 查询消息模板参数 - { - key: 'argsTemplate', - url: '/{organizationId}/message/templates/template-args', - method: 'GET', - }, - - // 根据编码查询消息模板明细 - { - key: 'codeTemplate', - url: '/{organizationId}/message/templates/template-code', - method: 'GET', - }, - - // 查询消息模板语言 - { - key: 'langTemplate', - url: '/{organizationId}/message/templates/template-lang', - method: 'GET', - }, - - // 消息模板复制 - { - key: 'copyTemplate', - url: '/{organizationId}/message/templates/{templateId}/copy', - method: 'GET', - }, - - /** * Template Arg 消息模板参数管理*/ - { - key: 'getTemplateArgs', - url: '/{organizationId}/template-args/{templateId}', - method: 'GET', - }, - - { - key: 'deleteTemplateArgs', - url: '/{organizationId}/template-args', - method: 'DELETE', - }, - { - key: 'updateTemplateArgs', - url: '/{organizationId}/template-args', - method: 'PUT', - }, - // 初始化消息模板参数列表 - { - key: 'initTemplateArgs', - url: '/{organizationId}/template-args/init', - type: 'query', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/auditApi.js b/front-end/src/api/orderApi/auditApi.js deleted file mode 100644 index b963371..0000000 --- a/front-end/src/api/orderApi/auditApi.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-11-03 17:08:17 - * @LastEditTime: 2022-02-24 13:28:45 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\audit.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1/', - items: [ - { key: 'getWaitAuditOrders', url: '/order-header/wait-audit-orders', method: 'GET' }, - { - key: 'getWaitAuditOrdersTabs', - url: '/order-flow-config/get-order-flow-confiy-by-tenantId/{tenantId}', - method: 'GET', - }, - // { key: 'AuditWaitAuditOrders', url: '/order-header/audit-order', method: 'PUT' }, - /** 订单审核列表 */ - { key: 'getOrderAuditPage', url: '/order/order-audit-page', method: 'POST' }, - /** 订单审核 */ - { key: 'orderAuditdeal', url: '/audit/deal', method: 'POST', loadingMore: 999 }, - - // 获取订单Item列表(某订单的SKU汇总) - { - key: 'getInternalSkuListByAuditId', - url: '/audit/order-item-page', - method: 'POST', - }, - // 获取订单平摊行列表(某订单的商品行列表) - { key: 'getInternalSkuLineListByAuditId', url: '/audit/item-line-page', method: 'POST' }, - // 展开行:根据itemId获取平摊商品行列表(某订单的某SKU的商品行列表) - { - key: 'getInternalSkuLineListByAuditIdSku', - url: '/audit/item-line-details/{itemId}/{auditId}', - method: 'GET', - loadingHide: true, - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/index.js b/front-end/src/api/orderApi/index.js deleted file mode 100644 index e77b37f..0000000 --- a/front-end/src/api/orderApi/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @Author: 订单模块 - * @Date: 2021-10-19 10:27:31 - * @LastEditTime: 2022-04-21 15:36:00 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\index.js - */ -import internalApi from './internalApi'; -import stockoutApi from './stockoutApi'; -import auditApi from './auditApi'; -import processApi from './processApi'; -import sourcingApi from './sourcingApi'; -import preemptApi from './preemptApi'; -import itemPriceApi from './itemPriceApi'; -import thirdApi from './thirdApi'; - -export default { - ...internalApi, - ...stockoutApi, - ...processApi, - ...auditApi, - ...sourcingApi, - ...preemptApi, - ...itemPriceApi, - ...thirdApi, -}; diff --git a/front-end/src/api/orderApi/internalApi.js b/front-end/src/api/orderApi/internalApi.js deleted file mode 100644 index 19fae0f..0000000 --- a/front-end/src/api/orderApi/internalApi.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-19 10:27:23 - * @LastEditTime: 2022-04-25 15:36:26 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\internal.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1', - items: [ - // 创建手工单 - { key: 'addInternalOrderByHand', url: '/order/hand-order', method: 'POST', loadingMore: 999 }, - // 复制手工单 - { - key: 'addInternalOrderByCopy', - url: '/order/copy-order?innerOrderNo={innerOrderNo}', - method: 'GET', - }, // innerOrderNo - // 内部订单列表 - { key: 'getInternalPage', url: '/order/order-page', method: 'POST' }, - // 订单详情订单基本信息 - { key: 'getInternalDetail', url: '/order/order-base-detail/{orderId}', method: 'GET' }, - // 订单详情订单基本信息{"orderCode": "string","orderId": 0} - { - key: 'getInternalDetailByIdCode', - url: '/order/order-base-detail-by-id-code', - method: 'POST', - }, - // 获取订单Item列表(某订单的SKU汇总) - { - key: 'getInternalSkuListByOrder', - url: '/order/order-item-page', - method: 'POST', - }, - // 获取订单平摊行列表(某订单的商品行列表) - { key: 'getInternalSkuLineListByOrder', url: '/order/item-line-page', method: 'POST' }, - // 展开行:根据itemId获取平摊商品行列表(某订单的某SKU的商品行列表) - - { - key: 'getInternalSkuLineListBySku', - url: '/order/item-line-details/{itemId}', - method: 'GET', - loadingHide: true, - }, - /** 订单审核(通过,拒绝) */ - { key: 'auditOrder', url: '/order-header/audit-order', method: 'PUT' }, - /** 订单商品行审核(通过, 拒绝) */ - { key: 'auditGoodsLineAuditOrder', url: '/order-header/goods-line-audit-order', method: 'PUT' }, - /** 订单挂起/解挂 */ - { key: 'upOrderHandUpOrder', url: '/order-header/order-hand-up', method: 'PUT' }, - /** 订单商品行挂起/解挂 */ - { key: 'upGoodsLineHandUpOrder', url: '/order-header/goods-line-hand-up', method: 'PUT' }, - - /** 订单基础信息的修改 */ - { key: 'updateOrderBase', url: '/order/order-base', method: 'PUT' }, - - /** 订单取消 普通订单 */ - { key: 'cancelInternalOrder', url: '/order/cancel-order', method: 'PATCH' }, - /** 订单取消 O2O */ - { key: 'cancelInternalO2oOrder', url: '/order/cancel-o2o-order', method: 'PATCH' }, - /** 订单级挂起 */ - { key: 'suspendOrderByOrderId', url: '/order/suspend-order', method: 'POST' }, - /** 订单级解挂 */ - { key: 'unsuspendOrderByOrderId', url: '/order/unsuspend-order', method: 'POST' }, - /** 商品行级挂起/解挂 */ - { key: 'suspendOrderByItemLine', url: '/order/itemLine-suspend-order', method: 'POST' }, - /** 商品行级预占/解占 */ - { key: 'preemptionOrderByItemLine', url: '/order/re-preemption', method: 'POST' }, - - /** 订单级-确认收货 普通订单 */ - { key: 'confirmReceiptByOrderId', url: '/order/confirm-receipt/', method: 'PATCH' }, - - /** 订单级-确认收货 o2o */ - { key: 'o2oConfirmReceiptByOrderId', url: '/order/o2o-confirm-receipt', method: 'POST' }, - - /** 商品行级-确认收货 */ - { key: 'confirmReceiptByItemLine', url: '/order/item-confirm-receipt', method: 'POST' }, - - // 内部订单缺货管理列表 - { key: 'getInternalStockoutPage', url: '/order/stockout-page', method: 'POST' }, - - /** 缺货统计列表 */ - { key: 'getOrderStatsStockout', url: '/order/stats/stockout', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/itemPriceApi.js b/front-end/src/api/orderApi/itemPriceApi.js deleted file mode 100644 index 9efa95a..0000000 --- a/front-end/src/api/orderApi/itemPriceApi.js +++ /dev/null @@ -1,10 +0,0 @@ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1', - items: [{ key: 'getPriceType', url: '/item-prices/price-type', method: 'GET' }], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/preemptApi.js b/front-end/src/api/orderApi/preemptApi.js deleted file mode 100644 index c8389bc..0000000 --- a/front-end/src/api/orderApi/preemptApi.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-19 10:27:23 - * @LastEditTime: 2021-11-12 17:30:54 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\internal.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1', - items: [ - /** 预占管理 */ - // 列表 - { key: 'getPreemptionOrders', url: '/preemp-notice/preemp-page', method: 'POST' }, - // 详情-基本信息 - { - key: 'getPreemptionOrderDetail', - url: '/preemp-notice/preemp-notice-details/', - method: 'GET', - }, - // 详情-SKU汇总 - { - key: 'getPreemptionOrderSkuListByOrder', - url: '/preemp-notice/items-page', - method: 'POST', - }, - // 详情-商品行预占统计 - { - key: 'getPreemptionOrderSkuCountByOrder', - url: '/preemp-notice/item-lines-count', - method: 'POST', - loadingHide: true, - }, - // 详情-商品行列表 - { - key: 'getPreemptionOrderSkuLineListByOrder', - url: '/preemp-notice/item-lines-page', - method: 'POST', - }, - // 详情-展开行:根据itemId获取平摊商品行列表(某订单的某SKU的商品行列表) - { - key: 'getPreemptionOrderSkuLineListBySku', - url: '/preemp-notice/item-lines/{itemId}', - method: 'GET', - loadingHide: true, - }, - // 重新预占 - { - key: 'rePreemptOrderByNoticeId', - url: '/preemp-notice/re-preemption?noticeId={noticeId}', // noticeId - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/processApi.js b/front-end/src/api/orderApi/processApi.js deleted file mode 100644 index 70d3781..0000000 --- a/front-end/src/api/orderApi/processApi.js +++ /dev/null @@ -1,18 +0,0 @@ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1/process-defines', - items: [ - { key: 'addOrderProcessDefines', url: '', method: 'POST' }, - { key: 'deleteOrderProcessDefines', url: '', method: 'DELETE' }, - { key: 'updateOrderProcessDefines', url: '', method: 'PUT' }, - { key: 'getOrderProcessDefines', url: '', method: 'GET' }, - { key: 'detailOrderProcessDefines', url: '/', method: 'GET' }, - // 流程部署 - { key: 'deploymentOrderProcessDefines', url: '/deploy-process/', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/sourcingApi.js b/front-end/src/api/orderApi/sourcingApi.js deleted file mode 100644 index ae291e8..0000000 --- a/front-end/src/api/orderApi/sourcingApi.js +++ /dev/null @@ -1,120 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-19 10:27:23 - * @LastEditTime: 2022-04-14 10:53:09 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\internal.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sourcing/v1', - items: [ - /** 寻源列表 */ - { key: 'getOrderSourcingPage', url: '/sourcing/page', method: 'POST' }, - /** 寻源详情 */ - { key: 'getOrderSourcingDetail', url: '/sourcing/detail', method: 'GET' }, - - /** 寻源详情 按商品行汇总 sourcingId */ - { key: 'getOrderSourcingSkuListByOrder', url: '/sourcing/goods/page/spu', method: 'GET' }, - - /** 寻源详情 按照商品行分页查询列表 sourcingId */ - { key: 'getOrderSourcingSkuLineListByOrder', url: '/sourcing/goods/page', method: 'GET' }, - - /** 寻源详情 商品行汇总展开列表 skuCode */ - { - key: 'getOrderSourcingSkuLineListBySku', - url: '/sourcing/goods/listBySkuCode', - method: 'GET', - loadingHide: true, - }, - /** 创建寻源包裹 */ - { - key: 'addSourcingPackages', - url: '/sourcing/packages', - method: 'POST', - }, - /** 重新寻源 */ - { - key: 'reAutoSource', - url: '/sourcing/re-auto-source/{sourceId}', - method: 'GET', - }, - { - key: 'reAutoSourceBatch', - url: '/sourcing/re-auto-source', - method: 'PATCH', - }, - - /** **** 配置 ******** */ - // 寻源策略-寻源规则 列表 - { - key: 'getSouringStrategyConfigs', - url: '/souring-strategy-configs', - method: 'GET', - loadingHide: true, - }, - // 寻源策略-寻源规则 修改 - { - key: 'updateSouringStrategyConfigs', - url: '/souring-strategy-configs', - method: 'PUT', - loadingHide: true, - }, - // 寻源策略-寻源规则 批量修改 - { - key: 'updateSouringStrategyConfigsBatch', - url: '/souring-strategy-configs/batch-update', - method: 'PATCH', - loadingHide: true, - }, - - // 寻源策略-包裹规则 列表 - { - key: 'getSouringStrategyPackage', - url: '/package-strategy', - method: 'GET', - }, - // 寻源策略-包裹规则 批量删除 - { - key: 'deleteSouringStrategyPackageBatch', - url: '/package-strategy', - method: 'DELETE', - }, - // 寻源策略-包裹规则 批量创建 - { - key: 'addSouringStrategyPackageBatch', - url: '/package-strategy', - method: 'POST', - }, - // 寻源策略-包裹规则 批量修改 - { - key: 'updateSouringStrategyPackageBatch', - url: '/package-strategy/batch-update-split', - method: 'PATCH', - }, - // 寻源策略-包裹规则 排除条件配置列表 - { - key: 'getSouringStrategyPackageExcludes', - url: '/souring-exclude-strategy', - method: 'GET', - }, - // 寻源策略-包裹规则 排除条件配置列表 - { - key: 'updateSouringStrategyPackageExcludes', - url: '/souring-exclude-strategy', - method: 'PUT', - }, - // 寻源策略-包裹规则 排除条件配置列表 - { - key: 'addSouringStrategyPackageExcludes', - url: '/souring-exclude-strategy', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/stockoutApi.js b/front-end/src/api/orderApi/stockoutApi.js deleted file mode 100644 index 45d0c4f..0000000 --- a/front-end/src/api/orderApi/stockoutApi.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-28 10:59:27 - * @LastEditTime: 2022-04-25 16:57:39 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\stockoutApi.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/stock/v1', - items: [ - /** 缺货管理列表 */ - { key: 'getStockoutManageList', url: '/stockout/manage/page', method: 'POST' }, - /** 缺货订单列表 */ - { key: 'getStockoutOrderList', url: '/stockout/order/page', method: 'POST' }, - /** 缺货店铺列表 */ - { key: 'getStockoutShopList', url: '/stockout/shop/page', method: 'POST' }, - /** 批量保存 */ - { key: 'saveStockoutList', url: '/stockout/batch/setting', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/orderApi/thirdApi.js b/front-end/src/api/orderApi/thirdApi.js deleted file mode 100644 index c000bb9..0000000 --- a/front-end/src/api/orderApi/thirdApi.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-19 10:27:23 - * @LastEditTime: 2022-04-24 09:56:32 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\internal.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/sord/v1', - items: [ - // 创建第三方订单头 - { key: 'addThirdOrderByHand', url: '/third-order/create', method: 'POST' }, - // 获取第三方订单列表 - { key: 'getThirdOrderPage', url: '/third-order/page', method: 'POST' }, - // 获取第三方订单详情 - { key: 'getThirdOrderDetail', url: '/third-order/detail', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/promotionApi/index.js b/front-end/src/api/promotionApi/index.js deleted file mode 100644 index 1252983..0000000 --- a/front-end/src/api/promotionApi/index.js +++ /dev/null @@ -1,6 +0,0 @@ -// 赠品活动 -import promoActivityApi from './promoActivityApi'; - -export default { - ...promoActivityApi, -}; diff --git a/front-end/src/api/promotionApi/promoActivityApi.js b/front-end/src/api/promotionApi/promoActivityApi.js deleted file mode 100644 index 9ec0aa1..0000000 --- a/front-end/src/api/promotionApi/promoActivityApi.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * File : 文件 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/spro/v1', - items: [ - // 赠品活动列表 - { key: 'getPromoActivityPage', url: '/activity/page', method: 'POST' }, - // 赠品活动详情 - { key: 'getPromoActivityDetail', url: '/activity/detail', method: 'GET' }, - // 新建赠品活动 - { key: 'addPromoActivity', url: '/activity/create', method: 'POST' }, - // 修改赠品活动 - { key: 'updatePromoActivity', url: '/activity/update', method: 'PUT' }, - // 修改赠品活动状态 - { key: 'updatePromoActivityStatus', url: '/activity/updateStatus', method: 'PUT' }, - // 参与活动商品sku - { - key: 'getPromoActivitySkuCodeMap', - url: '/activity/sku/skuCodeMap', - method: 'POST', - loadingHide: true, - }, - - /** - * 随品规则 - */ - // 随品规则 新增 - { key: 'addPromotionGiftRules', url: '/gift/rules/create', method: 'POST' }, - // 随品规则 详情 - { key: 'detailPromotionGiftRules', url: '/gift/rules/detail/', method: 'GET' }, - // 随品规则 列表 - { key: 'pagePromotionGiftRules', url: '/gift/rules/page', method: 'POST' }, - // 随品规则 删除 - { key: 'removePromotionGiftRules', url: '/gift/rules/remove/', method: 'DELETE' }, - // 随品规则 更新 - { key: 'updatePromotionGiftRules', url: '/gift/rules/update', method: 'PUT' }, - // 已有随品规则的skuCodeList - { - key: 'getPromotionGiftRulesSkuCodeMap', - url: '/gift/rules/skuCodeList', - method: 'POST', - loadingHide: true, - }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/reportApi/channelApi.js b/front-end/src/api/reportApi/channelApi.js deleted file mode 100644 index c5584b2..0000000 --- a/front-end/src/api/reportApi/channelApi.js +++ /dev/null @@ -1,11 +0,0 @@ -import { generate } from '@/utils/request'; -const config = { - prefix: '/schl/v1', - items: [ - // 店铺销售表 - { key: 'getChannelorderReport', url: '/shop/channel-order-report', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/reportApi/index.js b/front-end/src/api/reportApi/index.js deleted file mode 100644 index 52dc103..0000000 --- a/front-end/src/api/reportApi/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import orderApi from './orderApi'; -import channelApi from './channelApi'; - -export default { - ...orderApi, - ...channelApi, -}; diff --git a/front-end/src/api/reportApi/orderApi.js b/front-end/src/api/reportApi/orderApi.js deleted file mode 100644 index 629dae0..0000000 --- a/front-end/src/api/reportApi/orderApi.js +++ /dev/null @@ -1,17 +0,0 @@ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sord/v1', - items: [ - // 订单销售统计表 - { key: 'getOrderSaleReport', url: '/order-report/order-sale-report', method: 'POST' }, - // 订单销售分析表(订单每日统计表) - { key: 'getOrderDailyReport', url: '/order-report/order-daily-report', method: 'POST' }, - // 渠道销售统计表 - { key: 'getChannelSaleReport', url: '/order-report/channel-sale-report', method: 'POST' }, - // 订单商品统计表 - { key: 'getOrderItemReport', url: '/order-report/order-item-report', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/roleApi/index.js b/front-end/src/api/roleApi/index.js deleted file mode 100644 index 6c79494..0000000 --- a/front-end/src/api/roleApi/index.js +++ /dev/null @@ -1,118 +0,0 @@ -/** - * 示例 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - /** - * 角色管理-分页查询 - * @organizationId : 0 - */ - { key: 'getRoleList', url: '/skyer/v1/roles/self/manageable-roles', method: 'get' }, - /** - * 角色管理-创建角色 - * @organizationId : 0 - */ - { key: 'createRole', url: '/skyer/v1/{organizationId}/roles', method: 'POST' }, - /** - * 角色管理-编辑角色 - * @organizationId : 0 - */ - { key: 'updateRole', url: '/skyer/v1/{organizationId}/roles', method: 'PUT' }, - /** - * 角色管理-禁用角色 - * @organizationId : 0 - */ - { key: 'disableRole', url: '/skyer/v1/{organizationId}/roles/disable', method: 'PUT' }, - /** - * 角色管理-启用角色 - * @organizationId : 0 - */ - { key: 'enableRole', url: '/skyer/v1/{organizationId}/roles/enable', method: 'PUT' }, - - /** *********** 一个角色对应的用户列表 ********************* */ - /** - * 角色管理-查询角色已分配的用户 - * @organizationId : 0 - */ - { - key: 'getUserListByRoleId', - url: '/skyer/v1/{organizationId}/member-roles/role-users/{roleId}', - method: 'GET', - }, - /** *********** 一个角色对应的权限分配 ********************* */ - /** - * 权限分配 - 查询角色可分配的权限集树 - * @organizationId : 0 - */ - { - key: 'getPermissionTreeByRoleId', - url: '/skyer/v1/{organizationId}/roles/{roleId}/permission-set-tree', - method: 'GET', - }, - /** - * 权限分配 - 分配角色权限集 - * @organizationId : 0 - */ - { - key: 'assignPermissionTreeByRoleId', - url: '/skyer/v1/{organizationId}/roles/{roleId}/permission-sets/assign', - method: 'PUT', - }, - /** - * 权限分配 - 回收角色权限集 - * @organizationId : 0 - */ - { - key: 'recyclePermissionTreeByRoleId', - url: '/skyer/v1/{organizationId}/roles/{roleId}/permission-sets/recycle', - method: 'PUT', - }, - /** *********** 一个角色对应的 数据权限 ********************* */ - /** - * 角色数据权限定义 - 数据权限定义列表 - * @organizationId : 0 - */ - { - key: 'getAuthorizationsByRoleId', - url: '/v1/{organizationId}/roles/{roleId}/role-auths/{organizationId}', - method: 'GET', - }, - /** - * 角色数据权限定义 - 批量新增或保存角色数据权限定义明细 - * @organizationId : 0 - */ - { - key: 'addAuthorizationsByRoleId', - url: '/v1/{organizationId}/roles/{roleId}/role-auths', - method: 'POST', - }, - /** - * 角色数据权限定义 - 删除角色数据权限定义 - * @organizationId : 0 - */ - { - key: 'delAuthorizationsByRoleId', - url: '/v1/{organizationId}/roles/{roleId}/role-auths', - method: 'DELETE', - }, - // 获取角色菜单权限树 - { - key: 'getAllmenu', - url: '/v1/sys/menu/manage/role/menu', - method: 'GET', - }, - // 批量更新角色菜单权限数据 - { - key: 'saveRoleMenu', - url: '/v1/sys/menu/manage/role/menu/batch/save', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/fileApi.js b/front-end/src/api/settingApi/fileApi.js deleted file mode 100644 index fe033fe..0000000 --- a/front-end/src/api/settingApi/fileApi.js +++ /dev/null @@ -1,121 +0,0 @@ -/** - * File : 文件 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/sfle', - items: [ - /** - * 获取文件列表汇总 - */ - - { key: 'getFileList', url: '/v1/files/summary', method: 'GET' }, - /** - * 根据key下载文件 - */ - { - key: 'downloadFileByKey', - url: '/v1/files/download-by-key', - method: 'GET', - rType: 2, - }, - /** - * 根据key获取文件授权url - */ - { - key: 'getFileUrlByKey', - url: '/v1/files/file-url', - method: 'GET', - }, - /** - * 获取文件授权ur - */ - { - key: 'getFileUrlByUrl', - url: '/v1/files/signedUrl', - method: 'GET', - errorHide: true, - loadingHide: true, - }, - - /** - * 根据文件key预览文件 - */ - { - key: 'viewFileByKey', - url: '/v1/{organizationId}/file-preview/by-key', - method: 'GET', - rType: 2, - }, - /** - * 基于Multipart上传文件 - */ - { - key: 'uploadFiles', - url: '/v1/{organizationId}/files/multipart', - method: 'POST', - cType: 2, - }, - - /** - * 文件存储配置信息 - */ - { key: 'getFileStorageConfigs', url: '/v2/storage-configs/{storageType}', method: 'GET' }, - /** - * 新增 - */ - { key: 'createFileStorageConfigs', url: '/v2/storage-configs', method: 'put' }, - /** - * 删除 - */ - { key: 'deleteFileStorageConfigs', url: '/v2/storage-configs', method: 'DELETE' }, - - /** ** File Capacity Config : 文件容量配置**** */ - - /** - * 文件容量配置列表 - */ - { key: 'getFileCapacityConfigs', url: '/v1/{organizationId}/capacity-configs', method: 'GET' }, - - /** - * 保存文件容量配置 - */ - { - key: 'updateFileCapacityConfigs', - url: '/v1/{organizationId}/capacity-configs', - method: 'PUT', - }, - - /** - * 删除文件上传配置 - */ - { key: 'deleteUploadConfigs', url: '/v1/upload-configs', method: 'DELETE' }, - - /** - * 创建文件上传配置 - */ - { key: 'addUploadConfigs', url: '/v1/upload-configs', method: 'POST' }, - /** - * 修改文件上传配置 - */ - { key: 'updateUploadConfigs', url: '/v1/upload-configs', method: 'PUT' }, - /** - * 文件上传配置查询明细 - */ - { key: 'getUploadConfigsDetail', url: '/v1/upload-configs/detail', method: 'GET' }, - /** - * 文件上传配置明细 - */ - { - key: 'getUploadConfigsDetailById', - url: '/v1/upload-configs/{uploadConfigId}', - method: 'GET', - }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/index.js b/front-end/src/api/settingApi/index.js deleted file mode 100644 index 9b4b244..0000000 --- a/front-end/src/api/settingApi/index.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-13 14:49:11 - * @LastEditTime: 2021-10-14 13:56:18 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\settingApi\index.js - */ -/** - * 模块接口 - */ - -import strategyApi from './strategyApi'; -import schedulerApi from './schedulerApi'; -import fileApi from './fileApi'; -import instance from './instanceApi'; -import indexes from './indexes'; -import reportApi from './reportApi'; -import stockProcessApi from './stockProcessApi'; -import logistics from './logistics'; -import orderProcessApi from './orderProcessApi'; - -export default { - ...strategyApi, - ...schedulerApi, - ...fileApi, - ...instance, - ...indexes, - ...reportApi, - ...stockProcessApi, - ...logistics, - ...orderProcessApi, -}; diff --git a/front-end/src/api/settingApi/indexes.js b/front-end/src/api/settingApi/indexes.js deleted file mode 100644 index 80b4d8c..0000000 --- a/front-end/src/api/settingApi/indexes.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-20 16:07:16 - * @LastEditTime: 2021-07-28 14:45:25 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\settingApi\indexes.js - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/ssrh', - items: [ - /** 索引配置管理列表 */ - { - key: 'getIndexesList', - url: '/v1/{organizationId}/indices', - method: 'get', - }, - /** 索引配置管理列表-添加数据 */ - { - key: 'getIndexesAdd', - url: '/v1/{organizationId}/indices/with-fields', - method: 'post', - }, - /** 索引配置管理列表-详情 */ - { - key: 'getIndexesDetail', - url: '/v1/{organizationId}/index-fields/without-pages', - method: 'get', - loadingHide: true, - }, - /** 索引配置管理列表-更新状态 */ - { - key: 'updataIndexes', - url: '/v1/{organizationId}/indices/with-fields', - method: 'post', - }, - /** ************************* 查询配置 **********************************/ - /** 查询配置列表 */ - { - key: 'getInquiryList', - url: '/v1/{organizationId}/query-configs', - method: 'get', - }, - /** 配置查询 */ - { - key: 'getInquiryQuery', - url: '/v1/{organizationId}/query-configs/{configCode}/query', - method: 'post', - }, - /** 创建查询配置 */ - { - key: 'addInquiry', - url: '/v1/{organizationId}/query-configs', - method: 'post', - }, - /** 修改查询配置 */ - { - key: 'editInquiry', - url: '/v1/{organizationId}/query-configs', - method: 'put', - }, - /** 删除查询配置 */ - { - key: 'deleteInquiry', - url: '/v1/{organizationId}/query-configs', - method: 'delete', - }, - /** 获取显示字段列表 */ - { - key: 'getInquiryFieldList', - url: '/v1/{organizationId}/indices/with-fields', - method: 'get', - }, - { - key: 'addInquiryField', - url: '/v1/{organizationId}/indices/with-fields', - method: 'post', - }, - { - key: 'InquiryFieldQuery', - url: '/v1/{organizationId}/query-configs/{configCode}/query', - method: 'post', - }, - /** ************************* 索引同步 **********************************/ - /** 索引同步列表 */ - { - key: 'getIndexesSyncList', - url: '/v1/{organizationId}/index-sync-configs', - method: 'get', - }, - /** 创建索引同步配置 */ - { - key: 'AddIndexesSync', - url: '/v1/{organizationId}/index-sync-configs', - method: 'post', - }, - /** 查询索引同步配置明细 */ - { - key: 'getIndexesSyncConfigs', - url: '/v1/{organizationId}/index-sync-configs/{syncConfId}', - method: 'get', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/instanceApi.js b/front-end/src/api/settingApi/instanceApi.js deleted file mode 100644 index 07115e3..0000000 --- a/front-end/src/api/settingApi/instanceApi.js +++ /dev/null @@ -1,30 +0,0 @@ -import { generate } from '@/utils/request'; -const config = { - prefix: '/hagd', - items: [ - { - key: 'getInstancesList', - url: '/v1/sagas/instances', - method: 'get', - }, - { - key: 'getInstancesDetail', - url: '/v1/sagas/instances/{id}', - method: 'get', - }, - { - key: 'retryInstancesTask', - url: '/v1/sagas/tasks/instances/{id}/retry', - method: 'put', - }, - { - key: 'failedInstancesTask', - url: '/v1/sagas/tasks/instances/{id}/failed', - method: 'put', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/logistics.js b/front-end/src/api/settingApi/logistics.js deleted file mode 100644 index 5fe91d5..0000000 --- a/front-end/src/api/settingApi/logistics.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-09-26 17:56:19 - * @LastEditTime: 2021-09-29 18:00:22 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\settingApi\logistics.js - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/lgit', - items: [ - { key: 'updateStrategyLogistics', url: '/v1/logistics-rule-setting', method: 'PUT' }, - { key: 'getStrategyLogistics', url: '/v1/logistics-rule-setting/detail', method: 'GET' }, - /** 订单金额 */ - { key: 'getStrategyOrderAmounts', url: '/v1/strategy-order-amounts', method: 'GET' }, - { key: 'addStrategyOrderAmounts', url: '/v1/strategy-order-amounts', method: 'POST' }, - { key: 'deleteStrategyOrderAmounts', url: '/v1/strategy-order-amounts', method: 'DELETE' }, - { key: 'updateStrategyOrderAmounts', url: '/v1/strategy-order-amounts', method: 'PUT' }, - /** 指定商品 */ - { key: 'getStrategyGoods', url: '/v1/strategy-goods', method: 'GET' }, - { key: 'addStrategyGoods', url: '/v1/strategy-goods', method: 'POST' }, - { key: 'updateStrategyGoods', url: '/v1/strategy-goods', method: 'PUT' }, - { key: 'deleteStrategyGoods', url: '/v1/strategy-goods', method: 'DELETE' }, - /** 指定省市区 */ - { key: 'getStrategyZones', url: '/v1/strategy-zones', method: 'GET' }, - { key: 'addStrategyZones', url: '/v1/strategy-zones', method: 'POST' }, - { key: 'updateStrategyZones', url: '/v1/strategy-zones', method: 'PUT' }, - { key: 'deleteStrategyZones', url: '/v1/strategy-zones', method: 'DELETE' }, - { key: 'getStrategyZonesDetail', url: '/v1/strategy-zones/{id}', method: 'GET' }, - { key: 'getStrategyZonesHasSetArea', url: '/v1/strategy-zones/hasSetArea', method: 'GET' }, - /** 指定仓库 */ - { key: 'getStrategyStoreHouses', url: '/v1/strategy-storehouses', method: 'GET' }, - { key: 'addStrategyStoreHouses', url: '/v1/strategy-storehouses', method: 'POST' }, - { key: 'updateStrategyStoreHouses', url: '/v1/strategy-storehouses', method: 'PUT' }, - { key: 'deleteStrategyStoreHouses', url: '/v1/strategy-storehouses', method: 'DELETE' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/orderProcessApi.js b/front-end/src/api/settingApi/orderProcessApi.js deleted file mode 100644 index 6082463..0000000 --- a/front-end/src/api/settingApi/orderProcessApi.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-14 13:51:56 - * @LastEditTime: 2021-11-02 11:32:09 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\settingApi\processOrderApi.js - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/sord/v1/order-flow-config', - items: [ - /** 创建 */ - { key: 'addOrderFlowConfig', url: '', method: 'POST' }, - /* 删除订单流程配置(不允许删除) */ - { key: 'deleteOrderFlowConfig', url: '', method: 'DELETE' }, - /* 订单流程配置列表分页 */ - { key: 'getOrderFlowConfig', url: '', method: 'GET' }, - /* 保存订单流程配置 */ - { key: 'saveOrderFlowConfig', url: '', method: 'PUT' }, - /* 订单流程配置明细 */ - { key: 'getOrderFlowConfigDetail', url: '/{id}', method: 'GET' }, - /* 流程发布 */ - { key: 'releaseFlow', url: '/publish/{id}', method: 'PUT' }, - /* 流程下架 */ - { key: 'undercarriageRelease', url: '/undercarriage/{id}', method: 'PUT' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/reportApi.js b/front-end/src/api/settingApi/reportApi.js deleted file mode 100644 index 9f4243d..0000000 --- a/front-end/src/api/settingApi/reportApi.js +++ /dev/null @@ -1,147 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-08-06 15:12:58 - * @LastEditTime: 2021-08-17 09:46:27 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\settingApi\report.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: '/srpt', - items: [ - /** 获取数据集列表 */ - { - key: 'getReportList', - url: '/v1/{organizationId}/datasets', - method: 'get', - }, - /** 创建数据集 */ - { - key: 'addReport', - url: '/v1/{organizationId}/datasets', - method: 'post', - }, - /** 修改数据集 */ - { - key: 'editReport', - url: '/v1/{organizationId}/datasets', - method: 'put', - }, - /** 删除数据集 */ - { - key: 'deleteReport', - url: '/v1/{organizationId}/datasets', - method: 'delete', - }, - /** 数据集详情 */ - { - key: 'getReportDetail', - url: '/v1/{organizationId}/datasets/detail', - method: 'get', - }, - /** 查看报表 */ - { - key: 'lookReportDetail', - url: '/v1/{organizationId}/datasets/{dataSetId}', - method: 'get', - }, - /** 预览SQL语句 */ - { - key: 'previewReportSql', - url: '/v1/{organizationId}/datasets/preview-sql', - method: 'post', - }, - /** 获取XML示例 */ - // 暂废 - // { - // key: 'getReporXmlExample', - // url: '/v1/{organizationId}/datasets/xml-sample', - // method: 'post' - // } - /** **************************************** 报表模板管理接口部分 ************************************************/ - /** 报表模板管理列表 */ - { - key: 'getTemplateList', - url: '/v1/{organizationId}/templates', - method: 'get', - }, - { - key: 'addTemplate', - url: '/v1/{organizationId}/templates', - method: 'post', - }, - { - key: 'updateTemplate', - url: '/v1/{organizationId}/templates', - method: 'put', - }, - { - key: 'deleteTemplate', - url: '/v1/{organizationId}/templates', - method: 'delete', - }, - /** **************************************** 报表定义 ************************************************/ - /** 报表定义列表 */ - { - key: 'getDesigner', - url: '/v1/{organizationId}/reports/designer', - method: 'get', - }, - /** 新建报表定义 */ - { - key: 'addDesigner', - url: '/v1/{organizationId}/reports/designer', - method: 'post', - }, - /** 编辑报表定义 */ - { - key: 'editDesigner', - url: '/v1/{organizationId}/reports/designer', - method: 'put', - }, - /** 删除报表定义 */ - { - key: 'deleteDesigner', - url: '/v1/{organizationId}/reports/designer', - method: 'delete', - }, - /** 报表定义数据详情 */ - { - key: 'getDesignerDetail', - url: '/v1/{organizationId}/reports/designer/{reportId}', - method: 'get', - }, - /* ********************************* 报表查询 **************************************** */ - /** 报表查询列表 */ - { - key: 'getInquire', - url: '/v1/{organizationId}/reports', - method: 'get', - }, - /** 报表查看 元数据 */ - { - key: 'getInquireDetail', - url: '/v1/{organizationId}/reports/{reportUuid}', - method: 'get', - }, - /** 生成报表 */ - { - key: 'createInquireDetail', - url: '/v1/{organizationId}/reports/{reportUuid}/data', - method: 'post', - }, - /* ********************************* 报表请求 **************************************** */ - /** 报表请求列表 */ - { - key: 'getInquireRequest', - url: '/v1/{organizationId}/report-requests', - method: 'get', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/schedulerApi.js b/front-end/src/api/settingApi/schedulerApi.js deleted file mode 100644 index 9c04943..0000000 --- a/front-end/src/api/settingApi/schedulerApi.js +++ /dev/null @@ -1,220 +0,0 @@ -/** - * JobInfo : 任务 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/ssdr', - items: [ - /** - * 任务列表 - */ - { key: 'getJobInfo', url: '/v1/{organizationId}/job-info', method: 'Get' }, - /** - * 任务创建 - */ - { key: 'createJobInfo', url: '/v1/{organizationId}/job-info', method: 'POST' }, - /** - * 任务修改 - */ - { key: 'updateJobInfo', url: '/v1/{organizationId}/job-info', method: 'PUT' }, - /** - * 批量任务删除 - */ - { key: 'deleteJobInfo', url: '/v1/{organizationId}/job-info', method: 'DELETE' }, - /** - * 任务明细 - */ - { key: 'getJobInfoById', url: '/v1/{organizationId}/job-info/{jobId}', method: 'GET' }, - /** - * 任务挂起 - */ - { - key: 'pauseJobInfo', - url: '/v1/{organizationId}/job-info/pause', - method: 'POST', - type: 'query', - }, - /** - * 恢复任务 - */ - { - key: 'resumeJobInfo', - url: '/v1/{organizationId}/job-info/resume', - method: 'POST', - type: 'query', - }, - /** - * 终止任务 - */ - { - key: 'stopJobInfo', - url: '/v1/{organizationId}/job-info/stop', - method: 'POST', - type: 'query', - }, - /** - * 立即执行 - */ - { - key: 'triggerJobInfo', - url: '/v1/{organizationId}/job-info/trigger', - method: 'POST', - type: 'query', - }, - /** ******** Job Log : 任务日志 ************* */ - /** - * 任务日志列表 - */ - { key: 'getJobLogs', url: '/v1/{organizationId}/job-logs', method: 'Get' }, - /** - * 单条删除日志 - */ - { key: 'deleteJobLogs', url: '/v1/{organizationId}/job-logs', method: 'DELETE' }, - - // POST /v1/{organizationId}/job-logs/callback - // 客户端日志回写 - - // DELETE /v1/{organizationId}/job-logs/clear - // 日志清理 - - // GET /v1/{organizationId}/job-logs/{jobId}/logs - // 单个任务日志列表 - - // GET /v1/{organizationId}/job-logs/{logId}/error-detail - // 查询任务异常详情 - - // GET /v1/{organizationId}/job-logs/{logId}/log-detail - // 查询任务日志详情 - - // GET /v1/{organizationId}/job-logs/{logId}/progress - // 查询任务进度 - - /** - * Executor(Site Level) : 任务执行器(平台级) - * - */ - - /** - * 删除执行器 - */ - { key: 'deleteExecutors', url: '/v1/executors', method: 'DELETE' }, - - /** - * 查询执行器列表 - */ - { key: 'getExecutors', url: '/v1/executors', method: 'GET' }, - /** - * 创建执行器 - */ - { key: 'addExecutors', url: '/v1/executors', method: 'POST' }, - /** - * 更新执行器 - */ - { key: 'updateExecutors', url: '/v1/executors', method: 'PUT' }, - /** 配置执行器 addressList */ - - /** - * 执行器配置列表 - */ - { key: 'getExecutorsConfig', url: '/v1/executor-configs/{executorId}/config', method: 'GET' }, - - /** - * 更新及新建执行器配置 - */ - { key: 'updateExecutorsConfig', url: '/v1/executor-configs', method: 'POST' }, - - /** - * 删除执行器配置 - */ - { key: 'deleteExecutorsConfig', url: '/v1/executor-configs', method: 'DELETE' }, - - /** - * - * Executable(Site Level) : 可执行定义(平台级) - * - */ - /** - * 删除并发可执行 - */ - { key: 'deleteExecutables', url: '/v1/executables', method: 'DELETE' }, - /** - * 并发可执行列表 - */ - { key: 'getExecutables', url: '/v1/executables', method: 'GET' }, - /** - * 创建并发可执行 - */ - { key: 'addExecutables', url: '/v1/executables', method: 'POST' }, - /** - * 修改并发可执行 - */ - { key: 'updateExecutables', url: '/v1/executables', method: 'PUT' }, - /** - * 并发可执行明细 - */ - { key: 'getExecutablesDetail', url: '/v1/executables/', method: 'GET' }, - - /** - * SettingSchedulerRequest: Concurrent(Site Level) : 请求定义(平台级) - */ - - /** - * 列表 - */ - { key: 'getRequest', url: '/v1/concurrents', method: 'GET' }, - /** - * 创建 - */ - { key: 'addRequest', url: '/v1/concurrents', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateRequest', url: '/v1/concurrents', method: 'PUT' }, - /** - * 明细 - */ - { key: 'detailRequest', url: '/v1/concurrents/', method: 'GET' }, - /** - * 用户可选并发程序列表 - */ - { key: 'getUsableRequest', url: '/v1/concurrents/usable', method: 'GET' }, - - /** - * Concurrent Permission: 请求权限定义(平台级) - */ - /** - * 列表 - */ - { key: 'getRequestPermissions', url: '/v1/conc-permissions/{concurrentId}', method: 'GET' }, - /** - * 创建 - */ - { key: 'addRequestPermissions', url: '/v1/conc-permissions', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateRequestPermissions', url: '/v1/conc-permissions', method: 'PUT' }, - /** - *Concurrent Request: 并发请求(平台级) - */ - /** - * 明细 - */ - { key: 'detailConcurrent', url: '/v1/concurrent-requests/{requestId}', method: 'GET' }, - /** - * 创建 - */ - { key: 'addConcurrent', url: '/v1/concurrent-requests', method: 'POST' }, - /** - * 列表 - */ - { key: 'getConcurrent', url: '/v1/concurrent-requests', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/stockProcessApi.js b/front-end/src/api/settingApi/stockProcessApi.js deleted file mode 100644 index 9b40384..0000000 --- a/front-end/src/api/settingApi/stockProcessApi.js +++ /dev/null @@ -1,42 +0,0 @@ -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/process', - items: [ - { - key: 'getStockProcess', - url: '/page', - method: 'POST', - }, - { - key: 'deleteStockProcess', - url: '/delete', - method: 'POST', - type: 'form', - }, - { - key: 'addStockProcess', - url: '/create', - method: 'POST', - }, - { - key: 'detailStockProcess', - url: '/detail', - method: 'POST', - type: 'form', - }, - { - key: 'operationStockProcess', - url: '/operation', - method: 'POST', - }, - { - key: 'updateStockProcess', - url: '/update', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/settingApi/strategyApi.js b/front-end/src/api/settingApi/strategyApi.js deleted file mode 100644 index 39096c6..0000000 --- a/front-end/src/api/settingApi/strategyApi.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * PasswordPolicy : 密码策略 - * - - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - /** - * 查询组织的密码策略 - */ - { key: 'getPasswordPolicy', url: '/v1/{tenantId}/password-policies', method: 'Get' }, - /** - * 修改组织的密码策略 - */ - { key: 'updatPasswordPolicy', url: '/v1/{tenantId}/password-policies', method: 'PUT' }, - /** - * 查询密码策略 - */ - { key: 'getPasswordPolicyQuery', url: '/v1/{tenantId}/password-policies/query', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/simpApi/index.js b/front-end/src/api/simpApi/index.js deleted file mode 100644 index b39cf1c..0000000 --- a/front-end/src/api/simpApi/index.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * 示例 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/simp/v1/{organizationId}', - items: [ - /** - * 导出Csv模板 - * @organizationId : 0 - */ - { key: 'importTemplateCSV', url: '/import/template/{templateCode}/csv', method: 'GET' }, - /** - * 导出Excel模板 - * @organizationId : 0 - */ - { - key: 'importTemplateEXCEL', - url: '/import/template/{templateCode}/excel', - method: 'GET', - rType: 2, - }, - /** - * 获取模板头行详细信息 - * @organizationId : 0 - */ - { key: 'importTemplateInfo', url: '/import/template/{templateCode}/info', method: 'GET' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/abnormalApi.js b/front-end/src/api/stockApi/abnormalApi.js deleted file mode 100644 index 99905da..0000000 --- a/front-end/src/api/stockApi/abnormalApi.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-11-19 15:40:59 - * @LastEditTime: 2021-11-19 15:44:47 - * @LastEditors: Please set LastEditors - * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - * @FilePath: \newBj-admin\src\api\stockApi\abnormalApi.js - */ -/* jshint esversion: 9 */ -/** - * - * adjust record : 库存管理->异常库存管理 - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - /* 快速补货 */ - { key: 'processServiceFastReplenish', url: '/process/service/fast/replenish', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/adjustRecordsApi.js b/front-end/src/api/stockApi/adjustRecordsApi.js deleted file mode 100644 index 8ec092f..0000000 --- a/front-end/src/api/stockApi/adjustRecordsApi.js +++ /dev/null @@ -1,32 +0,0 @@ -/* jshint esversion: 9 */ -/** - * - * adjust record : 调整单 - * - * 数据同步管理 - -GET /v1/adjust-records -查看调整单详情 - -POST /v1/adjust-records/page -调整单分页 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/adjust-records', - items: [ - // 创建或者更新调整单 - { key: 'addAdjustRecords', url: '/adjust-record', method: 'PUT' }, - // 分页 - { key: 'getAdjustRecords', url: '/page', method: 'POST' }, - // 审核调整单 - { key: 'statusAdjustRecords', url: '/adjust-status', method: 'POST' }, - // 详情 - { key: 'detailAdjustRecords', url: '/detail/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/changeRecordApi.js b/front-end/src/api/stockApi/changeRecordApi.js deleted file mode 100644 index 49189cf..0000000 --- a/front-end/src/api/stockApi/changeRecordApi.js +++ /dev/null @@ -1,25 +0,0 @@ -/* jshint esversion: 9 */ -/** - * reserve-record-controller : - - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/change-logs', - items: [ - // 创建或者更新 - { key: 'addChangeRecords', url: '/reserve', method: 'POST' }, - // 分页 - { key: 'getChangeRecords', url: '/page', method: 'POST' }, - // 审核 审核状态 STOCK.RECORD_STATUS ,typeCode (string, optional): 值集 STOCK.RECORD_TYPE - { key: 'statusChangeRecords', url: '/reserve-status', method: 'POST' }, - // 详情 - { key: 'detailChangeRecords', url: '/detail/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/deliveryApi.js b/front-end/src/api/stockApi/deliveryApi.js deleted file mode 100644 index d4a8f91..0000000 --- a/front-end/src/api/stockApi/deliveryApi.js +++ /dev/null @@ -1,62 +0,0 @@ -/* jshint esversion: 9 */ -/** - * reserve-record-controller : - - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - // 出库通知单列表 - { key: 'getOutboundDelivery', url: '/outbound/delivery/order/page', method: 'POST' }, - // 出库通知单详情 - { - key: 'getOutboundDeliveryDetail', - url: '/outbound/delivery/order/detail/{id}', - method: 'GET', - }, - // 出库通知单商品信息分页 - { - key: 'getOutboundDeliveryDetailPage', - url: '/outbound/delivery/order/detail/page', - method: 'POST', - }, - // 统计出库通知单发货及已发货数量 - { - key: 'getOutboundDeliveryDetailStats', - url: '/outbound/delivery/order/detail/stats/', - method: 'POST', - type: 'query', - }, - // 出库结果单分页 - { - key: 'getResultRecordsPage', - url: '/result-records/page', - method: 'POST', - }, - // 出库结果单详情 - { - key: 'getResultRecordsDetail', - url: '/result-records/{id}', - method: 'GET', - }, - // 出库结果单商品信息分页 - { - key: 'getResultDetailPage', - url: '/result-detail/page', - method: 'POST', - }, - // 统计出库通知单发货及已发货数量 - { - key: 'getResultDetailStatus', - url: '/result-detail/stats/{resultId}', - method: 'GET', - }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/distributeSpaceApi.js b/front-end/src/api/stockApi/distributeSpaceApi.js deleted file mode 100644 index 99bf1e1..0000000 --- a/front-end/src/api/stockApi/distributeSpaceApi.js +++ /dev/null @@ -1,50 +0,0 @@ -/* jshint esversion: 9 */ -/** - * Freight Space Manage : 仓位管理 - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/freight/spaces', - items: [ - // 分页 - { key: 'getDistributeSpaces', url: '/page', method: 'POST' }, - { key: 'getDistributeSpacesRatio', url: '/ratio/page', method: 'POST' }, - - // 创建或者更新 - { key: 'addDistributeSpacesQty', url: '/qty/save', method: 'POST' }, - { key: 'addDistributeSpacesRatio', url: '/ratio/save', method: 'POST' }, - // 批量保存 - { key: 'addBatchDistributeSpacesQty', url: '/qty/batch/save', method: 'POST' }, - { key: 'addBatchDistributeSpacesRatio', url: '/ratio/batch/save', method: 'POST' }, - - // 详情 - { key: 'detailDistributeSpaces', url: '/detail/', method: 'POST' }, - - // 仓位分配-可配置商品信息列表 - { - key: 'getMayDistributeSpacesGoods', - url: '/may/setting/goods/page', - method: 'POST', - }, - // 仓位分配-已分配商品信息列表 - { - key: 'getDistributeSpacesGoods', - url: '/setting/goods/page', - method: 'POST', - }, - // 仓位分配->批量删除商品和仓库的关联明细 - { - key: 'deleteDistributeSpacesGoods', - url: '/delete/goods', - method: 'POST', - }, - // 仓位分配->批量分配->已分配接收仓列表 - { key: 'getDistributeSpacesWarehouse', url: '/receive/warehouse/page', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/entryApi.js b/front-end/src/api/stockApi/entryApi.js deleted file mode 100644 index 1c922d9..0000000 --- a/front-end/src/api/stockApi/entryApi.js +++ /dev/null @@ -1,34 +0,0 @@ -/* jshint esversion: 9 */ -/** - * reserve-record-controller : - - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - // 入库通知单详情 - { key: 'detailEntryInform', url: '/warehouse/warrants/detail', method: 'GET' }, - - // 入库通知单列表 - { key: 'getEntryInform', url: '/warehouse/warrants/page', method: 'POST' }, - - // 入库通知单商品列表 - { key: 'getEntryInformDetailGoods', url: '/warehouse/warrant/details/page', method: 'POST' }, - - // 入库结果单详情 - { key: 'detailEntryResult', url: '/warehouse-results/detail', method: 'GET' }, - - // 入库结果单列表 - { key: 'getEntryResult', url: '/warehouse-results/page', method: 'POST' }, - - // 入库结果单商品列表 - { key: 'getEntryResultDetailGoods', url: '/warehouse-result-details/page', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/goodsStocksApi.js b/front-end/src/api/stockApi/goodsStocksApi.js deleted file mode 100644 index 50fc7e2..0000000 --- a/front-end/src/api/stockApi/goodsStocksApi.js +++ /dev/null @@ -1,20 +0,0 @@ -/* jshint esversion: 9 */ -/** - * Goods Stock Manage : 库存管理 - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/goods-stocks', - items: [ - // 查看仓库库存 - { key: 'getGoodsStockList', url: '/stock-list', method: 'POST' }, - // 分页 仓库库存表列表 - { key: 'getGoodsStockPage', url: '/page', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/index.js b/front-end/src/api/stockApi/index.js deleted file mode 100644 index 60f650b..0000000 --- a/front-end/src/api/stockApi/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-08-06 13:55:19 - * @LastEditTime: 2022-03-10 11:16:45 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\stockApi\index.js - */ -/* jshint esversion: 9 */ -/** - * 模块接口 - */ - -import rulesApi from './rulesApi'; -import warehouseApi from './warehouseApi'; -import adjustRecordsApi from './adjustRecordsApi'; -import moveRecordsApi from './moveRecordsApi'; -import goodsStocksApi from './goodsStocksApi'; -import warehouseRelationApi from './warehouseRelationApi'; -import reserveRecordsApi from './reserveRecordsApi'; -import distributeSpaceApi from './distributeSpaceApi'; -/** 出入库通知/结果单 */ -import noticeAndResultApi from './noticeAndResultApi'; -import changeRecordApi from './changeRecordApi'; -import initializeApi from './initializeApi'; -/** 库存管理-->仓库结构管理 */ -import structureApi from './structureApi'; -import stockOutApi from './stockOutApi'; -import abnormalApi from './abnormalApi'; -/** 寻源管理 */ -import sourcingApi from './sourcingApi'; -/** 出库 */ -import deliveryApi from './deliveryApi'; -/** 入库 */ -import entryApi from './entryApi'; - -/** 调拨管理 */ -import transferApi from './transferApi'; - -export default { - ...rulesApi, - ...warehouseApi, - ...adjustRecordsApi, - ...moveRecordsApi, - ...goodsStocksApi, - ...warehouseRelationApi, - ...reserveRecordsApi, - ...distributeSpaceApi, - ...noticeAndResultApi, - ...changeRecordApi, - ...initializeApi, - ...structureApi, - ...stockOutApi, - ...abnormalApi, - ...sourcingApi, - ...deliveryApi, - ...entryApi, - ...transferApi, -}; diff --git a/front-end/src/api/stockApi/initializeApi.js b/front-end/src/api/stockApi/initializeApi.js deleted file mode 100644 index 50890b6..0000000 --- a/front-end/src/api/stockApi/initializeApi.js +++ /dev/null @@ -1,36 +0,0 @@ -/* jshint esversion: 9 */ -/** - * Initialize Manage : 库存初始化管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - // 创建或者更新 - { key: 'addInitialize', url: '/initialize/create', method: 'POST' }, - // 分页 - { key: 'getInitialize', url: '/initialize/page', method: 'POST' }, - // 查询文件上传情况 - { key: 'getImportInfo', url: '/initialize/query', method: 'GET' }, - // 自动导入到正式表,一次执行三个流程(同步) - { - key: 'importStockInitialize', - url: '/{organizationId}/import/data/sync/auto-import?templateCode=STOCK.INITIALIZE_CODE', - method: 'POST', - type: 'form', - }, - // 导出临时数据Excel - { - key: 'exportStockInitialize', - url: - '/{organizationId}/import/manager/export/excel?templateCode=STOCK.INITIALIZE_CODE&batch={batch}', - method: 'GET', - rType: 2, - }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/moveRecordsApi.js b/front-end/src/api/stockApi/moveRecordsApi.js deleted file mode 100644 index 58eb66f..0000000 --- a/front-end/src/api/stockApi/moveRecordsApi.js +++ /dev/null @@ -1,27 +0,0 @@ -/* jshint esversion: 9 */ -/** - * move record : 移仓单 - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/move-records', - items: [ - // 创建或者更新调整单 - { key: 'addMoveRecords', url: '/move-record', method: 'PUT' }, - // 分页 - { key: 'getMoveRecords', url: '/page', method: 'POST' }, - // 审核调整单 审核状态 0待审核1审核成功2审核失败 - // {"id":0,"status":0,"typeCode":"string"} - { key: 'statusAllMoveRecords', url: '/move-record-status', method: 'PATCH' }, - // [{"id":0,"status":0,"typeCode":"string"}] - { key: 'statusOneMoveRecords', url: '/move-record-detail-status', method: 'PATCH' }, - // 详情 - { key: 'detailMoveRecords', url: '/detail/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/noticeAndResultApi.js b/front-end/src/api/stockApi/noticeAndResultApi.js deleted file mode 100644 index c28b0d5..0000000 --- a/front-end/src/api/stockApi/noticeAndResultApi.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @Author: 出/入库管理 - * @Date: 2021-08-27 14:48:35 - * @LastEditTime: 2021-11-03 14:45:02 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\stockApi\record.js - */ -/** 出入库管理 */ -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - /** 出入库通知单 */ - { key: 'getNoticRecords', url: '/outbound/delivery/order/page', method: 'POST' }, - /** 出入库通知单详情 */ - { key: 'getNoticRecordsDetail', url: '/outbound/delivery/order/detail/{id}', method: 'POST' }, - /** 出入库结果单详情 */ - { key: 'getResultRecordsDetail', url: '/result-records/detail/{resultCode}', method: 'get' }, - /** 内部订单详情中的发货单列表 */ - { key: 'getOrderNoticRecords', url: '/outbound/delivery/order/order', method: 'POST', type: 'form' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/reserveRecordsApi.js b/front-end/src/api/stockApi/reserveRecordsApi.js deleted file mode 100644 index 5327bfa..0000000 --- a/front-end/src/api/stockApi/reserveRecordsApi.js +++ /dev/null @@ -1,25 +0,0 @@ -/* jshint esversion: 9 */ -/** - * reserve-record-controller : - - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/reserve-records', - items: [ - // 创建或者更新 - { key: 'addReserveRecords', url: '/reserve', method: 'POST' }, - // 分页 - { key: 'getReserveRecords', url: '/page', method: 'POST' }, - // 审核 审核状态 STOCK.RECORD_STATUS ,typeCode (string, optional): 值集 STOCK.RECORD_TYPE - { key: 'statusReserveRecords', url: '/reserve-status', method: 'POST' }, - // 详情 - { key: 'detailReserveRecords', url: '/detail/', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/rulesApi.js b/front-end/src/api/stockApi/rulesApi.js deleted file mode 100644 index 9476cb7..0000000 --- a/front-end/src/api/stockApi/rulesApi.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * - * rule-controller : Rule Controller - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - // 库存规则明细 - { key: 'detailRules', url: '/rules/detail', method: 'GET' }, - - // 创建与修改库存规则 - { key: 'updateRules', url: '/rules/save', method: 'POST' }, - - /** Surplus Qty Replenish Manage : 剩余数量优先补货管理 */ - - { key: 'deleteSurplusQtyReplenish', url: '/surplus/qty/replenishs', method: 'DELETE' }, - - { key: 'getSurplusQtyReplenish', url: '/surplus/qty/replenishs', method: 'get' }, - - { key: 'addSurplusQtyReplenish', url: '/surplus/qty/replenishs', method: 'POST' }, - - { - key: 'operationSurplusQtyReplenish', - url: '/surplus/qty/replenishs/operation', - method: 'POST', - type: 'query', - }, - /** 仓库结构规则管理*/ - - // 仓库结构规则明 - { - key: 'detailWarehouseStructuralRules', - url: '/warehouse/structural/rule/detail', - method: 'GET', - }, - { - key: 'saveWarehouseStructuralRules', - url: '/warehouse/structural/rule/save', - method: 'post', - }, - /** 店铺补货优先管理 */ - // 店铺补货优先级列表 - { - key: 'getShopReplenishPriority', - url: '/shop/replenish/prioritys', - method: 'GET', - }, - // 店铺补货优先级保存接口 - { - key: 'saveShopReplenishPriority', - url: '/shop/replenish/prioritys/save', - method: 'POST', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/sourcingApi.js b/front-end/src/api/stockApi/sourcingApi.js deleted file mode 100644 index 5d91e98..0000000 --- a/front-end/src/api/stockApi/sourcingApi.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-19 10:27:23 - * @LastEditTime: 2022-02-18 10:47:15 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\orderApi\internal.js - */ -import { generate } from '@/utils/request'; - -const config = { - prefix: 'stock/v1', - items: [ - /** 根据订单信息获取相关的逻辑仓集合 */ - { key: 'getOrderSourcingLogicWarehouse', url: '/sourcing/get/logic/warehouse', method: 'POST' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/stockOutApi.js b/front-end/src/api/stockApi/stockOutApi.js deleted file mode 100644 index 10d51ae..0000000 --- a/front-end/src/api/stockApi/stockOutApi.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-26 10:11:25 - * @LastEditTime: 2022-04-25 16:59:08 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\stockApi\structureApi.js - */ -/** - * - * StockOut Manage : 缺货管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - // 缺货店铺列表 - { key: 'getStockOutShopPage', url: '/stockout/shop/page', method: 'POST' }, - // 缺货订单列表 - { key: 'getStockOutOrderPage', url: '/stockout/order/page', method: 'POST' }, - // 缺货订单待发货列表 - { key: 'getStockOutWaitPage', url: '/stockout/wait/page', method: 'POST' }, - // 缺货订单——发货 - { key: 'sendStockOutWait', url: '/stockout/send/{id}', method: 'POST' }, - // 批量设置保存 - { key: 'stockOutBatSetting', url: '/stockout/batch/setting', method: 'POST' }, - // 添加补货店铺数据 - { key: 'stockOutAdd', url: '/stockout/add', method: 'POST' }, - /** 发货汇总 */ - { key: 'getReportLogisticsResult', url: '/report/form/logistics/result', method: 'POST' }, - ], -}; - -// POST /v1/stockout/manage/page -// 缺货管理列表 - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/structureApi.js b/front-end/src/api/stockApi/structureApi.js deleted file mode 100644 index 17dc089..0000000 --- a/front-end/src/api/stockApi/structureApi.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-26 10:11:25 - * @LastEditTime: 2021-10-26 10:16:32 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\stockApi\structureApi.js - */ -/** - * - * rule-controller : Rule Controller - * - */ - - import { generate } from '@/utils/request'; - const config = { - prefix: '/stock/v1/warehouse/relation', - items: [ - // 租户配置比率关系图(租户级) - { key: 'getAllwarehouseSetting', url: '/setting/all', method: 'POST' }, - ], - }; - - export default { - ...generate(config), - }; diff --git a/front-end/src/api/stockApi/transferApi.js b/front-end/src/api/stockApi/transferApi.js deleted file mode 100644 index 4879cf6..0000000 --- a/front-end/src/api/stockApi/transferApi.js +++ /dev/null @@ -1,145 +0,0 @@ -/* jshint esversion: 9 */ -/** - * allot record : 调拨单 - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - // 创建或者更新调整单 - { key: 'addAllotRecords', url: '/allot-records/allot-record', method: 'PUT' }, - // 调拨单分页 - { key: 'getAllotRecords', url: '/allot-records/page', method: 'POST' }, - // 审核调整单 审核状态 0待审核1审核成功2审核失败 - // {"id":0,"status":0,"typeCode":"string"} - { key: 'statusAllAllotRecords', url: '/allot-records/allot-record-status', method: 'PATCH' }, - // 详情 - { key: 'detailAllotRecords', url: '/allot-records/detail/', method: 'GET' }, - - /** 新版接口开发者:许荣发 */ - // 调拨单详情 - { key: 'getAllotRecordsDetail', url: '/allot-records/detail/{allotId}', method: 'GET' }, - // 创建更新调拨单 - { key: 'saveAllotRecords', url: '/allot-records/save', method: 'PUT' }, - // 获取商品对应逻辑仓库存信息 - { key: 'getAllotRecordsSkuStock', url: '/allot-records/list/sku/allot/stock', method: 'POST' }, - // 取消 - { key: 'cancelAllotRecords', url: '/allot-records/cancel', method: 'PATCH', type: 'query' }, - // 作废 - { key: 'invalidAllotRecords', url: '/allot-records/invalid', method: 'PATCH', type: 'query' }, - // 重置 - { key: 'resetAllotRecords', url: '/allot-records/reset', method: 'PATCH', type: 'query' }, - // 执行/再次执行 - { key: 'executeAllotRecords', url: '/allot-records/execute', method: 'PATCH', type: 'query' }, - // 审核 - { key: 'auditAllotRecords', url: '/allot-records/audit', method: 'PATCH' }, - - /* ********************** - 分仓计划部分 - *************************/ - - // 分仓计划列表 - { key: 'getDistributePlansPage', url: '/distribute/plans/page', method: 'POST' }, - // 分仓计划详情 - { key: 'getDistributePlansDetail', url: '/distribute/plans/detail/{id}', method: 'GET' }, - // 创建或者更新分仓计划 - { key: 'saveDistributePlans', url: '/distribute/plans/save', method: 'PUT' }, - // 获取商品对应库存信息 - { key: 'getDistributePlansSkuStock', url: '/distribute/plans/list/sku/stock', method: 'POST' }, - // 取消 - { - key: 'cancelDistributePlan', - url: '/distribute/plans/cancel', - method: 'PATCH', - type: 'query', - }, - // 作废 - { - key: 'invalidDistributePlan', - url: '/distribute/plans/invalid', - method: 'PATCH', - type: 'query', - }, - // 重置 - { key: 'resetDistributePlan', url: '/distribute/plans/reset', method: 'PATCH', type: 'query' }, - // 审核 - { key: 'auditDistributePlan', url: '/distribute/plans/audit', method: 'PATCH' }, - - /* ********************** - 虚仓移仓部分部分 - *************************/ - - // 虚仓移仓列表 - { key: 'getDistributeVirtualsPage', url: '/transfer-records/page', method: 'POST' }, - // 虚仓移仓详情 - { key: 'getDistributeVirtualsDetail', url: '/transfer-records/detail/{id}', method: 'GET' }, - // 创建或者更新虚仓移仓 - { key: 'saveDistributeVirtuals', url: '/transfer-records/save', method: 'PUT' }, - // 获取商品对应库存信息 - { - key: 'getDistributeVirtualsSkuStock', - url: '/transfer-records/list/sku/transfer/stock', - method: 'POST', - }, - // 取消 - { - key: 'cancelDistributeVirtuals', - url: '/transfer-records/cancel', - method: 'PATCH', - type: 'query', - }, - // 作废 - { - key: 'invalidDistributeVirtuals', - url: '/transfer-records/invalid', - method: 'PATCH', - type: 'query', - }, - // 重置 - { - key: 'resetDistributeVirtuals', - url: '/transfer-records/reset', - method: 'PATCH', - type: 'query', - }, - // 执行/再次执行 - { - key: 'executeDistributeVirtuals', - url: '/transfer-records/execute', - method: 'PATCH', - type: 'query', - }, - // 审核 - { - key: 'auditDistributeVirtuals', - url: '/transfer-records/audit', - method: 'PATCH', - }, - - // // 查询分仓计划缺货订单 - // { - // key: 'getDistributePlanStockoutList', - // url: '/stockout/list/order/stockout', - // method: 'POST', - // }, - - // 分仓计划缺货订单管理 - { - key: 'getDistributePlanShopStockoutList', - url: '/distribute/plan/shop/stockout/list', - method: 'POST', - }, - // 虚仓移仓详情管理 - { - key: 'getTransferStockoutDetailsList', - url: '/transfer-stockout-details/list', - method: 'POST', - }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/warehouseApi.js b/front-end/src/api/stockApi/warehouseApi.js deleted file mode 100644 index 16b8485..0000000 --- a/front-end/src/api/stockApi/warehouseApi.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-08-06 13:55:19 - * @LastEditTime: 2021-08-24 17:52:42 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\stockApi\warehouseApi.js - */ -/** - * - * Warehouse Manage : 仓库管理 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1', - items: [ - // - { key: 'addWarehouses', url: '/warehouses/save', method: 'POST' }, - - { key: 'updateWarehouses', url: '/warehouses/save', method: 'POST' }, - - { key: 'detailWarehouses', url: '/warehouses/detail/{id}', method: 'get' }, - - { key: 'getWarehousesList', url: '/warehouses/list-warehouse', method: 'POST' }, - { key: 'getWarehousesPage', url: '/warehouses/page-warehouse', method: 'POST' }, - - { key: 'deleteWarehouses', url: '/warehouses/remove', method: 'DELETE' }, - - { key: 'getWarehousesTypePage', url: '/warehouses/type/page', method: 'POST' }, - { key: 'getWarehouses', url: '/warehouses/list', method: 'get' }, - /** 删除仓库 */ - { key: 'deleteWarehouses', url: '/warehouses/remove', method: 'DELETE' }, - /** 保存 */ - { key: 'saveWarehouses', url: '/warehouses/save/coord', method: 'POST' }, - /** *** Warehouse Structure */ - - { key: 'addWarehouseStructures', url: '/warehouse/structures', method: 'POST' }, - - { - key: 'statusWarehouseStructures', - url: '/warehouse/structures/operation', - method: 'POST', - type: 'query', - }, - - // { key: 'detailWarehouseStructures', url: '/warehouses/detail/{id}', method: 'get' }, - - { key: 'getWarehouseStructures', url: '/warehouse/structures', method: 'get' }, - - { key: 'deleteWarehouseStructures', url: '/warehouse/structures', method: 'DELETE' }, - // 根据登录租户查询结构ID - { - key: 'getWarehouseStructureId', - url: '/warehouse/structures/query/structural/id', - method: 'POST', - }, - - /** 添加/修改仓库 */ - { key: 'updataWarehouseStructures', url: '/warehouses/save', method: 'post' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/stockApi/warehouseRelationApi.js b/front-end/src/api/stockApi/warehouseRelationApi.js deleted file mode 100644 index d233262..0000000 --- a/front-end/src/api/stockApi/warehouseRelationApi.js +++ /dev/null @@ -1,107 +0,0 @@ -/* jshint esversion: 9 */ -/** - * Warehouse Relation Manage : 仓库关系管理 -POST /add -接收仓添加 - -POST /all -仓库结构关系图 - -POST /channel/add -渠道仓添加 - -POST /channel/detail -渠道仓添加页面详情 - -POST /detail -接收仓添加页面详情 - -POST /interline/add -中转仓添加 - -POST /interline/detail -中转仓添加页面详情 - -POST /setting/all -租户配置比率关系图(租户级) - -POST /setting/ratio -设置仓库比例值(租户级) - - * - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/stock/v1/warehouse/relation', - items: [ - /** 仓库关系添加 */ - { key: 'addWarehouseStructuresRelation', url: '/add', method: 'post' }, - { key: 'getWarehouseStructuresDetail', url: '/all', method: 'post' }, - - /** 渠道仓关系添加 */ - { - key: 'addWarehouseStructuresChannel', - url: '/channel/add', - method: 'post', - }, - /** 渠道仓关系详情 */ - { - key: 'getWarehouseStructuresChannelDetail', - url: '/channel/detail', - method: 'post', - }, - /** 接收仓关系详情 */ - { - key: 'getWarehouseStructureslReceiveDetail', - url: '/detail', - method: 'post', - }, - - /** 中转虚仓关系添加 */ - { - key: 'addWarehouseStructuresInterline', - url: '/interline/add', - method: 'post', - }, - /** 中转虚仓关系详情 */ - { - key: 'getWarehouseStructureslInterlineDetail', - url: '/interline/detail', - method: 'post', - }, - /** 中转仓取消渠道仓关系校验 */ - { - key: 'checkoutWarehouseCancelChannel', - url: '/cancel/channel', - method: 'post', - }, - - /** 根据供货仓及接货仓类型获取有效的接收仓列表 */ - { - key: 'getReceiveWarehouse', - url: '/query/receive/warehouse', - method: 'post', - }, - - /** 租户配置比率关系图(租户级) */ - { - key: 'addWarehouseStructuresAll', - url: '/setting/all', - method: 'post', - }, - - /** 设置仓库比例值 */ - { - key: 'addWarehouseStructuresRatio', - url: '/setting/ratio', - method: 'post', - }, - // 查询出供应仓对应的接收仓列表 - { key: 'getWarehouserBySupport', url: '/warehouse-by-support', method: 'POST' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/strategyApi/index.js b/front-end/src/api/strategyApi/index.js deleted file mode 100644 index dc7a656..0000000 --- a/front-end/src/api/strategyApi/index.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-28 20:58:01 - * @LastEditTime: 2021-11-11 17:07:55 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\strategyApi\index.js - */ -/* - * @Author: your name - * @Date: 2021-08-06 13:55:19 - * @LastEditTime: 2021-09-08 17:10:17 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\stockApi\index.js - */ -/* jshint esversion: 9 */ -/** - * 模块接口 - */ - - import marketingAuditApi from './marketingAuditApi'; - import sourceApi from './sourceApi'; - - export default { - ...marketingAuditApi, - ...sourceApi, - }; diff --git a/front-end/src/api/strategyApi/marketingAuditApi.js b/front-end/src/api/strategyApi/marketingAuditApi.js deleted file mode 100644 index 016e59f..0000000 --- a/front-end/src/api/strategyApi/marketingAuditApi.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-28 20:58:39 - * @LastEditTime: 2021-11-01 17:26:54 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\strategyApi\marketingAuditApi.js - */ -/** - * Postage Template : 销售审核策略 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: 'sord/v1', - items: [ - /** 订单审核列表 */ - { key: 'getOrderAuditSetting', url: '/order-audit-setting', method: 'GET' }, - /** 删除订单审核 */ - { key: 'deleteOrderAuditSetting', url: '/order-audit-setting', method: 'DELETE' }, - /** 创建订单审核 */ - { key: 'addOrderAuditSetting', url: '/order-audit-setting', method: 'POST' }, - /** 修改订单审核 */ - { key: 'putOrderAuditSetting', url: '/order-audit-setting', method: 'PUT' }, - /** 订单审核明细 */ - { key: 'getOrderAuditSettingDetail', url: '/order-audit-setting/{id}', method: 'GET' }, - - /** - * 商品行部分 - */ - - /** 获取商品行审核列表 */ - { key: 'getGoodLineAuditSetting', url: '/goods-line-audit-setting', method: 'GET' }, - /** 创建商品行审核 */ - { key: 'addGoodLineAuditSetting', url: '/goods-line-audit-setting', method: 'POST' }, - /** 删除商品行审核 */ - { key: 'deleteGoodLineAuditSetting', url: '/goods-line-audit-setting', method: 'DELETE' }, - /** 修改商品行审核 */ - { key: 'putGoodLineAuditSetting', url: '/goods-line-audit-setting', method: 'PUT' }, - /** 商品行审核明细 */ - { key: 'getGoodLineAuditSettingDetail', url: '/goods-line-audit-setting/{id}', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/strategyApi/sourceApi.js b/front-end/src/api/strategyApi/sourceApi.js deleted file mode 100644 index 170c192..0000000 --- a/front-end/src/api/strategyApi/sourceApi.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-28 20:58:39 - * @LastEditTime: 2021-11-17 17:27:14 - * @LastEditors: Please set LastEditors - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\api\strategyApi\marketingAuditApi.js - */ -/** - * Postage Template : 寻源策略 - * - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: 'sord/v1', - items: [ - /** 删除单品发包设置 */ - { key: 'deletePackageSettingSingleGoods', url: '/package-setting-single-goods', method: 'DELETE' }, - /** 单品发包列表 */ - { key: 'getPackageSettingSingleGoods', url: '/package-setting-single-goods', method: 'GET' }, - /** 创建单品发包设置 */ - { key: 'addPackageSettingSingleGoods', url: '/package-setting-single-goods', method: 'POST' }, - /** 修改单品发包设置 */ - { key: '', url: '/package-setting-single-goods', method: 'PUT' }, - // /** 单品发包设置明细 */ - { key: '', url: '/package-setting-single-goods/{id}', method: 'GET' }, - ], -}; -export default { - ...generate(config), -}; diff --git a/front-end/src/api/tagsApi/index.js b/front-end/src/api/tagsApi/index.js deleted file mode 100644 index 5e27e81..0000000 --- a/front-end/src/api/tagsApi/index.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * 示例 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: 'tags/v1/labels', - items: [ - /** - * 分页 - */ - { key: 'getLabels', url: '', method: 'GET' }, - /** - * 新增 - */ - { key: 'addLabels', url: '', method: 'POST' }, - /** - * 修改 - */ - { key: 'updateLabels', url: '', method: 'PUT' }, - /** - * 状态 - */ - { key: 'operationLabels', url: '/batch/update/status', method: 'PUT' }, - /** - * 批量删除 - */ - { key: 'batchDeleteLabels', url: '/batch/remove', method: 'delete' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/tenantApi/index.js b/front-end/src/api/tenantApi/index.js deleted file mode 100644 index 3a20573..0000000 --- a/front-end/src/api/tenantApi/index.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Tenant(Site Level) : 租户管理(平台级) - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - // 租户列表 ///skyer/v1/users/self-tenants/page - { key: 'getTenants', url: '/v1/{organizationId}/tenants/paging-tenant', method: 'get' }, - { key: 'addTenants', url: '/v1/tenants-manager', method: 'POST' }, - { key: 'userTenants', url: '/v1/tenants-manager/assign-to-user', method: 'POST' }, - { key: 'detailTenants', url: '/v1/tenants-manager/', method: 'GET' }, - { key: 'updateTenants', url: '/v1/tenants-manager/', method: 'PUT' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/testApi.js b/front-end/src/api/testApi.js deleted file mode 100644 index fc2986f..0000000 --- a/front-end/src/api/testApi.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * 示例 - * 作者:匿名用户 - _ooOoo_ - o8888888o - 88" . "88 - (| -_- |) - O\ = /O - ____/`---'\____ - . ' \\| | `. - / \\||| : ||| \ - / _||||| -:- |||||- \ - | | \\\ - / | | - | \_| ''\---/'' | | - \ .-\__ `-` ___/-. / - ___`. .' /--.--\ `. . __ - ."" '< `.___\_<|>_/___.' >'"". - | | : `- \`.;`\ _ /`;.`/ - ` : | | - \ \ `-. \_ __\ /__ _/ .-` / / - ======`-.____`-.___\_____/___.-`____.-'====== - `=---=' - - ............................................. - 佛祖保佑 永无BUG - 佛曰: - 写字楼里写字间,写字间里程序员; - 程序人员写程序,又拿程序换酒钱。 - 酒醒只在网上坐,酒醉还来网下眠; - 酒醉酒醒日复日,网上网下年复年。 - 但愿老死电脑间,不愿鞠躬老板前; - 奔驰宝马贵者趣,公交自行程序员。 - 别人笑我忒疯癫,我笑自己命太贱; - 不见满街漂亮妹,哪个归得程序员? - - */ - -/** - * @description API 配置 - * config.prefix : API url前缀 - * config.items[n].key : 别名,调用此接口时用到,如 testApi.transactionList(API_DATA).then(res=>{}) - * config.items[n].url : API url - * 如果链接以 / 结尾,兼容rest风格(请求参数拼接在路径上) - * 带{key}花括号 , 把value = data[key] 替换到url上{key}里,并删除data.key - * config.items[n].method: - * config.items[n].type : 强制传参方式:query / body; 为空,按method方式对应默认:get=>query,其它=>body - * config.items[n].loadingHide : 请求不显示loading动画; 为空,显示loading - * - * 特殊:(在url的{}替换后) 如果存在data.BjBody , 则执行 data=data.BjBody - */ -import { generate } from '@/utils/request'; -const config = { - prefix: '', - items: [ - /** - * 示例 - * @organizationId : 0 - */ - { - key: 'transactionList', - url: '/iam/skyer/v1/{organizationId}/users/paging', - method: 'get', - type: 'query', - loadingHide: true, - }, - { - key: 'getBillJdExcel', - url: '/simp/v1/0/template/SFIN.BILL_JD/excel', - method: 'get', - type: 'query', - loadingHide: true, - rType: 2, - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/userApi/index.js b/front-end/src/api/userApi/index.js deleted file mode 100644 index 4ce4df8..0000000 --- a/front-end/src/api/userApi/index.js +++ /dev/null @@ -1,264 +0,0 @@ -/** - * 示例 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - // 用户信息 - { key: 'getUserInfo', url: '/skyer/v1/users/self', method: 'get' }, - // 用户菜单权限 获取当前用户树形菜单 - { - key: 'getUserMenuTree', - url: '/v1/sys/menu/manage/user/tree', - method: 'get', - loadingHide: true, - }, - // 初始化菜单(仅第一次调用) - { - key: 'initMenuTree', - url: '/v1/sys/menu/manage/menu/init', - method: 'POST', - }, - // 创建菜单 - { - key: 'addMenuTree', - url: '/v1/sys/menu/manage/menu/create', - method: 'POST', - }, - // 删除菜单 - { - key: 'deleteMenuTree', - url: '/v1/sys/menu/manage/menu/delete', - method: 'POST', - }, - // 批量删除菜单 - { - key: 'batchDeleteMenuTree', - url: '/v1/sys/menu/manage/menu/batch/delete', - method: 'POST', - }, - // 修改菜单 - { - key: 'updateMenuTree', - url: '/v1/sys/menu/manage/menu/update', - method: 'POST', - }, - - /** - * 用户管理-分页查询 - * @organizationId : 0 - */ - { key: 'getUserList', url: '/skyer/v1/{organizationId}/users/paging', method: 'get' }, - /** - * 用户管理-修改密码 - * @organizationId : 0 - * @userId : 194783206599467008 - */ - { - key: 'adminUpdatePassword', - url: '/skyer/v1/{organizationId}/users/{userId}/admin-password', - method: 'PUT', - type: 'BODY', - }, - /** - * 用户管理-创建用户 - * @organizationId : 0 - */ - { - key: 'createUser', - url: '/skyer/v1/{organizationId}/users', - method: 'POST', - }, - - /** - * 用户管理-根据id查询用户信息 - * @organizationId : 0 - * @userId - */ - { - key: 'getUserInfoById', - url: '/skyer/v1/{organizationId}/users/{userId}/info', - method: 'GET', - }, - - /** - * 用户管理- 子账户 - 根据id查询所有分配给用户的角色 - * @organizationId : 0 - * @userId - */ - { - key: 'getUserAllRolesById', - url: '/skyer/v1/{organizationId}/member-roles/user-all-roles/{userId}', - method: 'GET', - }, - /** - * 用户管理- 角色管理 - 批量删除用户的角色 - * @organizationId : 0 - * @userId - */ - { - key: 'deleteUserRoles', - url: '/skyer/v1/{organizationId}/member-roles/batch-delete', - method: 'DELETE', - }, - /** - * 用户管理- 角色管理 - 批量分配成员角色 - * @organizationId : 0 - * @userId - */ - { - key: 'addUserRoles', - url: '/skyer/v1/{organizationId}/member-roles/batch-assign', - method: 'POST', - }, - - /** - * 用户管理 - 修改用户 - * @organizationId : 0 - */ - { - key: 'updateUserInfo', - url: '/skyer/v1/{organizationId}/users', - method: 'PUT', - type: 'BODY', - }, - - /** *************** 个人中心 ******************* */ - - /** - * 登录用户 - 修改自己的密 - { - "organizationId": 0, - "originalPassword": "string", - "password": "string" - } - */ - { - key: 'updateMyPassword', - url: '/skyer/v1/users/password', - method: 'PUT', - type: 'BODY', - }, - /** - * 登录用户 - 更改名称 - * @realName - */ - { - key: 'updateMyRealName', - url: '/skyer/v1/users/real-name', - method: 'PUT', - type: 'Query', - }, - /** - * 登录用户 - 更改头像 - * @avatar - */ - { - key: 'updateMyAvatar', - url: '/skyer/v1/users/avatar', - method: 'PUT', - type: 'Query', - }, - /** - * 登录用户 - 前置密码校验 - * @password - * @ResponseBody {lastCheckKey} - */ - { - key: 'checkMyPassword', - url: '/skyer/v1/users/password/pre-validate', - method: 'GET', - }, - /** - * 登录用户 - 给新手机号发送验证码 - * @lastCheckKey - * @phone - * @ResponseBody "captchaKey", "message" , "interval": 60 - */ - { - key: 'sendCaptchaByPhone', - url: '/skyer/v1/users/phone-new/send-captcha', - method: 'GET', - }, - /** - * 登录用户 - 新手机号验证码验证并修改手机 - * @lastCheckKey 前置密码校验返回的 - * @captchaKey 给新手机号发送验证码返回的 - * @captcha 手机接收的验证码 - * @phone 手机号 - */ - { - key: 'checkCaptchaByPhone', - url: '/skyer/v1/users/phone-new/validate-captcha', - method: 'GET', - }, - - /** - * 登录用户 - 给新邮箱发送验证码 - * @lastCheckKey - * @email - * @ResponseBody "captchaKey", "message" , "interval": 60 - */ - { - key: 'sendCaptchaByEmail', - url: '/skyer/v1/users/email-new/send-captcha', - method: 'GET', - }, - /** - * 登录用户 - 新邮箱验证码验证并修改邮箱 - * @lastCheckKey 前置密码校验返回的 - * @captchaKey 给新邮箱发送验证码返回的 - * @captcha 邮箱接收的验证码 - * @email 邮箱号 - */ - { - key: 'checkCaptchaByEmail', - url: '/skyer/v1/users/email-new/validate-captcha', - method: 'GET', - }, - /** - * 查询用户公司的 ids - */ - { - key: 'getUserCompany', - url: '/skyer/v1/users/{userId}/company', - method: 'GET', - }, - // 启用用户 - { - key: 'userNnfrozen', - url: '/skyer/v1/{organizationId}/users/{userId}/unfrozen', - method: 'POST', - }, - // 禁用用户 - { - key: 'userFrozen', - url: '/skyer/v1/{organizationId}/users/{userId}/frozen', - method: 'POST', - }, - // 锁定用户 - { - key: 'userLocked', - url: '/skyer/v1/{organizationId}/users/{userId}/locked', - method: 'POST', - }, - // 解锁用户 - { - key: 'userUnlocked', - url: '/skyer/v1/{organizationId}/users/{userId}/unlocked', - method: 'POST', - }, - // 删除用户 - { - key: 'deleteUser', - url: '/skyer/v1/{organizationId}/users/{userId}/delete', - method: 'DELETE', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/userGroupApi/index.js b/front-end/src/api/userGroupApi/index.js deleted file mode 100644 index cd43046..0000000 --- a/front-end/src/api/userGroupApi/index.js +++ /dev/null @@ -1,142 +0,0 @@ -/** - * 示例 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/iam', - items: [ - /** - * 用户组管理 - 用户组列表 - * @organizationId : 0 - */ - { - key: 'getUserGroupList', - url: '/v1/{organizationId}/user-groups', - method: 'GET', - }, - /** - * 用户组管理 - 创建 - * @organizationId : 0 - */ - { - key: 'createUserGroup', - url: '/v1/{organizationId}/user-groups', - method: 'POST', - }, - /** - * 用户组管理 - 修改 - * @organizationId : 0 - */ - { - key: 'updateUserGroup', - url: '/v1/{organizationId}/user-groups', - method: 'PUT', - }, - /** - * 用户组管理 - 删除 - * @organizationId : 0 - */ - { - key: 'deleteUserGroup', - url: '/v1/{organizationId}/user-groups', - method: 'DELETE', - }, - /** - * 用户组管理 - 用户组明细 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'getUserGroupInfo', - url: '/v1/{organizationId}/user-groups/details/{userGroupId}', - method: 'GET', - }, - /** *****************一个用户组 对应的 用户列表******************************** */ - /** - * 用户组管理 - 用户分配列表 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'getUserListByGroupId', - url: '/v1/{organizationId}/user-groups/{userGroupId}/users', - method: 'GET', - }, - /** - * 用户组管理 - 查询排除已经分配的用户列表 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'getUserListByGroupIdExclude', - url: '/v1/{organizationId}/user-groups/{userGroupId}/users/exclude-users', - method: 'GET', - }, - /** - * 用户组管理 - 创建用户分配 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'addUserListToGroupId', - url: '/v1/{organizationId}/user-groups/{userGroupId}/users', - method: 'POST', - }, - /** - * 用户组管理 - 删除用户分配 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'deleteUserListToGroupId', - url: '/v1/{organizationId}/user-groups/{userGroupId}/users', - method: 'DELETE', - }, - /** ************** 一个用户 对应的 用户组列表***************************** */ - /** - * 用户组管理 - 用户组分配列表 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'getUserGroupListByUserId', - url: '/v1/{organizationId}/{userId}/user-group-assigns', - method: 'GET', - }, - /** - * 用户组管理 - 查询排除已经分配的用户组列表 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'getUserGroupListByUserIdExclude', - url: '/v1/{organizationId}/{userId}/user-group-assigns/exclude-groups', - method: 'GET', - }, - /** - * 用户组管理 - 创建用户组分配 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'addUserGroupListToUserId', - url: '/v1/{organizationId}/{userId}/user-group-assigns', - method: 'POST', - }, - /** - * 用户组管理 - 删除用户组分配 - * @organizationId : 0 - * @userGroupId - */ - { - key: 'deleteUserGroupListToUserId', - url: '/v1/{organizationId}/{userId}/user-group-assigns', - method: 'DELETE', - }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/api/worksheetApi/index.js b/front-end/src/api/worksheetApi/index.js deleted file mode 100644 index 6c3dc89..0000000 --- a/front-end/src/api/worksheetApi/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * 渠道模块接口 - */ - -import serviceApi from './serviceApi'; - -export default { - ...serviceApi, -}; diff --git a/front-end/src/api/worksheetApi/serviceApi.js b/front-end/src/api/worksheetApi/serviceApi.js deleted file mode 100644 index 5702332..0000000 --- a/front-end/src/api/worksheetApi/serviceApi.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * goods-install-service : 安装服务管理 - */ - -import { generate } from '@/utils/request'; -const config = { - prefix: '/sgoo/v1/install-services', - items: [ - { key: 'addInstallServices', url: '', method: 'POST' }, - - { key: 'deleteInstallServices', url: '', method: 'DELETE' }, - - { key: 'DetailInstallServices', url: '/', method: 'GET' }, - - { key: 'getInstallServices', url: '', method: 'GET' }, - - { key: 'updateInstallServices', url: '', method: 'PUT' }, - ], -}; - -export default { - ...generate(config), -}; diff --git a/front-end/src/assets/401_images/401.gif b/front-end/src/assets/401_images/401.gif deleted file mode 100644 index cd6e0d9..0000000 Binary files a/front-end/src/assets/401_images/401.gif and /dev/null differ diff --git a/front-end/src/assets/404_images/404.png b/front-end/src/assets/404_images/404.png deleted file mode 100644 index 3d8e230..0000000 Binary files a/front-end/src/assets/404_images/404.png and /dev/null differ diff --git a/front-end/src/assets/404_images/404_cloud.png b/front-end/src/assets/404_images/404_cloud.png deleted file mode 100644 index c6281d0..0000000 Binary files a/front-end/src/assets/404_images/404_cloud.png and /dev/null differ diff --git a/front-end/src/assets/custom-theme/fonts/element-icons.ttf b/front-end/src/assets/custom-theme/fonts/element-icons.ttf deleted file mode 100644 index 570a3e1..0000000 Binary files a/front-end/src/assets/custom-theme/fonts/element-icons.ttf and /dev/null differ diff --git a/front-end/src/assets/custom-theme/fonts/element-icons.woff b/front-end/src/assets/custom-theme/fonts/element-icons.woff deleted file mode 100644 index c2bcc00..0000000 Binary files a/front-end/src/assets/custom-theme/fonts/element-icons.woff and /dev/null differ diff --git a/front-end/src/assets/custom-theme/index.css b/front-end/src/assets/custom-theme/index.css deleted file mode 100644 index e8b4e08..0000000 --- a/front-end/src/assets/custom-theme/index.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.custom-theme .fade-in-linear-enter-active,.custom-theme .fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .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 .2s linear;transition:opacity .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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.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 .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,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, .03));filter:drop-shadow(0 2px 12px rgba(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,.1);box-shadow:0 2px 12px 0 rgba(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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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,.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,.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,.1);border-color:rgba(10,118,164,.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,.1);border-color:rgba(64,145,103,.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,.1);border-color:rgba(157,164,8,.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,.1);border-color:rgba(179,69,14,.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(.8);transform:scale(.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(.8);transform:scale(.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(.7);transform:scale(.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,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.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 .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .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 .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.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,.5px);transform:translate(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(.8);transform:scale(.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 .2s ease;animation:v-modal-in .2s ease}.custom-theme .v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .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:.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,.3);box-shadow:0 1px 3px rgba(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 .3s;animation:dialog-fade-in .3s}.custom-theme .dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.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, .03));filter:drop-shadow(0 2px 12px rgba(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,.1);box-shadow:0 2px 12px 0 rgba(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:.1s;transition:.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,.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,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.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, .03));filter:drop-shadow(0 2px 12px rgba(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,.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,.1);box-shadow:0 2px 12px 0 rgba(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,.1);box-shadow:0 2px 12px 0 rgba(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,.1);box-shadow:0 2px 12px 0 rgba(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 .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .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 .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .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 .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .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:.2s;transition:.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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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(.9);transform:scale(.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(.8);transform:scale(.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(.8);transform:scale(.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 .15s cubic-bezier(.71,-.46,.88,.6);transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6);transition:transform .15s cubic-bezier(.71,-.46,.88,.6);transition:transform .15s cubic-bezier(.71,-.46,.88,.6),-webkit-transform .15s cubic-bezier(.71,-.46,.88,.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 .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.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:.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(.5);transform:scale(.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 .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.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 .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.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 .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.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:.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:.2s;transition:.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 .3s,background-color .3s;transition:border-color .3s,background-color .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 .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .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:.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, .03));filter:drop-shadow(0 2px 12px rgba(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,.1);box-shadow:0 2px 12px 0 rgba(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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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,.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,.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,.1);border-color:rgba(10,118,164,.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,.1);border-color:rgba(64,145,103,.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,.1);border-color:rgba(157,164,8,.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,.1);border-color:rgba(179,69,14,.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(.8);transform:scale(.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(.8);transform:scale(.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(.7);transform:scale(.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,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.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 .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .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 .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.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,.5px);transform:translate(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:.1s;transition:.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,.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,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.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(.5);transform:scale(.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 .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.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 .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.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 .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.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:.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,.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,.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,.1);border-color:rgba(10,118,164,.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,.1);border-color:rgba(64,145,103,.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,.1);border-color:rgba(157,164,8,.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,.1);border-color:rgba(179,69,14,.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(.8);transform:scale(.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(.8);transform:scale(.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(.7);transform:scale(.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 .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .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,.12);box-shadow:0 0 10px rgba(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(.75);transform:scale(.75)}.custom-theme .el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .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(.5);transform:scale(.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 .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.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 .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.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 .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.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:.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,.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,.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,.1);border-color:rgba(10,118,164,.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,.1);border-color:rgba(64,145,103,.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,.1);border-color:rgba(157,164,8,.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,.1);border-color:rgba(179,69,14,.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(.8);transform:scale(.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(.8);transform:scale(.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(.7);transform:scale(.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,.1);box-shadow:0 2px 12px 0 rgba(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 .2s linear;transition:opacity .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 .2s linear;transition:opacity .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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.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 .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,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,.1);box-shadow:0 2px 12px 0 rgba(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,.1);box-shadow:0 2px 12px 0 rgba(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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.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, .03));filter:drop-shadow(0 2px 12px rgba(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 .2s linear;transition:opacity .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 .2s linear;transition:opacity .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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.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 .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,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,.1);box-shadow:0 2px 12px 0 rgba(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,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.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, .03));filter:drop-shadow(0 2px 12px rgba(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 .2s linear;transition:opacity .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 .2s linear;transition:opacity .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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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(.45,.45);transform:scale(.45,.45)}.custom-theme .collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.custom-theme .horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.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 .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,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,.1);box-shadow:0 2px 12px 0 rgba(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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.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, .03));filter:drop-shadow(0 2px 12px rgba(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, .03));filter:drop-shadow(0 2px 12px rgba(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,.1);box-shadow:0 2px 12px 0 rgba(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 .2s ease;animation:v-modal-in .2s ease}.custom-theme .v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .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:.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:.1s;transition:.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,.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,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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,.1);box-shadow:0 2px 12px 0 rgba(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:0;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 .3s;animation:msgbox-fade-in .3s}.custom-theme .msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .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 .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#2d2f33}.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 .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.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 .15s;transition:all .15s}.custom-theme .el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.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 .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .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 .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.custom-theme .el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.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 .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.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,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(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 .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.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 .3s;animation:slideInRight-enter .3s}.custom-theme .slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.custom-theme .slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.custom-theme .slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .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,.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,.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,.1);border-color:rgba(10,118,164,.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,.1);border-color:rgba(64,145,103,.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,.1);border-color:rgba(157,164,8,.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,.1);border-color:rgba(179,69,14,.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(.8);transform:scale(.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(.8);transform:scale(.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(.7);transform:scale(.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 .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .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 .2s;transition:opacity .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,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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(.9);transform:scale(.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(.8);transform:scale(.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(.8);transform:scale(.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:.2s;transition:.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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .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,.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 .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,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:.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 .3s;transition:color .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,.2);box-shadow:0 0 1pc 1px rgba(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,.5);-webkit-transition:opacity .3s;transition:opacity .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,.2);box-shadow:0 0 1pc 1px rgba(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,.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 .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s,-webkit-transform .3s cubic-bezier(.23,1,.32,1) .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 .15s linear;transition:opacity .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 .3s,-webkit-transform .4s;transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,transform .4s;transition:opacity .3s,transform .4s,-webkit-transform .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:#ecf4f0;border-color:#d9e9e1}.custom-theme .el-message--success .el-message__content{color:#409167}.custom-theme .el-message--warning{background-color:#f5f6e6;border-color:#ebedce}.custom-theme .el-message--warning .el-message__content{color:#9da408}.custom-theme .el-message--error{background-color:#f7ece7;border-color:#f0dacf}.custom-theme .el-message--error .el-message__content{color:#b3450e}.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,.1);box-shadow:0 2px 12px 0 rgba(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:.3s;transition:.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:.15s ease-out;transition:.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:.15s ease-out;transition:.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(.8) translateY(1px);transform:scale(.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:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.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,.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:.64}.custom-theme .el-carousel__indicators--outside button{background-color:#b4bccc;opacity:.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:.72}.custom-theme .el-carousel__indicator.is-active button{opacity:1}.custom-theme .el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.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,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.custom-theme .el-scrollbar__thumb:hover{background-color:rgba(135,141,153,.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 .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.custom-theme .el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.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:.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:.24;-webkit-transition:.2s;transition:.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 .3s;transition:border-bottom-color .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 .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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, .03));filter:drop-shadow(0 2px 12px rgba(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 .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .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 .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.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,.1);box-shadow:0 2px 12px 0 rgba(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,.6);box-shadow:0 0 2px rgba(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,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-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,.6);box-shadow:0 0 2px rgba(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(.8);transform:translate3d(-50%,-50%,0) scale(.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(.8);transform:translate3d(-50%,-50%,0) scale(.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,.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,.1);box-shadow:0 2px 12px 0 rgba(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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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 .3s;transition:all .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 .3s;transition:all .3s}.custom-theme .el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .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 .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.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:.1s;transition:.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,.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,.5)}.custom-theme .el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.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(.5);transform:scale(.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 .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.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 .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:-webkit-transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) 50ms,-webkit-transform .15s cubic-bezier(.71,-.46,.88,.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 .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.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:.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/front-end/src/assets/image/contact-phone-white.png b/front-end/src/assets/image/contact-phone-white.png deleted file mode 100644 index 137b05f..0000000 Binary files a/front-end/src/assets/image/contact-phone-white.png and /dev/null differ diff --git a/front-end/src/assets/image/contact-phone.png b/front-end/src/assets/image/contact-phone.png deleted file mode 100644 index 112b669..0000000 Binary files a/front-end/src/assets/image/contact-phone.png and /dev/null differ diff --git a/front-end/src/assets/image/contact-wx-white.png b/front-end/src/assets/image/contact-wx-white.png deleted file mode 100644 index a8cffc3..0000000 Binary files a/front-end/src/assets/image/contact-wx-white.png and /dev/null differ diff --git a/front-end/src/assets/image/contact-wx.png b/front-end/src/assets/image/contact-wx.png deleted file mode 100644 index 179020c..0000000 Binary files a/front-end/src/assets/image/contact-wx.png and /dev/null differ diff --git a/front-end/src/assets/image/favicon.png b/front-end/src/assets/image/favicon.png deleted file mode 100644 index 6d81964..0000000 Binary files a/front-end/src/assets/image/favicon.png and /dev/null differ diff --git a/front-end/src/assets/image/login-background.jpg b/front-end/src/assets/image/login-background.jpg deleted file mode 100644 index 8a89eb8..0000000 Binary files a/front-end/src/assets/image/login-background.jpg and /dev/null differ diff --git a/front-end/src/assets/image/logo-circle.png b/front-end/src/assets/image/logo-circle.png deleted file mode 100644 index c2c470f..0000000 Binary files a/front-end/src/assets/image/logo-circle.png and /dev/null differ diff --git a/front-end/src/assets/image/logo.png b/front-end/src/assets/image/logo.png deleted file mode 100644 index 0db9ae3..0000000 Binary files a/front-end/src/assets/image/logo.png and /dev/null differ diff --git a/front-end/src/assets/image/welcome.png b/front-end/src/assets/image/welcome.png deleted file mode 100644 index f57a6ec..0000000 Binary files a/front-end/src/assets/image/welcome.png and /dev/null differ diff --git a/front-end/src/assets/image/wx.png b/front-end/src/assets/image/wx.png deleted file mode 100644 index 74b6d4f..0000000 Binary files a/front-end/src/assets/image/wx.png and /dev/null differ diff --git a/front-end/src/assets/image/微信/微信.png b/front-end/src/assets/image/微信/微信.png deleted file mode 100644 index f89e6de..0000000 Binary files a/front-end/src/assets/image/微信/微信.png and /dev/null differ diff --git a/front-end/src/assets/image/电话1/电话1.png b/front-end/src/assets/image/电话1/电话1.png deleted file mode 100644 index b607c21..0000000 Binary files a/front-end/src/assets/image/电话1/电话1.png and /dev/null differ diff --git a/front-end/src/assets/sys/下架出库.png b/front-end/src/assets/sys/下架出库.png deleted file mode 100644 index f42fcc1..0000000 Binary files a/front-end/src/assets/sys/下架出库.png and /dev/null differ diff --git a/front-end/src/assets/sys/订单出库.png b/front-end/src/assets/sys/订单出库.png deleted file mode 100644 index 7612d59..0000000 Binary files a/front-end/src/assets/sys/订单出库.png and /dev/null differ diff --git a/front-end/src/assets/sys/退货入库.png b/front-end/src/assets/sys/退货入库.png deleted file mode 100644 index 776707a..0000000 Binary files a/front-end/src/assets/sys/退货入库.png and /dev/null differ diff --git a/front-end/src/assets/sys/采购入库.png b/front-end/src/assets/sys/采购入库.png deleted file mode 100644 index 94af501..0000000 Binary files a/front-end/src/assets/sys/采购入库.png and /dev/null differ diff --git a/front-end/src/directive/clipboard/clipboard.js b/front-end/src/directive/clipboard/clipboard.js deleted file mode 100644 index eab5d99..0000000 --- a/front-end/src/directive/clipboard/clipboard.js +++ /dev/null @@ -1,49 +0,0 @@ -// 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/front-end/src/directive/clipboard/index.js b/front-end/src/directive/clipboard/index.js deleted file mode 100644 index c67459d..0000000 --- a/front-end/src/directive/clipboard/index.js +++ /dev/null @@ -1,13 +0,0 @@ -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/front-end/src/directive/el-drag-dialog/drag.js b/front-end/src/directive/el-drag-dialog/drag.js deleted file mode 100644 index f5f786c..0000000 --- a/front-end/src/directive/el-drag-dialog/drag.js +++ /dev/null @@ -1,77 +0,0 @@ -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 = function(e) { - document.onmousemove = null; - document.onmouseup = null; - }; - }; - } -}; diff --git a/front-end/src/directive/el-drag-dialog/index.js b/front-end/src/directive/el-drag-dialog/index.js deleted file mode 100644 index a436dbf..0000000 --- a/front-end/src/directive/el-drag-dialog/index.js +++ /dev/null @@ -1,13 +0,0 @@ -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/front-end/src/directive/el-table/adaptive.js b/front-end/src/directive/el-table/adaptive.js deleted file mode 100644 index 8e56d2c..0000000 --- a/front-end/src/directive/el-table/adaptive.js +++ /dev/null @@ -1,41 +0,0 @@ -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/front-end/src/directive/el-table/index.js b/front-end/src/directive/el-table/index.js deleted file mode 100644 index 1b89cb5..0000000 --- a/front-end/src/directive/el-table/index.js +++ /dev/null @@ -1,13 +0,0 @@ -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/front-end/src/directive/permission/draggable.js b/front-end/src/directive/permission/draggable.js deleted file mode 100644 index 5a1f240..0000000 --- a/front-end/src/directive/permission/draggable.js +++ /dev/null @@ -1,47 +0,0 @@ -const draggable = { - inserted: function(e, binding) { - // console.log(binding) - // document.onclick = function(e) { - // e.path[0].focus() - // return - // } - document.ondblclick = function(e) { - e.path[0].focus(); - return; - }; - document.onselectstart = function() { - return false; // 禁止选择网页文字 - }; - e.onmousedown = el => { - el.preventDefault(); - // 计算当前可视区域距离元素的距离 - // e.clientX:鼠标指针的X坐标 - // el.offsetLeft:距离浏览器左边距离 - const disX = el.clientX - e.offsetLeft; - const disY = el.clientY - e.offsetTop; - document.onmousemove = function(el) { - el.preventDefault(); - const className = e.parentNode.className; - const listEl = document.getElementsByClassName(className)[0]; - // const listEl = document.getElementById('virtual') - let left = el.clientX - disX; - let top = el.clientY - disY; - const MAX_W = listEl.clientWidth - e.clientWidth; - const AMX_H = listEl.clientHeight - e.clientHeight; - if (left < 0) left = 0; - if (top < 0) top = 0; - if (left > MAX_W) left = MAX_W; - if (top > AMX_H) top = AMX_H; - // console.log(MAX_W,AMX_H) - e.style.left = left + 'px'; - e.style.top = top + 'px'; - // binding.value.set(binding.value.index, left, top) - }; - document.onmouseup = function() { - document.onmousemove = document.onmouseup = null; - }; - return false; - }; - }, -}; -export default draggable; diff --git a/front-end/src/directive/permission/hasDropdownChildren.js b/front-end/src/directive/permission/hasDropdownChildren.js deleted file mode 100644 index 12a02bb..0000000 --- a/front-end/src/directive/permission/hasDropdownChildren.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - inserted(el, binding) { - if (el.children[1].children.length === 0) { - el.remove(); - } - }, -}; diff --git a/front-end/src/directive/permission/hasPermi.js b/front-end/src/directive/permission/hasPermi.js deleted file mode 100644 index e69de29..0000000 diff --git a/front-end/src/directive/permission/hasRole.js b/front-end/src/directive/permission/hasRole.js deleted file mode 100644 index 861bf7f..0000000 --- a/front-end/src/directive/permission/hasRole.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * 角色权限处理 - */ -import store from '@/store'; -export default { - inserted(el, binding, vnode) { - const { value } = binding; - // console.log(value) - const super_admin = 'admin'; - const roles = store.getters && store.getters.roles; - // console.log(roles) - if (value && value.length > 0 && value instanceof Array) { - const hasRole = roles.some(role => { - return super_admin === role || value.includes(role); - }); - // console.log(hasRole) - if (!hasRole) { - el.parentNode && el.parentNode.removeChild(el); - } - } else { - throw new Error(`请设置角色权限标签值`); - } - } -}; diff --git a/front-end/src/directive/permission/index.js b/front-end/src/directive/permission/index.js deleted file mode 100644 index 1029533..0000000 --- a/front-end/src/directive/permission/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import permission from './permission'; -import hasRole from './hasRole'; -import draggable from './draggable'; -import hasDropdownChildren from './hasDropdownChildren'; - -const install = function (Vue) { - Vue.directive('permission', permission); - Vue.directive('hasRole', hasRole); - Vue.directive('draggable', draggable); - Vue.directive('hasDropdownChildren', hasDropdownChildren); -}; - -if (window.Vue) { - window['permission'] = permission; - Vue.use(install); // eslint-disable-line -} - -permission.install = install; -export default permission; diff --git a/front-end/src/directive/permission/permission.js b/front-end/src/directive/permission/permission.js deleted file mode 100644 index 189fde7..0000000 --- a/front-end/src/directive/permission/permission.js +++ /dev/null @@ -1,25 +0,0 @@ -import store from '@/store'; - -function checkPermission(el, binding) { - const permissionCode = binding.arg - ? binding.arg.toLocaleLowerCase() - : binding.value.toLocaleLowerCase(); - - if (!permissionCode) { - throw new Error(`need permission code ! Like v-permission="code"`); - } - const userPermissionBtns = store.getters && store.getters.userPermissionBtns; - const hasPermission = userPermissionBtns.includes(permissionCode); - if (!hasPermission && el) { - (el.parentNode && el.parentNode.removeChild(el)) || (el.style.display = 'none'); - } -} - -export default { - inserted(el, binding) { - checkPermission(el, binding); - }, - update(el, binding) { - checkPermission(el, binding); - }, -}; diff --git a/front-end/src/directive/sticky.js b/front-end/src/directive/sticky.js deleted file mode 100644 index ff0cfaf..0000000 --- a/front-end/src/directive/sticky.js +++ /dev/null @@ -1,91 +0,0 @@ -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/front-end/src/directive/waves/index.js b/front-end/src/directive/waves/index.js deleted file mode 100644 index c38d799..0000000 --- a/front-end/src/directive/waves/index.js +++ /dev/null @@ -1,13 +0,0 @@ -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/front-end/src/directive/waves/waves.css b/front-end/src/directive/waves/waves.css deleted file mode 100644 index af7a7ef..0000000 --- a/front-end/src/directive/waves/waves.css +++ /dev/null @@ -1,26 +0,0 @@ -.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/front-end/src/directive/waves/waves.js b/front-end/src/directive/waves/waves.js deleted file mode 100644 index fc32338..0000000 --- a/front-end/src/directive/waves/waves.js +++ /dev/null @@ -1,72 +0,0 @@ -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/front-end/src/filters/index.js b/front-end/src/filters/index.js deleted file mode 100644 index 285d40c..0000000 --- a/front-end/src/filters/index.js +++ /dev/null @@ -1,81 +0,0 @@ -// 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), ' minute'); - } else if (between < 86400) { - return pluralize(~~(between / 3600), ' hour'); - } else { - return pluralize(~~(between / 86400), ' day'); - } -} - -/** - * 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); -} -/** - * - * @param {*} val - * @returns - */ -export function phoneFilter(val) { - if (val) { - const reg = /^(.{3}).*(.{4})$/; - return val.replace(reg, '$1****$2'); - } -} diff --git a/front-end/src/icons/index.js b/front-end/src/icons/index.js deleted file mode 100644 index 3a58838..0000000 --- a/front-end/src/icons/index.js +++ /dev/null @@ -1,9 +0,0 @@ -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/front-end/src/icons/svg/404.svg b/front-end/src/icons/svg/404.svg deleted file mode 100644 index 6df5019..0000000 --- a/front-end/src/icons/svg/404.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/bug.svg b/front-end/src/icons/svg/bug.svg deleted file mode 100644 index 05a150d..0000000 --- a/front-end/src/icons/svg/bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/build.svg b/front-end/src/icons/svg/build.svg deleted file mode 100644 index 97c4688..0000000 --- a/front-end/src/icons/svg/build.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/business-center.svg b/front-end/src/icons/svg/business-center.svg deleted file mode 100644 index 2712f79..0000000 --- a/front-end/src/icons/svg/business-center.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/front-end/src/icons/svg/cascader.svg b/front-end/src/icons/svg/cascader.svg deleted file mode 100644 index e256024..0000000 --- a/front-end/src/icons/svg/cascader.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/chart.svg b/front-end/src/icons/svg/chart.svg deleted file mode 100644 index 27728fb..0000000 --- a/front-end/src/icons/svg/chart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/checkbox.svg b/front-end/src/icons/svg/checkbox.svg deleted file mode 100644 index 013fd3a..0000000 --- a/front-end/src/icons/svg/checkbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/clipboard.svg b/front-end/src/icons/svg/clipboard.svg deleted file mode 100644 index 90923ff..0000000 --- a/front-end/src/icons/svg/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/code.svg b/front-end/src/icons/svg/code.svg deleted file mode 100644 index ed4d23c..0000000 --- a/front-end/src/icons/svg/code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/color.svg b/front-end/src/icons/svg/color.svg deleted file mode 100644 index 44a81aa..0000000 --- a/front-end/src/icons/svg/color.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/component.svg b/front-end/src/icons/svg/component.svg deleted file mode 100644 index 29c3458..0000000 --- a/front-end/src/icons/svg/component.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/dashboard.svg b/front-end/src/icons/svg/dashboard.svg deleted file mode 100644 index 5317d37..0000000 --- a/front-end/src/icons/svg/dashboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/date-range.svg b/front-end/src/icons/svg/date-range.svg deleted file mode 100644 index fda571e..0000000 --- a/front-end/src/icons/svg/date-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/date.svg b/front-end/src/icons/svg/date.svg deleted file mode 100644 index 52dc73e..0000000 --- a/front-end/src/icons/svg/date.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/dict.svg b/front-end/src/icons/svg/dict.svg deleted file mode 100644 index 4849377..0000000 --- a/front-end/src/icons/svg/dict.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/documentation.svg b/front-end/src/icons/svg/documentation.svg deleted file mode 100644 index 7043122..0000000 --- a/front-end/src/icons/svg/documentation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/download.svg b/front-end/src/icons/svg/download.svg deleted file mode 100644 index c896951..0000000 --- a/front-end/src/icons/svg/download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/drag.svg b/front-end/src/icons/svg/drag.svg deleted file mode 100644 index 4185d3c..0000000 --- a/front-end/src/icons/svg/drag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/druid.svg b/front-end/src/icons/svg/druid.svg deleted file mode 100644 index a2b4b4e..0000000 --- a/front-end/src/icons/svg/druid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/edit.svg b/front-end/src/icons/svg/edit.svg deleted file mode 100644 index d26101f..0000000 --- a/front-end/src/icons/svg/edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/education.svg b/front-end/src/icons/svg/education.svg deleted file mode 100644 index 7bfb01d..0000000 --- a/front-end/src/icons/svg/education.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/email.svg b/front-end/src/icons/svg/email.svg deleted file mode 100644 index 74d25e2..0000000 --- a/front-end/src/icons/svg/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/example.svg b/front-end/src/icons/svg/example.svg deleted file mode 100644 index 46f42b5..0000000 --- a/front-end/src/icons/svg/example.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/excel.svg b/front-end/src/icons/svg/excel.svg deleted file mode 100644 index 74d97b8..0000000 --- a/front-end/src/icons/svg/excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/exit-fullscreen.svg b/front-end/src/icons/svg/exit-fullscreen.svg deleted file mode 100644 index 485c128..0000000 --- a/front-end/src/icons/svg/exit-fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/eye-open.svg b/front-end/src/icons/svg/eye-open.svg deleted file mode 100644 index 88dcc98..0000000 --- a/front-end/src/icons/svg/eye-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/eye.svg b/front-end/src/icons/svg/eye.svg deleted file mode 100644 index 16ed2d8..0000000 --- a/front-end/src/icons/svg/eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/form.svg b/front-end/src/icons/svg/form.svg deleted file mode 100644 index dcbaa18..0000000 --- a/front-end/src/icons/svg/form.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/fullscreen.svg b/front-end/src/icons/svg/fullscreen.svg deleted file mode 100644 index 0e86b6f..0000000 --- a/front-end/src/icons/svg/fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/github.svg b/front-end/src/icons/svg/github.svg deleted file mode 100644 index db0a0d4..0000000 --- a/front-end/src/icons/svg/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/guide.svg b/front-end/src/icons/svg/guide.svg deleted file mode 100644 index b271001..0000000 --- a/front-end/src/icons/svg/guide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/html.svg b/front-end/src/icons/svg/html.svg deleted file mode 100644 index 86fc845..0000000 --- a/front-end/src/icons/svg/html.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/icon.svg b/front-end/src/icons/svg/icon.svg deleted file mode 100644 index 82be8ee..0000000 --- a/front-end/src/icons/svg/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/input.svg b/front-end/src/icons/svg/input.svg deleted file mode 100644 index ab91381..0000000 --- a/front-end/src/icons/svg/input.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/international.svg b/front-end/src/icons/svg/international.svg deleted file mode 100644 index e9b56ee..0000000 --- a/front-end/src/icons/svg/international.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/job.svg b/front-end/src/icons/svg/job.svg deleted file mode 100644 index 2a93a25..0000000 --- a/front-end/src/icons/svg/job.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/language.svg b/front-end/src/icons/svg/language.svg deleted file mode 100644 index 0082b57..0000000 --- a/front-end/src/icons/svg/language.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/link.svg b/front-end/src/icons/svg/link.svg deleted file mode 100644 index 48197ba..0000000 --- a/front-end/src/icons/svg/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/list.svg b/front-end/src/icons/svg/list.svg deleted file mode 100644 index 20259ed..0000000 --- a/front-end/src/icons/svg/list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/lock.svg b/front-end/src/icons/svg/lock.svg deleted file mode 100644 index 74fee54..0000000 --- a/front-end/src/icons/svg/lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/log.svg b/front-end/src/icons/svg/log.svg deleted file mode 100644 index d879d33..0000000 --- a/front-end/src/icons/svg/log.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/logininfor.svg b/front-end/src/icons/svg/logininfor.svg deleted file mode 100644 index 267f844..0000000 --- a/front-end/src/icons/svg/logininfor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/logout.svg b/front-end/src/icons/svg/logout.svg deleted file mode 100644 index 72780f7..0000000 --- a/front-end/src/icons/svg/logout.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/message.svg b/front-end/src/icons/svg/message.svg deleted file mode 100644 index 14ca817..0000000 --- a/front-end/src/icons/svg/message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/money.svg b/front-end/src/icons/svg/money.svg deleted file mode 100644 index c1580de..0000000 --- a/front-end/src/icons/svg/money.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/monitor.svg b/front-end/src/icons/svg/monitor.svg deleted file mode 100644 index bc308cb..0000000 --- a/front-end/src/icons/svg/monitor.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/more.svg b/front-end/src/icons/svg/more.svg deleted file mode 100644 index a2a37af..0000000 --- a/front-end/src/icons/svg/more.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/front-end/src/icons/svg/nested.svg b/front-end/src/icons/svg/nested.svg deleted file mode 100644 index 06713a8..0000000 --- a/front-end/src/icons/svg/nested.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/number.svg b/front-end/src/icons/svg/number.svg deleted file mode 100644 index ad5ce9a..0000000 --- a/front-end/src/icons/svg/number.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/online.svg b/front-end/src/icons/svg/online.svg deleted file mode 100644 index 330a202..0000000 --- a/front-end/src/icons/svg/online.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/password.svg b/front-end/src/icons/svg/password.svg deleted file mode 100644 index 6c64def..0000000 --- a/front-end/src/icons/svg/password.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/pdf.svg b/front-end/src/icons/svg/pdf.svg deleted file mode 100644 index 957aa0c..0000000 --- a/front-end/src/icons/svg/pdf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/people.svg b/front-end/src/icons/svg/people.svg deleted file mode 100644 index 2bd54ae..0000000 --- a/front-end/src/icons/svg/people.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/peoples.svg b/front-end/src/icons/svg/peoples.svg deleted file mode 100644 index aab852e..0000000 --- a/front-end/src/icons/svg/peoples.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/phone.svg b/front-end/src/icons/svg/phone.svg deleted file mode 100644 index ab8e8c4..0000000 --- a/front-end/src/icons/svg/phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/pointer.svg b/front-end/src/icons/svg/pointer.svg deleted file mode 100644 index 10e2fc5..0000000 --- a/front-end/src/icons/svg/pointer.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/post.svg b/front-end/src/icons/svg/post.svg deleted file mode 100644 index 2922c61..0000000 --- a/front-end/src/icons/svg/post.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/qq.svg b/front-end/src/icons/svg/qq.svg deleted file mode 100644 index ee13d4e..0000000 --- a/front-end/src/icons/svg/qq.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/question.svg b/front-end/src/icons/svg/question.svg deleted file mode 100644 index cf75bd4..0000000 --- a/front-end/src/icons/svg/question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/radio.svg b/front-end/src/icons/svg/radio.svg deleted file mode 100644 index 0cde345..0000000 --- a/front-end/src/icons/svg/radio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/rate.svg b/front-end/src/icons/svg/rate.svg deleted file mode 100644 index aa3b14d..0000000 --- a/front-end/src/icons/svg/rate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/row.svg b/front-end/src/icons/svg/row.svg deleted file mode 100644 index 0780992..0000000 --- a/front-end/src/icons/svg/row.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/search.svg b/front-end/src/icons/svg/search.svg deleted file mode 100644 index 84233dd..0000000 --- a/front-end/src/icons/svg/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/select.svg b/front-end/src/icons/svg/select.svg deleted file mode 100644 index d628382..0000000 --- a/front-end/src/icons/svg/select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/server.svg b/front-end/src/icons/svg/server.svg deleted file mode 100644 index ca37b00..0000000 --- a/front-end/src/icons/svg/server.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/setting-center.svg b/front-end/src/icons/svg/setting-center.svg deleted file mode 100644 index 714ec9c..0000000 --- a/front-end/src/icons/svg/setting-center.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/front-end/src/icons/svg/shopping.svg b/front-end/src/icons/svg/shopping.svg deleted file mode 100644 index 87513e7..0000000 --- a/front-end/src/icons/svg/shopping.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/size.svg b/front-end/src/icons/svg/size.svg deleted file mode 100644 index ddb25b8..0000000 --- a/front-end/src/icons/svg/size.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/skill.svg b/front-end/src/icons/svg/skill.svg deleted file mode 100644 index a3b7312..0000000 --- a/front-end/src/icons/svg/skill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/slider.svg b/front-end/src/icons/svg/slider.svg deleted file mode 100644 index fbe4f39..0000000 --- a/front-end/src/icons/svg/slider.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/star.svg b/front-end/src/icons/svg/star.svg deleted file mode 100644 index 6cf86e6..0000000 --- a/front-end/src/icons/svg/star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/swagger.svg b/front-end/src/icons/svg/swagger.svg deleted file mode 100644 index 05d4e7b..0000000 --- a/front-end/src/icons/svg/swagger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/switch.svg b/front-end/src/icons/svg/switch.svg deleted file mode 100644 index 0ba61e3..0000000 --- a/front-end/src/icons/svg/switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/system.svg b/front-end/src/icons/svg/system.svg deleted file mode 100644 index dba28cf..0000000 --- a/front-end/src/icons/svg/system.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/tab.svg b/front-end/src/icons/svg/tab.svg deleted file mode 100644 index b4b48e4..0000000 --- a/front-end/src/icons/svg/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/table.svg b/front-end/src/icons/svg/table.svg deleted file mode 100644 index 0e3dc9d..0000000 --- a/front-end/src/icons/svg/table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/textarea.svg b/front-end/src/icons/svg/textarea.svg deleted file mode 100644 index 2709f29..0000000 --- a/front-end/src/icons/svg/textarea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/theme.svg b/front-end/src/icons/svg/theme.svg deleted file mode 100644 index 5982a2f..0000000 --- a/front-end/src/icons/svg/theme.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/time-range.svg b/front-end/src/icons/svg/time-range.svg deleted file mode 100644 index 13c1202..0000000 --- a/front-end/src/icons/svg/time-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/time.svg b/front-end/src/icons/svg/time.svg deleted file mode 100644 index b376e32..0000000 --- a/front-end/src/icons/svg/time.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/tool.svg b/front-end/src/icons/svg/tool.svg deleted file mode 100644 index c813067..0000000 --- a/front-end/src/icons/svg/tool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/tree-table.svg b/front-end/src/icons/svg/tree-table.svg deleted file mode 100644 index 8aafdb8..0000000 --- a/front-end/src/icons/svg/tree-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/tree.svg b/front-end/src/icons/svg/tree.svg deleted file mode 100644 index dd4b7dd..0000000 --- a/front-end/src/icons/svg/tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/upload.svg b/front-end/src/icons/svg/upload.svg deleted file mode 100644 index bae49c0..0000000 --- a/front-end/src/icons/svg/upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/user.svg b/front-end/src/icons/svg/user.svg deleted file mode 100644 index 59c623f..0000000 --- a/front-end/src/icons/svg/user.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/validCode.svg b/front-end/src/icons/svg/validCode.svg deleted file mode 100644 index cfb1021..0000000 --- a/front-end/src/icons/svg/validCode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/wechat.svg b/front-end/src/icons/svg/wechat.svg deleted file mode 100644 index c586e55..0000000 --- a/front-end/src/icons/svg/wechat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/word.svg b/front-end/src/icons/svg/word.svg deleted file mode 100644 index e9cef7d..0000000 --- a/front-end/src/icons/svg/word.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svg/zip.svg b/front-end/src/icons/svg/zip.svg deleted file mode 100644 index f806fc4..0000000 --- a/front-end/src/icons/svg/zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/front-end/src/icons/svgo.yml b/front-end/src/icons/svgo.yml deleted file mode 100644 index d11906a..0000000 --- a/front-end/src/icons/svgo.yml +++ /dev/null @@ -1,22 +0,0 @@ -# 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/front-end/src/layout/EmptyRouter.vue b/front-end/src/layout/EmptyRouter.vue deleted file mode 100644 index 279e8d7..0000000 --- a/front-end/src/layout/EmptyRouter.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - - diff --git a/front-end/src/layout/EmptyRouterAlive.vue b/front-end/src/layout/EmptyRouterAlive.vue deleted file mode 100644 index ea4eaf5..0000000 --- a/front-end/src/layout/EmptyRouterAlive.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/front-end/src/layout/components/AppMain.vue b/front-end/src/layout/components/AppMain.vue deleted file mode 100644 index f297f50..0000000 --- a/front-end/src/layout/components/AppMain.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - diff --git a/front-end/src/layout/components/Contact/index.vue b/front-end/src/layout/components/Contact/index.vue deleted file mode 100644 index 855da84..0000000 --- a/front-end/src/layout/components/Contact/index.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - diff --git a/front-end/src/layout/components/Navbar.vue b/front-end/src/layout/components/Navbar.vue deleted file mode 100644 index b35c829..0000000 --- a/front-end/src/layout/components/Navbar.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - - - diff --git a/front-end/src/layout/components/Settings/index.vue b/front-end/src/layout/components/Settings/index.vue deleted file mode 100644 index 4919f4a..0000000 --- a/front-end/src/layout/components/Settings/index.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - - - diff --git a/front-end/src/layout/components/Sidebar/FixiOSBug.js b/front-end/src/layout/components/Sidebar/FixiOSBug.js deleted file mode 100644 index 9386e52..0000000 --- a/front-end/src/layout/components/Sidebar/FixiOSBug.js +++ /dev/null @@ -1,26 +0,0 @@ -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/front-end/src/layout/components/Sidebar/HoverItem.vue b/front-end/src/layout/components/Sidebar/HoverItem.vue deleted file mode 100644 index 6fb5fff..0000000 --- a/front-end/src/layout/components/Sidebar/HoverItem.vue +++ /dev/null @@ -1,285 +0,0 @@ - - - diff --git a/front-end/src/layout/components/Sidebar/Item.vue b/front-end/src/layout/components/Sidebar/Item.vue deleted file mode 100644 index 3663a3a..0000000 --- a/front-end/src/layout/components/Sidebar/Item.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - diff --git a/front-end/src/layout/components/Sidebar/Link.vue b/front-end/src/layout/components/Sidebar/Link.vue deleted file mode 100644 index c0f4f08..0000000 --- a/front-end/src/layout/components/Sidebar/Link.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/front-end/src/layout/components/Sidebar/Logo.vue b/front-end/src/layout/components/Sidebar/Logo.vue deleted file mode 100644 index 53b6dbb..0000000 --- a/front-end/src/layout/components/Sidebar/Logo.vue +++ /dev/null @@ -1,150 +0,0 @@ - - - - - diff --git a/front-end/src/layout/components/Sidebar/SidebarItem.vue b/front-end/src/layout/components/Sidebar/SidebarItem.vue deleted file mode 100644 index cbdc241..0000000 --- a/front-end/src/layout/components/Sidebar/SidebarItem.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - - diff --git a/front-end/src/layout/components/Sidebar/index.vue b/front-end/src/layout/components/Sidebar/index.vue deleted file mode 100644 index 6bdc44e..0000000 --- a/front-end/src/layout/components/Sidebar/index.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/front-end/src/layout/components/TagsView/ScrollPane.vue b/front-end/src/layout/components/TagsView/ScrollPane.vue deleted file mode 100644 index b81ac7c..0000000 --- a/front-end/src/layout/components/TagsView/ScrollPane.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - - diff --git a/front-end/src/layout/components/TagsView/index.vue b/front-end/src/layout/components/TagsView/index.vue deleted file mode 100644 index 98a14ba..0000000 --- a/front-end/src/layout/components/TagsView/index.vue +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - diff --git a/front-end/src/layout/components/WelcomeDialog/index.vue b/front-end/src/layout/components/WelcomeDialog/index.vue deleted file mode 100644 index 3b94a8e..0000000 --- a/front-end/src/layout/components/WelcomeDialog/index.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - - diff --git a/front-end/src/layout/components/index.js b/front-end/src/layout/components/index.js deleted file mode 100644 index 585d6a5..0000000 --- a/front-end/src/layout/components/index.js +++ /dev/null @@ -1,7 +0,0 @@ -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'; -export { default as Contact } from './Contact/index.vue'; -export { default as WelcomeDialog } from './WelcomeDialog'; diff --git a/front-end/src/layout/index.vue b/front-end/src/layout/index.vue deleted file mode 100644 index 128627c..0000000 --- a/front-end/src/layout/index.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - - - diff --git a/front-end/src/layout/mixin/ResizeHandler.js b/front-end/src/layout/mixin/ResizeHandler.js deleted file mode 100644 index 0621d53..0000000 --- a/front-end/src/layout/mixin/ResizeHandler.js +++ /dev/null @@ -1,49 +0,0 @@ -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 }); - } else { - store.dispatch('app/openSideBar', { withoutAnimation: false }); - } - } - }, - }, -}; diff --git a/front-end/src/main.js b/front-end/src/main.js deleted file mode 100644 index ed81021..0000000 --- a/front-end/src/main.js +++ /dev/null @@ -1,128 +0,0 @@ -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 'element-ui/lib/theme-chalk/base.css'; -// import enLang from 'element-ui/lib/locale/lang/en'// 如果使用中文语言包请默认支持,无需额外引入,请删除该依赖 -// import UmyUi from 'umy-ui' -// import 'umy-ui/lib/theme-chalk/index.css' // 引入样式 - -// 引入vxe-table 组件 https://vxetable.cn/#/table/start/install -import XEUtils from 'xe-utils'; -import { - VXETable, - Header, - Column, - Table, - Icon, - Keyboard, - Tooltip, - Colgroup, - Menu, -} from 'vxe-table'; -import zhCN from 'vxe-table/lib/locale/lang/zh-CN'; -// 按需加载的方式默认是不带国际化的,自定义国际化需要自行解析占位符 '{0}',例如: -VXETable.setup({ - i18n: (key, args) => XEUtils.toFormatString(XEUtils.get(zhCN, key), args), - zIndex: 3001, - icon: { - TABLE_SORT_ASC: 'vxe-icon--caret-top', - TABLE_SORT_DESC: 'vxe-icon--caret-bottom', - TABLE_FILTER_NONE: 'vxe-icon--funnel', - TABLE_FILTER_MATCH: 'vxe-icon--funnel', - TABLE_EDIT: 'vxe-icon--edit-outline', - TABLE_TREE_LOADED: 'vxe-icon--refresh roll', - TABLE_TREE_OPEN: 'vxe-icon--caret-right rotate90', - TABLE_TREE_CLOSE: 'vxe-icon--caret-right', - TABLE_EXPAND_LOADED: 'vxe-icon--refresh roll', - TABLE_EXPAND_OPEN: 'vxe-icon--arrow-right rotate90', - TABLE_EXPAND_CLOSE: 'vxe-icon--arrow-right', - }, -}); -// 表格功能 -Vue.use(Keyboard).use(Header).use(Menu).use(Column).use(Table).use(Icon).use(Tooltip).use(Colgroup); - -import '@/styles/index.scss'; // global css -import '@/styles/ruoyi.scss'; // global css -import 'vue-draggable-resizable/dist/VueDraggableResizable.css'; - -import App from './App'; -import store from './store'; -import router from './router'; - -import './icons'; // icon -import './permission'; // permission control -import './utils/error-log'; // error log -import '@/utils/prototype-native.js'; // window原生方法绑定 -import '@/utils/prototype-vue.js'; // Vue.prototype.$全局方法绑定 - -import permission from './directive/permission'; -Vue.use(permission); - -// 注册全局实用过滤器 -import * as filters from './filters'; -Object.keys(filters).forEach(key => { - Vue.filter(key, filters[key]); -}); - -// 自定义的npm包 UI组件 -import FeiJiUI from './packages'; -Vue.use(FeiJiUI); -Vue.prototype.$ScrollLoad = FeiJiUI.ScrollLoad; - -// 自定义的npm包 用于个人列表配置 -import ElementTableSortable from './components/ElementTableSortable'; -Vue.use(ElementTableSortable); - -// 自定义组件 全局挂载 -import componentsUI from '@/components'; -Vue.use(componentsUI); - -import vuescroll from 'vuescroll'; -Vue.use(vuescroll); -// Vue.use(vuescroll, { -// ops: {}, // 在这里设置全局默认配置 -// name: 'vueScroll', // 在这里自定义组件名字,默认是vueScroll -// }); - -import SuperFlow from 'vue-super-flow'; -import 'vue-super-flow/lib/index.css'; -Vue.use(SuperFlow); - -import VueClipboard from 'vue-clipboard2'; -Vue.use(VueClipboard); - -// https://vue-scrollto.netlify.app/docs/#as-a-vue-directive -import VueScrollTo from 'vue-scrollto'; -Vue.use(VueScrollTo, { - container: 'body', - duration: 500, - easing: 'ease', - offset: 0, - force: true, - cancelable: true, - onStart: false, - onDone: false, - onCancel: false, - x: false, - y: true, -}); - -Vue.use(Element, { - size: Cookies.get('size') || 'mini', // set element-ui default size - // locale: enLang // 如果使用中文,无需设置,请删除 -}); -// Vue.use(UmyUi) - -Vue.config.productionTip = false; - -new Vue({ - el: '#app', - router, - store, - render: h => h(App), -}); diff --git a/front-end/src/packages/BjCheckboxLov/index.vue b/front-end/src/packages/BjCheckboxLov/index.vue deleted file mode 100644 index ad05f01..0000000 --- a/front-end/src/packages/BjCheckboxLov/index.vue +++ /dev/null @@ -1,129 +0,0 @@ - - diff --git a/front-end/src/packages/BjCopyIcon/index.vue b/front-end/src/packages/BjCopyIcon/index.vue deleted file mode 100644 index 058a9f1..0000000 --- a/front-end/src/packages/BjCopyIcon/index.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/front-end/src/packages/BjDateTimerPicker/index.vue b/front-end/src/packages/BjDateTimerPicker/index.vue deleted file mode 100644 index 7dcfab2..0000000 --- a/front-end/src/packages/BjDateTimerPicker/index.vue +++ /dev/null @@ -1,117 +0,0 @@ - - diff --git a/front-end/src/packages/BjDialog/index.vue b/front-end/src/packages/BjDialog/index.vue deleted file mode 100644 index f8b9322..0000000 --- a/front-end/src/packages/BjDialog/index.vue +++ /dev/null @@ -1,122 +0,0 @@ - - - - - diff --git a/front-end/src/packages/BjDialogList/index.vue b/front-end/src/packages/BjDialogList/index.vue deleted file mode 100644 index aeeb650..0000000 --- a/front-end/src/packages/BjDialogList/index.vue +++ /dev/null @@ -1,490 +0,0 @@ - - - diff --git a/front-end/src/packages/BjDialogTable/index.vue b/front-end/src/packages/BjDialogTable/index.vue deleted file mode 100644 index a5a0474..0000000 --- a/front-end/src/packages/BjDialogTable/index.vue +++ /dev/null @@ -1,566 +0,0 @@ - - - diff --git a/front-end/src/packages/BjDivider/index.vue b/front-end/src/packages/BjDivider/index.vue deleted file mode 100644 index c48b3f4..0000000 --- a/front-end/src/packages/BjDivider/index.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/front-end/src/packages/BjDrawerForm/index.vue b/front-end/src/packages/BjDrawerForm/index.vue deleted file mode 100644 index 158d801..0000000 --- a/front-end/src/packages/BjDrawerForm/index.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - - diff --git a/front-end/src/packages/BjImportFile/index.vue b/front-end/src/packages/BjImportFile/index.vue deleted file mode 100644 index 5fbc608..0000000 --- a/front-end/src/packages/BjImportFile/index.vue +++ /dev/null @@ -1,184 +0,0 @@ - - - diff --git a/front-end/src/packages/BjInputCode/index.vue b/front-end/src/packages/BjInputCode/index.vue deleted file mode 100644 index 273e9b1..0000000 --- a/front-end/src/packages/BjInputCode/index.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - diff --git a/front-end/src/packages/BjInputMoney/index.vue b/front-end/src/packages/BjInputMoney/index.vue deleted file mode 100644 index 54b5998..0000000 --- a/front-end/src/packages/BjInputMoney/index.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/front-end/src/packages/BjInputNumber/index.vue b/front-end/src/packages/BjInputNumber/index.vue deleted file mode 100644 index 547a2e1..0000000 --- a/front-end/src/packages/BjInputNumber/index.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - diff --git a/front-end/src/packages/BjPagingTable/README.md b/front-end/src/packages/BjPagingTable/README.md deleted file mode 100644 index 1c41c45..0000000 --- a/front-end/src/packages/BjPagingTable/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# BjPagingTable 简单的分页表格 - -## 使用方法 - -```js - - - - -``` - -```js - data(){ - tableApi:commonApi.getLogPage, //必填 - defaultParams:{} //接口的默认参数,非必填 - } -``` diff --git a/front-end/src/packages/BjPagingTable/index.vue b/front-end/src/packages/BjPagingTable/index.vue deleted file mode 100644 index c30f59f..0000000 --- a/front-end/src/packages/BjPagingTable/index.vue +++ /dev/null @@ -1,275 +0,0 @@ - - - diff --git a/front-end/src/packages/BjRadioLov/index.vue b/front-end/src/packages/BjRadioLov/index.vue deleted file mode 100644 index 91026e4..0000000 --- a/front-end/src/packages/BjRadioLov/index.vue +++ /dev/null @@ -1,130 +0,0 @@ - - diff --git a/front-end/src/packages/BjRouteTabs/index.vue b/front-end/src/packages/BjRouteTabs/index.vue deleted file mode 100644 index 03c3114..0000000 --- a/front-end/src/packages/BjRouteTabs/index.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - diff --git a/front-end/src/packages/BjSelectChinaArea/index.vue b/front-end/src/packages/BjSelectChinaArea/index.vue deleted file mode 100644 index 71fb4ad..0000000 --- a/front-end/src/packages/BjSelectChinaArea/index.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - diff --git a/front-end/src/packages/BjSelectLov/index.vue b/front-end/src/packages/BjSelectLov/index.vue deleted file mode 100644 index 48cff6c..0000000 --- a/front-end/src/packages/BjSelectLov/index.vue +++ /dev/null @@ -1,200 +0,0 @@ - - diff --git a/front-end/src/packages/BjSelectProvinces/index.vue b/front-end/src/packages/BjSelectProvinces/index.vue deleted file mode 100644 index 935237c..0000000 --- a/front-end/src/packages/BjSelectProvinces/index.vue +++ /dev/null @@ -1,203 +0,0 @@ - - - - diff --git a/front-end/src/packages/BjTag/index.vue b/front-end/src/packages/BjTag/index.vue deleted file mode 100644 index 85308dc..0000000 --- a/front-end/src/packages/BjTag/index.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - diff --git a/front-end/src/packages/BjTagList/index.vue b/front-end/src/packages/BjTagList/index.vue deleted file mode 100644 index abd9ba9..0000000 --- a/front-end/src/packages/BjTagList/index.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/front-end/src/packages/BjTextarea/index.vue b/front-end/src/packages/BjTextarea/index.vue deleted file mode 100644 index 209f8cb..0000000 --- a/front-end/src/packages/BjTextarea/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/front-end/src/packages/BjUpload/index.vue b/front-end/src/packages/BjUpload/index.vue deleted file mode 100644 index 8b5fc8c..0000000 --- a/front-end/src/packages/BjUpload/index.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - diff --git a/front-end/src/packages/README.md b/front-end/src/packages/README.md deleted file mode 100644 index 7d974b1..0000000 --- a/front-end/src/packages/README.md +++ /dev/null @@ -1,32 +0,0 @@ -## Introduction - -基于 vue 和 element-ui - -- BjImportFile -- BjDialogList -- BjDivider -- BjDrawerForm -- BjSelectLov -- BjRouteTabs -- BjInputMoney -- ScrollLoad -- BjPagingTable -- BjSelectProvinces -- BjInputNumber -- BjSelectChinaArea -- BjUpload -- BjDialogTable -- BjInputCode -- BjTag - -## Getting started - -```bash -# install -npm i bj-ui - -``` - -- 1.3.0 新增 ScrollLoad ,用于下拉框的滚动加载 -- 1.3.1 ScrollLoad 组件增加参数:defaultParams -- 1.3.3 BjDialogList 组件:1、修复多选分页时数据清空的问题;2、增加参数:tagName rowKeys。 diff --git a/front-end/src/packages/ScrollLoad/README.md b/front-end/src/packages/ScrollLoad/README.md deleted file mode 100644 index 35aa4cf..0000000 --- a/front-end/src/packages/ScrollLoad/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# ScrollLoad 表格的滚动加载 - -## 使用示例 - -```js - -import ScrollLoad from 'scrollLoad'; - -const DEFAULT_PAGE=1; -export default { - data() { - return { - tableData:[], - ScrollLoad:null - } - }, - mounted() { - - this.ScrollLoad = new ScrollLoad(this.loadFun,{el:this.$refs.elTable.bodyWrapper, page:DEFAULT_PAGE}); - - }, - methods(){ - resetSearch(){ - this.ScrollLoad.init(); - }, - loadFun(){ - const CURRENT_PAGE = this.ScrollLoad.page(); - ajax({page:CURRENT_PAGE}).then(res=>{ - this.ScrollLoad.maxPage(res.totalPages); //最大页码,控制滚动加载 - this.ScrollLoad.page(true); //下一页 - if (CURRENT_PAGE === 0) { - this.tableData = res.list || []; - } else { - this.tableData = this.tableData.concat(res.list || []); - } - }) - }, - } -} -``` diff --git a/front-end/src/packages/ScrollLoad/index.js b/front-end/src/packages/ScrollLoad/index.js deleted file mode 100644 index 83c076a..0000000 --- a/front-end/src/packages/ScrollLoad/index.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * - * @param {*} loadFun 加载回调函数 - * @param {*} options 配置 {} - * @param {*} options.el null, 滚动元素的父级 - * @param {*} options.offset: 0, 滚动计算的偏差 - * @param {*} options.autoLoad false,首次自动加载 - * @param {*} options.page: 0, 当前页 - * @param {*} options.maxPage: 0, 最大页(page>maxPage时,不再触发loadFun) - * @param {*} options.autoPage: false,内部自动累加page(会在loadFun前触发) - * @param {*} options.isEnd: false,停止触发loadFun - */ -export default function(loadFun, options = {}) { - const _THIS = this; - const DEFAULT_OPTIONS = { - log: false, - el: null, - offset: 0, - autoLoad: false, - page: 0, - maxPage: 0, - autoPage: false, - isEnd: false, - }; - _THIS.defaultOptions = Object.assign({}, DEFAULT_OPTIONS, options); - _THIS.options = Object.assign({}, _THIS.defaultOptions, {}); - - /** *debug */ - function log(v) { - if (_THIS.options.log) console.log(v); - } - log(_THIS.options); - - _THIS.init = function(options) { - _THIS.options = Object.assign({}, _THIS.defaultOptions, options || {}); - }; - /** - * - * @param {*} value 为数字时,设置值; 为空时,返回当前page; 为true时,累加 - * @returns - */ - _THIS.page = function(value) { - if (value === undefined) { - return _THIS.options.page; - } - if (value === true) { - _THIS.options.page++; - return _THIS.options.page; - } - _THIS.options.page = value; - return _THIS.options.page; - }; - /** - * - * @param {*} value 设置值; 为空时,返回当前maxPage; - * @returns - */ - _THIS.maxPage = function(value) { - if (value === undefined) { - return _THIS.options.maxPage; - } - _THIS.options.maxPage = value; - return _THIS.options.maxPage; - }; - /** - * - * @param {*} value 设置值; 为空时,返回当前isEnd; - * @returns - */ - _THIS.isEnd = function(value) { - if (value === undefined) { - return _THIS.options.isEnd; - } - _THIS.options.isEnd = value; - return _THIS.options.isEnd; - }; - - _THIS.options.el.addEventListener('scroll', function(res) { - const TARGET = res.target; - if (TARGET.clientHeight + TARGET.scrollTop + _THIS.options.offset >= TARGET.scrollHeight) { - if (_THIS.isEnd()) { - log(`ScrollLoad.js:_THIS.isEnd`); - return; - } - - if (_THIS.maxPage() && _THIS.page() > _THIS.maxPage()) { - log(`ScrollLoad.js:End By _THIS.maxPage ( ${_THIS.maxPage()} ) `); - return; - } - - log('加载下一页'); - if (_THIS.options.autoPage) { - _THIS.page(true); - log(`ScrollLoad.js:_THIS.autoPage`); - } - log(`ScrollLoad.js:_THIS.Page ${_THIS.page()}/${_THIS.maxPage()} `); - loadFun(); - } - }); - if (_THIS.options.autoLoad) { - setTimeout(() => { - loadFun(); - }, 100); - } -} diff --git a/front-end/src/packages/ScrollSelect/README.md b/front-end/src/packages/ScrollSelect/README.md deleted file mode 100644 index a65a691..0000000 --- a/front-end/src/packages/ScrollSelect/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# ScrollLoad 表格的滚动加载 - -## 使用示例 - -### res-key - -res-key 目标数据 在 接口返回体的位置。多层嵌套 json。 如 response: - -```javascript -{ - data: { - title: '', - content: { - list: [{ a: '1' }, { b: '2' }], - }, - }, -} - -``` - -则:`res-key = 'data/content/list'` - -### - -```js - - - -``` diff --git a/front-end/src/packages/ScrollSelect/index.vue b/front-end/src/packages/ScrollSelect/index.vue deleted file mode 100644 index 2c66a9a..0000000 --- a/front-end/src/packages/ScrollSelect/index.vue +++ /dev/null @@ -1,289 +0,0 @@ - - diff --git a/front-end/src/packages/index.js b/front-end/src/packages/index.js deleted file mode 100644 index c2f8d0a..0000000 --- a/front-end/src/packages/index.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-08-12 09:28:35 - * @LastEditTime: 2022-04-27 15:08:49 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\packages\index.js - */ -import BjImportFile from './BjImportFile'; -import BjDialogList from './BjDialogList'; -import BjDivider from './BjDivider'; -import BjDrawerForm from './BjDrawerForm'; -import BjSelectLov from './BjSelectLov'; -import BjCheckboxLov from './BjCheckboxLov'; -import BjRadioLov from './BjRadioLov'; -import BjRouteTabs from './BjRouteTabs'; -import BjInputMoney from './BjInputMoney'; -import ScrollLoad from './ScrollLoad'; -import ScrollSelect from './ScrollSelect'; -import BjPagingTable from './BjPagingTable'; -import BjSelectProvinces from './BjSelectProvinces'; -import BjInputNumber from './BjInputNumber'; -import BjSelectChinaArea from './BjSelectChinaArea'; -import BjUpload from './BjUpload'; -import BjDialogTable from './BjDialogTable'; -import BjDialog from './BjDialog'; -import BjDateTimerPicker from './BjDateTimerPicker'; -import BjCopyIcon from './BjCopyIcon'; -import BjTextarea from './BjTextarea'; - -// 编码组件 -import BjInputCode from './BjInputCode'; -import BjTag from './BjTag'; -import BjTagList from './BjTagList'; - -const components = [ - BjImportFile, - BjDialogList, - BjDivider, - BjDrawerForm, - BjSelectLov, - BjCheckboxLov, - BjRadioLov, - BjRouteTabs, - BjInputMoney, - ScrollSelect, - BjPagingTable, - BjSelectProvinces, - BjInputNumber, - BjSelectChinaArea, - BjUpload, - BjDialogTable, - BjDialog, - BjDateTimerPicker, - BjInputCode, - BjTag, - BjTagList, - BjCopyIcon, - BjTextarea, -]; -const version = '1.4.0'; -const install = function(Vue, opts = {}) { - components.forEach(component => { - if (component.name) { - Vue.component(component.name, component); - } else { - try { - console.log(`组件 ${component.__file.split('/')[1]} 未命名,注册失败`, component); - } catch (error) { - console.log('组件未命名,注册失败', component, error); - } - } - }); - console.log('%c npm i bj-ui@' + version, 'background-color:#f88;color:#fff'); - // Vue.prototype.$loading = Loading.service; -}; - -/* istanbul ignore if */ -if (typeof window !== 'undefined' && window.Vue) { - install(window.Vue); -} - -export default { - version: version, - install, - BjImportFile, - BjDialogList, - BjDivider, - BjDrawerForm, - BjSelectLov, - BjRouteTabs, - BjInputMoney, - ScrollLoad, - ScrollSelect, - BjPagingTable, - BjSelectProvinces, - BjInputNumber, - BjSelectChinaArea, - BjUpload, - BjDialogTable, - BjDialog, - BjInputCode, - BjCopyIcon, - BjTextarea, -}; diff --git a/front-end/src/packages/package.json b/front-end/src/packages/package.json deleted file mode 100644 index 9cf2f70..0000000 --- a/front-end/src/packages/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "bj-ui", - "version": "1.4.0", - "description": "一个暴击你怕不怕", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "zxq", - "license": "ISC" -} diff --git a/front-end/src/permission.js b/front-end/src/permission.js deleted file mode 100644 index cbc3f61..0000000 --- a/front-end/src/permission.js +++ /dev/null @@ -1,105 +0,0 @@ -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) => { - // console.log('%c ************* router.beforeEach *****************', 'color:red;font-weight:700'); - // console.log(`%c fullPath: ${from.fullPath} => ${to.fullPath}`, 'font-weight:700'); - - // start progress bar - NProgress.start(); - - // set page title - document.title = getPageTitle(to.meta.title); - - if (process.env.VUE_APP_ACCESS_TOKEN) { - await store.dispatch('user/getInfo'); - const USER_PERMISSIONS = store.getters.userPermissions; - const accessRoutes = await store.dispatch('permission/generateRoutes', USER_PERMISSIONS); - router.addRoutes(accessRoutes); - next(); - return; - } - - // determine whether the user has logged in - const hasToken = getToken(); - 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 get Info - const HAS_PERMISSIONS = - store.getters.userPermissions && store.getters.userPermissions.length > 0; - if (HAS_PERMISSIONS) { - next(); - } else { - try { - // get user info - // note: roles must be a object array! such as: ['admin'] or ,['developer','editor'] - await store.dispatch('user/getInfo'); - // console.log('router.beforeEach: user/getInfo => roles =', roles); - - const USER_PERMISSIONS = store.getters.userPermissions; - if (USER_PERMISSIONS.length == 0) { - throw new Error('账号未配置角色,或角色的相关信息错误,请联系管理员'); - } - // console.log('store.getters.userPermissions', JSON.stringify(USER_PERMISSIONS)); - // generate accessible routes map based on roles - // TODO: 把菜单的权限 传入异步路由生成 - const accessRoutes = await store.dispatch('permission/generateRoutes', USER_PERMISSIONS); - console.log('---------accessRoutes---------------------'); - console.log('router.beforeEach: generateRoutes => accessRoutes=', accessRoutes); - // dynamically add accessible routes - // console.log(router); - 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') - // console.log(error); - Message.error(error || 'Has Error'); - setTimeout(async () => { - await store.dispatch('user/logout'); - next(`/login?redirect=${to.path}`); - NProgress.done(); - }, 1000); - } - } - } - } else { - /* has no token*/ - // console.log('===== >>>>> has no token 。 to:', to); - if (whiteList.indexOf(to.path) !== -1) { - // in the free login whitelist, go directly - // 在免费登录白名单,直接去 - // console.log('===== >>>>> 在免费登录白名单,直接去。to.fullPath=', to.fullPath); - next(); - } else { - // other pages that do not have permission to access are redirected to the login page. - // 其他没有访问权限的页面被重定向到登录页面。 - next(`/login?redirect=${to.path}`); - console.log( - `===== >>>>> 其他没有访问权限的页面被重定向到登录页面。/login?redirect=${to.path}`, - ); - NProgress.done(); - } - } -}); - -router.afterEach(() => { - // finish progress bar - NProgress.done(); -}); diff --git a/front-end/src/permissionOS.json b/front-end/src/permissionOS.json deleted file mode 100644 index d3aafde..0000000 --- a/front-end/src/permissionOS.json +++ /dev/null @@ -1,2134 +0,0 @@ -[ - { - "permissionType": "api", - "title": "配置中心", - "icon": "el-icon-s-operation", - "code": "Setting", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "api", - "title": "用户", - "icon": null, - "code": "SettingUser", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "api", - "title": "组织架构", - "icon": null, - "code": "SettingUserOrganization", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "tab", - "title": "集团设置", - "icon": null, - "code": "SettingUserOrganizationGroup", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "tab", - "title": "下属公司", - "icon": null, - "code": "SettingUserOrganizationCompany", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑-集团设置", - "icon": null, - "code": "SettingUserOrganizationGroup_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除-下属公司", - "icon": null, - "code": "SettingUserOrganizationCompany_Delete", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "新增公司-下属公司", - "icon": null, - "code": "SettingUserOrganizationCompany_Add", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "btn", - "title": "编辑-下属公司", - "icon": null, - "code": "SettingUserOrganizationCompany_Edit", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "btn", - "title": "禁用/启用-下属公司", - "icon": null, - "code": "SettingUserOrganizationCompany_Status", - "hiddenFlag": true, - "sort": 6 - } - ] - }, - { - "permissionType": "api", - "title": "账号安全策略", - "icon": null, - "code": "SettingUserAccount", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "账号安全策略配置", - "icon": null, - "code": "SettingUserAccountStrategy", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "保存-账号安全策略配置", - "icon": null, - "code": "SettingUserAccountStrategy_Save", - "hiddenFlag": true, - "sort": 1 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "商品", - "icon": null, - "code": "SettingGoods", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "api", - "title": "商品审核策略", - "icon": null, - "code": "SettingGoodsAudit", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "商品审核策略", - "icon": null, - "code": "SettingGoodsAuditStrategyIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "保存-商品审核策略", - "icon": null, - "code": "SettingGoodsAuditStrategyIndex_Save", - "hiddenFlag": true, - "sort": 1 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "基础数据", - "icon": null, - "code": "SettingBaseData", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "api", - "title": "编码规则", - "icon": null, - "code": "SettingBaseDataCodeRule", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "编码规则", - "icon": null, - "code": "SettingBaseDataCodeRuleIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "新增-编码规则", - "icon": null, - "code": "SettingBaseDataCodeRule_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "编辑-编码规则", - "icon": null, - "code": "SettingBaseDataCodeRuleEdit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除-编码规则", - "icon": null, - "code": "SettingBaseDataCodeRule_Delete", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "国家定义", - "icon": null, - "code": "SettingBaseDataCountry", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "国家定义", - "icon": null, - "code": "SettingBaseDataCountryIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "新增-国家", - "icon": null, - "code": "SettingBaseDataCountryIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑-国家", - "icon": null, - "code": "SettingBaseDataCountryIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "启用/禁用-国家", - "icon": null, - "code": "SettingBaseDataCountryIndex_Status", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "中国行政区定义", - "icon": null, - "code": "SettingBaseDataRegion", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "page", - "title": "中国行政区定义", - "icon": null, - "code": "SettingBaseDataRegionIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "新增-中国行政区", - "icon": null, - "code": "SettingBaseDataRegionIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑-中国行政区", - "icon": null, - "code": "SettingBaseDataRegionIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除-中国行政区", - "icon": null, - "code": "SettingBaseDataRegionIndex_Delete", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "新建下级区域-中国行政区", - "icon": null, - "code": "SettingBaseDataRegionIndex_AddChild", - "hiddenFlag": true, - "sort": 4 - } - ] - }, - { - "permissionType": "api", - "title": "售后原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReason", - "hiddenFlag": false, - "sort": 3, - "children": [ - { - "permissionType": "tab", - "title": "仅退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonRefundIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "新增仅退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonRefundIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑仅退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonRefundIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "禁用/启用仅退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonRefundIndex_Status", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "删除仅退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonRefundIndex_Delete", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "tab", - "title": "退货退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonReturnIndex", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "btn", - "title": "新增退货退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonReturnIndex_Add", - "hiddenFlag": true, - "sort": 6 - }, - { - "permissionType": "btn", - "title": "编辑退货退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonReturnIndex_Edit", - "hiddenFlag": true, - "sort": 7 - }, - { - "permissionType": "btn", - "title": "禁用/启用退货退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonReturnIndex_Status", - "hiddenFlag": true, - "sort": 8 - }, - { - "permissionType": "btn", - "title": "删除退货退款原因", - "icon": null, - "code": "SettingBaseDataAfterSalesReasonReturnIndex_Delete", - "hiddenFlag": true, - "sort": 9 - } - ] - }, - { - "permissionType": "api", - "title": "值集管理", - "icon": null, - "code": "SettingBaseDataLov", - "hiddenFlag": false, - "sort": 4, - "children": [ - { - "permissionType": "page", - "title": "值集管理", - "icon": null, - "code": "SettingBaseDataLovIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "创建值集值", - "icon": null, - "code": "SettingBaseDataLovIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑值集值", - "icon": null, - "code": "SettingBaseDataLovIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除值集值", - "icon": null, - "code": "SettingBaseDataLovIndex_Delete", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "SettingBaseDataLovIndex_Status", - "hiddenFlag": true, - "sort": 4 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "索引配置", - "icon": null, - "code": "SettingIndexes", - "hiddenFlag": false, - "sort": 3, - "children": [ - { - "permissionType": "api", - "title": "索引配置列表", - "icon": null, - "code": "SettingIndexesConfig", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "索引配置列表", - "icon": null, - "code": "SettingIndexesConfigListIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "新增索引", - "icon": null, - "code": "SettingIndexesConfigListAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "编辑索引", - "icon": null, - "code": "SettingIndexesConfigListEdit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "启用/禁用-索引", - "icon": null, - "code": "SettingIndexesConfigList_Status", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "查询配置", - "icon": null, - "code": "SettingInquiry", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "查询配置", - "icon": null, - "code": "SettingInquiryIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "添加查询配置", - "icon": null, - "code": "SettingInquiryAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "编辑查询配置", - "icon": null, - "code": "SettingInquiryEdit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除-查询配置", - "icon": null, - "code": "SettingInquiry_Delete", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "索引同步", - "icon": null, - "code": "SettingIndexesSync", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "page", - "title": "索引同步", - "icon": null, - "code": "SettingIndexesSyncIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "添加同步索引", - "icon": null, - "code": "SettingIndexesSyncAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "编辑同步索引", - "icon": null, - "code": "SettingIndexesSyncEdit", - "hiddenFlag": true, - "sort": 2 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "文件管理", - "icon": null, - "code": "SettingFile", - "hiddenFlag": false, - "sort": 4, - "children": [ - { - "permissionType": "api", - "title": "汇总查询", - "icon": null, - "code": "SettingFileSearch", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "汇总查询", - "icon": null, - "code": "SettingFileSearchIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "文件上传-汇总查询", - "icon": null, - "code": "SettingFileSearchIndex_UpLoad", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "预览-汇总查询", - "icon": null, - "code": "SettingFileSearchIndex_View", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "下载-汇总查询", - "icon": null, - "code": "SettingFileSearchIndex_DownLoad", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "存储配置", - "icon": null, - "code": "SettingFileStorage", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "存储配置", - "icon": null, - "code": "SettingFileStorageIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "新增-存储配置", - "icon": null, - "code": "SettingFileStorageIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑-存储配置", - "icon": null, - "code": "SettingFileStorageIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除-存储配置", - "icon": null, - "code": "SettingFileStorageIndex_Delete", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "上传容量配置", - "icon": null, - "code": "SettingFileUploadRam", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "page", - "title": "上传容量配置", - "icon": null, - "code": "SettingFileUploadRamIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "保存-上传容量配置", - "icon": null, - "code": "SettingFileUploadRamIndex_Save", - "hiddenFlag": true, - "sort": 1 - } - ] - }, - { - "permissionType": "api", - "title": "上传详细配置", - "icon": null, - "code": "SettingFileUploadConfig", - "hiddenFlag": false, - "sort": 3, - "children": [ - { - "permissionType": "page", - "title": "上传详细配置", - "icon": null, - "code": "SettingFileUploadConfigIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "新增-上传详细配置", - "icon": null, - "code": "SettingFileUploadConfigIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑-上传详细配置", - "icon": null, - "code": "SettingFileUploadConfigIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除-上传详细配置", - "icon": null, - "code": "SettingFileUploadConfigIndex_Delete", - "hiddenFlag": true, - "sort": 3 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "事务管理", - "icon": null, - "code": "SettingInstance", - "hiddenFlag": false, - "sort": 5, - "children": [ - { - "permissionType": "api", - "title": "事务列表", - "icon": null, - "code": "SettingInstanceManage", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "事务列表", - "icon": null, - "code": "SettingInstanceManageIndex", - "hiddenFlag": true, - "sort": 0 - } - ] - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "业务中心", - "icon": "el-icon-notebook-1", - "code": "Business", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "api", - "title": "用户管理", - "icon": null, - "code": "BusinessUser", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "api", - "title": "账户管理", - "icon": null, - "code": "BusinessUserAccount", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "账户管理", - "icon": null, - "code": "BusinessUserAccountIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "新建账户", - "icon": null, - "code": "BusinessUserAccountAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "编辑账户", - "icon": null, - "code": "BusinessUserAccountEdit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "关联组织架构", - "icon": null, - "code": "BusinessUserAccountIndex_RelatedCompany", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "修改密码", - "icon": null, - "code": "BusinessUserAccountIndex_ChangePassword", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessUserAccountIndex_UseStatus", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "btn", - "title": "锁定/解锁", - "icon": null, - "code": "BusinessUserAccountIndex_Locked", - "hiddenFlag": true, - "sort": 6 - }, - { - "permissionType": "btn", - "title": "删除账户", - "icon": null, - "code": "BusinessUserAccountIndex_Delete", - "hiddenFlag": true, - "sort": 7 - } - ] - }, - { - "permissionType": "api", - "title": "角色管理", - "icon": null, - "code": "BusinessUserRole", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "角色管理", - "icon": null, - "code": "BusinessUserRoleIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "分配用户", - "icon": null, - "code": "BusinessUserRoleAllotUser", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "分配数据权限", - "icon": null, - "code": "BusinessUserRoleAllotData", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "page", - "title": "分配菜单权限", - "icon": null, - "code": "BusinessUserRoleAllotMenu", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "创建角色", - "icon": null, - "code": "BusinessUserRoleIndex_AddRole", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "btn", - "title": "编辑角色", - "icon": null, - "code": "BusinessUserRoleIndex_Edit", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessUserRoleIndex_Status", - "hiddenFlag": true, - "sort": 6 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "渠道管理", - "icon": null, - "code": "BusinessChannel", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "api", - "title": "网店管理", - "icon": null, - "code": "BusinessChannelOnline", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "网店管理", - "icon": null, - "code": "BusinessChannelOnlineIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "创建网店", - "icon": null, - "code": "BusinessChannelOnlineList_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑网店", - "icon": null, - "code": "BusinessChannelOnlineList_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除网店", - "icon": null, - "code": "BusinessChannelOnlineList_Delete", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessChannelOnlineList_Status", - "hiddenFlag": true, - "sort": 4 - } - ] - }, - { - "permissionType": "api", - "title": "门店管理", - "icon": null, - "code": "BusinessChannelPhysical", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "门店管理", - "icon": null, - "code": "BusinessChannelPhysicalIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "创建门店", - "icon": null, - "code": "BusinessChannelPhysicalList_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑门店", - "icon": null, - "code": "BusinessChannelPhysicalList_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除门店", - "icon": null, - "code": "BusinessChannelPhysicalList_Delete", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessChannelPhysicalList_Status", - "hiddenFlag": true, - "sort": 4 - } - ] - }, - { - "permissionType": "api", - "title": "仓储管理", - "icon": null, - "code": "BusinessChannelStorage", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "page", - "title": "仓储管理", - "icon": null, - "code": "BusinessChannelStorageIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "创建仓储", - "icon": null, - "code": "BusinessChannelStorageIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑仓储", - "icon": null, - "code": "BusinessChannelStorageIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessChannelStorageIndex_Status", - "hiddenFlag": true, - "sort": 3 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "商品管理", - "icon": null, - "code": "BusinessGoods", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "api", - "title": "商品管理", - "icon": null, - "code": "BusinessGoodsSpu", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "tab", - "title": "普通商品管理", - "icon": null, - "code": "BusinessGoodsSpuOrdinaryIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "普通商品详情", - "icon": null, - "code": "BusinessGoodsSpuOrdinaryView", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "添加普通商品", - "icon": null, - "code": "BusinessGoodsSpuOrdinaryAdd", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "page", - "title": "编辑普通商品", - "icon": null, - "code": "BusinessGoodsSpuOrdinaryEdit", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "普通商品-导入数据", - "icon": null, - "code": "BusinessGoodsSpuOrdinary_ImportData", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "btn", - "title": "普通商品-下载模板", - "icon": null, - "code": "BusinessGoodsSpuOrdinary_DownloadTemplate", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "btn", - "title": "普通商品-删除商品", - "icon": null, - "code": "BusinessGoodsSpuOrdinary_Delete", - "hiddenFlag": true, - "sort": 6 - }, - { - "permissionType": "btn", - "title": "普通商品-启用/禁用", - "icon": null, - "code": "BusinessGoodsSpuOrdinary_Status", - "hiddenFlag": true, - "sort": 7 - }, - { - "permissionType": "tab", - "title": "套餐商品管理", - "icon": null, - "code": "BusinessGoodsSpuPackageIndex", - "hiddenFlag": true, - "sort": 8 - }, - { - "permissionType": "page", - "title": "套餐商品详情", - "icon": null, - "code": "BusinessGoodsSpuPackageView", - "hiddenFlag": true, - "sort": 9 - }, - { - "permissionType": "page", - "title": "添加套餐商品", - "icon": null, - "code": "BusinessGoodsSpuPackageAdd", - "hiddenFlag": true, - "sort": 10 - }, - { - "permissionType": "page", - "title": "编辑套餐商品", - "icon": null, - "code": "BusinessGoodsSpuPackageEdit", - "hiddenFlag": true, - "sort": 11 - }, - { - "permissionType": "btn", - "title": "套餐商品-导入数据", - "icon": null, - "code": "BusinessGoodsSpuPackage_ImportData", - "hiddenFlag": true, - "sort": 12 - }, - { - "permissionType": "btn", - "title": "套餐商品-下载模板", - "icon": null, - "code": "BusinessGoodsSpuPackage_DownloadTemplate", - "hiddenFlag": true, - "sort": 13 - }, - { - "permissionType": "btn", - "title": "套餐商品-删除商品", - "icon": null, - "code": "BusinessGoodsSpuPackage_Delete", - "hiddenFlag": true, - "sort": 14 - }, - { - "permissionType": "btn", - "title": "套餐商品-启用/禁用", - "icon": null, - "code": "BusinessGoodsSpuPackage_Status", - "hiddenFlag": true, - "sort": 15 - } - ] - }, - { - "permissionType": "api", - "title": "SKU管理", - "icon": null, - "code": "BusinessGoodsSku", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "tab", - "title": "普通SKU列表", - "icon": null, - "code": "BusinessGoodsSkuOrdinaryIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "添加普通SKU", - "icon": null, - "code": "BusinessGoodsSkuOrdinaryAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "编辑普通SKU", - "icon": null, - "code": "BusinessGoodsSkuOrdinaryEdit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "page", - "title": "查看普通SKU", - "icon": null, - "code": "BusinessGoodsSkuOrdinaryView", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "普通SKU-导入数据", - "icon": null, - "code": "BusinessGoodsSkuOrdinary_ImportData", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "btn", - "title": "普通SKU-下载模板", - "icon": null, - "code": "BusinessGoodsSkuOrdinary_DownloadTemplate", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "btn", - "title": "普通SKU-删除SKU", - "icon": null, - "code": "BusinessGoodsSkuOrdinary_Delete", - "hiddenFlag": true, - "sort": 6 - }, - { - "permissionType": "btn", - "title": "普通SKU-启用/禁用", - "icon": null, - "code": "BusinessGoodsSkuOrdinary_Status", - "hiddenFlag": true, - "sort": 7 - }, - { - "permissionType": "btn", - "title": "普通SKU-提交", - "icon": null, - "code": "BusinessGoodsSkuOrdinary_Audit", - "hiddenFlag": true, - "sort": 8 - }, - { - "permissionType": "tab", - "title": "套餐SKU列表", - "icon": null, - "code": "BusinessGoodsSkuPackageIndex", - "hiddenFlag": true, - "sort": 9 - }, - { - "permissionType": "page", - "title": "添加套餐SKU", - "icon": null, - "code": "BusinessGoodsSkuPackageAdd", - "hiddenFlag": true, - "sort": 10 - }, - { - "permissionType": "page", - "title": "编辑套餐SKU", - "icon": null, - "code": "BusinessGoodsSkuPackageEdit", - "hiddenFlag": true, - "sort": 11 - }, - { - "permissionType": "page", - "title": "查看套餐SKU", - "icon": null, - "code": "BusinessGoodsSkuPackageView", - "hiddenFlag": true, - "sort": 12 - }, - { - "permissionType": "btn", - "title": "套餐SKU-导入数据", - "icon": null, - "code": "BusinessGoodsSkuPackage_ImportData", - "hiddenFlag": true, - "sort": 13 - }, - { - "permissionType": "btn", - "title": "套餐SKU-下载模板", - "icon": null, - "code": "BusinessGoodsSkuPackage_DownloadTemplate", - "hiddenFlag": true, - "sort": 14 - }, - { - "permissionType": "btn", - "title": "套餐SKU-删除SKU", - "icon": null, - "code": "BusinessGoodsSkuPackage_Delete", - "hiddenFlag": true, - "sort": 15 - }, - { - "permissionType": "btn", - "title": "套餐SKU-启用/禁用", - "icon": null, - "code": "BusinessGoodsSkuPackage_Status", - "hiddenFlag": true, - "sort": 16 - }, - { - "permissionType": "btn", - "title": "套餐SKU-提交", - "icon": null, - "code": "BusinessGoodsSkuPackage_Audit", - "hiddenFlag": true, - "sort": 17 - }, - { - "permissionType": "tab", - "title": "草稿SKU列表", - "icon": null, - "code": "BusinessGoodsSkuDraftIndex", - "hiddenFlag": true, - "sort": 18 - }, - { - "permissionType": "btn", - "title": "草稿SKU-提交", - "icon": null, - "code": "BusinessGoodsSkuDraft_Audit", - "hiddenFlag": true, - "sort": 19 - } - ] - }, - { - "permissionType": "api", - "title": "分类管理", - "icon": null, - "code": "BusinessGoodsClassify", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "page", - "title": "分类管理", - "icon": null, - "code": "BusinessGoodsClassifyIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "添加分类", - "icon": null, - "code": "BusinessGoodsClassify_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑分类", - "icon": null, - "code": "BusinessGoodsClassify_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "导入数据", - "icon": null, - "code": "BusinessGoodsClassify_ImportData", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "下载模板", - "icon": null, - "code": "BusinessGoodsClassify_DownloadTemplate", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "btn", - "title": "删除分类", - "icon": null, - "code": "BusinessGoodsClassify_Delete", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessGoodsClassify_Status", - "hiddenFlag": true, - "sort": 6 - } - ] - }, - { - "permissionType": "api", - "title": "品牌管理", - "icon": null, - "code": "BusinessGoodsBrand", - "hiddenFlag": false, - "sort": 3, - "children": [ - { - "permissionType": "page", - "title": "品牌管理", - "icon": null, - "code": "BusinessGoodsBrandIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "创建品牌", - "icon": null, - "code": "BusinessGoodsBrandIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑品牌", - "icon": null, - "code": "BusinessGoodsBrandIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除品牌", - "icon": null, - "code": "BusinessGoodsBrandIndex_Delete", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessGoodsBrandIndex_Status", - "hiddenFlag": true, - "sort": 4 - } - ] - }, - { - "permissionType": "api", - "title": "素材管理", - "icon": null, - "code": "BusinessGoodsMaterial", - "hiddenFlag": false, - "sort": 4, - "children": [ - { - "permissionType": "page", - "title": "素材管理", - "icon": null, - "code": "BusinessGoodsMaterialIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "创建素材", - "icon": null, - "code": "BusinessGoodsMaterialIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑素材", - "icon": null, - "code": "BusinessGoodsMaterialIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "删除素材", - "icon": null, - "code": "BusinessGoodsMaterialIndex_Delete", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "价格项管理", - "icon": null, - "code": "BusinessGoodsPriceItem", - "hiddenFlag": false, - "sort": 5, - "children": [ - { - "permissionType": "page", - "title": "价格项管理", - "icon": null, - "code": "BusinessGoodsPriceItemIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "编辑价格项", - "icon": null, - "code": "BusinessGoodsPriceItemIndex_Edit", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessGoodsPriceItemIndex_Status", - "hiddenFlag": true, - "sort": 2 - } - ] - }, - { - "permissionType": "api", - "title": "商品审核", - "icon": null, - "code": "BusinessGoodsAudit", - "hiddenFlag": false, - "sort": 6, - "children": [ - { - "permissionType": "tab", - "title": "商品SKU审核", - "icon": null, - "code": "BusinessGoodsAuditSkuOrdinaryIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "查看商品SKU审核详情", - "icon": null, - "code": "BusinessGoodsAuditSkuOrdinaryView", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "审核商品SKU审核详情", - "icon": null, - "code": "BusinessGoodsAuditSkuOrdinaryAudit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "商品SKU审核-通过", - "icon": null, - "code": "BusinessGoodsAuditSkuOrdinary_Pass", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "商品SKU审核-驳回", - "icon": null, - "code": "BusinessGoodsAuditSkuOrdinary_reject", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "tab", - "title": "套餐SKU审核", - "icon": null, - "code": "BusinessGoodsAuditSkuPackageIndex", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "page", - "title": "查看套餐SKU审核详情", - "icon": null, - "code": "BusinessGoodsAuditSkuPackageView", - "hiddenFlag": true, - "sort": 6 - }, - { - "permissionType": "page", - "title": "审核套餐SKU审核详情", - "icon": null, - "code": "BusinessGoodsAuditSkuPackageAudit", - "hiddenFlag": true, - "sort": 7 - }, - { - "permissionType": "btn", - "title": "套餐SKU审核-通过", - "icon": null, - "code": "BusinessGoodsAuditSkuPackage_Pass", - "hiddenFlag": true, - "sort": 8 - }, - { - "permissionType": "btn", - "title": "套餐SKU审核-驳回", - "icon": null, - "code": "BusinessGoodsAuditSkuPackage_reject", - "hiddenFlag": true, - "sort": 9 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "库存管理", - "icon": null, - "code": "BusinessStock", - "hiddenFlag": false, - "sort": 3, - "children": [ - { - "permissionType": "api", - "title": "库存查询", - "icon": null, - "code": "BusinessStockSearch", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "库存查询", - "icon": null, - "code": "BusinessStockSearchIndex", - "hiddenFlag": true, - "sort": 0 - } - ] - }, - { - "permissionType": "api", - "title": "库存变动查询", - "icon": null, - "code": "BusinessStockChange", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "库存变动查询", - "icon": null, - "code": "BusinessStockChangeIndex", - "hiddenFlag": true, - "sort": 0 - } - ] - }, - { - "permissionType": "api", - "title": "入库管理", - "icon": null, - "code": "BusinessStockEntry", - "hiddenFlag": false, - "sort": 2, - "children": [ - { - "permissionType": "tab", - "title": "入库通知单", - "icon": null, - "code": "BusinessStockEntryInformIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "入库通知单详情", - "icon": null, - "code": "BusinessStockEntryInformView", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "tab", - "title": "入库结果单", - "icon": null, - "code": "BusinessStockEntryResultIndex", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "page", - "title": "入库结果单详情", - "icon": null, - "code": "BusinessStockEntryResultView", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "出库管理", - "icon": null, - "code": "BusinessStockDelivery", - "hiddenFlag": false, - "sort": 3, - "children": [ - { - "permissionType": "tab", - "title": "出库通知单", - "icon": null, - "code": "BusinessStockDeliveryInformIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "出库通知单详情", - "icon": null, - "code": "BusinessStockDeliveryInformView", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "tab", - "title": "出库结果单", - "icon": null, - "code": "BusinessStockDeliveryResultIndex", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "page", - "title": "出库结果单详情", - "icon": null, - "code": "BusinessStockDeliveryResultView", - "hiddenFlag": true, - "sort": 3 - } - ] - }, - { - "permissionType": "api", - "title": "数据同步管理", - "icon": null, - "code": "BusinessStockSynchronization", - "hiddenFlag": false, - "sort": 4, - "children": [ - { - "permissionType": "page", - "title": "数据同步管理", - "icon": null, - "code": "BusinessStockSynchronizationIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "新建数据同步", - "icon": null, - "code": "BusinessStockSynchronizationAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "审核通过", - "icon": null, - "code": "BusinessStockSynchronizationIndex_Pass", - "hiddenFlag": true, - "sort": 2 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "普通订单", - "icon": null, - "code": "BusinessOrder", - "hiddenFlag": false, - "sort": 4, - "children": [ - { - "permissionType": "api", - "title": "三方销售单", - "icon": null, - "code": "BusinessOrderThird", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "三方销售单", - "icon": null, - "code": "BusinessOrderThirdIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "三方单录入", - "icon": null, - "code": "BusinessOrderThirdAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "三方销售单详情", - "icon": null, - "code": "BusinessOrderThirdView", - "hiddenFlag": true, - "sort": 2 - } - ] - }, - { - "permissionType": "api", - "title": "内部销售单", - "icon": null, - "code": "BusinessOrderInternal", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "内部销售单", - "icon": null, - "code": "BusinessOrderInternalIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "内部销售单详情", - "icon": null, - "code": "BusinessOrderInternalView", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "销售单录入", - "icon": null, - "code": "BusinessOrderInternalAdd", - "hiddenFlag": true, - "sort": 2 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "售后管理", - "icon": null, - "code": "BusinessAfter", - "hiddenFlag": false, - "sort": 5, - "children": [ - { - "permissionType": "api", - "title": "三方售后单", - "icon": null, - "code": "BusinessAfterThird", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "tab", - "title": "三方仅退款", - "icon": null, - "code": "BusinessAfterThirdRefundIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "三方仅退款详情", - "icon": null, - "code": "BusinessAfterThirdRefundView", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "新增三方仅退款单", - "icon": null, - "code": "BusinessAfterThirdRefundAdd", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "tab", - "title": "三方退货退款", - "icon": null, - "code": "BusinessAfterThirdReturnIndex", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "page", - "title": "三方退货退款详情", - "icon": null, - "code": "BusinessAfterThirdReturnView", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "page", - "title": "新增三方退货退款单", - "icon": null, - "code": "BusinessAfterThirdReturnAdd", - "hiddenFlag": true, - "sort": 5 - } - ] - }, - { - "permissionType": "api", - "title": "内部售后单", - "icon": null, - "code": "BusinessAfterInternal", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "tab", - "title": "内部仅退款", - "icon": null, - "code": "BusinessAfterInternalRefundIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "page", - "title": "新增内部仅退款单", - "icon": null, - "code": "BusinessAfterInternalRefundAdd", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "page", - "title": "内部仅退款单详情", - "icon": null, - "code": "BusinessAfterInternalRefundView", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "tab", - "title": "内部退货退款", - "icon": null, - "code": "BusinessAfterInternalReturnIndex", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "page", - "title": "新增内部退货退款单", - "icon": null, - "code": "BusinessAfterInternalReturnAdd", - "hiddenFlag": true, - "sort": 4 - }, - { - "permissionType": "page", - "title": "内部退货退款单详情", - "icon": null, - "code": "BusinessAfterInternalReturnView", - "hiddenFlag": true, - "sort": 5 - }, - { - "permissionType": "page", - "title": "新增内部换货单", - "icon": null, - "code": "BusinessAfterInternalExchangeAdd", - "hiddenFlag": true, - "sort": 6 - }, - { - "permissionType": "page", - "title": "内部换货单详情", - "icon": null, - "code": "BusinessAfterInternalExchangeView", - "hiddenFlag": true, - "sort": 7 - } - ] - } - ] - }, - { - "permissionType": "api", - "title": "标签管理", - "icon": null, - "code": "BusinessLabel", - "hiddenFlag": false, - "sort": 6, - "children": [ - { - "permissionType": "api", - "title": "系统标签", - "icon": null, - "code": "BusinessLabelSys", - "hiddenFlag": false, - "sort": 0, - "children": [ - { - "permissionType": "page", - "title": "系统标签", - "icon": null, - "code": "BusinessLabelSysIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessLabelSysIndex_Status", - "hiddenFlag": true, - "sort": 1 - } - ] - }, - { - "permissionType": "api", - "title": "人工标签", - "icon": null, - "code": "BusinessLabelHand", - "hiddenFlag": false, - "sort": 1, - "children": [ - { - "permissionType": "page", - "title": "人工标签", - "icon": null, - "code": "BusinessLabelHandIndex", - "hiddenFlag": true, - "sort": 0 - }, - { - "permissionType": "btn", - "title": "新增", - "icon": null, - "code": "BusinessLabelHandIndex_Add", - "hiddenFlag": true, - "sort": 1 - }, - { - "permissionType": "btn", - "title": "编辑", - "icon": null, - "code": "BusinessLabelHandIndex_Edit", - "hiddenFlag": true, - "sort": 2 - }, - { - "permissionType": "btn", - "title": "启用/禁用", - "icon": null, - "code": "BusinessLabelHandIndex_Status", - "hiddenFlag": true, - "sort": 3 - }, - { - "permissionType": "btn", - "title": "删除", - "icon": null, - "code": "BusinessLabelHandIndex_Delete", - "hiddenFlag": true, - "sort": 4 - } - ] - } - ] - } - ] - } -] diff --git a/front-end/src/router/center-business/after.js b/front-end/src/router/center-business/after.js deleted file mode 100644 index 7eb99d7..0000000 --- a/front-end/src/router/center-business/after.js +++ /dev/null @@ -1,208 +0,0 @@ -/* - * 订单管理 - */ -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -// import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'after', - name: 'BusinessAfter', - component: EmptyRouterAlive, - meta: { - title: '售后管理', - }, - children: [ - /** 三方售后单 */ - { - path: 'third', - name: 'BusinessAfterThird', - component: EmptyRouter, - redirect: 'third/refund', - meta: { - title: '三方售后单', - }, - children: [ - // 仅退款 - { - path: 'refund', - name: 'BusinessAfterThirdRefundIndex', - component: () => import('@/views/center-business/after/third/refund/index'), - meta: { - title: '三方仅退款', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'refund/view', - name: 'BusinessAfterThirdRefundView', - component: () => import('@/views/center-business/after/third/refund/view'), - meta: { - title: '三方仅退款详情', - }, - hidden: true, - }, - { - path: 'refund/add', - name: 'BusinessAfterThirdRefundAdd', - component: () => import('@/views/center-business/after/third/refund/add'), - meta: { - title: '新增三方仅退款单', - }, - hidden: true, - }, - // 退货退款 - { - path: 'return', - name: 'BusinessAfterThirdReturnIndex', - component: () => import('@/views/center-business/after/third/return/index'), - meta: { - title: '三方退货退款', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'return/view', - name: 'BusinessAfterThirdReturnView', - component: () => import('@/views/center-business/after/third/return/view'), - meta: { - title: '三方退货退款详情', - }, - hidden: true, - }, - { - path: 'return/add', - name: 'BusinessAfterThirdReturnAdd', - component: () => import('@/views/center-business/after/third/return/add'), - meta: { - title: '新增三方退货退款单', - }, - hidden: true, - }, - // 换货 - // { - // path: 'exchange', - // name: 'BusinessAfterThirdExchange', - // component: () => import('@/views/center-business/after/third/exchange/index'), - // meta: { - // title: '三方换货', - // }, - // permissionType: 'tab', - // hidden: true, - // }, - // { - // path: 'exchange/view', - // name: 'BusinessAfterThirdExchangeView', - // component: () => import('@/views/center-business/after/third/exchange/view'), - // meta: { - // title: '三方换货详情', - // }, - // hidden: true, - // }, - ], - }, - /** 内部售后单 */ - { - path: 'internal', - name: 'BusinessAfterInternal', - component: EmptyRouter, - redirect: 'internal/refund', - meta: { - title: '内部售后单', - }, - children: [ - // 仅退款 - { - path: 'refund', - name: 'BusinessAfterInternalRefundIndex', - component: () => import('@/views/center-business/after/internal/refund/index'), - meta: { - title: '内部仅退款', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'refund/add', - name: 'BusinessAfterInternalRefundAdd', - component: () => import('@/views/center-business/after/internal/refund/add'), - meta: { - title: '新增内部仅退款单', - isCache: true, - }, - hidden: true, - }, - { - path: 'refund/view', - name: 'BusinessAfterInternalRefundView', - component: () => import('@/views/center-business/after/internal/refund/view'), - meta: { - title: '内部仅退款单详情', - }, - hidden: true, - }, - // 退货退款 - { - path: 'return', - name: 'BusinessAfterInternalReturnIndex', - component: () => import('@/views/center-business/after/internal/return/index'), - meta: { - title: '内部退货退款', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'return/add', - name: 'BusinessAfterInternalReturnAdd', - component: () => import('@/views/center-business/after/internal/return/add'), - meta: { - title: '新增内部退货退款单', - isCache: true, - }, - hidden: true, - }, - { - path: 'return/view', - name: 'BusinessAfterInternalReturnView', - component: () => import('@/views/center-business/after/internal/return/view'), - meta: { - title: '内部退货退款单详情', - }, - hidden: true, - }, - // 换货 - // { - // path: 'exchange', - // name: 'BusinessAfterInternalExchangeIndex', - // component: () => import('@/views/center-business/after/internal/exchange/index'), - // meta: { - // title: '内部换货', - // }, - // permissionType: 'tab', - // hidden: true, - // }, - { - path: 'exchange/add', - name: 'BusinessAfterInternalExchangeAdd', - component: () => import('@/views/center-business/after/internal/exchange/add'), - meta: { - title: '新增内部换货单', - isCache: true, - }, - hidden: true, - }, - { - path: 'exchange/view', - name: 'BusinessAfterInternalExchangeView', - component: () => import('@/views/center-business/after/internal/exchange/view'), - meta: { - title: '内部换货单详情', - }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-business/channel.js b/front-end/src/router/center-business/channel.js deleted file mode 100644 index 7a740e5..0000000 --- a/front-end/src/router/center-business/channel.js +++ /dev/null @@ -1,203 +0,0 @@ -/* - * 渠道管理 - */ - -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -export default { - path: 'channel', - name: 'BusinessChannel', - component: EmptyRouterAlive, - meta: { - title: '渠道管理', - }, - children: [ - { - path: 'online', - name: 'BusinessChannelOnline', - component: EmptyRouter, - redirect: 'online/index', - meta: { - title: '网店管理', - }, - children: [ - { - path: 'index', - name: 'BusinessChannelOnlineIndex', - component: () => import('@/views/center-business/channel/online'), - meta: { - title: '网店管理', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessChannelOnlineList_Add', - meta: { title: '创建网店', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'BusinessChannelOnlineList_Edit', - meta: { title: '编辑网店' }, - hidden: true, - }, - { - path: '', - name: 'BusinessChannelOnlineList_Delete', - meta: { title: '删除网店' }, - hidden: true, - }, - { - path: '', - name: 'BusinessChannelOnlineList_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - // { - // path: '', - // name: 'BusinessChannelOnlineList_Set', - // meta: { title: '设置网店' }, - // hidden: true, - // }, - /** 按钮权限end */ - ], - }, - { - path: 'physical', - name: 'BusinessChannelPhysical', - component: EmptyRouter, - redirect: 'physical/index', - meta: { - title: '门店管理', - }, - children: [ - { - path: 'index', - name: 'BusinessChannelPhysicalIndex', - component: () => import('@/views/center-business/channel/physical'), - meta: { - title: '门店管理', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessChannelPhysicalList_Add', - meta: { title: '创建门店', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'BusinessChannelPhysicalList_Edit', - meta: { title: '编辑门店' }, - hidden: true, - }, - { - path: '', - name: 'BusinessChannelPhysicalList_Delete', - meta: { title: '删除门店' }, - hidden: true, - }, - { - path: '', - name: 'BusinessChannelPhysicalList_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - /* ****************************** 暂时不显示 *******************************/ - // { - // path: 'dealer', - // name: 'BusinessChannelDealer', - // component: EmptyRouter, - // redirect: 'dealer/index', - // meta: { - // title: '经销商管理', - // }, - // children: [ - // { - // path: 'index', - // name: 'BusinessChannelDealerIndex', - // component: () => import('@/views/center-business/channel/dealer'), - // meta: { - // title: '经销商管理', - // }, - // }, - // /** 按钮权限start */ - // { - // path: '', - // name: 'BusinessChannelDealerIndex_Add', - // meta: { title: '创建经销商' }, - // hidden: true, - // }, - // { - // path: '', - // name: 'BusinessChannelDealerIndex_Edit', - // meta: { title: '编辑经销商' }, - // hidden: true, - // }, - // { - // path: '', - // name: 'BusinessChannelDealerIndex_Delete', - // meta: { title: '删除经销商' }, - // hidden: true, - // }, - // { - // path: '', - // name: 'BusinessChannelDealerIndex_Status', - // meta: { title: '启用/禁用' }, - // hidden: true, - // }, - // /** 按钮权限end */ - // ], - // }, - { - path: 'storage', - name: 'BusinessChannelStorage', - component: EmptyRouter, - redirect: 'storage/index', - meta: { - title: '仓储管理', - }, - children: [ - { - path: 'index', - name: 'BusinessChannelStorageIndex', - component: () => import('@/views/center-business/channel/storage'), - meta: { - title: '仓储管理', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessChannelStorageIndex_Add', - meta: { title: '创建仓储', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'BusinessChannelStorageIndex_Edit', - meta: { title: '编辑仓储' }, - hidden: true, - }, - // { - // path: '', - // name: 'BusinessChannelStorageIndex_Delete', - // meta: { title: '删除仓储' }, - // hidden: true, - // }, - { - path: '', - name: 'BusinessChannelStorageIndex_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - ], -}; diff --git a/front-end/src/router/center-business/goods.js b/front-end/src/router/center-business/goods.js deleted file mode 100644 index ca2da7d..0000000 --- a/front-end/src/router/center-business/goods.js +++ /dev/null @@ -1,757 +0,0 @@ -/* - * 商品中心 - */ - -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -// import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'goods', - name: 'BusinessGoods', - component: EmptyRouterAlive, - meta: { - title: '商品管理', - }, - children: [ - /** **** 商品管理 **** */ - { - path: 'spu', - name: 'BusinessGoodsSpu', - component: EmptyRouter, - redirect: 'spu/ordinary', - meta: { - title: '商品管理', - }, - children: [ - { - path: 'ordinary', - name: 'BusinessGoodsSpuOrdinaryIndex', - component: () => import('@/views/center-business/goods/spu/ordinary'), - meta: { - title: '普通商品管理', - }, - permissionType: 'tab', - }, - { - path: 'ordinary/view', - name: 'BusinessGoodsSpuOrdinaryView', - component: () => import('@/views/center-business/goods/spu/ordinary/view'), - meta: { - title: '普通商品详情', - }, - hidden: true, - }, - { - path: 'ordinary/add', - name: 'BusinessGoodsSpuOrdinaryAdd', - component: () => import('@/views/center-business/goods/spu/ordinary/add'), - meta: { - title: '添加普通商品', - isCache: true, - }, - hidden: true, - }, - { - path: 'ordinary/edit', - name: 'BusinessGoodsSpuOrdinaryEdit', - component: () => import('@/views/center-business/goods/spu/ordinary/edit'), - meta: { - title: '编辑普通商品', - }, - hidden: true, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessGoodsSpuOrdinary_ImportData', - meta: { title: '普通商品-导入数据' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSpuOrdinary_DownloadTemplate', - meta: { title: '普通商品-下载模板' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSpuOrdinary_Delete', - meta: { title: '普通商品-删除商品' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSpuOrdinary_Status', - meta: { title: '普通商品-启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - { - path: 'package', - name: 'BusinessGoodsSpuPackageIndex', - component: () => import('@/views/center-business/goods/spu/package'), - meta: { - title: '套餐商品管理', - }, - permissionType: 'tab', - }, - { - path: 'package/view', - name: 'BusinessGoodsSpuPackageView', - component: () => import('@/views/center-business/goods/spu/package/view'), - meta: { - title: '套餐商品详情', - }, - hidden: true, - }, - { - path: 'package/add', - name: 'BusinessGoodsSpuPackageAdd', - component: () => import('@/views/center-business/goods/spu/package/add'), - meta: { - title: '添加套餐商品', - isCache: true, - }, - hidden: true, - }, - { - path: 'package/edit', - name: 'BusinessGoodsSpuPackageEdit', - component: () => import('@/views/center-business/goods/spu/package/edit'), - meta: { - title: '编辑套餐商品', - }, - hidden: true, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessGoodsSpuPackage_ImportData', - meta: { title: '套餐商品-导入数据' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSpuPackage_DownloadTemplate', - meta: { title: '套餐商品-下载模板' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSpuPackage_Delete', - meta: { title: '套餐商品-删除商品' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSpuPackage_Status', - meta: { title: '套餐商品-启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - /** **** SKU管理 **** */ - { - path: 'sku', - name: 'BusinessGoodsSku', - component: EmptyRouter, - redirect: 'sku/ordinary', - meta: { - title: 'SKU管理', - }, - children: [ - { - path: 'ordinary', - name: 'BusinessGoodsSkuOrdinaryIndex', - component: () => import('@/views/center-business/goods/sku/ordinary'), - meta: { - title: '普通SKU列表', - }, - permissionType: 'tab', - }, - { - path: 'ordinary/add', - name: 'BusinessGoodsSkuOrdinaryAdd', - component: () => import('@/views/center-business/goods/sku/ordinary/add'), - meta: { - title: '添加普通SKU', - isCache: true, - }, - hidden: true, - }, - { - path: 'ordinary/edit', - name: 'BusinessGoodsSkuOrdinaryEdit', - component: () => import('@/views/center-business/goods/sku/ordinary/edit'), - meta: { - title: '编辑普通SKU', - }, - hidden: true, - }, - { - path: 'ordinary/view', - name: 'BusinessGoodsSkuOrdinaryView', - component: () => import('@/views/center-business/goods/sku/ordinary/view'), - meta: { - title: '查看普通SKU', - }, - hidden: true, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessGoodsSkuOrdinary_ImportData', - meta: { title: '普通SKU-导入数据' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSkuOrdinary_DownloadTemplate', - meta: { title: '普通SKU-下载模板' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSkuOrdinary_Delete', - meta: { title: '普通SKU-删除SKU' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSkuOrdinary_Status', - meta: { title: '普通SKU-启用/禁用' }, - hidden: true, - }, - - { - path: '', - name: 'BusinessGoodsSkuOrdinary_Audit', - meta: { title: '普通SKU-提交' }, - hidden: true, - }, - /** 按钮权限end */ - { - path: 'package', - name: 'BusinessGoodsSkuPackageIndex', - component: () => import('@/views/center-business/goods/sku/package'), - meta: { - title: '套餐SKU列表', - }, - permissionType: 'tab', - }, - { - path: 'package/add', - name: 'BusinessGoodsSkuPackageAdd', - component: () => import('@/views/center-business/goods/sku/package/add'), - meta: { - title: '添加套餐SKU', - isCache: true, - }, - hidden: true, - }, - { - path: 'package/edit', - name: 'BusinessGoodsSkuPackageEdit', - component: () => import('@/views/center-business/goods/sku/package/edit'), - meta: { - title: '编辑套餐SKU', - }, - hidden: true, - }, - { - path: 'package/view', - name: 'BusinessGoodsSkuPackageView', - component: () => import('@/views/center-business/goods/sku/package/view'), - meta: { - title: '查看套餐SKU', - }, - hidden: true, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessGoodsSkuPackage_ImportData', - meta: { title: '套餐SKU-导入数据' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSkuPackage_DownloadTemplate', - meta: { title: '套餐SKU-下载模板' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSkuPackage_Delete', - meta: { title: '套餐SKU-删除SKU' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsSkuPackage_Status', - meta: { title: '套餐SKU-启用/禁用' }, - hidden: true, - }, - - { - path: '', - name: 'BusinessGoodsSkuPackage_Audit', - meta: { title: '套餐SKU-提交' }, - hidden: true, - }, - /** 按钮权限end */ - { - path: 'draft', - name: 'BusinessGoodsSkuDraftIndex', - component: () => import('@/views/center-business/goods/sku/draft/index'), - meta: { - title: '草稿SKU列表', - }, - permissionType: 'tab', - }, - { - path: '', - name: 'BusinessGoodsSkuDraft_Audit', - meta: { title: '草稿SKU-提交' }, - hidden: true, - }, - ], - }, - /** 分类 */ - { - path: 'classify', - name: 'BusinessGoodsClassify', - component: EmptyRouter, - redirect: 'classify/index', - meta: { - title: '分类管理', - }, - children: [ - { - path: 'index', - name: 'BusinessGoodsClassifyIndex', - component: () => import('@/views/center-business/goods/classify'), - meta: { - title: '分类管理', - }, - }, - - /** 按钮权限start */ - { - path: '', - name: 'BusinessGoodsClassify_Add', - meta: { title: '添加分类', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsClassify_Edit', - meta: { title: '编辑分类' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsClassify_ImportData', - meta: { title: '导入数据' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsClassify_DownloadTemplate', - meta: { title: '下载模板' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsClassify_Delete', - meta: { title: '删除分类' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsClassify_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - - /** 按钮权限end */ - ], - }, - /** 品牌 */ - { - path: 'brand', - name: 'BusinessGoodsBrand', - component: EmptyRouter, - redirect: 'brand/index', - meta: { - title: '品牌管理', - }, - children: [ - { - path: 'index', - name: 'BusinessGoodsBrandIndex', - component: () => import('@/views/center-business/goods/brand'), - meta: { - title: '品牌管理', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessGoodsBrandIndex_Add', - meta: { title: '创建品牌', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsBrandIndex_Edit', - meta: { title: '编辑品牌' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsBrandIndex_Delete', - meta: { title: '删除品牌' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsBrandIndex_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - /** **** 素材管理 **** */ - { - path: 'material', - name: 'BusinessGoodsMaterial', - component: EmptyRouter, - redirect: 'material/index', - meta: { - title: '素材管理', - }, - children: [ - { - path: 'index', - name: 'BusinessGoodsMaterialIndex', - component: () => import('@/views/center-business/goods/material'), - meta: { - title: '素材管理', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessGoodsMaterialIndex_Add', - meta: { title: '创建素材' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsMaterialIndex_Edit', - meta: { title: '编辑素材' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsMaterialIndex_Delete', - meta: { title: '删除素材' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - /** **** 价格项管理 **** */ - { - path: 'price/item', - name: 'BusinessGoodsPriceItem', - component: EmptyRouter, - redirect: 'price/item/index', - meta: { - title: '价格项管理', - }, - children: [ - { - path: 'index', - name: 'BusinessGoodsPriceItemIndex', - component: () => import('@/views/center-business/goods/price/item'), - meta: { - title: '价格项管理', - }, - }, - - /** 按钮权限start */ - // { - // path: '', - // name: 'BusinessGoodsPriceItemIndex_Add', - // meta: { title: '创建价格项' }, - // hidden: true, - // }, - { - path: '', - name: 'BusinessGoodsPriceItemIndex_Edit', - meta: { title: '编辑价格项' }, - hidden: true, - }, - // { - // path: '', - // name: 'BusinessGoodsPriceItemIndex_Delete', - // meta: { title: '删除价格项' }, - // hidden: true, - // }, - { - path: '', - name: 'BusinessGoodsPriceItemIndex_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - - /** **** 虚拟商品 **** */ - // { - // path: 'virtual', - // name: 'BusinessGoodsVirtual', - // component: EmptyRouter, - // redirect: 'virtual/sku-group', - // meta: { - // title: '虚拟商品管理', - // }, - // children: [ - // // 组合商品 - // { - // path: 'sku-group', - // name: 'BusinessGoodsVirtualSkuGroupList', - // component: () => import('@/views/center-business/goods/virtual/sku-group/index'), - // meta: { - // title: '组合商品', - // }, - // permissionType: 'tab', - // hidden: true, - // }, - // { - // path: 'add', - // name: 'BusinessGoodsVirtualSkuGroupAdd', - // component: () => import('@/views/center-business/goods/virtual/sku-group/add'), - // meta: { - // title: '添加组合商品', - // }, - // hidden: true, - // }, - // { - // path: 'edit', - // name: 'BusinessGoodsVirtualSkuGroupEdit', - // component: () => import('@/views/center-business/goods/virtual/sku-group/edit'), - // meta: { - // title: '编辑组合商品', - // }, - // hidden: true, - // }, - // { - // path: 'view', - // name: 'BusinessGoodsVirtualSkuGroupView', - // component: () => import('@/views/center-business/goods/virtual/sku-group/view'), - // meta: { - // title: '组合商品详情', - // }, - // hidden: true, - // }, - // /** 按钮权限start */ - // { - // path: '', - // name: 'BusinessGoodsVirtualSkuGroup_Delete', - // meta: { title: '删除组合商品' }, - // hidden: true, - // }, - // // 子母件商品 - // { - // path: 'spu-son', - // name: 'BusinessGoodsVirtualSpuSonList', - // component: () => import('@/views/center-business/goods/virtual/spu-son/index'), - // meta: { - // title: '子母件商品', - // }, - // permissionType: 'tab', - // hidden: true, - // }, - // { - // path: 'spu-son/add', - // name: 'BusinessGoodsVirtualSpuSonAdd', - // component: () => import('@/views/center-business/goods/virtual/spu-son/add'), - // meta: { - // title: '添加子母件商品', - // }, - // hidden: true, - // }, - // { - // path: 'spu-son/edit', - // name: 'BusinessGoodsVirtualSpuSonEdit', - // component: () => import('@/views/center-business/goods/virtual/spu-son/edit'), - // meta: { - // title: '编辑子母件商品', - // }, - // hidden: true, - // }, - // { - // path: 'spu-son/view', - // name: 'BusinessGoodsVirtualSpuSonView', - // component: () => import('@/views/center-business/goods/virtual/spu-son/view'), - // meta: { - // title: '子母件商品详情', - // }, - // hidden: true, - // }, - // /** 按钮权限start */ - // { - // path: '', - // name: 'BusinessGoodsVirtualSpuSon_Delete', - // meta: { title: '删除子母件商品' }, - // hidden: true, - // }, - // // 安装服务 - // { - // path: 'install-service', - // name: 'BusinessGoodsVirtualInstallServiceList', - // component: () => import('@/views/center-business/goods/virtual/install-service/index'), - // meta: { - // title: '安装服务', - // }, - // permissionType: 'tab', - // hidden: true, - // }, - // { - // path: 'install-service/add', - // name: 'BusinessGoodsVirtualInstallServiceAdd', - // component: () => import('@/views/center-business/goods/virtual/install-service/add'), - // meta: { - // title: '添加安装服务', - // }, - // hidden: true, - // }, - // { - // path: 'install-service/edit', - // name: 'BusinessGoodsVirtualInstallServiceEdit', - // component: () => import('@/views/center-business/goods/virtual/install-service/edit'), - // meta: { - // title: '编辑安装服务', - // }, - // hidden: true, - // }, - // { - // path: 'install-service/view', - // name: 'BusinessGoodsVirtualInstallServiceView', - // component: () => import('@/views/center-business/goods/virtual/install-service/view'), - // meta: { - // title: '安装服务详情', - // }, - // hidden: true, - // }, - // /** 按钮权限start */ - // { - // path: '', - // name: 'BusinessGoodsVirtualInstallService_Delete', - // meta: { title: '删除安装服务' }, - // hidden: true, - // }, - // ], - // }, - /** **** 审核商品 **** */ - { - path: 'audit', - name: 'BusinessGoodsAudit', - component: EmptyRouter, - redirect: 'audit/sku/ordinary', - meta: { - title: '商品审核', - }, - children: [ - { - path: 'sku/ordinary', - name: 'BusinessGoodsAuditSkuOrdinaryIndex', - component: () => import('@/views/center-business/goods/audit/sku/ordinary'), - meta: { - title: '商品SKU审核', - }, - permissionType: 'tab', - hidden: true, - }, - - { - path: 'sku/ordinary/view', - name: 'BusinessGoodsAuditSkuOrdinaryView', - component: () => import('@/views/center-business/goods/audit/sku/ordinary/view'), - meta: { - title: '查看商品SKU审核详情', - }, - hidden: true, - }, - { - path: 'sku/ordinary/audit', - name: 'BusinessGoodsAuditSkuOrdinaryAudit', - component: () => import('@/views/center-business/goods/audit/sku/ordinary/audit'), - meta: { - title: '审核商品SKU审核详情', - }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsAuditSkuOrdinary_Pass', - meta: { title: '商品SKU审核-通过' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsAuditSkuOrdinary_reject', - meta: { title: '商品SKU审核-驳回' }, - hidden: true, - }, - { - path: 'sku/package', - name: 'BusinessGoodsAuditSkuPackageIndex', - component: () => import('@/views/center-business/goods/audit/sku/package'), - meta: { - title: '套餐SKU审核', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'sku/package/view', - name: 'BusinessGoodsAuditSkuPackageView', - component: () => import('@/views/center-business/goods/audit/sku/package/view'), - meta: { - title: '查看套餐SKU审核详情', - }, - hidden: true, - }, - { - path: 'sku/package/audit', - name: 'BusinessGoodsAuditSkuPackageAudit', - component: () => import('@/views/center-business/goods/audit/sku/package/audit'), - meta: { - title: '审核套餐SKU审核详情', - }, - hidden: true, - }, - - { - path: '', - name: 'BusinessGoodsAuditSkuPackage_Pass', - meta: { title: '套餐SKU审核-通过' }, - hidden: true, - }, - { - path: '', - name: 'BusinessGoodsAuditSkuPackage_reject', - meta: { title: '套餐SKU审核-驳回' }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-business/index.js b/front-end/src/router/center-business/index.js deleted file mode 100644 index 79e0c87..0000000 --- a/front-end/src/router/center-business/index.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-13 14:49:11 - * @LastEditTime: 2022-06-10 09:49:54 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\router\center-business\index.js - */ -import user from './user'; // 用户管理 -import channel from './channel'; // 渠道管理 -import goods from './goods'; // 商品管理 -import stock from './stock'; // 库存管理 -import order from './order'; // 订单管理 -import after from './after'; // 售后管理 -import label from './label'; // 标签管理 - -/* ****************************** 暂时不显示 *******************************/ -// import log from './log'; // 日志管理 -// import worksheet from './worksheet'; // 工单管理 -// import strategy from './strategy'; -// 修改以下数组,需同时修改 src\layout\components\Sidebar\HoverItem.vue 99:TODO -const BUSINESS_CENTER_ROUTER = [ - user, - channel, - goods, - stock, - order, - after, - label, - // log, - - // worksheet, - // strategy, -]; -// 按可见子菜单数量 从小到大 排序一下…… -// BUSINESS_CENTER_ROUTER.sort(function(a, b) { -// return ( -// a.children.filter(e => e.hidden != true).length - -// b.children.filter(e => e.hidden != true).length -// ); -// }); -export default BUSINESS_CENTER_ROUTER; diff --git a/front-end/src/router/center-business/label.js b/front-end/src/router/center-business/label.js deleted file mode 100644 index db9e329..0000000 --- a/front-end/src/router/center-business/label.js +++ /dev/null @@ -1,84 +0,0 @@ -// -- 标签管理 label -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -// import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'label', - name: 'BusinessLabel', - component: EmptyRouterAlive, - meta: { - title: '标签管理', - }, - children: [ - { - path: 'sys', - name: 'BusinessLabelSys', - component: EmptyRouter, - redirect: 'sys/index', - meta: { - title: '系统标签', - }, - children: [ - { - path: 'index', - name: 'BusinessLabelSysIndex', - component: () => import('@/views/center-business/label/sys/index'), - meta: { - title: '系统标签', - }, - }, - { - path: '', - name: 'BusinessLabelSysIndex_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - ], - }, - { - path: 'hand', - name: 'BusinessLabelHand', - component: EmptyRouter, - redirect: 'hand/index', - meta: { - title: '人工标签', - }, - children: [ - { - path: 'index', - name: 'BusinessLabelHandIndex', - component: () => import('@/views/center-business/label/hand/index'), - meta: { - title: '人工标签', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessLabelHandIndex_Add', - meta: { title: '新增', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'BusinessLabelHandIndex_Edit', - meta: { title: '编辑' }, - hidden: true, - }, - { - path: '', - name: 'BusinessLabelHandIndex_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - { - path: '', - name: 'BusinessLabelHandIndex_Delete', - meta: { title: '删除' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - ], -}; diff --git a/front-end/src/router/center-business/log.js b/front-end/src/router/center-business/log.js deleted file mode 100644 index 2bce5ac..0000000 --- a/front-end/src/router/center-business/log.js +++ /dev/null @@ -1,53 +0,0 @@ -// --- 日志管理 log - -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'log', - name: 'BusinessLog', - component: EmptyRouterAlive, - meta: { - title: '日志管理', - }, - children: [ - { - path: 'operation/sys', - name: 'BusinessLogOperationSys', - component: EmptyRouter, - redirect: 'operation/sys/index', - meta: { - title: '系统操作日志', - }, - children: [ - { - path: 'index', - name: 'BusinessLogOperationSysIndex', - component: Test0Empty, - meta: { - title: '系统操作日志', - }, - }, - ], - }, - { - path: 'data', - name: 'BusinessLogData', - component: EmptyRouter, - redirect: 'data/index', - meta: { - title: '数据对接日志', - }, - children: [ - { - path: 'index', - name: 'BusinessLogDataIndex', - component: Test0Empty, - meta: { - title: '数据对接日志', - }, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-business/order.js b/front-end/src/router/center-business/order.js deleted file mode 100644 index 3ce5a5c..0000000 --- a/front-end/src/router/center-business/order.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 订单管理 - */ -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -// import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'order', - name: 'BusinessOrder', - component: EmptyRouterAlive, - meta: { - title: '普通订单', - }, - children: [ - { - path: 'third', - name: 'BusinessOrderThird', - component: EmptyRouter, - redirect: 'third/list', - meta: { - title: '三方销售单', - }, - children: [ - { - path: 'list', - name: 'BusinessOrderThirdIndex', - component: () => import('@/views/center-business/order/third/index'), - meta: { - title: '三方销售单', // 拉取订单管理 - }, - }, - { - path: 'add', - name: 'BusinessOrderThirdAdd', - component: () => import('@/views/center-business/order/third/add'), - meta: { - title: '三方单录入', - isCache: true, - }, - hidden: true, - }, - { - path: 'view', - name: 'BusinessOrderThirdView', - component: () => import('@/views/center-business/order/third/view'), - meta: { - title: '三方销售单详情', - }, - hidden: true, - }, - ], - }, - { - path: 'internal', - name: 'BusinessOrderInternal', - component: EmptyRouter, - redirect: 'internal/list', - meta: { - title: '内部销售单', - }, - children: [ - { - path: 'list', - name: 'BusinessOrderInternalIndex', - component: () => import('@/views/center-business/order/internal/index'), - meta: { - title: '内部销售单', - }, - }, - { - path: 'view', - name: 'BusinessOrderInternalView', - component: () => import('@/views/center-business/order/internal/view'), - meta: { - title: '内部销售单详情', - }, - hidden: true, - }, - { - path: 'add', - name: 'BusinessOrderInternalAdd', - component: () => import('@/views/center-business/order/internal/add'), - meta: { - title: '销售单录入', - isCache: true, - }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-business/stock.js b/front-end/src/router/center-business/stock.js deleted file mode 100644 index ebd4175..0000000 --- a/front-end/src/router/center-business/stock.js +++ /dev/null @@ -1,206 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-13 14:49:11 - * @LastEditTime: 2022-06-10 09:51:03 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\router\center-business\stock.js - */ -/* - * 库存管理 - */ -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -// import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'stock', - name: 'BusinessStock', - component: EmptyRouterAlive, - meta: { - title: '库存管理', - }, - children: [ - /** **** 库存查询 Search **** */ - { - path: 'search', - name: 'BusinessStockSearch', - component: EmptyRouter, - redirect: 'search/sku', - meta: { - title: '库存查询', - }, - children: [ - { - path: 'sku', - name: 'BusinessStockSearchIndex', - component: () => import('@/views/center-business/stock/search/index.vue'), - meta: { - title: '库存查询', - }, - hidden: true, - }, - ], - }, - /** **** 库存变动查询 Change **** */ - { - path: 'change', - name: 'BusinessStockChange', - component: EmptyRouter, - redirect: 'change/index', - meta: { - title: '库存变动查询', - }, - children: [ - { - path: 'index', - name: 'BusinessStockChangeIndex', - component: () => import('@/views/center-business/stock/change/index.vue'), - meta: { - title: '库存变动查询', - }, - }, - ], - }, - /** 入库管理 **/ - { - path: 'entry', - name: 'BusinessStockEntry', - component: EmptyRouter, - redirect: 'entry/inform', - meta: { - title: '入库管理', - }, - children: [ - { - path: 'inform', - name: 'BusinessStockEntryInformIndex', - component: () => import('@/views/center-business/stock/entry/inform/index.vue'), - meta: { - title: '入库通知单', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'inform/view', - name: 'BusinessStockEntryInformView', - component: () => import('@/views/center-business/stock/entry/inform/view.vue'), - meta: { - title: '入库通知单详情', - }, - hidden: true, - }, - { - path: 'result', - name: 'BusinessStockEntryResultIndex', - component: () => import('@/views/center-business/stock/entry/result/index.vue'), - meta: { - title: '入库结果单', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'result/view', - name: 'BusinessStockEntryResultView', - component: () => import('@/views/center-business/stock/entry/result/view.vue'), - meta: { - title: '入库结果单详情', - }, - hidden: true, - }, - ], - }, - /** 入库管理end */ - /** 出库管理 **/ - { - path: 'delivery', - name: 'BusinessStockDelivery', - component: EmptyRouter, - redirect: 'delivery/inform', - meta: { - title: '出库管理', - }, - children: [ - { - path: 'inform', - name: 'BusinessStockDeliveryInformIndex', - component: () => import('@/views/center-business/stock/delivery/inform/index.vue'), - meta: { - title: '出库通知单', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'inform/view', - name: 'BusinessStockDeliveryInformView', - component: () => import('@/views/center-business/stock/delivery/inform/view.vue'), - meta: { - title: '出库通知单详情', - }, - hidden: true, - }, - { - path: 'result', - name: 'BusinessStockDeliveryResultIndex', - component: () => import('@/views/center-business/stock/delivery/result/index.vue'), - meta: { - title: '出库结果单', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'result/view', - name: 'BusinessStockDeliveryResultView', - component: () => import('@/views/center-business/stock/delivery/result/view.vue'), - meta: { - title: '出库结果单详情', - }, - hidden: true, - }, - ], - }, - /** 出库管理end */ - /** **** 数据同步管理 Synchronization **** */ - { - path: 'synchronization', - name: 'BusinessStockSynchronization', - component: EmptyRouter, - redirect: 'synchronization/List', - meta: { - title: '数据同步管理', - }, - children: [ - { - path: 'list', - name: 'BusinessStockSynchronizationIndex', - component: () => import('@/views/center-business/stock/synchronization'), - meta: { - title: '数据同步管理', - }, - }, - { - path: 'add', - name: 'BusinessStockSynchronizationAdd', - component: () => import('@/views/center-business/stock/synchronization/add'), - meta: { - title: '新建数据同步', - isCache: true, - }, - hidden: true, - }, - { - path: '', - name: 'BusinessStockSynchronizationIndex_Pass', - meta: { - title: '审核通过', - }, - hidden: true, - }, - ], - }, - /** 数据同步管理end */ - ], -}; diff --git a/front-end/src/router/center-business/user.js b/front-end/src/router/center-business/user.js deleted file mode 100644 index d5ea096..0000000 --- a/front-end/src/router/center-business/user.js +++ /dev/null @@ -1,197 +0,0 @@ -/* - * 用户管理 - */ - -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -export default { - path: 'user', - name: 'BusinessUser', - component: EmptyRouterAlive, - meta: { - title: '用户管理', - }, - children: [ - /** ****** 用户管理 ******** */ - { - path: 'account', - name: 'BusinessUserAccount', - component: EmptyRouter, - redirect: 'account/list', - meta: { title: '账户管理', isCache: true }, - children: [ - { - path: 'list', - name: 'BusinessUserAccountIndex', - component: () => import('@/views/center-business/user/account/index'), - meta: { title: '账户管理', isCache: true }, - }, - { - path: 'add', - name: 'BusinessUserAccountAdd', - component: () => import('@/views/center-business/user/account/add'), - meta: { title: '新建账户', isCache: true }, - hidden: true, - }, - { - path: 'edit', - name: 'BusinessUserAccountEdit', - component: () => import('@/views/center-business/user/account/edit'), - meta: { title: '编辑账户' }, - hidden: true, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessUserAccountIndex_RelatedCompany', - meta: { title: '关联组织架构' }, - hidden: true, - }, - { - path: '', - name: 'BusinessUserAccountIndex_ChangePassword', - meta: { title: '修改密码' }, - hidden: true, - }, - { - path: '', - name: 'BusinessUserAccountIndex_UseStatus', - meta: { title: '启用/禁用' }, - hidden: true, - }, - { - path: '', - name: 'BusinessUserAccountIndex_Locked', - meta: { title: '锁定/解锁' }, - hidden: true, - }, - { - path: '', - name: 'BusinessUserAccountIndex_Delete', - meta: { title: '删除账户' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - - // { - // path: 'account/allot', - // name: 'BusinessUserAccountAllot', - // component: () => import('@/views/center-business/user/account/allot'), - // meta: { title: '分配用户组' }, - // hidden: true, - // }, - /** ****** 用户组管理 ******** */ - // { - // path: 'group/list', - // name: 'BusinessUserGroupList', - // component: () => import('@/views/center-business/user/group/index'), - // meta: { title: '用户组管理' }, - // }, - // { - // path: 'group/edit', - // name: 'BusinessUserGroupEdit', - // component: () => import('@/views/center-business/user/group/edit'), - // meta: { title: '编辑用户组' }, - // hidden: true, - // }, - - /** ****** 角色管理 ******** */ - { - path: 'role', - name: 'BusinessUserRole', - component: EmptyRouter, - redirect: 'role/list', - meta: { title: '角色管理' }, - children: [ - { - path: 'list', - name: 'BusinessUserRoleIndex', - component: () => import('@/views/center-business/user/role/index'), - meta: { title: '角色管理' }, - }, - { - path: 'allot-account', - name: 'BusinessUserRoleAllotUser', - component: () => import('@/views/center-business/user/role/allotUser'), - meta: { title: '分配用户' }, - hidden: true, - }, - { - path: 'allot-data', - name: 'BusinessUserRoleAllotData', - component: () => import('@/views/center-business/user/role/allotData'), - meta: { title: '分配数据权限' }, - hidden: true, - }, - { - path: 'allot-menu', - name: 'BusinessUserRoleAllotMenu', - component: () => import('@/views/center-business/user/role/allotMenu'), - meta: { title: '分配菜单权限' }, - hidden: true, - }, - /** 按钮权限start */ - { - path: '', - name: 'BusinessUserRoleIndex_AddRole', - meta: { title: '创建角色', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'BusinessUserRoleIndex_Edit', - meta: { title: '编辑角色' }, - hidden: true, - }, - { - path: '', - name: 'BusinessUserRoleIndex_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - - /** ****** 权限管理 ******** */ - /* ****************************** 暂时不显示 *******************************/ - // { - // path: 'data', - // name: 'BusinessUserData', - // component: EmptyRouter, - // redirect: 'data/list', - // meta: { title: '权限管理' }, - // children: [ - // { - // path: 'list', - // name: 'BusinessUserDataList', - // component: () => import('@/views/center-business/user/data/index'), - // meta: { title: '权限管理' }, - // }, - // { - // path: 'add', - // name: 'BusinessUserDataAdd', - // component: () => import('@/views/center-business/user/data/add'), - // meta: { title: '新建权限' }, - // hidden: true, - // }, - // /** 按钮权限start */ - // { - // path: '', - // name: 'BusinessUserDataList_Delete', - // meta: { title: '删除权限' }, - // hidden: true, - // }, - // { - // path: '', - // name: 'BusinessUserDataList_AllotData', - // meta: { title: '分配数据权限' }, - // hidden: true, - // }, - // /** 按钮权限end */ - // ], - // }, - ], -}; diff --git a/front-end/src/router/center-business/worksheet.js b/front-end/src/router/center-business/worksheet.js deleted file mode 100644 index d3ac1ab..0000000 --- a/front-end/src/router/center-business/worksheet.js +++ /dev/null @@ -1,62 +0,0 @@ -// ---工单管理 worksheet - -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'worksheet', - name: 'BusinessWorksheet', - component: EmptyRouterAlive, - meta: { - title: '工单管理', - }, - children: [ - { - path: 'install', - name: 'BusinessWorksheetInstall', - component: EmptyRouter, - redirect: 'install/index', - meta: { - title: '安装工单管理', - }, - children: [ - { - path: 'index', - name: 'BusinessWorksheetInstallIndex', - component: Test0Empty, - meta: { - title: '安装工单管理', - }, - }, - ], - }, - { - path: 'service', - name: 'BusinessWorksheetService', - component: EmptyRouter, - redirect: 'service/list', - meta: { - title: '服务管理', - }, - children: [ - { - path: 'list', - name: 'BusinessWorksheetServiceIndex', - component: () => import('@/views/center-business/worksheet/service'), - meta: { - title: '服务管理', - }, - }, - { - path: 'view', - name: 'BusinessWorksheetServiceView', - component: () => import('@/views/center-business/worksheet/service/view.vue'), - meta: { - title: '服务管理详情', - }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/after.js b/front-end/src/router/center-setting/after.js deleted file mode 100644 index b198791..0000000 --- a/front-end/src/router/center-setting/after.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 售后 - */ - -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'after', - name: 'SettingAfter', - component: EmptyRouterAlive, - meta: { - title: '售后', - }, - children: [ - { - path: 'process', - name: 'SettingAfterProcess', - redirect: 'process/config', - component: EmptyRouter, - meta: { - title: '售后流程配置', - }, - children: [ - { - path: 'config', - name: 'SettingAfterProcessConfig', - component: Test0Empty, - meta: { - title: '售后流程配置', - }, - }, - ], - }, - { - path: 'audit', - name: 'SettingAfterAudit', - redirect: 'audit/strategy', - component: EmptyRouter, - meta: { - title: '售后审核策略', - }, - children: [ - { - path: 'strategy', - name: 'SettingAfterAuditStrategy', - component: Test0Empty, - meta: { - title: '售后审核策略', - }, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/base-data.js b/front-end/src/router/center-setting/base-data.js deleted file mode 100644 index f0a268c..0000000 --- a/front-end/src/router/center-setting/base-data.js +++ /dev/null @@ -1,278 +0,0 @@ -/* - * 基础数据设置 - */ - -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -export default { - path: 'base-data', - name: 'SettingBaseData', - component: EmptyRouterAlive, - meta: { - title: '基础数据', - }, - children: [ - { - path: 'code-rule', - name: 'SettingBaseDataCodeRule', - component: EmptyRouter, - redirect: 'code-rule/list', - meta: { - title: '编码规则', - }, - children: [ - { - path: 'list', - name: 'SettingBaseDataCodeRuleIndex', - component: () => import('@/views/center-setting/base-data/code-rule/index'), - meta: { - title: '编码规则', - }, - }, - { - path: '', - name: 'SettingBaseDataCodeRule_Add', - meta: { - title: '新增-编码规则', - }, - hidden: true, - }, - { - path: 'code-rule/edit', - name: 'SettingBaseDataCodeRuleEdit', - component: () => import('@/views/center-setting/base-data/code-rule/edit'), - meta: { - title: '编辑-编码规则', - }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataCodeRule_Delete', - meta: { - title: '删除-编码规则', - }, - hidden: true, - }, - ], - }, - { - path: 'country', - name: 'SettingBaseDataCountry', - component: EmptyRouter, - redirect: 'country/index', - meta: { - title: '国家定义', - }, - children: [ - { - path: 'index', - name: 'SettingBaseDataCountryIndex', - component: () => import('@/views/center-setting/base-data/country/index'), - meta: { - title: '国家定义', - }, - }, - { - path: '', - name: 'SettingBaseDataCountryIndex_Add', - meta: { - title: '新增-国家', - }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataCountryIndex_Edit', - meta: { - title: '编辑-国家', - }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataCountryIndex_Status', - meta: { - title: '启用/禁用-国家', - }, - hidden: true, - }, - ], - }, - { - path: 'region', - name: 'SettingBaseDataRegion', - component: EmptyRouter, - redirect: 'region/index', - meta: { - title: '中国行政区定义', - }, - children: [ - { - path: 'index', - name: 'SettingBaseDataRegionIndex', - component: () => import('@/views/center-setting/base-data/region/index'), - meta: { - title: '中国行政区定义', - }, - }, - { - path: '', - name: 'SettingBaseDataRegionIndex_Add', - meta: { - title: '新增-中国行政区', - }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataRegionIndex_Edit', - meta: { - title: '编辑-中国行政区', - }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataRegionIndex_Delete', - meta: { - title: '删除-中国行政区', - }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataRegionIndex_AddChild', - meta: { - title: '新建下级区域-中国行政区', - }, - hidden: true, - }, - ], - }, - { - path: 'after-sales-reason', - name: 'SettingBaseDataAfterSalesReason', - component: EmptyRouter, - redirect: 'after-sales-reason/refund', - meta: { - title: '售后原因', - }, - children: [ - { - path: 'refund', - name: 'SettingBaseDataAfterSalesReasonRefundIndex', - component: () => import('@/views/center-setting/base-data/after-sales-reason/refund'), - meta: { - title: '仅退款原因', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonRefundIndex_Add', - meta: { title: '新增仅退款原因', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonRefundIndex_Edit', - meta: { title: '编辑仅退款原因' }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonRefundIndex_Status', - meta: { title: '禁用/启用仅退款原因' }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonRefundIndex_Delete', - meta: { title: '删除仅退款原因' }, - hidden: true, - }, - { - path: 'return', - name: 'SettingBaseDataAfterSalesReasonReturnIndex', - component: () => import('@/views/center-setting/base-data/after-sales-reason/return'), - meta: { - title: '退货退款原因', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonReturnIndex_Add', - meta: { title: '新增退货退款原因', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonReturnIndex_Edit', - meta: { title: '编辑退货退款原因' }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonReturnIndex_Status', - meta: { title: '禁用/启用退货退款原因' }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataAfterSalesReasonReturnIndex_Delete', - meta: { title: '删除退货退款原因' }, - hidden: true, - }, - ], - }, - { - path: 'lov', - name: 'SettingBaseDataLov', - component: EmptyRouter, - redirect: 'lov/index', - meta: { - title: '值集管理', - }, - children: [ - { - path: 'index', - name: 'SettingBaseDataLovIndex', - component: () => import('@/views/center-setting/base-data/lov'), - meta: { - title: '值集管理', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'SettingBaseDataLovIndex_Add', - meta: { title: '创建值集值', isCache: true }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataLovIndex_Edit', - meta: { title: '编辑值集值' }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataLovIndex_Delete', - meta: { title: '删除值集值' }, - hidden: true, - }, - { - path: '', - name: 'SettingBaseDataLovIndex_Status', - meta: { title: '启用/禁用' }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/file.js b/front-end/src/router/center-setting/file.js deleted file mode 100644 index a3701fa..0000000 --- a/front-end/src/router/center-setting/file.js +++ /dev/null @@ -1,172 +0,0 @@ -/* - * 文件管理 File - */ -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -export default { - path: 'file', - name: 'SettingFile', - component: EmptyRouterAlive, - redirect: 'file/list', - meta: { - title: '文件管理', - }, - children: [ - { - path: 'search', - name: 'SettingFileSearch', - component: EmptyRouter, - redirect: 'search/list', - meta: { - title: '汇总查询', - }, - children: [ - { - path: 'list', - name: 'SettingFileSearchIndex', - component: () => import('@/views/center-setting/file/search'), - meta: { - title: '汇总查询', - }, - }, - { - path: '', - name: 'SettingFileSearchIndex_UpLoad', - meta: { - title: '文件上传-汇总查询', - }, - hidden: true, - }, - { - path: '', - name: 'SettingFileSearchIndex_View', - meta: { - title: '预览-汇总查询', - }, - hidden: true, - }, - { - path: '', - name: 'SettingFileSearchIndex_DownLoad', - meta: { - title: '下载-汇总查询', - }, - hidden: true, - }, - ], - }, - { - path: 'storage', - name: 'SettingFileStorage', - component: EmptyRouter, - redirect: 'storage/list', - meta: { - title: '存储配置', - }, - children: [ - { - path: 'list', - name: 'SettingFileStorageIndex', - component: () => import('@/views/center-setting/file/storage'), - meta: { - title: '存储配置', - }, - }, - { - path: '', - name: 'SettingFileStorageIndex_Add', - meta: { - title: '新增-存储配置', - }, - hidden: true, - }, - { - path: '', - name: 'SettingFileStorageIndex_Edit', - meta: { - title: '编辑-存储配置', - }, - hidden: true, - }, - { - path: '', - name: 'SettingFileStorageIndex_Delete', - meta: { - title: '删除-存储配置', - }, - hidden: true, - }, - ], - }, - { - path: 'upload/ram', - name: 'SettingFileUploadRam', - component: EmptyRouter, - redirect: 'upload/ram/index', - meta: { - title: '上传容量配置', - }, - children: [ - { - path: 'index', - name: 'SettingFileUploadRamIndex', - component: () => import('@/views/center-setting/file/upload-ram/index'), - meta: { - title: '上传容量配置', - }, - }, - { - path: '', - name: 'SettingFileUploadRamIndex_Save', - meta: { - title: '保存-上传容量配置', - }, - hidden: true, - }, - ], - }, - { - path: 'upload/config', - name: 'SettingFileUploadConfig', - component: EmptyRouter, - redirect: 'upload/config/index', - meta: { - title: '上传详细配置', - }, - children: [ - { - path: 'index', - name: 'SettingFileUploadConfigIndex', - component: () => import('@/views/center-setting/file/upload-config/index'), - meta: { - title: '上传详细配置', - }, - }, - { - path: '', - name: 'SettingFileUploadConfigIndex_Add', - meta: { - title: '新增-上传详细配置', - }, - hidden: true, - }, - { - path: '', - name: 'SettingFileUploadConfigIndex_Edit', - meta: { - title: '编辑-上传详细配置', - }, - hidden: true, - }, - { - path: '', - name: 'SettingFileUploadConfigIndex_Delete', - meta: { - title: '删除-上传详细配置', - }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/goods.js b/front-end/src/router/center-setting/goods.js deleted file mode 100644 index 0db39ee..0000000 --- a/front-end/src/router/center-setting/goods.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 商品 - */ - -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -export default { - path: 'goods', - name: 'SettingGoods', - component: EmptyRouterAlive, - meta: { - title: '商品', - }, - children: [ - { - path: 'audit', - name: 'SettingGoodsAudit', - component: EmptyRouter, - redirect: 'audit/strategy', - meta: { - title: '商品审核策略', - }, - children: [ - { - path: 'strategy', - name: 'SettingGoodsAuditStrategyIndex', - component: () => import('@/views/center-setting/goods/audit/strategy'), - meta: { - title: '商品审核策略', - }, - }, - /** 按钮权限start */ - { - path: '', - name: 'SettingGoodsAuditStrategyIndex_Save', - meta: { - title: '保存-商品审核策略', - }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/index.js b/front-end/src/router/center-setting/index.js deleted file mode 100644 index 48a3c1d..0000000 --- a/front-end/src/router/center-setting/index.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-13 14:49:11 - * @LastEditTime: 2022-06-10 09:52:01 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\router\center-setting\index.js - */ -import user from './user'; // 用户 -import goods from './goods'; // 商品 -import baseData from './base-data'; // 基础数据 -import indexes from './indexes'; // 索引配置 -import file from './file'; // 文件管理 -import instance from './instance'; // 事务管理 - -/* ****************************** 暂时不显示 *******************************/ -// import message from './message'; // 消息服务 -// import after from './after'; // 售后 -// import scheduler from './scheduler'; // 调度服务 -// 修改以下数组,需同时修改 src\layout\components\Sidebar\HoverItem.vue 99:TODO -const SETTING_CENTER_ROUTER = [ - user, - goods, - - // after - - baseData, - // message, - indexes, - file, - // scheduler, - instance, - // manage, - // processOrder, - // stockStructure, - // processChecking, - // search, - // statement, -]; -// 按可见子菜单数量 从小到大 排序一下…… -// SETTING_CENTER_ROUTER.sort(function(a, b) { -// return ( -// a.children.filter(e => e.hidden != true).length - -// b.children.filter(e => e.hidden != true).length -// ); -// }); -export default SETTING_CENTER_ROUTER; diff --git a/front-end/src/router/center-setting/indexes.js b/front-end/src/router/center-setting/indexes.js deleted file mode 100644 index 911b953..0000000 --- a/front-end/src/router/center-setting/indexes.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-07-20 15:46:13 - * @LastEditTime: 2022-06-07 16:50:25 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\router\center-setting\indexes.js - */ -/* - * 索引配置 indexes - */ -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -export default { - path: 'indexes', - name: 'SettingIndexes', - component: EmptyRouterAlive, - meta: { - title: '索引配置', - }, - children: [ - { - path: 'config', - name: 'SettingIndexesConfig', - component: EmptyRouter, - redirect: 'config/list', - meta: { - title: '索引配置列表', - }, - children: [ - { - path: 'list', - name: 'SettingIndexesConfigListIndex', - component: () => import('@/views/center-setting/indexes/list'), - meta: { - title: '索引配置列表', - }, - }, - { - path: 'add', - name: 'SettingIndexesConfigListAdd', - component: () => import('@/views/center-setting/indexes/list/add'), - meta: { - title: '新增索引', - isCache: true, - }, - hidden: true, - }, - { - path: 'edit', - name: 'SettingIndexesConfigListEdit', - component: () => import('@/views/center-setting/indexes/list/edit'), - meta: { - title: '编辑索引', - }, - hidden: true, - }, - { - path: 'edit', - name: 'SettingIndexesConfigList_Status', - meta: { - title: '启用/禁用-索引', - }, - hidden: true, - }, - ], - }, - /** 查询配置部分 */ - { - path: 'inquiry', - name: 'SettingInquiry', - component: EmptyRouter, - redirect: 'inquiry/list', - meta: { - title: '查询配置', - }, - children: [ - { - path: 'list', - name: 'SettingInquiryIndex', - component: () => import('@/views/center-setting/indexes/inquiry'), - meta: { - title: '查询配置', - }, - }, - { - path: 'inquiryAdd', - name: 'SettingInquiryAdd', - component: () => import('@/views/center-setting/indexes/inquiry/add'), - meta: { - title: '添加查询配置', - isCache: true, - }, - hidden: true, - }, - { - path: 'inquiryEdit', - name: 'SettingInquiryEdit', - component: () => import('@/views/center-setting/indexes/inquiry/edit'), - meta: { - title: '编辑查询配置', - }, - hidden: true, - }, - { - path: '', - name: 'SettingInquiry_Delete', - meta: { - title: '删除-查询配置', - }, - hidden: true, - }, - ], - }, - /** 索引同步配置部分 */ - { - path: 'sync', - name: 'SettingIndexesSync', - component: EmptyRouter, - redirect: 'sync/list', - meta: { - title: '索引同步', - }, - children: [ - { - path: 'list', - name: 'SettingIndexesSyncIndex', - component: () => import('@/views/center-setting/indexes/sync'), - meta: { - title: '索引同步', - }, - }, - { - path: 'add', - name: 'SettingIndexesSyncAdd', - component: () => import('@/views/center-setting/indexes/sync/add'), - meta: { - title: '添加同步索引', - isCache: true, - }, - hidden: true, - }, - { - path: 'edit', - name: 'SettingIndexesSyncEdit', - component: () => import('@/views/center-setting/indexes/sync/edit'), - meta: { - title: '编辑同步索引', - }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/instance.js b/front-end/src/router/center-setting/instance.js deleted file mode 100644 index e5035a5..0000000 --- a/front-end/src/router/center-setting/instance.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 事务管理 instance - */ -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -export default { - path: 'instance', - name: 'SettingInstance', - component: EmptyRouterAlive, - meta: { - title: '事务管理', - }, - children: [ - { - path: 'manage', - name: 'SettingInstanceManage', - component: EmptyRouter, - redirect: 'manage/index', - meta: { - title: '事务列表', - }, - children: [ - { - path: 'index', - name: 'SettingInstanceManageIndex', - component: () => import('@/views/center-setting/instance/manage'), - meta: { - title: '事务列表', - }, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/message.js b/front-end/src/router/center-setting/message.js deleted file mode 100644 index d4cc019..0000000 --- a/front-end/src/router/center-setting/message.js +++ /dev/null @@ -1,175 +0,0 @@ -/* - * -消息服务 message - */ -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -// import Test0Empty from '@/views/test/empty.vue'; -export default { - path: 'message', - name: 'SettingMessage', - component: EmptyRouterAlive, - meta: { - title: '消息服务', - }, - children: [ - { - path: 'notice', - name: 'SettingMessageNotice', - component: EmptyRouter, - redirect: 'notice/list', - meta: { - title: '公告管理', - }, - children: [ - { - path: 'list', - name: 'SettingMessageNoticeIndex', - component: () => import('@/views/center-setting/message/notice/index'), - meta: { - title: '公告管理', - }, - }, - { - path: 'add', - name: 'SettingMessageNoticeAdd', - component: () => import('@/views/center-setting/message/notice/add'), - meta: { - title: '新增公告', - isCache: true, - }, - hidden: true, - }, - { - path: 'edit', - name: 'SettingMessageNoticeEdit', - component: () => import('@/views/center-setting/message/notice/edit'), - meta: { - title: '编辑公告', - }, - hidden: true, - }, - ], - }, - { - path: 'email', - name: 'SettingMessageEmail', - component: EmptyRouter, - redirect: 'email/list', - meta: { - title: '邮箱账户配置', - }, - children: [ - { - path: 'list', - name: 'SettingMessageEmailIndex', - component: () => import('@/views/center-setting/message/email/index'), - meta: { - title: '邮箱账户配置', - }, - }, - { - path: 'add', - name: 'SettingMessageEmailAdd', - component: () => import('@/views/center-setting/message/email/add'), - meta: { - title: '新增邮箱配置', - isCache: true, - }, - hidden: true, - }, - { - path: 'edit', - name: 'SettingMessageEmailEdit', - component: () => import('@/views/center-setting/message/email/edit'), - meta: { - title: '编辑邮箱配置', - }, - hidden: true, - }, - ], - }, - { - path: 'sms', - name: 'SettingMessageSms', - component: EmptyRouter, - redirect: 'sms/index', - meta: { - title: '短信账户配置', - }, - children: [ - { - path: 'index', - name: 'SettingMessageSmsIndex', - component: () => import('@/views/center-setting/message/sms/index'), - meta: { - title: '短信账户配置', - }, - }, - ], - }, - // { - // path: 'template', - // name: 'SettingMessageTemplate', - // component: () => import('@/views/center-setting/message/template/index'), - // meta: { - // title: '消息模板管理', - // }, - // }, - // { - // path: 'template/add', - // name: 'SettingMessageTemplateAdd', - // component: () => import('@/views/center-setting/message/template/add'), - // meta: { - // title: '新增消息模板', - // }, - // hidden: true, - // }, - // { - // path: 'template/edit', - // name: 'SettingMessageTemplateEdit', - // component: () => import('@/views/center-setting/message/template/edit'), - // meta: { - // title: '编辑消息模板', - // }, - // hidden: true, - // }, - { - path: 'send', - name: 'SettingMessageSend', - component: EmptyRouter, - redirect: 'send/list', - meta: { - title: '消息发送配置', - }, - children: [ - { - path: 'list', - name: 'SettingMessageSendIndex', - component: () => import('@/views/center-setting/message/send/index'), - meta: { - title: '消息发送配置', - }, - }, - { - path: 'add', - name: 'SettingMessageSendAdd', - component: () => import('@/views/center-setting/message/send/add'), - meta: { - title: '新增消息发送配置', - isCache: true, - }, - hidden: true, - }, - { - path: 'edit', - name: 'SettingMessageSendEdit', - component: () => import('@/views/center-setting/message/send/edit'), - meta: { - title: '编辑消息发送配置', - }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/scheduler.js b/front-end/src/router/center-setting/scheduler.js deleted file mode 100644 index a29d406..0000000 --- a/front-end/src/router/center-setting/scheduler.js +++ /dev/null @@ -1,158 +0,0 @@ -/* - * 任务管理 SchedulerManage - */ -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -export default { - path: 'scheduler', - name: 'SettingScheduler', - component: EmptyRouterAlive, - meta: { - title: '调度服务', - }, - children: [ - { - path: 'executor', - name: 'SettingSchedulerExecutor', - component: EmptyRouter, - redirect: 'executor/index', - meta: { - title: '执行器管理', - }, - children: [ - { - path: 'index', - name: 'SettingSchedulerExecutorIndex', - component: () => import('@/views/center-setting/scheduler/executor'), - meta: { - title: '执行器管理', - }, - }, - ], - }, - - { - path: 'task', - name: 'SettingSchedulerTask', - component: EmptyRouter, - redirect: 'task/index', - meta: { - title: '调度任务', - }, - children: [ - { - path: 'index', - name: 'SettingSchedulerTaskIndex', - component: () => import('@/views/center-setting/scheduler/task'), - meta: { - title: '调度任务', - }, - }, - ], - }, - { - path: 'log', - name: 'SettingSchedulerLog', - component: EmptyRouter, - redirect: 'log/index', - meta: { - title: '调度日志', - }, - children: [ - { - path: 'index', - name: 'SettingSchedulerLogIndex', - component: () => import('@/views/center-setting/scheduler/log'), - meta: { - title: '调度日志', - }, - }, - ], - }, - { - path: 'executable', - name: 'SettingSchedulerExecutable', - component: EmptyRouter, - redirect: 'executable/index', - meta: { - title: '可执行定义', - }, - children: [ - { - path: 'index', - name: 'SettingSchedulerExecutableIndex', - component: () => import('@/views/center-setting/scheduler/executable'), - meta: { - title: '可执行定义', - }, - }, - ], - }, - { - path: 'request', - name: 'SettingSchedulerRequest', - component: EmptyRouter, - redirect: 'request/list', - meta: { - title: '请求定义', - }, - children: [ - { - path: 'list', - name: 'SettingSchedulerRequestIndex', - component: () => import('@/views/center-setting/scheduler/request'), - meta: { - title: '请求定义', - }, - }, - { - path: 'add', - name: 'SettingSchedulerRequestAdd', - component: () => import('@/views/center-setting/scheduler/request/add'), - meta: { - title: '新增请求定义', - isCache: true, - }, - hidden: true, - }, - { - path: 'edit', - name: 'SettingSchedulerRequestEdit', - component: () => import('@/views/center-setting/scheduler/request/edit'), - meta: { - title: '编辑请求定义', - }, - hidden: true, - }, - { - path: 'permissions', - name: 'SettingSchedulerRequestPermissions', - component: () => import('@/views/center-setting/scheduler/request/permissions'), - meta: { - title: '权限分配', - }, - hidden: true, - }, - ], - }, - { - path: 'concurrent', - name: 'SettingSchedulerConcurrent', - component: EmptyRouter, - redirect: 'concurrent/index', - meta: { - title: '并发请求', - }, - children: [ - { - path: 'index', - name: 'SettingSchedulerConcurrentIndex', - component: () => import('@/views/center-setting/scheduler/concurrent'), - meta: { - title: '并发请求', - }, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/center-setting/user.js b/front-end/src/router/center-setting/user.js deleted file mode 100644 index 20268df..0000000 --- a/front-end/src/router/center-setting/user.js +++ /dev/null @@ -1,120 +0,0 @@ -/* - * 配置中心路由 - */ - -import EmptyRouter from '@/layout/EmptyRouter.vue'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -export default { - path: 'user', - name: 'SettingUser', - component: EmptyRouterAlive, - meta: { - title: '用户', - }, - children: [ - /** 组织架构部分 */ - { - path: 'organization', - name: 'SettingUserOrganization', - redirect: 'organization/group', - meta: { - title: '组织架构', - }, - component: EmptyRouter, - children: [ - { - path: 'group', - name: 'SettingUserOrganizationGroup', - component: () => import('@/views/center-setting/user/organization/group'), - meta: { - title: '集团设置', - }, - permissionType: 'tab', - hidden: true, - }, - { - path: 'company', - name: 'SettingUserOrganizationCompany', - component: () => import('@/views/center-setting/user/organization/company'), - meta: { - title: '下属公司', - }, - permissionType: 'tab', - hidden: true, - }, - /** 按钮权限start */ - { - path: '', - name: 'SettingUserOrganizationGroup_Edit', - meta: { - title: '编辑-集团设置', - }, - hidden: true, - }, - { - path: '', - name: 'SettingUserOrganizationCompany_Delete', - meta: { - title: '删除-下属公司', - }, - hidden: true, - }, - { - path: '', - name: 'SettingUserOrganizationCompany_Add', - meta: { - title: '新增公司-下属公司', - isCache: true, - }, - hidden: true, - }, - { - path: '', - name: 'SettingUserOrganizationCompany_Edit', - meta: { - title: '编辑-下属公司', - }, - hidden: true, - }, - { - path: '', - name: 'SettingUserOrganizationCompany_Status', - meta: { - title: '禁用/启用-下属公司', - }, - hidden: true, - }, - /** 按钮权限end */ - ], - }, - - { - path: 'account', - name: 'SettingUserAccount', - component: EmptyRouter, - meta: { - title: '账号安全策略', - }, - - redirect: 'account/strategy', - children: [ - { - path: 'strategy', - name: 'SettingUserAccountStrategy', - component: () => import('@/views/center-setting/user/account/strategy.vue'), - meta: { - title: '账号安全策略配置', - }, - }, - { - path: '', - name: 'SettingUserAccountStrategy_Save', - meta: { - title: '保存-账号安全策略配置', - }, - hidden: true, - }, - ], - }, - ], -}; diff --git a/front-end/src/router/index.js b/front-end/src/router/index.js deleted file mode 100644 index 81f7b85..0000000 --- a/front-end/src/router/index.js +++ /dev/null @@ -1,325 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; - -Vue.use(Router); - -/* Layout */ -import Layout from '@/layout'; -import EmptyRouterAlive from '@/layout/EmptyRouterAlive.vue'; -import EmptyRouter from '@/layout/EmptyRouter.vue'; -// 新的 -import settingCenter from './center-setting/index'; -import businessCenter from './center-business/index'; - -/** - * 注意:子菜单只在路由子时出现。 长度> = 1 - * 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 如果设置为true,项目将不会显示在侧边栏中(默认为false) - * alwaysShow: true 如果设置为true,将始终显示根菜单 - * 如果没有设置alwaysShow,当item有多个子路由时, - * 它将变成嵌套模式,否则不显示根菜单 - * redirect: noRedirect 如果设置noRedirect,则不会在面包屑中重定向 - * name:'router-name' (必须设置!!) - * meta : { - roles: ['admin','editor'] 控制页面角色(可以设置多个角色) - title: 'title' 名称显示在侧边栏和面包屑中(推荐集) - icon: 'svg-name'/'el-icon-x' 图标显示在侧栏中 - isCache: false 如果设置为true,页面将会被缓存(默认为false) 有效 - affix: true 如果设置为true,标记将附着在标记视图中 - breadcrumb: false 如果设置为false,该项将隐藏在breadcrumb中(默认为true) - activeMenu: '/example/list' 如果设置路径,侧边栏将突出显示您设置的路径 - isShowChildrenByHover: false 如果设置为true, 鼠标在一级菜单上时,展示所有的二、三级菜单(默认false: 正常下拉展示 二、三级菜单) - mulTag:false 如果设置为true,不同query的链接将打开一个新的tag页面 - } - */ - -/** - * constantRoutes - * a base page that does not have permission requirements - * all roles can be accessed - */ -export const constantRoutes = [ - { - path: '/redirect', - component: Layout, - name: 'Redirect', - hidden: true, - children: [ - { - path: '/redirect/:path(.*)', - component: () => import('@/views/common/redirect/index'), - }, - ], - }, - { - path: '/login', - name: 'Login', - component: () => import('@/views/common/login/auth-redirect'), - hidden: true, - }, - { - path: '/auth-redirect', - component: () => import('@/views/common/login/auth-redirect'), - hidden: true, - }, - { - path: '/404', - name: '404', - component: () => import('@/views/common/error-page/404'), - hidden: true, - }, - { - path: '/401', - name: '401', - component: () => import('@/views/common/error-page/401'), - hidden: true, - }, - { - path: '/', - component: Layout, - redirect: '/dashboard', - name: 'Dashboard1', - meta: { - // 展示在侧边栏 - title: '', - icon: 'dashboard', - breadcrumb: false, - }, - hidden: true, - children: [ - { - path: '占位,第二级路由', - name: 'Dashboard2', - component: EmptyRouterAlive, - redirect: '/dashboard', - meta: { - // 占位,凑四级路由,不展示 - title: '首页2', - breadcrumb: false, - }, - hidden: true, - children: [ - { - path: '占位,第三级路由', - name: 'Dashboard3', - component: EmptyRouter, - redirect: '/dashboard', - meta: { - // 占位,凑四级路由,不展示 - title: '首页2', - breadcrumb: false, - }, - hidden: true, - children: [ - { - path: '/dashboard', - component: () => import('@/views/common/dashboard/index'), - name: 'Dashboard', - meta: { - // 展示在 面包屑、页签title - title: '', - icon: 'dashboard', - affix: false, - }, - }, - ], - }, - ], - }, - ], - }, - - { - path: '/common', - component: Layout, - redirect: 'index', - name: 'Common', - hidden: true, - children: [ - { - path: 'xx', - name: 'xxxxxx', - component: EmptyRouterAlive, - meta: { - // 占位,凑四级路由,不展示 - title: '通用模块', - breadcrumb: false, - }, - hidden: true, - children: [ - { - path: 'xx', - name: 'xxxxxx', - component: EmptyRouter, - meta: { - // 占位,凑四级路由,不展示 - title: '通用模块', - breadcrumb: false, - }, - hidden: true, - children: [ - { - path: '/common/personal', - component: () => import('@/views/common/personal'), - name: 'CommonPersonal', - meta: { - // 展示在 面包屑、页签title - title: '个人中心', - }, - }, - { - path: '/common/menu', - component: () => import('@/views/center-setting/menu'), - name: 'CommonMenu', - meta: { - title: '菜单配置', - }, - }, - ], - }, - ], - }, - ], - }, -]; - -export const asyncRoutes = [ - { - path: '/setting', - component: Layout, - // redirect: '/personal/index', - name: 'Setting', - meta: { - title: '配置中心', - icon: 'el-icon-s-operation', - isShowChildrenByHover: true, - }, - children: [...settingCenter], - }, - { - path: '/business', - component: Layout, - // redirect: '/personal/index', - name: 'Business', - meta: { - title: '业务中心', - icon: 'el-icon-notebook-1', - isShowChildrenByHover: true, - }, - children: [...businessCenter], - }, - // { - // path: '/test', - // component: Layout, - // redirect: '/test/index', - // name: 'Test', - // meta: { - // title: 'DEMO', - // breadcrumb: false, - // icon: 'bug', - // }, - // children: [ - // { - // path: 'xx20210825', - // name: 'XX20210825', - // component: EmptyRouter, - // meta: { - // // 占位,凑三级路由,不展示 - // breadcrumb: false, - // }, - // hidden: true, - // children: [ - // { - // path: '/test/index', - // component: () => import('@/views/test/index'), - // name: 'TestIndex', - // meta: { title: '测试', isCache: true }, - // hidden: true, - // }, - // ], - // }, - // ], - // }, - { path: '*', redirect: '/404', hidden: true }, -]; - -console.log('asyncRoutes', asyncRoutes); -console.log( - '权限表 permission.json 用于初始化菜单权限数据', - [asyncRoutes[0], asyncRoutes[1]].map((e1, n1) => { - return { - permissionType: e1.permissionType || 'api', - title: e1.meta.title, - icon: e1.meta.icon || null, - code: e1.name, - hiddenFlag: false, - sort: n1, - children: !e1.children - ? [] - : e1.children.map((e2, n2) => { - if (!e2.children || e2.children.length == 0) { - console.log('只有二级:' + e1.meta.title + '-' + e2.meta.title); - } - return { - permissionType: e2.permissionType || 'api', - title: e2.meta.title, - icon: e2.meta.icon || null, - code: e2.name, - hiddenFlag: false, - sort: n2, - children: !e2.children - ? [] - : e2.children.map((e3, n3) => { - if (!e3.children || e3.children.length == 0) { - console.log( - '只有三级:' + e1.meta.title + '-' + e2.meta.title + '-' + e3.meta.title, - ); - } - return { - permissionType: e3.permissionType || 'api', - title: e3.meta.title, - icon: e3.meta.icon || null, - code: e3.name, - hiddenFlag: false, - sort: n3, - children: !e3.children - ? [] - : e3.children.map((e4, n4) => { - // 有下划线的 默认为按钮,没有下划线的为页面,如果是tab页,则对应路由表permissionType=tab - const DEFAULT_TYPE = e4.name.includes('_') ? 'btn' : 'page'; - return { - permissionType: e4.permissionType || DEFAULT_TYPE, - title: e4.meta.title, - icon: e4.meta.icon || null, - code: e4.name, - hiddenFlag: true, - sort: n4, - }; - }), - }; - }), - }; - }), - }; - }), -); - -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/front-end/src/settings.js b/front-end/src/settings.js deleted file mode 100644 index 36f4c25..0000000 --- a/front-end/src/settings.js +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = { - title: '飞骥管理系统', - - /** - * @type {boolean} true | false - * @是否显示设置右面板 - */ - showSettings: false, - - /** - * @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 {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/front-end/src/store/getters.js b/front-end/src/store/getters.js deleted file mode 100644 index b614914..0000000 --- a/front-end/src/store/getters.js +++ /dev/null @@ -1,22 +0,0 @@ -const getters = { - sidebar: state => state.app.sidebar, - size: state => state.app.size, - device: state => state.app.device, - loadingCount: state => state.app.loadingCount, - loadingDelayed: state => state.app.loadingDelayed, - 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, - userInfo: state => state.user.userInfo, - tenantId: state => state.user.userInfo.organizationId, - permission_routes: state => state.permission.routes, - errorLogs: state => state.errorLog.logs, - isSuperAdmin: state => state.user.isSuperAdmin, - userPermissions: state => state.user.permissions, - userPermissionBtns: state => state.user.permissionBtns, -}; -export default getters; diff --git a/front-end/src/store/index.js b/front-end/src/store/index.js deleted file mode 100644 index 2e119c4..0000000 --- a/front-end/src/store/index.js +++ /dev/null @@ -1,25 +0,0 @@ -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/front-end/src/store/modules/app.js b/front-end/src/store/modules/app.js deleted file mode 100644 index d6ee299..0000000 --- a/front-end/src/store/modules/app.js +++ /dev/null @@ -1,204 +0,0 @@ -import Cookies from 'js-cookie'; -import { commonApi } from '@/api'; -const LIKE_CODE = 'myLikeMenuList'; -const LIKE_CODE_VERSION = 3; -const state = { - sidebar: { - opened: true, // Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, - liked: Cookies.get('sidebarLiked') ? !!+Cookies.get('sidebarLiked') : false, - withoutAnimation: false, - likedData: [], - likedMax: 8, // 最多添加 8 个收藏菜单 - }, - device: 'desktop', - size: Cookies.get('size') || 'medium', - loadingCount: 0, - loadingDelayed: 501, // ms 延时关闭,防止递归请求的loading频繁开关。 -}; - -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); - } - }, - TOGGLE_SIDEBAR_LIKE: state => { - state.sidebar.liked = !state.sidebar.liked; - state.sidebar.withoutAnimation = false; - if (state.sidebar.liked) { - Cookies.set('sidebarLiked', 1); - } else { - Cookies.set('sidebarLiked', 0); - } - }, - OPEN_SIDEBAR: (state, withoutAnimation) => { - Cookies.set('sidebarStatus', 1); - state.sidebar.opened = true; - state.sidebar.withoutAnimation = withoutAnimation; - }, - CLOSE_SIDEBAR: (state, withoutAnimation) => { - Cookies.set('sidebarStatus', 0); - state.sidebar.opened = false; - state.sidebar.withoutAnimation = withoutAnimation; - }, - CLOSE_SIDEBAR_LIKE: (state, withoutAnimation) => { - Cookies.set('sidebarLiked', 0); - state.sidebar.liked = false; - state.sidebar.withoutAnimation = withoutAnimation; - }, - TOGGLE_DEVICE: (state, device) => { - state.device = device; - }, - SET_SIZE: (state, size) => { - state.size = size; - Cookies.set('size', size); - }, - SET_LOADING_COUNT: (state, loadingCount) => { - state.loadingCount = loadingCount; - Cookies.set('loadingCount', loadingCount); - }, - SET_SIDEBAR_LIKED_DATA: (state, list) => { - state.sidebar.likedData = list; - }, - ADD_SIDEBAR_LIKED_DATA: (state, route) => { - route.meta.icon = ''; // 'el-icon-star-on'; - - state.sidebar.likedData.push({ - ...route, - children: [], - }); - const LEN = state.sidebar.likedData.length; - const MAX = state.sidebar.likedMax; - if (LEN > MAX) { - state.sidebar.likedData = state.sidebar.likedData.slice(LEN - MAX, LEN); - } - }, - DELETE_SIDEBAR_LIKED_DATA: (state, route) => { - const TEMP = [].concat(state.sidebar.likedData); - TEMP.remove(route.name, 'name'); - state.sidebar.likedData = [].concat(TEMP); - }, -}; - -const actions = { - toggleSideBar({ commit }) { - commit('TOGGLE_SIDEBAR'); - }, - toggleSideBarLike({ commit }) { - commit('TOGGLE_SIDEBAR_LIKE'); - }, - openSideBar({ commit }, { withoutAnimation }) { - commit('OPEN_SIDEBAR', withoutAnimation); - }, - closeSideBar({ commit }, { withoutAnimation }) { - commit('CLOSE_SIDEBAR', withoutAnimation); - }, - closeSideBarLike({ commit }, { withoutAnimation }) { - commit('CLOSE_SIDEBAR_LIKE', withoutAnimation); - }, - - toggleDevice({ commit }, device) { - commit('TOGGLE_DEVICE', device); - }, - setSize({ commit }, size) { - commit('SET_SIZE', size); - }, - addLoadingCount({ commit, state }, isAdd = true) { - const ov = state.loadingCount; - let nv; - if (isAdd) { - nv = ov + 1; - } else { - nv = ov ? ov - 1 : 0; - } - commit('SET_LOADING_COUNT', nv); - }, - // 当isCache==true时,强制从接口获取数据 - getLikeData({ commit, state }, isCache) { - if (state.sidebar.likedData.length && !isCache) { - return state.sidebar.likedData; - } - return new Promise((resolve, reject) => { - commonApi - .getTabulation({ - code: LIKE_CODE, - }) - .then(res => { - console.log('saveConfig', res); - const remoteVersion = res.flag || 1; - let tempList = []; - - if (Array.isArray(res)) { - tempList = res; - } - if (Array.isArray(res.titleList)) { - tempList = res.titleList; - } - - if (tempList && tempList.length && remoteVersion == LIKE_CODE_VERSION) { - console.log('get really'); - tempList = tempList.map((e, i) => { - return { - children: [], - component: null, - hidden: false, - meta: { - title: e.label, - icon: e.fixed, - }, - name: e.prop, - path: e.prop, - redirect: e.width, - sort: e.sort, - }; - }); - } else { - tempList = []; - } - // 只取后几个 - if (tempList.length > 8) { - tempList = tempList.slice(tempList.length - state.sidebar.likedMax, tempList.length); - } - - commit('SET_SIDEBAR_LIKED_DATA', tempList); - resolve(tempList); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - saveLikeData({ commit, state }, list) { - commonApi - .saveTabulation({ - code: LIKE_CODE, - flag: LIKE_CODE_VERSION, - tabulationTitleDTOS: state.sidebar.likedData.map((e, i) => { - return { - disabled: false, - fixed: e.meta && e.meta.icon, - isCheck: false, - label: e.meta && e.meta.title, - prop: e.name, - sort: i, - width: e.redirect, - }; - }), - }) - .then(res => { - console.log('saveConfig', res); - }); - }, -}; - -export default { - namespaced: true, - state, - mutations, - actions, -}; diff --git a/front-end/src/store/modules/errorLog.js b/front-end/src/store/modules/errorLog.js deleted file mode 100644 index 17174cc..0000000 --- a/front-end/src/store/modules/errorLog.js +++ /dev/null @@ -1,28 +0,0 @@ -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/front-end/src/store/modules/fileUrl.js b/front-end/src/store/modules/fileUrl.js deleted file mode 100644 index b39a2b7..0000000 --- a/front-end/src/store/modules/fileUrl.js +++ /dev/null @@ -1,107 +0,0 @@ -/** - * @author zhengxinquan - * @description 从api或缓存中获取授权的图片 - * @调用 await this.$store.dispatch('values/getValueList', 'SCHL.CHANNEL_TYPE'); - * - */ -import { settingApi } from '@/api'; - -const DEFAULT_EXPIRES = 1 * 60 * 60; -const DEFAULT_BUCKET_NAME = process.env.VUE_APP_UPLOAD_BUCKET_NAME; -const getDefaultState = () => { - return { - FILES: [ - { - bucketName: '', - url: '', - key: '', - - // new Date().getTime()/1000 - create: '', // 秒 - - expires: '', // 秒 - fileTokenUrl: '', // - }, - ], - }; -}; -const state = getDefaultState(); - -const mutations = { - ADD_FILES: (state, FILE) => { - const index = state.FILES.findIndex(e => { - if (FILE.url) { - return e.bucketName == FILE.bucketName && e.url == FILE.url; - } - if (FILE.key) { - return e.bucketName == FILE.bucketName && e.key == FILE.key; - } - return false; - }); - if (index == -1) { - state.FILES.push(FILE); - } else { - state.FILES.splice(index, 1, FILE); - } - }, -}; - -const actions = { - getFileTokenUrl({ commit, state }, { url, bucketName, expires }) { - const EXPIRES = expires || DEFAULT_EXPIRES; - const BUCKET_NAME = bucketName || DEFAULT_BUCKET_NAME; - const URL = url; - const finder_file = state.FILES.find(e => { - const NOW_TIME = new Date().getTime() / 1000; - const TIME_FLAG = e.create + e.expires > NOW_TIME; - return e.bucketName == BUCKET_NAME && e.url == URL && TIME_FLAG; - }); - - return new Promise((resolve, reject) => { - if (finder_file) { - resolve(finder_file.fileTokenUrl); - } else { - // 去授权 - settingApi - .getFileUrlByUrl({ - bucketName: BUCKET_NAME, - url: URL, - expires: EXPIRES, - // 授权有效时长(单位秒) - }) - .then(res => { - if (res.failed !== true) { - let url = res.fileTokenUrl || res.message || res; - if (url.indexOf('http') !== 0) { - url = 'http://' + url; - } - const FILE = { - bucketName: BUCKET_NAME, - url: URL, - key: '', - create: new Date().getTime() / 1000, - expires: EXPIRES, // 秒 - fileTokenUrl: url, - }; - commit('ADD_FILES', FILE); - resolve(url); - } else { - reject(url); - } - }); - } - }); - }, -}; - -export default { - namespaced: true, - state, - mutations, - actions, -}; diff --git a/front-end/src/store/modules/permission.js b/front-end/src/store/modules/permission.js deleted file mode 100644 index 79aa192..0000000 --- a/front-end/src/store/modules/permission.js +++ /dev/null @@ -1,145 +0,0 @@ -import { asyncRoutes, constantRoutes } from '@/router'; -/** - * Use meta.role to determine if the current user has permission - * @param roles - * @param route - */ -function hasPermission(permissions, route) { - const code = route.name; - - const f = p => { - let find = null; - for (let index = 0; index < p.length; index++) { - const e = p[index]; - if (e.code == code) { - find = e; - break; - } - find = f(e.children || []); - if (find) break; - } - return find; - }; - const obj = f(permissions); - - // 覆盖部分路由的配置 - let newRoute = route; - if (obj) { - newRoute = { - ...route, - // redirect - meta: { - ...route.meta, - title: obj.title, - icon: obj.icon, - }, - hidden: obj.hidden, - sort: obj.sort, - }; - } - return { - flag: !!obj, - route: newRoute, - permission: obj, - }; -} - -/** - * Filter asynchronous routing tables by recursion - * @param routes asyncRoutes - * @param roles - */ -export function filterAsyncRoutes(routes, USER_PERMISSIONS) { - const res = []; - routes.forEach(route => { - const re = hasPermission(USER_PERMISSIONS, route); - if (re.flag) { - const tmp = re.route; - if (tmp.children) { - tmp.children = filterAsyncRoutes(tmp.children, USER_PERMISSIONS); - } - res.push(tmp); - } - }); - - return res; -} - -const state = { - routes: [], - addRoutes: [], -}; -// 按sort从小到大排序 -function sortRoutes(routes) { - routes.sort((a, b) => { - return a.sort - b.sort; - }); - routes.forEach(e => { - if (e.children && e.children.length) { - e.children = sortRoutes(e.children); - } - }); - return routes; -} -// -function redirectFix(routes) { - routes.forEach(e => { - if (e.children && e.children.length) { - e.children = redirectFix(e.children); - const tabs = e.children.filter(r => r.permissionType == 'tab'); - if (tabs.length) { - // 在父级的meta.tabs 自动构建一个数组,用于 BjRouteTabs 组件的支持 - e.meta['tabs'] = tabs.map(tab => { - return { - label: tab.meta && tab.meta.title, - name: tab.name, - }; - }); - const NEW_END_PATH = tabs[0].path; // 'sku/ordinary' - - // 当第1个tab无权访问时,自动redirect到下一个有权限的tab - if (e.redirect) { - const OLD_END_PATH = e.redirect.replace(e.path + '/', ''); // (e.redirect || '').split('/').slice(-1)[0]; //'ordinary' - // const OLD_START_PATH_ARR = (e.redirect || '').split('/').slice(0, -1); //['audit', 'sku'] - if (NEW_END_PATH != OLD_END_PATH) { - e.redirect = e.path + '/' + NEW_END_PATH; // [...OLD_START_PATH_ARR, NEW_END_PATH].join('/'); - console.log(' e.redirect', e.redirect); - } - } - } - } - }); - - return routes; -} - -const mutations = { - SET_ROUTES: (state, routes) => { - state.addRoutes = routes; - state.routes = constantRoutes.concat(routes); - }, -}; - -const actions = { - generateRoutes({ commit }, USER_PERMISSIONS) { - return new Promise(resolve => { - // 按权限code过滤 - let accessedRoutes = filterAsyncRoutes(asyncRoutes, USER_PERMISSIONS); - // permissionType: 'tab',处理父级redirect - accessedRoutes = redirectFix(accessedRoutes); - // 按sort从小到大排序 - accessedRoutes = sortRoutes(accessedRoutes); - // 在路由最后,加入404 - accessedRoutes.push({ path: '*', redirect: '/404', hidden: true }); - commit('SET_ROUTES', accessedRoutes); - resolve(accessedRoutes); - }); - }, -}; - -export default { - namespaced: true, - state, - mutations, - actions, -}; diff --git a/front-end/src/store/modules/settings.js b/front-end/src/store/modules/settings.js deleted file mode 100644 index 5eee4c0..0000000 --- a/front-end/src/store/modules/settings.js +++ /dev/null @@ -1,34 +0,0 @@ -import variables from '@/styles/element-variables.scss'; -import defaultSettings from '@/settings'; - -const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings; - -const state = { - theme: variables.theme, - showSettings: showSettings, - tagsView: tagsView, - fixedHeader: fixedHeader, - sidebarLogo: sidebarLogo, -}; - -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/front-end/src/store/modules/tagsView.js b/front-end/src/store/modules/tagsView.js deleted file mode 100644 index 8ff0415..0000000 --- a/front-end/src/store/modules/tagsView.js +++ /dev/null @@ -1,254 +0,0 @@ -import router from '@/router'; -const state = { - visitedViews: [], - cachedViews: [], - visitedViewsMax: 12, -}; -const checkMulTag = view => { - return view.meta.mulTag === true ? 'fullPath' : 'path'; -}; -const mutations = { - REPLACE_VISITED_VIEW: (state, view) => { - const PATH_KEY = checkMulTag(view); - const findViewIndex = state.visitedViews.findIndex(v => v[PATH_KEY] === view[PATH_KEY]); - if (findViewIndex > -1) { - state.visitedViews.splice( - findViewIndex, - 1, - Object.assign({}, view, { - title: view.otherTitle ? view.otherTitle : view.meta.title || 'no-name', - }), - ); - } - }, - INIT_VISITED_VIEW: (state, view) => { - state.visiteViews = view; - }, - ADD_VISITED_VIEW: (state, view) => { - const PATH_KEY = checkMulTag(view); - if (state.visitedViews.some(v => v[PATH_KEY] === view[PATH_KEY])) return; - state.visitedViews.push( - Object.assign({}, view, { - title: view.meta.title || 'no-name', - }), - ); - if (state.visitedViews.length > state.visitedViewsMax) { - state.visitedViews.splice(0, 1); - } - }, - ADD_CACHED_VIEW: (state, view) => { - const PATH_KEY = checkMulTag(view); - if (state.cachedViews.some(v => v[PATH_KEY] === view[PATH_KEY])) return; - if (view.meta.isCache === true) { - state.cachedViews.push( - Object.assign({}, view, { - title: view.meta.title || 'no-name', - }), - ); - // console.log('添加缓存页', state.cachedViews, PATH_KEY + ':' + view[PATH_KEY]); - } - }, - - DEL_VISITED_VIEW: (state, view) => { - const PATH_KEY = checkMulTag(view); - const OLD_INDEX = state.visitedViews.findIndex(v => v[PATH_KEY] === view[PATH_KEY]); - state.visitedViews.splice(OLD_INDEX, 1); - }, - DEL_CACHED_VIEW: (state, view) => { - const PATH_KEY = checkMulTag(view); - const index = state.cachedViews.findIndex(v => v[PATH_KEY] === view[PATH_KEY]); - if (index > -1) { - state.cachedViews.splice(index, 1); - } else { - console.warn('未缓存', state.cachedViews, PATH_KEY + ':' + view[PATH_KEY]); - } - }, - - DEL_OTHERS_VISITED_VIEWS: (state, view) => { - const PATH_KEY = checkMulTag(view); - state.visitedViews = state.visitedViews.filter(v => { - return v.meta.affix || v[PATH_KEY] === view[PATH_KEY]; - }); - }, - DEL_OTHERS_CACHED_VIEWS: (state, view) => { - const PATH_KEY = checkMulTag(view); - const index = state.cachedViews.findIndex(v => v[PATH_KEY] === view[PATH_KEY]); - 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) { - const PATH_KEY = checkMulTag(v); - if (v[PATH_KEY] === view[PATH_KEY]) { - v = Object.assign(v, view); - break; - } - } - }, - SWAP_VISITED_VIEW: (state, index) => { - const temp = state.visitedViews.splice(-1)[0]; - state.visitedViews.splice(index, 0, temp); - }, -}; - -const actions = { - replaceVisitedView({ commit }, view) { - commit('REPLACE_VISITED_VIEW', view); - }, - // 关闭当前页签:--------start---------- - closeCurrentView({ dispatch }, view) { - const PATH_KEY = checkMulTag(view); - const curView = state.visitedViews.find(v => { - return v[PATH_KEY] === view[PATH_KEY]; - }); - dispatch('delView', curView).then(() => { - if (curView[PATH_KEY] === view[PATH_KEY]) { - dispatch('toLastView', curView); - } - }); - }, - // 关闭页签后,返回上一个页面 - toLastView(view) { - const latestView = state.visitedViews.slice(-1)[0]; - if (latestView) { - router.push(latestView.fullPath); - } else { - // now the default is to redirect to the home page if there is no tags-view, - // you can adjust it according to your needs. - if (view.name === 'Dashboard') { - // to reload home page - router.replace({ path: '/redirect' + view.fullPath }); - } else { - router.push('/'); - } - } - }, - // 关闭当前页签:--------end---------- - - initView({ commit }, view) { - commit('INIT_VISITED_VIEW', view); - }, - addView({ dispatch, state }, view) { - dispatch('addVisitedView', view); - dispatch('addCachedView', view); - }, - addVisitedView({ commit }, view) { - if (view.name === 'login') { - return; - } - commit('ADD_VISITED_VIEW', view); - }, - addCachedView({ commit }, view) { - if (view.name === 'login') { - return; - } - commit('ADD_CACHED_VIEW', view); - }, - - delView({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch('delVisitedView', view); - - const VIEWS = state.visitedViews.filter(tag => { - return tag.name == view.name; - }); - if (VIEWS.length == 0) { - 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); - }, - swapVisitedView({ commit, state }, index) { - return new Promise(resolve => { - commit('SWAP_VISITED_VIEW', index); - resolve([...state.visitedViews]); - }); - }, -}; - -export default { - namespaced: true, - state, - mutations, - actions, -}; diff --git a/front-end/src/store/modules/user.js b/front-end/src/store/modules/user.js deleted file mode 100644 index 52112a4..0000000 --- a/front-end/src/store/modules/user.js +++ /dev/null @@ -1,294 +0,0 @@ -import { userApi } from '@/api'; -import { getToken, setToken, removeToken } from '@/utils/auth'; -import router, { resetRouter } from '@/router'; -import { VUE_APP_BASE_API } from '@/utils/index'; - -import permissionJson from '@/permissionOS.json'; - -const getDefaultState = () => { - return { - token: getToken(), - name: '', - user: '', - avatar: '', - introduction: '', - roles: [], - permissions: [], - permissionBtns: [], - userInfo: null, - isSuperAdmin: true, - }; -}; -const state = getDefaultState(); -const mutations = { - RESET_STATE: state => { - Object.assign(state, getDefaultState()); - }, - 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_USER: (state, user) => { - state.user = user; - }, - SET_USER_INFO: (state, userInfo) => { - state.userInfo = userInfo; - }, - SET_SUPER_ADMIN: (state, isSuperAdmin) => { - state.isSuperAdmin = isSuperAdmin; - }, - SET_PERMISSIONS: (state, permissions) => { - state.permissions = permissions; - const permissionBtnList = []; - permissions.forEach(a1 => { - (a1.children || []).forEach(a2 => { - (a2.children || []).forEach(a3 => { - (a3.children || []).forEach(a4 => { - // if (a4.permissionType == 'btn') { - permissionBtnList.push(a4.code.toLocaleLowerCase()); - // } - }); - }); - }); - }); - state.permissionBtns = permissionBtnList; - }, -}; -const actions = { - setSuperAdmin({ commit }, isSuperAdmin) { - commit('SET_SUPER_ADMIN', isSuperAdmin); - }, - setUserInfo({ commit }, userInfo) { - commit('SET_USER_INFO', userInfo); - }, - setToken({ commit }, access_token) { - commit('SET_TOKEN', access_token); - }, - // user login - login({ commit }, userInfo) { - return new Promise((resolve, reject) => { - commit('SET_TOKEN', 'admin-token'); - setToken('admin-token'); - resolve(); - // login({ username: username.trim(), password: password }).then(response => { - // const { data } = response - // commit('SET_TOKEN', data.token) - // setToken(data.token) - // resolve() - // }).catch(error => { - // reject(error) - // }) - }); - }, - resetInfo({ commit }) { - return new Promise((resolve, reject) => { - removeToken(); - commit('SET_TOKEN', ''); - commit('SET_PERMISSIONS', []); - resetRouter(); - commit('RESET_STATE'); - resolve(); - }); - }, - // get user info - getInfo({ commit, state, dispatch }) { - return new Promise((resolve, reject) => { - if (process.env.VUE_APP_ACCESS_TOKEN) { - const response = { - id: '=3pLNuuotTVQSDRtvdZ5QKw===', - loginName: 'admin', - email: 'admin@hzero.com', - organizationId: 0, - realName: '超级管理员', - phone: '18666666666', - imageUrl: - 'minio.baogicloud.com/test/0/1632481375656_16EK7K8I_src=http___img.zcool.cn_community_01dd6c56dc421232f875520ffb98e9.png@1280w_1l_2o_100sh.png&refer=http___img.zcool.jpg', - language: 'zh_CN', - languageName: '简体中文', - timeZone: 'GMT+8', - lastPasswordUpdatedAt: '2021-08-06 12:16:19', - regionId: 0, - phoneCheckFlag: 1, - emailCheckFlag: 1, - passwordResetFlag: 1, - tenantName: 'HZERO平台', - tenantNum: 'SKYER', - dateFormat: 'YYYY-MM-DD', - timeFormat: 'HH:mm:ss', - dateTimeFormat: 'YYYY-MM-DD HH:mm:ss', - changePasswordFlag: 0, - title: 'HZERO技术平台', - logo: '/hsop-image/doc_classify/0/8ff6ad27c153445d90606db2eca4c268/logo.png', - menuLayout: 'side-all', - menuLayoutTheme: 'color', - roleMergeFlag: 0, - tenantId: 0, - currentRoleId: '=3pLNuuotTVQSDRtvdZ5QKw===', - currentRoleCode: 'role/site/default/administrator', - currentRoleName: '管理员1', - currentRoleLevel: 'site', - favicon: - '/hsop-image/doc_classify/0/8ff6ad27c153445d90606db2eca4c268/logo.png', - dataHierarchyFlag: 0, - recentAccessTenantList: [], - }; - if (response.failed === true) { - console.error(response); - reject(response); - } - const data = { - // roles: response.recentAccessTenantList || [], - name: response.realName, - user: response.loginName, - avatar: response.imageUrl, - introduction: response.title, - }; - commit('SET_USER_INFO', Object.assign(response, data)); - const { name, user, avatar, introduction } = data; - commit('SET_USER', user); - commit('SET_NAME', name); - commit('SET_USER', user); - commit('SET_AVATAR', avatar); - commit('SET_INTRODUCTION', introduction); - commit( - 'SET_SUPER_ADMIN', - response.currentRoleLevel === 'site' && response.loginName === 'admin', - ); - commit('SET_PERMISSIONS', permissionJson); - resolve(data); - return; - } - userApi - .getUserInfo() - .then(async response => { - if (response.failed === true) { - console.error(response); - reject(response); - } - const data = { - // roles: response.recentAccessTenantList || [], - name: response.realName, - user: response.loginName, - avatar: response.imageUrl, - introduction: response.title, - }; - commit('SET_USER_INFO', Object.assign(response, data)); - const { name, user, avatar, introduction } = data; - commit('SET_USER', user); - commit('SET_NAME', name); - commit('SET_USER', user); - commit('SET_AVATAR', avatar); - commit('SET_INTRODUCTION', introduction); - commit( - 'SET_SUPER_ADMIN', - response.currentRoleLevel === 'site' && response.loginName === 'admin', - ); - await dispatch('getUserPermission'); - resolve(data); - }) - .catch(error => { - reject(error); - }); - }); - }, - // 获取用户菜单权限 - getUserPermission({ commit, state, dispatch }) { - return new Promise((resolve, reject) => { - userApi - .getUserMenuTree() - .then(response => { - commit('SET_PERMISSIONS', response); - resolve(response); - }) - .catch(error => { - reject(error); - }); - // permissionApi.get({ roleId: ROLE_ID }).then(res => { - // const PERMISSION_ROUTE_NAMES = []; - // const F = list => { - // list.forEach(e => { - // if (e.check === true && !PERMISSION_ROUTE_NAMES.includes(e.path)) { - // PERMISSION_ROUTE_NAMES.push(e.path); - // } - // if (Array.isArray(e.levelPermissionVOS)) { - // F(e.levelPermissionVOS); - // } - // }); - // }; - // F(Array.isArray(res) ? res : []); - // console.log('PERMISSION_ROUTE_NAME_LIST', PERMISSION_ROUTE_NAMES); - // commit('SET_PERMISSION_ROUTE_NAMES', PERMISSION_ROUTE_NAMES); - // resolve(res); - // }); - }); - }, - // user logout - logout({ commit, state, dispatch }) { - return new Promise((resolve, reject) => { - const LOGOUT_URL = `${VUE_APP_BASE_API()}/oauth/logout?access_token=${state.token}`; - window.location.replace(LOGOUT_URL); - // commonApi - // .logout({ access_token: state.token }) - // .then(() => { - removeToken(); - commit('SET_TOKEN', ''); - commit('SET_PERMISSIONS', []); - 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 => { - // removeToken(); - // commit('SET_TOKEN', ''); - // commit('SET_PERMISSIONS', []); - // reject(error); - // }); - }); - }, - // remove token - resetToken({ commit }) { - return new Promise(resolve => { - commit('SET_TOKEN', ''); - commit('SET_PERMISSIONS', []); - removeToken(); - resolve(); - }); - }, - // dynamically modify permissions - async changeRoles({ commit, dispatch }, role) { - const token = role + '-token'; - commit('SET_TOKEN', token); - setToken(token); - const { roles } = await dispatch('user/getInfo'); - console.log('changeRoles user/getInfo roles=', roles); - 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/front-end/src/store/modules/values.js b/front-end/src/store/modules/values.js deleted file mode 100644 index e3fbfc8..0000000 --- a/front-end/src/store/modules/values.js +++ /dev/null @@ -1,334 +0,0 @@ -/** - * @author zhengxinquan - * @description 从api或缓存中获取值集 - * @调用 await this.$store.dispatch('values/getValueList', 'SCHL.CHANNEL_TYPE'); - * - */ -import { commonApi } from '@/api'; -import { LOV_CODE } from '@/utils/constants'; - -const getDefaultState = () => { - const TEMP = {}; - LOV_CODE.forEach(item => { - TEMP[item.value.replace(/\./g, '_')] = []; - }); - return Object.assign(TEMP, { - // 非值集——API列表 - BJ_EXECUTOR_ID: [], // 执行器列表 BJ_EXECUTOR_ID - BJ_EXECUTABLE_ID: [], // 可执行定义列表 BJ_TENANTS - BJ_TENANTS: [], // 租户列表 BJ_EXECUTABLE_ID - BJ_LANGUAGE: [], // 语言 BJ_LANGUAGE - BJ_INSTALL_SERVICES: [], // 安装服务 BJ_INSTALL_SERVICES - BJ_TAGS: [], // 标签 BJ_TAGS - BJ_AFTER_REFUND_ONLY_REASONS: [], // 售后原因 仅退款 BJ_AFTER_REFUND_ONLY_REASONS - BJ_AFTER_REFUND_GOODS_REASONS: [], // 售后原因 退货退款 BJ_AFTER_REFUND_GOODS_REASONS - }); -}; -const state = getDefaultState(); - -const getMutations = () => { - const obj = {}; - Object.keys(state).forEach(key => { - const SET_KEY = 'SET_' + key; - obj[SET_KEY] = (state, v) => { - state[key] = v; - }; - }); - return obj; -}; - -const mutations = getMutations(); - -const actions = { - getValueList({ commit, state }, POST_KEY) { - let isCache = true; - if (typeof POST_KEY == 'object') { - // 当 isCache = false 时,刷新值集的缓存 - POST_KEY = POST_KEY.POST_KEY; - isCache = POST_KEY.isCache; - } - const KEY = POST_KEY.replace(/\./g, '_'); - const SET_KEY = 'SET_' + KEY; - if (state[KEY].length && isCache) { - return state[KEY]; - } - return new Promise((resolve, reject) => { - commonApi - .getLovsValue({ - lovCode: POST_KEY, - }) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - label: Object.prototype.hasOwnProperty.call(e, 'label') ? e.label : e.meaning, - ...e, - }; - }); - commit(SET_KEY, data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getLanguagesList({ commit, state }, isCache) { - if (state.BJ_LANGUAGE.length && !isCache) { - return state.BJ_LANGUAGE; - } - return new Promise((resolve, reject) => { - commonApi - .getLanguages({}) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.code, - label: e.name, - ...e, - }; - }); - commit('SET_BJ_LANGUAGE', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getExecutorList({ commit, state }, isCache) { - if (state.BJ_EXECUTOR_ID.length && !isCache) { - return state.BJ_EXECUTOR_ID; - } - return new Promise((resolve, reject) => { - commonApi - .getExecutorList({ status: 'ONLINE' }) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.executorId, - label: e.executorName, - ...e, - }; - }); - commit('SET_BJ_EXECUTOR_ID', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getExecutableList({ commit, state }, isCache) { - if (state.BJ_EXECUTABLE_ID.length && !isCache) { - return state.BJ_EXECUTABLE_ID; - } - return new Promise((resolve, reject) => { - commonApi - .getExecutableList({}) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.executorId, - label: e.executorName, - ...e, - }; - }); - commit('SET_BJ_EXECUTABLE_ID', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getTenants({ commit, state }, isCache) { - if (state.BJ_TENANTS.length && !isCache) { - return state.BJ_TENANTS; - } - return new Promise((resolve, reject) => { - commonApi - .getTenants({}) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.tenantId, - label: e.tenantName, - ...e, - }; - }); - commit('SET_BJ_TENANTS', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getInstallServices({ commit, state }, isCache) { - if (state.BJ_INSTALL_SERVICES.length && !isCache) { - return state.BJ_INSTALL_SERVICES; - } - return new Promise((resolve, reject) => { - commonApi - .getInstallServices({}) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.installServiceCode, - label: e.name, - ...e, - }; - }); - commit('SET_BJ_INSTALL_SERVICES', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getTags({ commit, state }, isCache) { - if (state.BJ_TAGS.length && !isCache) { - return state.BJ_TAGS; - } - return new Promise((resolve, reject) => { - commonApi - .getTags() - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.labelCode, - label: e.textContent, - ...e, - }; - }); - commit('SET_BJ_TAGS', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getAfterRefundOnlyReasons({ commit, state }, isCache) { - if (state.BJ_AFTER_REFUND_ONLY_REASONS.length && !isCache) { - return state.BJ_AFTER_REFUND_ONLY_REASONS; - } - return new Promise((resolve, reject) => { - commonApi - .getAfterSalesReasons({ type: 0 }) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.reasonCode, - label: e.reasonDescribe, - ...e, - }; - }); - commit('SET_BJ_AFTER_REFUND_ONLY_REASONS', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, - getAfterRefundGoodsReasons({ commit, state }, isCache) { - if (state.BJ_AFTER_REFUND_GOODS_REASONS.length && !isCache) { - return state.BJ_AFTER_REFUND_GOODS_REASONS; - } - return new Promise((resolve, reject) => { - commonApi - .getAfterSalesReasons({ type: 1 }) - .then(res => { - let list = []; - if (Array.isArray(res)) { - list = res; - } else { - list = res.content || []; - } - const data = list.map(e => { - return { - value: e.reasonCode, - label: e.reasonDescribe, - ...e, - }; - }); - commit('SET_BJ_AFTER_REFUND_GOODS_REASONS', data); - resolve(data); - }) - .catch(err => { - console.error(err); - reject(err); - }); - }); - }, -}; - -export default { - namespaced: true, - state, - mutations, - actions, -}; diff --git a/front-end/src/styles/btn.scss b/front-end/src/styles/btn.scss deleted file mode 100644 index 7c10f93..0000000 --- a/front-end/src/styles/btn.scss +++ /dev/null @@ -1,103 +0,0 @@ -@import './variables.scss'; - -@mixin colorBtn($color) { - background: $color; - - &:hover { - color: $color; - - &:before, - &:after { - background: $color; - } - } -} - -.blue-btn { - @include colorBtn($blue); -} - -.light-blue-btn { - @include colorBtn($light-blue); -} - -.red-btn { - @include colorBtn($red); -} - -.pink-btn { - @include colorBtn($pink); -} - -.green-btn { - @include colorBtn($green); -} - -.tiffany-btn { - @include colorBtn($tiffany); -} - -.yellow-btn { - @include colorBtn($yellow); -} - -.btn-default-width { - width: 160px; -} - -.pan-btn { - font-size: 14px; - color: #fff; - padding: 14px 36px; - border-radius: 8px; - border: none; - outline: none; - transition: 600ms ease all; - position: relative; - display: inline-block; - - &:hover { - background: #fff; - - &:before, - &:after { - width: 100%; - transition: 600ms ease all; - } - } - - &:before, - &:after { - content: ''; - position: absolute; - top: 0; - right: 0; - height: 2px; - width: 0; - transition: 400ms ease all; - } - - &::after { - right: inherit; - top: inherit; - left: 0; - bottom: 0; - } -} - -.custom-button { - display: inline-block; - line-height: 1; - white-space: nowrap; - cursor: pointer; - background: #fff; - color: #fff; - -webkit-appearance: none; - text-align: center; - box-sizing: border-box; - outline: 0; - margin: 0; - padding: 10px 15px; - font-size: 14px; - border-radius: 4px; -} diff --git a/front-end/src/styles/element-ui.scss b/front-end/src/styles/element-ui.scss deleted file mode 100644 index 6055614..0000000 --- a/front-end/src/styles/element-ui.scss +++ /dev/null @@ -1,108 +0,0 @@ -// cover some element-ui styles - -.el-breadcrumb__inner, -.el-breadcrumb__inner a { - font-weight: 400 !important; -} - -.el-upload { - input[type="file"] { - display: none !important; - } -} - -.el-upload__input { - display: none; -} - -.cell { - .el-tag { - margin-right: 0px; - } -} - -.small-padding { - .cell { - padding-left: 5px; - padding-right: 5px; - } -} - -.fixed-width { - .el-button--mini { - padding: 7px 10px; - min-width: 60px; - } -} - -.status-col { - .cell { - padding: 0 10px; - text-align: center; - - .el-tag { - margin-right: 0px; - } - } -} - -// to fixed https://github.com/ElemeFE/element/issues/2461 -.el-dialog { - transform: none; - left: 0; - position: relative; - margin: 0 auto; -} - -// refine element ui upload -.upload-container { - .el-upload { - width: 100%; - - .el-upload-dragger { - width: 100%; - height: 200px; - } - } -} - -// dropdown -.el-dropdown-menu { - a { - display: block - } -} - -// fix date-picker ui bug in filter-item -.el-range-editor.el-input__inner { - display: inline-flex !important; -} - -// to fix el-date-picker css style -.el-range-separator { - box-sizing: content-box; -} - -.el-link { - font-size: 12px; -} -.el-aside { - background: none; - padding: 0 5px; - margin-left: -20px; -} -.el-main { - margin-left: 10px; - padding: 0; -} -.el-dropdown-link { - cursor: pointer; - color: #409EFF; -} -.el-icon-arrow-down { - font-size: 12px; -} -.el-dropdown { - font-size: 12px; - margin: 0 5px; -} diff --git a/front-end/src/styles/element-variables.scss b/front-end/src/styles/element-variables.scss deleted file mode 100644 index 29e6ea9..0000000 --- a/front-end/src/styles/element-variables.scss +++ /dev/null @@ -1,36 +0,0 @@ -/** -* 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: $main-dark; //#1890ff; -$--color-success: $main-normal; // $main-normal; // #13ce66; -$--color-warning: #ffba00; -$--color-danger: #f56c6c; //#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'; - -// .el-tag.el-tag--success { -// background-color: #f0f9eb; -// border-color: #e1f3d8; -// color: #67c23a; -// } -// 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/front-end/src/styles/index.scss b/front-end/src/styles/index.scss deleted file mode 100644 index e79a08a..0000000 --- a/front-end/src/styles/index.scss +++ /dev/null @@ -1,728 +0,0 @@ -@import './variables.scss'; -@import './mixin.scss'; -@import './transition.scss'; -@import './element-ui.scss'; -@import './sidebar.scss'; -@import './btn.scss'; -@import './shop.scss'; - -//[vxe-table 主题](https://vxetable.cn/v3/#/table/start/theme) -@import 'vxe-table/styles/variable.scss'; - -// 修改样式变量 -// $vxe-font-size: 30px; -// $vxe-font-color: red; -$vxe-primary-color: $main-dark; -// $vxe-table-font-color: $vxe-font-color; -// $vxe-table-border-color: red; -$vxe-table-border-radius: 20px; -// ... - -@import 'vxe-table/styles/icon.scss'; -@import 'vxe-table/styles/table.scss'; -@import 'vxe-table/styles/column.scss'; -@import 'vxe-table/styles/header.scss'; -@import 'vxe-table/styles/footer.scss'; -@import 'vxe-table/styles/filter.scss'; - -body { - height: 100%; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, - sans-serif; -} - -label { - font-weight: 700; -} - -html { - height: 100%; - box-sizing: border-box; -} - -#app { - min-height: 100%; -} - -*, -*:before, -*:after { - box-sizing: inherit; -} - -.no-padding, -.padding-no { - padding: 0px !important; -} -.no-margin, -.margin-no { - margin: 0px !important; -} -.height100 { - height: 100% !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; -} - -.el-icon-document-copy, -.el-icon-edit { - cursor: pointer; - color: $main-dark; - margin-left: 10px; -} -.F68710 { - color: #f68710; -} -.link { - color: $sub-dark; - cursor: pointer; -} -.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); - } - } -} -.avatar { - width: 120px !important; - height: 120px !important; - display: block; -} -// 文本禁止默认选中 -.no-user-select { - -moz-user-select: none; /*火狐*/ - -webkit-user-select: none; /*webkit浏览器*/ - -ms-user-select: none; /*IE10*/ - -khtml-user-select: none; /*早期浏览器*/ - user-select: none; -} -//main-container全局样式 -.app-container { - padding: 16px 16px; - padding-bottom: 10px; -} - -.components-container { - margin: 30px 50px; - position: relative; -} - -.pagination-container { - margin-top: 30px; -} - -.text-center { - text-align: center; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.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: $sub-dark; - cursor: pointer; - - &:hover { - color: $sub-dark; - } -} - -.filter-container { - padding-bottom: 10px; - - .filter-item { - display: inline-block; - vertical-align: middle; - margin-bottom: 10px; - } -} - -//refine vue-multiselect plugin -.multiselect { - line-height: 16px; -} - -.multiselect--active { - z-index: 1000 !important; -} - -// -.ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -// -.multi-ellipsis--l2 { - display: -webkit-box; - overflow: hidden; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; -} - -.footer { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - margin: 16px 0; -} - -.full-width, -.width-full { - width: 100% !important; -} -.el-input-group__append-width-100 .el-input-group__append .el-input { - width: 100px; -} -.tips { - font-size: 10px; - color: #c0c4cc; -} -.gray { - color: #a2a7b1// #c0c4cc; -} - -.el-radio { - margin-right: 10px; -} -.flag-one { - color: #fb0101; -} -.flag-two { - color: #fcf703; -} -.flag-three { - color: #0dfc34; -} -.flag-four { - color: #0150f9; -} -.flag-five { - color: #d706f1; -} - -.flex { - width: 100%; - display: flex; - flex-wrap: wrap; - flex-direction: row; -} -.flex-column { - width: 100%; - display: flex; - flex-wrap: wrap; - flex-direction: column; -} -.flex-center { - width: 100%; - display: flex; - justify-content: center; - align-items: center; -} -.justify-between { - justify-content: space-between; -} -.justify-center { - justify-content: center; -} -.justify-around { - justify-content: space-around; -} - -.justify-end { - justify-content: flex-end; -} - -.justify-start { - justify-content: flex-start !important; -} - -.align-items { - align-items: center; -} -.red { - color: red; -} - -.small-img { - width: 200px !important; -} - -/** 详情页的公共样式 bj-row ****/ -//通用 -.el-icon-circle-check { - color: green; -} -.el-icon-warning-outline { - color: red; -} -.border-no, -.child-border-no > *, -.all-border-no, -.all-border-no > * { - border: none !important; -} -.border-top { - border-left: none !important; - border-right: none !important; - border-bottom: none !important; - border-top: 1px solid rgba(215, 215, 215, 1); -} -.border-bottom { - border-left: none !important; - border-right: none !important; - border-top: none !important; - border-bottom: 1px solid rgba(215, 215, 215, 1); -} -.auto-width { - width: auto !important; -} -// label 后面加 冒号 -.bj-label-colon div:not(.bj-page) .el-form-item__label::after { - content: '\ff1a'; -} -// // content 前面加冒号 -// .el-form-item-content-colon .el-form-item__content::before { -// content: '\ff1a'; -// display: inline; -// } -// // content 前面加冒号时,label分散对齐 -// .el-form-item-content-colon .el-form-item__label { -// padding-right: 0; -// text-align: justify; -// text-align-last: justify; //https://caniuse.com/?search=text-align-last -// } -// 重设 el-input 的 disabled 样式 -.bj-el-input-disabled .el-input.is-disabled .el-input__inner { - background-color: #f7f8f9; - color: #97a8be; -} -// 块状布局,统一 bj-form-item-label 的宽度 -div:not(.bj-page) { - @for $i from 2 through 15 { - .bj-col.label-width-#{$i} .bj-form-item-label, - .label-width-#{$i} .bj-form-item-label { - width: ($i + 1) * 1em; // 在bj-form-item-label::after加冒号,需要占位1em - } - } - .bj-row { - border: 1px solid rgba(215, 215, 215, 1); - padding: 8px 16px; - display: flex; - flex-wrap: wrap; - - .bj-col { - border-left: 1px solid rgba(215, 215, 215, 0.75); - padding: 16px; - width: 33.33%; - } - .bj-col:first-of-type { - border-left: none; - } - @for $i from 1 through 24 { - // 按 bj-col-* 布局宽度 - .bj-col-#{$i} { - width: percentage($i/24) !important; - } - // bj-col 设为100%,按 bj-item-col-* 下的 el/bj-form-item 布局宽度 - .bj-col.bj-item-col-#{$i} { - width: 100%; - padding: 0; - margin-top: 16px; - } - .bj-item-col-#{$i} { - .bj-form-item, - .el-form-item { - width: percentage($i/24); - float: left; - padding: 0 16px; - margin-right: 0; - } - } - // title 和 item的样式 - .bj-col, - .bj-col-#{$i} { - .bj-form-title { - font-size: 14px; - font-weight: bold; - - margin-bottom: 16px; - } - .bj-form-title.empty::after { - content: ''; - display: inline-block; - } - .right { - float: right; - font-weight: normal; - } - .bj-form-item:last-child { - margin-bottom: 0; - } - .bj-form-item { - display: flex; - font-size: 12px; - margin-bottom: 16px; - button { - margin-bottom: 10px; - } - .bj-form-item-label { - flex: 0 0 auto; - color: #000; - text-align: right; - // text-align: justify; - // text-align-last: justify; //https://caniuse.com/?search=text-align-last - // height: 1em; - // overflow: hidden; - } - // .bj-form-item-label::after { - // content: ''; - // display: inline-block; - // width: 100%; - // } - // .bj-form-item-value::before { - // content: '\ff1a'; - // } - .bj-form-item-label::after { - content: '\ff1a'; - } - .bj-form-item-value { - flex: 0 1 auto; - color: #6c6c6c; //#7f7f7f; - } - .bj-form-item-right { - flex: 0 0 auto; - } - } - .bj-form-tips { - font-size: 14px; - font-weight: normal; - margin: 6px 0; - color: #7f7f7f; - } - } - } - } -} -/** 高度28px ,解决列表页查询条件高度不一致问题 */ -.el-form-item-28 { - height: 28px; -} - -/** 人工标签 的 颜色 START */ -// BjTag的style里 -/** 人工标签 的 颜色 END */ -.hand-tag { - padding: 4px 8px; - color: #fff !important; -} - -// 长文本,不按单词断行。 -.el-message-box__message { - word-break: break-all; -} - -.el-form-item.el-form-item--mini { - min-height: 29px; -} - -.require::before { - content: '*'; - color: red; - padding: auto 2px; -} -/******** TreeSelect Start ****************/ -// class="bj-tree-select" - -// .vue-treeselect.bj-tree-select, -// .bj-tree-select .vue-treeselect__control { -// height: 36px; -// width: 100%; -// } - -.el-form-item--mini { - div.vue-treeselect.bj-tree-select { - width: 100%; - .vue-treeselect__input { - padding: 0; - } - .vue-treeselect__control { - height: 26px; - line-height: 26px; - } - - .vue-treeselect__input, - .vue-treeselect__input-container, - .vue-treeselect__placeholder, - .vue-treeselect__single-value, - .vue-treeselect__control-arrow-container { - height: 26px; - line-height: 26px; - } - .vue-treeselect__multi-value, - .vue-treeselect__multi-value-item-container, - .vue-treeselect__multi-value-item, - .vue-treeselect__limit-tip-text, - .vue-treeselect__limit-tip, - .vue-treeselect-helper-zoom-effect-off { - padding: 0; - border: none; - margin: 0; - font-size: 12px; - padding-left: 10px; - } - } -} - -.vue-treeselect.bj-tree-select.mini { - width: 100%; - .vue-treeselect__input { - padding: 0; - } - .vue-treeselect__control, - .vue-treeselect__input, - .vue-treeselect__input-container, - .vue-treeselect__placeholder, - .vue-treeselect__single-value, - .vue-treeselect__control-arrow-container { - height: 28px; - line-height: 28px; - } - .vue-treeselect__multi-value, - .vue-treeselect__multi-value-item-container, - .vue-treeselect__multi-value-item, - .vue-treeselect__limit-tip-text, - .vue-treeselect__limit-tip, - .vue-treeselect-helper-zoom-effect-off { - padding: 0; - // border: none; - margin: 0; - } -} -/******** TreeSelect End ****************/ -.xs.el-button { - font-size: 12px; - padding: 3px 10px; - margin-left: 16px; -} - -.input-default-width { - width: 200px; -} - -/******** el-tabs ****************/ -.el-tabs--card > .el-tabs__header .el-tabs__nav { - border: none; - margin-bottom: -1px; -} -.el-tabs--card > .el-tabs__header .el-tabs__item:first-child { - border-left: 1px solid #dfe4ed; -} -.el-tabs--card > .el-tabs__header .el-tabs__item { - border-right: 1px solid #dfe4ed; - border-bottom: 1px solid #dfe4ed; - border-top: 1px solid #dfe4ed; - border-left: none; -} -.el-tabs--card > .el-tabs__header .el-tabs__item.is-active { - border-top: 2px $main-dark solid; - border-bottom: 1px solid #fff; -} -/*** 表格 text 按钮 ****/ -.el-button--text.edit-btn { - color: $sub-dark; -} - -.el-button--text.delete-btn { - color: $main-dark; -} - -.el-button--text { - color: $sub-dark; -} - -.el-button--text.is-disabled { - color: $minor-lighter; -} - -/*** 操作栏 btn 按钮 ****/ -.top-left-btn .el-button { - color: $main-normal; - background: $background-light; - border-color: #ffc79f; -} -.top-left-btn .el-button.is-disabled { - color: $main-light; - background-color: #fff1e7; - border-color: #ffe3cf; -} -.top-left-btn .el-button.main-btn { - color: $background-light; - background-color: $main-dark; - border-color: $main-dark; -} - -/* 浏览器会把letter-spacing加到文字的后面,导致多出来一个宽度,可以用负margin消除这个宽度 */ -.letter-spacing-8 span { - letter-spacing: 8px; -} -.letter-spacing-8 span:after { - content: ''; - margin-left: -8px; -} -.letter-spacing-16 span { - letter-spacing: 16px; -} -.letter-spacing-16 span:after { - content: ''; - margin-left: -16px; -} - -// 用于table的cellClassName回调,按条件隐藏展开图标。 例:src\views\center-business\after\internal\refund\add.vue -.bj-cell-expand-hide > div { - display: none; -} -// vue.draggable chosenClass 属性设置选中元素的样式 -.chosen { - background: $ghost !important; -} -// vue.draggable ghostClass 目标位置占位符的样式及需要停靠位置的样式。 -.ghost { - background: $ghost !important; -} -.status-icon-err { - font-size: 52px; - color: red; - background-color: white; - border-radius: 50%; -} -.status-icon-success { - font-size: 52px; - color: green; - background-color: white; - border-radius: 50%; -} - -// .vxe-cell { -// font-size: 12px; -// } -.table-other-td-item { - // padding: 2px 2px; -} -.table-other-td-item::after { - content: ';'; - display: inline-block; -} diff --git a/front-end/src/styles/mixin.scss b/front-end/src/styles/mixin.scss deleted file mode 100644 index 06fa061..0000000 --- a/front-end/src/styles/mixin.scss +++ /dev/null @@ -1,66 +0,0 @@ -@mixin clearfix { - &:after { - content: ""; - display: table; - clear: both; - } -} - -@mixin scrollBar { - &::-webkit-scrollbar-track-piece { - background: #d3dce6; - } - - &::-webkit-scrollbar { - width: 6px; - } - - &::-webkit-scrollbar-thumb { - background: #99a9bf; - border-radius: 20px; - } -} - -@mixin relative { - position: relative; - width: 100%; - height: 100%; -} - -@mixin pct($pct) { - width: #{$pct}; - position: relative; - margin: 0 auto; -} - -@mixin triangle($width, $height, $color, $direction) { - $width: $width/2; - $color-border-style: $height solid $color; - $transparent-border-style: $width solid transparent; - height: 0; - width: 0; - - @if $direction==up { - border-bottom: $color-border-style; - border-left: $transparent-border-style; - border-right: $transparent-border-style; - } - - @else if $direction==right { - border-left: $color-border-style; - border-top: $transparent-border-style; - border-bottom: $transparent-border-style; - } - - @else if $direction==down { - border-top: $color-border-style; - border-left: $transparent-border-style; - border-right: $transparent-border-style; - } - - @else if $direction==left { - border-right: $color-border-style; - border-top: $transparent-border-style; - border-bottom: $transparent-border-style; - } -} diff --git a/front-end/src/styles/ruoyi.scss b/front-end/src/styles/ruoyi.scss deleted file mode 100644 index c7f1de4..0000000 --- a/front-end/src/styles/ruoyi.scss +++ /dev/null @@ -1,274 +0,0 @@ -/** - * 通用css样式布局处理 - * 2021 飞骥 - */ - -/** 基础通用 **/ -.pt5 { - padding-top: 5px; -} -.pr5 { - padding-right: 5px; -} -.pb5 { - padding-bottom: 5px; -} -.mt5 { - margin-top: 5px; -} -.mr5 { - margin-right: 5px; -} -.mb5 { - margin-bottom: 5px; -} -.mb8 { - margin-bottom: 8px; -} -.ml5 { - margin-left: 5px; -} -.ml10 { - margin-left: 10px; -} -.ml15 { - margin-left: 15px; -} -.ml20 { - margin-left: 20px !important; -} -.ml25 { - margin-left: 25px !important; -} -.mt10 { - margin-top: 10px; -} -.mr10 { - margin-right: 10px; -} -.mb10 { - margin-bottom: 10px; -} -.ml0 { - margin-left: 10px; -} -.mt16 { - margin-top: 16px; -} -.mr16 { - margin-right: 16px; -} -.mb16 { - margin-bottom: 16px; -} -.ml6 { - margin-left: 16px; -} -.mt20 { - margin-top: 20px; -} -.mr20 { - margin-right: 20px; -} -.mb20 { - margin-bottom: 20px; -} -.m20 { - margin-left: 20px; -} -.font12 { - font-size: 12px; -} -.font14 { - font-size: 14px; -} -.font16 { - font-size: 16px; -} - -.el-dialog:not(.is-fullscreen) { - margin-top: 6vh !important; -} - -.el-table { - .el-table__header-wrapper, - .el-table__fixed-header-wrapper { - th { - word-break: break-word; - background-color: #f8f8f9; - color: #515a6e; - height: 40px; - font-size: 13px; - } - } - .el-table__body-wrapper { - .el-button [class*='el-icon-'] + span { - margin-left: 1px; - } - } -} - -/** 表单布局 **/ -.form-header { - font-size: 15px; - color: #6379bb; - border-bottom: 1px solid #ddd; - margin: 8px 10px 25px 10px; - padding-bottom: 5px; -} - -/** 表格布局 **/ -.pagination-container { - position: relative; - height: 25px; - margin-bottom: 10px; - margin-top: 15px; - padding: 10px 20px !important; -} - -/* tree border */ -.tree-border { - margin-top: 5px; - border: 1px solid #e5e6e7; - background: #ffffff none; - border-radius: 4px; -} - -.pagination-container .el-pagination { - right: 0; - position: absolute; -} - -.el-table .fixed-width .el-button--mini { - color: #409eff; - padding-left: 0; - padding-right: 0; - width: inherit; -} - -.el-tree-node__content > .el-checkbox { - margin-right: 8px; -} - -.list-group-striped > .list-group-item { - border-left: 0; - border-right: 0; - border-radius: 0; - padding-left: 0; - padding-right: 0; -} - -.list-group { - padding-left: 0px; - list-style: none; -} - -.list-group-item { - border-bottom: 1px solid #e7eaec; - border-top: 1px solid #e7eaec; - margin-bottom: -1px; - padding: 11px 0px; - font-size: 13px; -} - -.pull-right { - float: right !important; -} - -.el-card__header { - padding: 14px 15px 7px; - min-height: 40px; -} - -.el-card__body { - padding: 15px 20px 20px 20px; -} - -.card-box { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 10px; -} - -/* button color */ -.el-button--cyan.is-active, -.el-button--cyan:active { - background: $main-normal !important; - border-color: $main-normal !important; - color: #ffffff !important; -} - -.el-button--cyan:focus, -.el-button--cyan:hover { - background: $main-normal !important; - border-color: $main-normal !important; - color: #ffffff !important; -} - -.el-button--cyan { - // background-color: $main-normal; - border-color: $main-normal; - color: $main-normal; -} - -/* text color */ -.text-navy { - color: #1ab394; -} - -.text-primary { - color: inherit; -} - -.text-success { - color: #1c84c6; -} - -.text-info { - color: #23c6c8; -} - -.text-warning { - color: #f8ac59; -} - -.text-danger { - color: #ed5565; -} - -.text-muted { - color: #888888; -} - -/* image */ -.img-circle { - border-radius: 50%; -} - -.img-lg { - width: 120px; - height: 120px; -} - -.avatar-upload-preview { - position: absolute; - top: 50%; - transform: translate(50%, -50%); - width: 180px; - height: 180px; - border-radius: 50%; - box-shadow: 0 0 4px #ccc; - overflow: hidden; -} - -/* 拖拽列样式 */ -.sortable-ghost { - opacity: 0.8; - color: #fff !important; - background: $ghost !important; -} - -.top-right-btn { - position: relative; - float: right; -} diff --git a/front-end/src/styles/shop.scss b/front-end/src/styles/shop.scss deleted file mode 100644 index 116e394..0000000 --- a/front-end/src/styles/shop.scss +++ /dev/null @@ -1,44 +0,0 @@ -.avatar-uploader .el-upload { - border: 1px dashed #d9d9d9; - border-radius: 6px; - cursor: pointer; - position: relative; - overflow: hidden; -} -.avatar-uploader .el-upload:hover { - border-color: #409EFF; -} -.avatar-uploader-icon { - font-size: 28px; - color: #8c939d; - width: 120px; - height: 120px; - line-height: 120px; - text-align: center; -} -.avatar { - width: 120px; - height: 120px; - display: block; -} -.avatarTable { - width: 100%; - height: 100%; - display: block; -} -.el-carousel__item h3 { - color: #475669; - font-size: 14px; - opacity: 0.75; - line-height: 200px; - margin: 0; -} - -.el-carousel__item:nth-child(2n) { - background-color: #99a9bf; -} - -.el-carousel__item:nth-child(2n+1) { - background-color: #d3dce6; -} - diff --git a/front-end/src/styles/sidebar.scss b/front-end/src/styles/sidebar.scss deleted file mode 100644 index e4c6b5e..0000000 --- a/front-end/src/styles/sidebar.scss +++ /dev/null @@ -1,253 +0,0 @@ -#app { - .main-container { - min-height: 100%; - transition: margin-left 0.28s; - margin-left: $sideBarWidth; - position: relative; - } - - .sidebar-container { - transition: width 0.28s; - width: $sideBarWidth !important; - background-color: $menuBg; - height: 100%; - position: fixed; - font-size: 0px; - top: 0; - bottom: 0; - left: 0; - z-index: 2001; - overflow: hidden; - - box-shadow: 0 2px 6px 0 rgba(149, 149, 149, 0.3); - - // 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 { - font-size: 16px !important; - &:hover { - background-color: $menuHover !important; - } - } - - .is-active > .el-submenu__title { - color: $subMenuActiveText !important; - } - - .el-menu-item.is-active { - background-color: $background-light !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; - } - } - } - .toggle-sidebar-tool { - background: #f3f3f3; - position: fixed; - left: calc(2px + #{$sideBarWidth}); - top: calc(50% - 25px); - width: 18px; - height: 50px; - z-index: 1; - transition: left 0.28s; - text-align: center; - line-height: 68px; - cursor: pointer; - // 矩形透视为梯形 , left需要补2px - transform: perspective(2em) rotateY(1deg); - i { - font-size: 20px; - color: #d5d5d5; - } - } - .hideSidebar { - .toggle-sidebar-tool { - left: $sideBarWidthHide; - } - - .sidebar-container { - width: $sideBarWidthHide !important; - } - - .main-container { - margin-left: $sideBarWidthHide; - } - - .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: 0px; - } - - .sidebar-container { - transition: transform 0.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/front-end/src/styles/transition.scss b/front-end/src/styles/transition.scss deleted file mode 100644 index 4cb27cc..0000000 --- a/front-end/src/styles/transition.scss +++ /dev/null @@ -1,48 +0,0 @@ -// global transition css - -/* fade */ -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.28s; -} - -.fade-enter, -.fade-leave-active { - opacity: 0; -} - -/* fade-transform */ -.fade-transform-leave-active, -.fade-transform-enter-active { - transition: all .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/front-end/src/styles/variables.scss b/front-end/src/styles/variables.scss deleted file mode 100644 index dcac0a8..0000000 --- a/front-end/src/styles/variables.scss +++ /dev/null @@ -1,58 +0,0 @@ -// 品牌 主色 -$main-dark: #ff7310; -$main-normal: #ff8d13; -$main-light: #febb14; -// 中性色 次色 -$minor-dark: #333333; -$minor-normal: #666666; -$minor-light: #999999; -$minor-lighter: #d9d9d9; -// 辅助色 -$sub-dark: #3173d0; -$sub-normal: #ffeebf; -$sub-light: #eeeaeb; -// 背景色 -$background-dark: #f5f5f5; -$background-normal: #fbfbfb; -$background-light: #ffffff; - -// base color -$blue: #324157; -$light-blue: #3a71a8; -$red: #c03639; -$pink: #e65d6e; -$green: #30b08f; -$tiffany: #4ab7bd; -$yellow: #fec171; -$panGreen: #30b08f; -$danger: #f56c6c; - -// sidebar -$menuText: $minor-normal; // #bfcbd9; -$menuActiveText: $main-dark; // #409eff; -$subMenuActiveText: #f4f4f5; // https://github.com/ElemeFE/element/issues/12951 - -$menuBg: $background-normal; //#304156; -$menuHover: $background-dark; //#263445; - -$subMenuBg: #1f2d3d; -$subMenuHover: #001528; - -$sideBarWidth: 180px; -$sideBarWidthHide: 0px; -// 拖拽样式 -$ghost: #eee; - -// 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; - ghost: $ghost; -} diff --git a/front-end/src/utils/BjDialogListConfig.js b/front-end/src/utils/BjDialogListConfig.js deleted file mode 100644 index 87abf50..0000000 --- a/front-end/src/utils/BjDialogListConfig.js +++ /dev/null @@ -1,688 +0,0 @@ -import { goodsApi, channelApi, stockApi, orderApi, afterApi } from '@/api'; -import { GOODS_TYPES } from '@/utils/constants'; -import { GOODS_COMBO_TYPES } from '@/utils/constants'; -// spu -export function spuVirtual(title = '选择虚拟商品', option) { - return spuDefault(title, { - defaultQuery: { type: GOODS_TYPES.VIRTUAL, status: 1 }, - }); -} -export function spuReal(title = '选择实物商品', option) { - return spuDefault(title, { - defaultQuery: { type: GOODS_TYPES.REAL, status: 1 }, - }); -} -export function spuPackage(title = '选择套餐商品', option) { - return spuDefault(title, { - defaultQuery: { setFlag: GOODS_COMBO_TYPES.PACKAGE, status: 1 }, - }); -} -export function spuOrdinary(title = '选择普通商品', option) { - return spuDefault(title, { - defaultQuery: { setFlag: GOODS_COMBO_TYPES.ORDINARY, status: 1 }, - }); -} -export function spuDefault(title = '选择商品', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'spuCode', - label: '商品编码', - width: 160, - }, - { - prop: 'name', - label: '商品名称', - width: 160, - }, - { - prop: 'categoryName', - label: '商品分类', - }, - ], - search: option.search || [ - { - placeholder: '请输入编码', - key: 'spuCode', - }, - { - placeholder: '请输入名称', - key: 'name', - }, - { - placeholder: '请选择分类', - key: 'categoryIdList', - component: 'BjGoodsTypeTreeSelect', - multiple: true, - }, - ], - actionApi: option.actionApi || goodsApi.getPage, - defaultQuery: option.defaultQuery || { status: 1 }, - query: option.query || '', - }; -} -// sku -export function skuReal(title = '选择实物商品', option) { - return skuDefault(title, { - defaultQuery: { spuType: GOODS_TYPES.REAL, status: [3, 4, 5] }, - }); -} -export function skuDefault(title = '选择SKU', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'categoryName', - label: '商品分类', - }, - { - prop: 'spuCode', - label: '商品编码', - width: 160, - }, - { - prop: 'spuName', - label: '商品名称', - width: 160, - }, - { - prop: 'skuCode', - label: 'SKU编码', - width: 160, - }, - { - prop: 'skuName', - label: 'SKU名称', - width: 160, - }, - { - prop: 'spuType', - label: '商品类型', - constantKey: 'GOODS_TYPE_LIST', - }, - ], - search: option.search || [ - { - placeholder: '请输入商品名称', - key: 'spuName', - }, - { - placeholder: '请输入商品编码', - key: 'spuCode', - }, - { - placeholder: '请输入SKU编码', - key: 'skuCode', - }, - ], - actionApi: option.actionApi || goodsApi.getSku, - defaultQuery: option.defaultQuery || { status: [3, 4, 5] }, - query: option.query || '', - }; -} -// shop -export function shopDefault(title = '选择店铺', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'code', - label: '店铺编码', - }, - { - prop: 'name', - label: '店铺名称', - }, - { - prop: 'categoryType', - label: '店铺类型', - constantKey: 'SHOP_TYPE_LIST', - }, - ], - search: option.search || [ - { - placeholder: '请输入编码', - key: 'code', - }, - { - placeholder: '请输入名称', - key: 'name', - }, - ], - actionApi: option.actionApi || channelApi.getAllShopPage, - defaultQuery: option.defaultQuery || {}, - query: option.query || '', - }; -} -// shopOnline -export function shopOnline(title = '选择网店', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'code', - label: '编码', - }, - { - prop: 'name', - label: '名称', - }, - { - prop: 'channelTypeMeaning', - label: '销售渠道', - }, - { - prop: 'onlineStoreTypeMeaning', - label: '类型', - }, - ], - search: option.search || [ - { - placeholder: '请输入网店编码', - key: 'code', - }, - { - placeholder: '请输入网店名称', - key: 'name', - }, - - { - placeholder: '请选择渠道', - key: 'channelTypeCode', - component: 'BjSelectLov', - lovCode: 'SCHL.CHANNEL_TYPE', - }, - ], - actionApi: option.actionApi || channelApi.getOnlineShopPage, - defaultQuery: option.defaultQuery || { status: true }, - query: option.query || '', - }; -} -// channelApi.getWarehousePage -export function warehouseDefault(title = '选择仓库', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'code', - label: '仓库编码', - }, - { - prop: 'name', - label: '仓库名称', - }, - { - prop: 'detailAddress', - label: '仓库地址', - }, - ], - search: option.search || [ - { - placeholder: '仓库编码', - key: 'code', - }, - { - placeholder: '仓库名称', - key: 'name', - }, - ], - actionApi: option.actionApi || channelApi.getWarehousePage, - // // defaultQuery: { typeCode: ['real'] }, - defaultQuery: option.defaultQuery || { enableFlag: true }, - query: option.query || '', - }; -} -// stockApi.getWarehousesPage -export function stockWarehouseLogic(time, option) { - return stockWarehouseDefault('选择逻辑仓', { - defaultQuery: { typeCode: ['logic'] }, - }); -} -export function stockWarehouseReal(time, option) { - return stockWarehouseDefault('选择实仓', { - defaultQuery: { typeCode: ['real'] }, - }); -} -export function stockWarehouseDefault(title = '选择仓库', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'code', - label: '仓库编码', - }, - { - prop: 'name', - label: '仓库名称', - }, - ], - search: option.search || [ - { - placeholder: '仓库编码', - key: 'code', - }, - { - placeholder: '仓库名称', - key: 'name', - }, - ], - actionApi: option.actionApi || stockApi.getWarehousesPage, - defaultQuery: option.defaultQuery || {}, - query: option.query || '', - }; -} -// stockGoods -export function stockGoodsDefault(title = '选择商品', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'spuCode', - label: '商品编码', - width: 160, - }, - { - prop: 'spuName', - label: '商品名称', - width: 160, - }, - { - prop: 'skuCode', - label: 'SKU编码', - width: 160, - }, - { - prop: 'categoryName', - label: '商品分类', - }, - { - prop: 'spuType', - label: '商品类型', - constantKey: 'GOODS_TYPE_LIST', - }, - { - prop: 'usableNum', - label: '可用库存 ', - }, - ], - search: option.search || [ - { - placeholder: '请输入商品名称', - key: 'spuName', - }, - { - placeholder: '请输入商品编码', - key: 'spuCode', - }, - { - placeholder: '请输入SKU编码', - key: 'skuCode', - }, - ], - actionApi: option.actionApi || stockApi.getGoodsStockPage, - // usableExcludeZeroFlag (boolean, optional): 可用库存是否大于零 - // warehouseId (Array[integer], optional): 仓库名称 - defaultQuery: option.defaultQuery || { warehouseId: [], usableExcludeZeroFlag: true }, - query: option.query || '', - }; -} - -/** 内部销售单 */ -export function innerOrderDefault(title = '选择关联销售单', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'innerOrderNo', - label: '内部订单号', - width: 160, - }, - { - prop: 'outerOrderNo', - label: '三方订单号', - width: 160, - }, - { - prop: 'businessType', - label: '订单类型', - constantKey: 'ORDER_BUSINESS_TYPE_LIST', - }, - { - prop: 'orderStatus', - label: '订单状态', - constantKey: 'ORDER_INTERNAL_ORDER_STATUS_LIST', - }, - { - prop: 'storeName', - label: '销售店铺', - }, - { - prop: 'channelTypeMeaning', - label: '销售渠道', - }, - { - prop: 'payStatus', - label: '支付状态', - constantKey: 'ORDER_INTERNAL_PAYMENT_STATUS_LIST', - }, - { - prop: 'goodsQuatity', - label: '商品行数量', - }, - { - prop: 'totalAmount', - label: '商品总金额', - }, - { - prop: 'buyerPay', - label: '买家应付', - }, - { - prop: 'costPrice', - label: '商品总成本', - }, - { - prop: 'buyerRealPrice', - label: '买家实付', - }, - { - prop: 'deliveryStatus', - label: '发货状态', - constantKey: 'ORDER_INTERNAL_DELIVER_STATUS_LIST', - width: 100, - }, - { - prop: 'receivingStatus', - label: '收货状态', - constantKey: 'ORDER_INTERNAL_RECEIVING_STATUS_LIST', - width: 100, - }, - { - prop: 'buyerNick', - label: '买家昵称', - }, - { - prop: 'receiverName', - label: '收货人姓名', - }, - { - prop: 'mobile', - label: '手机号', - width: 100, - }, - { - prop: 'address', - label: '收货地址', - }, - { - prop: 'orderTime', - label: '三方下单时间', - width: 135, - }, - { - prop: 'payTime', - label: '支付时间', - width: 135, - }, - { - prop: 'creationDate', - label: '创建时间', - width: 135, - }, - ], - search: option.search || [ - { - placeholder: '三方订单号/内部订单号', - key: 'orderNo', - }, - ], - showChannelStore: ['channel', 'storeIdList'], - actionApi: option.actionApi || orderApi.getInternalPage, - defaultQuery: option.defaultQuery || {}, - query: option.query || '', - }; -} -/** 退款商品 */ -export function refundGoodsDefault(title = '选择退款商品', option = {}) { - const list = title.includes('退货') - ? [ - // { - // prop: 'quantityShipped', - // label: '已发货数量', - // }, - // { - // prop: 'quantityReturned', - // label: '已退货数量', - // }, - // { - // prop: 'returnableQuantity', - // label: '可退货数量', - // }, - ] - : [ - // { - // prop: 'undeliveredQuantity', - // label: '未发货数量', - // }, - // { - // prop: 'quantityRefunded', - // label: '已退款数量', - // }, - // { - // prop: 'refundableQuantity', - // label: '可退款数量', - // }, - ]; - - return { - title: title, - columns: option.columns || [ - { - prop: 'spuCode', - label: '商品编码', - width: 160, - }, - { - prop: 'spuName', - label: '商品名称', - width: 160, - }, - { - prop: 'skuCode', - label: 'SKU编码', - width: 160, - }, - { - prop: 'skuName', - label: 'SKU名称', - width: 160, - }, - { - prop: 'giftFlag', - label: '是否赠品', - constantKey: 'STATUS_YES_NUM', - width: 80, - }, - { - prop: 'totalQuantity', - label: '商品行数量', - width: 80, - }, - ...list, - ], - search: option.search || [], - actionApi: option.actionApi || afterApi.getRefundPageByInnerNo, - defaultQuery: option.defaultQuery || { innerOrderNo: null }, - query: option.query || '', - }; -} - -/** 三方销售单 */ -export function thirdOrderDefault(title = '选择关联三方订单', option = {}) { - return { - title: title, - columns: option.columns || [ - { - prop: 'outerOrderNo', - label: '三方订单号', - width: 160, - }, - { - prop: 'innerOrderNo', - label: '内部订单号', - width: 160, - }, - { - prop: 'businessType', - label: '订单类型', - constantKey: 'ORDER_BUSINESS_TYPE_LIST', - }, - { - prop: 'storeName', - label: '销售店铺', - width: 160, - }, - { - prop: 'channelTypeMeaning', - label: '销售渠道', - }, - { - prop: 'circulationStatus', - label: '流转状态', - constantKey: 'AFTER_THIRD_REFUND_TRANSFER_STATUS', - }, - { - prop: 'syncStatus', - label: '回写状态', - constantKey: 'ORDER_BACK_RES_LIST', - }, - { - prop: 'receivingStatus', - label: '平台收货状态', - constantKey: 'ORDER_THIRD_RECEIVING_STATUS_LIST', - }, - // { - // prop: 'buyerRemarks', - // label: '买家留言', - // }, - // { - // prop: 'serviceRemarks', - // label: '客服备注', - // }, - { - prop: 'goodsQuantity', - label: '商品数', - }, - { - prop: 'goodsTotalAmount', - label: '商品总金额', - }, - { - prop: 'totalDiscount', - label: '优惠合计', - }, - { - prop: 'amountReceivable', - label: '应收总金额', - }, - { - prop: 'buyerPayAmount', - label: '买家实付', - }, - { - prop: 'businessDiscountAmount', - label: '商家承担优惠金额', - }, - { - prop: 'thirdDiscountAmount', - label: '三方承担优惠金额', - }, - { - prop: 'buyerNick', - label: '买家昵称', - }, - { - prop: 'receiverName', - label: '收货人姓名', - }, - - { - prop: 'mobile', - label: '手机号', - width: 100, - }, - // { - // prop: 'address', - // label: '收货地址', - // }, - { - prop: 'orderTime', - label: '三方下单时间', - width: 135, - }, - { - prop: 'payTime', - label: '支付时间', - width: 135, - }, - { - prop: 'creationDate', - label: '拉单时间', - width: 135, - }, - ], - search: option.search || [ - { - placeholder: '三方订单号/内部订单号', - key: 'orderNo', - }, - ], - showChannelStore: ['channel', 'storeIdList'], - actionApi: option.actionApi || orderApi.getThirdOrderPage, - defaultQuery: option.defaultQuery || {}, - query: option.query || '', - }; -} -/** 三方退款商品: 三方销售单详情的thirdItemVO字段 */ -export function thirdRefundGoodsDefault(title = '选择退款商品', option = {}) { - const list = title.includes('退货') ? [] : []; - - // outerSaleAmount: 199 - // outerSingleSaleAmount: 199 - // quantity: 1 - - return { - title: title, - columns: option.columns || [ - { - prop: 'spuCode', - label: '商品编码', - width: 160, - }, - { - prop: 'spuName', - label: '商品名称', - width: 160, - }, - { - prop: 'skuCode', - label: 'SKU编码', - width: 160, - }, - { - prop: 'skuName', - label: 'SKU名称', - }, - { - prop: 'quantity', - label: '商品行数量', - }, - ...list, - ], - search: option.search || [], - actionApi: option.actionApi || afterApi.getRefundPageByInnerNo, - defaultQuery: option.defaultQuery || { innerOrderNo: null }, - query: option.query || '', - }; -} diff --git a/front-end/src/utils/auth.js b/front-end/src/utils/auth.js deleted file mode 100644 index 42b6379..0000000 --- a/front-end/src/utils/auth.js +++ /dev/null @@ -1,15 +0,0 @@ -import Cookies from 'js-cookie'; - -const TokenKey = 'BJ-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/front-end/src/utils/axios.js b/front-end/src/utils/axios.js deleted file mode 100644 index f00239f..0000000 --- a/front-end/src/utils/axios.js +++ /dev/null @@ -1,54 +0,0 @@ -// import Vue from 'vue'; -import axios from 'axios'; -// import vueAxios from 'vue-axios'; -import store from '@/store'; -import { getToken } from '@/utils/auth'; -import { VUE_APP_BASE_API } from '@/utils/index'; - -/** axios通用配置 */ -axios.defaults.timeout = 30000; -axios.defaults.baseURL = VUE_APP_BASE_API(); - -/** http request 拦截器 */ -axios.interceptors.request.use( - config => { - // do something - 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; - }, - err => { - return Promise.reject(err); - }, -); - -// http response 拦截器 -axios.interceptors.response.use( - response => { - return response; - }, - error => { - if (error.response) { - switch (error.response.status) { - case 401: - // 401 清除token信息并跳转到登录页面 - window.location.href = error.response.headers.location; - } - } - return Promise.reject(error.response.data); - }, -); - -// Vue.use(vueAxios, axios); // Vue.axios/this.axios/this.$http使用axios,一次封装方便协作规范 - -/** 2021-9-8 13:57:49 线上npm build失败,先禁用vue-axios - * This dependency was not found: - * * vue-axios in ./src/utils/axios.js - * To install it, you can run: npm install --save vue-axios - * */ - -export default axios; diff --git a/front-end/src/utils/bpmn/customTranslate.js b/front-end/src/utils/bpmn/customTranslate.js deleted file mode 100644 index be552f9..0000000 --- a/front-end/src/utils/bpmn/customTranslate.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-10-12 17:42:31 - * @LastEditTime: 2021-10-12 17:42:46 - * @LastEditors: your name - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\utils\bpmn\customTranslate.js - */ -import translations from './translationsGerman'; - -export default function customTranslate(template, replacements) { - replacements = replacements || {}; - - // Translate - template = translations[template] || template; - - // Replace - return template.replace(/{([^}]+)}/g, function(_, key) { - var str = replacements[key]; - if (translations[replacements[key]] != null && translations[replacements[key]] != 'undefined') { - str = translations[replacements[key]]; - } - return str || '{' + key + '}'; - }); -} diff --git a/front-end/src/utils/bpmn/defalutXml.js b/front-end/src/utils/bpmn/defalutXml.js deleted file mode 100644 index 9446914..0000000 --- a/front-end/src/utils/bpmn/defalutXml.js +++ /dev/null @@ -1,17 +0,0 @@ -export default ` - - - - - - - -`; diff --git a/front-end/src/utils/bpmn/translationsGerman.js b/front-end/src/utils/bpmn/translationsGerman.js deleted file mode 100644 index 6eec7cc..0000000 --- a/front-end/src/utils/bpmn/translationsGerman.js +++ /dev/null @@ -1,239 +0,0 @@ -export default { - // Labels - 'Activate the global connect tool': '激活全局连接工具', - 'Append {type}': '追加 {type}', - 'Append EndEvent': '追加 结束事件 ', - 'Append Task': '追加 任务', - 'Append Gateway': '追加 网关', - 'Append Intermediate/Boundary Event': '追加 中间/边界 事件', - 'Add Lane above': '在上面添加道', - 'Divide into two Lanes': '分割成两个道', - 'Divide into three Lanes': '分割成三个道', - 'Add Lane below': '在下面添加道', - 'Append compensation activity': '追加补偿活动', - 'Change type': '修改类型', - 'Connect using Association': '使用关联连接', - 'Connect using Sequence/MessageFlow or Association': '使用顺序/消息流或者关联连接', - 'Connect using DataInputAssociation': '使用数据输入关联连接', - 'Remove': '移除', - 'Activate the hand tool': '激活抓手工具', - 'Activate the lasso tool': '激活套索工具', - 'Activate the create/remove space tool': '激活创建/删除空间工具', - 'Create expanded SubProcess': '创建扩展子过程', - 'Create IntermediateThrowEvent/BoundaryEvent': '创建中间抛出事件/边界事件', - 'Create Pool/Participant': '创建池/参与者', - 'Parallel Multi Instance': '并行多重事件', - 'Sequential Multi Instance': '时序多重事件', - 'DataObjectReference': '数据对象参考', - 'DataStoreReference': '数据存储参考', - 'Loop': '循环', - 'Ad-hoc': '即席', - 'Create {type}': '创建 {type}', - 'Create Task': '创建任务', - 'Create StartEvent': '创建开始事件', - 'Create EndEvent': '创建结束事件', - 'Create Group': '创建组', - 'Task': '任务', - 'Send Task': '发送任务', - 'Receive Task': '接收任务', - 'User Task': '用户任务', - 'Manual Task': '手工任务', - 'Business Rule Task': '业务规则任务', - 'Service Task': '服务任务', - 'Script Task': '脚本任务', - 'Call Activity': '调用活动', - 'Sub Process (collapsed)': '子流程(折叠的)', - 'Sub Process (expanded)': '子流程(展开的)', - 'Start Event': '开始事件', - 'StartEvent': '开始事件', - 'Intermediate Throw Event': '中间事件', - 'End Event': '结束事件', - 'EndEvent': '结束事件', - 'Create Gateway': '创建网关', - 'GateWay': '网关', - 'Create Intermediate/Boundary Event': '创建中间/边界事件', - 'Message Start Event': '消息开始事件', - 'Timer Start Event': '定时开始事件', - 'Conditional Start Event': '条件开始事件', - 'Signal Start Event': '信号开始事件', - 'Error Start Event': '错误开始事件', - 'Escalation Start Event': '升级开始事件', - 'Compensation Start Event': '补偿开始事件', - 'Message Start Event (non-interrupting)': '消息开始事件(非中断)', - 'Timer Start Event (non-interrupting)': '定时开始事件(非中断)', - 'Conditional Start Event (non-interrupting)': '条件开始事件(非中断)', - 'Signal Start Event (non-interrupting)': '信号开始事件(非中断)', - 'Escalation Start Event (non-interrupting)': '升级开始事件(非中断)', - 'Message Intermediate Catch Event': '消息中间捕获事件', - 'Message Intermediate Throw Event': '消息中间抛出事件', - 'Timer Intermediate Catch Event': '定时中间捕获事件', - 'Escalation Intermediate Throw Event': '升级中间抛出事件', - 'Conditional Intermediate Catch Event': '条件中间捕获事件', - 'Link Intermediate Catch Event': '链接中间捕获事件', - 'Link Intermediate Throw Event': '链接中间抛出事件', - 'Compensation Intermediate Throw Event': '补偿中间抛出事件', - 'Signal Intermediate Catch Event': '信号中间捕获事件', - 'Signal Intermediate Throw Event': '信号中间抛出事件', - 'Message End Event': '消息结束事件', - 'Escalation End Event': '定时结束事件', - 'Error End Event': '错误结束事件', - 'Cancel End Event': '取消结束事件', - 'Compensation End Event': '补偿结束事件', - 'Signal End Event': '信号结束事件', - 'Terminate End Event': '终止结束事件', - 'Message Boundary Event': '消息边界事件', - 'Message Boundary Event (non-interrupting)': '消息边界事件(非中断)', - 'Timer Boundary Event': '定时边界事件', - 'Timer Boundary Event (non-interrupting)': '定时边界事件(非中断)', - 'Escalation Boundary Event': '升级边界事件', - 'Escalation Boundary Event (non-interrupting)': '升级边界事件(非中断)', - 'Conditional Boundary Event': '条件边界事件', - 'Conditional Boundary Event (non-interrupting)': '条件边界事件(非中断)', - 'Error Boundary Event': '错误边界事件', - 'Cancel Boundary Event': '取消边界事件', - 'Signal Boundary Event': '信号边界事件', - 'Signal Boundary Event (non-interrupting)': '信号边界事件(非中断)', - 'Compensation Boundary Event': '补偿边界事件', - 'Exclusive Gateway': '互斥网关', - 'Parallel Gateway': '并行网关', - 'Inclusive Gateway': '相容网关', - 'Complex Gateway': '复杂网关', - 'Event based Gateway': '事件网关', - 'Transaction': '转运', - 'Sub Process': '子流程', - 'Event Sub Process': '事件子流程', - 'Collapsed Pool': '折叠池', - 'Expanded Pool': '展开池', - // Errors - 'no parent for {element} in {parent}': '在{parent}里,{element}没有父类', - 'no shape type specified': '没有指定的形状类型', - 'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类', - 'out of bounds release': 'out of bounds release', - 'more than {count} child lanes': '子道大于{count} ', - 'element required': '元素不能为空', - 'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范', - 'no diagram to display': '没有可展示的流程图', - 'no process or collaboration to display': '没有可展示的流程/协作', - 'element {element} referenced by {referenced}#{property} not yet drawn': '由{referenced}#{property}引用的{element}元素仍未绘制', - 'already rendered {element}': '{element} 已被渲染', - 'failed to import {element}': '导入{element}失败', - // 属性面板的参数 - 'Id': '编号', - 'Name': '名称', - 'General': '常规', - 'Details': '详情', - 'Message Name': '消息名称', - 'Message': '消息', - 'Initiator': '创建者', - 'Asynchronous Continuations': '持续异步', - 'Asynchronous Before': '异步前', - 'Asynchronous After': '异步后', - 'Job Configuration': '工作配置', - 'Exclusive': '排除', - 'Job Priority': '工作优先级', - 'Retry Time Cycle': '重试时间周期', - 'Documentation': '文档', - 'Element Documentation': '元素文档', - 'History Configuration': '历史配置', - 'History Time To Live': '历史的生存时间', - 'Forms': '表单', - 'Form Key': '表单key', - 'Form Fields': '表单字段', - 'Business Key': '业务key', - 'Form Field': '表单字段', - 'ID': '编号', - 'Type': '类型', - 'Label': '名称', - 'Default Value': '默认值', - 'Validation': '校验', - 'Add Constraint': '添加约束', - 'Config': '配置', - 'Properties': '属性', - 'Add Property': '添加属性', - 'Value': '值', - 'Add': '添加', - 'Values': '值', - 'Add Value': '添加值', - 'Listeners': '监听器', - 'Execution Listener': '执行监听', - 'Event Type': '事件类型', - 'Listener Type': '监听器类型', - 'Java Class': 'Java类', - 'Expression': '表达式', - 'Must provide a value': '必须提供一个值', - 'Delegate Expression': '代理表达式', - 'Script': '脚本', - 'Script Format': '脚本格式', - 'Script Type': '脚本类型', - 'Inline Script': '内联脚本', - 'External Script': '外部脚本', - 'Resource': '资源', - 'Field Injection': '字段注入', - 'Extensions': '扩展', - 'Input/Output': '输入/输出', - 'Input Parameters': '输入参数', - 'Output Parameters': '输出参数', - 'Parameters': '参数', - 'Output Parameter': '输出参数', - 'Timer Definition Type': '定时器定义类型', - 'Timer Definition': '定时器定义', - 'Date': '日期', - 'Duration': '持续', - 'Cycle': '循环', - 'Signal': '信号', - 'Signal Name': '信号名称', - 'Escalation': '升级', - 'Error': '错误', - 'Link Name': '链接名称', - 'Condition': '条件名称', - 'Variable Name': '变量名称', - 'Variable Event': '变量事件', - 'Specify more than one variable change event as a comma separated list.': '多个变量事件以逗号隔开', - 'Wait for Completion': '等待完成', - 'Activity Ref': '活动参考', - 'Version Tag': '版本标签', - 'Executable': '可执行文件', - 'External Task Configuration': '扩展任务配置', - 'Task Priority': '任务优先级', - 'External': '外部', - 'Connector': '连接器', - 'Must configure Connector': '必须配置连接器', - 'Connector Id': '连接器编号', - 'Implementation': '实现方式', - 'Field Injections': '字段注入', - 'Fields': '字段', - 'Result Variable': '结果变量', - 'Topic': '主题', - 'Configure Connector': '配置连接器', - 'Input Parameter': '输入参数', - 'Assignee': '代理人', - 'Candidate Users': '候选用户', - 'Candidate Groups': '候选组', - 'Due Date': '到期时间', - 'Follow Up Date': '跟踪日期', - 'Priority': '优先级', - 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)': '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00', - 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)': '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00', - 'Variables': '变量', - 'Candidate Starter Configuration': '候选开始配置', - 'Task Listener': '任务监听器', - 'Candidate Starter Groups': '候选开始组', - 'Candidate Starter Users': '候选开始用户', - 'Tasklist Configuration': '任务列表配置', - 'Startable': '启动', - 'Specify more than one group as a comma separated list.': '指定多个组,用逗号分隔', - 'Specify more than one user as a comma separated list.': '指定多个用户,用逗号分隔', - 'This maps to the process definition key.': '这会映射为流程定义的键', - 'CallActivity Type': '调用活动类型', - 'Condition Type': '条件类型', - 'Create UserTask': '创建用户任务', - 'Create CallActivity': '创建调用活动', - 'Called Element': '调用元素', - 'Create DataObjectReference': '创建数据对象引用', - 'Create DataStoreReference': '创建数据存储引用', - 'Multi Instance': '多实例', - 'Loop Cardinality': '实例数量', - 'Collection': '任务参与人列表', - 'Element Variable': '元素变量', - 'Completion Condition': '完成条件' -}; diff --git a/front-end/src/utils/clipboard.js b/front-end/src/utils/clipboard.js deleted file mode 100644 index 981c1a8..0000000 --- a/front-end/src/utils/clipboard.js +++ /dev/null @@ -1,32 +0,0 @@ -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/front-end/src/utils/constants.js b/front-end/src/utils/constants.js deleted file mode 100644 index 3aa9440..0000000 --- a/front-end/src/utils/constants.js +++ /dev/null @@ -1,1265 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-06-23 10:00:11 - * @LastEditTime: 2022-06-10 15:04:18 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\utils\constants.js - */ -// bjTable里的表格最大高度 的最小值 -export const BJ_TABLE_MINI_HEIGHT = 240; -// 售后的类型: 1-仅退款单 2- 退货退款 -export const PAGE_SIZES = [20, 30, 50, 100, 200, 500, 1000]; -// 售后的类型: 1-仅退款单 2- 退货退款 -export const AFTER_ORDER_TYPES = { - REFUND_ONLY: 1, - REFUND_GOODS: 2, -}; -// 商品中心-属性来源 -export const GOODS_ATTRIBUTE_SOURCES_JSON = { - SPU: 0, // 新增(分类属性 或 商品属性) - SYS: 1, // 系统默认 - CLASSIFY: 2, // 复制上级 分类属性 - ATTACHED: 3, // 附加属性 -}; -// 输入框 max 长度 -export const MAX_LENGTH = { - DEFAULT: 50, - CODE: 6, // 验证码 - NAME: 20, // 姓名、昵称 - REMARK: 200, // 备注、描述、说明等 - SHORT_NAME: 10, // 短短的名称 - PRIORITY: 999, // 优先级 - PRICE: 9, // 价格 -}; -// 商品类型 实物、虚拟 -export const GOODS_TYPES = { - REAL: 1, - VIRTUAL: 2, -}; -// 属性关联类型 -export const ATTRIBUTE_RELATION_TYPES = { - CLASSIFY: 1, - GOODS: 2, -}; -// :执行器注册到服务的方式,包括自动注册和手动录入 -export const EXECUTOR_TYPE_JSON = { - AUTO: 0, - MANUAL: 1, -}; -// 表单类型 -export const INPUT_BOX_TYPE_JSON = { - RADIO: 1, - CHECKBOX: 2, - INPUT: 3, - SELECT: 4, -}; -/** ***************** ARRAY 与 JSON 分界线 ****************** */ -const F = ar => { - const a = []; - new Map(ar).forEach((value, key) => { - a.push({ - label: value, - value: key, - }); - }); - return a; -}; -// 值集编码 -export const LOV_CODE = F([ - ['SCHL.CHANNEL_TYPE', ' 渠道类型'], - // ['SSRH.SOURCE_FROM_TYPE', '来源类型'],//索引列表 - ['STOCK.INPUT_STATUS', '入库状态'], - ['STOCK.DISTRIBUTE_PLAN_STATUS', '分仓计划状态'], - ['STOCK.ALLOT_STATUS', '调拨/移仓状态'], - ['STOCK.OUT_TYPE', '出库类型'], - ['STOCK.PROCESS_TYPE', '流程类型'], - ['LOGISTICS.SETTLEMENT_METHOD', '结算方式'], - ['STOCK.RECORD_STATUS', '单据状态类型'], - ['STOCK.RECORD_TYPE', '单据类型'], - ['STOCK.WAREHOUSE_TYPE', '仓库类型'], - ['PRICE.ITEM.TYPE', '租户价格项'], - ['SCHL.INVOICE_TYPE', ' 发票种类'], - ['SCHL.SHOP_TYPE', ' 店铺类型'], - ['HRPT.TEMPLATE_TYPE', '报表模板类型'], - ['HRPT.REQUEST_STATUS', '请求状态'], - ['HRPT.REPORT_TYPE', '报表类型'], - ['HSDR.REQUEST.INTERVAL_TYPE', '时间间隔类型'], - ['HSDR.PARAM_FORMAT', '参数格式'], - ['HSDR.PARAM_EDIT_TYPE', '编辑类型'], - ['HSDR.LOG.JOB_RESULT', '任务调度结果'], - ['HSDR.LOG.CLIENT_RESULT', '客户端执行结果'], - ['HSDR.JOB_STATUS', '任务状态'], - ['HSDR.GLUE_TYPE', '调度任务类型'], - ['HSDR.FAIL_STRATEGY', '失败策略'], - ['HSDR.EXECUTOR_STRATEGY', '执行器策略'], - ['HMSG.SMS_SERVER_TYPE', '短信服务类型'], - ['HMSG.NOTICE.STATUS', '公告状态'], - ['HMSG.NOTICE.RECERVER_TYPE', '公告发布对象类别'], - ['HMSG.NOTICE.NOTICE_TYPE.CH', '公告类型-子集'], - ['HMSG.NOTICE.NOTICE_CATEGORY', '公告类别'], - ['HMSG.MESSAGE_TYPE', '消息模板类型'], - ['HMSG.MESSAGE_SUBCATEGORY', '消息子分类'], - ['HMSG.MESSAGE_CATEGORY', '消息分类'], - ['HMSG.EMAIL_PROTOCOL', '邮件协议'], - ['HMSG.EMAIL.FILTER_STRATEGY', '邮箱账户筛选策略'], - ['HFLE.STORAGE_UNIT', '存储大小限制单位'], - ['HFLE.PREFIX_STRATEGY', '文件名前缀策略'], - ['HFLE.FILE_FORMAT', '文件格式'], - ['HFLE.CONTENT_TYPE', '文件分类'], - ['HFLE.CAPACITY.ACCESS_CONTROL', '存储配置目录权限'], - ['HPFM.LANGUAGE', '语言'], - ['HPFM.CODE_RULE.VARIABLE', '编码规则变量常量'], - ['HPFM.CODE_RULE.DATE_MASK', '编码规则日期掩码'], -]); -export const STATUS_ENABLED_NUM = F([ - [0, '禁用'], - [1, '启用'], -]); -export const STATUS_ENABLED_TRUE = F([ - [false, '禁用'], - [true, '启用'], -]); -export const STATUS_YES_NUM = F([ - [0, '否'], - [1, '是'], -]); -export const USE_FLAG_NUM = F([ - [0, '未使用'], - [1, '已使用'], -]); -export const STATUS_YES_TRUE = F([ - [false, '否'], - [true, '是'], -]); -export const STATUS_HAVE_TRUE = F([ - [false, '无'], - [true, '有'], -]); -export const STATUS_HAVE_NUMBER = F([ - [0, '无'], - [1, '有'], -]); -export const STATUS_INIT_LIST = F([ - [0, '未初始'], - [1, '已初始'], -]); -export const USER_TYPE_LIST = F([ - ['P', '平台用户'], - ['C', 'C端用户'], -]); -export const GENDER_LIST = F([ - [0, '男'], - [1, '女'], -]); -export const GOODS_TYPE_LIST = F([ - [1, '实物商品'], - [2, '虚拟商品'], -]); -// -商品中心-商品管理- 组合类型 (普通商品、套餐商品、子母件) -export const GOODS_COMBO_TYPES = { - ORDINARY: 0, - PACKAGE: 1, - SON: 3, -}; -export const GOODS_COMBO_TYPE_LIST = F([ - [0, '普通商品'], - [1, '套餐商品'], -]); -// -商品中心-商品管理- 审核状态 -export const GOODS_MANAGE_AUDIT_STATUS = F([ - [1, '待提交'], - [2, '待审核'], - [3, '审核通过'], - [4, '被驳回'], -]); -// 商品中心-SKU-完整状态 -export const GOODS_SKU_STATUS = F([ - [0, '草稿'], - [1, '被驳回'], - [2, '审核中'], - [3, '已生效'], - [4, '已生效-编辑中'], - [5, '已生效-被驳回'], -]); -// 商品中心-SKU-状态 对应为 审核状态 -export const GOODS_SKU_VIEW_AUDIT_STATUS = F([ - [0, '未提交审核'], - [1, '被驳回'], - [2, '审核中'], - [3, '已完成'], - [4, '审核中'], - [5, '被驳回'], -]); -/** * 审核列表 对应 GOODS_SKU_STATUS */ -// 默认: 1 2 3 4 5 -// 待审核: 2 4 -// 已生效 3 -// 被驳回 1 5 -export const GOODS_AUDIT_STATUS_LIST = F([ - [[2, 4], '待审核'], - [[3], '已完成'], - [[1, 5], '被驳回'], -]); -// 商品中心-SKU-状态(无草稿) -export const GOODS_SKU_STATUS_NORMAL = GOODS_SKU_STATUS.slice(1); -// 价格项,固定值; 'JG004', '内部分摊价' -export const GOODS_PRICE_ITEMS = F([ - ['costPrice', '成本价'], - ['salesPrice', '销售价'], - ['activityPrice', '活动价'], - ['marketPrice', '市场价'], - ['distributionPrice', '分销价'], - ['wholesalePrice', '批发价'], - ['clearingPrice', '结算价'], -]); -export const ATTRIBUTE_RELATION_TYPE_LIST = F([ - [1, '分类'], - [2, '商品'], -]); -// 状态: -// 事务实例的运行状态。 共有进行中、完成、失败、没有消费者四种状态。 -// 事务实例时任务的运行状态。共有进行中、完成、失败、队列中、等待被拉取五种种状态。 -export const INSTANCE_RESULT_TYPE_LIST = F([ - ['RUNNING', '进行中'], - ['FAILED', '失 败'], - ['COMPLETED', '完 成'], - ['NON_CONSUMER', '无消费者'], - ['WAIT_TO_BE_PULLED', '等待被拉取'], -]); -// 存储类型 -export const FILE_STORAGE_TYPE_LIST = F([ - [1, '阿里'], - [2, '华为'], - [3, 'Minio'], - [4, '腾讯'], - [5, '七牛'], - [6, '本地'], - [7, '京东云'], - [8, 'AWS'], - [9, '百度云'], -]); -// :执行器注册到服务的方式,包括自动注册和手动录入 -export const EXECUTOR_TYPE_LIST = F([ - [0, '自动注册'], - [1, '手动录入'], -]); -export const INPUT_BOX_TYPE_LIST = F([ - [1, '单选框'], - [2, '复选框'], - [3, '文本框'], - [4, '下拉框'], -]); -export const INDEXES_TYPE_LIST = F([ - [0, '失效'], - [1, '有效'], -]); -export const FIELD_TYPE_LIST = F([ - [0, '正序'], - [1, '倒序'], -]); -export const ORDER_CAM_ON_HIERARCHY = F([ - ['channel', '渠道仓'], - ['virtual', '虚仓'], -]); -export const RADIX_POINT_COMPUTED_MODE_LIST = F([ - ['trunc', '向下舍取整'], - ['plusOne', '向上舍取整'], -]); -export const SHOP_TYPE_LIST = F([ - ['OnlineShop', '网店'], - ['PhysicalShop', '门店'], -]); -export const CODE_RULE_FIELD_TYPE_LIST = F([ - ['SEQUENCE', '序列'], - ['CONSTANT', '常量'], - ['DATE', '日期'], - ['VARIABLE', '变量'], - ['UUID', 'UUID'], -]); -export const UUID_LEN_LIST = F([ - [8, '8位'], - [16, '16位'], - [22, '22位'], - [32, '32位'], -]); -/** 取自 STOCK.WAREHOUSE_TYPE 的子集*/ -export const STOCK_WAREHOUSE_TYPE_SON_1_LIST = F([ - ['interline-virtual', '中转虚仓'], - ['ratio-virtual', '比例虚仓'], - ['qty-virtual', '数量虚仓'], -]); -/** 取自 STOCK.WAREHOUSE_TYPE 的子集*/ -export const STOCK_WAREHOUSE_TYPE_SON_2_LIST = F([ - ['interline-virtual', '中转虚仓'], - ['ratio-virtual', '比例虚仓'], - ['qty-virtual', '数量虚仓'], - ['default-virtual', '默认虚仓'], - ['real', '实仓'], - ['logic', '逻辑仓'], -]); -/** 取自 STOCK.WAREHOUSE_TYPE 的子集*/ -export const STOCK_WAREHOUSE_TYPE_SON_3_LIST = F([ - ['qty-virtual', '数量虚仓'], - ['interline-virtual', '中转虚仓'], -]); -/** 取自 STOCK.WAREHOUSE_TYPE 的子集*/ -export const STOCK_WAREHOUSE_TYPE_SON_4_LIST = F([ - ['real', '实仓'], - ['ratio-virtual', '比例虚仓'], -]); -export const REPLENISHMENT_ORDER_PRIORITY = F([ - ['order', '订单商品缺货优先'], - ['shop', '店铺商品缺货优先'], -]); -export const RELEASE_STATUS_TRUE = F([ - [false, '未发布'], - [true, '已发布'], -]); -export const CONFIGURE_STATUS_TRUE = F([ - [false, '未设置'], - [true, '已设置'], -]); -export const TEMPLATE_DATA_TYPE_LIST = F([ - ['VARCHAR', 'VARCHAR'], - ['BIGINT', 'BIGINT'], - ['DECIMAL', 'DECIMAL'], -]); -export const STOCK_ADJUST_STATUS = F([ - [0, '未调整'], - [1, '已调整'], -]); -export const STOCK_ADJUST_TYPE_LIST = F([ - [1, '增加'], - [2, '减少'], -]); -/** 取自 STOCK.RECORD_STATUS 的子集*/ -export const STOCK_LOCK_STATUS_LIST = F([ - ['wait', '待审核'], - ['success', '审核成功'], - ['fail', '审核失败'], - ['abandon', '已作废'], - ['close', '停用'], -]); -/** 取自 STOCK.RECORD_STATUS 的子集*/ -export const STOCK_TRANSFER_VERIFY_TYPE_LIST = F([ - ['wait', '待审核'], - ['success', '审核成功'], - ['fail', '审核失败'], -]); -/** 取自 STOCK.RECORD_STATUS 的子集*/ -export const STOCK_DISTRIBUTION_PLAN_STATUS_LIST = F([ - ['start', '开启'], - ['stop', '暂停'], - ['complete', '完成'], - ['endTime', '到时截止'], -]); -export const VIRTUAL_GOODS_ROUTE_LIST = F([ - ['BusinessGoodsVirtualSkuGroupList', '组合商品'], - ['BusinessGoodsVirtualSpuSonList', '子母件商品'], - ['BusinessGoodsVirtualInstallServiceList', '安装服务'], -]); -export const STOCK_DELIVERY_ROUTE_LIST = F([ - ['BusinessStockDeliveryInformIndex', '出库通知单'], - ['BusinessStockDeliveryResultIndex', '出库结果单'], -]); -export const STOCK_TRANSFER_ROUTE_LIST = F([ - ['BusinessStockTransferLogicIndex', '逻辑仓调拨'], - ['BusinessStockTransferVirtualIndex', '虚仓移仓'], -]); -export const STOCK_VERIFY_ROUTE_LIST = F([ - ['BusinessStockVerifyLogicIndex', '逻辑仓调拨'], - ['BusinessStockVerifyVirtualIndex', '虚仓移仓'], - ['BusinessStockVerifyLockIndex', '库存预留'], -]); -export const STOCK_DISTRIBUTION_ROUTE_LIST = F([ - ['BusinessStockDistributionQtyIndex', '仓位数量分配'], - ['BusinessStockDistributionRatioIndex', '仓位比例分配'], - ['BusinessStockDistributionPlanIndex', '分仓计划'], -]); -export const LOGISTICS_COMPANY_ROUTE_LIST = F([ - ['BusinessLogisticsCompanyListIndex', '物流商列表'], - ['BusinessLogisticsCompanyBusinessIndex', '物流业务管理'], - ['BusinessLogisticsCompanyRelationIndex', '运费关联设置'], - ['BusinessLogisticsCompanyFreightIndex', '运费模板'], - ['BusinessLogisticsCompanyMapping', '物流映射'], -]); -export const LOGISTICS_ORDER_ROUTE_LIST = F([ - ['BusinessLogisticsOrderSale', '销售单物流'], - ['BusinessLogisticsOrderAfter', '售后单物流'], -]); -export const SETTING_ORGANIZATION_ROUTE_LIST = F([ - ['SettingUserOrganizationGroup', '集团设置'], - ['SettingUserOrganizationCompany', '下属公司'], -]); -export const LOGISTICS_ABNORMAL_ROUTE_LIST = F([ - ['BusinessLogisticsAbnormalDelivery', '派送异常'], - ['BusinessLogisticsAbnormalDataAbort', '物流数据异常'], -]); -export const SALES_AFTER_INTERNAL_ROUTE_LIST = F([ - ['BusinessAfterInternalRefundIndex', '仅退款'], - ['BusinessAfterInternalReturnIndex', '退货退款'], - // ['BusinessAfterInternalExchangeIndex', '换货'], -]); -export const SALES_AFTER_THIRD_ROUTE_LIST = F([ - ['BusinessAfterThirdRefundIndex', '仅退款'], - ['BusinessAfterThirdReturnIndex', '退货退款'], - ['BusinessAfterThirdExchange', '换货'], -]); -export const FINANCE_PLATFORM_ROUTE_LIST = F([ - ['BusinessFinancePlatformTM', '天猫账单'], - ['BusinessFinancePlatformJD', '京东账单'], - ['BusinessFinancePlatformPDD', '拼多多账单'], - ['BusinessFinancePlatformDY', '抖音账单'], - ['BusinessFinancePlatformWPH', '唯品会账单'], - ['BusinessFinancePlatformSNYG', '苏宁账单'], - ['BusinessFinancePlatformXMYP', '小米账单'], - ['BusinessFinancePlatformWYYX', '网易账单'], -]); -/** 物流商状态值集 */ -export const LOGISTICS_CLAIM_STATUS_LIST = F([ - [0, '待审核'], - [1, '待核销'], - [2, '审核通过'], // 已审核 - [3, '审核拒绝'], // 已驳回 - [4, '已取消'], -]); -/** 物流商状态值集 */ -export const LOGISTICS_CLAIM_CLAIMTYPE_LIST = F([ - [1, '破损'], - [2, '丢件'], -]); -/** 物流商状态值集 */ -export const LOGISTICS_CLAIM_STANDARD_LIST = F([ - [0, '普通标准售价'], - [1, '内部分摊价'], - [2, '出厂价'], -]); -export const EXPRESS_STATUS_LIST = F([ - ['0', '在途'], - ['1', '揽收'], - ['2', '疑难'], - ['3', '签收'], - ['4', '退签'], - ['5', '派件'], - ['6', '退回'], - ['7', '转单'], - ['10', '待清关'], - ['11', '清关中'], - ['12', '已清关'], - ['13', '清关异常'], - ['14', '拒签'], -]); -export const ABNORMAL_REASON_LIST = F([ - [1, '运费模板不匹配'], - [2, '物流不匹配'], - [3, '业务不匹配'], -]); -export const ABNORMAL_STATUS_LIST = F([ - [0, '未处理'], - [1, '已处理'], -]); -/** 运费模板 */ -export const LOGISTICS_COMPANY_FREGHHT_ADD_JFFS = F([ - [1, '按重量计费'], - [2, '固定价格'], -]); -/** 运费模板 -> 理赔标准 */ -export const LOGISTICS_COMPANY_COMPENSATE_LIST = F([['JG004', '内部分摊价']]); -export const SETTING_STOCK_PROCESS_TYPES = F([ - ['订单出库', '订单出库'], - ['下架出库', '下架出库'], - ['采购入库', '采购入库'], - ['退货入库', '退货入库'], -]); -export const SETTING_STOCK_PROCESS_TYPE_JSON = { - 订单出库: 'out-stock-process', - 下架出库: 'out-stock-process', - 采购入库: 'put-stock-process', - 退货入库: 'put-stock-process', -}; -export const ORDER_BACK_RES_LIST = F([ - ['0', '未回写'], - ['1', '回写成功'], - ['2', '回写失败'], -]); -export const THIRD_ORDER_RECEIVE_STATUS = F([ - ['0', '未收货'], - ['1', '部分收货'], - ['2', '已收货'], -]); -/** 商品行的寻源状态 */ -export const ORDER_SKU_SOURCE_STATUS_LIST = F([ -]); -/** 补货类型 */ -export const ORDER_STOCKOUT_TYPE_LIST = F([ - [0, '订单补货'], - [1, '店铺补货'], -]); -/** 退款单来源 */ -export const AFTER_REFUND_SOURCE_STATUS = F([ - ['0', '手工单'], - ['1', '普通转单'], - ['2', '复制单'], -]); -/** - 13-仅退款 1-一审 1-待审核 31310 - 2-审核通过 31311 - 3-审核拒绝 31312 - 2-二审 1-待审核 31320 - 2-审核通过 31321 - 3-审核拒绝 31322 -14-退货退款 1-一审 1-待审核 31410 - 2-审核通过 31411 - 3-审核拒绝 31412 - 2-二审 1-待审核 31420 - 2-审核通过 31421 - 3-审核拒绝 31422 - */ -export const AFTER_REFUND_AUDIT_TABS_STATUS = F([ - ['31310,31320,31312,31322', '全部'], - ['31310', '待一审'], - ['31320', '待二审'], - ['31312,31322', '审核拒绝'], -]); -export const AFTER_RETURN_AUDIT_TABS_STATUS = F([ - ['31410,31420,31412,31422', '全部'], - ['31410', '待一审'], - ['31420', '待二审'], - ['31412,31422', '审核拒绝'], -]); -// 仅退款的审核状态 endorseStatus -export const AFTER_REFUND_ENDORSE_STATUS = F([ - ['31310', '待一审'], - ['31311', '一审通过'], - ['31312', '一审拒绝'], - ['31320', '待二审'], - ['31321', '二审通过'], - ['31322', '二审拒绝'], -]); -// 退货退款的审核状态 endorseStatus -export const AFTER_RETURN_ENDORSE_STATUS = F([ - ['31410', '待一审'], - ['31411', '一审通过'], - ['31412', '一审拒绝'], - ['31420', '待二审'], - ['31421', '二审通过'], - ['31422', '二审拒绝'], -]); -export const AFTER_REFUND_AUDIT_PERMISSION_RULES = [ - // 全部 - ['BusinessAfterAuditRefund_FirstAudit', 'BusinessAfterAuditRefund_SecondAudit'], - // 待一审 - ['BusinessAfterAuditRefund_FirstAudit'], - // 待二审 - ['BusinessAfterAuditRefund_SecondAudit'], - // 审核拒绝 - ['BusinessOrderAuditIndex_ItIsAwayNot'], -]; -export const AFTER_RETURN_AUDIT_PERMISSION_RULES = [ - // 全部 - ['BusinessAfterAuditReturn_FirstAudit', 'BusinessAfterAuditReturn_SecondAudit'], - // 待一审 - ['BusinessAfterAuditReturn_FirstAudit'], - // 待二审 - ['BusinessAfterAuditReturn_SecondAudit'], - // 审核拒绝 - ['BusinessOrderAuditIndex_ItIsAwayNot'], -]; -/** 内部仅退款状态 */ -export const AFTER_REFUND_TRADE_STATUS = F([ - ['0', '待审核'], - ['3', '待退款'], - ['4', '已完成'], - ['5', '已拒绝'], - ['6', '已取消'], - ['7', '转单异常'], -]); -export const AFTER_REFUND_TRADE_STATUS_FOR_VIEW = AFTER_REFUND_TRADE_STATUS.slice(0, 3); -/** 内部退货退款状态 */ -export const AFTER_RETURN_TRADE_STATUS = F([ - ['0', '待审核'], - ['1', '待买家退货'], - ['2', '待仓库验收'], - ['3', '待退款'], - ['4', '已完成'], - ['5', '已拒绝'], - ['6', '已取消'], - ['7', '转单异常'], -]); -export const AFTER_RETURN_TRADE_STATUS_FOR_VIEW = AFTER_RETURN_TRADE_STATUS.slice(0, 5); -export const AFTER_EXCHANGE_TRADE_STATUS = F([ - ['10', '待审核'], - ['11', '待买家退货'], - ['12', '待仓库验收'], - ['13', '待仓库发货'], - ['14', '待买家收货'], - ['15', '已完成'], -]); -/** 业务中心/销售管理/业务预警-异常订单管理 */ -export const ORDER_ABNORMAL_ROUTE_LIST = F([ - ['BusinessOrderAbnormalWarning', '业务预警'], - ['BusinessOrderAbnormalSyncAbnormal', '数据异常'], -]); -/** 预警类型 异常类型 */ -export const ORDER_ABNORMAL_TYPE_LIST = F([ - [0, '审核超时'], - [1, '缺货超时'], - [2, '发货超时'], - [3, '订单更新超时'], -]); -/** 退货退款状态 */ -export const AFTER_THIRD_RETURN_STATUS_LIST = F([ - [0, '待审核'], - [1, '待买家退货'], - [2, '待仓库验收'], - [3, '待退款'], - [4, '退款完成'], - [5, '买家取消'], - [6, '关闭退货退款'], - [7, '拒绝退货'], -]); -/** 换货状态 */ -export const AFTER_THIRD_EXCHANGE_STATUS_LIST = F([ - [0, '待审核'], - [1, '待买家退货'], - [2, '待发货'], - [3, '待买家收货'], - [4, '完成'], - [5, '买家取消'], - [6, '关闭换货'], - [7, '拒绝换货'], -]); -/** 三方售后单/ 结算方式 */ -export const AFTER_INTERNAL_RETURN_PAY_LIST = F([[1, '网店平台退款']]); -/** 三方售后单/ 转单状态 */ -export const AFTER_THIRD_REFUND_TRANSFER_STATUS = F([ - [0, '正常'], - [1, '异常'], -]); -/** 三方售后单/ 仓库收货状态 */ -// export const AFTER_INTERNAL_RETURN_WAREHOUSE_RECEIVING_STATUS = F([[1, '未收货']]); -/** 待审核售后单 */ -export const AFTER_AUDIT_ROUTE_LIST = F([ - ['BusinessAfterAuditRefundIndex', '仅退款'], - ['BusinessAfterAuditReturnIndex', '退货退款'], -]); -/** 待审核售后单-退货退款/ 售后类型 */ -export const AFTER_AUDIT_RETURN_TYPE_LIST = F([ - [0, '退货'], - [1, '换货'], -]); -/** 物流策略-设置订单金额 */ -/** 待审核售后单 */ -export const STRATEGY_AUTO_REPLENISH_ROUTE_LIST = F([ - ['BusinessStrategyAutoReplenishOrder', '订单商品缺货'], - ['BusinessStrategyAutoReplenishOnlineStore', '网店商品缺货'], -]); -/** 异常库存管理 router */ -export const STOCK_ABNORMAL_ROUTE_LIST = F([ - ['BusinessStockAbnormalOrder', '订单缺货'], - ['BusinessStockAbnormalWarehouse', '仓库缺货'], -]); -/** 支付状态 */ -export const STOCK_ABNORMAL_ORDER_STATUS_LIST = F([ - [0, '待处理'], - [1, '已采购'], - [2, '已调拨'], - [3, '已移仓'], -]); -/* ************************************** 寻源策略部分 start ****************************************** */ -/** 异常库存管理 router */ -export const STRATEGY_SOURCE_ROUTE_LIST = F([ -]); -/* ************************************** 寻源策略部分 end ****************************************** */ -/* ************************************** 内部销售单 start ****************************************** */ -/** 订单 —— 商品 是否赠品 */ -export const SKU_GIFT_TYPE_LIST = F([ - ['0', '否'], - ['1', '赠品'], - ['2', '随品'], -]); -export const SKU_GIFT_TYPE_LIST_FOR_CREATE = F([ - ['0', '否'], - ['1', '是'], -]); -/** 订单 —— 交易类型 tradeType */ -export const ORDER_TRADE_TYPE_LIST = F([['101', '销售单']]); -/** 订单 —— 业务类型 businessType */ -export const ORDER_BUSINESS_TYPE_LIST = F([ - ['common', '普通订单'], - ['o2o', 'O2O订单'], -]); -export const ORDER_BUSINESS_TYPES = { - O2O: 'o2o', - COMMON: 'common', -}; -/** 订单 —— 提货方式 takingDeliveryWay */ -export const ORDER_TAKING_DELIVERY_TYPE_LIST = F([ - ['1', '门店自提'], - ['2', '物流配送'], -]); -/** 订单 —— 创建类型 / 订单来源 actionType */ -export const ORDER_ACTION_TYPE_LIST = F([ - ['101', '普通转单'], - ['201', '手工单'], - ['202', '复制单'], -]); -/** 内部销售单 --> 订单聚合状态 */ -export const ORDER_INTERNAL_ORDER_STATUS_LIST = F([ - ['0', '未完成'], - ['1', '已完成'], - ['2', '已关闭'], - ['3', '异常'], -]); -/** 内部销售O2O订单 --> O2O 订单聚合状态 */ -export const ORDER_INTERNAL_O2O_STATUS_LIST = F([ - ['11', '待审核'], - ['22', '待确认收货'], - ['33', '已完成'], -]); -/** 三方销售单 --> 订单聚合状态 取自内部单,文字修改 */ -export const ORDER_THIRD_ORDER_STATUS_LIST = F([ - ['0', '待发货'], - ['1', '已完成'], - ['2', '已关闭'], - ['3', '异常'], -]); -// 内部销售单 --> 寻源前待审核状态 -export const ORDER_INTERNAL_ORDER_AUDIT_TABS_BEFORE_SOURCE = F([ -]); -// 内部销售单 --> 发货前待审核状态 -export const ORDER_INTERNAL_ORDER_AUDIT_TABS_BEFORE_PREEMPT = F([ - ['30411,30421,30413,30423', '全部'], - ['30411', '待一审'], - ['30421', '待二审'], - ['30413,30423', '审核拒绝'], -]); -// 内部普通销售单 --> 审核权限; 与 路由表 对应 -export const ORDER_INTERNAL_ORDER_AUDIT_PERMISSION_RULES = [ - // 发货前 - [ - // 全部 - ['BusinessOrderAuditIndex_PreemptFirst', 'BusinessOrderAuditIndex_PreemptSecond'], - // 待一审 - ['BusinessOrderAuditIndex_PreemptFirst'], - // 待二审 - ['BusinessOrderAuditIndex_PreemptSecond'], - // 审核拒绝 - ['BusinessOrderAuditIndex_ItIsAwayNot'], - ], -]; -// 内部o2o销售单 --> 审核权限; 与 路由表 对应 -export const ORDER_INTERNAL_O2O_AUDIT_PERMISSION_RULES = [ - [ - // 全部 - ['BusinessO2oAuditIndex_First', 'BusinessO2oAuditIndex_Second'], - // 待一审 - ['BusinessO2oAuditIndex_First'], - // 待二审 - ['BusinessO2oAuditIndex_Second'], - // 审核拒绝 - ['BusinessOrderAuditIndex_ItIsAwayNot'], - ], -]; -/** 订单 —— 预占状态 */ -export const ORDER_INTERNAL_PREEMPT_STATUS_LIST = F([ - ['30101', '全部待预占'], - ['30102', '全部预占成功'], - ['30103', '全部预占失败'], - ['30104', '部分预占'], - ['31010', '取消预占'], // 订单取消时,预占也同时取消,状态码与订单取消状态相同 -]); -export const ORDER_INTERNAL_SKU_PREEMPT_STATUS_LIST = F([ - ['20101', '全部待预占'], - ['20102', '全部预占成功'], - ['20103', '全部预占失败'], - ['20104', '部分预占'], - ['21010', '取消预占'], // 订单取消时,预占也同时取消,状态码与订单取消状态相同 -]); -export const ORDER_INTERNAL_LINE_PREEMPT_STATUS_LIST = F([ - ['10101', '待预占'], - ['10102', '预占成功'], - ['10103', '预占失败'], - ['10122', '解占成功'], - ['11010', '取消预占'], // 订单取消时,预占也同时取消,状态码与订单取消状态相同 -]); -// 预占管理-预占状态 -export const ORDER_ADVANCE_PREEMPT_STATUS_LIST = F([ - [0, '全部待预占'], - [1, '全部预占成功'], - [3, '全部预占失败'], - [2, '部分预占'], - [4, '取消预占'], -]); -/** 订单 —— 预占回写状态 */ -export const ORDER_INTERNAL_PREEMPT_BACK_STATUS_LIST = F([ - ['30111', '全部待回写'], - ['30112', '全部回写成功'], - ['30113', '全部回写失败'], - ['30114', '部分回写'], -]); -export const ORDER_INTERNAL_SKU_PREEMPT_BACK_STATUS_LIST = F([ - ['20111', '全部待回写'], - ['20112', '全部回写成功'], - ['20113', '全部回写失败'], - ['20114', '部分回写'], -]); -export const ORDER_INTERNAL_LINE_PREEMPT_BACK_STATUS_LIST = F([ - ['10111', '待回写'], - ['10112', '回写成功'], - ['10113', '回写失败'], -]); -/** 订单 —— 寻源状态 */ -export const ORDER_INTERNAL_SOURCE_STATUS_LIST = F([ -]); -export const ORDER_INTERNAL_SKU_SOURCE_STATUS_LIST = F([ -]); -export const ORDER_INTERNAL_LINE_SOURCE_STATUS_LIST = F([ -]); -/** 订单 —— 发货状态 */ -export const ORDER_INTERNAL_DELIVER_STATUS_LIST = F([ - ['30510', '初始'], - ['30511', '全部待发货'], - ['30512', '全部发货成功'], - ['30513', '全部发货失败'], - ['30514', '部分发货'], -]); -export const ORDER_INTERNAL_SKU_DELIVER_STATUS_LIST = F([ - ['20510', '初始'], - ['20511', '全部待发货'], - ['20512', '全部发货成功'], - ['20513', '全部发货失败'], - ['20514', '部分发货'], -]); -export const ORDER_INTERNAL_LINE_DELIVER_STATUS_LIST = F([ - ['10510', '初始'], - ['10511', '待发货'], - ['10512', '发货成功'], - ['10513', '发货失败'], -]); -/** 订单 —— 收货状态 */ -export const ORDER_INTERNAL_RECEIVING_STATUS_LIST = F([ - ['30520', '初始'], - ['30521', '待收货'], - ['30522', '全部已收货'], - ['30523', '部分收货'], -]); -export const ORDER_INTERNAL_SKU_RECEIVING_STATUS_LIST = F([ - ['20520', '初始'], - ['20521', '待收货'], - ['20522', '全部已收货'], - ['20523', '部分收货'], -]); -export const ORDER_INTERNAL_LINE_RECEIVING_STATUS_LIST = F([ - ['10520', '初始'], - ['10521', '待收货'], - ['10522', '已收货'], -]); -/** 订单 —— 库存回写状态 */ -export const ORDER_INTERNAL_STOCK_BACK_STATUS_LIST = F([ - ['30531', '全部待回写'], - ['30532', '全部回写成功'], - ['30533', '全部回写失败'], - ['30534', '部分回写'], -]); -export const ORDER_INTERNAL_SKU_STOCK_BACK_STATUS_LIST = F([ - ['20531', '全部待回写'], - ['20532', '全部回写成功'], - ['20533', '全部回写失败'], - ['20534', '部分回写'], -]); -export const ORDER_INTERNAL_LINE_STOCK_BACK_STATUS_LIST = F([ - ['10531', '待回写'], - ['10532', '回写成功'], - ['10533', '回写失败'], -]); -/** 订单 —— 不再履约 */ -export const ORDER_INTERNAL_OVER_STATUS_LIST = F([ - ['31000', '正常履约完成'], - ['31010', '订单取消'], -]); -/** 订单 —— 挂起状态 */ -export const ORDER_INTERNAL_HAND_UP_STATUS_LIST = F([ - ['31200', '未挂起'], - ['31201', '全部挂起成功'], - ['31202', '全部挂起失败'], - ['31203', '部分挂起'], -]); -export const ORDER_INTERNAL_SKU_HAND_UP_STATUS_LIST = F([ - ['21200', '未挂起'], - ['21201', '全部挂起成功'], - ['21202', '全部挂起失败'], - ['21203', '部分挂起'], -]); -export const ORDER_INTERNAL_LINE_HAND_UP_STATUS_LIST = F([ - ['11210', ''], - ['11200', '未挂起'], - ['11211', '系统挂起成功'], - ['11212', '系统挂起失败'], - ['11213', '系统解挂成功'], - ['11214', '系统解挂失败'], - ['11221', '人工挂起成功'], - ['11222', '人工挂起失败'], - ['11223', '人工解挂成功'], - ['11224', '人工解挂失败'], -]); -/** 退款状态 */ -export const ORDER_INTERNAL_REFUND_STATUS_LIST = F([ - [0, '未退款'], - [1, '部分退款'], - [2, '全部退款'], -]); -/** 审核状态 */ -export const ORDER_INTERNAL_AUDIT_STATUS_LIST = F([ - [30211, '待一审'], - [30221, '待二审'], - [30212, '一审通过'], - [30222, '二审通过'], - [30213, '一审不通过'], - [30223, '二审不通过'], - [30411, '待一审'], - [30421, '待二审'], - [30412, '一审通过'], - [30422, '二审通过'], - [30413, '一审不通过'], - [30423, '二审不通过'], -]); -/** 支付方式 */ -export const ORDER_INTERNAL_PAYMENT_LIST = F([ - ['alipay', '支付宝'], - ['tenpay', '财付通'], - ['chinabank', '网银在线'], - ['cod', '货到付款'], - ['bank', '银行汇款/转账'], - ['other', '其他'], -]); -/** 支付状态 */ -export const ORDER_INTERNAL_PAYMENT_STATUS_LIST = F([ - [0, '未支付'], - [1, '已支付'], -]); -/* ************************************** 内部销售单 end ****************************************** */ -/* ************************************** 内部售后单 start ****************************************** */ -/** 退款单类型 */ -export const INTERNAL_AFTER_REFUND_ORDER_TYPE_LIST = F([[0, '普通退单']]); -/** 退款类型 */ -export const INTERNAL_AFTER_REFUND_TYPE_LIST = F([[1, '未发货仅退款']]); -export const INTERNAL_AFTER_RETURN_TYPE_LIST = F([[1, '退货退款']]); -/** 退款阶段 */ -export const INTERNAL_AFTER_STAGE_STATUS = F([ - [0, '售中'], - [1, '售后'], -]); -/** 退货原因 */ -export const INTERNAL_AFTER_REASON_STATUS = F([[0, '7天无理由退货']]); -/* ************************************** 内部售后单 end ****************************************** */ -/* ************************************** 三方销售单 start ****************************************** */ -/** 支付状态 */ -export const ORDER_THIRD_PAYMENT_STATUS_LIST = F([[1, '已支付']]); -/** 平台收货状态 */ -export const ORDER_THIRD_RECEIVING_STATUS_LIST = F([ - [0, '未收货'], - [1, '已收货'], -]); -/* ************************************** 三方销售单 end ****************************************** */ -/* ************************************** 出库通知单 start ****************************************** */ -export const ORDER_STOCK_OUT_TYPE_LIST = F([ - [0, '待通知WMS'], - [1, '待出库'], - [2, '通知WMS失败'], - [3, '全部出库'], - [4, '部分出库'], - [5, '取消出库'], -]); -/* ************************************** 出库通知单 end ****************************************** */ -/* ************************************** 出库结果单 start ****************************************** */ -export const ORDER_STOCK_RESULT_STATUS_LIST = F([[0, '全部出库']]); -/* ************************************** 出库结果单 end ****************************************** */ -/* ************************************** 销售审核策略 start ****************************************** */ -/** 销售审核策略 router */ -export const STRATEGY_MARKETINGAUDIT_ROUTE_LIST = F([ - ['SettingOrderAuditStrategy', '订单审核策略'], - ['SettingOrderAuditGoods', '订单商品行审核策略'], -]); -/* ************************************** 销售审核策略 end ****************************************** */ -/* ************************************** 财务管理 对账 start ****************************************** */ -export const FINANCE_ORIGINAL_ROUTE_LIST = F([ - ['BusinessFinancePlatformOriginalTmallIndex', '天猫账单'], - ['BusinessFinancePlatformOriginalJdcomIndex', '京东账单'], -]); -// 解析状态 -export const FINANCE_PLATFORM_PARSING_STATUS = F([ - [0, '解析成功'], - [1, '无需解析'], -]); -export const FINANCE_PLATFORM_PARSING_STATUS1 = F([ - [0, '解析失败'], - [1, '解析成功'], - [2, '无需解析'], -]); -// 对账状态 -export const FINANCE_PLATFORM_CHECKING_STATUS = F([ - [0, '已对账'], - [1, '未对账'], - [2, '无需对账'], -]); -export const FINANCE_PLATFORM_CHECKING_STATUS1 = F([ - [1, '已对账'], - [0, '未对账'], -]); -// 业务类型 -export const FINANCE_PLATFORM_BUSINESS_TYPES = F([ - [0, '货款'], - [1, '佣金'], -]); -// 流水类型 -export const FINANCE_PLATFORM_FLOW_TYPES = F([ - ['0', '正流水'], - ['1', '负流水'], -]); -// 业务中心-财务管理-对账管理-已对账列表 状态 -export const FINANCE_CHECKING_CHECKED_STATUS = F([ - [true, '已对账'], - [false, '金额异常'], -]); -// 财务管理-对账管理-物流对账 物流状态 -export const FINANCE_CHECKING_LOGISTIC_SIGN_STATUS = F([ - [0, '已签收'], - [1, '已退回'], - [2, '拒签'], -]); -// 财务管理-对账管理-物流对账 结算状态 -export const FINANCE_CHECKING_LOGISTIC_SETTLE_STATUS = F([ - [0, '已结算'], - [1, '未结算'], -]); -// 财务管理-对账管理-物流对账 tab -export const FINANCE_CHECKING_LOGISTIC_COST_DETAIL_TYPES = F([ - [null, '所有费用明细'], - ['1', '匹配费用明细'], - ['2', '未匹配费用明细'], -]); -// 财务管理-对账管理-物流对账 匹配状态 -export const FINANCE_CHECKING_LOGISTIC_MATCHING_TYPES = F([ - [0, '匹配'], - [1, '匹配(金额差异)'], - [2, '不匹配'], -]); -// 财务管理-对账管理-物流对账-内部物流单列表 费用确认状态 -export const FINANCE_CHECKING_LOGISTIC_COST_CONFIRM_STATUS = F([ - [0, '已确认'], - [1, '未确认'], - [2, '金额差异'], -]); -/* ************************************** 财务管理 对账 end ****************************************** */ -/* ************************************** 财务管理 平台账单解析策略设置 Start ****************************************** */ -// 账单类型 -export const FINANCE_PARSESTRATEGY_BULL_TYPES = F([ - [0, '销售收入'], - [1, '退款支出'], -]); -// 金额取值 -export const FINANCE_PARSESTRATEGY_PRICE_VALUE_TYPES = F([ - [0, '取固定字段'], - [1, '按公式计算'], -]); -/* ************************************** 财务管理 平台账单解析策略设置 end ****************************************** */ -/* ************************************** 财务管理 结算 Start ****************************************** */ -// 财务管理-结算管理-结算列表 订单类型 -export const FINANCE_SETTLEMENT_ORDER_TYPES = F([ - [0, '销售单'], - [1, '仅退款单'], - [2, '退货退款单'], - [3, '换货单'], -]); -// 财务管理-结算管理-结算列表 售后单类型 -export const FINANCE_SETTLEMENT_AFTER_TYPES = F([ - [1, '仅退款单'], - [2, '退货退款单'], - [3, '换货单'], -]); -// 财务管理-结算管理-结算列表 状态 -export const FINANCE_SETTLEMENT_UNSETTLED_STATUS = F([ - [0, '已确认'], - [1, '待确认'], -]); -// 财务管理-结算管理-结算列表 生成方式 -export const FINANCE_SETTLEMENT_UNSETTLED_CREATE_TYPES = F([ - [0, '手动'], - [1, '自动'], -]); -// 财务管理-结算管理-未结算列表 对账状态 -export const FINANCE_SETTLEMENT_UNSETTLED_CHECKED_STATUS = F([ - [true, '正常'], - [false, '异常'], -]); -// 结算管理-策略配置-结算策略配置-订单结算策略-新增 - 满足条件 -export const FINANCE_SETTLEMENT_STRATEGY_ORDER_CONDITIONS = F([ - ['all', '满足以下所有条件'], - ['one', '满足以下任一条件'], -]); -// 结算管理-策略配置-结算策略配置-订单结算策略-新增 - 满足条件 -export const FINANCE_SETTLEMENT_STRATEGY_ORDER_CONDITION_TYPES = F([ - [0, '销售渠道'], - [1, '订单来源'], - [2, '订单类型'], - [3, '订单标记'], -]); -// 结算管理-策略配置-结算策略配置-订单结算策略-新增 - 订单来源 -export const FINANCE_SETTLEMENT_STRATEGY_ORDER_SOURCE = F([ - [0, '三方平台下载'], - [1, '手工创建'], - [2, '文件导入'], -]); -// 结算管理-策略配置-结算策略配置-订单结算策略-新增 - 订单来源 -export const FINANCE_SETTLEMENT_STRATEGY_ORDER_TAGS = F([ - [0, '缺货'], - [1, '异常'], -]); -// 结算管理-策略配置-结算策略配置-订单结算策略-新增 - 触发节点 -export const FINANCE_SETTLEMENT_STRATEGY_ORDER_NODES = F([ - [0, '订单完成'], - [1, '发货完成'], -]); -// 结算管理-策略配置-结算策略配置-售后单结算策略-新增 -export const FINANCE_SETTLEMENT_STRATEGY_AFTER_CONDITION_TYPES = F([ - [0, '售后渠道'], - [1, '售后单来源'], - [2, '售后单类型'], -]); -// 结算管理-策略配置-结算策略配置-售后单结算策略-新增 - 触发节点 -export const FINANCE_SETTLEMENT_STRATEGY_AFTER_NODES = F([ - [0, '售后完成'], - [1, '审核完成'], -]); -/* ************************************** 财务管理 结算 end ****************************************** */ -/* ************************************** 业务中心-营销管理-营销商品管理 Start ****************************************** */ -export const MARKETING_COMMODITY_MANAGEMENT_ROUTER = F([ - ['BusinessMarketingGoodsGiftRule', '赠品规则管理'], - ['BusinessMarketingGoodsWithPackageRule', '随包规则管理'], -]); -export const MARKETING_COMMODITY_MANAGEMENT_STATUS = F([ - [0, '未开始'], - [1, '进行中'], - [2, '已结束'], - [3, '已中止'], -]); -export const MARKETING_COMMODITY_MANAGEMENT_TIME_TYPES = F([ - [0, '三方下单时间'], - [1, '支付时间'], -]); -export const MARKETING_COMMODITY_MANAGEMENT_GIFT_STORE_TYPES = F([ - [1, '所有店铺'], - [0, '指定店铺'], -]); -export const MARKETING_COMMODITY_MANAGEMENT_GIFT_GOODS_TYPES = F([ - [1, '店铺内所有商品'], - [0, '指定商品'], -]); -/** 赠送条件 */ -export const MARKETING_COMMODITY_MANAGEMENT_GIFT_TYPES = F([ - // [0, '满元赠'], - [1, '满件赠'], -]); -export const MARKETING_COMMODITY_MANAGEMENT_PACKAGE_STATUS = F([ - [0, '未开始'], - [1, '进行中'], -]); -/* ************************************** 业务中心-营销管理-营销商品管理 end ****************************************** */ -/* ************************************** 业务中心-标签管理-系统标签 Start ****************************************** */ -// 标签类型 -export const LABEL_SYS_TYPES = F([ - [0, '手工单'], - [1, '复制单'], - [2, '补发单'], - [3, '退货单'], - [4, '退款单'], - [5, '换货单'], - [6, '订单缺货'], - [7, '订单异常'], -]); -// BjTag 组件的样式 -export const LABEL_HAND_COLORS = F([ - // [ value , name ], - ['orange', 'orange橙色'], - ['yellow-dark', 'yellow-dark暗黄'], - ['purple-light', 'purple-light淡紫'], - ['brown-light', 'brown-light淡棕'], - ['blue-purple', 'blue-purple蓝紫'], - ['blue-light', 'blue-light淡蓝'], - ['green-light', 'green-light淡绿'], - ['orange-red', 'orange-red橘黄'], -]); -/* ************************************** 业务中心-标签管理-系统标签 end ****************************************** */ -// 业务中心/销售管理/订单缺货管理 -export const ORDER_SHORT_ROUTER = F([ - ['BusinessOrderShortIndexSetting', '订单缺货设置'], - ['BusinessOrderShortIndexWaiting', '订单待发货'], -]); -// 商品中心-分类管理-类型 -export const GOODS_CLASSIFY_TYPES = F([ - [false, '普通类目'], - [true, '叶子类目'], -]); -// 商品中心-属性来源 有 GOODS_ATTRIBUTE_SOURCES_JSON -export const GOODS_ATTRIBUTE_SOURCES = F([ - [0, '新增'], // 商品属性 - [1, '系统默认'], - [2, '父级分类'], // 分类属性 - [3, '附加属性'], -]); -// SKU 的 属性 分类 -export const GOODS_ATTRIBUTE_TYPES = F([ - [0, '商品属性'], - [1, '系统默认'], - [2, '分类属性'], - [3, '附加属性'], -]); -export const BPMN_STATUS_LIST = F([ - [0, '未布署'], - [1, '已布署'], -]); -/** 标签管理 */ -export const BUSINESS_LABEL_ROUTE_LIST = F([ - ['BusinessLabelSysIndex', '系统标签'], - ['BusinessLabelHandIndex', '人工标签'], -]); -export const SETTING_PERMISSION_TYPE_LIST = F([ - ['api', '菜单'], - ['btn', '按钮'], - ['page', '页面'], - ['tab', '标签'], -]); -export const SETTING_PERMISSION_TYPE_COLOR_LIST = F([ - ['api', 'info'], - ['btn', 'warning'], - ['tab', 'danger'], - ['page', 'success'], -]); -export const ENDORSE_STATUS_LIST = F([ - ['0', '待审核'], - ['1', '已审核'], -]); -/** 报表管理 */ -export const BUSINESS_REPORT_SALE_ROUTE_LIST = F([ - ['BusinessReportSaleCensusIndex', '销售统计表'], - ['BusinessReportSaleAnalysisIndex', '销售分析表'], - ['BusinessReportSaleGoodsIndex', '销售商品统计表'], - ['BusinessReportSaleShopIndex', '店铺销售表'], -]); -export const BUSINESS_REPORT_STOCK_ROUTE_LIST = F([ - ['BusinessReportStockDeliverIndex', '发货汇总表'], - ['BusinessReportStockOutIndex', '缺货统计表'], -]); -export const REPORT_SALE_STATISTICS_TIME_LIST = F([ - [1, '按三方下单时间'], - [2, '按内部创建时间'], -]); -export const REPORT_SALE_STATISTICS_SUMMARY_LIST = F([ - [1, '按渠道'], - [2, '按月份'], - [3, '按地区'], -]); -/** 报表管理end */ -export const CHINESE_NUM = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']; diff --git a/front-end/src/utils/error-log.js b/front-end/src/utils/error-log.js deleted file mode 100644 index 78dafdf..0000000 --- a/front-end/src/utils/error-log.js +++ /dev/null @@ -1,35 +0,0 @@ -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/front-end/src/utils/get-page-title.js b/front-end/src/utils/get-page-title.js deleted file mode 100644 index 3158902..0000000 --- a/front-end/src/utils/get-page-title.js +++ /dev/null @@ -1,10 +0,0 @@ -import defaultSettings from '@/settings'; - -const title = defaultSettings.title || 'Vue Element Admin'; - -export default function getPageTitle(pageTitle) { - if (pageTitle) { - return `${pageTitle} - ${title}`; - } - return `${title}`; -} diff --git a/front-end/src/utils/index.js b/front-end/src/utils/index.js deleted file mode 100644 index b2802f5..0000000 --- a/front-end/src/utils/index.js +++ /dev/null @@ -1,911 +0,0 @@ -/** - * Created by PanJiaChen on 16/11/18. - */ -import html2pdf from 'html2pdf.js'; -/** - * Parse the time to string - * @param {(Object|string|number)} time - * @param {string} cFormat - * @returns {string | null} - */ -export function parseTime(time, cFormat) { - if (arguments.length === 0 || !time) { - return null; - } - const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'; - let date; - if (typeof time === 'object') { - date = time; - } else { - if (typeof time === 'string') { - if (/^[0-9]+$/.test(time)) { - // support "1548221490638" - time = parseInt(time); - } else { - // support safari - // https://stackoverflow.com/questions/4310953/invalid-date-in-safari - time = time.replace(new RegExp(/-/gm), '/'); - } - } - - if (typeof time === 'number' && time.toString().length === 10) { - time = time * 1000; - } - date = new Date(time); - } - const formatObj = { - y: date.getFullYear(), - m: date.getMonth() + 1, - d: date.getDate(), - h: date.getHours(), - i: date.getMinutes(), - s: date.getSeconds(), - a: date.getDay(), - }; - const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { - const value = formatObj[key]; - // Note: getDay() returns 0 on Sunday - if (key === 'a') { - return ['日', '一', '二', '三', '四', '五', '六'][value]; - } - return value.toString().padStart(2, '0'); - }); - return time_str; -} - -/** - * @param {number} time - * @param {string} option - * @returns {string} - */ -export function formatTime(time, option) { - if (('' + time).length === 10) { - time = parseInt(time) * 1000; - } else { - time = +time; - } - const d = new Date(time); - const now = Date.now(); - - const diff = (now - d) / 1000; - - if (diff < 30) { - return '刚刚'; - } else if (diff < 3600) { - // less 1 hour - return Math.ceil(diff / 60) + '分钟前'; - } else if (diff < 3600 * 24) { - return Math.ceil(diff / 3600) + '小时前'; - } else if (diff < 3600 * 24 * 2) { - return '1天前'; - } - if (option) { - return parseTime(time, option); - } else { - return ( - d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分' - ); - } -} - -/** - * @param {string} url - * @returns {Object} - */ -export function getQueryObject(url) { - url = url == null ? window.location.href : url; - const search = url.substring(url.lastIndexOf('?') + 1); - const obj = {}; - const reg = /([^?&=]+)=([^?&=]*)/g; - search.replace(reg, (rs, $1, $2) => { - const name = decodeURIComponent($1); - let val = decodeURIComponent($2); - val = String(val); - obj[name] = val; - return rs; - }); - return obj; -} - -/** - * @param {string} input value - * @returns {number} output value - */ -export function byteLength(str) { - // returns the byte length of an utf8 string - let s = str.length; - for (var i = str.length - 1; i >= 0; i--) { - const code = str.charCodeAt(i); - if (code > 0x7f && code <= 0x7ff) s++; - else if (code > 0x7ff && code <= 0xffff) s += 2; - if (code >= 0xdc00 && code <= 0xdfff) i--; - } - return s; -} - -/** - * @param {Array} actual - * @returns {Array} - */ -export function cleanArray(actual) { - const newArray = []; - for (let i = 0; i < actual.length; i++) { - if (actual[i]) { - newArray.push(actual[i]); - } - } - return newArray; -} - -/** - * @param {Object} json - * @returns {Array} - */ -export function param(json) { - if (!json) return ''; - return cleanArray( - Object.keys(json).map(key => { - if (json[key] === undefined) return ''; - return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]); - }), - ).join('&'); -} - -/** - * @param {string} url - * @returns {Object} - */ -export function param2Obj(url) { - const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' '); - if (!search) { - return {}; - } - const obj = {}; - const searchArr = search.split('&'); - searchArr.forEach(v => { - const index = v.indexOf('='); - if (index !== -1) { - const name = v.substring(0, index); - const val = v.substring(index + 1, v.length); - obj[name] = val; - } - }); - return obj; -} - -/** - * @param {string} val - * @returns {string} - */ -export function html2Text(val) { - const div = document.createElement('div'); - div.innerHTML = val; - return div.textContent || div.innerText; -} - -/** - * Merges two objects, giving the last one precedence - * @param {Object} target - * @param {(Object|Array)} source - * @returns {Object} - */ -export function objectMerge(target, source) { - if (typeof target !== 'object') { - target = {}; - } - if (Array.isArray(source)) { - return source.slice(); - } - Object.keys(source).forEach(property => { - const sourceProperty = source[property]; - if (typeof sourceProperty === 'object') { - target[property] = objectMerge(target[property], sourceProperty); - } else { - target[property] = sourceProperty; - } - }); - return target; -} - -/** - * @param {HTMLElement} element - * @param {string} className - */ -export function toggleClass(element, className) { - if (!element || !className) { - return; - } - let classString = element.className; - const nameIndex = classString.indexOf(className); - if (nameIndex === -1) { - classString += '' + className; - } else { - classString = - classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length); - } - element.className = classString; -} - -/** - * @param {string} type - * @returns {Date} - */ -export function getTime(type) { - if (type === 'start') { - return new Date().getTime() - 3600 * 1000 * 24 * 90; - } else { - return new Date(new Date().toDateString()); - } -} - -/** - * @param {Function} func - * @param {number} wait - * @param {boolean} immediate - * @return {*} - */ -export function debounce(func, wait, immediate) { - let timeout, args, context, timestamp, result; - - const later = function () { - // 据上一次触发时间间隔 - const last = +new Date() - timestamp; - - // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait - if (last < wait && last > 0) { - timeout = setTimeout(later, wait - last); - } else { - timeout = null; - // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 - if (!immediate) { - result = func.apply(context, args); - if (!timeout) context = args = null; - } - } - }; - - return function (...args) { - context = this; - timestamp = +new Date(); - const callNow = immediate && !timeout; - // 如果延时不存在,重新设定延时 - if (!timeout) timeout = setTimeout(later, wait); - if (callNow) { - result = func.apply(context, args); - context = args = null; - } - - return result; - }; -} -/** - * This is just a simple version of deep copy - * Has a lot of edge cases bug - * If you want to use a perfect deep copy, use lodash's _.cloneDeep - * @param {Object} source - * @returns {Object} - */ -export function deepClone(source) { - if (!source && typeof source !== 'object') { - throw new Error('error arguments', 'deepClone'); - } - const targetObj = source.constructor === Array ? [] : {}; - Object.keys(source).forEach(keys => { - if (source[keys] && typeof source[keys] === 'object') { - targetObj[keys] = deepClone(source[keys]); - } else { - targetObj[keys] = source[keys]; - } - }); - return targetObj; -} - -/** - * @param {Array} arr - * @returns {Array} - */ -export function uniqueArr(arr) { - return Array.from(new Set(arr)); -} - -/** - * @returns {string} - */ -export function createUniqueString() { - const timestamp = +new Date() + ''; - const randomNum = parseInt((1 + Math.random()) * 65536) + ''; - return (+(randomNum + timestamp)).toString(32); -} - -/** - * Check if an element has a class - * @param {HTMLElement} elm - * @param {string} cls - * @returns {boolean} - */ -export function hasClass(ele, cls) { - return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); -} - -/** - * Add class to element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function addClass(ele, cls) { - if (!hasClass(ele, cls)) ele.className += ' ' + cls; -} - -/** - * Remove class from element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function removeClass(ele, cls) { - if (hasClass(ele, cls)) { - const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); - ele.className = ele.className.replace(reg, ' '); - } -} -export const sessionStorageTagViews = { - add: function (view) { - const newView = { - fullPath: view.fullPath, - hash: view.hash, - meta: view.meta, - name: view.name, - params: view.params, - path: view.path, - query: view.query, - }; - const OLD_VISITED_VIEWS = this.get(); - OLD_VISITED_VIEWS.push(newView); - sessionStorage.setItem('visitedViews', JSON.stringify(OLD_VISITED_VIEWS)); - }, - delete: function () {}, - set: function (visitedViews) { - const VIEWS = visitedViews.map(view => { - return { - fullPath: view.fullPath, - hash: view.hash, - meta: view.meta, - name: view.name, - params: view.params, - path: view.path, - query: view.query, - }; - }); - sessionStorage.setItem('visitedViews', JSON.stringify(VIEWS)); - }, - clear: function (params) { - sessionStorage.setItem('visitedViews', '[]'); - }, - get: function () { - return JSON.parse(sessionStorage.getItem('visitedViews') || '[]'); - }, -}; -/** - * 数字转为带两位小数的金额显示 - * @param {string/Number} d //数字 - * @param {string/Number} n //几位小数 - * @returns {string} - */ -export function number2money(d = 0, n = 2) { - let zero = ''; - let ten = 1; - for (let i = 0; i < n; i++) { - zero += '0'; - ten = ten * 10; - } - if (d === undefined || d === null) { - d = 0; - } - if (!d) { - d = 0; - } - d = Math.round(d * ten) / ten; - const price = (d + '').split('.'); - price[1] = price[1] ? `${(price[1] + zero).substring(0, n)}` : zero; - return price.join('.'); -} - -export function downloadBlob(blob, fileName) { - if (!fileName) { - alert('文件名不正确'); - return; - } - // FileReader主要用于将文件内容读入内存 - var reader = new FileReader(); - reader.readAsDataURL(blob); - // onload当读取操作成功完成时调用 - reader.onload = function (e) { - var a = document.createElement('a'); - a.download = fileName; - a.href = e.target.result; - console.log(e.target.result); - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - }; -} -export function getBlobURL(blob) { - // var binaryData = []; - // binaryData.push(file); - // new Blob(binaryData, { type: 'application/zip' }) - let url = null; - if (window.createObjectURL !== undefined) { - // basic - url = window.createObjectURL(blob); - } else if (window.webkitURL !== undefined) { - // webkit or chrome - try { - url = window.webkitURL.createObjectURL(blob); - } catch (error) { - console.log(error); - } - } else if (window.URL !== undefined) { - // mozilla(firefox) - try { - url = window.URL.createObjectURL(blob); - } catch (error) { - console.log(error); - } - } - return url; -} -export function openWin(url, iWidth = 1200, iHeight = 800, name = '') { - // 转向网页的地址; - // 网页名称,可为空; - // 弹出窗口的宽度; - // 弹出窗口的高度; - // 获得窗口的垂直位置 - const iTop = (window.screen.availHeight - 30 - iHeight) / 2; - // 获得窗口的水平位置 - const iLeft = (window.screen.availWidth - 10 - iWidth) / 2; - return window.open( - url, - name, - 'height=' + - iHeight + - ',,innerHeight=' + - iHeight + - ',width=' + - iWidth + - ',innerWidth=' + - iWidth + - ',top=' + - iTop + - ',left=' + - iLeft + - ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no', - ); -} -/** - * 返回一个十位的随机字符串 BJ 开头 - * @returns {string} - */ -export function randomID() { - return ( - 'BJ' + - Number(Math.random().toString().substr(3, 12) + Date.now()) - .toString(36) - .substr(0, 8) - .toUpperCase() - ); -} -/** - * offsetTop 是一个只读属性,返回当前元素相对于 offsetParent 节点顶部边界的偏移像素值。 - * 通过循环 offsetParent 读取 offsetTop ,累加,最终获得元素至文档顶部的真实距离 - * @param { Dom, String} element - * @returns Number - */ -export function getOffsetTop(element) { - element = typeof element == 'string' ? document.querySelector(element) : element; - let realTop = element.offsetTop; - let next = element.offsetParent; - while (next !== null) { - realTop += next.offsetTop; - next = next.offsetParent; - } - return realTop; -} -/** - * this.$scrollToFormError() 调用,this请指向vue - * 页面滚动到表单检验报错的地方 - */ -export function scrollToFormError() { - this.$nextTick(() => { - const DOM = document.querySelector('.el-form-item__error'); - const TOP = getOffsetTop(DOM); - const fixedHeaderHeight = document.querySelector('.fixed-header').clientHeight || 0; // .fixed-header 高度 - const PARENT_HEIGHT = DOM.parentElement ? DOM.parentElement.clientHeight || 0 : 0; // .el-form-item__content 高度 - if (DOM && TOP) { - document.documentElement.scrollTop = TOP - PARENT_HEIGHT - fixedHeaderHeight; - } - }); -} -export function getFileTypeByUrl(url) { - const TYPE_STRING = url.split('?')[0].split('.').slice(-1)[0].toLowerCase(); - const TYPE_JSON = { - image: ['bmp', 'jpg', 'jpeg', 'gif', 'png', 'tif', 'tiff', 'tga', 'psd', 'jfif', 'webp'], - video: ['avi', 'dv', 'mp4', 'mpeg', 'mpg', 'mov', 'wm', 'flv', 'mkv', 'ogg', 'ogv', 'webm'], - text: [ - 'txt', - 'php', - 'html', - 'htm', - 'js', - 'css', - 'rtf', - 'rtfd', - 'py', - 'java', - 'rb', - 'sh', - 'pl', - 'sql', - 'xml', - 'log', - 'docx', - ], - audio: ['mp3', 'mid', 'ogg', 'mpga', 'mp4a', 'wav', 'wma'], - application: [ - 'ai', - 'eps', - 'exe', - 'doc', - 'xls', - 'ppt', - 'pps', - 'pdf', - 'xml', - 'odt', - 'swf', - 'gz', - 'tgz', - 'bz', - 'bz2', - 'tbz', - 'zip', - 'rar', - 'tar', - '7z', - ], - }; - return Object.keys(TYPE_JSON).find(key => TYPE_JSON[key].includes(TYPE_STRING)); -} -/** - * 排列组合 - * @returns - */ -export function cartesianProductOf() { - return Array.prototype.reduce.call( - arguments, - function (a, b) { - var ret = []; - a.forEach(function (a) { - b.forEach(function (b) { - ret.push(a.concat([b])); - }); - }); - return ret; - }, - [[]], - ); -} -/** - * 导出表格为 HTML、WORD、PDF、EXCEL - * @param {String} FILE_NAME 文件名 带后缀格式 - * @param {*} HTML_OR_DATA 表格数据 / HTML字符串 / html元素 - * @param {Array} LABEL_LIST 表格的表头; ['日期', '姓名', '地址'] - * @param {String} WORK_SHEET excel 的 sheet名称;默认 Sheet1 - */ -export function exportFile(FILE_NAME, HTML_OR_DATA, LABEL_LIST, WORK_SHEET) { - if (!FILE_NAME) { - console.error('exportFile need FILE_NAME'); - return; - } - if (FILE_NAME.indexOf('.') == -1) { - console.error('FILE_NAME need File Type'); - return; - } - const TYPE = FILE_NAME.split('.').slice(-1)[0].toLowerCase(); - if (TYPE === 'html') { - // downloadHtml(htmlTemplate(this.$refs.table.innerHTML), 'a.html'); - downloadHtml(htmlTemplate(HTML_OR_DATA), FILE_NAME); - } - if (TYPE === 'docx') { - // downloadHtml(tableTemplate(this.tableData, ['日期', '姓名', '地址']), 'a.docx'); - downloadHtml(tableTemplate(HTML_OR_DATA, LABEL_LIST), FILE_NAME); - } - if (TYPE === 'pdf') { - // downloadHtml(this.$refs.table.innerHTML, 'aaaa.PDF'); - downloadHtml(HTML_OR_DATA, FILE_NAME); - } - if (TYPE === 'xlsx') { - // downloadHtml(excelTemplate(this.tableData, ['日期', '姓名', '地址'], 'worksheet'), 'a.xlsx'); - downloadHtml(excelTemplate(HTML_OR_DATA, LABEL_LIST, WORK_SHEET), FILE_NAME); - } -} -/** - * 下载 html 片段,转存为文件 - * @param {String,Element} fileHtml - * @param {String} fileName - * @returns - */ -export function downloadHtml(fileHtml, fileName) { - if (!fileName) { - console.error('exportFile need fileName'); - return; - } - if (fileName.indexOf('.') == -1) { - console.error('fileName need File Type'); - return; - } - fileName = fileName.replace(/\./g, '_' + new Date().getTime() + '.'); - // 转PDF下载 - if (fileName.split('.').slice(-1)[0].toLowerCase() === 'pdf') { - console.log('转PDF下载'); - html2pdf(fileHtml, { - margin: 1, - filename: fileName, - image: { type: 'jpeg', quality: 0.98 }, - html2canvas: { scale: 2 }, - jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }, - }); - return; - } - // 其它HTML直接下载 - const a = document.createElement('a'); - const url = window.URL.createObjectURL(new Blob([fileHtml], { type: '' })); - a.href = url; - a.download = fileName; - a.click(); - window.URL.revokeObjectURL(url); -} -/** - * html模板 - * @param {String,Array} d 必填,table data / html 字符串 - * @param {Array} label 非必填,表头 - * @returns - */ -export function htmlTemplate(d, label) { - let innerHTML = d; - if (Array.isArray(d)) { - innerHTML = tableTemplate(d, label); - } - const html = ` - - - - - - FeiJi - - - -
- ${innerHTML} -
- - `; - return html; -} -/** - * excel模板 - * @param {Array} data 表数据 - * @param {Array} label 表头 - * @param {String} worksheet excel sheet 名称 - * @returns - */ -export function excelTemplate(data, label, worksheet) { - const TABLE_HTML = tableTemplate(data, label); - // Worksheet名 - worksheet = worksheet || 'Sheet1'; - // 下载的表格模板数据 - return ` - - ${TABLE_HTML}`; -} -/** - * table模板 - * @param {Array} TABLE_DATA 表数据 - * @param {Array} LABEL_LIST 表头 - * @returns - */ -export function tableTemplate(TABLE_DATA, LABEL_LIST) { - if (!TABLE_DATA) { - console.error('tableTemplate: need table data'); - return; - } - if (!Array.isArray(TABLE_DATA)) { - console.error('tableTemplate: table data must be Array'); - return; - } - if (!LABEL_LIST) { - console.error('tableTemplate: need table header'); - return; - } - if (!Array.isArray(LABEL_LIST)) { - console.error('tableTemplate: table header must be Array'); - return; - } - // 表头 - let str = - '' + - LABEL_LIST.map( - e => - `${e}`, - ).join('') + - ''; - // 循环遍历,每行加入tr标签,每个单元格加td标签 - for (let i = 0; i < TABLE_DATA.length; i++) { - str += ''; - for (const item in TABLE_DATA[i]) { - // 增加\t为了不让表格显示科学计数法或者其他格式 - str += `${ - TABLE_DATA[i][item] + '\t' - }`; - } - str += ''; - } - return `${str}
`; -} - -/** - * element时间组件参数:picker-options - * @param {Date} startDate 只当选中 startDate 以后的时间,之前的禁选 - * @returns - */ -export function disabledPickerDate(startDate) { - const TEMP_DATE = startDate ? new Date(startDate) : new Date(); - return { - disabledDate: time => { - return time.getTime() < TEMP_DATE.getTime() - 8.64e7 + 1; - }, - }; -} - -/** - * element时间范围datetime range 组件参数:picker-options - * @param {option} pickerOptions 参数,会覆盖默认的shortcuts,可传入 disabledPickerDate() ,用于禁用过去的时间 - * @returns 默认的最近时间快捷范围 - */ -export function pickerOptions(option = {}) { - return { - firstDayOfWeek: option.firstDayOfWeek || 7, - cellClassName: option.cellClassName || null, - disabledDate: option.disabledDate || null, - shortcuts: option.shortcuts || [ - { - text: '最近一周', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit('pick', [start, end]); - }, - }, - { - text: '最近一个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); - picker.$emit('pick', [start, end]); - }, - }, - { - text: '最近三个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); - picker.$emit('pick', [start, end]); - }, - }, - ], - }; -} - -export function pickerOption(option = {}) { - return { - firstDayOfWeek: option.firstDayOfWeek || 7, - cellClassName: option.cellClassName || null, - disabledDate: option.disabledDate || null, - shortcuts: option.shortcuts || [ - { - text: '今天', - onClick(picker) { - picker.$emit('pick', new Date()); - }, - }, - { - text: '昨天', - onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24); - picker.$emit('pick', date); - }, - }, - { - text: '一周前', - onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit('pick', date); - }, - }, - ], - }; -} - -export function VUE_APP_BASE_API() { - let api = process.env.VUE_APP_BASE_API; - if (process.env.NODE_ENV === 'production') { - // 生产环境的API动态取值(在二级域名后,加 api),如果最终api有www的话直接去掉 - // 例1: https://nice.domain.com => https://niceapi.domain.com - // 例2: http://www.domain.com => http://api.domain.com - // 例2: http://www666.domain.com => http://666api.domain.com - const URL_ARRAY = location.origin.split('.'); - URL_ARRAY[0] = URL_ARRAY[0] + 'api'; - api = URL_ARRAY.join('.'); - api = api.replace('www', ''); - } - return api; -} - -export function infinityNumber(n) { - if (!n) { - if (n === 0 || n === '0') { - return 0; - } - return 999999999999999; - } - if (n === '不限' || n === '-') { - return 999999999999999; - } - if (n === 999999999999999) { - return '不限'; - } - return Number(n); -} -export function isSameArray(a, b) { - const la = a.length; - const lb = b.length; - if (la == lb) { - return a.every(aa => b.some(bb => bb === aa)) && b.every(bb => a.some(aa => bb === aa)); - } else { - return false; - } -} - -export function btnLetterAutoSpacing() { - document.getElementsByTagName('button').forEach(btn => { - if (btn.textContent.length == 3) { - btn.classList.add('letter-spacing-8'); - } else if (btn.textContent.length <= 2) { - btn.classList.add('letter-spacing-16'); - } - }); -} -// 子商品行背景着色 -export function treeRowStyleFun({ row, rowIndex }, key = 'BJ_HAS_CHILD', flag = false) { - const styleJson = {}; - if (row[key] == flag) { - styleJson.background = '#f5f5f5'; - } - return styleJson; -} -export function repeatArrayFun(d, times = 10000) { - const d2 = []; - for (let i = 0; i < times; i++) { - d2.push(...d); - } - return d2; -} diff --git a/front-end/src/utils/jumper2router.js b/front-end/src/utils/jumper2router.js deleted file mode 100644 index ece30da..0000000 --- a/front-end/src/utils/jumper2router.js +++ /dev/null @@ -1,150 +0,0 @@ -import Vue from 'vue'; -import router from '@/router'; -import { ORDER_BUSINESS_TYPES } from '@/utils/constants.js'; - -Vue.prototype.$toPage = (name, query) => { - router.push({ - name: name, - query: query, - }); -}; -Vue.prototype.$toView = (name, id) => { - router.push({ - name: name, - query: { id: id }, - }); -}; -// 三方销售单 -Vue.prototype.$toBusinessOrderThirdView = (code, useIdFlag = false, businessType = 'common') => { - let id = null; - let name = 'BusinessOrderThirdView'; - if (useIdFlag) { - id = code; - code = null; - } - - if (ORDER_BUSINESS_TYPES.O2O == businessType) { - name = 'BusinessO2oThirdView'; - } - router.push({ - name, - query: { id, code }, - }); -}; -// 内部销售单 -Vue.prototype.$toBusinessOrderInternalView = (code, useIdFlag = false, businessType = 'common') => { - let id = null; - let name = 'BusinessOrderInternalView'; - if (useIdFlag) { - id = code; - code = null; - } - if (ORDER_BUSINESS_TYPES.O2O == businessType) { - name = 'BusinessO2oInternalView'; - } - router.push({ - name, - query: { id, code }, - }); -}; -// 三方仅退款 -Vue.prototype.$toBusinessAfterThirdRefundView = (code, useIdFlag = false) => { - let id = null; - if (useIdFlag) { - id = code; - code = null; - } - router.push({ - name: 'BusinessAfterThirdRefundView', - query: { id, code }, - }); -}; -// 三方退货退款 -Vue.prototype.$toBusinessAfterThirdReturnView = (code, useIdFlag = false) => { - let id = null; - if (useIdFlag) { - id = code; - code = null; - } - router.push({ - name: 'BusinessAfterThirdReturnView', - query: { id, code }, - }); -}; -// 内部仅退款 -Vue.prototype.$toBusinessAfterInternalRefundView = (code, useIdFlag = false) => { - let id = null; - if (useIdFlag) { - id = code; - code = null; - } - router.push({ - name: 'BusinessAfterInternalRefundView', - query: { id, code }, - }); -}; -// 内部退货退款 -Vue.prototype.$toBusinessAfterInternalReturnView = (code, useIdFlag = false) => { - let id = null; - if (useIdFlag) { - id = code; - code = null; - } - router.push({ - name: 'BusinessAfterInternalReturnView', - query: { id, code }, - }); -}; -// 三方换货单 -Vue.prototype.$toBusinessAfterThirdExchangeView = id => { - router.push({ - name: 'BusinessAfterThirdExchangeView', - query: { id: id }, - }); -}; -// 内部换货单 -Vue.prototype.$toBusinessAfterInternalExchangeView = id => { - router.push({ - name: 'BusinessAfterInternalExchangeIndex', - query: { id: id }, - }); -}; -/** 出库通知单详情 */ -Vue.prototype.$toBusinessStockDeliveryInformView = id => { - router.push({ - name: 'BusinessStockDeliveryInformView', - query: { id: id }, - }); -}; -/** 出库结果单详情 */ -Vue.prototype.$toBusinessStockDeliveryResultView = id => { - router.push({ - name: 'BusinessStockDeliveryResultView', - query: { id: id }, - }); -}; - -/** 入库通知单详情 */ -Vue.prototype.$toBusinessStockEntryInformView = (code, useIdFlag = false) => { - let id = null; - if (useIdFlag) { - id = code; - code = null; - } - router.push({ - name: 'BusinessStockEntryInformView', - query: { id, code }, - }); -}; -/** 入库结果单详情 */ -Vue.prototype.$toBusinessStockEntryResultView = (code, useIdFlag = false) => { - let id = null; - if (useIdFlag) { - id = code; - code = null; - } - router.push({ - name: 'BusinessStockEntryResultView', - query: { id, code }, - }); -}; diff --git a/front-end/src/utils/open-window.js b/front-end/src/utils/open-window.js deleted file mode 100644 index 90a6ddd..0000000 --- a/front-end/src/utils/open-window.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - *Created by PanJiaChen on 16/11/29. - * @param {Sting} url - * @param {Sting} 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/front-end/src/utils/page-mixin.js b/front-end/src/utils/page-mixin.js deleted file mode 100644 index 6b0cb2e..0000000 --- a/front-end/src/utils/page-mixin.js +++ /dev/null @@ -1,161 +0,0 @@ -/* - * @Author: your name - * @Date: 2021-06-24 18:36:56 - * @LastEditTime: 2022-04-24 18:21:34 - * @LastEditors: LAPTOP-JM4BAR46 - * @Description: In User Settings Edit - * @FilePath: \newBj-admin\src\utils\page-mixin.js - */ -import { commonApi } from '@/api'; - -import ElTableColumn from '@/components/ElTableColumn/index.vue'; - -export default { - components: { - ElTableColumn, - }, - data() { - return { - /** * 拖拽自定义表头 */ - colSpan: 6, - labelsVersion: 11, // 不能为 0 或 false - SortableTable: { - show: () => {}, - handleHeaderDragend: () => {}, - handleHeaderContextmenu: () => {}, - }, - dropCols: [], - // - selectedDataObj: {}, - tags: [], // 选中项 转为 tags ,在表格下方 - pagesSelectedRows: [], // 各页的选中项集合 - selectedRows: [], // 当前页的选中项 - treeTableChildrenSelection: [], // - expandTableSelectedObj: [], - selection: true, - serial: true, - /** 禁止拖动 */ - sortableTableCode: '', // 同一个路由页面下,多tab页列表的保存Code - sortTableByOptionName: false, - tableSortableDisabled: false, - - routerName: '', - }; - }, - filters: { - phoneFilter(val) { - if (val) { - const reg = /^(.{3}).*(.{4})$/; - return val.replace(reg, '$1****$2'); - } - }, - }, - computed: {}, - watch: { - '$route.name'(v) { - this.routerName = v; - }, - }, - created() {}, - mounted() { - this.routerName = this.$route.name; - // 注册刷新事件 - this.$eventHub.$on('refresh' + this.routerName, this.reFresh); - /** 拖拽自定义表头 */ - let startIndex = 0; - if (this.selection) startIndex++; - if (this.serial) startIndex++; - // 保存的唯一code - if (!this.sortableTableCode) { - // 默认取路由name。 - this.sortableTableCode = this.$route.name; - if (this.sortTableByOptionName) { - // 取组件名称 - this.sortableTableCode = this.$options.name; - } - } - // console.log('tableSortableDisabled = ', this.tableSortableDisabled); - // console.log('sortableTableCode = ', this.sortableTableCode); - this.SortableTable = this.$initElementTableSortable({ - el: '.body--wrapper>.vxe-table--header .vxe-header--row', // '.el-table__header-wrapper tr:last-child', - tableSortableDisabled: this.tableSortableDisabled, - dragElement: '.vxe-header--column', // 默认是 className : draggable .item - defaultLabels: this.labelList, - startIndex: startIndex, - sortableTableCode: this.sortableTableCode, // 唯一key - labelsVersion: this.labelsVersion, // 当前版本号 - setRemoteApi: commonApi.saveTabulation, // 非必填 - getRemoteApi: commonApi.getTabulation, // 非必填 - handleColumn: this.handleColumn, - }); - // this.setSortTableCodeAndHeight(); - - // 对整个页面滚轮进行监听,每发生一次滚轮事件,执行一次方法 - // window.addEventListener('scroll', this.scrollCallBack, true); - }, - beforeDestroy() { - this.$eventHub.$off('refresh' + this.routerName); - }, - methods: { - scrollCallBack() { - // 兼容性,获取页面滚动距离 - const scrollTop = - window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; - - const IS_BOTTOM = document.body.scrollHeight - scrollTop - document.body.clientHeight < 3; - - this.$refs.BjPage.showSearch = !IS_BOTTOM; - }, - // setSortTableCodeAndHeight() { - // this.$nextTick(() => { - // // 根据列表code,获取列表的自定义高度(用于max-height) - // const LAST_HEIGHT = Number(localStorage.getItem(this.sortableTableCode) || 0); - // // 把 code 和 height 传入 bjPage - // if (LAST_HEIGHT) { - // this.$refs.BjPage?.setSortTableCodeAndHeight(this.sortableTableCode, LAST_HEIGHT); - // } - // }); - // }, - /** 重置按钮操作 */ - beforeResetSearch() { - this.handleSelectionChange({}); - return new Promise(resolve => { - resolve(); - }); - }, - /** 拖拽自定义表头 */ - handleColumn(data) { - this.dropCols = data; - if (this.tableSortableDisabled) return; - this.$nextTick(() => { - this.$refs.BjPage.$refs.BjTable && this.$refs.BjPage.$refs.BjTable.refreshColumn(); - }); - }, - reFresh() { - this.$refs.BjPage && this.$refs.BjPage.fetchData(); - }, - handleSelectionChange(data) { - this.selectedDataObj = { ...data }; - this.selectedRows = data.selection || []; - this.tags = data.tags || []; - // console.log('this.tags', this.tags); - this.treeTableChildrenSelection = data.children || []; - this.pagesSelectedRows = data.pagesSelectedRows || []; - }, - handleQuery() { - this.reFresh(); - }, - // 子多选框选中数据 - handleExpandTableSelectionChange(arg) { - // const { - // childrenSelection, - // parentRow, - // parentIndex, - // expandTableIndexSelection, - // treeTableChildrenSelection, - // } = arg; - this.expandTableSelectedObj = arg; - console.log(this.expandTableSelectedObj); - }, - }, -}; diff --git a/front-end/src/utils/permission.js b/front-end/src/utils/permission.js deleted file mode 100644 index 221d970..0000000 --- a/front-end/src/utils/permission.js +++ /dev/null @@ -1,21 +0,0 @@ -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); - }); - return hasPermission; - } else { - console.error(`need roles! Like v-permission="['admin','editor']"`); - return false; - } -} diff --git a/front-end/src/utils/prototype-native.js b/front-end/src/utils/prototype-native.js deleted file mode 100644 index f72877e..0000000 --- a/front-end/src/utils/prototype-native.js +++ /dev/null @@ -1,39 +0,0 @@ -/*eslint no-extend-native: ["error", { "exceptions": ["Array"] }]*/ -function getLabelByValue(list, value, valueString = 'value', labelString = 'label') { - if (Array.isArray(list)) { - const FIND_ITEM = list.find(item => { - const VALUE = item[valueString]; - // 兼容 item.value为数组的情况 - return VALUE == value || (Array.isArray(VALUE) && VALUE.some(n => n == value)); - }); - if (FIND_ITEM) return FIND_ITEM[labelString]; - } - return value; -} -Array.prototype.bjGet = function(value, valueString = 'value', labelString = 'label') { - return getLabelByValue(this, value, valueString, labelString); -}; -Array.prototype.bjIncludes = function(value, valueKey) { - return this.some(e => { - if (valueKey) { - return e[valueKey] == value; - } - return e == value; - }); -}; -/** - * - * @param {*} val //要查找的值 - * @param {*} key // 如果数组元素是一个object,需要提供对应的key - */ -Array.prototype.remove = function(val, key) { - let index; - if (typeof key == 'string') { - index = this.findIndex(e => e[key] == val); - } else { - index = this.indexOf(val); - } - if (index > -1) { - this.splice(index, 1); - } -}; diff --git a/front-end/src/utils/prototype-vue.js b/front-end/src/utils/prototype-vue.js deleted file mode 100644 index 72264b0..0000000 --- a/front-end/src/utils/prototype-vue.js +++ /dev/null @@ -1,85 +0,0 @@ -import Vue from 'vue'; -import '@/utils/jumper2router.js'; -// 全局组件之间通信 -Vue.prototype.$eventHub = Vue.prototype.$eventHub || new Vue(); // 巴士 - -Vue.prototype.$rowStyle = { - DEFAULT: { fontSize: '13px' }, // background: '#eef1f6', color: '#606266', - LIGHT_GREY: { background: '#f7f7f7', color: '#606266' }, - LIGHT_BLUE: { background: '#c4d9f5', color: '#606266' }, - WHITE: { background: '#FFFFFF', color: '#6c6c6c' }, -}; - -// 数字转2位小数金额 -import { - number2money, - getFileTypeByUrl, - disabledPickerDate, - pickerOptions, - pickerOption, - infinityNumber, - scrollToFormError, - treeRowStyleFun, - repeatArrayFun, -} from '@/utils/index.js'; -Vue.prototype.$number2money = number2money; -Vue.prototype.$getFileTypeByUrl = getFileTypeByUrl; -Vue.prototype.$disabledPickerDate = disabledPickerDate; -Vue.prototype.$pickerOptions = pickerOptions; -Vue.prototype.$pickerOption = pickerOption; -Vue.prototype.$infinityNumber = infinityNumber; -Vue.prototype.$scrollToFormError = scrollToFormError; -Vue.prototype.$treeRowStyleFun = treeRowStyleFun; -Vue.prototype.$repeatArrayFun = repeatArrayFun; - -import * as BjDialogListConfig from '@/utils/BjDialogListConfig.js'; -Vue.prototype.$BjDialogListConfig = BjDialogListConfig; - -Vue.prototype.msgSuccess = function (msg) { - this.$message({ showClose: true, message: msg, type: 'success' }); -}; -Vue.prototype.msgError = function (msg) { - this.$message({ showClose: true, message: msg, type: 'error' }); -}; -Vue.prototype.msgInfo = function (msg) { - this.message.info(msg); -}; -Vue.prototype.$onCopy = () => { - Vue.prototype.$message.success('复制成功'); -}; -Vue.prototype.$onError = () => { - Vue.prototype.$message.error('复制失败'); -}; - -import { MAX_LENGTH } from '@/utils/constants'; -Vue.prototype.MAX_LENGTH = MAX_LENGTH; - -import lodash from 'lodash'; -Vue.prototype.$lodash = lodash; - -// https://github.com/wangduanduan/jsplumb-chinese-tutorial/tree/master/docs -// https://www.cnblogs.com/leomYili/p/6346526.html - -// import jsPlumb from 'jsplumb'; -// Vue.prototype.$jsPlumb = jsPlumb.jsPlumb; - -/** - * 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(); -// } -const Mock = require('mockjs'); -Vue.prototype.$getMockData = list => { - const res = Mock.mock({ - 'list|6-10': list, - }).list; - console.log(JSON.stringify(res)); - return res; -}; diff --git a/front-end/src/utils/request.js b/front-end/src/utils/request.js deleted file mode 100644 index 8b02bfe..0000000 --- a/front-end/src/utils/request.js +++ /dev/null @@ -1,387 +0,0 @@ -import axios from './axios.js'; -// import Vue from 'vue'; -import router from '@/router'; -import { Message } from 'element-ui'; -import store from '@/store'; -import { getToken } from '@/utils/auth'; -import _ from 'lodash'; - -function sleep(time) { - return new Promise(resolve => setTimeout(resolve, time)); -} - -const CONTENT_TYPES = { - 1: 'application/json', - 2: 'multipart/form-data', - 3: 'application/x-www-form-urlencoded', -}; -const RESPONSE_TYPES = { - 0: 'text', - 1: 'json', - 2: 'blob', - 3: 'buffer', -}; -// console.log('http1', Vue.prototype.$http.options); -// console.log('axios', axios); -// console.log('aa', Vue.prototype.$http.prototype); -// // create an axios instance - -const service = axios.create({ - // withCredentials: true, // send cookies when cross-domain requests -}); - -// // request interceptor -service.interceptors.request.use( - config => { - if (!config.loadingHide) store.dispatch('app/addLoadingCount'); - if (getToken()) { - config.headers['Authorization'] = 'Bearer ' + getToken(); - } - // console.log(config); - return config; - }, - error => { - // do something with request error - // console.error(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 - */ - async response => { - const config = response && response.config; - - await sleep(config.loadingMore); - - if (config.loadingMore) console.log('主动延迟' + config.loadingMore + 'ms', config.url); - - if (!config.loadingHide) store.dispatch('app/addLoadingCount', false); - - const OLD_RESPONSE_DATA = response.data; - let NEW_RESPONSE_DATA = null; - - if ( - (response.status === 204 || response.status === 200) && - (typeof OLD_RESPONSE_DATA === 'string' || typeof OLD_RESPONSE_DATA === 'number') - ) { - NEW_RESPONSE_DATA = { - failed: false, - message: OLD_RESPONSE_DATA || '操作成功', - }; - } - - if ( - (response.status === 204 || response.status === 200) && - typeof OLD_RESPONSE_DATA === 'boolean' - ) { - NEW_RESPONSE_DATA = { - failed: !OLD_RESPONSE_DATA, - message: OLD_RESPONSE_DATA ? '操作成功' : 'Waring', - }; - } - - const res = NEW_RESPONSE_DATA || OLD_RESPONSE_DATA || response; - /** - * 统一处理 : 接口连接正常,但 res.failed==true 的情况 - */ - if (res && res.failed && !config.errorHide) { - Message({ - message: (res && res.message) || 'api error', // error.message - type: 'error', - duration: 2 * 1000, - }); - } - - return res; - // if the custom code is not 0, it is judged as an error. - // if (res.code === null || (res.code && res.code !== 0)) { - // if (res.code === 100008005 && res.data && Array.isArray(res.data) && res.data.length > 0) { - // Message({ - // message: res.data[0].msg || 'Error', - // type: 'error', - // duration: 5 * 1000, - // }); - // } else { - // Message({ - // message: res.message || 'Error', - // type: 'error', - // duration: 5 * 1000, - // }); - // } - // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; - // if (res.code === 50008 || res.code === 50012 || res.code === 50014) { - // // to re-login - // MessageBox.confirm( - // 'You have been logged out, you can cancel to stay on this page, or log in again', - // 'Confirm logout', - // { - // confirmButtonText: 'Re-Login', - // cancelButtonText: 'Cancel', - // type: 'warning', - // }, - // ).then(() => { - // store.dispatch('app/user/resetToken').then(() => { - // location.reload(); - // }); - // }); - // } - // if (store.getters.globalPartialLoading) { - // setTimeout(() => { - // store.dispatch('app/toggleGlobalLoading', false); - // }, 700); - // } - // return Promise.reject(new Error(res.message || 'Error')); - // } else { - // if (store.getters.globalPartialLoading) { - // setTimeout(() => { - // store.dispatch('app/toggleGlobalLoading', false); - // }, 700); - // } - - // return res; - // } - }, - error => { - const config = error && error.config; - if (config && !config.loadingHide) store.dispatch('app/addLoadingCount', false); - console.log(error); // for debug - // if (store.getters.globalPartialLoading) { - // setTimeout(() => { - // store.dispatch('app/toggleGlobalLoading', false); - // }, 700); - // } - - if (error.message.includes('timeout')) { - // 判断请求异常信息中是否含有超时timeout字符串 - - Message({ - message: '请求服务器超时,请刷新重试', // error.message - type: 'error', - duration: 2 * 1000, - }); - return Promise.reject({ - failed: true, - message: '', - }); - } - - if (error && error.response && error.response.status) { - console.log(error.response.status); - switch (error.response.status) { - case 500: - case 503: - // do something... - Message({ - message: `请求失败,请稍候重试(${error.response.status})`, - type: 'error', - duration: 5 * 1000, - }); - break; - case 404: - // do something... - Message({ - message: `请求资源不存在(${error.response.status})`, - type: 'error', - duration: 5 * 1000, - }); - break; - case 403: - // do something... - Message({ - message: `服务器拒绝或者禁止了您的访问(${error.response.status})`, - type: 'error', - duration: 5 * 1000, - }); - break; - case 401: - // do something... - if (!process.env.VUE_APP_ACCESS_TOKEN) { - Message({ - message: '请重新登录', // error.message - type: 'error', - duration: 2 * 1000, - }); - setTimeout(() => { - store.dispatch('user/resetInfo').then(() => { - router.replace({ - path: '/login', - }); - }); - }, 1000); - } - - break; - default: - // do something... - // Message({ - // message: '服务器开小差了~', // error.message - // type: 'error', - // duration: 5 * 1000, - // }); - break; - } - } else { - // Message({ - // message: '服务器开小差了~', // error.message - // type: 'error', - // duration: 5 * 1000, - // }); - } - return Promise.reject({ - failed: true, - message: 'Api Http Status Code : ' + (error.response && error.response.status), - }); - }, -); - -export function ajax(method = 'post', url, options) { - // console.log(`%c ajax url: ${url}`, 'color:blue;'); - // console.log(options.data); - - method = method.toLowerCase(); - options.data = options.data || {}; - let requestType = (options.type || '').toLowerCase(); - // data参数指定隐藏loading动画 - const BjAjaxLoadingHide = options.data.BjAjaxLoadingHide; - delete options.data.BjAjaxLoadingHide; - const opts = { - url, - method, - errorHide: !!options.errorHide, - loadingHide: !!options.loadingHide || BjAjaxLoadingHide, // 此请求隐藏loading动画 - loadingMore: options.loadingMore || 0, // 此请求延迟loading,主动延迟返回(后端异步的情况) - headers: { - 'Content-type': CONTENT_TYPES[options.cType || '1'], - }, - responseType: RESPONSE_TYPES[options.rType || '0'], - }; - /** - * 兼容rest风格(请求参数拼接在路径上) - */ - let restfulUrl = ''; - if (url[url.length - 1] === '/') { - // rest 风格的get 请求 需要api文件的url 最后拼接上/ - let restAPI = Object.values(options.data); // 取参数value数组 - if (typeof options.data === 'string') { - restAPI = [options.data]; - } - restfulUrl = opts.url + restAPI.join('/'); // 把参数拼接在url后面 - requestType = 'restful'; - } - /** - * 没有指定请求的类型,自动判断请求方式 - */ - if (!requestType) { - if (method === 'get') { - requestType = 'query'; - } else { - requestType = 'body'; - } - } - if (requestType === 'query') { - opts.params = options.data; - } - if (requestType === 'body') { - opts.data = options.data; - } - if (requestType === 'form' && options.data) { - const formData = new FormData(); - Object.keys(options.data).forEach(key => { - formData.append(key, options.data[key]); - }); - opts.data = formData; - } - if (requestType === 'restful') { - opts.url = restfulUrl; - } - - /** 特定奇葩的传参方式 */ - if (options.data && options.data.BjBody) { - opts.data = options.data.BjBody; - } - if (options.data && options.data.BjQuery) { - opts.params = options.data.BjQuery; - } - - // console.log('options.opts', opts); - return service(opts); -} - -export function generate(config) { - const map = {}; - const items = config.items; - for (let i = 0, len = items.length; i < len; i++) { - map[items[i].key] = function(data) { - /** - * 把data里的值 替换到url上{}里,并删除data对应key - */ - let tempUrl = (items[i].prefix || config.prefix || '') + items[i].url; - const REG = /\{(.+?)\}/g; - const __matchKey = tempUrl.match(REG); // 带{}花括号 - - // 链接{}花括号参数处理 - if (Array.isArray(__matchKey)) { - const matchKey = __matchKey.map(e => e.replace('{', '').replace('}', '')); // 去{}花括号 - matchKey.forEach((key, index) => { - const __key = __matchKey[index]; - let __value; - // {}花括号 从data中取值(如果有data.key的话) - if (data && Object.prototype.hasOwnProperty.call(data, key)) { - __value = data[key]; - tempUrl = tempUrl.replace(__key, __value); - delete data[key]; - } else { - // data 没有 给 organizationId、tenantId 赋值,从store中获取,默认为0租户 - if (key === 'organizationId' || key === 'tenantId') { - __value = store.getters.tenantId || 0; - tempUrl = tempUrl.replace(__key, __value); - } else { - console.error(`Can't find ${key} from the ${items[i].method} data`, data); - } - } - }); - } - // 默认值 - if ( - data && - Object.prototype.hasOwnProperty.call(data, 'tenantId') && - data.tenantId == 'default' - ) { - data.tenantId = store.getters.tenantId || 0; - } - if ( - data && - Object.prototype.hasOwnProperty.call(data, 'organizationId') && - data.organizationId == 'default' - ) { - data.organizationId = store.getters.tenantId || 0; - } - /** END */ - - /** - * TODO: 从0开始的分页page */ - if (data && Object.prototype.hasOwnProperty.call(data, 'page') && data.page > 0) { - data.page = data.page - 1; - } - /** END */ - return ajax(items[i].method, tempUrl, { - data, - ...(_.omit(items[i], ['key', 'url', 'method', 'prefix']) || {}), - }); - }; - } - return map; -} - -export default {}; diff --git a/front-end/src/utils/scroll-to.js b/front-end/src/utils/scroll-to.js deleted file mode 100644 index d11b672..0000000 --- a/front-end/src/utils/scroll-to.js +++ /dev/null @@ -1,58 +0,0 @@ -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/front-end/src/utils/validate.js b/front-end/src/utils/validate.js deleted file mode 100644 index 266410a..0000000 --- a/front-end/src/utils/validate.js +++ /dev/null @@ -1,299 +0,0 @@ -/** - * Created by PanJiaChen on 16/11/18. - */ - -/** - * @param {string} path - * @returns {Boolean} - */ -export function isExternal(path) { - return /^(https?:|mailto:|tel:)/.test(path); -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUsername(str) { - const valid_map = ['admin', 'editor']; - return valid_map.indexOf(str.trim()) >= 0; -} - -/** - * @param {string} url - * @returns {Boolean} - */ -export function validURL(url) { - const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; - return reg.test(url); -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validLowerCase(str) { - const reg = /^[a-z]+$/; - return reg.test(str); -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUpperCase(str) { - const reg = /^[A-Z]+$/; - return reg.test(str); -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validAlphabets(str) { - const reg = /^[A-Za-z]+$/; - return reg.test(str); -} - -/** - * @param {string} email - * @returns {Boolean} - */ -export const patternEmail = /^[a-zA-Z0-9_.-]{1,30}@[a-zA-Z0-9-]{1,30}(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/; -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 patternEmail.test(email); -} -export const validatorEmail = function(rule, value, callback) { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入邮箱')); - } else { - callback(); - } - } else { - if (!patternEmail.test(String(value))) { - callback(new Error('邮箱格式错误')); - } else { - callback(); - } - } -}; - -/** - * @param {string} phone - * @returns {Boolean} - */ -export const patternMobile = /^134[0-8]\d{7}$|^13[^4]\d{8}$|^14[5-9]\d{8}$|^15[^4]\d{8}$|^16[6]\d{8}$|^17[0-8]\d{8}$|^18[\d]{9}$|^19[89]\d{8}$/; -export function validPhone(phone) { - return patternMobile.test(phone); -} - -/** - * 排除非数字和字母还有_.-其他禁止输入 - */ -export const checkCode = /[^\a-\z\A-\Z0-9-_.]/g; -export const checkCodeWithComma = /[^\a-\z\A-\Z0-9-_.,]/g; -/** - * 编码的规则 - */ -export const patternCode = /^[A-Z0-9][A-Z0-9-_./]*$/; -export const patternCodeSimple = /^[A-Za-z0-9-_./]{0,50}$/; -export const validatorCodeSimple = function(rule, value, callback) { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入编码')); - } else { - callback(); - } - } else { - if (!patternCodeSimple.test(String(value))) { - callback(new Error('编码格式错误')); - } else { - callback(); - } - } -}; -export const validatorCodeSimpleLabel = function(rule, value, callback, label = '编码') { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入' + label)); - } else { - callback(); - } - } else { - if (!patternCodeSimple.test(String(value))) { - callback(new Error(label + '格式错误')); - } else { - callback(); - } - } -}; -/** - * @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); -} -// 100以内的数字,最多两位小数 -export const patternPercent = /(^[0-9]{1,2}$)|(^[0-9]{1,2}[\.]{1}[0-9]{0,2}$)/; -export function validPercent(v) { - return patternPercent.test(v); -} - -// 不能小于1 -export const validatorMinOne = (rule, value, callback) => { - if (value < 1) { - callback(new Error(rule.message)); - } else { - callback(); - } -}; - -/** - * 账户验证规则 - */ -export const validateLoginName = (rule, value, callback) => { - if (rule.required && (!value || value === 0)) { - callback(new Error('请输入账户')); - } else { - if (!/^[\u4E00-\u9FA5\uF900-\uFA2D|a-zA-Z0-9]{2,20}$/.test(value)) { - callback(new Error('请输入正确的账户')); - } else { - callback(); - } - } -}; -/** - * 手机号验证规则 - */ -export const patternMobileSimple = /^1\d{10}$/; -export const validatorMobile = function(rule, value, callback) { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入手机号')); - } else { - callback(); - } - } else { - if (!patternMobileSimple.test(String(value))) { - callback(new Error('手机号格式错误')); - } else { - callback(); - } - } -}; -/** - * 邮编验证规则 - */ -export const patternPostCode = /\d{6}/; -export const validatorPostCode = function(rule, value, callback) { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入邮编')); - } else { - callback(); - } - } else { - if (!patternPostCode.test(String(value))) { - callback(new Error('邮编格式错误')); - } else { - callback(); - } - } -}; - -/** - * 区号-电话号码 验证规则 - */ -export const patternPhone = /^\d{3,4}-\d{7,8}$/; -export const validatorPhone = function(rule, value, callback) { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入固定电话号码')); - } else { - callback(); - } - } else { - if (!patternPhone.test(String(value))) { - callback(new Error('固定电话号码格式错误')); - } else { - callback(); - } - } -}; - -/** - * 年龄 验证规则 - */ -export const patternAge = /^[1-9][0-9]{0,2}$/; -export const validatorAge = function(rule, value, callback) { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入年龄')); - } else { - callback(); - } - } else { - if (!patternAge.test(String(value))) { - callback(new Error('年龄格式错误')); - } else { - callback(); - } - } -}; - -// 密码 -export const patternPassword = /^(\w){6,20}$/; -// 中文,英文字母,数字 -export const validatorGoodsClassifyName = /^[a-zA-Z0-9\u4e00-\u9fa5]+$/; -export const patternGoodsClassifyName = function(rule, value, callback) { - if (!value) { - return callback(new Error('请输入分类名称')); - } - if (!validatorGoodsClassifyName.test(value)) { - callback(new Error('中文,英文字母,数字')); - } else { - callback(); - } -}; -// 商品分类编码 -export const patternGoodsClassifyCode = /^[a-zA-Z0-9]{0,20}$/; -export const validatorGoodsClassifyCode = function(rule, value, callback) { - if (typeof value == 'number') value = String(value); - if (!value) { - if (rule.required) { - callback(new Error('请输入')); - } else { - callback(); - } - } else { - if (!patternGoodsClassifyCode.test(String(value))) { - callback(new Error('请输入不大于20位的数字及字母组合')); - } else { - callback(); - } - } -}; diff --git a/front-end/src/utils/view-mixin.js b/front-end/src/utils/view-mixin.js deleted file mode 100644 index f09f2a5..0000000 --- a/front-end/src/utils/view-mixin.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * 通用混入viewForm 详情页面 - */ -// import { commonApi } from '@/api'; -export default { - props: { - isEdit: { - type: Boolean, - default: false, - }, - isView: { - type: Boolean, - default: false, - }, - isAdd: { - type: Boolean, - default: false, - }, - }, - data() { - return { - pageName: 'page_list_router_name', - }; - }, - filters: {}, - computed: {}, - watch: {}, - created() {}, - mounted() { - // if (document.querySelector('.resize-col')) { - // let oldWidth = document.getElementById('app').clientWidth; - // window.addEventListener('resize', () => { - // const WIDTH = document.getElementById('app').clientWidth; - // const isAdd = WIDTH > oldWidth; - // console.log(WIDTH); - // for (let i = 1; i <= 24; i++) { - // const THIS_CLASS = 'bj-item-col-' + i; - // const NEXT_I = isAdd ? i + 2 : i - 2; - // const NEXT_CLASS = 'bj-item-col-' + NEXT_I; - // const DOM = document.querySelector('.' + THIS_CLASS); - // if (DOM && NEXT_I > 1 && NEXT_I <= 24) { - // // TODO: 动态重置布局 - // // if (WIDTH < 1400 && i > 7 && NEXT_I > 1 && NEXT_I <= 24) { - // // DOM.classList.add(NEXT_CLASS); - // // DOM.classList.remove(THIS_CLASS); - // // } - // } - // } - // }); - // } - }, - beforeDestroy() {}, - methods: { - jumper(ARG_ROUTER, GO_BY_NAME = false) { - console.log(...arguments); - const view = this.$route; - let page = this.pageName; - // 跳转到 route.name - GO_BY_NAME = GO_BY_NAME === true; - - if (typeof ARG_ROUTER == 'string') { - page = ARG_ROUTER; - } - if (ARG_ROUTER && typeof ARG_ROUTER.name == 'string') { - page = ARG_ROUTER.name; - } - if (!GO_BY_NAME) this.$router.go(-1); - this.$store.dispatch('tagsView/closeCurrentView', view).then(() => { - // 目标路由 pageName - // 1. 如果有被缓存,就调用 eventHub 的 刷新数据 - // 2. 如果没有被缓存,无需手动刷新。(防止多次API请求) - const hasCached = this.$store.state.tagsView.cachedViews.map(e => e.name).includes(page); - if (GO_BY_NAME) this.$router.push({ name: page }); // 【返回功能】 暂时使用router.go(-1),不指定返回到router.name - if (hasCached) { - setTimeout(() => { - this.$eventHub.$emit('refresh' + page, 1); - }, 500); - } - }); - }, - // 完成后,按routerName跳转 - complete(ARG_ROUTER) { - this.jumper(ARG_ROUTER, true); - }, - // 取消/返回 上一页 - cancel(ARG_ROUTER) { - this.jumper(ARG_ROUTER, false); - }, - // 弹窗确定后,再取消/返回 上一页 - tryCancel(ARG_ROUTER, title = '当前页面数据未保存,是否放弃?') { - this.$confirm(title, '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - this.cancel(ARG_ROUTER); - }) - .catch(() => { - this.$message({ - type: 'info', - message: '已取消', - }); - }); - }, - }, -}; diff --git a/front-end/src/vendor/Export2Excel.js b/front-end/src/vendor/Export2Excel.js deleted file mode 100644 index d8a2af3..0000000 --- a/front-end/src/vendor/Export2Excel.js +++ /dev/null @@ -1,220 +0,0 @@ -/* 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/front-end/src/vendor/Export2Zip.js b/front-end/src/vendor/Export2Zip.js deleted file mode 100644 index db70707..0000000 --- a/front-end/src/vendor/Export2Zip.js +++ /dev/null @@ -1,24 +0,0 @@ -/* 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/front-end/src/views/center-business/after/components/BaseInfoDialog.vue b/front-end/src/views/center-business/after/components/BaseInfoDialog.vue deleted file mode 100644 index c14c55f..0000000 --- a/front-end/src/views/center-business/after/components/BaseInfoDialog.vue +++ /dev/null @@ -1,133 +0,0 @@ - - - - - diff --git a/front-end/src/views/center-business/after/components/InternalOrderList.vue b/front-end/src/views/center-business/after/components/InternalOrderList.vue deleted file mode 100644 index f4f0ef9..0000000 --- a/front-end/src/views/center-business/after/components/InternalOrderList.vue +++ /dev/null @@ -1,181 +0,0 @@ - -