commit 7f5496b0827bd34915c70418d47ab27bbd89ec26 Author: yangxing Date: Thu Jul 17 09:09:57 2025 +0800 250717提交 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..37d741b --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/admin/dist +/admin/package-lock.json +/netcore/src/JT.ShangHui.Web.Entry/wwwroot/uploadfile +/admin/*.lock +/jt_shanghui表结构信息.chw diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f7f885 --- /dev/null +++ b/README.md @@ -0,0 +1,262 @@ +### 巨天商会系统 + +- 使用EFCORE+Furion+NET7 +- 依赖:redis、rabbitmq + +### 数据库 + +- sql server +- 数据库地址:123.60.2.99 +- 数据库端口号:4331 + +### 服务器 + +- 系统: windows server +- IP:123.60.2.99 +- 远程桌面端口:58339 + +### 域名 + +- 接口平台: +- 管理后台(vue静态文件): + +### 目录结构 + + ├── admin 管理后台 + │   ├── config 插件配置文件 + │   ├── docker docker配置参考文件 + │   │   └── nginx + │   │   └── vhost + │   ├── public 静态资源 + │   │   └── loading + │   │   └── option2 + │   ├── src 源码 + │   │   ├── api api接口 + │   │   │   └── modular + │   │   │   ├── main 业务接口 + │   │   │   └── system 系统接口 + │   │   ├── assets 静态资源 + │   │   │   ├── icons + │   │   │   └── template + │   │   ├── components 自定义组件 + │   │   │   ├── ArticleListContent + │   │   │   ├── AvatarList + │   │   │   ├── Charts + │   │   │   ├── CountDown + │   │   │   ├── DepartmentSelect + │   │   │   ├── DescriptionList + │   │   │   ├── Editor + │   │   │   ├── Ellipsis + │   │   │   ├── Exception + │   │   │   ├── FooterToolbar + │   │   │   ├── GlobalFooter + │   │   │   ├── GlobalHeader + │   │   │   ├── IconSelector + │   │   │   ├── Menu + │   │   │   ├── MultiTab + │   │   │   ├── NProgress + │   │   │   ├── NoticeIcon + │   │   │   ├── NumberInfo + │   │   │   ├── PageHeader + │   │   │   ├── PageLoading + │   │   │   ├── Result + │   │   │   ├── Search + │   │   │   ├── SettingDrawer + │   │   │   ├── StandardFormRow + │   │   │   ├── Table + │   │   │   ├── TagSelect + │   │   │   ├── TextArea + │   │   │   ├── Tree + │   │   │   ├── Trend + │   │   │   ├── UserSelect + │   │   │   ├── _util + │   │   │   ├── tools + │   │   │   ├── verifition + │   │   │   │   ├── Verify + │   │   │   │   └── utils + │   │   │   └── xnComponents + │   │   ├── config 默认样式和路由配置 + │   │   ├── core 插件 + │   │   │   ├── directives + │   │   │   └── lazy_lib + │   │   ├── layouts 布局配置 + │   │   ├── mock 模拟数据 + │   │   │   └── services + │   │   ├── router 路由配置 + │   │   ├── store 状态管理 + │   │   │   └── modules + │   │   ├── utils 工具类 + │   │   │   └── helper + │   │   └── views 页面 + │   │   ├── components 组件 + │   │   ├── main 业务模块 + │   │   │   ├── banner 轮播图管理 + │   │   │   ├── business 入会申请 + │   │   │   ├── demand 需求管理 + │   │   │   ├── huodong 活动管理 + │   │   │   ├── industry 行业管理 + │   │   │   ├── info 资讯发布 + │   │   │   ├── navbar 导航管理 + │   │   │   ├── notice 公告发布 + │   │   │   ├── party 党建发布 + │   │   │   ├── platform 平台配置 + │   │   │   ├── product 商品管理 + │   │   │   ├── reguser 注册用户,未使用 + │   │   │   ├── supply 供货管理 + │   │   │   ├── vip VIP管理 + │   │   │   │   └── auth VIP权限管理 + │   │   │   └── wx 小程序管理 + │   │   ├── system 系统模块 + │   │   │   ├── account 账户管理 + │   │   │   │   ├── center 个人中心 + │   │   │   │   │   └── page + │   │   │   │   └── settings 个人配置 + │   │   │   │   └── securityItem + │   │   │   ├── app 应用管理 + │   │   │   ├── config 配置管理 + │   │   │   ├── dashboard 仪表盘 + │   │   │   ├── dict 字典管理 + │   │   │   │   └── dictdata 字典数据 + │   │   │   ├── email 邮件管理 + │   │   │   ├── exception 异常页 + │   │   │   ├── file 文件管理 + │   │   │   ├── index 首页 + │   │   │   ├── log 日志管理 + │   │   │   │   ├── exlog 异常日志 + │   │   │   │   ├── oplog 操作日志 + │   │   │   │   ├── thirdlog 第三方日志 + │   │   │   │   └── vislog 访问日志 + │   │   │   ├── machine 机器管理 + │   │   │   ├── menu 菜单管理 + │   │   │   ├── notice 通知管理 + │   │   │   ├── noticeReceived 通知接收管理 + │   │   │   ├── org 组织管理 + │   │   │   ├── pos 职位管理 + │   │   │   ├── role 角色管理 + │   │   │   └── user 用户管理 + │   │   └── userLoginReg 用户注册登录 + │   └── tests 测试单元 + │   └── unit + └── netcore .NET7项目 + └── src 源代码 + ├── JT.ShangHui.Application 业务模块 + │   ├── Filter 拦截器 + │   ├── JobService 定时任务 + │   ├── Mapper DTO映射 + │   └── Service 服务接口 + │   ├── BaseCommon 基础服务 + │   │   ├── Http http请求封装接口 + │   │   ├── QrCode 二维码封装接口 + │   │   ├── SMS 短信封装接口 + │   │   └── Upload 文件上传接口 + │   ├── Business 业务服务 + │   │   ├── Banner 轮播图管理 + │   │   ├── Campaign 活动管理 + │   │   ├── Demand 需求管理 + │   │   ├── Industry 行业管理 + │   │   ├── Information 资讯管理 + │   │   ├── NavBar 导航管理 + │   │   ├── Notice 公告管理 + │   │   ├── PSet 平台设置 + │   │   ├── PartyBuilder 党建管理 + │   │   ├── Product 商品管理 + │   │   ├── Retailer 分销商管理,未使用 + │   │   ├── Supply 供货管理 + │   │   ├── VIP VIP管理 + │   │   └── WX 小程序管理 + │   ├── System 系统接口服务 + │   │   ├── App 应用管理 + │   │   ├── Auth 登录相关管理 + │   │   ├── Base 通用方法 + │   │   ├── Cache 缓存管理 + │   │   ├── Captcha 验证码管理 + │   │   │   ├── ClickWord + │   │   │   └── General + │   │   ├── Config 配置管理 + │   │   ├── Dict 字典管理 + │   │   ├── Emp 员工管理 + │   │   ├── Enum 枚举管理 + │   │   ├── File 文件管理 + │   │   ├── Forms 表单管理 + │   │   ├── Hubs 聊天管理 + │   │   ├── Log 日志管理 + │   │   ├── Menu 菜单管理 + │   │   ├── Message 消息管理 + │   │   ├── Monitor 监控管理 + │   │   ├── Notice 通知管理 + │   │   ├── OnlineUser 在线用户管理 + │   │   ├── Org 组织管理 + │   │   ├── Pos 职位管理 + │   │   ├── Role 角色管理 + │   │   ├── StepBody 步骤管理 + │   │   ├── System 系统管理 + │   │   ├── Timer 定时任务管理 + │   │   └── User 用户管理 + │   ├── Test 测试单元 + │   └── ThirdApp 小程序端接口 + │   ├── Info 资讯管理 + │   ├── Product 商品管理 + │   ├── Search 搜索管理 + │   ├── User 会员管理 + │   └── WxOpen 小程序接口 + ├── JT.ShangHui.Core 框架核心,引用Nuget包 + │   ├── Filter 拦截器 + │   └── Util 辅助类 + ├── JT.ShangHui.Database.Migrations 数据库迁移 + │   └── Migrations 迁移文件 + ├── JT.ShangHui.Domain 领域模型 + │   ├── Entity 数据库实体 + │   │   ├── Business 业务层实体 + │   │   ├── SeedData 种子数据 + │   │   └── System 系统层实体 + │   │   └── WorkflowEntity + │   ├── ErrCode 错误码 + │   └── Options 选项配置 + ├── JT.ShangHui.Domain.Shared 常用枚举和常量定义 + │   ├── Const 常量定义 + │   └── Enum 枚举定义 + ├── JT.ShangHui.EntityFramework.Core EntityFrameworkCore管理 + │   ├── DbContexts 数据库配置 + │   ├── Extensions 数据库扩展 + │   └── Repository 仓储 + ├── JT.ShangHui.EventBus 事件总线 + │   └── Service 订阅者 + │   ├── Logger 日志订阅 + │   ├── Search 搜索订阅 + │   └── User 用户订阅 + ├── JT.ShangHui.HealthCheck 健康检查 + │   └── Extensions 扩展 + ├── JT.ShangHui.Web.Entry web层 + │   ├── Controllers 控制器 + │   ├── Handlers 中间件 + │   ├── Views 视图 + │   │   ├── Auth 公众号授权相关 + │   │   ├── Home 首页 + │   │   └── Shared 共享页面 + │   └── wwwroot 静态资源 + │   ├── css + │   ├── image + │   │   └── navbar + │   ├── js + │   └── lib + │   ├── bootstrap + │   │   └── dist + │   │   ├── css + │   │   └── js + │   ├── jquery + │   │   └── dist + │   └── layui + │   ├── css + │   │   └── modules + │   │   ├── laydate + │   │   │   └── default + │   │   └── layer + │   │   └── default + │   ├── font + │   ├── images + │   │   └── face + │   └── lay + │   └── modules + └── JT.ShangHui.WeiXin 微信小程序 + └── Service 微信小程序服务 + └── MP 微信小程序服务 diff --git a/admin/.browserslistrc b/admin/.browserslistrc new file mode 100644 index 0000000..8f96043 --- /dev/null +++ b/admin/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +last 2 versions +not ie <= 10 diff --git a/admin/.editorconfig b/admin/.editorconfig new file mode 100644 index 0000000..6f77dff --- /dev/null +++ b/admin/.editorconfig @@ -0,0 +1,39 @@ +[*] +charset=utf-8 +end_of_line=lf +insert_final_newline=false +indent_style=space +indent_size=2 + +[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}] +indent_style=space +indent_size=2 + +[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}] +indent_style=space +indent_size=2 + +[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}] +indent_style=space +indent_size=2 + +[*.svg] +indent_style=space +indent_size=2 + +[*.js.map] +indent_style=space +indent_size=2 + +[*.less] +indent_style=space +indent_size=2 + +[*.vue] +indent_style=space +indent_size=2 + +[{.analysis_options,*.yml,*.yaml}] +indent_style=space +indent_size=2 + diff --git a/admin/.env b/admin/.env new file mode 100644 index 0000000..0f83ee2 --- /dev/null +++ b/admin/.env @@ -0,0 +1,4 @@ +NODE_ENV=production +VUE_APP_PREVIEW=false +VUE_APP_API_BASE_URL=https://izzt.jt-sky.com +VUE_APP_SOCKET_BASE_URL=ws://izzt.jt-sky.com \ No newline at end of file diff --git a/admin/.env.development b/admin/.env.development new file mode 100644 index 0000000..2e0f43f --- /dev/null +++ b/admin/.env.development @@ -0,0 +1,4 @@ +NODE_ENV=development +VUE_APP_PREVIEW=true +VUE_APP_API_BASE_URL=https://localhost:44373 +VUE_APP_SOCKET_BASE_URL=ws://localhost:44373 \ No newline at end of file diff --git a/admin/.env.preview b/admin/.env.preview new file mode 100644 index 0000000..bd7cdeb --- /dev/null +++ b/admin/.env.preview @@ -0,0 +1,4 @@ +NODE_ENV=production +VUE_APP_PREVIEW=false +VUE_APP_API_BASE_URL=http://izzt.jt-sky.com +VUE_APP_SOCKET_BASE_URL=ws://izzt.jt-sky.com \ No newline at end of file diff --git a/admin/.eslintrc.js b/admin/.eslintrc.js new file mode 100644 index 0000000..e4f4dae --- /dev/null +++ b/admin/.eslintrc.js @@ -0,0 +1,77 @@ +module.exports = { + root: true, + env: { + node: true + }, + 'extends': [ + 'plugin:vue/strongly-recommended', + '@vue/standard' + ], + rules: { + 'no-console': 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'generator-star-spacing': 'off', + 'no-mixed-operators': 0, + 'vue/max-attributes-per-line': [ + 2, + { + 'singleline': 5, + 'multiline': { + 'max': 1, + 'allowFirstLine': false + } + } + ], + 'vue/attribute-hyphenation': 0, + 'vue/html-self-closing': 0, + 'vue/component-name-in-template-casing': 0, + 'vue/html-closing-bracket-spacing': 0, + 'vue/singleline-html-element-content-newline': 0, + 'vue/no-unused-components': 0, + 'vue/multiline-html-element-content-newline': 0, + 'vue/no-use-v-if-with-v-for': 0, + 'vue/html-closing-bracket-newline': 0, + 'vue/no-parsing-error': 0, + 'no-tabs': 0, + 'quotes': [ + 2, + 'single', + { + 'avoidEscape': true, + 'allowTemplateLiterals': true + } + ], + 'semi': [ + 2, + 'never', + { + 'beforeStatementContinuationChars': 'never' + } + ], + 'no-delete-var': 2, + 'prefer-const': [ + 2, + { + 'ignoreReadBeforeAssign': false + } + ], + 'template-curly-spacing': 'off', + 'indent': 'off', + "space-before-function-paren": 0, + 'no-multi-spaces': 2, //不能用多余的空格 + }, + parserOptions: { + parser: 'babel-eslint' + }, + overrides: [ + { + files: [ + '**/__tests__/*.{j,t}s?(x)', + '**/tests/unit/**/*.spec.{j,t}s?(x)' + ], + env: { + jest: true + } + } + ] +} diff --git a/admin/.gitignore b/admin/.gitignore new file mode 100644 index 0000000..d35bbf7 --- /dev/null +++ b/admin/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.idea/ \ No newline at end of file diff --git a/admin/.prettierrc b/admin/.prettierrc new file mode 100644 index 0000000..cbe842a --- /dev/null +++ b/admin/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 120, + "semi": false, + "singleQuote": true +} diff --git a/admin/.travis.yml b/admin/.travis.yml new file mode 100644 index 0000000..a08bfcb --- /dev/null +++ b/admin/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +node_js: + - 10.15.0 +cache: yarn +script: + - yarn + - yarn run lint --no-fix && yarn run build diff --git a/admin/Dockerfile b/admin/Dockerfile new file mode 100644 index 0000000..0850a2f --- /dev/null +++ b/admin/Dockerfile @@ -0,0 +1,7 @@ +FROM nginx + +COPY ./dist /usr/share/nginx/html +# 更新配置 +COPY ./docker/nginx/vhost/default.conf /etc/nginx/conf.d +# 暴露端口 +EXPOSE 80 \ No newline at end of file diff --git a/admin/LICENSE b/admin/LICENSE new file mode 100644 index 0000000..66eef0b --- /dev/null +++ b/admin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Anan Yang + +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. \ No newline at end of file diff --git a/admin/babel.config.js b/admin/babel.config.js new file mode 100644 index 0000000..b6c4717 --- /dev/null +++ b/admin/babel.config.js @@ -0,0 +1,28 @@ +const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV) + +const plugins = [] +if (IS_PROD) { + plugins.push('transform-remove-console') +} + +// lazy load ant-design-vue +// if your use import on Demand, Use this code +plugins.push(['import', { + 'libraryName': 'ant-design-vue', + 'libraryDirectory': 'es', + 'style': true // `style: true` 会加载 less 文件 +}]) + +module.exports = { + presets: [ + [ + '@babel/preset-env', + { + 'useBuiltIns': 'entry', + 'corejs': 3 + } + ], + '@vue/cli-plugin-babel/preset' + ], + plugins +} diff --git a/admin/build.sh b/admin/build.sh new file mode 100644 index 0000000..a12a631 --- /dev/null +++ b/admin/build.sh @@ -0,0 +1,7 @@ +#! /bin/bash +## author:liuzl +cp ./docker/nginx/vhost/hccz.conf /var/jenkins_home/nginx/conf +#docker stop hccz +#docker rm hccz +docker build -t hccz:v1 . +docker run -d -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8085:80 --restart=unless-stopped --net=mynet --name=hccz hccz:v1 \ No newline at end of file diff --git a/admin/config/plugin.config.js b/admin/config/plugin.config.js new file mode 100644 index 0000000..af8159a --- /dev/null +++ b/admin/config/plugin.config.js @@ -0,0 +1,46 @@ +const ThemeColorReplacer = require('webpack-theme-color-replacer') +const generate = require('@ant-design/colors/lib/generate').default + +const getAntdSerials = (color) => { + // 淡化(即less的tint) + const lightens = new Array(9).fill().map((t, i) => { + return ThemeColorReplacer.varyColor.lighten(color, i / 10) + }) + const colorPalettes = generate(color) + const rgb = ThemeColorReplacer.varyColor.toNum3(color.replace('#', '')).join(',') + return lightens.concat(colorPalettes).concat(rgb) +} + +const themePluginOption = { + fileName: 'css/theme-colors-[contenthash:8].css', + matchColors: getAntdSerials('#FA541C'), // 主色系列 + // 改变样式选择器,解决样式覆盖问题 + changeSelector (selector) { + switch (selector) { + case '.ant-calendar-today .ant-calendar-date': + return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector + case '.ant-btn:focus,.ant-btn:hover': + return '.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger)' + case '.ant-btn.active,.ant-btn:active': + return '.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger)' + case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': + case '.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon': + return ':not(.ant-steps-item-process)' + selector + case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': + case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover': + return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover' + case '.ant-menu-horizontal > .ant-menu-item-selected > a': + case '.ant-menu-horizontal>.ant-menu-item-selected>a': + return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a' + case '.ant-menu-horizontal > .ant-menu-item > a:hover': + case '.ant-menu-horizontal>.ant-menu-item>a:hover': + return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover' + default : + return selector + } + } +} + +const createThemeColorReplacerPlugin = () => new ThemeColorReplacer(themePluginOption) + +module.exports = createThemeColorReplacerPlugin diff --git a/admin/deploy.config.js b/admin/deploy.config.js new file mode 100644 index 0000000..29eb1f2 --- /dev/null +++ b/admin/deploy.config.js @@ -0,0 +1,18 @@ +module.exports = { + projectName: 'jutian_admin', + readyTimeout: 20000, + cluster: [], + prod: { + name: '正式环境', + script: 'npm run build', + host: '123.60.2.99', + port: 22, + username: 'liuzhaoliang', + password: 'liuzhaoliang', + distPath: 'dist', + webDir: '/zzt.jt-sky.com', + bakDir: '', + isRemoveRemoteFile: false, + isRemoveLocalFile: false + } +} diff --git a/admin/docker/docker-compose.yml b/admin/docker/docker-compose.yml new file mode 100644 index 0000000..1136a87 --- /dev/null +++ b/admin/docker/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.4' + +services: + nginx: + build: + context: ../ + dockerfile: ./docker/nginx/Dockerfile + image: admin_net_web:1.2 + ports: + - 81:80 + restart: "always" + volumes: + - node_modules:/build/node_modules:rw + # network_mode: host #宿主网络,与宿主机共享网络,安全性不佳,本地开发使用,淦,不支持windows,仅支持Linux +volumes: + node_modules: \ No newline at end of file diff --git a/admin/docker/iis部署说明.txt b/admin/docker/iis部署说明.txt new file mode 100644 index 0000000..b960e41 --- /dev/null +++ b/admin/docker/iis部署说明.txt @@ -0,0 +1,6 @@ +1、安装URL重写模块,https://www.iis.net/downloads/microsoft/url-rewrite +2、安装ARR模块,https://www.iis.net/downloads/microsoft/application-request-routing +3、打开ARR,启动代理 +4、点击URL重写 +5、增加服务器变量:HTTP_X_ORIGINAL_HOST +6、把web.config内容修改为自己的接口地址,然后放到主目录下 \ No newline at end of file diff --git a/admin/docker/nginx/Dockerfile b/admin/docker/nginx/Dockerfile new file mode 100644 index 0000000..133dc51 --- /dev/null +++ b/admin/docker/nginx/Dockerfile @@ -0,0 +1,6 @@ +FROM nginx +EXPOSE 80 +EXPOSE 443 +COPY ./dist /usr/share/nginx/html +# 更新配置 +COPY ./docker/nginx/vhost/default.conf /etc/nginx/conf.d \ No newline at end of file diff --git a/admin/docker/nginx/nginx.conf b/admin/docker/nginx/nginx.conf new file mode 100644 index 0000000..5f2842e --- /dev/null +++ b/admin/docker/nginx/nginx.conf @@ -0,0 +1,21 @@ +user nginx; +worker_processes 1; +pid /var/run/nginx.pid; +error_log /var/log/nginx/nginx.error.log warn; +events { + worker_connections 1024; +} +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /dev/null; + #access_log /var/log/nginx/nginx.access.log main; + sendfile on; + #tcp_nopush on; + keepalive_timeout 65; + #gzip on; + include /etc/nginx/conf.d/*.conf; +} \ No newline at end of file diff --git a/admin/docker/nginx/readme.md b/admin/docker/nginx/readme.md new file mode 100644 index 0000000..39c1f95 --- /dev/null +++ b/admin/docker/nginx/readme.md @@ -0,0 +1,5 @@ +### 说明 + +把此目录下的文件放到dist下的主目录中 + +nginx.conf 适用于直接发布到主机nginx中 diff --git a/admin/docker/nginx/vhost/default.conf b/admin/docker/nginx/vhost/default.conf new file mode 100644 index 0000000..335eb72 --- /dev/null +++ b/admin/docker/nginx/vhost/default.conf @@ -0,0 +1,37 @@ +# 此配置针对docker中的nginx +server { + listen 80; + server_name hccz.pcxbc.com; + root /usr/share/nginx/html; + index index.php index.html index.htm; + access_log /dev/null; + error_log /var/log/nginx/default.error.log warn; + + # redirect server error pages to the static page /50x.html + # + #error_page 500 502 503 504 /50x.html; + + location / { + root /usr/share/nginx/html; + add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; + try_files $uri $uri/ /index.html; + } + + + location /api { + #如果服务器要获取客户端真实IP,可以用下三句设置主机头和客户端真实地址 + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + # rewrite ^/api/(.*)$ /$1 break; #重写 + proxy_pass http://hcczapi; #ybdevicev2是docker中的服务名称,这里不能直接放域名,要么是docker名称,要么是ip+端口的形式 + } + location /hubs/ { + proxy_pass http://hcczapi; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + #proxy_read_timeout 600s;#设置websocket超时时间 + } +} \ No newline at end of file diff --git a/admin/docker/nginx/vhost/hccz.conf b/admin/docker/nginx/vhost/hccz.conf new file mode 100644 index 0000000..c14eff3 --- /dev/null +++ b/admin/docker/nginx/vhost/hccz.conf @@ -0,0 +1,22 @@ +# 此配置针对本地nginx +server { + listen 80; + server_name hccz.pcxbc.com; + index index.php index.html index.htm; + access_log /dev/null; + error_log /www/wwwlogs/hccz.error.log warn; + + # redirect server error pages to the static page /50x.html + # + #error_page 500 502 503 504 /50x.html; + + location / { + #如果服务器要获取客户端真实IP,可以用下三句设置主机头和客户端真实地址 + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + # rewrite ^/api/(.*)$ /$1 break; #重写 + proxy_pass http://localhost:8085; + } +} \ No newline at end of file diff --git a/admin/docker/nginx/vhost/hf-dev.conf b/admin/docker/nginx/vhost/hf-dev.conf new file mode 100644 index 0000000..c19faa0 --- /dev/null +++ b/admin/docker/nginx/vhost/hf-dev.conf @@ -0,0 +1,45 @@ +server { + listen 80; + server_name huafei-dev.pcxbc.com; + root /opt/jenkens/nginx/html/hc/hf/development/web; + index index.php index.html index.htm; + access_log /dev/null; + error_log /www/wwwlogs/huafei-dev.error.log warn; + + # redirect server error pages to the static page /50x.html + # + #error_page 500 502 503 504 /50x.html; + + location / { + root /opt/jenkens/nginx/html/hc/hf/development/web; + add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; + try_files $uri $uri/ /index.html; + } + + + location /api/ { + #如果服务器要获取客户端真实IP,可以用下三句设置主机头和客户端真实地址 + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + # rewrite ^/api/(.*)$ /$1 break; #重写 + proxy_pass http://192.168.1.147:9001; #ybdevicev2是docker中的服务名称,这里不能直接放域名,要么是docker名称,要么是ip+端口的形式 + } + location /bapi/ { + #如果服务器要获取客户端真实IP,可以用下三句设置主机头和客户端真实地址 + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + # rewrite ^/api/(.*)$ /$1 break; #重写 + proxy_pass http://192.168.1.147:9001; #ybdevicev2是docker中的服务名称,这里不能直接放域名,要么是docker名称,要么是ip+端口的形式 + } + location /hubs/ { + proxy_pass http://192.168.1.147:9001; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + #proxy_read_timeout 600s;#设置websocket超时时间 + } +} \ No newline at end of file diff --git a/admin/docker/web.config b/admin/docker/web.config new file mode 100644 index 0000000..6da8680 --- /dev/null +++ b/admin/docker/web.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/admin/jest.config.js b/admin/jest.config.js new file mode 100644 index 0000000..29fee32 --- /dev/null +++ b/admin/jest.config.js @@ -0,0 +1,23 @@ +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)' + ], + testURL: 'http://localhost/' +} diff --git a/admin/jsconfig.json b/admin/jsconfig.json new file mode 100644 index 0000000..1bd0da4 --- /dev/null +++ b/admin/jsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6", + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": ["node_modules", "dist"], + "include": ["src/**/*"] +} diff --git a/admin/package.json b/admin/package.json new file mode 100644 index 0000000..8aa7727 --- /dev/null +++ b/admin/package.json @@ -0,0 +1,102 @@ +{ + "name": "vue-antd-pro", + "version": "3.0.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "deploy": "deploy-cli-service d --mode prod", + "test:unit": "vue-cli-service test:unit", + "build:preview": "vue-cli-service build --mode preview", + "postinstall": "opencollective-postinstall" + }, + "dependencies": { + "-": "^0.0.1", + "@antv/data-set": "^0.11.8", + "@antv/g2": "^4.2.2", + "@jiaminghi/data-view": "^2.10.0", + "@microsoft/signalr": "^5.0.5", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^1.0.2", + "ant-design-vue": "1.7.4", + "axios": "^0.19.0", + "babel-polyfill": "^6.26.0", + "clipboard": "^2.0.6", + "compression-webpack-plugin": "5.0.1", + "core-js": "^3.1.2", + "crypto-js": "^4.0.0", + "default-passive-events": "^1.0.10", + "deploy-cli-service": "^1.4.0", + "enquire.js": "^2.1.6", + "font-awesome": "^4.7.0", + "jquery": "^3.5.1", + "jsbarcode": "^3.11.3", + "k-form-design": "^3.7.3", + "leaflet": "^1.7.1", + "leaflet.pm": "^2.2.0", + "linq": "^3.2.3", + "lodash.clonedeep": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.pick": "^4.4.0", + "md5": "^2.2.1", + "mockjs2": "1.0.8", + "moment": "^2.24.0", + "nprogress": "^0.2.0", + "print-js": "^1.0.63", + "qrcodejs2": "^0.0.2", + "raphael": "^2.3.0", + "screenfull": "^5.1.0", + "vue": "^2.6.10", + "vue-clipboard2": "^0.2.1", + "vue-codemirror-lite": "^1.0.4", + "vue-cropper": "0.4.9", + "vue-json-viewer": "2", + "vue-ls": "^3.2.1", + "vue-quill-editor": "^3.0.6", + "vue-router": "^3.1.2", + "vue-svg-component-runtime": "^1.0.1", + "vue2-leaflet": "^2.7.0", + "vuedraggable": "^2.23.2", + "vuex": "^3.1.1", + "wangeditor": "^3.1.1" + }, + "devDependencies": { + "@ant-design/colors": "^3.2.1", + "@vue/cli-plugin-babel": "^4.0.4", + "@vue/cli-plugin-eslint": "^4.0.4", + "@vue/cli-plugin-router": "^4.0.4", + "@vue/cli-plugin-unit-jest": "^4.0.4", + "@vue/cli-plugin-vuex": "^4.0.4", + "@vue/cli-service": "^4.0.4", + "@vue/eslint-config-prettier": "^5.0.0", + "@vue/eslint-config-standard": "^4.0.0", + "@vue/test-utils": "^1.0.0-beta.29", + "babel-eslint": "^10.0.1", + "babel-plugin-import": "^1.13.0", + "babel-plugin-transform-remove-console": "^6.9.4", + "eslint": "^6.8.0", + "eslint-plugin-html": "^5.0.0", + "eslint-plugin-prettier": "^3.1.0", + "eslint-plugin-vue": "^5.2.3", + "less": "^3.0.4", + "less-loader": "^5.0.0", + "opencollective": "^1.0.3", + "opencollective-postinstall": "^2.0.2", + "prettier": "^1.18.2", + "vue-svg-icon-loader": "^2.1.1", + "vue-template-compiler": "^2.6.10", + "webpack-theme-color-replacer": "1.3.18" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design-pro-vue" + }, + "main": ".eslintrc.js", + "directories": { + "test": "tests" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "" +} diff --git a/admin/postcss.config.js b/admin/postcss.config.js new file mode 100644 index 0000000..961986e --- /dev/null +++ b/admin/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/admin/public/avatar2.jpg b/admin/public/avatar2.jpg new file mode 100644 index 0000000..9adb2d1 Binary files /dev/null and b/admin/public/avatar2.jpg differ diff --git a/admin/public/favicon.ico b/admin/public/favicon.ico new file mode 100644 index 0000000..2ad1946 Binary files /dev/null and b/admin/public/favicon.ico differ diff --git a/admin/public/index.html b/admin/public/index.html new file mode 100644 index 0000000..997652c --- /dev/null +++ b/admin/public/index.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + 管理平台 + + + <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %> + + <% } %> + + + +
+
+ +
+ +
+
+
+
+ +<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %> + +<% } %> + + + diff --git a/admin/public/loading/loading.css b/admin/public/loading/loading.css new file mode 100644 index 0000000..a899eac --- /dev/null +++ b/admin/public/loading/loading.css @@ -0,0 +1 @@ +#preloadingAnimation{position:fixed;left:0;top:0;height:100%;width:100%;background:#ffffff;user-select:none;z-index: 9999;overflow: hidden}.lds-roller{display:inline-block;position:relative;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;}.lds-roller div{animation:lds-roller 1.2s cubic-bezier(0.5,0,0.5,1) infinite;transform-origin:32px 32px;}.lds-roller div:after{content:" ";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#13c2c2;margin:-3px 0 0 -3px;}.lds-roller div:nth-child(1){animation-delay:-0.036s;}.lds-roller div:nth-child(1):after{top:50px;left:50px;}.lds-roller div:nth-child(2){animation-delay:-0.072s;}.lds-roller div:nth-child(2):after{top:54px;left:45px;}.lds-roller div:nth-child(3){animation-delay:-0.108s;}.lds-roller div:nth-child(3):after{top:57px;left:39px;}.lds-roller div:nth-child(4){animation-delay:-0.144s;}.lds-roller div:nth-child(4):after{top:58px;left:32px;}.lds-roller div:nth-child(5){animation-delay:-0.18s;}.lds-roller div:nth-child(5):after{top:57px;left:25px;}.lds-roller div:nth-child(6){animation-delay:-0.216s;}.lds-roller div:nth-child(6):after{top:54px;left:19px;}.lds-roller div:nth-child(7){animation-delay:-0.252s;}.lds-roller div:nth-child(7):after{top:50px;left:14px;}.lds-roller div:nth-child(8){animation-delay:-0.288s;}.lds-roller div:nth-child(8):after{top:45px;left:10px;}#preloadingAnimation .load-tips{color: #13c2c2;font-size:2rem;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:80px;text-align:center;width:400px;height:64px;} @keyframes lds-roller{0%{transform:rotate(0deg);} 100%{transform:rotate(360deg);}} \ No newline at end of file diff --git a/admin/public/loading/loading.html b/admin/public/loading/loading.html new file mode 100644 index 0000000..018c402 --- /dev/null +++ b/admin/public/loading/loading.html @@ -0,0 +1 @@ +
Loading
diff --git a/admin/public/loading/option2/html_code_segment.html b/admin/public/loading/option2/html_code_segment.html new file mode 100644 index 0000000..5c85af3 --- /dev/null +++ b/admin/public/loading/option2/html_code_segment.html @@ -0,0 +1,5 @@ +
+
+ +
+
diff --git a/admin/public/loading/option2/loading.css b/admin/public/loading/option2/loading.css new file mode 100644 index 0000000..c35cd73 --- /dev/null +++ b/admin/public/loading/option2/loading.css @@ -0,0 +1 @@ +.preloading-animate{background:#ffffff;width:100%;height:100%;position:fixed;left:0;top:0;z-index:299;}.preloading-animate .preloading-wrapper{position:absolute;width:5rem;height:5rem;left:50%;top:50%;transform:translate(-50%,-50%);}.preloading-animate .preloading-wrapper .preloading-balls{font-size:5rem;} \ No newline at end of file diff --git a/admin/public/loading/option2/loading.svg b/admin/public/loading/option2/loading.svg new file mode 100644 index 0000000..7ff7322 --- /dev/null +++ b/admin/public/loading/option2/loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/App.vue b/admin/src/App.vue new file mode 100644 index 0000000..3a611db --- /dev/null +++ b/admin/src/App.vue @@ -0,0 +1,47 @@ + + + + diff --git a/admin/src/api/modular/main/banner.js b/admin/src/api/modular/main/banner.js new file mode 100644 index 0000000..b17fc6d --- /dev/null +++ b/admin/src/api/modular/main/banner.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/banner/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/banner/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/banner/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/banner/Delete', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/business.js b/admin/src/api/modular/main/business.js new file mode 100644 index 0000000..2f84f9a --- /dev/null +++ b/admin/src/api/modular/main/business.js @@ -0,0 +1,26 @@ +// 客户管理接口定义 +import { axios } from '@/utils/request' +// 分销商列表 +export function BusinessList(parameter) { + return axios({ + url: '/business/account/list', + method: 'post', + data: parameter + }) + } + // 所有分销商列表 + export function BusinessAllList(parameter) { + return axios({ + url: '/business/account/alllist', + method: 'post', + data: parameter + }) + } + // 分销商提交 +export function BusinessSubmit(parameter) { + return axios({ + url: '/business/account/submit', + method: 'post', + data: parameter + }) + } diff --git a/admin/src/api/modular/main/demand.js b/admin/src/api/modular/main/demand.js new file mode 100644 index 0000000..08097dd --- /dev/null +++ b/admin/src/api/modular/main/demand.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/demand/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/demand/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/huodong.js b/admin/src/api/modular/main/huodong.js new file mode 100644 index 0000000..4a00dea --- /dev/null +++ b/admin/src/api/modular/main/huodong.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/Campaign/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/Campaign/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/Campaign/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/Campaign/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/industry.js b/admin/src/api/modular/main/industry.js new file mode 100644 index 0000000..abcdec2 --- /dev/null +++ b/admin/src/api/modular/main/industry.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/industry/list', + method: 'post', + data: parameter + }) +} +// 获取列表 +export function AllList(parameter) { + return axios({ + url: '/business/industry/alllist', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/industry/delete', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/industry/submit', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/info.js b/admin/src/api/modular/main/info.js new file mode 100644 index 0000000..d5c66b5 --- /dev/null +++ b/admin/src/api/modular/main/info.js @@ -0,0 +1,41 @@ +import { axios } from '@/utils/request' +// 获取资讯列表 +export function List(parameter) { + return axios({ + url: '/business/info/list', + method: 'post', + data: parameter + }) +} +//获取公益信息列表 +export function GYList(parameter) { + return axios({ + url: '/business/info/gylist', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/info/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/info/submit', + method: 'post', + data: parameter + }) +} + // 提交 +export function GYSubmit(parameter) { + return axios({ + url: '/business/info/gysubmit', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/navbar.js b/admin/src/api/modular/main/navbar.js new file mode 100644 index 0000000..f9f5f24 --- /dev/null +++ b/admin/src/api/modular/main/navbar.js @@ -0,0 +1,25 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/navbar/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/navbar/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/navbar/submit', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/notice.js b/admin/src/api/modular/main/notice.js new file mode 100644 index 0000000..b2af21e --- /dev/null +++ b/admin/src/api/modular/main/notice.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/notice/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/notice/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/notice/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/notice/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/party.js b/admin/src/api/modular/main/party.js new file mode 100644 index 0000000..264a570 --- /dev/null +++ b/admin/src/api/modular/main/party.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/party/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/party/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/party/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/party/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/platform.js b/admin/src/api/modular/main/platform.js new file mode 100644 index 0000000..2acefa6 --- /dev/null +++ b/admin/src/api/modular/main/platform.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 平台配置详情 +export function Detail(parameter) { + return axios({ + url: '/platform/detail', + method: 'post', + data: parameter + }) +} +// 平台配置信息提交 +export function Submit(parameter) { + return axios({ + url: '/platform/submit', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/product.js b/admin/src/api/modular/main/product.js new file mode 100644 index 0000000..6fb7096 --- /dev/null +++ b/admin/src/api/modular/main/product.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/product/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/product/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/reguser.js b/admin/src/api/modular/main/reguser.js new file mode 100644 index 0000000..15c1c36 --- /dev/null +++ b/admin/src/api/modular/main/reguser.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 查询注册用户列表 +export function RegUserList (parameter) { + return axios({ + url: '/reguser/list', + method: 'post', + data: parameter + }) +} +// 修改昵称 +export function ModifyName (parameter) { + return axios({ + url: '/reguser/editname', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/supply b/admin/src/api/modular/main/supply new file mode 100644 index 0000000..c0c8d6d --- /dev/null +++ b/admin/src/api/modular/main/supply @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/supply/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/supply/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/systeminfo.js b/admin/src/api/modular/main/systeminfo.js new file mode 100644 index 0000000..dfbfa24 --- /dev/null +++ b/admin/src/api/modular/main/systeminfo.js @@ -0,0 +1,26 @@ +import { axios } from '@/utils/request' + +/** + * 查询所有枚举类型 + * + * @author liuzl + */ + export function GetClientData (parameter) { + return axios({ + url: '/sysenumdata/getclientdata', + method: 'get', + param: parameter + }) + } +/** + * 查询配置信息 + * + * @author liuzl + */ + export function GetConfigInfo (parameter) { + return axios({ + url: '/system/getconfiginfo', + method: 'post', + param: parameter + }) +} diff --git a/admin/src/api/modular/main/upload.js b/admin/src/api/modular/main/upload.js new file mode 100644 index 0000000..935377c --- /dev/null +++ b/admin/src/api/modular/main/upload.js @@ -0,0 +1,18 @@ +import { axios } from '@/utils/request' +// 图片上传 +export function UploadImg(parameter) { + return axios({ + url: '/common/uploadimg', + method: 'post', + data: parameter + }) +} + +// 视频上传 +export function UploadImgVideo(parameter) { + return axios({ + url: '/common/uploadvideo', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/vip.js b/admin/src/api/modular/main/vip.js new file mode 100644 index 0000000..1d05816 --- /dev/null +++ b/admin/src/api/modular/main/vip.js @@ -0,0 +1,57 @@ +import { axios } from '@/utils/request' +// vip列表 +export function List(parameter) { + return axios({ + url: '/business/vip/list', + method: 'post', + data: parameter + }) +} +// vip所有列表 +export function AllList(parameter) { + return axios({ + url: '/business/vip/alllist', + method: 'post', + data: parameter + }) +} +// vip提交 +export function Submit(parameter) { + return axios({ + url: '/business/vip/submit', + method: 'post', + data: parameter + }) +} +// vip权限列表 +export function AuthList(parameter) { + return axios({ + url: '/business/vip/auth/list', + method: 'post', + data: parameter + }) +} +// vip权限提交 +export function AuthSubmit(parameter) { + return axios({ + url: '/business/vip/auth/submit', + method: 'post', + data: parameter + }) +} +// vip权限状态变更 +export function AuthStatus(parameter) { + return axios({ + url: '/business/vip/auth/status', + method: 'post', + data: parameter + }) +} +// vip关联权限列表 +export function VipAuthList(parameter) { + return axios({ + url: '/business/vip/authlist', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/main/wx.js b/admin/src/api/modular/main/wx.js new file mode 100644 index 0000000..7d0c329 --- /dev/null +++ b/admin/src/api/modular/main/wx.js @@ -0,0 +1,25 @@ +import { axios } from '@/utils/request' +// 获取小程序列表 +export function List(parameter) { + return axios({ + url: '/business/wx/list', + method: 'post', + data: parameter + }) + } + // 获取所有小程序列表 +export function AllList(parameter) { + return axios({ + url: '/business/wx/alllist', + method: 'post', + data: parameter + }) +} +// 小程序信息提交 +export function Submit(parameter) { + return axios({ + url: '/business/wx/submit', + method: 'post', + data: parameter + }) + } diff --git a/admin/src/api/modular/system/appManage.js b/admin/src/api/modular/system/appManage.js new file mode 100644 index 0000000..870787e --- /dev/null +++ b/admin/src/api/modular/system/appManage.js @@ -0,0 +1,106 @@ +/** + * 系统应用 + * + * @author yubaoshan + * @date 2020年4月23日12:10:57 + */ +import { axios } from '@/utils/request' + +/** + * 系统应用列表 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function getAppPage (parameter) { + return axios({ + url: '/sysApp/page', + method: 'get', + params: parameter + }) +} + +/** + * 系统应用列表 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function getAppList (parameter) { + return axios({ + url: '/sysApp/list', + method: 'get', + params: parameter + }) +} + +/** + * 新增系统应用 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function sysAppAdd (parameter) { + return axios({ + url: '/sysApp/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统应用 + * + * @author yubaoshan + * @param parameter + * @returns {*} + */ +export function sysAppEdit (parameter) { + return axios({ + url: '/sysApp/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统应用 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function sysAppDelete (parameter) { + return axios({ + url: '/sysApp/delete', + method: 'post', + data: parameter + }) +} + +/** + * 设为默认应用 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function sysAppSetAsDefault (parameter) { + return axios({ + url: '/sysApp/setAsDefault', + method: 'post', + data: parameter + }) +} + +/** + * 修改应用状态 + * + * @author zuohuaijun + * @date 2021年1月1日 + */ +export function sysAppChangeStatus (parameter) { + return axios({ + url: '/sysApp/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/configManage.js b/admin/src/api/modular/system/configManage.js new file mode 100644 index 0000000..34bdd41 --- /dev/null +++ b/admin/src/api/modular/system/configManage.js @@ -0,0 +1,85 @@ +import { axios } from '@/utils/request' + +/** + * 分页查询配置列表 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigPage (parameter) { + return axios({ + url: '/sysConfig/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统参数配置 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigAdd (parameter) { + return axios({ + url: '/sysConfig/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统参数配置 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigEdit (parameter) { + return axios({ + url: '/sysConfig/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统参数配置 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigDelete (parameter) { + return axios({ + url: '/sysConfig/delete', + method: 'post', + data: parameter + }) +} + +/** + * 获取字典类型下所有字典,举例,返回格式为:[{code:"M",value:"男"},{code:"F",value:"女"}] + * + * @author yubaoshan + * @date 2020/5/25 02:06 + */ +export function sysDictTypeDropDown (parameter) { + return axios({ + url: '/sysDictType/dropDown', + method: 'get', + params: parameter + }) +} + +/** + * 获取系统的所有任务列表 + * + * @author yubaoshan + * @date 2020/7/8 20:46 + */ +export function sysTimersGetActionClasses (parameter) { + return axios({ + url: '/sysTimers/getActionClasses', + method: 'get', + params: parameter + }) +} diff --git a/admin/src/api/modular/system/dictDataManage.js b/admin/src/api/modular/system/dictDataManage.js new file mode 100644 index 0000000..7958dee --- /dev/null +++ b/admin/src/api/modular/system/dictDataManage.js @@ -0,0 +1,73 @@ +import { + axios +} from '@/utils/request' + +/** + * 查询系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:24 + */ +export function sysDictDataPage(parameter) { + return axios({ + url: '/sysDictData/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:24 + */ +export function sysDictDataAdd(parameter) { + return axios({ + url: '/sysDictData/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:25 + */ +export function sysDictDataEdit(parameter) { + return axios({ + url: '/sysDictData/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:25 + */ +export function sysDictDataDelete(parameter) { + return axios({ + url: '/sysDictData/delete', + method: 'post', + data: parameter + }) +} + +/** + * 修改系统字典状态 + * + * @author xusn + * @date 2021-04-30 11:00:16 + */ +export function sysDictDataChangeStatus(parameter) { + return axios({ + url: '/sysDictData/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/dictManage.js b/admin/src/api/modular/system/dictManage.js new file mode 100644 index 0000000..7569c5e --- /dev/null +++ b/admin/src/api/modular/system/dictManage.js @@ -0,0 +1,101 @@ +import { + axios +} from '@/utils/request' + +/** + * 分页查询系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:46 + */ +export function sysDictTypePage(parameter) { + return axios({ + url: '/sysDictType/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:46 + */ +export function sysDictTypeAdd(parameter) { + return axios({ + url: '/sysDictType/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:50 + */ +export function sysDictTypeEdit(parameter) { + return axios({ + url: '/sysDictType/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:50 + */ +export function sysDictTypeDelete(parameter) { + return axios({ + url: '/sysDictType/delete', + method: 'post', + data: parameter + }) +} + +/** + * 获取字典类型下所有字典,举例,返回格式为:[{code:"M",value:"男"},{code:"F",value:"女"}] + * + * @author yubaoshan + * @date 2020/6/10 00:10 + */ +export function sysDictTypeDropDown(parameter) { + return axios({ + url: '/sysDictType/dropDown', + method: 'get', + params: parameter + }) +} + +/** + * 获取所有字典,启动时加入缓存使用 + * + * @author yubaoshan + * @date 2020/6/10 00:10 + */ +export function sysDictTypeTree(parameter) { + return axios({ + url: '/sysDictType/tree', + method: 'get', + params: parameter + }) +} + +/** + * 修改系统字典状态 + * + * @author xusn + * @date 2021-04-30 11:00:16 + */ +export function sysDictTypeChangeStatus(parameter) { + return axios({ + url: '/sysDictType/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/emailManage.js b/admin/src/api/modular/system/emailManage.js new file mode 100644 index 0000000..1321bcc --- /dev/null +++ b/admin/src/api/modular/system/emailManage.js @@ -0,0 +1,29 @@ +import { axios } from '@/utils/request' + +/** + * 发送邮件 + * + * @author yubaoshan + * @date 2020/7/3 23:22 + */ +export function emailSendEmail (parameter) { + return axios({ + url: '/email/sendEmail', + method: 'post', + data: parameter + }) +} + +/** + * 发送html邮件 + * + * @author yubaoshan + * @date 2020/7/3 23:23 + */ +export function emailSendEmailHtml (parameter) { + return axios({ + url: '/email/sendEmailHtml', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/enumManage.js b/admin/src/api/modular/system/enumManage.js new file mode 100644 index 0000000..dd48818 --- /dev/null +++ b/admin/src/api/modular/system/enumManage.js @@ -0,0 +1,29 @@ +import { axios } from '@/utils/request' + +/** + * 根据枚举名称获取枚举数据,返回格式为:[{code:"M",value:"男"},{code:"F",value:"女"}] + * + * @author taoran + * @date 2021-04-16 21:13/sysEnumData/list/{enumName} + */ +export function sysEnumDataList (parameter) { + return axios({ + url: '/sysEnumData/list', + method: 'get', + params: parameter + }) +} + +/** + * 根据实体名和字段名获取枚举数据 + * + * @author taoran + * @date 2021-04-16 21:13 + */ +export function sysEnumDataListByField (parameter) { + return axios({ + url: '/sysEnumData/listByFiled', + method: 'get', + params: parameter + }) +} diff --git a/admin/src/api/modular/system/fileManage.js b/admin/src/api/modular/system/fileManage.js new file mode 100644 index 0000000..389ccdb --- /dev/null +++ b/admin/src/api/modular/system/fileManage.js @@ -0,0 +1,115 @@ +import { axios } from '@/utils/request' + +/** + * 分页查询文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoPage (parameter) { + return axios({ + url: '/sysFileInfo/page', + method: 'get', + params: parameter + }) +} + +/** + * 获取全部文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoList (parameter) { + return axios({ + url: '/sysFileInfo/list', + method: 'get', + params: parameter + }) +} + +/** + * 上传文件 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoUpload (parameter) { + return axios({ + url: '/sysFileInfo/upload', + method: 'post', + data: parameter + }) +} + +/** + * 下载文件 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoDownload (parameter) { + return axios({ + url: '/sysFileInfo/download', + method: 'get', + params: parameter, + responseType: 'blob' + }) +} + +/** + * 查看图片 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoPreview (parameter) { + return axios({ + url: '/sysFileInfo/preview', + method: 'get', + params: parameter, + responseType: 'arraybuffer' + }) +} + +/** + * 查看详情文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoDetail (parameter) { + return axios({ + url: '/sysFileInfo/detail', + method: 'get', + params: parameter + }) +} + +/** + * 删除文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoDelete (parameter) { + return axios({ + url: '/sysFileInfo/delete', + method: 'post', + data: parameter + }) +} + +/** + * 上传头像 + * + * @author zuohuaijun + * @date 2021/4/23 00:20 + */ +export function sysFileInfoUploadAvatar (parameter) { + return axios({ + url: '/sysFileInfo/uploadAvatar', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/logManage.js b/admin/src/api/modular/system/logManage.js new file mode 100644 index 0000000..71d8478 --- /dev/null +++ b/admin/src/api/modular/system/logManage.js @@ -0,0 +1,118 @@ +/* + * @Author: your name + * @Date: 2021-04-17 17:45:37 + * @LastEditTime: 2021-04-17 18:03:59 + * @LastEditors: your name + * @Description: In User Settings Edit + * @FilePath: \frontend\src\api\modular\system\logManage.js + */ +import { axios } from '@/utils/request' + +/** + * 查询访问日志 + * + * @author yubaoshan + * @date 2020/5/19 11:57 + */ +export function sysVisLogPage(parameter) { + return axios({ + url: '/sysVisLog/page', + method: 'get', + params: parameter + }) +} + +/** + * 查询操作日志 + * + * @author yubaoshan + * @date 2020/5/19 11:57 + */ +export function sysOpLogPage(parameter) { + return axios({ + url: '/sysOpLog/page', + method: 'get', + params: parameter + }) +} + +/** + * 查询异常日志 + * + * @author yubaoshan + * @date 2020/5/19 11:57 + */ +export function sysExLogPage(parameter) { + return axios({ + url: '/sysExLog/page', + method: 'get', + params: parameter + }) +} +/** + * 查询第三方日志 + * + * @author liuzl + * @date 2020/5/19 11:57 + */ +export function ThirdLogPage(parameter) { + return axios({ + url: '/thirdlog/list', + method: 'post', + data: parameter + }) +} +/** + * 清空访问日志 + * + * @author yubaoshan + * @date 2020/6/23 23:09 + */ +export function sysVisLogDelete(parameter) { + return axios({ + url: '/sysVisLog/delete', + method: 'post', + data: parameter + }) +} + +/** + * 清空登录日志 + * + * @author yubaoshan + * @date 2020/6/23 23:09 + */ +export function sysOpLogDelete(parameter) { + return axios({ + url: '/sysOpLog/delete', + method: 'post', + data: parameter + }) +} + +/** + * 清空异常日志 + * + * @author yubaoshan + * @date 2020/6/23 23:09 + */ +export function sysExLogDelete(parameter) { + return axios({ + url: '/sysExLog/delete', + method: 'post', + data: parameter + }) +} +/** + * 清空第三方日志 + * + * @author liuzl + * @date 2020/6/23 23:09 + */ +export function ThirdLogDelete(parameter) { + return axios({ + url: '/third/clear', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/loginManage.js b/admin/src/api/modular/system/loginManage.js new file mode 100644 index 0000000..d7c921b --- /dev/null +++ b/admin/src/api/modular/system/loginManage.js @@ -0,0 +1,145 @@ +/** + * 系统应用 + * + * @author yubaoshan + * @date 2020/5/26 19:06 + */ +import { axios } from '@/utils/request' + +/** + * 登录 + * + * @author yubaoshan + * @date 2020/5/26 19:06 + */ +export function login (parameter) { + return axios({ + url: '/login', + method: 'post', + data: parameter + }) +} + +/** + * 登出 + * + * @author yubaoshan + * @date 2020/5/26 19:07 + */ +export function logout (parameter) { + return axios({ + url: '/logout', + method: 'get', + params: parameter + }) +} + +/** + * 获取登录用户信息 + * + * @author yubaoshan + * @date 2020/5/26 19:08 + */ +export function getLoginUser (parameter) { + return axios({ + url: '/getLoginUser', + method: 'get', + params: parameter + }) +} + +/** + * 获取租户开关 + * + * @author yubaoshan + * @date 2020/9/5 1:24 + */ +export function getTenantOpen (parameter) { + return axios({ + url: '/getTenantOpen', + method: 'get', + params: parameter + }) +} + +/** + * 获取短信验证码 + * + * @author yubaoshan + * @date 2020/5/26 19:29 + */ +export function getSmsCaptcha (parameter) { + return axios({ + url: '/api/wxopen/sendcode', + method: 'get', + params: parameter + }) +} + +/** + * 扫码登录 + * + * @author liuzl + * @date 2020/5/26 19:29 + */ + export function WXLogin (parameter) { + return axios({ + url: '/business/wxlogin', + method: 'post', + data: parameter + }) +} +/** + * 获取微信扫码登录地址 + * + * @author liuzl + * @date 2020/5/26 19:29 + */ + export function WXLoginUrl (parameter) { + return axios({ + url: '/business/getwxloginurl', + method: 'post', + data: parameter + }) +} +/** + * 获取验证码开关 + * + * @author Jax + * @date 2021/1/22 00:00 + */ +export function getCaptchaOpen (parameter) { + return axios({ + url: '/getCaptchaOpen', + method: 'get', + params: parameter + }) +} + +/** + * 获取验证图片 以及token + * + * @author Jax + * @date 2021/1/22 00:00 + */ +export function reqGet(data) { + return axios({ + url: '/captcha/get', + method: 'post', + data + }) +} + +/** + * 滑动或者点选验证 + * + * @author Jax + * @date 2021/1/22 00:00 + */ +export function reqCheck(data) { + return axios({ + url: '/captcha/check', + method: 'post', + data + }) +} diff --git a/admin/src/api/modular/system/machineManage.js b/admin/src/api/modular/system/machineManage.js new file mode 100644 index 0000000..fb02013 --- /dev/null +++ b/admin/src/api/modular/system/machineManage.js @@ -0,0 +1,32 @@ +import { + axios +} from '@/utils/request' + +/** + * + * 系统属性监控 + * + */ +export function sysMachineUse(parameter) { + return axios({ + url: '/sysMachine/use', + method: 'get', + params: parameter + }) +} + +export function sysMachineBase(parameter) { + return axios({ + url: '/sysMachine/base', + method: 'get', + params: parameter + }) +} + +export function sysMachineNetwork(parameter) { + return axios({ + url: '/sysMachine/network', + method: 'get', + params: parameter + }) +} diff --git a/admin/src/api/modular/system/menuManage.js b/admin/src/api/modular/system/menuManage.js new file mode 100644 index 0000000..7ac62c4 --- /dev/null +++ b/admin/src/api/modular/system/menuManage.js @@ -0,0 +1,114 @@ +import { axios } from '@/utils/request' + +/** + * 获取菜单列表 + * + * @author yubaoshan + * @param parameter + * @returns {*} + */ +export function getMenuList (parameter) { + return axios({ + url: '/sysMenu/list', + method: 'get', + params: parameter + }) +} + +/** + * 获取系统菜单树,用于新增,编辑时选择上级节点 + * + * @author yubaoshan + * @date 2020/4/23 12:22 + */ +export function getMenuTree (parameter) { + return axios({ + url: '/sysMenu/tree', + method: 'get', + params: parameter + }) +} + +/** + * 增加菜单 + * + * @author yubaoshan + * @date 2020/4/24 23:23 + */ +export function sysMenuAdd (parameter) { + return axios({ + url: '/sysMenu/add', + method: 'post', + data: parameter + }) +} + +/** + * 增加菜单 + * + * @author yubaoshan + * @date 2020/4/24 23:23 + */ +export function sysMenuDelete (parameter) { + return axios({ + url: '/sysMenu/delete', + method: 'post', + data: parameter + }) +} + +/** + * 查看菜单详情 + * + * @author yubaoshan + * @date 2020/4/25 01:11 + */ +export function sysMenuDetail (parameter) { + return axios({ + url: '/sysMenu/detail', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统菜单 + * + * @author yubaoshan + * @date 2020/4/25 01:11 + */ +export function sysMenuEdit (parameter) { + return axios({ + url: '/sysMenu/edit', + method: 'post', + data: parameter + }) +} + +/** + * 获取系统菜单树,用于给角色授权时选择 + * + * @author yubaoshan + * @date 2020/6/2 17:30 + */ +export function SysMenuTreeForGrant (parameter) { + return axios({ + url: '/sysMenu/treeForGrant', + method: 'get', + params: parameter + }) +} + +/** + * 根据系统切换菜单 + * + * @author yubaoshan + * @date 2020/6/28 15:25 + */ +export function sysMenuChange (parameter) { + return axios({ + url: '/sysMenu/change', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/noticeManage.js b/admin/src/api/modular/system/noticeManage.js new file mode 100644 index 0000000..d4f7277 --- /dev/null +++ b/admin/src/api/modular/system/noticeManage.js @@ -0,0 +1,85 @@ +import { axios } from '@/utils/request' + +/** + * 查询系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticePage (parameter) { + return axios({ + url: '/sysNotice/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeAdd (parameter) { + return axios({ + url: '/sysNotice/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeEdit (parameter) { + return axios({ + url: '/sysNotice/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeDelete (parameter) { + return axios({ + url: '/sysNotice/delete', + method: 'post', + data: parameter + }) +} + +/** + * 通知公告详情 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeDetail (parameter) { + return axios({ + url: '/sysNotice/detail', + method: 'get', + params: parameter + }) +} + +/** + * 修改状态 + * + * @author yubaoshan + * @date 2020/7/30 02:23 + */ +export function sysNoticeChangeStatus (parameter) { + return axios({ + url: '/sysNotice/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/noticeReceivedManage.js b/admin/src/api/modular/system/noticeReceivedManage.js new file mode 100644 index 0000000..d28174a --- /dev/null +++ b/admin/src/api/modular/system/noticeReceivedManage.js @@ -0,0 +1,24 @@ +import { axios } from '@/utils/request' + +/** + * 查询我收到的系统通知公告 + * + * @author yubaoshan + * @date 2020/7/3 03:02 + */ +export function sysNoticeReceived (parameter) { + return axios({ + url: '/sysNotice/received', + method: 'get', + params: parameter + }) +} + +export function unReadNotice (parameter) { + return axios({ + url: '/sysNotice/unread', + method: 'get', + params: parameter + }) +} + diff --git a/admin/src/api/modular/system/orgManage.js b/admin/src/api/modular/system/orgManage.js new file mode 100644 index 0000000..6ad82f6 --- /dev/null +++ b/admin/src/api/modular/system/orgManage.js @@ -0,0 +1,85 @@ +import { axios } from '@/utils/request' + +/** + * 获取机构树 + * + * @author yubaoshan + * @date 2020/4/26 12:08 + */ +export function getOrgTree (parameter) { + return axios({ + url: '/sysOrg/tree', + method: 'get', + params: parameter + }) +} + +/** + * 获取机构列表 + * + * @author yubaoshan + * @date 2020/5/11 12:59 + */ +export function getOrgList (parameter) { + return axios({ + url: '/sysOrg/list', + method: 'get', + params: parameter + }) +} + +/** + * 获取机构列表 + * + * @author yubaoshan + * @date 2020/5/11 16:17 + */ +export function getOrgPage (parameter) { + return axios({ + url: '/sysOrg/page', + method: 'get', + params: parameter + }) +} + +/** + * 新增机构 + * + * @author yubaoshan + * @date 2020/5/11 13:56 + */ +export function sysOrgAdd (parameter) { + return axios({ + url: '/sysOrg/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑机构 + * + * @author yubaoshan + * @date 2020/5/11 13:56 + */ +export function sysOrgEdit (parameter) { + return axios({ + url: '/sysOrg/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除机构 + * + * @author yubaoshan + * @date 2020/5/11 12:59 + */ +export function sysOrgDelete (parameter) { + return axios({ + url: '/sysOrg/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/posManage.js b/admin/src/api/modular/system/posManage.js new file mode 100644 index 0000000..847cf61 --- /dev/null +++ b/admin/src/api/modular/system/posManage.js @@ -0,0 +1,71 @@ +import { axios } from '@/utils/request' + +/** + * 查询系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosPage (parameter) { + return axios({ + url: '/sysPos/page', + method: 'get', + params: parameter + }) +} + +/** + * 系统职位列表 + * + * @author yubaoshan + * @date 2020/6/21 23:50 + */ +export function sysPosList (parameter) { + return axios({ + url: '/sysPos/list', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosAdd (parameter) { + return axios({ + url: '/sysPos/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosEdit (parameter) { + return axios({ + url: '/sysPos/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosDelete (parameter) { + return axios({ + url: '/sysPos/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/roleManage.js b/admin/src/api/modular/system/roleManage.js new file mode 100644 index 0000000..40bb833 --- /dev/null +++ b/admin/src/api/modular/system/roleManage.js @@ -0,0 +1,141 @@ +import { axios } from '@/utils/request' + +/** + * 获取角色列表 + * + * @author yubaoshan + * @date 2020/5/6 11:44 + */ +export function getRolePage (parameter) { + return axios({ + url: '/sysRole/page', + method: 'get', + params: parameter + }) +} + +/** + * 增加角色 + * + * @author yubaoshan + * @date 2020/5/6 11:44 + */ +export function sysRoleAdd (parameter) { + return axios({ + url: '/sysRole/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑角色 + * + * @author yubaoshan + * @date 2020/5/6 11:44 + */ +export function sysRoleEdit (parameter) { + return axios({ + url: '/sysRole/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除角色 + * + * @author yubaoshan + * @date 2020/5/6 17:51 + */ +export function sysRoleDelete (parameter) { + return axios({ + url: '/sysRole/delete', + method: 'post', + data: parameter + }) +} + +/** + * 删除角色 + * + * @author yubaoshan + * @date 2020/5/7 11:28 + */ +export function sysRoleDeteil (parameter) { + return axios({ + url: '/sysRole/detail', + method: 'get', + params: parameter + }) +} + +/** + * 获取授权角色列表 + * + * @author yubaoshan + * @date 2020/5/26 23:59 + */ +export function sysRoleDropDown (parameter) { + return axios({ + url: '/sysRole/dropDown', + method: 'get', + params: parameter + }) +} + +/** + * 拥有菜单 + * + * @author yubaoshan + * @date 2020/6/02 19:02 + */ +export function sysRoleOwnMenu (parameter) { + return axios({ + url: '/sysRole/ownMenu', + method: 'get', + params: parameter + }) +} + +/** + * 授权菜单 + * + * @author yubaoshan + * @date 2020/6/2 21:10 + */ +export function sysRoleGrantMenu (parameter) { + return axios({ + url: '/sysRole/grantMenu', + method: 'post', + data: parameter + }) +} + +/** + * 拥有数据 + * + * @author yubaoshan + * @date 2020/6/02 21:40 + */ +export function sysRoleOwnData (parameter) { + return axios({ + url: '/sysRole/ownData', + method: 'get', + params: parameter + }) +} + +/** + * 授权数据 + * + * @author yubaoshan + * @date 2020/6/2 21:50 + */ +export function sysRoleGrantData (parameter) { + return axios({ + url: '/sysRole/grantData', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/api/modular/system/tenantManage.js b/admin/src/api/modular/system/tenantManage.js new file mode 100644 index 0000000..611eca8 --- /dev/null +++ b/admin/src/api/modular/system/tenantManage.js @@ -0,0 +1,118 @@ +/** + * 租户 + */ +import { + axios +} from '@/utils/request' + +/** + * 租户列表 + * + */ +export function sysTenantPage(parameter) { + return axios({ + url: '/sysTenant/page', + method: 'get', + params: parameter + }) +} + +/** + * 新增租户 + * + */ +export function sysTenantAdd(parameter) { + return axios({ + url: '/sysTenant/add', + method: 'post', + data: parameter + }) +} + +/** + * 删除租户 + * + */ +export function sysTenantDelete(parameter) { + return axios({ + url: '/sysTenant/delete', + method: 'post', + data: parameter + }) +} + +/** + * 编辑租户 + * + */ +export function sysTenantEdit(parameter) { + return axios({ + url: '/sysTenant/edit', + method: 'post', + data: parameter + }) +} + +/** + * 拥有菜单 + * + * @author zuohuaijun + * @date 2021/04/22 10:30 + */ +export function sysTenantOwnMenu (parameter) { + return axios({ + url: '/sysTenant/ownMenu', + method: 'get', + params: parameter + }) +} + +/** + * 授权菜单 + * + * @author zuohuaijun + * @date 2021/04/22 10:30 + */ +export function sysTenantGrantMenu (parameter) { + return axios({ + url: '/sysTenant/grantMenu', + method: 'post', + data: parameter + }) +} + +/** + * 重置密码 + * + * @author zuohuaijun + * @date 2021/04/22 11:00 + */ +export function sysTenantResetPwd (parameter) { + return axios({ + url: '/sysTenant/resetPwd', + method: 'post', + data: parameter + }) +} +/** + * 订单初始化 + * + */ + export function OrderInit (parameter) { + return axios({ + url: '/order/insertdefaultorder', + method: 'get', + params: parameter + }) +} +/** + * 标准初始化 + * + */ + export function StandInit (parameter) { + return axios({ + url: '/order/insertdefaultstand', + method: 'get', + params: parameter + }) +} diff --git a/admin/src/api/modular/system/userManage.js b/admin/src/api/modular/system/userManage.js new file mode 100644 index 0000000..3d3d65a --- /dev/null +++ b/admin/src/api/modular/system/userManage.js @@ -0,0 +1,286 @@ +import { axios } from '@/utils/request' + +/** + * 获取用户列表 + * + * @author yubaoshan + * @date 2020/4/26 12:08 + */ +export function getUserPage(parameter) { + return axios({ + url: '/sysUser/page', + method: 'get', + params: parameter + }) +} + +/** + * 增加用户 + * + * @author yubaoshan + * @date 2020/5/5 02:08 + */ +export function sysUserAdd(parameter) { + return axios({ + url: '/sysUser/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑用户 + * + * @author yubaoshan + * @date 2020/5/5 02:08 + */ +export function sysUserEdit(parameter) { + return axios({ + url: '/sysUser/edit', + method: 'post', + data: parameter + }) +} + +/** + * 获取用户详情 + * + * @author yubaoshan + * @date 2020/5/5 19:55 + */ +export function sysUserDetail(parameter) { + return axios({ + url: '/sysUser/detail', + method: 'get', + params: parameter + }) +} + +/** + * 删除用户 + * + * @author yubaoshan + * @date 2020/5/7 19:31 + */ +export function sysUserDelete(parameter) { + return axios({ + url: '/sysUser/delete', + method: 'post', + data: parameter + }) +} + +/** + * 拥有角色 + * + * @author yubaoshan + * @date 2020/6/3 11:58 + */ +export function sysUserOwnRole(parameter) { + return axios({ + url: '/sysUser/ownRole', + method: 'get', + params: parameter + }) +} +// 用户拥有的VIP信息 +export function sysUserOwnVIP(parameter) { + return axios({ + url: '/sysUser/ownVIP', + method: 'post', + data: parameter + }) +} +// 用户拥有的企业信息 +export function sysUserOwnCom(parameter) { + return axios({ + url: '/sysUser/owncom', + method: 'post', + data: parameter + }) +} +// 用户拥有的企业信息提交 +export function sysUserSubmitCom(parameter) { + return axios({ + url: '/sysUser/submitCom', + method: 'post', + data: parameter + }) +} +/** + * 授权角色 + * + * @author yubaoshan + * @date 2020/5/26 23:59 + */ +export function sysUserGrantRole(parameter) { + return axios({ + url: '/sysUser/grantRole', + method: 'post', + data: parameter + }) +} +// 授权VIP +export function sysUserGrantVIP(parameter) { + return axios({ + url: '/sysUser/grantvip', + method: 'post', + data: parameter + }) +} +/** + * 拥有数据 + * + * @author yubaoshan + * @date 2020/6/2 23:14 + */ +export function sysUserOwnData(parameter) { + return axios({ + url: '/sysUser/ownData', + method: 'get', + params: parameter + }) +} + +/** + * 授权数据 + * + * @author yubaoshan + * @date 2020/6/2 23:15 + */ +export function sysUserGrantData(parameter) { + return axios({ + url: '/sysUser/grantData', + method: 'post', + data: parameter + }) +} + +/** + * 修改状态 + * + * @author yubaoshan + * @date 2020/6/23 21:36 + */ +export function sysUserChangeStatus(parameter) { + return axios({ + url: '/sysUser/changeStatus', + method: 'post', + data: parameter + }) +} + +/** + * 重置密码 + * + * @author yubaoshan + * @date 2020/6/23 22:04 + */ +export function sysUserResetPwd(parameter) { + return axios({ + url: '/sysUser/resetPwd', + method: 'post', + data: parameter + }) +} + +/** + * 修改密码 + * + * @author yubaoshan + * @date 2020/6/25 00:25 + */ +export function sysUserUpdatePwd(parameter) { + return axios({ + url: '/sysUser/updatePwd', + method: 'post', + data: parameter + }) +} + +/** + * 用户选择器 + * + * @author yubaoshan + * @date 2020/6/25 00:25 + */ +export function sysUserSelector(parameter) { + return axios({ + url: '/sysUser/selector', + method: 'get', + params: parameter + }) +} + +/** + * 修改头像 + * + * @author yubaoshan + * @date 2020/9/20 2:21 + */ +export function sysUserUpdateAvatar(parameter) { + return axios({ + url: '/sysUser/updateAvatar', + method: 'post', + data: parameter + }) +} + +/** + * 更新基本信息 + * + * @author yubaoshan + * @date 2020/9/20 03:12 + */ +export function sysUserUpdateInfo(parameter) { + return axios({ + url: '/sysUser/updateInfo', + method: 'post', + data: parameter + }) +} + +/** + * 导出用户信息 + * + * @author zuohuaijun + * @date 2021/4/20 01:00 + */ +export function sysUserExport(parameter) { + return axios({ + url: '/sysUser/export', + method: 'get', + data: parameter, + responseType: 'blob' + }) +} + +/** + * 导入用户信息 + * + * @author zuohuaijun + * @date 2021/4/20 01:00 + */ +export function sysUserImport(parameter) { + return axios({ + url: '/sysUser/import', + method: 'post', + data: parameter + }) +} +// 获取用户入会申请列表 +export function getUserSupplyForList(parameter) { + return axios({ + url: '/sysUser/supplyforlist', + method: 'post', + data: parameter + }) +} +// 入会状态修改 +export function SupplyForStatus(parameter) { + return axios({ + url: '/sysUser/supplyforstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin/src/assets/icons/bx-analyse.svg b/admin/src/assets/icons/bx-analyse.svg new file mode 100644 index 0000000..b02a8d6 --- /dev/null +++ b/admin/src/assets/icons/bx-analyse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/logo.png b/admin/src/assets/logo.png new file mode 100644 index 0000000..ee31e50 Binary files /dev/null and b/admin/src/assets/logo.png differ diff --git a/admin/src/assets/logo.svg b/admin/src/assets/logo.svg new file mode 100644 index 0000000..cb8915f --- /dev/null +++ b/admin/src/assets/logo.svg @@ -0,0 +1,569 @@ + + + + diff --git a/admin/src/assets/notice.png b/admin/src/assets/notice.png new file mode 100644 index 0000000..b713953 Binary files /dev/null and b/admin/src/assets/notice.png differ diff --git a/admin/src/assets/template/importtpl.csv b/admin/src/assets/template/importtpl.csv new file mode 100644 index 0000000..0469830 --- /dev/null +++ b/admin/src/assets/template/importtpl.csv @@ -0,0 +1 @@ +code \ No newline at end of file diff --git a/admin/src/assets/welcome.png b/admin/src/assets/welcome.png new file mode 100644 index 0000000..94abec2 Binary files /dev/null and b/admin/src/assets/welcome.png differ diff --git a/admin/src/components/ArticleListContent/ArticleListContent.vue b/admin/src/components/ArticleListContent/ArticleListContent.vue new file mode 100644 index 0000000..8f39978 --- /dev/null +++ b/admin/src/components/ArticleListContent/ArticleListContent.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/admin/src/components/ArticleListContent/index.js b/admin/src/components/ArticleListContent/index.js new file mode 100644 index 0000000..37d35c7 --- /dev/null +++ b/admin/src/components/ArticleListContent/index.js @@ -0,0 +1,3 @@ +import ArticleListContent from './ArticleListContent' + +export default ArticleListContent diff --git a/admin/src/components/AvatarList/Item.vue b/admin/src/components/AvatarList/Item.vue new file mode 100644 index 0000000..26e149e --- /dev/null +++ b/admin/src/components/AvatarList/Item.vue @@ -0,0 +1,46 @@ + + + diff --git a/admin/src/components/AvatarList/List.vue b/admin/src/components/AvatarList/List.vue new file mode 100644 index 0000000..446ceeb --- /dev/null +++ b/admin/src/components/AvatarList/List.vue @@ -0,0 +1,99 @@ + + + diff --git a/admin/src/components/AvatarList/index.js b/admin/src/components/AvatarList/index.js new file mode 100644 index 0000000..dd6bb8b --- /dev/null +++ b/admin/src/components/AvatarList/index.js @@ -0,0 +1,4 @@ +import AvatarList from './List' +import './index.less' + +export default AvatarList diff --git a/admin/src/components/AvatarList/index.less b/admin/src/components/AvatarList/index.less new file mode 100644 index 0000000..9ce073f --- /dev/null +++ b/admin/src/components/AvatarList/index.less @@ -0,0 +1,60 @@ +@import "../index"; + +@avatar-list-prefix-cls: ~"@{ant-pro-prefix}-avatar-list"; +@avatar-list-item-prefix-cls: ~"@{ant-pro-prefix}-avatar-list-item"; + +.@{avatar-list-prefix-cls} { + display: inline-block; + + ul { + list-style: none; + display: inline-block; + padding: 0; + margin: 0 0 0 8px; + font-size: 0; + } +} + +.@{avatar-list-item-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + margin-left: -8px; + width: @avatar-size-base; + height: @avatar-size-base; + + :global { + .ant-avatar { + border: 1px solid #fff; + cursor: pointer; + } + } + + &.large { + width: @avatar-size-lg; + height: @avatar-size-lg; + } + + &.small { + width: @avatar-size-sm; + height: @avatar-size-sm; + } + + &.mini { + width: 20px; + height: 20px; + + :global { + .ant-avatar { + width: 20px; + height: 20px; + line-height: 20px; + + .ant-avatar-string { + font-size: 12px; + line-height: 18px; + } + } + } + } +} + diff --git a/admin/src/components/AvatarList/index.md b/admin/src/components/AvatarList/index.md new file mode 100644 index 0000000..dc9c092 --- /dev/null +++ b/admin/src/components/AvatarList/index.md @@ -0,0 +1,64 @@ +# AvatarList 用户头像列表 + + +一组用户头像,常用在项目/团队成员列表。可通过设置 `size` 属性来指定头像大小。 + + + +引用方式: + +```javascript +import AvatarList from '@/components/AvatarList' +const AvatarListItem = AvatarList.AvatarItem + +export default { + components: { + AvatarList, + AvatarListItem + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + + + + + +``` +或 +```html + + + + + + + + + +``` + + + +## API + +### AvatarList + +| 参数 | 说明 | 类型 | 默认值 | +| ---------------- | -------- | ---------------------------------- | --------- | +| size | 头像大小 | `large`、`small` 、`mini`, `default` | `default` | +| maxLength | 要显示的最大项目 | number | - | +| excessItemsStyle | 多余的项目风格 | CSSProperties | - | + +### AvatarList.Item + +| 参数 | 说明 | 类型 | 默认值 | +| ---- | ------ | --------- | --- | +| tips | 头像展示文案 | string | - | +| src | 头像图片连接 | string | - | + diff --git a/admin/src/components/Charts/Bar.vue b/admin/src/components/Charts/Bar.vue new file mode 100644 index 0000000..2a2758c --- /dev/null +++ b/admin/src/components/Charts/Bar.vue @@ -0,0 +1,62 @@ + + + diff --git a/admin/src/components/Charts/ChartCard.vue b/admin/src/components/Charts/ChartCard.vue new file mode 100644 index 0000000..d3698e6 --- /dev/null +++ b/admin/src/components/Charts/ChartCard.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/admin/src/components/Charts/Liquid.vue b/admin/src/components/Charts/Liquid.vue new file mode 100644 index 0000000..4019fb1 --- /dev/null +++ b/admin/src/components/Charts/Liquid.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/admin/src/components/Charts/MiniProgress.vue b/admin/src/components/Charts/MiniProgress.vue new file mode 100644 index 0000000..e691363 --- /dev/null +++ b/admin/src/components/Charts/MiniProgress.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/admin/src/components/Charts/MiniSmoothArea.vue b/admin/src/components/Charts/MiniSmoothArea.vue new file mode 100644 index 0000000..e5455c2 --- /dev/null +++ b/admin/src/components/Charts/MiniSmoothArea.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/admin/src/components/Charts/Radar.vue b/admin/src/components/Charts/Radar.vue new file mode 100644 index 0000000..5ee88ad --- /dev/null +++ b/admin/src/components/Charts/Radar.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/admin/src/components/Charts/RankList.vue b/admin/src/components/Charts/RankList.vue new file mode 100644 index 0000000..afb56a1 --- /dev/null +++ b/admin/src/components/Charts/RankList.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/admin/src/components/Charts/TransferBar.vue b/admin/src/components/Charts/TransferBar.vue new file mode 100644 index 0000000..7f96f0b --- /dev/null +++ b/admin/src/components/Charts/TransferBar.vue @@ -0,0 +1,64 @@ + + + diff --git a/admin/src/components/Charts/Trend.vue b/admin/src/components/Charts/Trend.vue new file mode 100644 index 0000000..2dce37e --- /dev/null +++ b/admin/src/components/Charts/Trend.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/admin/src/components/Charts/chart.less b/admin/src/components/Charts/chart.less new file mode 100644 index 0000000..e04fa09 --- /dev/null +++ b/admin/src/components/Charts/chart.less @@ -0,0 +1,13 @@ +.antv-chart-mini { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + +/* margin: 0 -5px; + overflow: hidden;*/ + } +} \ No newline at end of file diff --git a/admin/src/components/Charts/smooth.area.less b/admin/src/components/Charts/smooth.area.less new file mode 100644 index 0000000..eabdb75 --- /dev/null +++ b/admin/src/components/Charts/smooth.area.less @@ -0,0 +1,14 @@ +@import "../index"; + +@smoothArea-prefix-cls: ~"@{ant-pro-prefix}-smooth-area"; + +.@{smoothArea-prefix-cls} { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + } +} \ No newline at end of file diff --git a/admin/src/components/CountDown/CountDown.vue b/admin/src/components/CountDown/CountDown.vue new file mode 100644 index 0000000..575dd4a --- /dev/null +++ b/admin/src/components/CountDown/CountDown.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/admin/src/components/CountDown/index.js b/admin/src/components/CountDown/index.js new file mode 100644 index 0000000..35e954f --- /dev/null +++ b/admin/src/components/CountDown/index.js @@ -0,0 +1,3 @@ +import CountDown from './CountDown' + +export default CountDown diff --git a/admin/src/components/CountDown/index.md b/admin/src/components/CountDown/index.md new file mode 100644 index 0000000..fd46809 --- /dev/null +++ b/admin/src/components/CountDown/index.md @@ -0,0 +1,34 @@ +# CountDown 倒计时 + +倒计时组件。 + + + +引用方式: + +```javascript +import CountDown from '@/components/CountDown/CountDown' + +export default { + components: { + CountDown + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + +``` + + + +## API + +| 参数 | 说明 | 类型 | 默认值 | +|----------|------------------------------------------|-------------|-------| +| target | 目标时间 | Date | - | +| onEnd | 倒计时结束回调 | funtion | -| diff --git a/admin/src/components/DepartmentSelect/DepartmentSelect.vue b/admin/src/components/DepartmentSelect/DepartmentSelect.vue new file mode 100644 index 0000000..5203efd --- /dev/null +++ b/admin/src/components/DepartmentSelect/DepartmentSelect.vue @@ -0,0 +1,48 @@ + + diff --git a/admin/src/components/DepartmentSelect/index.js b/admin/src/components/DepartmentSelect/index.js new file mode 100644 index 0000000..68ac87d --- /dev/null +++ b/admin/src/components/DepartmentSelect/index.js @@ -0,0 +1,3 @@ +import DepartmentSelect from './DepartmentSelect' + +export default DepartmentSelect diff --git a/admin/src/components/DescriptionList/DescriptionList.vue b/admin/src/components/DescriptionList/DescriptionList.vue new file mode 100644 index 0000000..7f98fec --- /dev/null +++ b/admin/src/components/DescriptionList/DescriptionList.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/admin/src/components/DescriptionList/index.js b/admin/src/components/DescriptionList/index.js new file mode 100644 index 0000000..7aed83d --- /dev/null +++ b/admin/src/components/DescriptionList/index.js @@ -0,0 +1,2 @@ +import DescriptionList from './DescriptionList' +export default DescriptionList diff --git a/admin/src/components/Dialog.js b/admin/src/components/Dialog.js new file mode 100644 index 0000000..78e95b2 --- /dev/null +++ b/admin/src/components/Dialog.js @@ -0,0 +1,113 @@ +import Modal from 'ant-design-vue/es/modal' +export default (Vue) => { + function dialog (component, componentProps, modalProps) { + const _vm = this + modalProps = modalProps || {} + if (!_vm || !_vm._isVue) { + return + } + let dialogDiv = document.querySelector('body>div[type=dialog]') + if (!dialogDiv) { + dialogDiv = document.createElement('div') + dialogDiv.setAttribute('type', 'dialog') + document.body.appendChild(dialogDiv) + } + + const handle = function (checkFunction, afterHandel) { + if (checkFunction instanceof Function) { + const res = checkFunction() + if (res instanceof Promise) { + res.then(c => { + c && afterHandel() + }) + } else { + res && afterHandel() + } + } else { + // checkFunction && afterHandel() + checkFunction || afterHandel() + } + } + + const dialogInstance = new Vue({ + data () { + return { + visible: true + } + }, + router: _vm.$router, + store: _vm.$store, + mounted () { + this.$on('close', (v) => { + this.handleClose() + }) + }, + methods: { + handleClose () { + handle(this.$refs._component.onCancel, () => { + this.visible = false + this.$refs._component.$emit('close') + this.$refs._component.$emit('cancel') + dialogInstance.$destroy() + }) + }, + handleOk () { + handle(this.$refs._component.onOK || this.$refs._component.onOk, () => { + this.visible = false + this.$refs._component.$emit('close') + this.$refs._component.$emit('ok') + dialogInstance.$destroy() + }) + } + }, + render: function (h) { + const that = this + const modalModel = modalProps && modalProps.model + if (modalModel) { + delete modalProps.model + } + const ModalProps = Object.assign({}, modalModel && { model: modalModel } || {}, { + attrs: Object.assign({}, { + ...(modalProps.attrs || modalProps) + }, { + visible: this.visible + }), + on: Object.assign({}, { + ...(modalProps.on || modalProps) + }, { + ok: () => { + that.handleOk() + }, + cancel: () => { + that.handleClose() + } + }) + }) + + const componentModel = componentProps && componentProps.model + if (componentModel) { + delete componentProps.model + } + const ComponentProps = Object.assign({}, componentModel && { model: componentModel } || {}, { + ref: '_component', + attrs: Object.assign({}, { + ...((componentProps && componentProps.attrs) || componentProps) + }), + on: Object.assign({}, { + ...((componentProps && componentProps.on) || componentProps) + }) + }) + + return h(Modal, ModalProps, [h(component, ComponentProps)]) + } + }).$mount(dialogDiv) + } + + Object.defineProperty(Vue.prototype, '$dialog', { + get: () => { + return function () { + dialog.apply(this, arguments) + } + } + }) +} diff --git a/admin/src/components/Editor/QuillEditor.vue b/admin/src/components/Editor/QuillEditor.vue new file mode 100644 index 0000000..13524cd --- /dev/null +++ b/admin/src/components/Editor/QuillEditor.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/admin/src/components/Editor/WangEditor.vue b/admin/src/components/Editor/WangEditor.vue new file mode 100644 index 0000000..fbc0ffd --- /dev/null +++ b/admin/src/components/Editor/WangEditor.vue @@ -0,0 +1,130 @@ + + + + diff --git a/admin/src/components/Editor/WangEditorV5.vue b/admin/src/components/Editor/WangEditorV5.vue new file mode 100644 index 0000000..8b8ab5c --- /dev/null +++ b/admin/src/components/Editor/WangEditorV5.vue @@ -0,0 +1,131 @@ + + + + diff --git a/admin/src/components/Ellipsis/Ellipsis.vue b/admin/src/components/Ellipsis/Ellipsis.vue new file mode 100644 index 0000000..5d59200 --- /dev/null +++ b/admin/src/components/Ellipsis/Ellipsis.vue @@ -0,0 +1,64 @@ + diff --git a/admin/src/components/Ellipsis/index.js b/admin/src/components/Ellipsis/index.js new file mode 100644 index 0000000..91e3ff4 --- /dev/null +++ b/admin/src/components/Ellipsis/index.js @@ -0,0 +1,3 @@ +import Ellipsis from './Ellipsis' + +export default Ellipsis diff --git a/admin/src/components/Ellipsis/index.md b/admin/src/components/Ellipsis/index.md new file mode 100644 index 0000000..f528ac7 --- /dev/null +++ b/admin/src/components/Ellipsis/index.md @@ -0,0 +1,38 @@ +# Ellipsis 文本自动省略号 + +文本过长自动处理省略号,支持按照文本长度和最大行数两种方式截取。 + + + +引用方式: + +```javascript +import Ellipsis from '@/components/Ellipsis' + +export default { + components: { + Ellipsis + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + + There were injuries alleged in three cases in 2015, and a + fourth incident in September, according to the safety recall report. After meeting with US regulators in October, the firm decided to issue a voluntary recall. + +``` + + + +## API + + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +tooltip | 移动到文本展示完整内容的提示 | boolean | - +length | 在按照长度截取下的文本最大字符数,超过则截取省略 | number | - \ No newline at end of file diff --git a/admin/src/components/Exception/ExceptionPage.vue b/admin/src/components/Exception/ExceptionPage.vue new file mode 100644 index 0000000..832896c --- /dev/null +++ b/admin/src/components/Exception/ExceptionPage.vue @@ -0,0 +1,130 @@ + + + + diff --git a/admin/src/components/Exception/index.js b/admin/src/components/Exception/index.js new file mode 100644 index 0000000..dda91be --- /dev/null +++ b/admin/src/components/Exception/index.js @@ -0,0 +1,2 @@ +import ExceptionPage from './ExceptionPage.vue' +export default ExceptionPage diff --git a/admin/src/components/Exception/type.js b/admin/src/components/Exception/type.js new file mode 100644 index 0000000..8158f0f --- /dev/null +++ b/admin/src/components/Exception/type.js @@ -0,0 +1,19 @@ +const types = { + 403: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg', + title: '403', + desc: '抱歉,你无权访问该页面' + }, + 404: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg', + title: '404', + desc: '抱歉,你访问的页面不存在或仍在开发中' + }, + 500: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg', + title: '500', + desc: '抱歉,服务器出错了' + } +} + +export default types diff --git a/admin/src/components/FooterToolbar/FooterToolBar.vue b/admin/src/components/FooterToolbar/FooterToolBar.vue new file mode 100644 index 0000000..f4056dc --- /dev/null +++ b/admin/src/components/FooterToolbar/FooterToolBar.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/admin/src/components/FooterToolbar/index.js b/admin/src/components/FooterToolbar/index.js new file mode 100644 index 0000000..a0bf145 --- /dev/null +++ b/admin/src/components/FooterToolbar/index.js @@ -0,0 +1,4 @@ +import FooterToolBar from './FooterToolBar' +import './index.less' + +export default FooterToolBar diff --git a/admin/src/components/FooterToolbar/index.less b/admin/src/components/FooterToolbar/index.less new file mode 100644 index 0000000..f56273f --- /dev/null +++ b/admin/src/components/FooterToolbar/index.less @@ -0,0 +1,23 @@ +@import "../index"; + +@footer-toolbar-prefix-cls: ~"@{ant-pro-prefix}-footer-toolbar"; + +.@{footer-toolbar-prefix-cls} { + position: fixed; + width: 100%; + bottom: 0; + right: 0; + height: 56px; + line-height: 56px; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03); + background: #fff; + border-top: 1px solid #e8e8e8; + padding: 0 24px; + z-index: 9; + + &:after { + content: ""; + display: block; + clear: both; + } +} \ No newline at end of file diff --git a/admin/src/components/FooterToolbar/index.md b/admin/src/components/FooterToolbar/index.md new file mode 100644 index 0000000..c1aec2c --- /dev/null +++ b/admin/src/components/FooterToolbar/index.md @@ -0,0 +1,48 @@ +# FooterToolbar 底部工具栏 + +固定在底部的工具栏。 + + + +## 何时使用 + +固定在内容区域的底部,不随滚动条移动,常用于长页面的数据搜集和提交工作。 + + + +引用方式: + +```javascript +import FooterToolBar from '@/components/FooterToolbar' + +export default { + components: { + FooterToolBar + } +} +``` + + + +## 代码演示 + +```html + + 提交 + +``` +或 +```html + + 提交 + +``` + + +## API + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +children (slot) | 工具栏内容,向右对齐 | - | - +extra | 额外信息,向左对齐 | String, Object | - + diff --git a/admin/src/components/GlobalFooter/GlobalFooter.vue b/admin/src/components/GlobalFooter/GlobalFooter.vue new file mode 100644 index 0000000..8c410d6 --- /dev/null +++ b/admin/src/components/GlobalFooter/GlobalFooter.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/admin/src/components/GlobalFooter/index.js b/admin/src/components/GlobalFooter/index.js new file mode 100644 index 0000000..832e0bd --- /dev/null +++ b/admin/src/components/GlobalFooter/index.js @@ -0,0 +1,2 @@ +import GlobalFooter from './GlobalFooter' +export default GlobalFooter diff --git a/admin/src/components/GlobalHeader/GlobalHeader.vue b/admin/src/components/GlobalHeader/GlobalHeader.vue new file mode 100644 index 0000000..bccb7f8 --- /dev/null +++ b/admin/src/components/GlobalHeader/GlobalHeader.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/admin/src/components/GlobalHeader/index.js b/admin/src/components/GlobalHeader/index.js new file mode 100644 index 0000000..0807c87 --- /dev/null +++ b/admin/src/components/GlobalHeader/index.js @@ -0,0 +1,2 @@ +import GlobalHeader from './GlobalHeader' +export default GlobalHeader diff --git a/admin/src/components/IconSelector/IconSelector.vue b/admin/src/components/IconSelector/IconSelector.vue new file mode 100644 index 0000000..810d297 --- /dev/null +++ b/admin/src/components/IconSelector/IconSelector.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/admin/src/components/IconSelector/README.md b/admin/src/components/IconSelector/README.md new file mode 100644 index 0000000..49e25b8 --- /dev/null +++ b/admin/src/components/IconSelector/README.md @@ -0,0 +1,47 @@ +IconSelector +==== + +> 图标选择组件,常用于为某一个数据设定一个图标时使用 +> eg: 设定菜单列表时,为每个菜单设定一个图标 + +该组件由 [@Saraka](https://github.com/saraka-tsukai) 封装 + + + +### 使用方式 + +```vue + + + +``` + + + +### 事件 + + +| 名称 | 说明 | 类型 | 默认值 | +| ------ | -------------------------- | ------ | ------ | +| change | 当改变了 `icon` 选中项触发 | String | - | diff --git a/admin/src/components/IconSelector/icons.js b/admin/src/components/IconSelector/icons.js new file mode 100644 index 0000000..2afc40a --- /dev/null +++ b/admin/src/components/IconSelector/icons.js @@ -0,0 +1,36 @@ +/** + * 增加新的图标时,请遵循以下数据结构 + * Adding new icon please follow the data structure below + */ +export default [ + { + key: 'directional', + title: '方向性图标', + icons: ['step-backward', 'step-forward', 'fast-backward', 'fast-forward', 'shrink', 'arrows-alt', 'down', 'up', 'left', 'right', 'caret-up', 'caret-down', 'caret-left', 'caret-right', 'up-circle', 'down-circle', 'left-circle', 'right-circle', 'double-right', 'double-left', 'vertical-left', 'vertical-right', 'forward', 'backward', 'rollback', 'enter', 'retweet', 'swap', 'swap-left', 'swap-right', 'arrow-up', 'arrow-down', 'arrow-left', 'arrow-right', 'play-circle', 'up-square', 'down-square', 'left-square', 'right-square', 'login', 'logout', 'menu-fold', 'menu-unfold', 'border-bottom', 'border-horizontal', 'border-inner', 'border-left', 'border-right', 'border-top', 'border-verticle', 'pic-center', 'pic-left', 'pic-right', 'radius-bottomleft', 'radius-bottomright', 'radius-upleft', 'fullscreen', 'fullscreen-exit'] + }, + { + key: 'suggested', + title: '提示建议性图标', + icons: ['question', 'question-circle', 'plus', 'plus-circle', 'pause', 'pause-circle', 'minus', 'minus-circle', 'plus-square', 'minus-square', 'info', 'info-circle', 'exclamation', 'exclamation-circle', 'close', 'close-circle', 'close-square', 'check', 'check-circle', 'check-square', 'clock-circle', 'warning', 'issues-close', 'stop'] + }, + { + key: 'editor', + title: '编辑类图标', + icons: ['edit', 'form.vue', 'copy', 'scissor', 'delete', 'snippets', 'diff', 'highlight', 'align-center', 'align-left', 'align-right', 'bg-colors', 'bold', 'italic', 'underline', 'strikethrough', 'redo', 'undo', 'zoom-in', 'zoom-out', 'font-colors', 'font-size', 'line-height', 'column-height', 'dash', 'small-dash', 'sort-ascending', 'sort-descending', 'drag', 'ordered-list', 'radius-setting'] + }, + { + key: 'data', + title: '数据类图标', + icons: ['area-chart', 'pie-chart', 'bar-chart', 'dot-chart', 'line-chart', 'radar-chart', 'heat-map', 'fall', 'rise', 'stock', 'box-plot', 'fund', 'sliders'] + }, + { + key: 'brand_logo', + title: '网站通用图标', + icons: ['lock', 'unlock', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'ellipsis', 'file', 'file-text', 'file-unknown', 'file-pdf', 'file-word', 'file-excel', 'file-jpg', 'file-ppt', 'file-markdown', 'file-add', 'folder', 'folder-open', 'folder-add', 'hdd', 'frown', 'meh', 'smile', 'inbox', 'laptop', 'appstore', 'link', 'mail', 'mobile', 'notification', 'paper-clip', 'picture', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'home', 'loading', 'loading-3-quarters', 'cloud-upload', 'star', 'heart', 'environment', 'eye', 'camera', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customer-service', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'calculator', 'pushpin', 'bulb', 'select', 'switcher', 'rocket', 'bell', 'disconnect', 'database', 'compass', 'barcode', 'hourglass', 'key', 'flag', 'layout', 'printer', 'sound', 'usb', 'skin', 'tool', 'sync', 'wifi', 'car', 'schedule', 'user-add', 'user-delete', 'usergroup-add', 'usergroup-delete', 'man', 'woman', 'shop', 'gift', 'idcard', 'medicine-box', 'red-envelope', 'coffee', 'copyright', 'trademark', 'safety', 'wallet', 'bank', 'trophy', 'contacts', 'global', 'shake', 'api', 'fork', 'dashboard', 'table', 'profile', 'alert', 'audit', 'branches', 'build', 'border', 'crown', 'experiment', 'fire', 'money-collect', 'property-safety', 'read', 'reconciliation', 'rest', 'security-scan', 'insurance', 'interaction', 'safety-certificate', 'project', 'thunderbolt', 'block', 'cluster', 'deployment-unit', 'dollar', 'euro', 'pound', 'file-done', 'file-exclamation', 'file-protect', 'file-search', 'file-sync', 'gateway', 'gold', 'robot', 'shopping'] + }, + { + key: 'application', + title: '品牌和标识', + icons: ['android', 'apple', 'windows', 'ie', 'chrome', 'github', 'aliwangwang', 'dingding', 'weibo-square', 'weibo-circle', 'taobao-circle', 'html5', 'weibo', 'twitter', 'wechat', 'youtube', 'alipay-circle', 'taobao', 'skype', 'qq', 'medium-workmark', 'gitlab', 'medium', 'linkedin', 'google-plus', 'dropbox', 'facebook', 'codepen', 'code-sandbox', 'amazon', 'google', 'codepen-circle', 'alipay', 'ant-design', 'aliyun', 'zhihu', 'slack', 'slack-square', 'behance', 'behance-square', 'dribbble', 'dribbble-square', 'instagram', 'yuque', 'alibaba', 'yahoo'] + } +] diff --git a/admin/src/components/IconSelector/index.js b/admin/src/components/IconSelector/index.js new file mode 100644 index 0000000..2d27d70 --- /dev/null +++ b/admin/src/components/IconSelector/index.js @@ -0,0 +1,2 @@ +import IconSelector from './IconSelector' +export default IconSelector diff --git a/admin/src/components/Menu/SideMenu.vue b/admin/src/components/Menu/SideMenu.vue new file mode 100644 index 0000000..a926ff8 --- /dev/null +++ b/admin/src/components/Menu/SideMenu.vue @@ -0,0 +1,66 @@ + + + diff --git a/admin/src/components/Menu/index.js b/admin/src/components/Menu/index.js new file mode 100644 index 0000000..4348509 --- /dev/null +++ b/admin/src/components/Menu/index.js @@ -0,0 +1,2 @@ +import SMenu from './menu' +export default SMenu diff --git a/admin/src/components/Menu/menu.js b/admin/src/components/Menu/menu.js new file mode 100644 index 0000000..2b3f7a2 --- /dev/null +++ b/admin/src/components/Menu/menu.js @@ -0,0 +1,177 @@ +import Menu from 'ant-design-vue/es/menu' +import Icon from 'ant-design-vue/es/icon' + +export default { + name: 'SMenu', + props: { + menu: { + type: Array, + required: true + }, + theme: { + type: String, + required: false, + default: 'dark' + }, + mode: { + type: String, + required: false, + default: 'inline' + }, + collapsed: { + type: Boolean, + required: false, + default: false + } + }, + data () { + return { + openKeys: [], + selectedKeys: [], + cachedOpenKeys: [] + } + }, + computed: { + rootSubmenuKeys: vm => { + const keys = [] + vm.menu.forEach(item => keys.push(item.path)) + return keys + } + }, + mounted () { + this.updateMenu() + }, + watch: { + collapsed (val) { + if (val) { + this.cachedOpenKeys = this.openKeys.concat() + this.openKeys = [] + } else { + this.openKeys = this.cachedOpenKeys + } + }, + $route: function () { + this.updateMenu() + } + }, + methods: { + // select menu item + onOpenChange (openKeys) { + // 在水平模式下时执行,并且不再执行后续 + if (this.mode === 'horizontal') { + this.openKeys = openKeys + return + } + // 非水平模式时 + const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) + if (!this.rootSubmenuKeys.includes(latestOpenKey)) { + this.openKeys = openKeys + } else { + this.openKeys = latestOpenKey ? [latestOpenKey] : [] + } + }, + onSelect ({ item, key, selectedKeys }) { + this.selectedKeys = selectedKeys + this.$emit('select', { item, key, selectedKeys }) + }, + updateMenu () { + const routes = this.$route.matched.concat() + const { hidden } = this.$route.meta + if (routes.length >= 3 && hidden) { + routes.pop() + this.selectedKeys = [routes[routes.length - 1].path] + } else { + this.selectedKeys = [routes.pop().path] + } + const openKeys = [] + if (this.mode === 'inline') { + routes.forEach(item => { + openKeys.push(item.path) + }) + } + + this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + }, + + // render + renderItem (menu) { + if (!menu.hidden) { + return menu.children && !menu.hideChildrenInMenu ? this.renderSubMenu(menu) : this.renderMenuItem(menu) + } + return null + }, + renderMenuItem (menu) { + const target = menu.meta.target || null + const CustomTag = target && 'a' || 'router-link' + const props = { to: { name: menu.name } } + const attrs = { href: menu.path, target: menu.meta.target } + + if (menu.children && menu.hideChildrenInMenu) { + // 把有子菜单的 并且 父菜单是要隐藏子菜单的 + // 都给子菜单增加一个 hidden 属性 + // 用来给刷新页面时, selectedKeys 做控制用 + menu.children.forEach(item => { + item.meta = Object.assign(item.meta, { hidden: true }) + }) + } + + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + + ) + }, + renderSubMenu (menu) { + const itemArr = [] + if (!menu.hideChildrenInMenu) { + menu.children.forEach(item => itemArr.push(this.renderItem(item))) + } + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + {itemArr} + + ) + }, + renderIcon (icon) { + if (icon === 'none' || icon === undefined) { + return null + } + const props = {} + typeof (icon) === 'object' ? props.component = icon : props.type = icon + return ( + + ) + } + }, + + render () { + const dynamicProps = { + props: { + mode: this.mode, + theme: this.theme, + openKeys: this.openKeys, + selectedKeys: this.selectedKeys + }, + on: { + openChange: this.onOpenChange, + select: this.onSelect + } + } + + const menuTree = this.menu.map(item => { + if (item.hidden) { + return null + } + return this.renderItem(item) + }) + + return ({menuTree}) + } +} diff --git a/admin/src/components/Menu/menu.render.js b/admin/src/components/Menu/menu.render.js new file mode 100644 index 0000000..279e4ad --- /dev/null +++ b/admin/src/components/Menu/menu.render.js @@ -0,0 +1,155 @@ +import Menu from 'ant-design-vue/es/menu' +import Icon from 'ant-design-vue/es/icon' + +const { Item, SubMenu } = Menu + +export default { + name: 'SMenu', + props: { + menu: { + type: Array, + required: true + }, + theme: { + type: String, + required: false, + default: 'dark' + }, + mode: { + type: String, + required: false, + default: 'inline' + }, + collapsed: { + type: Boolean, + required: false, + default: false + } + }, + data () { + return { + openKeys: [], + selectedKeys: [], + cachedOpenKeys: [] + } + }, + computed: { + rootSubmenuKeys: vm => { + const keys = [] + vm.menu.forEach(item => keys.push(item.path)) + return keys + } + }, + created () { + this.updateMenu() + }, + watch: { + collapsed (val) { + if (val) { + this.cachedOpenKeys = this.openKeys.concat() + this.openKeys = [] + } else { + this.openKeys = this.cachedOpenKeys + } + }, + $route: function () { + this.updateMenu() + } + }, + methods: { + renderIcon: function (h, icon) { + if (icon === 'none' || icon === undefined) { + return null + } + const props = {} + typeof (icon) === 'object' ? props.component = icon : props.type = icon + return h(Icon, { props: { ...props } }) + }, + renderMenuItem: function (h, menu, pIndex, index) { + const target = menu.meta.target || null + return h(Item, { key: menu.path ? menu.path : 'item_' + pIndex + '_' + index }, [ + h('router-link', { attrs: { to: { name: menu.name }, target: target } }, [ + this.renderIcon(h, menu.meta.icon), + h('span', [menu.meta.title]) + ]) + ]) + }, + renderSubMenu: function (h, menu, pIndex, index) { + const this2_ = this + const subItem = [h('span', { slot: 'title' }, [this.renderIcon(h, menu.meta.icon), h('span', [menu.meta.title])])] + const itemArr = [] + const pIndex_ = pIndex + '_' + index + if (!menu.hideChildrenInMenu) { + menu.children.forEach(function (item, i) { + itemArr.push(this2_.renderItem(h, item, pIndex_, i)) + }) + } + return h(SubMenu, { key: menu.path ? menu.path : 'submenu_' + pIndex + '_' + index }, subItem.concat(itemArr)) + }, + renderItem: function (h, menu, pIndex, index) { + if (!menu.hidden) { + return menu.children && !menu.hideChildrenInMenu + ? this.renderSubMenu(h, menu, pIndex, index) + : this.renderMenuItem(h, menu, pIndex, index) + } + }, + renderMenu: function (h, menuTree) { + const this2_ = this + const menuArr = [] + menuTree.forEach(function (menu, i) { + if (!menu.hidden) { + menuArr.push(this2_.renderItem(h, menu, '0', i)) + } + }) + return menuArr + }, + onOpenChange (openKeys) { + const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) + if (!this.rootSubmenuKeys.includes(latestOpenKey)) { + this.openKeys = openKeys + } else { + this.openKeys = latestOpenKey ? [latestOpenKey] : [] + } + }, + updateMenu () { + const routes = this.$route.matched.concat() + + if (routes.length >= 4 && this.$route.meta.hidden) { + routes.pop() + this.selectedKeys = [routes[2].path] + } else { + this.selectedKeys = [routes.pop().path] + } + + const openKeys = [] + if (this.mode === 'inline') { + routes.forEach(item => { + openKeys.push(item.path) + }) + } + + this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + } + }, + render (h) { + return h( + Menu, + { + props: { + theme: this.$props.theme, + mode: this.$props.mode, + openKeys: this.openKeys, + selectedKeys: this.selectedKeys + }, + on: { + openChange: this.onOpenChange, + select: obj => { + this.selectedKeys = obj.selectedKeys + this.$emit('select', obj) + } + } + }, + this.renderMenu(h, this.menu) + ) + } +} diff --git a/admin/src/components/MultiTab/MultiTab.vue b/admin/src/components/MultiTab/MultiTab.vue new file mode 100644 index 0000000..4920455 --- /dev/null +++ b/admin/src/components/MultiTab/MultiTab.vue @@ -0,0 +1,177 @@ + diff --git a/admin/src/components/MultiTab/events.js b/admin/src/components/MultiTab/events.js new file mode 100644 index 0000000..b0230b5 --- /dev/null +++ b/admin/src/components/MultiTab/events.js @@ -0,0 +1,2 @@ +import Vue from 'vue' +export default new Vue() diff --git a/admin/src/components/MultiTab/index.js b/admin/src/components/MultiTab/index.js new file mode 100644 index 0000000..02a1c77 --- /dev/null +++ b/admin/src/components/MultiTab/index.js @@ -0,0 +1,40 @@ +import events from './events' +import MultiTab from './MultiTab' +import './index.less' + +const api = { + /** + * open new tab on route fullPath + * @param config + */ + open: function (config) { + events.$emit('open', config) + }, + rename: function (key, name) { + events.$emit('rename', { key: key, name: name }) + }, + /** + * close current page + */ + closeCurrentPage: function () { + this.close() + }, + /** + * close route fullPath tab + * @param config + */ + close: function (config) { + events.$emit('close', config) + } +} + +MultiTab.install = function (Vue) { + if (Vue.prototype.$multiTab) { + return + } + api.instance = events + Vue.prototype.$multiTab = api + Vue.component('multi-tab', MultiTab) +} + +export default MultiTab diff --git a/admin/src/components/MultiTab/index.less b/admin/src/components/MultiTab/index.less new file mode 100644 index 0000000..773e3af --- /dev/null +++ b/admin/src/components/MultiTab/index.less @@ -0,0 +1,25 @@ +@import '../index'; + +@multi-tab-prefix-cls: ~"@{ant-pro-prefix}-multi-tab"; +@multi-tab-wrapper-prefix-cls: ~"@{ant-pro-prefix}-multi-tab-wrapper"; + +/* +.topmenu .@{multi-tab-prefix-cls} { + max-width: 1200px; + margin: -23px auto 24px auto; +} +*/ +.@{multi-tab-prefix-cls} { + margin: -23px -24px 24px -24px; + background: #fff; +} + +.topmenu .@{multi-tab-wrapper-prefix-cls} { + max-width: 1200px; + margin: 0 auto; +} + +.topmenu.content-width-Fluid .@{multi-tab-wrapper-prefix-cls} { + max-width: 100%; + margin: 0 auto; +} diff --git a/admin/src/components/NProgress/nprogress.less b/admin/src/components/NProgress/nprogress.less new file mode 100644 index 0000000..7826c0e --- /dev/null +++ b/admin/src/components/NProgress/nprogress.less @@ -0,0 +1,76 @@ +@import url('../index.less'); + +/* Make clicks pass-through */ +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + background: @primary-color; + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +/* Fancy blur effect */ +#nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color; + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); +} + +/* Remove these to get rid of the spinner */ +#nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; +} + +#nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: @primary-color; + border-left-color: @primary-color; + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; +} + +.nprogress-custom-parent #nprogress .spinner, +.nprogress-custom-parent #nprogress .bar { + position: absolute; +} + +@-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } +} +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + diff --git a/admin/src/components/NoticeIcon/NoticeIcon.vue b/admin/src/components/NoticeIcon/NoticeIcon.vue new file mode 100644 index 0000000..3bc9ebb --- /dev/null +++ b/admin/src/components/NoticeIcon/NoticeIcon.vue @@ -0,0 +1,102 @@ + + + + + + diff --git a/admin/src/components/NoticeIcon/index.js b/admin/src/components/NoticeIcon/index.js new file mode 100644 index 0000000..659b9ec --- /dev/null +++ b/admin/src/components/NoticeIcon/index.js @@ -0,0 +1,2 @@ +import NoticeIcon from './NoticeIcon' +export default NoticeIcon diff --git a/admin/src/components/NumberInfo/NumberInfo.vue b/admin/src/components/NumberInfo/NumberInfo.vue new file mode 100644 index 0000000..b33036a --- /dev/null +++ b/admin/src/components/NumberInfo/NumberInfo.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/admin/src/components/NumberInfo/index.js b/admin/src/components/NumberInfo/index.js new file mode 100644 index 0000000..659a2f3 --- /dev/null +++ b/admin/src/components/NumberInfo/index.js @@ -0,0 +1,3 @@ +import NumberInfo from './NumberInfo' + +export default NumberInfo diff --git a/admin/src/components/NumberInfo/index.less b/admin/src/components/NumberInfo/index.less new file mode 100644 index 0000000..719113d --- /dev/null +++ b/admin/src/components/NumberInfo/index.less @@ -0,0 +1,55 @@ +@import "../index"; + +@numberInfo-prefix-cls: ~"@{ant-pro-prefix}-number-info"; + +.@{numberInfo-prefix-cls} { + + .ant-pro-number-info-subtitle { + color: @text-color-secondary; + font-size: @font-size-base; + height: 22px; + line-height: 22px; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + } + + .number-info-value { + margin-top: 4px; + font-size: 0; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + + & > span { + color: @heading-color; + display: inline-block; + line-height: 32px; + height: 32px; + font-size: 24px; + margin-right: 32px; + } + + .sub-total { + color: @text-color-secondary; + font-size: @font-size-lg; + vertical-align: top; + margin-right: 0; + i { + font-size: 12px; + transform: scale(0.82); + margin-left: 4px; + } + :global { + .anticon-caret-up { + color: @red-6; + } + .anticon-caret-down { + color: @green-6; + } + } + } + } +} \ No newline at end of file diff --git a/admin/src/components/NumberInfo/index.md b/admin/src/components/NumberInfo/index.md new file mode 100644 index 0000000..147adc4 --- /dev/null +++ b/admin/src/components/NumberInfo/index.md @@ -0,0 +1,43 @@ +# NumberInfo 数据文本 + +常用在数据卡片中,用于突出展示某个业务数据。 + + + +引用方式: + +```javascript +import NumberInfo from '@/components/NumberInfo' + +export default { + components: { + NumberInfo + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + +``` + + + +## API + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +title | 标题 | ReactNode\|string | - +subTitle | 子标题 | ReactNode\|string | - +total | 总量 | ReactNode\|string | - +subTotal | 子总量 | ReactNode\|string | - +status | 增加状态 | 'up \| down' | - +theme | 状态样式 | string | 'light' +gap | 设置数字和描述之间的间距(像素)| number | 8 diff --git a/admin/src/components/PageHeader/PageHeader.vue b/admin/src/components/PageHeader/PageHeader.vue new file mode 100644 index 0000000..4235108 --- /dev/null +++ b/admin/src/components/PageHeader/PageHeader.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/admin/src/components/PageHeader/index.js b/admin/src/components/PageHeader/index.js new file mode 100644 index 0000000..ec1078c --- /dev/null +++ b/admin/src/components/PageHeader/index.js @@ -0,0 +1,2 @@ +import PageHeader from './PageHeader' +export default PageHeader diff --git a/admin/src/components/PageLoading/index.jsx b/admin/src/components/PageLoading/index.jsx new file mode 100644 index 0000000..af6d6d6 --- /dev/null +++ b/admin/src/components/PageLoading/index.jsx @@ -0,0 +1,106 @@ +import { Spin } from 'ant-design-vue' + +export const PageLoading = { + name: 'PageLoading', + props: { + tip: { + type: String, + default: 'Loading..' + }, + size: { + type: String, + default: 'large' + } + }, + render () { + const style = { + textAlign: 'center', + background: 'rgba(0,0,0,0.6)', + position: 'fixed', + top: 0, + bottom: 0, + left: 0, + right: 0, + zIndex: 1100 + } + const spinStyle = { + position: 'absolute', + left: '50%', + top: '40%', + transform: 'translate(-50%, -50%)' + } + return (
+ +
) + } +} + +const version = '0.0.1' +const loading = {} + +loading.newInstance = (Vue, options) => { + let loadingElement = document.querySelector('body>div[type=loading]') + if (!loadingElement) { + loadingElement = document.createElement('div') + loadingElement.setAttribute('type', 'loading') + loadingElement.setAttribute('class', 'ant-loading-wrapper') + document.body.appendChild(loadingElement) + } + + const cdProps = Object.assign({ visible: false, size: 'large', tip: 'Loading...' }, options) + + const instance = new Vue({ + data () { + return { + ...cdProps + } + }, + render () { + const { tip } = this + const props = {} + this.tip && (props.tip = tip) + if (this.visible) { + return + } + return null + } + }).$mount(loadingElement) + + function update (config) { + const { visible, size, tip } = { ...cdProps, ...config } + instance.$set(instance, 'visible', visible) + if (tip) { + instance.$set(instance, 'tip', tip) + } + if (size) { + instance.$set(instance, 'size', size) + } + } + + return { + instance, + update + } +} + +const api = { + show: function (options) { + this.instance.update({ ...options, visible: true }) + }, + hide: function () { + this.instance.update({ visible: false }) + } +} + +const install = function (Vue, options) { + if (Vue.prototype.$loading) { + return + } + api.instance = loading.newInstance(Vue, options) + Vue.prototype.$loading = api +} + +export default { + version, + install +} diff --git a/admin/src/components/Result/Result.vue b/admin/src/components/Result/Result.vue new file mode 100644 index 0000000..99f7f19 --- /dev/null +++ b/admin/src/components/Result/Result.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/admin/src/components/Result/index.js b/admin/src/components/Result/index.js new file mode 100644 index 0000000..51cb3b2 --- /dev/null +++ b/admin/src/components/Result/index.js @@ -0,0 +1,2 @@ +import Result from './Result.vue' +export default Result diff --git a/admin/src/components/Search/GlobalSearch.jsx b/admin/src/components/Search/GlobalSearch.jsx new file mode 100644 index 0000000..13bfa56 --- /dev/null +++ b/admin/src/components/Search/GlobalSearch.jsx @@ -0,0 +1,62 @@ +import { Select } from 'ant-design-vue' +import './index.less' + +const GlobalSearch = { + name: 'GlobalSearch', + data () { + return { + visible: false + } + }, + mounted () { + const keyboardHandle = (e) => { + e.preventDefault() + e.stopPropagation() + const { ctrlKey, shiftKey, altKey, keyCode } = e + // key is `K` and hold ctrl + if (keyCode === 75 && ctrlKey && !shiftKey && !altKey) { + this.visible = !this.visible + } + } + document.addEventListener('keydown', keyboardHandle) + }, + render () { + const { visible } = this + const handleSearch = (e) => { + this.$emit('search', e) + } + + const handleChange = (e) => { + this.$emit('change', e) + } + if (!visible) { + return null + } + return ( + + ) + } +} + +GlobalSearch.install = function (Vue) { + Vue.component(GlobalSearch.name, GlobalSearch) +} + +export default GlobalSearch diff --git a/admin/src/components/Search/index.less b/admin/src/components/Search/index.less new file mode 100644 index 0000000..d397852 --- /dev/null +++ b/admin/src/components/Search/index.less @@ -0,0 +1,25 @@ +@import "~ant-design-vue/es/style/themes/default"; + +.global-search-wrapper { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: @zindex-modal-mask; + background: @modal-mask-bg; + + .global-search-box { + position: absolute; + top: 20%; + left: 50%; + width: 450px; + transform: translate(-50%, -50%); + + .global-search-tips { + color: @white; + font-size: @font-size-lg; + text-align: right; + } + } +} \ No newline at end of file diff --git a/admin/src/components/SettingDrawer/SettingDrawer.vue b/admin/src/components/SettingDrawer/SettingDrawer.vue new file mode 100644 index 0000000..44faddd --- /dev/null +++ b/admin/src/components/SettingDrawer/SettingDrawer.vue @@ -0,0 +1,360 @@ + + + + + diff --git a/admin/src/components/SettingDrawer/SettingItem.vue b/admin/src/components/SettingDrawer/SettingItem.vue new file mode 100644 index 0000000..2b3b553 --- /dev/null +++ b/admin/src/components/SettingDrawer/SettingItem.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/admin/src/components/SettingDrawer/index.js b/admin/src/components/SettingDrawer/index.js new file mode 100644 index 0000000..8260f2d --- /dev/null +++ b/admin/src/components/SettingDrawer/index.js @@ -0,0 +1,2 @@ +import SettingDrawer from './SettingDrawer' +export default SettingDrawer diff --git a/admin/src/components/SettingDrawer/settingConfig.js b/admin/src/components/SettingDrawer/settingConfig.js new file mode 100644 index 0000000..c45911e --- /dev/null +++ b/admin/src/components/SettingDrawer/settingConfig.js @@ -0,0 +1,46 @@ +import { message } from 'ant-design-vue/es' +import themeColor from './themeColor.js' + +const colorList = [ + { + key: '薄暮', color: '#F5222D' + }, + { + key: '火山', color: '#FA541C' + }, + { + key: '日暮', color: '#FAAD14' + }, + { + key: '明青', color: '#13C2C2' + }, + { + key: '极光绿', color: '#52C41A' + }, + { + key: '拂晓蓝(默认)', color: '#1890FF' + }, + { + key: '极客蓝', color: '#2F54EB' + }, + { + key: '酱紫', color: '#722ED1' + } +] + +const updateTheme = newPrimaryColor => { + const hideMessage = message.loading('正在切换主题!', 0) + themeColor.changeColor(newPrimaryColor).finally(t => { + setTimeout(() => { + hideMessage() + }, 10) + }) +} + +const updateColorWeak = colorWeak => { + // document.body.className = colorWeak ? 'colorWeak' : ''; + const app = document.body.querySelector('#app') + colorWeak ? app.classList.add('colorWeak') : app.classList.remove('colorWeak') +} + +export { updateTheme, colorList, updateColorWeak } diff --git a/admin/src/components/SettingDrawer/themeColor.js b/admin/src/components/SettingDrawer/themeColor.js new file mode 100644 index 0000000..10dfbd4 --- /dev/null +++ b/admin/src/components/SettingDrawer/themeColor.js @@ -0,0 +1,24 @@ +import client from 'webpack-theme-color-replacer/client' +import generate from '@ant-design/colors/lib/generate' + +export default { + getAntdSerials (color) { + // 淡化(即less的tint) + const lightens = new Array(9).fill().map((t, i) => { + return client.varyColor.lighten(color, i / 10) + }) + // colorPalette变换得到颜色值 + const colorPalettes = generate(color) + const rgb = client.varyColor.toNum3(color.replace('#', '')).join(',') + return lightens.concat(colorPalettes).concat(rgb) + }, + changeColor (newColor) { + var options = { + newColors: this.getAntdSerials(newColor), // new colors array, one-to-one corresponde with `matchColors` + changeUrl (cssUrl) { + return `/${cssUrl}` // while router is not `hash` mode, it needs absolute path + } + } + return client.changer.changeColor(options, Promise) + } +} diff --git a/admin/src/components/StandardFormRow/StandardFormRow.vue b/admin/src/components/StandardFormRow/StandardFormRow.vue new file mode 100644 index 0000000..a4e261b --- /dev/null +++ b/admin/src/components/StandardFormRow/StandardFormRow.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/admin/src/components/StandardFormRow/index.js b/admin/src/components/StandardFormRow/index.js new file mode 100644 index 0000000..8155cc7 --- /dev/null +++ b/admin/src/components/StandardFormRow/index.js @@ -0,0 +1,3 @@ +import StandardFormRow from './StandardFormRow' + +export default StandardFormRow diff --git a/admin/src/components/Table/README.md b/admin/src/components/Table/README.md new file mode 100644 index 0000000..8e32dd0 --- /dev/null +++ b/admin/src/components/Table/README.md @@ -0,0 +1,338 @@ +Table 重封装组件说明 +==== + + +封装说明 +---- + +> 基础的使用方式与 API 与 [官方版(Table)](https://vuecomponent.github.io/ant-design-vue/components/table-cn/) 本一致,在其基础上,封装了加载数据的方法。 +> +> 你无需在你是用表格的页面进行分页逻辑处理,仅需向 Table 组件传递绑定 `:data="Promise"` 对象即可 + +该 `table` 由 [@Saraka](https://github.com/saraka-tsukai) 完成封装 + + +例子1 +---- +(基础使用) + +```vue + + + + + +``` + + + +例子2 +---- + +(简单的表格,最后一列是各种操作) + +```vue + + + +``` + + + +内置方法 +---- + +通过 `this.$refs.table` 调用 + +`this.$refs.table.refresh(true)` 刷新列表 (用户新增/修改数据后,重载列表数据) + +> 注意:要调用 `refresh(bool)` 需要给表格组件设定 `ref` 值 +> +> `refresh()` 方法可以传一个 `bool` 值,当有传值 或值为 `true` 时,则刷新时会强制刷新到第一页(常用户页面 搜索 按钮进行搜索时,结果从第一页开始分页) + + +内置属性 +---- +> 除去 `a-table` 自带属性外,还而外提供了一些额外属性属性 + + +| 属性 | 说明 | 类型 | 默认值 | +| -------------- | ----------------------------------------------- | ----------------- | ------ | +| alert | 设置是否显示表格信息栏 | [object, boolean] | null | +| showPagination | 显示分页选择器,可传 'auto' \| boolean | [string, boolean] | 'auto' | +| data | 加载数据方法 必须为 `Promise` 对象 **必须绑定** | Promise | - | + + +`alert` 属性对象: + +```javascript +alert: { + show: Boolean, + clear: [Function, Boolean] +} +``` + +注意事项 +---- + +> 你可能需要为了与后端提供的接口返回结果一致而去修改以下代码: +> (需要注意的是,这里的修改是全局性的,意味着整个项目所有使用该 table 组件都需要遵守这个返回结果定义的字段。) +> +> 文档中的结构有可能由于组件 bug 进行修正而改动。实际修改请以当时最新版本为准 + +修改 `@/components/table/index.js` 第 156 行起 + + + +```javascript +result.then(r => { + this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { + current: r.pageNo, // 返回结果中的当前分页数 + total: r.totalCount, // 返回结果中的总记录数 + showSizeChanger: this.showSizeChanger, + pageSize: (pagination && pagination.pageSize) || + this.localPagination.pageSize + }) || false + // 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页 + if (r.data.length === 0 && this.showPagination && this.localPagination.current > 1) { + this.localPagination.current-- + this.loadData() + return + } + + // 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小 + // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 + try { + if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.pageNo * this.localPagination.pageSize))) { + this.localPagination.hideOnSinglePage = true + } + } catch (e) { + this.localPagination = false + } + this.localDataSource = r.data // 返回结果中的数组数据 + this.localLoading = false + }) +``` +返回 JSON 例子: +```json +{ + "message": "", + "result": { + "data": [{ + id: 1, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + title: 'Alipay', + description: '那是一种内在的东西, 他们到达不了,也无法触及的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 2, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + title: 'Angular', + description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 3, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + title: 'Ant Design', + description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 4, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + title: 'Admin.NET', + description: '那时候我只会想自己想要什么,从不想自己拥有什么', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 5, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', + title: 'Bootstrap', + description: '凛冬将至', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 6, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', + title: 'Vue', + description: '生命就像一盒巧克力,结果往往出人意料', + status: 1, + updatedAt: '2018-07-26 00:00:00' + } + ], + "pageSize": 10, + "pageNo": 0, + "totalPage": 6, + "totalCount": 57 + }, + "status": 200, + "timestamp": 1534955098193 +} +``` + + + +更新时间 +---- + +该文档最后更新于: 2019-06-23 PM 17:19 \ No newline at end of file diff --git a/admin/src/components/Table/columnSetting.vue b/admin/src/components/Table/columnSetting.vue new file mode 100644 index 0000000..7271feb --- /dev/null +++ b/admin/src/components/Table/columnSetting.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/admin/src/components/Table/index.js b/admin/src/components/Table/index.js new file mode 100644 index 0000000..abdf659 --- /dev/null +++ b/admin/src/components/Table/index.js @@ -0,0 +1,477 @@ +import T from 'ant-design-vue/es/table/Table' +import get from 'lodash.get' +import draggable from 'vuedraggable' +import columnSetting from './columnSetting' +import './index.less' + +export default { + components: { + draggable, columnSetting + }, + data () { + return { + needTotalList: [], + + selectedRows: [], + selectedRowKeys: [], + + localLoading: false, + localDataSource: [], + localPagination: Object.assign({}, this.pagination), + isFullscreen: false, + customSize: this.size, + columnsSetting: [], + queryparams: {} + } + }, + props: Object.assign({}, T.props, { + rowKey: { + type: [String, Function], + default: 'key' + }, + isexport: { + type: Boolean, + default: false + }, + data: { + type: Function, + required: true + }, + pageNum: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 10 + }, + showSizeChanger: { + type: Boolean, + default: true + }, + size: { + type: String, + default: 'middle' + }, + /** + * alert: { + * show: true, + * clear: Function + * } + */ + alert: { + type: [Object, Boolean], + default: null + }, + rowSelection: { + type: Object, + default: null + }, + /** @Deprecated */ + showAlertInfo: { + type: Boolean, + default: false + }, + showPagination: { + type: String | Boolean, + default: 'auto' + }, + /** + * enable page URI mode + * + * e.g: + * /users/1 + * /users/2 + * /users/3?queryParam=test + * ... + */ + pageURI: { + type: Boolean, + default: false + }, + extraTool: { + type: Array, + default: () => ([]) + }, + onExport: { // 导出 + type: Function + } + }), + watch: { + 'localPagination.current' (val) { + this.pageURI && this.$router.push({ + ...this.$route, + name: this.$route.name, + params: Object.assign({}, this.$route.params, { + pageNo: val + }) + }) + }, + pageNum (val) { + Object.assign(this.localPagination, { + current: val + }) + }, + pageSize (val) { + Object.assign(this.localPagination, { + pageSize: val + }) + }, + showSizeChanger (val) { + Object.assign(this.localPagination, { + showSizeChanger: val + }) + } + }, + created () { + const { pageNo } = this.$route.params + const localPageNum = this.pageURI && (pageNo && parseInt(pageNo)) || this.pageNum + this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { + current: localPageNum, + pageSize: this.pageSize, + showSizeChanger: this.showSizeChanger, + showTotal: (total, range) => { + return range[0] + '-' + range[1] + '共' + total + '条' + } + }) || false + this.needTotalList = this.initTotalList(this.columns) + this.loadData() + this.columnsSetting = this.columns + }, + methods: { + /** + * 表格重新加载方法 + * 如果参数为 true, 则强制刷新到第一页 + * @param Boolean bool + */ + refresh (bool = false) { + bool && (this.localPagination = Object.assign({}, { + current: 1, pageSize: this.pageSize + })) + this.loadData() + }, + /** + * 加载数据方法 + * @param {Object} pagination 分页选项器 + * @param {Object} filters 过滤条件 + * @param {Object} sorter 排序条件 + */ + loadData (pagination, filters, sorter) { + this.localLoading = true + const parameter = Object.assign({ + pageNo: (pagination && pagination.current) || + this.showPagination && this.localPagination.current || this.pageNum, + pageSize: (pagination && pagination.pageSize) || + this.showPagination && this.localPagination.pageSize || this.pageSize + }, + (sorter && sorter.field && { + sortField: sorter.field + }) || {}, + (sorter && sorter.order && { + sortOrder: sorter.order + }) || {}, { + ...filters + } + ) + this.queryparams = parameter + const result = this.data(parameter) + // 对接自己的通用数据接口需要修改下方代码中的 r.pageNo, r.totalCount, r.data + // eslint-disable-next-line + if ((typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function') { + result.then(r => { + if (r == null) { + this.localLoading = false + return + } + this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { + current: r.pageno, // pageNo, // 返回结果中的当前分页数 + total: r.totalrows, // totalCount, // 返回结果中的总记录数 + showSizeChanger: this.showSizeChanger, + pageSize: (pagination && pagination.pageSize) || + this.localPagination.pageSize + }) || false + // 后端数据rows为null保存修复 + if (r.rows == null) { + r.rows = [] + } + // 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页 + if (r.rows.length === 0 && this.showPagination && this.localPagination.current > 1) { + this.localPagination.current-- + this.loadData() + return + } + + // 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小 + // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 + try { + if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.totalPage * this.localPagination.pageSize))) { + this.localPagination.hideOnSinglePage = true + } + } catch (e) { + this.localPagination = false + } + this.localDataSource = r.rows // 返回结果中的数组数据 + this.localLoading = false + }) + } + }, + initTotalList (columns) { + const totalList = [] + columns && columns instanceof Array && columns.forEach(column => { + if (column.needTotal) { + totalList.push({ + ...column, + total: 0 + }) + } + }) + return totalList + }, + /** + * 用于更新已选中的列表数据 total 统计 + * @param selectedRowKeys + * @param selectedRows + */ + updateSelect (selectedRowKeys, selectedRows) { + this.selectedRows = selectedRows + this.selectedRowKeys = selectedRowKeys + const list = this.needTotalList + this.needTotalList = list.map(item => { + return { + ...item, + total: selectedRows.reduce((sum, val) => { + const total = sum + parseInt(get(val, item.dataIndex)) + return isNaN(total) ? 0 : total + }, 0) + } + }) + }, + /** + * 清空 table 已选中项 + */ + clearSelected () { + if (this.rowSelection) { + this.rowSelection.onChange([], []) + this.updateSelect([], []) + } + }, + /** + * 处理交给 table 使用者去处理 clear 事件时,内部选中统计同时调用 + * @param callback + * @returns {*} + */ + renderClear (callback) { + if (this.selectedRowKeys.length <= 0) return null + return ( + { + callback() + this.clearSelected() + }}>清空 + ) + }, + renderAlert () { + // 绘制统计列数据 + // eslint-disable-next-line no-unused-vars + const needTotalItems = this.needTotalList.map((item) => { + return ( + {item.title}总计 {!item.customRender ? item.total : item.customRender(item.total)} + ) + }) + + // 绘制 清空 按钮 + // eslint-disable-next-line no-unused-vars + const clearItem = (typeof this.alert.clear === 'boolean' && this.alert.clear) ? ( + this.renderClear(this.clearSelected) + ) : (this.alert !== null && typeof this.alert.clear === 'function') ? ( + this.renderClear(this.alert.clear) + ) : null + + // 绘制 alert 组件 + // 统一先去除alert组件 + return '' + /* return ( + + + + ) */ + }, + columnChange(val) { + this.columnsSetting = val + }, + renderHeader () { + let tools = [ + { + icon: 'reload', + title: '刷新', + onClick: () => { + this.refresh() + } + }, + // { + // icon: 'column-height', + // title: '密度', + // isDropdown: true, + // menu: () => { + // const onClick = ({ key }) => { + // this.customSize = key + // } + // return ( + // + // 默认 + // 中等 + // 紧凑 + // + // ) + // }, + // onClick: () => { + // } + // }, + { + icon: 'setting', + title: '列设置', + isDropdown: true, + menu: () => { + return + }, + onClick: () => { + } + }, + { + icon: 'printer', + title: '打印', + isDropdown: false, + onClick: () => { + const printele = this.$el.getElementsByClassName('ant-table-body') + const newstr = printele !== null ? printele[0].innerHTML : '' + var printWin = window.open('打印窗口', '_blank') + var style = [''].join('') + + var html = newstr // 输出表头 + printWin.document.write(style + html) + printWin.document.close() + printWin.print() + printWin.close() + } + } + ] + if (this.isexport) { + tools.push({ + icon: 'download', + title: '导出', + isDropdown: false, + onClick: () => { + if (this.onExport) { + this.onExport() + } + } + }) + } + if (this.extraTool.length) { + tools = tools.concat(this.extraTool) + } + + return ( +
+
+ {this.$scopedSlots.operator && this.$scopedSlots.operator()} +
+
+ { + tools.map(tool => { + if (tool.isDropdown) { + return ( + + + + + { tool.menu() } + + ) + } + return ( + + + + ) + }) + } +
+
+ ) + /* return ( + + + + ) */ + } + }, + + render () { + let props = {} + const localKeys = Object.keys(this.$data) + const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) && typeof this.rowSelection.selectedRowKeys !== 'undefined' || this.alert + + Object.keys(T.props).forEach(k => { + const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}` + if (localKeys.includes(localKey)) { + props[k] = this[localKey] + return props[k] + } + if (k === 'rowSelection') { + if (showAlert && this.rowSelection) { + // 如果需要使用alert,则重新绑定 rowSelection 事件 + props[k] = { + ...this.rowSelection, + selectedRows: this.selectedRows, + selectedRowKeys: this.selectedRowKeys, + onChange: (selectedRowKeys, selectedRows) => { + this.updateSelect(selectedRowKeys, selectedRows) + typeof this[k].onChange !== 'undefined' && this[k].onChange(selectedRowKeys, selectedRows) + } + } + return props[k] + } else if (!this.rowSelection) { + // 如果没打算开启 rowSelection 则清空默认的选择项 + props[k] = null + return props[k] + } + } + this[k] && (props[k] = this[k]) + // 此处配置表格大小与要显示的列 + props = { + ...props, + size: this.customSize, + columns: this.columnsSetting.filter(value => value.checked === undefined || value.checked) + } + return props[k] + }) + const table = ( + { this.$emit('expand', expanded, record) } }> + { Object.keys(this.$slots).map(name => ()) } + + ) + + return ( +
+ { this.renderHeader() } + { showAlert ? this.renderAlert() : null } + { table } +
+ ) + } +} diff --git a/admin/src/components/Table/index.less b/admin/src/components/Table/index.less new file mode 100644 index 0000000..3ef6793 --- /dev/null +++ b/admin/src/components/Table/index.less @@ -0,0 +1,54 @@ +.table-wrapper{ + background: #fff; +} +.s-table-tool{ + display: flex; + margin-bottom: 16px; + .s-table-tool-left{ + flex: 1; + } + .s-table-tool-right{ + display: inline-flex; + align-items: center; + .s-tool-item{ + font-size: 16px; + margin-left: 16px; + cursor: pointer; + + } + } +} + +.s-tool-column-item{ + display: flex; + align-items: center; + padding: 4px 16px 4px 4px; + .ant-checkbox-wrapper{ + flex: 1; + } + .s-tool-column-handle{ + opacity: .8; + cursor: move; + .anticon-more{ + font-size: 12px; + margin-top: 2px; + & + .anticon-more{ + margin: 2px 4px 0 -8px; + } + } + } +} +.s-tool-column-header{ + padding: 5px 16px 10px 24px; + min-width: 180px; +} +.s-tool-column{ + .ant-divider{ + margin: 0; + } + .ant-checkbox-group{ + padding: 4px 0; + display: block; + } +} + diff --git a/admin/src/components/TagSelect/TagSelectOption.jsx b/admin/src/components/TagSelect/TagSelectOption.jsx new file mode 100644 index 0000000..b5ae799 --- /dev/null +++ b/admin/src/components/TagSelect/TagSelectOption.jsx @@ -0,0 +1,45 @@ +import { Tag } from 'ant-design-vue' +const { CheckableTag } = Tag + +export default { + name: 'TagSelectOption', + props: { + prefixCls: { + type: String, + default: 'ant-pro-tag-select-option' + }, + value: { + type: [String, Number, Object], + default: '' + }, + checked: { + type: Boolean, + default: false + } + }, + data () { + return { + localChecked: this.checked || false + } + }, + watch: { + 'checked' (val) { + this.localChecked = val + }, + '$parent.items': { + handler: function (val) { + this.value && val.hasOwnProperty(this.value) && (this.localChecked = val[this.value]) + }, + deep: true + } + }, + render () { + const { $slots, value } = this + const onChange = (checked) => { + this.$emit('change', { value, checked }) + } + return ( + {$slots.default} + ) + } +} diff --git a/admin/src/components/TagSelect/index.jsx b/admin/src/components/TagSelect/index.jsx new file mode 100644 index 0000000..af98ad7 --- /dev/null +++ b/admin/src/components/TagSelect/index.jsx @@ -0,0 +1,113 @@ +import PropTypes from 'ant-design-vue/es/_util/vue-types' +import Option from './TagSelectOption.jsx' +import { filterEmpty } from '@/components/_util/util' + +export default { + Option, + name: 'TagSelect', + model: { + prop: 'checked', + event: 'change' + }, + props: { + prefixCls: { + type: String, + default: 'ant-pro-tag-select' + }, + defaultValue: { + type: PropTypes.array, + default: null + }, + value: { + type: PropTypes.array, + default: null + }, + expandable: { + type: Boolean, + default: false + }, + hideCheckAll: { + type: Boolean, + default: false + } + }, + data () { + return { + expand: false, + localCheckAll: false, + items: this.getItemsKey(filterEmpty(this.$slots.default)), + val: this.value || this.defaultValue || [] + } + }, + methods: { + onChange (checked) { + const key = Object.keys(this.items).filter(key => key === checked.value) + this.items[key] = checked.checked + const bool = Object.values(this.items).lastIndexOf(false) + if (bool === -1) { + this.localCheckAll = true + } else { + this.localCheckAll = false + } + }, + onCheckAll (checked) { + Object.keys(this.items).forEach(v => { + this.items[v] = checked.checked + }) + this.localCheckAll = checked.checked + }, + getItemsKey (items) { + const totalItem = {} + items.forEach(item => { + totalItem[item.componentOptions.propsData && item.componentOptions.propsData.value] = false + }) + return totalItem + }, + // CheckAll Button + renderCheckAll () { + const props = { + on: { + change: (checked) => { + this.onCheckAll(checked) + checked.value = 'total' + this.$emit('change', checked) + } + } + } + const checkAllElement = + return !this.hideCheckAll && checkAllElement || null + }, + // expandable + renderExpandable () { + + }, + // render option + renderTags (items) { + const listeners = { + change: (checked) => { + this.onChange(checked) + this.$emit('change', checked) + } + } + + return items.map(vnode => { + const options = vnode.componentOptions + options.listeners = listeners + return vnode + }) + } + }, + render () { + const { $props: { prefixCls } } = this + const classString = { + [`${prefixCls}`]: true + } + const tagItems = filterEmpty(this.$slots.default) + return ( +
+ {this.renderCheckAll()} + {this.renderTags(tagItems)} +
+ ) + } +} diff --git a/admin/src/components/TextArea/index.jsx b/admin/src/components/TextArea/index.jsx new file mode 100644 index 0000000..00aeb2f --- /dev/null +++ b/admin/src/components/TextArea/index.jsx @@ -0,0 +1,69 @@ +import './style.less' +import { getStrFullLength, cutStrByFullLength } from '../_util/util' +import Input from 'ant-design-vue/es/input' +const TextArea = Input.TextArea + +export default { + name: 'LimitTextArea', + model: { + prop: 'value', + event: 'change' + }, + props: Object.assign({}, TextArea.props, { + prefixCls: { + type: String, + default: 'ant-textarea-limit' + }, + // eslint-disable-next-line + value: { + type: String + }, + limit: { + type: Number, + default: 200 + } + }), + data () { + return { + currentLimit: 0 + } + }, + watch: { + value (val) { + this.calcLimitNum(val) + } + }, + created () { + this.calcLimitNum(this.value) + }, + methods: { + handleChange (e) { + const value = e.target.value + const len = getStrFullLength(value) + if (len <= this.limit) { + this.currentLimit = len + this.$emit('change', value) + return + } else { + const str = cutStrByFullLength(value, this.limit) + this.currentLimit = getStrFullLength(str) + this.$emit('change', str) + } + console.error('limit out! currentLimit:', this.currentLimit) + }, + calcLimitNum (val) { + const len = getStrFullLength(val) + this.currentLimit = len + } + }, + render () { + const { prefixCls, ...props } = this.$props + return ( +
+ + {this.currentLimit}/{this.limit} +
+ ) + } +} diff --git a/admin/src/components/TextArea/style.less b/admin/src/components/TextArea/style.less new file mode 100644 index 0000000..6dee494 --- /dev/null +++ b/admin/src/components/TextArea/style.less @@ -0,0 +1,12 @@ +.ant-textarea-limit { + position: relative; + + .limit { + position: absolute; + color: #909399; + background: #fff; + font-size: 12px; + bottom: 5px; + right: 10px; + } +} \ No newline at end of file diff --git a/admin/src/components/Tree/Tree.jsx b/admin/src/components/Tree/Tree.jsx new file mode 100644 index 0000000..e5a2a11 --- /dev/null +++ b/admin/src/components/Tree/Tree.jsx @@ -0,0 +1,124 @@ +import { Menu, Icon, Input } from 'ant-design-vue' + +const { Item, ItemGroup, SubMenu } = Menu +const { Search } = Input + +export default { + name: 'Tree', + props: { + dataSource: { + type: Array, + required: true + }, + openKeys: { + type: Array, + default: () => [] + }, + search: { + type: Boolean, + default: false + } + }, + created () { + this.localOpenKeys = this.openKeys.slice(0) + }, + data () { + return { + localOpenKeys: [] + } + }, + methods: { + handlePlus (item) { + this.$emit('add', item) + }, + handleTitleClick (...args) { + this.$emit('titleClick', { args }) + }, + + renderSearch () { + return ( + + ) + }, + renderIcon (icon) { + return icon && () || null + }, + renderMenuItem (item) { + return ( + + { this.renderIcon(item.icon) } + { item.title } + this.handlePlus(item) } }}> + + ) + }, + renderItem (item) { + return item.children ? this.renderSubItem(item, item.key) : this.renderMenuItem(item, item.key) + }, + renderItemGroup (item) { + const childrenItems = item.children.map(o => { + return this.renderItem(o, o.key) + }) + + return ( + + + { childrenItems } + + ) + }, + renderSubItem (item, key) { + const childrenItems = item.children && item.children.map(o => { + return this.renderItem(o, o.key) + }) + + const title = ( + + { this.renderIcon(item.icon) } + { item.title } + + ) + + if (item.group) { + return this.renderItemGroup(item) + } + // titleClick={this.handleTitleClick(item)} + return ( + + { title } + { childrenItems } + + ) + } + }, + render () { + const { dataSource, search } = this.$props + + // this.localOpenKeys = openKeys.slice(0) + const list = dataSource.map(item => { + return this.renderItem(item) + }) + + return ( +
+ { search ? this.renderSearch() : null } + this.$emit('click', item), 'update:openKeys': val => { this.localOpenKeys = val } } }} openKeys={this.localOpenKeys}> + { list } + +
+ ) + } +} diff --git a/admin/src/components/Trend/Trend.vue b/admin/src/components/Trend/Trend.vue new file mode 100644 index 0000000..526e1cc --- /dev/null +++ b/admin/src/components/Trend/Trend.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/admin/src/components/Trend/index.js b/admin/src/components/Trend/index.js new file mode 100644 index 0000000..9f14228 --- /dev/null +++ b/admin/src/components/Trend/index.js @@ -0,0 +1,3 @@ +import Trend from './Trend.vue' + +export default Trend diff --git a/admin/src/components/Trend/index.less b/admin/src/components/Trend/index.less new file mode 100644 index 0000000..8a3d24c --- /dev/null +++ b/admin/src/components/Trend/index.less @@ -0,0 +1,42 @@ +@import "../index"; + +@trend-prefix-cls: ~"@{ant-pro-prefix}-trend"; + +.@{trend-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + line-height: 22px; + + .up, + .down { + margin-left: 4px; + position: relative; + top: 1px; + + i { + font-size: 12px; + transform: scale(0.83); + } + } + + .item-text { + display: inline-block; + margin-left: 8px; + color: rgba(0,0,0,.85); + } + + .up { + color: @red-6; + } + .down { + color: @green-6; + top: -1px; + } + + &.reverse-color .up { + color: @green-6; + } + &.reverse-color .down { + color: @red-6; + } +} \ No newline at end of file diff --git a/admin/src/components/Trend/index.md b/admin/src/components/Trend/index.md new file mode 100644 index 0000000..8881f0e --- /dev/null +++ b/admin/src/components/Trend/index.md @@ -0,0 +1,45 @@ +# Trend 趋势标记 + +趋势符号,标记上升和下降趋势。通常用绿色代表“好”,红色代表“不好”,股票涨跌场景除外。 + + + +引用方式: + +```javascript +import Trend from '@/components/Trend' + +export default { + components: { + Trend + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html +5% +``` +或 +```html + + 工资 + 5% + +``` +或 +```html +5% +``` + + +## API + +| 参数 | 说明 | 类型 | 默认值 | +|----------|------------------------------------------|-------------|-------| +| flag | 上升下降标识:`up|down` | string | - | +| reverseColor | 颜色反转 | Boolean | false | + diff --git a/admin/src/components/UserSelect/UserSelect.vue b/admin/src/components/UserSelect/UserSelect.vue new file mode 100644 index 0000000..5606c60 --- /dev/null +++ b/admin/src/components/UserSelect/UserSelect.vue @@ -0,0 +1,76 @@ + + diff --git a/admin/src/components/UserSelect/index.js b/admin/src/components/UserSelect/index.js new file mode 100644 index 0000000..813c055 --- /dev/null +++ b/admin/src/components/UserSelect/index.js @@ -0,0 +1,3 @@ +import UserSelect from './UserSelect' + +export default UserSelect diff --git a/admin/src/components/_util/util.js b/admin/src/components/_util/util.js new file mode 100644 index 0000000..dd33231 --- /dev/null +++ b/admin/src/components/_util/util.js @@ -0,0 +1,46 @@ +/** + * components util + */ + +/** + * 清理空值,对象 + * @param children + * @returns {*[]} + */ +export function filterEmpty (children = []) { + return children.filter(c => c.tag || (c.text && c.text.trim() !== '')) +} + +/** + * 获取字符串长度,英文字符 长度1,中文字符长度2 + * @param {*} str + */ +export const getStrFullLength = (str = '') => + str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + return pre + 1 + } + return pre + 2 + }, 0) + +/** + * 截取字符串,根据 maxLength 截取后返回 + * @param {*} str + * @param {*} maxLength + */ +export const cutStrByFullLength = (str = '', maxLength) => { + let showLength = 0 + return str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + showLength += 1 + } else { + showLength += 2 + } + if (showLength <= maxLength) { + return pre + cur + } + return pre + }, '') +} diff --git a/admin/src/components/global.less b/admin/src/components/global.less new file mode 100644 index 0000000..3df4f4e --- /dev/null +++ b/admin/src/components/global.less @@ -0,0 +1,520 @@ +@import './index.less'; + +body { + + +} + +#app { + height: 100%; + + &.colorWeak { + filter: invert(80%); + } + &.userLayout { + overflow: auto; + } +} + +.layout.ant-layout { + height: auto; + overflow-x: hidden; + + &.mobile, + &.tablet { + .ant-layout-content { + .content { + margin: 24px 0 0; + } + } + + /** + * ant-table-wrapper + * 覆盖的表格手机模式样式,如果想修改在手机上表格最低宽度,可以在这里改动 + */ + .ant-table-wrapper { + .ant-table-content { + overflow-y: auto; + } + .ant-table-body { + min-width: 800px; + } + } + .topmenu { + /* 必须为 topmenu 才能启用流式布局 */ + &.content-width-Fluid { + .header-index-wide { + margin-left: 0; + } + } + } + } + + &.mobile { + .sidemenu { + .ant-header-fixedHeader { + &.ant-header-side-opened, + &.ant-header-side-closed { + width: 100%; + } + } + } + } + + &.ant-layout-has-sider { + flex-direction: row; + } + + .trigger { + font-size: 20px; + line-height: 55px; + padding: 0 24px; + cursor: pointer; + transition: color 0.3s; + &:hover { + background: rgba(0, 0, 0, 0.025); + } + } + + .topmenu { + .ant-header-fixedHeader { + position: fixed; + top: 0; + right: 0; + z-index: 9; + width: 100%; + transition: width 0.2s; + + &.ant-header-side-opened { + width: 100%; + } + + &.ant-header-side-closed { + width: 100%; + } + } + /* 必须为 topmenu 才能启用流式布局 */ + &.content-width-Fluid { + .header-index-wide { + max-width: unset; + .header-index-left { + flex: 1 1 1000px; + .logo{ + margin-left: 25px; + } + .ant-menu.ant-menu-horizontal{ + max-width: calc(100vw - 190px - 238px - 25px); + flex: 1 1 calc(100vw - 190px - 238px - 25px); + } + } + .header-index-right{ + margin-right:25px; + } + } + + .page-header-index-wide { + max-width: unset; + } + } + } + + .sidemenu { + .ant-header-fixedHeader { + position: fixed; + top: 0; + right: 0; + z-index: 9; + width: 100%; + transition: width 0.2s; + + &.ant-header-side-opened { + width: calc(100% - 230px); + } + + &.ant-header-side-closed { + width: calc(100% - 80px); + } + } + } + + .header { + height: 55px; + // padding: 0 12px 0 0; + background: #fff; + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + position: relative; + } + + .header, + .top-nav-header-index { + .user-wrapper { + float: right; + height: 100%; + + .action { + line-height: 55px; + cursor: pointer; + padding: 0 12px; + display: inline-block; + transition: all 0.3s; + height: 100%; + color: rgba(0, 0, 0, 0.65); + + &:hover { + background: rgba(0, 0, 0, 0.025); + } + + .avatar { + margin: 15px 8px 15px 0; + color: #1890ff; + background: hsla(0, 0%, 100%, 0.85); + vertical-align: middle; + } + + .icon { + font-size: 16px; + padding: 4px; + } + } + } + + &.dark { + .user-wrapper { + .action { + color: rgba(255, 255, 255, 0.85); + a { + color: rgba(255, 255, 255, 0.85); + } + + &:hover { + background: rgba(255, 255, 255, 0.16); + } + } + } + } + } + + &.mobile, + &.tablet { + .top-nav-header-index { + .header-index-wide { + .header-index-left { + .trigger { + color: rgba(255, 255, 255, 0.85); + padding: 0 12px; + } + + .logo.top-nav-header { + flex: 0 0 56px; + text-align: center; + line-height: 58px; + h1 { + display: none; + } + } + } + } + + &.light { + .header-index-wide { + .header-index-left { + .trigger { + color: rgba(0, 0, 0, 0.65); + } + } + } + } + } + } + + &.tablet { + // overflow: hidden; text-overflow:ellipsis; white-space: nowrap; + .top-nav-header-index { + .header-index-wide { + .header-index-left { + .logo > a { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + .ant-menu.ant-menu-horizontal { + flex: 1 1 auto; + white-space: normal; + } + } + } + } + + .top-nav-header-index { + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + position: relative; + transition: background 0.3s, width 0.2s; + + .header-index-wide { + max-width: 1200px; + margin: auto; + padding-left: 0; + display: flex; + height: 55px; + + .ant-menu.ant-menu-horizontal { + max-width: 835px; + flex: 0 1 835px; + border: none; + height: 55px; + line-height: 55px; + } + + .header-index-left { + flex: 0 1 1000px; + display: flex; + + .logo.top-nav-header { + flex: 0 0 165px; + width: 165px; + height: 55px; + position: relative; + line-height: 55px; + transition: all 0.3s; + overflow: hidden; + + img, + svg { + display: inline-block; + vertical-align: middle; + height: 32px; + width: 32px; + } + + h1 { + color: #fff; + display: inline-block; + vertical-align: top; + font-size: 16px; + margin: 0 0 0 12px; + font-weight: 400; + } + } + } + + .header-index-right { + flex: 0 0 238px; + align-self: flex-end; + height: 55px; + overflow: hidden; + + .content-box { + float: right; + .action { + max-width: 140px; + overflow: hidden; + text-overflow:ellipsis; + white-space:nowrap; + } + } + } + } + + &.light { + background-color: #fff; + + .header-index-wide { + .header-index-left { + .logo { + h1 { + color: #002140; + } + } + } + } + } + } + + // 内容区 + .layout-content { + margin: 24px 24px 0px; + //height: 100%; + //height: 64px; + padding: 0 12px 0 0; + } + + // footer + .ant-layout-footer { + padding: 0; + } +} + +.topmenu { + .page-header-index-wide { + max-width: 1200px; + margin: 0 auto; + } +} + +// drawer-sider 自定义 +.ant-drawer.drawer-sider { + .sider { + box-shadow: none; + } + + &.dark { + .ant-drawer-content { + background-color: rgb(0, 21, 41); + } + } + &.light { + box-shadow: none; + .ant-drawer-content { + background-color: #fff; + } + } + + .ant-drawer-body { + padding: 0; + } +} + +// 菜单样式 +.sider { + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + position: relative; + z-index: @ant-global-sider-zindex; + min-height: 100vh; + + .ant-layout-sider-children { + overflow-y: hidden; + + &:hover { + overflow-y: auto; + } + } + + &.ant-fixed-sidemenu { + position: fixed; + height: 100%; + } + + // logo区域样式 + .logo { + position: relative; + height: 55px; + padding-left: 24px; + overflow: hidden; + line-height: 55px; + background: #002140; + transition: all .3s; + + img, + svg, + h1 { + display: inline-block; + vertical-align: middle; + } + + img, + svg { + height: 32px; + width: 32px; + } + + h1 { + color: #fff; + font-size: 20px; + margin: 0 0 0 12px; + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; + font-weight: 600; + vertical-align: middle; + } + } + + &.light { + background-color: #fff; + box-shadow: 2px 0px 8px 0px rgba(29, 35, 41, 0.05); + + .logo { + background: #fff; + box-shadow: 1px 1px 0px 0px #e8e8e8; + + h1 { + color: unset; + } + } + + .ant-menu-light { + border-right-color: transparent; + } + } +} + +// 外置的样式控制 +.user-dropdown-menu { + span { + user-select: none; + } +} +.user-dropdown-menu-wrapper.ant-dropdown-menu { + padding: 4px 0; + + .ant-dropdown-menu-item { + width: 160px; + } + + .ant-dropdown-menu-item > .anticon:first-child, + .ant-dropdown-menu-item > a > .anticon:first-child, + .ant-dropdown-menu-submenu-title > .anticon:first-child .ant-dropdown-menu-submenu-title > a > .anticon:first-child { + min-width: 12px; + margin-right: 8px; + } +} + +// 数据列表 样式 +.table-alert { + margin-bottom: 16px; +} + +.table-page-search-wrapper { + .ant-form-inline { + .ant-form-item { + display: flex; + margin-bottom: 24px; + margin-right: 0; + + .ant-form-item-control-wrapper { + flex: 1 1; + display: inline-block; + vertical-align: middle; + } + + > .ant-form-item-label { + line-height: 32px; + padding-right: 8px; + width: auto; + } + .ant-form-item-control { + height: 32px; + line-height: 32px; + } + } + } + + .table-page-search-submitButtons { + display: block; + margin-bottom: 0px; + // white-space: nowrap; + + button{ + margin-bottom:5px; + } + } +} + +.content { + .table-operator { + margin-bottom: 18px; + + button { + margin-right: 8px; + } + } +} diff --git a/admin/src/components/index.js b/admin/src/components/index.js new file mode 100644 index 0000000..bc13583 --- /dev/null +++ b/admin/src/components/index.js @@ -0,0 +1,64 @@ +// chart +import Bar from '@/components/Charts/Bar' +import ChartCard from '@/components/Charts/ChartCard' +import Liquid from '@/components/Charts/Liquid' +import MiniSmoothArea from '@/components/Charts/MiniSmoothArea' +import MiniProgress from '@/components/Charts/MiniProgress' +import Radar from '@/components/Charts/Radar' +import RankList from '@/components/Charts/RankList' +import TransferBar from '@/components/Charts/TransferBar' + +// pro components +import AvatarList from '@/components/AvatarList' +import CountDown from '@/components/CountDown' +import Ellipsis from '@/components/Ellipsis' +import FooterToolbar from '@/components/FooterToolbar' +import NumberInfo from '@/components/NumberInfo' +import DescriptionList from '@/components/DescriptionList' +import Tree from '@/components/Tree/Tree' +import Trend from '@/components/Trend' +import STable from '@/components/Table' +import MultiTab from '@/components/MultiTab' +import Result from '@/components/Result' +import IconSelector from '@/components/IconSelector' +import TagSelect from '@/components/TagSelect' +import ExceptionPage from '@/components/Exception' +import StandardFormRow from '@/components/StandardFormRow' +import ArticleListContent from '@/components/ArticleListContent' +import AntdEditor from '@/components/Editor/WangEditor' +import Dialog from '@/components/Dialog' + +// xn components +import XCard from '@/components/xnComponents/XCard' + +export { + AvatarList, + Bar, + ChartCard, + Liquid, + MiniSmoothArea, + MiniProgress, + Radar, + RankList, + TransferBar, + Trend, + CountDown, + Ellipsis, + FooterToolbar, + NumberInfo, + DescriptionList, + // 兼容写法,请勿继续使用 + DescriptionList as DetailList, + Tree, + STable, + MultiTab, + Result, + ExceptionPage, + IconSelector, + TagSelect, + StandardFormRow, + ArticleListContent, + AntdEditor, + Dialog, + XCard +} diff --git a/admin/src/components/index.less b/admin/src/components/index.less new file mode 100644 index 0000000..e831c41 --- /dev/null +++ b/admin/src/components/index.less @@ -0,0 +1,6 @@ +@import "~ant-design-vue/lib/style/index"; + +// The prefix to use on all css classes from ant-pro. +@ant-pro-prefix : ant-pro; +@ant-global-sider-zindex : 106; +@ant-global-header-zindex : 105; \ No newline at end of file diff --git a/admin/src/components/tools/Breadcrumb.vue b/admin/src/components/tools/Breadcrumb.vue new file mode 100644 index 0000000..9bc141c --- /dev/null +++ b/admin/src/components/tools/Breadcrumb.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/admin/src/components/tools/DetailList.vue b/admin/src/components/tools/DetailList.vue new file mode 100644 index 0000000..6745a08 --- /dev/null +++ b/admin/src/components/tools/DetailList.vue @@ -0,0 +1,5 @@ + diff --git a/admin/src/components/tools/HeadInfo.vue b/admin/src/components/tools/HeadInfo.vue new file mode 100644 index 0000000..7fbc692 --- /dev/null +++ b/admin/src/components/tools/HeadInfo.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/admin/src/components/tools/LangSelect.vue b/admin/src/components/tools/LangSelect.vue new file mode 100644 index 0000000..283f356 --- /dev/null +++ b/admin/src/components/tools/LangSelect.vue @@ -0,0 +1,46 @@ + + + diff --git a/admin/src/components/tools/Logo.vue b/admin/src/components/tools/Logo.vue new file mode 100644 index 0000000..853c492 --- /dev/null +++ b/admin/src/components/tools/Logo.vue @@ -0,0 +1,64 @@ + + + diff --git a/admin/src/components/tools/TwoStepCaptcha.vue b/admin/src/components/tools/TwoStepCaptcha.vue new file mode 100644 index 0000000..4367ffe --- /dev/null +++ b/admin/src/components/tools/TwoStepCaptcha.vue @@ -0,0 +1,88 @@ + + + + diff --git a/admin/src/components/tools/UserMenu.vue b/admin/src/components/tools/UserMenu.vue new file mode 100644 index 0000000..e4d093e --- /dev/null +++ b/admin/src/components/tools/UserMenu.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/admin/src/components/tools/index.js b/admin/src/components/tools/index.js new file mode 100644 index 0000000..e69de29 diff --git a/admin/src/components/verifition/Verify.vue b/admin/src/components/verifition/Verify.vue new file mode 100644 index 0000000..e7b6d1a --- /dev/null +++ b/admin/src/components/verifition/Verify.vue @@ -0,0 +1,473 @@ + + + diff --git a/admin/src/components/verifition/Verify/VerifyPoints.vue b/admin/src/components/verifition/Verify/VerifyPoints.vue new file mode 100644 index 0000000..4f7f496 --- /dev/null +++ b/admin/src/components/verifition/Verify/VerifyPoints.vue @@ -0,0 +1,259 @@ +/* eslint-disable no-unused-vars */ + + diff --git a/admin/src/components/verifition/Verify/VerifySlide.vue b/admin/src/components/verifition/Verify/VerifySlide.vue new file mode 100644 index 0000000..8e91a5e --- /dev/null +++ b/admin/src/components/verifition/Verify/VerifySlide.vue @@ -0,0 +1,374 @@ + + diff --git a/admin/src/components/verifition/utils/ase.js b/admin/src/components/verifition/utils/ase.js new file mode 100644 index 0000000..7556cd7 --- /dev/null +++ b/admin/src/components/verifition/utils/ase.js @@ -0,0 +1,11 @@ +import CryptoJS from 'crypto-js' +/** + * @word 要加密的内容 + * @keyWord String 服务器随机返回的关键字 + */ +export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { + var key = CryptoJS.enc.Utf8.parse(keyWord) + var srcs = CryptoJS.enc.Utf8.parse(word) + var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) + return encrypted.toString() +} diff --git a/admin/src/components/verifition/utils/axios.js b/admin/src/components/verifition/utils/axios.js new file mode 100644 index 0000000..b98b993 --- /dev/null +++ b/admin/src/components/verifition/utils/axios.js @@ -0,0 +1,30 @@ +import axios from 'axios' + +axios.defaults.baseURL = process.env.BASE_API + +const service = axios.create({ + timeout: 40000, + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json; charset=UTF-8' + } +}) +service.interceptors.request.use( + config => { + return config + }, + error => { + Promise.reject(error) + } +) + +// response interceptor +service.interceptors.response.use( + response => { + const res = response.data + return res + }, + () => { + } +) +export default service diff --git a/admin/src/components/verifition/utils/util.js b/admin/src/components/verifition/utils/util.js new file mode 100644 index 0000000..f6c5746 --- /dev/null +++ b/admin/src/components/verifition/utils/util.js @@ -0,0 +1,52 @@ +export function resetSize(vm) { + // eslint-disable-next-line camelcase + var img_width, img_height, bar_width, bar_height // 图片的宽度、高度,移动条的宽度、高度 + + var parentWidth = vm.$el.parentNode.offsetWidth || window.offsetWidth + var parentHeight = vm.$el.parentNode.offsetHeight || window.offsetHeight + + // eslint-disable-next-line eqeqeq + if (vm.imgSize.width.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + img_width = parseInt(this.imgSize.width) / 100 * parentWidth + 'px' + } else { + // eslint-disable-next-line camelcase + img_width = this.imgSize.width + } + + // eslint-disable-next-line eqeqeq + if (vm.imgSize.height.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + img_height = parseInt(this.imgSize.height) / 100 * parentHeight + 'px' + } else { + // eslint-disable-next-line camelcase + img_height = this.imgSize.height + } + + // eslint-disable-next-line eqeqeq + if (vm.barSize.width.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + bar_width = parseInt(this.barSize.width) / 100 * parentWidth + 'px' + } else { + // eslint-disable-next-line camelcase + bar_width = this.barSize.width + } + + // eslint-disable-next-line eqeqeq + if (vm.barSize.height.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + bar_height = parseInt(this.barSize.height) / 100 * parentHeight + 'px' + } else { + // eslint-disable-next-line camelcase + bar_height = this.barSize.height + } + + return { imgWidth: img_width, imgHeight: img_height, barWidth: bar_width, barHeight: bar_height } +} + +// eslint-disable-next-line camelcase +export const _code_chars = [1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] +// eslint-disable-next-line camelcase +export const _code_color1 = ['#fffff0', '#f0ffff', '#f0fff0', '#fff0f0'] +// eslint-disable-next-line camelcase +export const _code_color2 = ['#FF0033', '#006699', '#993366', '#FF9900', '#66CC66', '#FF33CC'] diff --git a/admin/src/components/xnComponents/XCard.vue b/admin/src/components/xnComponents/XCard.vue new file mode 100644 index 0000000..4fdb719 --- /dev/null +++ b/admin/src/components/xnComponents/XCard.vue @@ -0,0 +1,16 @@ + + + diff --git a/admin/src/config/defaultSettings.js b/admin/src/config/defaultSettings.js new file mode 100644 index 0000000..638b156 --- /dev/null +++ b/admin/src/config/defaultSettings.js @@ -0,0 +1,36 @@ +/** + * 项目默认配置项 + * primaryColor - 默认主题色, 如果修改颜色不生效,请清理 localStorage + * navTheme - sidebar theme ['dark', 'light'] 两种主题 + * colorWeak - 色盲模式 + * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 + * fixedHeader - 固定 Header : boolean + * fixSiderbar - 固定左侧菜单栏 : boolean + * autoHideHeader - 向下滚动时,隐藏 Header : boolean + * contentWidth - 内容区布局: 流式 | 固定 + * + * storageOptions: {} - Vue-ls 插件配置项 (localStorage/sessionStorage) + * production: 变量暂先设定为 false,目的是各种环境都正常显示设置抽屉,真实环境请放开注释 + * + * + */ + +export default { + primaryColor: '#2F54EB', // primary color of ant design + navTheme: 'dark', // theme for nav menu + layout: 'sidemenu', // nav menu position: sidemenu or topmenu + contentWidth: 'Fixed', // layout of content: Fluid or Fixed, only works when layout is topmenu + fixedHeader: true, // sticky header + fixSiderbar: true, // sticky siderbar + autoHideHeader: false, // auto hide header + colorWeak: false, + multiTab: true, + crumbsSate: false, + production: process.env.NODE_ENV === 'production' && process.env.VUE_APP_PREVIEW !== 'true', + // vue-ls options + storageOptions: { + namespace: 'jtsh__', // key prefix + name: 'ls', // name variable Vue.[ls] or this.[$ls], + storage: 'local' // storage name session, local, memory + } +} diff --git a/admin/src/config/router.config.js b/admin/src/config/router.config.js new file mode 100644 index 0000000..650d493 --- /dev/null +++ b/admin/src/config/router.config.js @@ -0,0 +1,91 @@ +// eslint-disable-next-line +import { UserLayout, BasicLayout, RouteView, BlankLayout, PageView } from '@/layouts' +import { bxAnaalyse } from '@/core/icons' + +export const asyncRouterMap = [ + + { + path: '/', + name: 'MenuIndex.vue', + component: BasicLayout, + meta: { title: '首页' }, + redirect: '/dashboard/workplace', + children: [ + // dashboard + { + path: 'dashboard', + name: 'dashboard', + redirect: '/dashboard/workplace', + component: RouteView, + // eslint-disable-next-line standard/object-curly-even-spacing + meta: { title: '仪表盘', keepAlive: true, icon: bxAnaalyse /* permission: [ 'dashboard' ] */ }, + children: [ + { + path: 'analysis/:pageNo([1-9]\\d*)?', + name: 'Analysis', + component: () => import('@/views/system/dashboard/Analysis'), + // eslint-disable-next-line standard/object-curly-even-spacing + meta: { title: '分析页', keepAlive: true /* permission: [ 'dashboard' ] */ } + }, + { + path: 'workplace', + name: 'Workplace', + component: () => import('@/views/system/dashboard/Workplace'), + // eslint-disable-next-line standard/object-curly-even-spacing + meta: { title: '工作台', keepAlive: false/*, permission: [ 'dashboard' ] */ } + } + ] + } + ] + }, + { + path: '*', redirect: '/404', hidden: true + } +] + +/** + * 基础路由 + * @type { *[] } + */ +export const constantRouterMap = [ + { + path: '/user', + component: UserLayout, + redirect: '/user/login', + hidden: true, + children: [ + { + path: 'login', + name: 'login', + component: () => import(/* webpackChunkName: "user" */ '@/views/userLoginReg/Login'), + meta: { + title: '登录' + } + }, + { + path: 'recover', + name: 'recover', + component: undefined + } + ] + }, + + { + path: '/test', + component: BlankLayout, + redirect: '/test/home', + children: [ + { + path: 'home', + name: 'TestHome', + component: () => import('@/views/Home') + } + ] + }, + + { + path: '/404', + component: () => import(/* webpackChunkName: "fail" */ '@/views/system/exception/404') + } + +] diff --git a/admin/src/core/bootstrap.js b/admin/src/core/bootstrap.js new file mode 100644 index 0000000..58cb248 --- /dev/null +++ b/admin/src/core/bootstrap.js @@ -0,0 +1,41 @@ +/* + * @Author: your name + * @Date: 2021-05-18 23:01:53 + * @LastEditTime: 2021-05-19 00:57:22 + * @LastEditors: your name + * @Description: In User Settings Edit + * @FilePath: \frontend\src\core\bootstrap.js + */ +import Vue from 'vue' +import store from '@/store/' +import { + ACCESS_TOKEN, + DEFAULT_COLOR, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR_WEAK, + SIDEBAR_TYPE, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_TAB, + DEFAULT_CRUMBS_STATE +} from '@/store/mutation-types' + +import config from '@/config/defaultSettings' + +export default function Initializer () { + store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true)) + store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme)) + store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout)) + store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader)) + store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar)) + store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth)) + store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader)) + store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak)) + store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor)) + store.commit('TOGGLE_MULTI_TAB', Vue.ls.get(DEFAULT_MULTI_TAB, config.multiTab)) + store.commit('TOGGLE_CRUMBS_STATE', Vue.ls.get(DEFAULT_CRUMBS_STATE, config.crumbsSate)) + store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN)) +} diff --git a/admin/src/core/directives/action.js b/admin/src/core/directives/action.js new file mode 100644 index 0000000..bdc9ec0 --- /dev/null +++ b/admin/src/core/directives/action.js @@ -0,0 +1,34 @@ +import Vue from 'vue' +import store from '@/store' + +/** + * Action 权限指令 + * 指令用法: + * - 在需要控制 action 级别权限的组件上使用 v-action:[method] , 如下: + * 添加用户 + * 删除用户 + * 修改 + * + * - 当前用户没有权限时,组件上使用了该指令则会被隐藏 + * - 当后台权限跟 pro 提供的模式不同时,只需要针对这里的权限过滤进行修改即可 + * + * @see https://github.com/sendya/ant-design-pro-vue/pull/53 + */ +const action = Vue.directive('action', { + inserted: function (el, binding, vnode) { + const actionName = binding.arg + const roles = store.getters.roles + const elVal = vnode.context.$route.meta.permission + const permissionId = elVal instanceof String && [elVal] || elVal + roles.permissions.forEach(p => { + if (!permissionId.includes(p.permissionId)) { + return + } + if (p.actionList && !p.actionList.includes(actionName)) { + el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none') + } + }) + } +}) + +export default action diff --git a/admin/src/core/icons.js b/admin/src/core/icons.js new file mode 100644 index 0000000..46b7261 --- /dev/null +++ b/admin/src/core/icons.js @@ -0,0 +1,11 @@ +/** + * Custom icon list + * All icons are loaded here for easy management + * @see https://vue.ant.design/components/icon/#Custom-Font-Icon + * + * 自定义图标加载表 + * 所有图标均从这里加载,方便管理 + */ +import bxAnaalyse from '@/assets/icons/bx-analyse.svg?inline' // path to your '*.svg?inline' file. + +export { bxAnaalyse } diff --git a/admin/src/core/lazy_lib/components_use.js b/admin/src/core/lazy_lib/components_use.js new file mode 100644 index 0000000..325900a --- /dev/null +++ b/admin/src/core/lazy_lib/components_use.js @@ -0,0 +1,118 @@ +/** + * 该文件是为了按需加载,剔除掉了一些不需要的框架组件。 + * 减少了编译支持库包大小 + * @author yubaoshan + * 当需要更多组件依赖时,在该文件加入即可 + */ +import Vue from 'vue' +import { + ConfigProvider, + Layout, + Input, + InputNumber, + Button, + Switch, + Radio, + Checkbox, + Select, + Card, + Form, + Row, + Col, + Modal, + Table, + Tabs, + Icon, + Badge, + Popover, + Dropdown, + List, + Avatar, + Breadcrumb, + Steps, + Spin, + Menu, + Drawer, + Tooltip, + Alert, + Tag, + Divider, + DatePicker, + TimePicker, + Upload, + Progress, + Skeleton, + Popconfirm, + message, + notification, + TreeSelect, + Tree, + Transfer, + Empty, + PageHeader, + Descriptions, + Result, + Cascader +} from 'ant-design-vue' +// import VueCropper from 'vue-cropper' + +import { $MyInfo, $MySuccess, $MyError, $MyWarn } from '@/utils/common' +Vue.use(ConfigProvider) +Vue.use(Layout) +Vue.use(Input) +Vue.use(InputNumber) +Vue.use(Button) +Vue.use(Switch) +Vue.use(Radio) +Vue.use(Checkbox) +Vue.use(Select) +Vue.use(Card) +Vue.use(Form) +Vue.use(Row) +Vue.use(Col) +Vue.use(Modal) +Vue.use(Table) +Vue.use(Tabs) +Vue.use(Icon) +Vue.use(Badge) +Vue.use(Popover) +Vue.use(Dropdown) +Vue.use(List) +Vue.use(Avatar) +Vue.use(Breadcrumb) +Vue.use(Steps) +Vue.use(Spin) +Vue.use(Menu) +Vue.use(Drawer) +Vue.use(Tooltip) +Vue.use(Alert) +Vue.use(Tag) +Vue.use(Divider) +Vue.use(DatePicker) +Vue.use(TimePicker) +Vue.use(Upload) +Vue.use(Progress) +Vue.use(Skeleton) +Vue.use(Popconfirm) +// Vue.use(VueCropper) +Vue.use(notification) +Vue.use(TreeSelect) +Vue.use(Tree) +Vue.use(Transfer) +Vue.use(Empty) +Vue.use(PageHeader) +Vue.use(Descriptions) +Vue.use(Result) +Vue.use(Cascader) + +Vue.prototype.$confirm = Modal.confirm +Vue.prototype.$message = message +Vue.prototype.$notification = notification +Vue.prototype.$info = Modal.info +Vue.prototype.$success = Modal.success +Vue.prototype.$error = Modal.error +Vue.prototype.$warning = Modal.warning +Vue.prototype.$myinfo = $MyInfo +Vue.prototype.$mysuccess = $MySuccess +Vue.prototype.$myerror = $MyError +Vue.prototype.$mywarning = $MyWarn diff --git a/admin/src/core/lazy_use.js b/admin/src/core/lazy_use.js new file mode 100644 index 0000000..63d3370 --- /dev/null +++ b/admin/src/core/lazy_use.js @@ -0,0 +1,24 @@ +import Vue from 'vue' +import VueStorage from 'vue-ls' +import config from '@/config/defaultSettings' + +// base library +import '@/core/lazy_lib/components_use' +// ext library +import VueClipboard from 'vue-clipboard2' +import VueCropper from 'vue-cropper' +import MultiTab from '@/components/MultiTab' +import PageLoading from '@/components/PageLoading' +import PermissionHelper from '@/utils/helper/permission' +import './directives/action' + +VueClipboard.config.autoSetContainer = true + +Vue.use(MultiTab) +Vue.use(PageLoading) +Vue.use(VueStorage, config.storageOptions) +Vue.use(VueClipboard) +Vue.use(PermissionHelper) +Vue.use(VueCropper) + +process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] NOTICE: Antd use lazy-load.') diff --git a/admin/src/core/use.js b/admin/src/core/use.js new file mode 100644 index 0000000..5d025e9 --- /dev/null +++ b/admin/src/core/use.js @@ -0,0 +1,28 @@ +import Vue from 'vue' +import VueStorage from 'vue-ls' +import config from '@/config/defaultSettings' + +// base library +import Antd from 'ant-design-vue' +import VueCropper from 'vue-cropper' +import 'ant-design-vue/dist/antd.less' + +// ext library +import VueClipboard from 'vue-clipboard2' +import MultiTab from '@/components/MultiTab' +import PageLoading from '@/components/PageLoading' +import PermissionHelper from '@/utils/helper/permission' +// import '@/components/use' +import './directives/action' + +VueClipboard.config.autoSetContainer = true + +Vue.use(Antd) +Vue.use(MultiTab) +Vue.use(PageLoading) +Vue.use(VueStorage, config.storageOptions) +Vue.use(VueClipboard) +Vue.use(PermissionHelper) +Vue.use(VueCropper) + +process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] WARNING: Antd now use fulled imported.') diff --git a/admin/src/layouts/BasicLayout.vue b/admin/src/layouts/BasicLayout.vue new file mode 100644 index 0000000..731e4be --- /dev/null +++ b/admin/src/layouts/BasicLayout.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/admin/src/layouts/BlankLayout.vue b/admin/src/layouts/BlankLayout.vue new file mode 100644 index 0000000..1bfbfbf --- /dev/null +++ b/admin/src/layouts/BlankLayout.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/admin/src/layouts/Iframe.vue b/admin/src/layouts/Iframe.vue new file mode 100644 index 0000000..e2526a4 --- /dev/null +++ b/admin/src/layouts/Iframe.vue @@ -0,0 +1,29 @@ + + diff --git a/admin/src/layouts/PageView.vue b/admin/src/layouts/PageView.vue new file mode 100644 index 0000000..7d9c6e1 --- /dev/null +++ b/admin/src/layouts/PageView.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/admin/src/layouts/RouteView.vue b/admin/src/layouts/RouteView.vue new file mode 100644 index 0000000..edae19e --- /dev/null +++ b/admin/src/layouts/RouteView.vue @@ -0,0 +1,32 @@ + diff --git a/admin/src/layouts/UserLayout.vue b/admin/src/layouts/UserLayout.vue new file mode 100644 index 0000000..d93c714 --- /dev/null +++ b/admin/src/layouts/UserLayout.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/admin/src/layouts/index.js b/admin/src/layouts/index.js new file mode 100644 index 0000000..a7ab0c9 --- /dev/null +++ b/admin/src/layouts/index.js @@ -0,0 +1,8 @@ +import UserLayout from './UserLayout' +import BlankLayout from './BlankLayout' +import BasicLayout from './BasicLayout' +import RouteView from './RouteView' +import PageView from './PageView' +import Iframe from './Iframe' + +export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView, Iframe } diff --git a/admin/src/main.js b/admin/src/main.js new file mode 100644 index 0000000..66d8903 --- /dev/null +++ b/admin/src/main.js @@ -0,0 +1,41 @@ +// with polyfills +import 'core-js/stable' +import 'regenerator-runtime/runtime' +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import store from './store/' +import { VueAxios } from './utils/request' +// WARNING: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV. +import './mock' + +import bootstrap from './core/bootstrap' +import './core/lazy_use' +import './permission' +import './utils/filter' +import './components/global.less' +import { Dialog } from '@/components' +import { hasBtnPermission } from './utils/permissions' +import { sysApplication } from './utils/applocation' + +// import KFormDesign from 'k-form-design' +// import KFormDesign from 'k-form-design/lib/k-form-design-mini.umd.min' +// import 'k-form-design/lib/k-form-design.css' +import 'ant-design-vue/dist/antd.less' + +import dataV from '@jiaminghi/data-view' + +// Vue.use(KFormDesign) +Vue.use(dataV) + +Vue.use(VueAxios) +Vue.use(Dialog) +Vue.prototype.hasPerm = hasBtnPermission +Vue.prototype.applocation = sysApplication +Vue.config.productionTip = false +new Vue({ + router, + store, + created: bootstrap, + render: h => h(App) +}).$mount('#app') diff --git a/admin/src/mock/index.js b/admin/src/mock/index.js new file mode 100644 index 0000000..63ed127 --- /dev/null +++ b/admin/src/mock/index.js @@ -0,0 +1,21 @@ +import { isIE } from '@/utils/util' + +// 判断环境不是 prod 或者 preview 是 true 时,加载 mock 服务 +if (process.env.NODE_ENV !== 'production' || process.env.VUE_APP_PREVIEW === 'true') { + if (isIE()) { + console.error('[antd-pro] ERROR: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV.') + } + // 使用同步加载依赖 + // 防止 vuex 中的 GetInfo 早于 mock 运行,导致无法 mock 请求返回结果 + const Mock = require('mockjs2') + require('./services/auth') + require('./services/user') + require('./services/manage') + require('./services/other') + require('./services/tagCloud') + require('./services/article') + + Mock.setup({ + timeout: 800 // setter delay time + }) +} diff --git a/admin/src/mock/services/article.js b/admin/src/mock/services/article.js new file mode 100644 index 0000000..a8ab1ea --- /dev/null +++ b/admin/src/mock/services/article.js @@ -0,0 +1,88 @@ +import Mock from 'mockjs2' +import { builder, getQueryParameters } from '../util' + +const titles = [ + 'Alipay', + 'Angular', + 'Ant Design', + 'Admin.NET', + 'Bootstrap', + 'React', + 'Vue', + 'Webpack' +] + +const avatar = ['https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png' +] + +const covers = [ + 'https://gw.alipayobjects.com/zos/rmsportal/uMfMFlvUuceEyPpotzlq.png', + 'https://gw.alipayobjects.com/zos/rmsportal/iZBVOIhGJiAnhplqjvZW.png', + 'https://gw.alipayobjects.com/zos/rmsportal/iXjVmWVHbCJAyqvDxdtx.png', + 'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png' +] + +const owner = [ + '付小小', + '吴加好', + '周星星', + '林东东', + '曲丽丽' +] + +const content = '段落示意:蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。' +const description = '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。' +const href = 'https://ant.design' + +const article = (options) => { + const queryParameters = getQueryParameters(options) + if (queryParameters && !queryParameters.count) { + queryParameters.count = 5 + } + const data = [] + for (let i = 0; i < queryParameters.count; i++) { + const tmpKey = i + 1 + const num = parseInt(Math.random() * (4 + 1), 10) + data.push({ + id: tmpKey, + avatar: avatar[num], + owner: owner[num], + content: content, + star: Mock.mock('@integer(1, 999)'), + percent: Mock.mock('@integer(1, 999)'), + like: Mock.mock('@integer(1, 999)'), + message: Mock.mock('@integer(1, 999)'), + description: description, + href: href, + title: titles[ i % 8 ], + updatedAt: Mock.mock('@datetime'), + members: [ + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png', + name: '曲丽丽', + id: 'member1' + }, + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png', + name: '王昭君', + id: 'member2' + }, + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png', + name: '董娜娜', + id: 'member3' + } + ], + activeUser: Math.ceil(Math.random() * 100000) + 100000, + newUser: Math.ceil(Math.random() * 1000) + 1000, + cover: parseInt(i / 4, 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)] + }) + } + return builder(data) +} + +Mock.mock(/\/list\/article/, 'get', article) diff --git a/admin/src/mock/services/auth.js b/admin/src/mock/services/auth.js new file mode 100644 index 0000000..717a72b --- /dev/null +++ b/admin/src/mock/services/auth.js @@ -0,0 +1,49 @@ +import Mock from 'mockjs2' +import { builder, getBody } from '../util' + +const username = ['admin', 'super'] +// 强硬要求 ant.design 相同密码 +// '21232f297a57a5a743894a0e4a801fc3', +const password = ['8914de686ab28dc22f30d3d8e107ff6c'] // admin, ant.design + +const login = (options) => { + const body = getBody(options) + if (!username.includes(body.username) || !password.includes(body.password)) { + return builder({ isLogin: true }, '账户或密码错误', 401) + } + + return builder({ + 'id': Mock.mock('@guid'), + 'name': Mock.mock('@name'), + 'username': 'admin', + 'password': '', + 'avatar': 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png', + 'status': 1, + 'telephone': '', + 'lastLoginIp': '27.154.74.117', + 'lastLoginTime': 1534837621348, + 'creatorId': 'admin', + 'createTime': 1497160610259, + 'deleted': 0, + 'roleId': 'admin', + 'lang': 'zh-CN', + 'token': '4291d7da9005377ec9aec4a71ea837f' + }, '', 200, { 'Custom-Header': Mock.mock('@guid') }) +} + +const logout = () => { + return builder({}, '[测试接口] 注销成功') +} + +const smsCaptcha = () => { + return builder({ captcha: Mock.mock('@integer(10000, 99999)') }) +} + +const twofactor = () => { + return builder({ stepCode: Mock.mock('@integer(0, 1)') }) +} + +Mock.mock(/\/auth\/login/, 'post', login) +Mock.mock(/\/auth\/logout/, 'post', logout) +Mock.mock(/\/account\/sms/, 'post', smsCaptcha) +Mock.mock(/\/auth\/2step-code/, 'post', twofactor) diff --git a/admin/src/mock/services/manage.js b/admin/src/mock/services/manage.js new file mode 100644 index 0000000..b077f69 --- /dev/null +++ b/admin/src/mock/services/manage.js @@ -0,0 +1,252 @@ +import Mock from 'mockjs2' +import { builder, getQueryParameters } from '../util' + +const totalCount = 5701 + +const serverList = (options) => { + const parameters = getQueryParameters(options) + + const result = [] + const pageNo = parseInt(parameters.pageNo) + const pageSize = parseInt(parameters.pageSize) + const totalPage = Math.ceil(totalCount / pageSize) + const key = (pageNo - 1) * pageSize + const next = (pageNo >= totalPage ? (totalCount % pageSize) : pageSize) + 1 + + for (let i = 1; i < next; i++) { + const tmpKey = key + i + result.push({ + key: tmpKey, + id: tmpKey, + no: 'No ' + tmpKey, + description: '这是一段描述', + callNo: Mock.mock('@integer(1, 999)'), + status: Mock.mock('@integer(0, 3)'), + updatedAt: Mock.mock('@datetime'), + editable: false + }) + } + + return builder({ + pageSize: pageSize, + pageNo: pageNo, + totalCount: totalCount, + totalPage: totalPage, + data: result + }) +} + +const projects = () => { + return builder({ + 'data': [{ + id: 1, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + title: 'Alipay', + description: '那是一种内在的东西, 他们到达不了,也无法触及的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 2, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + title: 'Angular', + description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 3, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + title: 'Ant Design', + description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 4, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + title: 'Admin.NET', + description: '那时候我只会想自己想要什么,从不想自己拥有什么', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 5, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', + title: 'Bootstrap', + description: '凛冬将至', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 6, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', + title: 'Vue', + description: '生命就像一盒巧克力,结果往往出人意料', + status: 1, + updatedAt: '2018-07-26 00:00:00' + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 6, + 'totalCount': 57 + }) +} + +const activity = () => { + return builder([{ + id: 1, + user: { + nickname: '@name', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + project: { + name: '白鹭酱油开发组', + action: '更新', + event: '番组计划' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '蓝莓酱', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png' + }, + project: { + name: '白鹭酱油开发组', + action: '更新', + event: '番组计划' + }, + time: '2018-08-23 09:35:37' + }, + { + id: 1, + user: { + nickname: '@name', + avatar: '@image(64x64)' + }, + project: { + name: '白鹭酱油开发组', + action: '创建', + event: '番组计划' + }, + time: '2017-05-27 00:00:00' + }, + { + id: 1, + user: { + nickname: '曲丽丽', + avatar: '@image(64x64)' + }, + project: { + name: '高逼格设计天团', + action: '更新', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '@name', + avatar: '@image(64x64)' + }, + project: { + name: '高逼格设计天团', + action: 'created', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '曲丽丽', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + project: { + name: '高逼格设计天团', + action: 'created', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + } + ]) +} + +const teams = () => { + return builder([{ + id: 1, + name: '科学搬砖组', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + { + id: 2, + name: '程序员日常', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/cnrhVkzwxjPwAaCfPbdc.png' + }, + { + id: 1, + name: '设计天团', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/gaOngJwsRYRaVAuXXcmB.png' + }, + { + id: 1, + name: '中二少女团', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ubnKSIfAJTxIgXOKlciN.png' + }, + { + id: 1, + name: '骗你学计算机', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/WhxKECPNujWoWEFNdnJE.png' + } + ]) +} + +const radar = () => { + return builder([{ + item: '引用', + '个人': 70, + '团队': 30, + '部门': 40 + }, + { + item: '口碑', + '个人': 60, + '团队': 70, + '部门': 40 + }, + { + item: '产量', + '个人': 50, + '团队': 60, + '部门': 40 + }, + { + item: '贡献', + '个人': 40, + '团队': 50, + '部门': 40 + }, + { + item: '热度', + '个人': 60, + '团队': 70, + '部门': 40 + }, + { + item: '引用', + '个人': 70, + '团队': 50, + '部门': 40 + } + ]) +} + +Mock.mock(/\/service/, 'get', serverList) +Mock.mock(/\/list\/search\/projects/, 'get', projects) +Mock.mock(/\/workplace\/activity/, 'get', activity) +Mock.mock(/\/workplace\/teams/, 'get', teams) +Mock.mock(/\/workplace\/radar/, 'get', radar) diff --git a/admin/src/mock/services/other.js b/admin/src/mock/services/other.js new file mode 100644 index 0000000..56e2dd9 --- /dev/null +++ b/admin/src/mock/services/other.js @@ -0,0 +1,973 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const orgTree = () => { + return builder([{ + 'key': 'key-01', + 'title': '研发中心', + 'icon': 'mail', + 'children': [{ + 'key': 'key-01-01', + 'title': '后端组', + 'icon': null, + 'group': true, + children: [{ + 'key': 'key-01-01-01', + 'title': 'JAVA', + 'icon': null + }, + { + 'key': 'key-01-01-02', + 'title': 'PHP', + 'icon': null + }, + { + 'key': 'key-01-01-03', + 'title': 'Golang', + 'icon': null + } + ] + }, { + 'key': 'key-01-02', + 'title': '前端组', + 'icon': null, + 'group': true, + children: [{ + 'key': 'key-01-02-01', + 'title': 'React', + 'icon': null + }, + { + 'key': 'key-01-02-02', + 'title': 'Vue', + 'icon': null + }, + { + 'key': 'key-01-02-03', + 'title': 'Angular', + 'icon': null + } + ] + }] + }, { + 'key': 'key-02', + 'title': '财务部', + 'icon': 'dollar', + 'children': [{ + 'key': 'key-02-01', + 'title': '会计核算', + 'icon': null + }, { + 'key': 'key-02-02', + 'title': '成本控制', + 'icon': null + }, { + 'key': 'key-02-03', + 'title': '内部控制', + 'icon': null, + 'children': [{ + 'key': 'key-02-03-01', + 'title': '财务制度建设', + 'icon': null + }, + { + 'key': 'key-02-03-02', + 'title': '会计核算', + 'icon': null + } + ] + }] + }]) +} + +const role = () => { + return builder({ + 'data': [{ + 'id': 'admin', + 'name': '管理员', + 'describe': '拥有所有权限', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': ['delete', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['query', 'get', 'edit', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'import'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['query', 'add', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'edit', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, + { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get'], + 'dataAccess': null + } + ] + }, + { + 'id': 'svip', + 'name': 'SVIP', + 'describe': '超级会员', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1532417744846, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'query', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'query'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': ['add', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add'], + 'dataAccess': null + } + ] + }, + { + 'id': 'user', + 'name': '普通会员', + 'describe': '普通用户,只能查询', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'user', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['query'], + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'marketing', + 'permissionName': '营销管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + } + ] + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 1, + 'totalCount': 5 + }) +} + +const permissionNoPager = () => { + return builder([{ + 'id': 'marketing', + 'name': '营销管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': null, + 'parents': null, + 'type': null, + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'member', + 'name': '会员管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'menu', + 'name': '菜单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'import', + 'get', + 'edit' + ] + }, + { + 'id': 'order', + 'name': '订单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'permission', + 'name': '权限管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'role', + 'name': '角色管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'test', + 'name': '测试权限', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + }, + { + 'id': 'user', + 'name': '用户管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + } + ]) +} + +const permissions = () => { + return builder({ + 'data': [{ + 'id': 'marketing', + 'name': '营销管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': null, + 'parents': null, + 'type': null, + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'member', + 'name': '会员管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'menu', + 'name': '菜单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'import', + 'get', + 'edit' + ] + }, + { + 'id': 'order', + 'name': '订单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'permission', + 'name': '权限管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'role', + 'name': '角色管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'test', + 'name': '测试权限', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + }, + { + 'id': 'user', + 'name': '用户管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","describe":"新增","defaultCheck":false},{"action":"get","describe":"查询","defaultCheck":false}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 1, + 'totalCount': 5 + }) +} + +Mock.mock(/\/org\/tree/, 'get', orgTree) +Mock.mock(/\/role/, 'get', role) +Mock.mock(/\/permission\/no-pager/, 'get', permissionNoPager) +Mock.mock(/\/permission/, 'get', permissions) diff --git a/admin/src/mock/services/tagCloud.js b/admin/src/mock/services/tagCloud.js new file mode 100644 index 0000000..63a2e06 --- /dev/null +++ b/admin/src/mock/services/tagCloud.js @@ -0,0 +1,9 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +// +const tagCloudData = () => { + return builder([{ 'value': 9, 'name': 'AntV' }, { 'value': 8, 'name': 'F2' }, { 'value': 8, 'name': 'G2' }, { 'value': 8, 'name': 'G6' }, { 'value': 8, 'name': 'DataSet' }, { 'value': 8, 'name': '墨者学院' }, { 'value': 6, 'name': 'Analysis' }, { 'value': 6, 'name': 'Data Mining' }, { 'value': 6, 'name': 'Data Vis' }, { 'value': 6, 'name': 'Design' }, { 'value': 6, 'name': 'Grammar' }, { 'value': 6, 'name': 'Graphics' }, { 'value': 6, 'name': 'Graph' }, { 'value': 6, 'name': 'Hierarchy' }, { 'value': 6, 'name': 'Labeling' }, { 'value': 6, 'name': 'Layout' }, { 'value': 6, 'name': 'Quantitative' }, { 'value': 6, 'name': 'Relation' }, { 'value': 6, 'name': 'Statistics' }, { 'value': 6, 'name': '可视化' }, { 'value': 6, 'name': '数据' }, { 'value': 6, 'name': '数据可视化' }, { 'value': 4, 'name': 'Arc Diagram' }, { 'value': 4, 'name': 'Bar Chart' }, { 'value': 4, 'name': 'Canvas' }, { 'value': 4, 'name': 'Chart' }, { 'value': 4, 'name': 'DAG' }, { 'value': 4, 'name': 'DG' }, { 'value': 4, 'name': 'Facet' }, { 'value': 4, 'name': 'Geo' }, { 'value': 4, 'name': 'Line' }, { 'value': 4, 'name': 'MindMap' }, { 'value': 4, 'name': 'Pie' }, { 'value': 4, 'name': 'Pizza Chart' }, { 'value': 4, 'name': 'Punch Card' }, { 'value': 4, 'name': 'SVG' }, { 'value': 4, 'name': 'Sunburst' }, { 'value': 4, 'name': 'Tree' }, { 'value': 4, 'name': 'UML' }, { 'value': 3, 'name': 'Chart' }, { 'value': 3, 'name': 'View' }, { 'value': 3, 'name': 'Geom' }, { 'value': 3, 'name': 'Shape' }, { 'value': 3, 'name': 'Scale' }, { 'value': 3, 'name': 'Animate' }, { 'value': 3, 'name': 'Global' }, { 'value': 3, 'name': 'Slider' }, { 'value': 3, 'name': 'Connector' }, { 'value': 3, 'name': 'Transform' }, { 'value': 3, 'name': 'Util' }, { 'value': 3, 'name': 'DomUtil' }, { 'value': 3, 'name': 'MatrixUtil' }, { 'value': 3, 'name': 'PathUtil' }, { 'value': 3, 'name': 'G' }, { 'value': 3, 'name': '2D' }, { 'value': 3, 'name': '3D' }, { 'value': 3, 'name': 'Line' }, { 'value': 3, 'name': 'Area' }, { 'value': 3, 'name': 'Interval' }, { 'value': 3, 'name': 'Schema' }, { 'value': 3, 'name': 'Edge' }, { 'value': 3, 'name': 'Polygon' }, { 'value': 3, 'name': 'Heatmap' }, { 'value': 3, 'name': 'Render' }, { 'value': 3, 'name': 'Tooltip' }, { 'value': 3, 'name': 'Axis' }, { 'value': 3, 'name': 'Guide' }, { 'value': 3, 'name': 'Coord' }, { 'value': 3, 'name': 'Legend' }, { 'value': 3, 'name': 'Path' }, { 'value': 3, 'name': 'Helix' }, { 'value': 3, 'name': 'Theta' }, { 'value': 3, 'name': 'Rect' }, { 'value': 3, 'name': 'Polar' }, { 'value': 3, 'name': 'Dsv' }, { 'value': 3, 'name': 'Csv' }, { 'value': 3, 'name': 'Tsv' }, { 'value': 3, 'name': 'GeoJSON' }, { 'value': 3, 'name': 'TopoJSON' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Reverse' }, { 'value': 3, 'name': 'sort' }, { 'value': 3, 'name': 'Subset' }, { 'value': 3, 'name': 'Partition' }, { 'value': 3, 'name': 'Imputation' }, { 'value': 3, 'name': 'Fold' }, { 'value': 3, 'name': 'Aggregate' }, { 'value': 3, 'name': 'Proportion' }, { 'value': 3, 'name': 'Histogram' }, { 'value': 3, 'name': 'Quantile' }, { 'value': 3, 'name': 'Treemap' }, { 'value': 3, 'name': 'Hexagon' }, { 'value': 3, 'name': 'Binning' }, { 'value': 3, 'name': 'kernel' }, { 'value': 3, 'name': 'Regression' }, { 'value': 3, 'name': 'Density' }, { 'value': 3, 'name': 'Sankey' }, { 'value': 3, 'name': 'Voronoi' }, { 'value': 3, 'name': 'Projection' }, { 'value': 3, 'name': 'Centroid' }, { 'value': 3, 'name': 'H5' }, { 'value': 3, 'name': 'Mobile' }, { 'value': 3, 'name': 'K线图' }, { 'value': 3, 'name': '关系图' }, { 'value': 3, 'name': '烛形图' }, { 'value': 3, 'name': '股票图' }, { 'value': 3, 'name': '直方图' }, { 'value': 3, 'name': '金字塔图' }, { 'value': 3, 'name': '分面' }, { 'value': 3, 'name': '南丁格尔玫瑰图' }, { 'value': 3, 'name': '饼图' }, { 'value': 3, 'name': '线图' }, { 'value': 3, 'name': '点图' }, { 'value': 3, 'name': '散点图' }, { 'value': 3, 'name': '子弹图' }, { 'value': 3, 'name': '柱状图' }, { 'value': 3, 'name': '仪表盘' }, { 'value': 3, 'name': '气泡图' }, { 'value': 3, 'name': '漏斗图' }, { 'value': 3, 'name': '热力图' }, { 'value': 3, 'name': '玉玦图' }, { 'value': 3, 'name': '直方图' }, { 'value': 3, 'name': '矩形树图' }, { 'value': 3, 'name': '箱形图' }, { 'value': 3, 'name': '色块图' }, { 'value': 3, 'name': '螺旋图' }, { 'value': 3, 'name': '词云' }, { 'value': 3, 'name': '词云图' }, { 'value': 3, 'name': '雷达图' }, { 'value': 3, 'name': '面积图' }, { 'value': 3, 'name': '马赛克图' }, { 'value': 3, 'name': '盒须图' }, { 'value': 3, 'name': '坐标轴' }, { 'value': 3, 'name': '' }, { 'value': 3, 'name': 'Jacques Bertin' }, { 'value': 3, 'name': 'Leland Wilkinson' }, { 'value': 3, 'name': 'William Playfair' }, { 'value': 3, 'name': '关联' }, { 'value': 3, 'name': '分布' }, { 'value': 3, 'name': '区间' }, { 'value': 3, 'name': '占比' }, { 'value': 3, 'name': '地图' }, { 'value': 3, 'name': '时间' }, { 'value': 3, 'name': '比较' }, { 'value': 3, 'name': '流程' }, { 'value': 3, 'name': '趋势' }, { 'value': 2, 'name': '亦叶' }, { 'value': 2, 'name': '再飞' }, { 'value': 2, 'name': '完白' }, { 'value': 2, 'name': '巴思' }, { 'value': 2, 'name': '张初尘' }, { 'value': 2, 'name': '御术' }, { 'value': 2, 'name': '有田' }, { 'value': 2, 'name': '沉鱼' }, { 'value': 2, 'name': '玉伯' }, { 'value': 2, 'name': '画康' }, { 'value': 2, 'name': '祯逸' }, { 'value': 2, 'name': '绝云' }, { 'value': 2, 'name': '罗宪' }, { 'value': 2, 'name': '萧庆' }, { 'value': 2, 'name': '董珊珊' }, { 'value': 2, 'name': '陆沉' }, { 'value': 2, 'name': '顾倾' }, { 'value': 2, 'name': 'Domo' }, { 'value': 2, 'name': 'GPL' }, { 'value': 2, 'name': 'PAI' }, { 'value': 2, 'name': 'SPSS' }, { 'value': 2, 'name': 'SYSTAT' }, { 'value': 2, 'name': 'Tableau' }, { 'value': 2, 'name': 'D3' }, { 'value': 2, 'name': 'Vega' }, { 'value': 2, 'name': '统计图表' }]) +} + +Mock.mock(/\/data\/antv\/tag-cloud/, 'get', tagCloudData) diff --git a/admin/src/mock/services/user.js b/admin/src/mock/services/user.js new file mode 100644 index 0000000..f8b09ca --- /dev/null +++ b/admin/src/mock/services/user.js @@ -0,0 +1,779 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const info = (options) => { + const userInfo = { + 'id': '4291d7da9005377ec9aec4a71ea837f', + 'name': '天野远子', + 'username': 'admin', + 'password': '', + 'avatar': '/avatar2.jpg', + 'status': 1, + 'telephone': '', + 'lastLoginIp': '27.154.74.117', + 'lastLoginTime': 1534837621348, + 'creatorId': 'admin', + 'createTime': 1497160610259, + 'merchantCode': 'TLif2btpzg079h15bk', + 'deleted': 0, + 'roleId': 'admin', + 'role': {} + } + // role + const roleObj = { + 'id': 'admin', + 'name': '管理员', + 'describe': '拥有所有权限', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'dashboard', + 'permissionName': '仪表盘', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'exception', + 'permissionName': '异常页面权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'result', + 'permissionName': '结果权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'profile', + 'permissionName': '详细页权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'table', + 'permissionName': '表格权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'form.vue', + 'permissionName': '表单权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'table', + 'permissionName': '桌子管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }] + } + + roleObj.permissions.push({ + 'roleId': 'admin', + 'permissionId': 'support', + 'permissionName': '超级模块', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }) + + userInfo.role = roleObj + return builder(userInfo) +} + +const userNav = (options) => { + const nav = [ + // dashboard + { + 'name': 'dashboard', + 'parentId': 0, + 'id': 1, + 'meta': { + 'icon': 'dashboard', + 'title': '仪表盘77', + 'show': true + }, + 'component': 'RouteView', + 'redirect': '/dashboard/workplace' + }, + { + 'name': 'workplace', + 'parentId': 1, + 'id': 7, + 'meta': { + 'title': '工作台', + 'show': true + }, + 'component': 'Workplace' + }, + { + 'name': 'monitor', + 'path': 'https://www.baidu.com/', + 'parentId': 1, + 'id': 3, + 'meta': { + 'title': '监控页(外部)', + 'target': '_blank', + 'show': true + } + }, + { + 'name': 'Analysis', + 'parentId': 1, + 'id': 2, + 'meta': { + 'title': '分析页', + 'show': true + }, + 'component': 'Analysis', + 'path': '/dashboard/analysis' + }, + { + 'name': 'tests', + 'parentId': 1, + 'id': 8, + 'meta': { + 'title': '测试功能', + 'show': true + }, + 'component': 'TestWork' + }, + + // form + { + 'name': 'form.vue', + 'parentId': 0, + 'id': 10, + 'meta': { + 'icon': 'form.vue', + 'title': '表单页' + }, + 'redirect': '/form/base-form', + 'component': 'PageView' + }, + { + 'name': 'basic-form', + 'parentId': 10, + 'id': 6, + 'meta': { + 'title': '基础表单' + }, + 'component': 'BasicForm' + }, + { + 'name': 'step-form', + 'parentId': 10, + 'id': 5, + 'meta': { + 'title': '分步表单' + }, + 'component': 'StepForm' + }, + { + 'name': 'advanced-form', + 'parentId': 10, + 'id': 4, + 'meta': { + 'title': '高级表单' + }, + 'component': 'AdvanceForm' + }, + + // list + { + 'name': 'list', + 'parentId': 0, + 'id': 10010, + 'meta': { + 'icon': 'table', + 'title': '列表页', + 'show': true + }, + 'redirect': '/list/table-list', + 'component': 'PageView' + }, + { + 'name': 'table-list', + 'parentId': 10010, + 'id': 10011, + 'path': '/list/table-list/:pageNo([1-9]\\d*)?', + 'meta': { + 'title': '查询表格', + 'show': true + }, + 'component': 'TableList' + }, + { + 'name': 'basic-list', + 'parentId': 10010, + 'id': 10012, + 'meta': { + 'title': '标准列表', + 'show': true + }, + 'component': 'StandardList' + }, + { + 'name': 'card', + 'parentId': 10010, + 'id': 10013, + 'meta': { + 'title': '卡片列表', + 'show': true + }, + 'component': 'CardList' + }, + { + 'name': 'search', + 'parentId': 10010, + 'id': 10014, + 'meta': { + 'title': '搜索列表', + 'show': true + }, + 'redirect': '/list/search/article', + 'component': 'SearchLayout' + }, + { + 'name': 'article', + 'parentId': 10014, + 'id': 10015, + 'meta': { + 'title': '搜索列表(文章)', + 'show': true + }, + 'component': 'SearchArticles' + }, + { + 'name': 'project', + 'parentId': 10014, + 'id': 10016, + 'meta': { + 'title': '搜索列表(项目)', + 'show': true + }, + 'component': 'SearchProjects' + }, + { + 'name': 'application', + 'parentId': 10014, + 'id': 10017, + 'meta': { + 'title': '搜索列表(应用)', + 'show': true + }, + 'component': 'SearchApplications' + }, + + // profile + { + 'name': 'profile', + 'parentId': 0, + 'id': 10018, + 'meta': { + 'title': '详情页', + 'icon': 'profile', + 'show': true + }, + 'redirect': '/profile/basic', + 'component': 'RouteView' + }, + { + 'name': 'basic', + 'parentId': 10018, + 'id': 10019, + 'meta': { + 'title': '基础详情页', + 'show': true + }, + 'component': 'ProfileBasic' + }, + { + 'name': 'advanced', + 'parentId': 10018, + 'id': 10020, + 'meta': { + 'title': '高级详情页', + 'show': true + }, + 'component': 'ProfileAdvanced' + }, + + // result + { + 'name': 'result', + 'parentId': 0, + 'id': 10021, + 'meta': { + 'title': '结果页', + 'icon': 'check-circle-o', + 'show': true + }, + 'redirect': '/result/success', + 'component': 'PageView' + }, + { + 'name': 'success', + 'parentId': 10021, + 'id': 10022, + 'meta': { + 'title': '成功', + 'hiddenHeaderContent': true, + 'show': true + }, + 'component': 'ResultSuccess' + }, + { + 'name': 'fail', + 'parentId': 10021, + 'id': 10023, + 'meta': { + 'title': '失败', + 'hiddenHeaderContent': true, + 'show': true + }, + 'component': 'ResultFail' + }, + + // Exception + { + 'name': 'exception', + 'parentId': 0, + 'id': 10024, + 'meta': { + 'title': '异常页', + 'icon': 'warning', + 'show': true + }, + 'redirect': '/exception/403', + 'component': 'RouteView' + }, + { + 'name': '403', + 'parentId': 10024, + 'id': 10025, + 'meta': { + 'title': '403', + 'show': true + }, + 'component': 'Exception403' + }, + { + 'name': '404', + 'parentId': 10024, + 'id': 10026, + 'meta': { + 'title': '404', + 'show': true + }, + 'component': 'Exception404' + }, + { + 'name': '500', + 'parentId': 10024, + 'id': 10027, + 'meta': { + 'title': '500', + 'show': true + }, + 'component': 'Exception500' + }, + + // account + { + 'name': 'account', + 'parentId': 0, + 'id': 10028, + 'meta': { + 'title': '个人页', + 'icon': 'user', + 'show': true + }, + 'redirect': '/account/center', + 'component': 'RouteView' + }, + { + 'name': 'center', + 'parentId': 10028, + 'id': 10029, + 'meta': { + 'title': '个人中心', + 'show': true + }, + 'component': 'AccountCenter' + }, + // 特殊三级菜单 + { + 'name': 'settings', + 'parentId': 10028, + 'id': 10030, + 'meta': { + 'title': '个人设置', + 'hideHeader': true, + 'hideChildren': true, + 'show': true + }, + 'redirect': '/account/settings/base', + 'component': 'AccountSettings' + }, + { + 'name': 'BaseSettings', + 'path': '/account/settings/base', + 'parentId': 10030, + 'id': 10031, + 'meta': { + 'title': '基本设置', + 'show': false + }, + 'component': 'BaseSettings' + }, + { + 'name': 'SecuritySettings', + 'path': '/account/settings/security', + 'parentId': 10030, + 'id': 10032, + 'meta': { + 'title': '安全设置', + 'show': false + }, + 'component': 'SecuritySettings' + }, + { + 'name': 'CustomSettings', + 'path': '/account/settings/custom', + 'parentId': 10030, + 'id': 10033, + 'meta': { + 'title': '个性化设置', + 'show': false + }, + 'component': 'CustomSettings' + }, + { + 'name': 'BindingSettings', + 'path': '/account/settings/binding', + 'parentId': 10030, + 'id': 10034, + 'meta': { + 'title': '第三方配置', + 'show': false + }, + 'component': 'BindingSettings' + }, + { + 'name': 'NotificationSettings', + 'path': '/account/settings/notification', + 'parentId': 10030, + 'id': 10034, + 'meta': { + 'title': '新消息通知', + 'show': false + }, + 'component': 'NotificationSettings' + }, + { + 'name': 'ThirdOpenSettings', + 'path': '/account/settings/thirdopen', + 'parentId': 10030, + 'id': 10035, + 'meta': { + 'title': '推送配置', + 'show': false + }, + 'component': 'ThirdOpenSettings' + } + ] + const json = builder(nav) + return json +} + +Mock.mock(/\/api\/user\/info/, 'get', info) +Mock.mock(/\/api\/user\/nav/, 'get', userNav) diff --git a/admin/src/mock/util.js b/admin/src/mock/util.js new file mode 100644 index 0000000..a4be036 --- /dev/null +++ b/admin/src/mock/util.js @@ -0,0 +1,38 @@ +const responseBody = { + message: '', + timestamp: 0, + result: null, + code: 0 +} + +export const builder = (data, message, code = 0, headers = {}) => { + responseBody.result = data + if (message !== undefined && message !== null) { + responseBody.message = message + } + if (code !== undefined && code !== 0) { + responseBody.code = code + responseBody._status = code + } + if (headers !== null && typeof headers === 'object' && Object.keys(headers).length > 0) { + responseBody._headers = headers + } + responseBody.timestamp = new Date().getTime() + return responseBody +} + +export const getQueryParameters = (options) => { + const url = options.url + const search = url.split('?')[1] + if (!search) { + return {} + } + return JSON.parse('{"' + decodeURIComponent(search) + .replace(/"/g, '\\"') + .replace(/&/g, '","') + .replace(/=/g, '":"') + '"}') +} + +export const getBody = (options) => { + return options.body && JSON.parse(options.body) +} diff --git a/admin/src/permission.js b/admin/src/permission.js new file mode 100644 index 0000000..048daee --- /dev/null +++ b/admin/src/permission.js @@ -0,0 +1,145 @@ +import Vue from 'vue' +import router from './router' +import store from './store' + +import NProgress from 'nprogress' // progress bar +import '@/components/NProgress/nprogress.less' // progress bar custom style +import { setDocumentTitle, domTitle } from '@/utils/domUtil' +import { ACCESS_TOKEN, ALL_APPS_MENU } from '@/store/mutation-types' + +import { Modal, notification } from 'ant-design-vue' // NProgress Configuration +import { timeFix } from '@/utils/util'/// es/notification +import Enumerable from 'linq' + +NProgress.configure({ showSpinner: false }) +const whiteList = ['login', 'register', 'registerResult', 'wechat'] // no redirect whitelist +// 无默认首页的情况 +const defaultRoutePath = '/welcome' + +router.beforeEach((to, from, next) => { + NProgress.start() // start progress bar + if (store.getters.configinfo === null || typeof store.getters.configinfo.version === 'undefined') { + store.dispatch('getConfig').then((res) => { + to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${to.meta.title} - ${store.getters.configinfo.platformname}`)) + }) + } else { + let title = domTitle + if (store.getters.configinfo !== null && typeof store.getters.configinfo.platformname !== 'undefined') { + title = store.getters.configinfo.platformname + } + to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${to.meta.title} - ${title}`)) + } + + if (Vue.ls.get(ACCESS_TOKEN)) { + /* has token */ + if (to.path === '/user/login') { + // next({ path: defaultRoutePath }) + NProgress.done() + } else { + if (store.getters.roles.length === 0) { + store + .dispatch('GetInfo') + .then(res => { + if (res.menus.length < 1) { + Modal.error({ + title: '提示:', + content: '无菜单权限,请联系管理员', + okText: '确定', + onOk: () => { + store.dispatch('Logout').then(() => { + console.log('from', from) + if (from.query.info != null && typeof from.query.info !== 'undefined') { + location.href = location.protocol + '//' + location.host + from.path + '?redirect=' + from.query.redirect + } else { + window.location.reload() + } + }) + } + }) + return + } + // eslint-disable-next-line camelcase + const all_app_menu = Vue.ls.get(ALL_APPS_MENU) + let antDesignmenus + // eslint-disable-next-line camelcase + if (all_app_menu == null) { + const applocation = [] + res.apps.forEach(item => { + const apps = { 'code': '', 'name': '', 'active': '', 'menu': '' } + if (item.active) { + apps.code = item.code + apps.name = item.name + apps.active = item.active + apps.menu = res.menus + antDesignmenus = res.menus + } else { + apps.code = item.code + apps.name = item.name + apps.active = item.active + apps.menu = '' + } + applocation.push(apps) + }) + if (antDesignmenus === undefined) { + // 没有设置默认值的情况下,使第一个应用菜单为默认菜单 + var firstApps = Enumerable.from(applocation).first() + firstApps.active = 'Y' + firstApps.menu = res.menus + antDesignmenus = res.menus + } + Vue.ls.set(ALL_APPS_MENU, applocation, 7 * 24 * 60 * 60 * 1000)// 缓存7天 + // 延迟 1 秒显示欢迎信息 + setTimeout(() => { + notification.success({ + message: '欢迎', + description: `${timeFix()},欢迎回来` + }) + }, 1000) + } else { + antDesignmenus = Vue.ls.get(ALL_APPS_MENU)[0].menu + } + store.dispatch('GenerateRoutes', { antDesignmenus }).then(() => { + // 动态添加可访问路由表 + // for (let i = 0, length = store.getters.addRouters.length; i < length; i += 1) { + // const element = store.getters.addRouters[i] + // router.addRoute(element) + // } + router.addRoutes(store.getters.addRouters) + // 请求带有 redirect 重定向时,登录自动重定向到该地址 + const redirect = decodeURIComponent(from.query.redirect || to.path) + if (to.path === redirect) { + next({ path: redirect }) + // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record + next({ ...to, replace: true }) + } else { + // 跳转到目的路由 + next({ path: redirect }) + } + }) + }) + .catch(() => { + store.dispatch('Logout').then(() => { + next({ path: '/user/login', query: { redirect: to.fullPath } }) + }) + }) + store.dispatch('getNoticReceiveList').then((res) => { }) + // 加载枚举信息 + store.dispatch('getclientdata').then((res) => {}) + } else { + next() + } + } + } else { + if (whiteList.includes(to.name)) { + // 在免登录白名单,直接进入 + next() + } else { + next({ path: '/user/login', query: { redirect: to.fullPath } }) + NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it + } + } +}) + +router.afterEach(() => { + NProgress.done() // finish progress bar +}) diff --git a/admin/src/router/generator-routers.js b/admin/src/router/generator-routers.js new file mode 100644 index 0000000..fd24f64 --- /dev/null +++ b/admin/src/router/generator-routers.js @@ -0,0 +1,273 @@ + +import { BasicLayout, BlankLayout, PageView, RouteView, Iframe } from '@/layouts' + +// 前端路由表 +const constantRouterComponents = { + // 基础页面 layout 必须引入 + BasicLayout: BasicLayout, + BlankLayout: BlankLayout, + RouteView: RouteView, + PageView: PageView, + Iframe: Iframe, + '403': () => import('@/views/system/exception/403'), + '404': () => import('@/views/system/exception/404'), + '500': () => import('@/views/system/exception/500'), + + 'Workplace': () => import('@/views/system/dashboard/Workplace'), + // account + 'AccountCenter': () => import('@/views/system/account/center/Index'), + 'AccountSettings': () => import('@/views/system/account/settings/Index'), + 'BaseSettings': () => import('@/views/system/account/settings/BaseSetting'), + 'SecuritySettings': () => import('@/views/system/account/settings/Security'), + 'CustomSettings': () => import('@/views/system/account/settings/Custom'), + 'NotificationSettings': () => import('@/views/system/account/settings/Notification'), + 'ThirdOpenSettings': () => import('@/views/system/account/settings/ThirdOpen'), + // 默认首页 + 'Console': () => import('@/views/system/index/welcome') +} + +// 前端未找到页面路由(固定不用改)、原来为 /404 +const notFoundRouter = { + path: '*', redirect: '/welcome', hidden: true +} +// 个人中心页面 +const userAccount = [ + // account + { + 'name': 'account', + 'pid': 0, + 'id': 10028, + 'meta': { + 'title': '个人页', + 'icon': 'user', + 'show': false + }, + 'redirect': '/account/center', + 'component': 'RouteView' + }, + { + 'name': 'center', + 'pid': 10028, + 'id': 10029, + 'meta': { + 'title': '个人中心', + 'show': false + }, + 'component': 'AccountCenter' + }, + // 特殊三级菜单 + { + 'name': 'settings', + 'pid': '10028', + 'id': '10030', + 'meta': { + 'title': '个人设置', + 'hideHeader': true, + 'hideChildren': true, + 'show': false + }, + 'redirect': '/account/settings/base', + 'component': 'AccountSettings' + }, + { + 'name': 'BaseSettings', + 'path': '/account/settings/base', + 'pid': 10030, + 'id': 10031, + 'meta': { + 'title': '基本设置', + 'show': false + }, + 'component': 'BaseSettings' + }, + { + 'name': 'SecuritySettings', + 'path': '/account/settings/security', + 'pid': 10030, + 'id': 10032, + 'meta': { + 'title': '安全设置', + 'show': false + }, + 'component': 'SecuritySettings' + }, + { + 'name': 'CustomSettings', + 'path': '/account/settings/custom', + 'pid': 10030, + 'id': 10033, + 'meta': { + 'title': '个性化设置', + 'show': false + }, + 'component': 'CustomSettings' + }, + { + 'name': 'BindingSettings', + 'path': '/account/settings/binding', + 'pid': 10030, + 'id': 10034, + 'meta': { + 'title': '', + 'show': false + }, + 'component': 'BindingSettings' + }, + { + 'name': 'NotificationSettings', + 'path': '/account/settings/notification', + 'pid': 10030, + 'id': 10034, + 'meta': { + 'title': '新消息通知', + 'show': false + }, + 'component': 'NotificationSettings' + }, + { + 'name': 'ThirdOpenSettings', + 'path': '/account/settings/thirdopen', + 'pid': 10030, + 'id': 10035, + 'meta': { + 'title': '推送配置', + 'show': false + }, + 'component': 'ThirdOpenSettings' + }, + { + 'name': 'Console', + 'path': '/welcome', + 'pid': 0, + 'id': 183183, + 'meta': { + 'title': '首页', + 'show': false + }, + 'component': 'Console' + } + +] + +// 根级菜单 +const rootRouter = { + key: '', + name: 'MenuIndex.vue', + path: '', + component: 'BasicLayout', + redirect: '/welcome', + meta: { + title: '首页' + }, + children: [] +} + +/** + * 动态生成菜单 + * @param data + * @returns {Promise} + */ +export const generatorDynamicRouter = (data) => { + return new Promise((resolve, reject) => { + const resNav = data.antDesignmenus + const menuNav = [] + const childrenNav = [] + // 后端数据, 根级树数组, 根级 PID + listToTree(resNav, childrenNav, 0) + + /** + * 增加静态网页 + */ + listToTree(userAccount, childrenNav, 0) + rootRouter.children = childrenNav + menuNav.push(rootRouter) + const routers = generator(menuNav) + routers.push(notFoundRouter) + resolve(routers) + }).catch(err => { + // reject('加载菜单失败') + return Promise.reject(err) + }) +} + +/** + * 格式化树形结构数据 生成 vue-router 层级路由表 + * + * @param routerMap + * @param parent + * @returns {*} + */ +export const generator = (routerMap, parent) => { + return routerMap.map(item => { + // eslint-disable-next-line no-unused-vars + const { title, show, hideChildren, hiddenHeaderContent, target, icon, link } = item.meta || {} + const currentRouter = { + // 如果路由设置了 path,则作为默认 path,否则 路由地址 动态拼接生成如 /dashboard/workplace + path: item.path || `${parent && parent.path || ''}/${item.key}`, + // 路由名称,建议唯一 + name: item.name || item.key || '', + // 该路由对应页面的 组件 :方案1 + // component: constantRouterComponents[item.component || item.key], + // 该路由对应页面的 组件 :方案2 (动态加载) + component: (constantRouterComponents[item.component || item.key]) || (() => import(`@/views/${item.component}`)), + // meta: 页面标题, 菜单图标, 页面权限(供指令权限用,可去掉) + meta: { + title: title, + icon: icon || undefined, + // hiddenHeaderContent: hiddenHeaderContent, + target: target, + link: link + } + } + // 是否设置了隐藏菜单 + if (show === false) { + currentRouter.hidden = true + } + // 是否设置了隐藏子菜单 + if (hideChildren) { + currentRouter.hideChildrenInMenu = true + } + // 为了防止出现后端返回结果不规范,处理有可能出现拼接出两个 反斜杠 + if (!currentRouter.path.startsWith('http')) { + currentRouter.path = currentRouter.path.replace('//', '/') + } + // 重定向 + item.redirect && (currentRouter.redirect = item.redirect) + // 是否有子菜单,并递归处理 + if (item.children && item.children.length > 0) { + // Recursion + currentRouter.children = generator(item.children, currentRouter) + } + return currentRouter + }) +} + +/** + * 数组转树形结构 + * @param list 源数组 + * @param tree 树 + * @param parentId 父ID + */ +const listToTree = (list, tree, parentId) => { + if (list) { + list.forEach(item => { + // 判断是否为父级菜单 + // eslint-disable-next-line eqeqeq + if (item.pid == parentId) { + const child = { + ...item, + key: item.key || item.name, + children: [] + } + // 迭代 list, 找到当前菜单相符合的所有子菜单 + listToTree(list, child.children, item.id) + // 删掉不存在 children 值的属性 + if (child.children.length <= 0) { + delete child.children + } + // 加入到树中 + tree.push(child) + } + }) + } +} diff --git a/admin/src/router/index.js b/admin/src/router/index.js new file mode 100644 index 0000000..dd72772 --- /dev/null +++ b/admin/src/router/index.js @@ -0,0 +1,19 @@ +import Vue from 'vue' +import Router from 'vue-router' +import { constantRouterMap } from '@/config/router.config' + +// hack router push callback +const originalPush = Router.prototype.push +Router.prototype.push = function push (location, onResolve, onReject) { + if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) + return originalPush.call(this, location).catch(err => err) +} + +Vue.use(Router) + +export default new Router({ + mode: 'history', + base: process.env.BASE_URL, + scrollBehavior: () => ({ y: 0 }), + routes: constantRouterMap +}) diff --git a/admin/src/store/getters.js b/admin/src/store/getters.js new file mode 100644 index 0000000..5f7fdd7 --- /dev/null +++ b/admin/src/store/getters.js @@ -0,0 +1,23 @@ +const getters = { + device: state => state.app.device, + theme: state => state.app.theme, + color: state => state.app.color, + token: state => state.user.token, + avatar: state => state.user.avatar, + nickname: state => state.user.name, + welcome: state => state.user.welcome, + roles: state => state.user.roles, + buttons: state => state.user.buttons, + allButtons: state => state.user.allButtons, + alldevtypes: state => state.user.alldevicetypes, + clientdata: state => state.user.clientdata, + admintype: state => state.user.admintype, + configinfo: state => state.user.allconfig, + userInfo: state => state.user.info, + userNotices: state => state.user.notices, + addRouters: state => state.permission.addRouters, + multiTab: state => state.app.multiTab, + lang: state => state.i18n.lang +} + +export default getters diff --git a/admin/src/store/index.js b/admin/src/store/index.js new file mode 100644 index 0000000..687d21b --- /dev/null +++ b/admin/src/store/index.js @@ -0,0 +1,32 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import app from './modules/app' +import user from './modules/user' + +// default router permission control +// import permission from './modules/permission' + +// dynamic router permission control (Experimental) +import permission from './modules/async-router' +import getters from './getters' + +Vue.use(Vuex) + +export default new Vuex.Store({ + modules: { + app, + user, + permission + }, + state: { + + }, + mutations: { + + }, + actions: { + + }, + getters +}) diff --git a/admin/src/store/modules/app.js b/admin/src/store/modules/app.js new file mode 100644 index 0000000..24bf365 --- /dev/null +++ b/admin/src/store/modules/app.js @@ -0,0 +1,138 @@ +import Vue from 'vue' +import { + SIDEBAR_TYPE, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR, + DEFAULT_COLOR_WEAK, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_TAB, + DEFAULT_CRUMBS_STATE +} from '@/store/mutation-types' + +const app = { + state: { + sidebar: true, + device: 'desktop', + theme: '', + layout: '', + contentWidth: '', + fixedHeader: false, + fixSiderbar: false, + autoHideHeader: false, + color: null, + weak: false, + multiTab: true, + crumbsState: true, + hasError: false + }, + mutations: { + SET_SIDEBAR_TYPE: (state, type) => { + state.sidebar = type + Vue.ls.set(SIDEBAR_TYPE, type) + }, + CLOSE_SIDEBAR: (state) => { + Vue.ls.set(SIDEBAR_TYPE, true) + state.sidebar = false + }, + TOGGLE_DEVICE: (state, device) => { + state.device = device + }, + TOGGLE_THEME: (state, theme) => { + // setStore('_DEFAULT_THEME', theme) + Vue.ls.set(DEFAULT_THEME, theme) + state.theme = theme + }, + TOGGLE_LAYOUT_MODE: (state, layout) => { + Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) + state.layout = layout + }, + TOGGLE_FIXED_HEADER: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) + state.fixedHeader = fixed + }, + TOGGLE_FIXED_SIDERBAR: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) + state.fixSiderbar = fixed + }, + TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { + Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) + state.autoHideHeader = show + }, + TOGGLE_CONTENT_WIDTH: (state, type) => { + Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) + state.contentWidth = type + }, + TOGGLE_COLOR: (state, color) => { + Vue.ls.set(DEFAULT_COLOR, color) + state.color = color + }, + TOGGLE_WEAK: (state, flag) => { + Vue.ls.set(DEFAULT_COLOR_WEAK, flag) + state.weak = flag + }, + TOGGLE_MULTI_TAB: (state, bool) => { + Vue.ls.set(DEFAULT_MULTI_TAB, bool) + state.multiTab = bool + }, + TOGGLE_CRUMBS_STATE: (state, bool) => { + Vue.ls.set(DEFAULT_CRUMBS_STATE, bool) + state.crumbsState = bool + }, + SET_HAS_ERROR: (state, bool) => { + state.hasError = bool + } + }, + actions: { + setSidebar ({ commit }, type) { + commit('SET_SIDEBAR_TYPE', type) + }, + CloseSidebar ({ commit }) { + commit('CLOSE_SIDEBAR') + }, + ToggleDevice ({ commit }, device) { + commit('TOGGLE_DEVICE', device) + }, + ToggleTheme ({ commit }, theme) { + commit('TOGGLE_THEME', theme) + }, + ToggleLayoutMode ({ commit }, mode) { + commit('TOGGLE_LAYOUT_MODE', mode) + }, + ToggleFixedHeader ({ commit }, fixedHeader) { + if (!fixedHeader) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', false) + } + commit('TOGGLE_FIXED_HEADER', fixedHeader) + }, + ToggleFixSiderbar ({ commit }, fixSiderbar) { + commit('TOGGLE_FIXED_SIDERBAR', fixSiderbar) + }, + ToggleFixedHeaderHidden ({ commit }, show) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', show) + }, + ToggleContentWidth ({ commit }, type) { + commit('TOGGLE_CONTENT_WIDTH', type) + }, + ToggleColor ({ commit }, color) { + commit('TOGGLE_COLOR', color) + }, + ToggleWeak ({ commit }, weakFlag) { + commit('TOGGLE_WEAK', weakFlag) + }, + ToggleMultiTab ({ commit }, bool) { + commit('TOGGLE_MULTI_TAB', bool) + }, + ToggleCrumbsState ({ commit }, bool) { + commit('TOGGLE_CRUMBS_STATE', bool) + }, + SetHasError ({ commit }, bool) { + commit('SET_HAS_ERROR', bool) + } + } +} + +export default app diff --git a/admin/src/store/modules/async-router.js b/admin/src/store/modules/async-router.js new file mode 100644 index 0000000..4491e06 --- /dev/null +++ b/admin/src/store/modules/async-router.js @@ -0,0 +1,33 @@ +/** + * 向后端请求用户的菜单,动态生成路由 + */ +import { constantRouterMap } from '@/config/router.config' +import { generatorDynamicRouter } from '@/router/generator-routers' + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [] + }, + mutations: { + SET_ROUTERS: (state, routers) => { + state.addRouters = routers + state.routers = constantRouterMap.concat(routers) + } + }, + actions: { + GenerateRoutes ({ commit }, data) { + return new Promise(resolve => { + generatorDynamicRouter(data).then(routers => { + commit('SET_ROUTERS', routers) + resolve() + }) + }).catch(err => { + // eslint-disable-next-line no-undef + reject(err) + }) + } + } +} + +export default permission diff --git a/admin/src/store/modules/permission.js b/admin/src/store/modules/permission.js new file mode 100644 index 0000000..c614821 --- /dev/null +++ b/admin/src/store/modules/permission.js @@ -0,0 +1,76 @@ +import { asyncRouterMap, constantRouterMap } from '@/config/router.config' + +/** + * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 + * + * @param permission + * @param route + * @returns {boolean} + */ +function hasPermission (permission, route) { + // if (route.meta && route.meta.permission) { + // let flag = false + // for (let i = 0, len = permission.length; i < len; i++) { + // flag = route.meta.permission.includes(permission[i]) + // if (flag) { + // return true + // } + // } + // return false + // } + return true +} + +/** + * 单账户多角色时,使用该方法可过滤角色不存在的菜单 + * + * @param roles + * @param route + * @returns {*} + */ +// eslint-disable-next-line +function hasRole(roles, route) { + if (route.meta && route.meta.roles) { + return route.meta.roles.includes(roles.id) + } else { + return true + } +} + +function filterAsyncRouter (routerMap, roles) { + const accessedRouters = routerMap.filter(route => { + if (hasPermission(roles.permissionList, route)) { + if (route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, roles) + } + return true + } + return false + }) + return accessedRouters +} + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [] + }, + mutations: { + SET_ROUTERS: (state, routers) => { + state.addRouters = routers + state.routers = constantRouterMap.concat(routers) + } + }, + actions: { + GenerateRoutes ({ commit }, data) { + return new Promise(resolve => { + const { roles } = data + const accessedRouters = filterAsyncRouter(asyncRouterMap, roles) + commit('SET_ROUTERS', accessedRouters) + resolve() + }) + } + } +} + +export default permission diff --git a/admin/src/store/modules/user.js b/admin/src/store/modules/user.js new file mode 100644 index 0000000..5ab94a2 --- /dev/null +++ b/admin/src/store/modules/user.js @@ -0,0 +1,310 @@ +import Vue from 'vue' +import { login, getLoginUser, logout } from '@/api/modular/system/loginManage' +import { sysDictTypeTree } from '@/api/modular/system/dictManage' +import { sysMenuChange } from '@/api/modular/system/menuManage' +import { GetClientData, GetConfigInfo } from '@/api/modular/main/systeminfo' +// eslint-disable-next-line no-unused-vars +import { ACCESS_TOKEN, ALL_APPS_MENU, DICT_TYPE_TREE_DATA, NOTICE_RECEIVED } from '@/store/mutation-types' +import { sysFileInfoPreview } from '@/api/modular/system/fileManage' +import { + unReadNotice +} from '@/api/modular/system/noticeReceivedManage' + +import { welcome, dateFormat } from '@/utils/util' +import store from '../index' +import router from '../../router' + +const user = { + state: { + token: '', + name: '', + welcome: '', + avatar: '', + buttons: [], // 按钮权限 + allButtons: [], // 所有按钮权限 + alldevicetypes: [], // 所有设备类型 + allconfig: {}, // 配置信息 + clientdata: {}, // 枚举值 + admintype: '', // 是否是超管 + roles: [], + info: {}, + notices: [] // 接收的通知公告 + }, + + mutations: { + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, { name, welcome }) => { + state.name = name + state.welcome = welcome + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + }, + SET_ROLES: (state, roles) => { + state.roles = roles + }, + SET_INFO: (state, info) => { + state.info = info + }, + SET_BUTTONS: (state, buttons) => { + state.buttons = buttons + }, + SET_ALL_BUTTONS: (state, allButtons) => { + state.allButtons = allButtons + }, + SET_ADMINTYPE: (state, admintype) => { + state.admintype = admintype + }, + // 设置设备类型 + SET_DEVICETYPE: (state, alltypes) => { + state.alldevicetypes = alltypes + }, + // 设置配置信息 + SET_CONFIGINFO: (state, allconfig) => { + state.allconfig = allconfig + }, + // 设置枚举 + SET_CLIENTDATA: (state, data) => { + state.clientdata = data + }, + SET_NOTICES: (state, notices) => { + state.notices = notices + }, + APPEND_NOTICE: (state, notice) => { + notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') + const notices = state.notices + const temp = notices.rows.filter(m => { return m.value === notice.type })[0] + const other = notices.rows.filter(m => { return m.value !== notice.type }) + temp.noticeData.unshift(notice) + notices.totalrows++ + if (temp.noticeData.length > 6) { + temp.noticeData.pop() + } + notices.rows = [] + notices.rows.push(temp) + notices.rows.push.apply(notices.rows, other) + notices.rows.sort((obj1, obj2) => { + return obj1.index - obj2.index + }) + state.notices = notices + }, + SUBTRACT_NOTICE: (state, notice) => { + // 查看通知后在消息提示中消除已经查看过的,此函数 可能 存在未知bug + // notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') + const notices = state.notices + // debugger + const temp = notices.rows.filter(m => { return m.value === notice.type })[0] + const other = notices.rows.filter(m => { return m.value !== notice.type }) + temp.noticeData.shift(notice) + notices.totalrows-- + if (temp.noticeData.length > 6) { + temp.noticeData.pop() + } + notices.rows = [] + notices.rows.pop(temp) + notices.rows.pop.apply(notices.rows, other) + notices.rows.sort((obj1, obj2) => { + return obj1.index - obj2.index + }) + state.notices = notices + } + }, + + actions: { + // 登录 + Login ({ commit }, userInfo) { + Vue.ls.remove(ALL_APPS_MENU)// 清除菜单缓存 + return new Promise((resolve, reject) => { + login(userInfo).then(response => { + if (response.code !== 0) { + reject(response.message) + return + } + // 从响应 Header 中读取,处理逻辑移至 request.js 中处理 + // const result = response.data + // Vue.ls.set(ACCESS_TOKEN, result, 7 * 24 * 60 * 60 * 1000) + // commit('SET_TOKEN', result) + resolve() + // eslint-disable-next-line handle-callback-err + }).catch(error => { + // eslint-disable-next-line prefer-promise-reject-errors + reject('后端未启动或代理错误') + }) + }) + }, + + // 获取用户信息 + GetInfo ({ commit }) { + return new Promise((resolve, reject) => { + getLoginUser().then(response => { + if (response.code === 0) { + const data = response.data + commit('SET_ADMINTYPE', data.admintype) + commit('SET_ROLES', 1) + commit('SET_BUTTONS', data.permissions) + commit('SET_ALL_BUTTONS', data.allpermissions) + commit('SET_INFO', data) + commit('SET_NAME', { name: data.name, welcome: welcome() }) + if (data.avatar != null) { + sysFileInfoPreview({ id: data.avatar }).then((res) => { + commit('SET_AVATAR', window.URL.createObjectURL(new Blob([res]))) + }).catch((err) => { + this.$myerror('预览错误:' + err.message) + }) + // commit('SET_AVATAR', process.env.VUE_APP_API_BASE_URL + '/sysFileInfo/preview?id=' + data.avatar) + } else { + commit('SET_AVATAR', '/avatar2.jpg') + } + resolve(data) + } else { + // eslint-disable-next-line no-undef + reject(new Error(response.message)) + } + }) + // 登录过期后前端会发生高频访问后端的问题 + // .catch(error => { + // reject(error) + // }) + }) + }, + + // 登出 + Logout ({ commit, state }) { + return new Promise((resolve) => { + logout(state.token).then(() => { + resolve() + }).catch(() => { + resolve() + }).finally(() => { + commit('SET_TOKEN', '') + commit('SET_ROLES', []) + commit('SET_BUTTONS', []) + commit('SET_ALL_BUTTONS', []) + commit('SET_ADMINTYPE', '') + Vue.ls.remove(ACCESS_TOKEN) + Vue.ls.remove(ALL_APPS_MENU) + Vue.ls.remove(DICT_TYPE_TREE_DATA) + Vue.ls.remove('X-Access-Token') + }) + }) + }, + // 加载配置信息 + getConfig({ commit }) { + return new Promise((resolve, reject) => { + GetConfigInfo().then((data) => { + if (data.code === 0) { + const result = data.data + commit('SET_CONFIGINFO', result) + resolve(result) + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 加载所有字典数据 + dictTypeData () { + return new Promise((resolve, reject) => { + sysDictTypeTree().then((data) => { + if (data.code === 0) { + const result = data.data + Vue.ls.set(DICT_TYPE_TREE_DATA, result) + resolve() + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 加载所有的枚举 + getclientdata({ commit }) { + return new Promise((resolve, reject) => { + GetClientData().then((data) => { + if (data.code === 0) { + const result = data.data + commit('SET_CLIENTDATA', result) + resolve(result) + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 切换应用菜单 + MenuChange ({ commit }, application) { + return new Promise((resolve) => { + sysMenuChange({ application: application.code }).then((res) => { + const apps = { 'code': '', 'name': '', 'active': '', 'menu': '' } + apps.active = true + apps.menu = res.data + // eslint-disable-next-line camelcase + const all_app_menu = Vue.ls.get(ALL_APPS_MENU) + // eslint-disable-next-line camelcase + const new_false_all_app_menu = [] + // 先去除所有默认的,以为此时切换的即将成为前端缓存默认的应用 + all_app_menu.forEach(item => { + if (item.active) { + item.active = false + } + new_false_all_app_menu.push(item) + }) + // 此时缓存中全部都是不默认的应用 + Vue.ls.set(ALL_APPS_MENU, new_false_all_app_menu) + apps.name = application.name + apps.code = application.code + const applocationR = [] + applocationR.push(apps) + Vue.ls.set(ALL_APPS_MENU, applocationR) + resolve(res) + const antDesignmenus = res.data + store.dispatch('GenerateRoutes', { antDesignmenus }).then(() => { + // for (let i = 0, length = store.getters.addRouters.length; i < length; i += 1) { + // const element = store.getters.addRouters[i] + // router.addRoute(element) + // } + router.addRoutes(store.getters.addRouters) + }) + // 切换应用刷新整体界面,暂且取消 + // window.location.reload() + }).catch(() => { + resolve() + }) + }) + }, + // 获取收到的通知 + getNoticReceiveList({ + commit + }) { + return new Promise((resolve, reject) => { + unReadNotice({ + pageSize: 6 + }).then((data) => { + if (data.code === 0) { + const result = data.data + commit('SET_NOTICES', result) + resolve() + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + } + + } +} + +export default user diff --git a/admin/src/store/mutation-types.js b/admin/src/store/mutation-types.js new file mode 100644 index 0000000..ca372f8 --- /dev/null +++ b/admin/src/store/mutation-types.js @@ -0,0 +1,19 @@ +export const ACCESS_TOKEN = 'Access-Token' +export const SIDEBAR_TYPE = 'SIDEBAR_TYPE' +export const ALL_APPS_MENU = 'ALL_APPS_MENU' +export const DEFAULT_THEME = 'DEFAULT_THEME' +export const DEFAULT_LAYOUT_MODE = 'DEFAULT_LAYOUT_MODE' +export const DEFAULT_COLOR = 'DEFAULT_COLOR' +export const DEFAULT_COLOR_WEAK = 'DEFAULT_COLOR_WEAK' +export const DEFAULT_FIXED_HEADER = 'DEFAULT_FIXED_HEADER' +export const DEFAULT_FIXED_SIDEMENU = 'DEFAULT_FIXED_SIDEMENU' +export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN' +export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE' +export const DEFAULT_MULTI_TAB = 'DEFAULT_MULTI_TAB' +export const DEFAULT_CRUMBS_STATE = 'DEFAULT_CRUMBS_STATE' +export const DICT_TYPE_TREE_DATA = 'DICT_TYPE_TREE_DATA' +export const NOTICE_RECEIVED = 'NOTICE_RECEIVED' +export const CONTENT_WIDTH_TYPE = { + Fluid: 'Fluid', + Fixed: 'Fixed' +} diff --git a/admin/src/utils/applocation.js b/admin/src/utils/applocation.js new file mode 100644 index 0000000..30fdc28 --- /dev/null +++ b/admin/src/utils/applocation.js @@ -0,0 +1,11 @@ +import store from '@/store' + +/** + * 缓存中的已选中应用 + * + * @author yubaoshan + * @date 2020/06/27 02:34 + */ +export function sysApplication () { + return store.getters.applocation +} diff --git a/admin/src/utils/area.txt b/admin/src/utils/area.txt new file mode 100644 index 0000000..8e5fb56 --- /dev/null +++ b/admin/src/utils/area.txt @@ -0,0 +1,72 @@ +function UserFormat(list,mapping){ +/*********************** + 修改此方法实现自定义格式(剪切本代码到你的编辑器中修改),可参考JsonArrayFormat的实现 + 参数list:为所有城市平铺列表,[{id,pid,deep,name,pinyin_prefix,pinyin,ext_id,ext_name,child:[]},...] + 参数mapping:为id城市映射,0索引的是省级0:{child:[]},其他为id:{id,pid,deep,name,pinyin_prefix,pinyin,ext_id,ext_name,child:[]} +*************************/ + +/**导出的json key配置**/ +var Settings={ + ID:"id" + ,IDMinLen:2 //id最少要这么长,取值2,4,6,尽量不要超过2,因为部分城市没有下级,数据中添加了00结尾的ID作为下级,因此恢复6位时就会冲突。如过调整,生成的数据需要自行处理冲突ID + + //如果设为空,会将所有城市展开到数组内,不进行上下级嵌套 + ,Childs:"children" + + //以下字段如果设为空,对应字段就不添加到结果中 + ,pid:"pid" + ,deep:"" + ,name:"value" + ,pinyin:"" + ,pinyin_prefix:"" + ,ext_id:"ext_id" + ,ext_name:"label" +}; + +var exec=function(obj,dist){//写个函数,递归处理数据 + if(!obj.childs.length){ + return; + }; + for(var i=0;i { + callback && callback(DEVICE_TYPE.DESKTOP) + } + } + + const matchLablet = { + match: () => { + callback && callback(DEVICE_TYPE.TABLET) + } + } + + const matchMobile = { + match: () => { + callback && callback(DEVICE_TYPE.MOBILE) + } + } + + // screen and (max-width: 1087.99px) + enquireJs + .register('screen and (max-width: 576px)', matchMobile) + .register('screen and (min-width: 576px) and (max-width: 1199px)', matchLablet) + .register('screen and (min-width: 1200px)', matchDesktop) +} diff --git a/admin/src/utils/devicetype.js b/admin/src/utils/devicetype.js new file mode 100644 index 0000000..6159e97 --- /dev/null +++ b/admin/src/utils/devicetype.js @@ -0,0 +1,19 @@ +import store from '@/store' + +// 所有设备类型列表 +export function AllDevTypes() { + return store.getters.alldevtypes +} +// 获取类型名 +export function GetDevTypeName(type) { + const types = store.getters.alldevtypes + const item = types.filter(item => item.code === type) + if (typeof item === 'undefined' || item.length === 0) { + return '' + } + const name = item[0].name + if (typeof name === 'undefined') { + return '' + } + return name +} diff --git a/admin/src/utils/domUtil.js b/admin/src/utils/domUtil.js new file mode 100644 index 0000000..44050a0 --- /dev/null +++ b/admin/src/utils/domUtil.js @@ -0,0 +1,19 @@ +export const setDocumentTitle = function (title) { + document.title = title + const ua = navigator.userAgent + // eslint-disable-next-line + const regex = /\bMicroMessenger\/([\d\.]+)/ + if (regex.test(ua) && /ip(hone|od|ad)/i.test(ua)) { + const i = document.createElement('iframe') + i.src = '/favicon.ico' + i.style.display = 'none' + i.onload = function () { + setTimeout(function () { + i.remove() + }, 9) + } + document.body.appendChild(i) + } +} + +export const domTitle = '管理平台' diff --git a/admin/src/utils/filter.js b/admin/src/utils/filter.js new file mode 100644 index 0000000..5b5239e --- /dev/null +++ b/admin/src/utils/filter.js @@ -0,0 +1,100 @@ +import Vue from 'vue' +import { DICT_TYPE_TREE_DATA } from '@/store/mutation-types' +import moment from 'moment' +import 'moment/locale/zh-cn' +moment.locale('zh-cn') + +Vue.filter('NumberFormat', function (value) { + if (!value) { + return '0' + } + const intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 千分位符 1,100,000.00 + return intPartFormat +}) + +Vue.filter('moment', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return moment(dataStr).format(pattern) +}) + +/** + * 金额格式化 ,使用方法:{{ val | Fmoney }} + * + * @author yubaoshan + * @date 2020-9-15 15:02:20 + */ +Vue.filter('Fmoney', function (val) { + // eslint-disable-next-line no-useless-escape + val = val.toString().replace(/\$|\,/g, '') + if (isNaN(val)) { + val = '0' + } + // eslint-disable-next-line eqeqeq + const sign = (val == (val = Math.abs(val))) + val = Math.floor(val * 100 + 0.50000000001) + let cents = val % 100 + val = Math.floor(val / 100).toString() + if (cents < 10) { + cents = '0' + cents + } + // eslint-disable-next-line no-undef + for (let i = 0; i < Math.floor((val.length - (1 + i)) / 3); i++) { + val = val.substring(0, val.length - (4 * i + 3)) + ',' + val.substring(val.length - (4 * i + 3)) + } + return (((sign) ? '' : '-') + val + '.' + cents) +}) + +/** + * 翻译使用方法,直接返回翻译后的name {{ code | dictType(value) }} + * + * @author yubaoshan + * @date 2020-9-15 15:02:20 + */ +Vue.filter('dictType', function (code, value) { + const dictTypeTree = Vue.ls.get(DICT_TYPE_TREE_DATA) + if (dictTypeTree === undefined) { + return '需重新登录' + } + if (dictTypeTree === null) { + return '无此字典' + } + // eslint-disable-next-line eqeqeq + const tree = dictTypeTree.filter(item => item.code == code)[0].children + if (tree === undefined || tree.length === 0) { + return '无此字典' + } + // eslint-disable-next-line eqeqeq + const values = tree.filter(item => item.code == value) + if (values.length === undefined || values.length === 0) { + return '无此字典' + } + return values[0].name +}) + +/** + * 获取某个code下字典的列表,多用于字典下拉框,使用方法:{{ code | dictData }} + * + * @author yubaoshan + * @date 2020-9-19 22:40:22 + */ +Vue.filter('dictData', function (code) { + const dictTypeTree = Vue.ls.get(DICT_TYPE_TREE_DATA) + if (dictTypeTree === undefined) { + return [] + } + // eslint-disable-next-line eqeqeq + const tree = dictTypeTree.filter(item => item.code == code)[0].children + if (tree === undefined) { + return [] + } + return tree +}) + +/** + * 获取所有字典数组 + * + * @author yubaoshan + * @date 2021-2-8 01:13 + */ +Vue.filter('dictDataAll', function () { + return Vue.ls.get(DICT_TYPE_TREE_DATA) +}) diff --git a/admin/src/utils/helper/permission.js b/admin/src/utils/helper/permission.js new file mode 100644 index 0000000..f0f6a32 --- /dev/null +++ b/admin/src/utils/helper/permission.js @@ -0,0 +1,51 @@ +export const PERMISSION_ENUM = { + 'add': { key: 'add', label: '新增' }, + 'delete': { key: 'delete', label: '删除' }, + 'edit': { key: 'edit', label: '修改' }, + 'query': { key: 'query', label: '查询' }, + 'get': { key: 'get', label: '详情' }, + 'enable': { key: 'enable', label: '启用' }, + 'disable': { key: 'disable', label: '禁用' }, + 'import': { key: 'import', label: '导入' }, + 'export': { key: 'export', label: '导出' } +} + +function plugin (Vue) { + if (plugin.installed) { + return + } + + !Vue.prototype.$auth && Object.defineProperties(Vue.prototype, { + $auth: { + get () { + const _this = this + return (permissions) => { + const [permission, action] = permissions.split('.') + const permissionList = _this.$store.getters.roles.permissions + return permissionList.find((val) => { + return val.permissionId === permission + }).actionList.findIndex((val) => { + return val === action + }) > -1 + } + } + } + }) + + !Vue.prototype.$enum && Object.defineProperties(Vue.prototype, { + $enum: { + get () { + // const _this = this; + return (val) => { + let result = PERMISSION_ENUM + val && val.split('.').forEach(v => { + result = result && result[v] || null + }) + return result + } + } + } + }) +} + +export default plugin diff --git a/admin/src/utils/messagesend.js b/admin/src/utils/messagesend.js new file mode 100644 index 0000000..d041ef2 --- /dev/null +++ b/admin/src/utils/messagesend.js @@ -0,0 +1,31 @@ +import Vue from 'vue' + +// signalR 客户端调用 +// 服务器端发送消息 + +// 给某一个个人 +export function messagesendtosomeone (parameter) { + Vue.socket.invoke('ClientsSendMessage', { userId: parameter.userId, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} + +// 给所有人 +export function messagesendtoAll (parameter) { + Vue.socket.invoke('ClientsSendMessagetoAll', { title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} + +// 给某些人 +export function messagesendtouserList (parameter) { + Vue.socket.invoke('ClientsSendMessagetoUsers', { userId: parameter.userList, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} +// 除了发送人 发送给剩下的人 +export function messagesendtoexsomeone (parameter) { + Vue.socket.invoke('ClientsSendMessagetoOther', { userIds: parameter.userIds, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} diff --git a/admin/src/utils/mixin.js b/admin/src/utils/mixin.js new file mode 100644 index 0000000..87d6c86 --- /dev/null +++ b/admin/src/utils/mixin.js @@ -0,0 +1,85 @@ +/* + * @Author: your name + * @Date: 2021-05-18 23:01:55 + * @LastEditTime: 2021-05-19 00:49:11 + * @LastEditors: your name + * @Description: In User Settings Edit + * @FilePath: \frontend\src\utils\mixin.js + */ +// import Vue from 'vue' +import { deviceEnquire, DEVICE_TYPE } from '@/utils/device' +import { mapState } from 'vuex' + +// const mixinsComputed = Vue.config.optionMergeStrategies.computed +// const mixinsMethods = Vue.config.optionMergeStrategies.methods + +const mixin = { + computed: { + ...mapState({ + layoutMode: state => state.app.layout, + navTheme: state => state.app.theme, + primaryColor: state => state.app.color, + colorWeak: state => state.app.weak, + fixedHeader: state => state.app.fixedHeader, + fixSiderbar: state => state.app.fixSiderbar, + fixSidebar: state => state.app.fixSiderbar, + contentWidth: state => state.app.contentWidth, + autoHideHeader: state => state.app.autoHideHeader, + sidebarOpened: state => state.app.sidebar, + multiTab: state => state.app.multiTab, + crumbsState: state => state.app.crumbsState + }) + }, + methods: { + isTopMenu () { + return this.layoutMode === 'topmenu' + }, + isSideMenu () { + return !this.isTopMenu() + } + } +} + +const mixinDevice = { + computed: { + ...mapState({ + device: state => state.app.device + }) + }, + methods: { + isMobile () { + return this.device === DEVICE_TYPE.MOBILE + }, + isDesktop () { + return this.device === DEVICE_TYPE.DESKTOP + }, + isTablet () { + return this.device === DEVICE_TYPE.TABLET + } + } +} + +const AppDeviceEnquire = { + mounted () { + const { $store } = this + deviceEnquire(deviceType => { + switch (deviceType) { + case DEVICE_TYPE.DESKTOP: + $store.commit('TOGGLE_DEVICE', 'desktop') + $store.dispatch('setSidebar', true) + break + case DEVICE_TYPE.TABLET: + $store.commit('TOGGLE_DEVICE', 'tablet') + $store.dispatch('setSidebar', false) + break + case DEVICE_TYPE.MOBILE: + default: + $store.commit('TOGGLE_DEVICE', 'mobile') + $store.dispatch('setSidebar', true) + break + } + }) + } +} + +export { mixin, AppDeviceEnquire, mixinDevice } diff --git a/admin/src/utils/permissions.js b/admin/src/utils/permissions.js new file mode 100644 index 0000000..0444b74 --- /dev/null +++ b/admin/src/utils/permissions.js @@ -0,0 +1,28 @@ +import store from '@/store' + +export function actionToObject (json) { + try { + return JSON.parse(json) + } catch (e) { + } + return [] +} + +/** + * 控制按钮是否显示 + * + * @author yubaoshan + * @date 2020/06/27 02:34 + */ +export function hasBtnPermission (permission) { + const myBtns = store.getters.buttons + // const allBtns = store.getters.allButtons + const admintype = store.getters.admintype + // eslint-disable-next-line eqeqeq + if (admintype === '1') { + return true + } + // 所有系统按钮中不存在,则不限制 + // return allBtns.indexOf(permission) === -1 || myBtns.indexOf(permission) > -1 + return myBtns.indexOf(permission) > -1 +} diff --git a/admin/src/utils/request.js b/admin/src/utils/request.js new file mode 100644 index 0000000..c489407 --- /dev/null +++ b/admin/src/utils/request.js @@ -0,0 +1,124 @@ +import Vue from 'vue' +import axios from 'axios' +import store from '@/store' +// import router from './router' +import { message, Modal, notification } from 'ant-design-vue' /// es/notification +import { VueAxios } from './axios' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import { $MyError } from './common' + +// 创建 axios 实例 +const service = axios.create({ + baseURL: '/api', // api base_url + timeout: 30000 // 请求超时时间ms +}) + +const err = error => { + if (error.response) { + const data = error.response.data + const token = Vue.ls.get(ACCESS_TOKEN) + if (error.response.status === 403) { + notification.error({ + message: 'Forbidden', + description: data.message + }) + } + if (error.response.status === 500) { + if (data.message.length > 0) { + message.error(data.message) + } + } + if (error.response.status === 401 && !(data.result && data.result.isLogin)) { + notification.error({ + message: 'Unauthorized', + description: 'Authorization verification failed' + }) + if (token) { + store.dispatch('Logout').then(() => { + setTimeout(() => { + window.location.reload() + }, 1500) + }) + } + } + } + return Promise.reject(error) +} + +// request interceptor +service.interceptors.request.use(config => { + const token = Vue.ls.get(ACCESS_TOKEN) + const refreshToken = Vue.ls.get('X-Access-Token') + if (token) { + config.headers['Authorization'] = 'Bearer ' + token + } + if (refreshToken) { + config.headers['X-Authorization'] = 'Bearer ' + refreshToken + } + if (config.custombaseurl) { + config.baseURL = '' + } + return config +}, err) + +/** + * response interceptor + * 所有请求统一返回 + */ +service.interceptors.response.use(response => { + // LocalStorage 存储的 token 和 refreshToken,不设定过期时间,由服务端统一处理 + if (response.headers['access-token'] && response.headers['access-token'] !== 'invalid_token') { + Vue.ls.set(ACCESS_TOKEN, response.headers['access-token'] /*, 7 * 24 * 60 * 60 * 1000 */) + store.commit('SET_TOKEN', response.headers['access-token']) + } + if (response.headers['x-access-token']) { + Vue.ls.set('X-Access-Token', response.headers['x-access-token'] /*, 7 * 24 * 60 * 60 * 1000 */) + } + if (response.request.responseType === 'blob') { + return response + } + const resData = response.data + const code = response.data.code + if (code === 500) { + Modal.error({ + title: '提示:', + content: resData.message + }) + return + } + if (!store.state.app.hasError) { + if (code === 401 /* || code === 1011006 || code === 1011007 || code === 1011008 || code === 1011009 */) { + Modal.error({ + title: '提示:', + content: resData.message, + keyboard: false, + okText: '重新登录', + onOk: () => { + store.dispatch('SetHasError', false) + window.location.reload() + } + }) + + // 授权过期,清理本地缓存的记录,不论 Modal.error 的 onOk 是否确认,先清理 + // 否则会在没按 OK 时,刷新网页或者重新访问,都会弹出“未授权的提示框” + // 这样的调整后,TOKEN 为空直接重定向,SetHasError 的设置和判断其实已经用不上 + Vue.ls.remove(ACCESS_TOKEN) + Vue.ls.remove('X-Access-Token') + store.dispatch('SetHasError', true) + } + // if (code === 1013002 || code === 1016002 || code === 1015002) { + // message.error(response.data.message) + // return response.data + // } + } + return resData +}, err) + +const installer = { + vm: {}, + install(Vue) { + Vue.use(VueAxios, service) + } +} + +export { installer as VueAxios, service as axios } diff --git a/admin/src/utils/routeConvert.js b/admin/src/utils/routeConvert.js new file mode 100644 index 0000000..e88b0d6 --- /dev/null +++ b/admin/src/utils/routeConvert.js @@ -0,0 +1,30 @@ +import cloneDeep from 'lodash.clonedeep' + +export function convertRoutes (nodes) { + if (!nodes) return null + + nodes = cloneDeep(nodes) + + let queue = Array.isArray(nodes) ? nodes.concat() : [nodes] + + while (queue.length) { + const levelSize = queue.length + + for (let i = 0; i < levelSize; i++) { + const node = queue.shift() + + if (!node.children || !node.children.length) continue + + node.children.forEach(child => { + // 转化相对路径 + if (child.path[0] !== '/' && !child.path.startsWith('http')) { + child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`) + } + }) + + queue = queue.concat(node.children) + } + } + + return nodes +} diff --git a/admin/src/utils/socket.js b/admin/src/utils/socket.js new file mode 100644 index 0000000..2c4765c --- /dev/null +++ b/admin/src/utils/socket.js @@ -0,0 +1,188 @@ +import store from '@/store' +import { Modal, message } from 'ant-design-vue' +import * as SignalR from '@microsoft/signalr' + +const EventEmitter = require('events') + +const defaultOptions = { + log: false +} + +class SocketConnection extends EventEmitter { + constructor(connection, options = {}) { + super() + this.connection = connection + this.options = Object.assign(defaultOptions, options) + this.listened = [] + this.toSend = [] + this.offline = false + this.socket = undefined + } + + /** + * 同一种消息只定义一次 + * + * @param {string| symbol} event + * @param {(...args: any[]) => void} listener + * @memberof SocketConnection + */ + one(event, listener) { + if (this.listeners(event).length === 0) { + this.on(event, listener) + } + } + + async _initialize() { + try { + await this.socket.start() + this.emit('onstart') + if (this.offline) { + this.emit('onrestart') + } + this.offline = false + } catch (error) { + setTimeout(async () => { + await this._initialize() + }, 5000) + } + } + + async start(token) { + // 组件重新加载时, 如果 socket 存在, 不需要新建 + if (!this.socket) { + this.socket = new SignalR.HubConnectionBuilder() + .configureLogging(SignalR.LogLevel.Error) + .withUrl(`/hubs/chathub`, { + accessTokenFactory: () => token, + skipNegotiation: true, + transport: SignalR.HttpTransportType.WebSockets + }) + .build() + + this.socket.onclose(async () => { + this.offline = true + this.emit('onclose') + await this._initialize() + }) + + this.socket.on('ForceExist', () => { + // 关闭连接 + this.socket.stop() + store + .dispatch('Logout') + .then(() => { + Modal.success({ + title: '消息', + content: '你已被强制下线', + keyboard: false, + onOk: () => { + window.location.reload() + } + }) + }) + .catch(err => { + message.error({ + title: '错误', + description: err.message + }) + }) + }) + + await this._initialize() + } + } + + async authenticate(token) { + await this.start(token) + } + + listen(method) { + if (this.offline) return + + if (this.listened.some(v => v === method)) return + this.listened.push(method) + + this.one('onstart', () => { + this.listened.forEach(method => { + this.socket.on(method, data => { + if (this.options.log) { + } + + this.emit(method, data) + }) + }) + }) + } + + send(methodName, ...args) { + if (this.options.log) { + } + if (this.offline) return + + if (this.socket) { + this.socket.send(methodName, ...args) + return + } + + this.one('onstart', () => this.socket.send(methodName, ...args)) + } + + async invoke(methodName, ...args) { + if (this.options.log) { + } + if (this.offline) return false + + if (this.socket) { + return this.socket.invoke(methodName, ...args) + } + + // eslint-disable-next-line no-async-promise-executor + return new Promise(async resolve => this.one('onstart', () => resolve(this.socket.invoke(methodName, ...args)))) + } +} + +if (!SignalR) { + throw new Error('[Vue-SignalR] Cannot locate signalr-client') +} + +function install(Vue, connection) { + if (!connection) { + throw new Error('[Vue-SignalR] Cannot locate connection') + } + + const Socket = new SocketConnection(connection) + + Vue.socket = Socket + + Object.defineProperties(Vue.prototype, { + $socket: { + get() { + return Socket + } + } + }) + + Vue.mixin({ + created() { + if (this.$options.sockets) { + const methods = Object.getOwnPropertyNames(this.$options.sockets) + + methods.forEach(method => { + Socket.listen(method) + + Socket.one(method, data => this.$options.sockets[method].call(this, data)) + }) + } + + if (this.$options.subscribe) { + Socket.one('authenticated', () => { + this.$options.subscribe.forEach(channel => { + Socket.invoke('join', channel) + }) + }) + } + } + }) +} + +export default install diff --git a/admin/src/utils/util.js b/admin/src/utils/util.js new file mode 100644 index 0000000..af7884f --- /dev/null +++ b/admin/src/utils/util.js @@ -0,0 +1,161 @@ +import { message } from 'ant-design-vue' /// es/notification +export function dateFormat(dateString, fmt) { + const date = new Date(dateString) + let ret + const opt = { + 'Y+': date.getFullYear().toString(), // 年 + 'm+': (date.getMonth() + 1).toString(), // 月 + 'd+': date.getDate().toString(), // 日 + 'H+': date.getHours().toString(), // 时 + 'M+': date.getMinutes().toString(), // 分 + 'S+': date.getSeconds().toString() // 秒 + // 有其他格式化字符需求可以继续添加,必须转化成字符串 + } + for (const k in opt) { + ret = new RegExp('(' + k + ')').exec(fmt) + if (ret) { + fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')) + } + } + return fmt +} + +export function timeFix() { + const time = new Date() + const hour = time.getHours() + return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好' +} + +export function welcome() { + const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 LOL', '我猜你可能累了'] + const index = Math.floor(Math.random() * arr.length) + return arr[index] +} + +/** + * 触发 window.resize + */ +export function triggerWindowResizeEvent() { + const event = document.createEvent('HTMLEvents') + event.initEvent('resize', true, true) + event.eventType = 'message' + window.dispatchEvent(event) +} + +export function handleScrollHeader(callback) { + let timer = 0 + + let beforeScrollTop = window.pageYOffset + callback = callback || function() {} + window.addEventListener( + 'scroll', + event => { + clearTimeout(timer) + timer = setTimeout(() => { + let direction = 'up' + const afterScrollTop = window.pageYOffset + const delta = afterScrollTop - beforeScrollTop + if (delta === 0) { + return false + } + direction = delta > 0 ? 'down' : 'up' + callback(direction) + beforeScrollTop = afterScrollTop + }, 50) + }, + false + ) +} + +export function isIE() { + const bw = window.navigator.userAgent + const compare = s => bw.indexOf(s) >= 0 + const ie11 = (() => 'ActiveXObject' in window)() + return compare('MSIE') || ie11 +} + +/** + * Remove loading animate + * @param id parent element id or class + * @param timeout + */ +export function removeLoadingAnimate(id = '', timeout = 1500) { + if (id === '') { + return + } + setTimeout(() => { + document.body.removeChild(document.getElementById(id)) + }, timeout) +} + +// 复制 +export function copyText(text) { + var tag = document.createElement('input') + tag.setAttribute('id', 'cp_hgz_input') + tag.value = text + document.getElementsByTagName('body')[0].appendChild(tag) + document.getElementById('cp_hgz_input').select() + document.execCommand('copy') + document.getElementById('cp_hgz_input').remove() + message.success('复制成功') +} +// 截取前面的字符 +export function textcontent(text, len) { + if (text.length > len) { + return text.substring(0, len) + '...' + } else { + return text + } +} +// 根据内容类型生成复制类型 +export function copyTextByContentType(val, type) { + var text = '' + // 如果是资讯/活动/轮播图/公告/党建 + if (type === 1) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果企业 + else if (type === 2) { + text = '/pages/phoneList/detail?id=' + val + '&type=' + type + } + // 如果是商品 + else if (type === 3) { + text = '/pageTwo/product/detail?id=' + val + '&type=' + type + } + // 如果是活动 + else if (type === 4) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果轮播图 + else if (type === 5) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果是公告 + else if (type === 6) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果党建 + else if (type === 7) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果是供货 + else if (type === 8) { + text = '/pageTwo/product/detail?id=' + val + '&type=' + type + } + // 如果是需求 + else if (type === 9) { + text = '/pageTwo/product/detail?id=' + val + '&type=' + type + } + // 如果是会员 + else if (type === 10) { + text = '/pages/phoneList/detail?id=' + val + '&type=' + type + } + var tag = document.createElement('input') + tag.setAttribute('id', 'cp_hgz_input') + tag.value = text + document.getElementsByTagName('body')[0].appendChild(tag) + document.getElementById('cp_hgz_input').select() + document.execCommand('copy') + document.getElementById('cp_hgz_input').remove() + message.success('复制成功') +} diff --git a/admin/src/utils/utils.less b/admin/src/utils/utils.less new file mode 100644 index 0000000..ba75a67 --- /dev/null +++ b/admin/src/utils/utils.less @@ -0,0 +1,50 @@ +.textOverflow() { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + word-break: break-all; +} + +.textOverflowMulti(@line: 3, @bg: #fff) { + position: relative; + max-height: @line * 1.5em; + margin-right: -1em; + padding-right: 1em; + overflow: hidden; + line-height: 1.5em; + text-align: justify; + &::before { + position: absolute; + right: 14px; + bottom: 0; + padding: 0 1px; + background: @bg; + content: '...'; + } + &::after { + position: absolute; + right: 14px; + width: 1em; + height: 1em; + margin-top: 0.2em; + background: white; + content: ''; + } +} + +// mixins for clearfix +// ------------------------ +.clearfix() { + zoom: 1; + &::before, + &::after { + display: table; + content: ' '; + } + &::after { + clear: both; + height: 0; + font-size: 0; + visibility: hidden; + } +} \ No newline at end of file diff --git a/admin/src/views/404.vue b/admin/src/views/404.vue new file mode 100644 index 0000000..8c1d8a1 --- /dev/null +++ b/admin/src/views/404.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/admin/src/views/Home.vue b/admin/src/views/Home.vue new file mode 100644 index 0000000..e89805b --- /dev/null +++ b/admin/src/views/Home.vue @@ -0,0 +1,215 @@ + diff --git a/admin/src/views/components/YbTable.vue b/admin/src/views/components/YbTable.vue new file mode 100644 index 0000000..4bd909f --- /dev/null +++ b/admin/src/views/components/YbTable.vue @@ -0,0 +1,29 @@ + + diff --git a/admin/src/views/components/previewimg.vue b/admin/src/views/components/previewimg.vue new file mode 100644 index 0000000..eeb6d74 --- /dev/null +++ b/admin/src/views/components/previewimg.vue @@ -0,0 +1,26 @@ + + diff --git a/admin/src/views/main/README.md b/admin/src/views/main/README.md new file mode 100644 index 0000000..fadf99a --- /dev/null +++ b/admin/src/views/main/README.md @@ -0,0 +1 @@ +/** 您的业务接口文件全写在此文件夹下面,升级底座直接迁移代码即可 **/ diff --git a/admin/src/views/main/banner/editForm.vue b/admin/src/views/main/banner/editForm.vue new file mode 100644 index 0000000..af7d392 --- /dev/null +++ b/admin/src/views/main/banner/editForm.vue @@ -0,0 +1,327 @@ + + + diff --git a/admin/src/views/main/banner/list.vue b/admin/src/views/main/banner/list.vue new file mode 100644 index 0000000..ac44449 --- /dev/null +++ b/admin/src/views/main/banner/list.vue @@ -0,0 +1,323 @@ + + + diff --git a/admin/src/views/main/business/detail.vue b/admin/src/views/main/business/detail.vue new file mode 100644 index 0000000..8e2bddb --- /dev/null +++ b/admin/src/views/main/business/detail.vue @@ -0,0 +1,291 @@ + + + diff --git a/admin/src/views/main/business/list.vue b/admin/src/views/main/business/list.vue new file mode 100644 index 0000000..5c2999b --- /dev/null +++ b/admin/src/views/main/business/list.vue @@ -0,0 +1,253 @@ + + + diff --git a/admin/src/views/main/demand/detail.vue b/admin/src/views/main/demand/detail.vue new file mode 100644 index 0000000..1f383d6 --- /dev/null +++ b/admin/src/views/main/demand/detail.vue @@ -0,0 +1,185 @@ + + + diff --git a/admin/src/views/main/demand/list.vue b/admin/src/views/main/demand/list.vue new file mode 100644 index 0000000..d4d1475 --- /dev/null +++ b/admin/src/views/main/demand/list.vue @@ -0,0 +1,242 @@ + + + diff --git a/admin/src/views/main/gongyixinxi/editForm.vue b/admin/src/views/main/gongyixinxi/editForm.vue new file mode 100644 index 0000000..1e63b17 --- /dev/null +++ b/admin/src/views/main/gongyixinxi/editForm.vue @@ -0,0 +1,214 @@ + + + diff --git a/admin/src/views/main/gongyixinxi/list.vue b/admin/src/views/main/gongyixinxi/list.vue new file mode 100644 index 0000000..4054071 --- /dev/null +++ b/admin/src/views/main/gongyixinxi/list.vue @@ -0,0 +1,277 @@ + + + diff --git a/admin/src/views/main/huodong/editForm.vue b/admin/src/views/main/huodong/editForm.vue new file mode 100644 index 0000000..f99ab36 --- /dev/null +++ b/admin/src/views/main/huodong/editForm.vue @@ -0,0 +1,283 @@ + + + diff --git a/admin/src/views/main/huodong/list.vue b/admin/src/views/main/huodong/list.vue new file mode 100644 index 0000000..0dc246b --- /dev/null +++ b/admin/src/views/main/huodong/list.vue @@ -0,0 +1,303 @@ + + + diff --git a/admin/src/views/main/industry/editForm.vue b/admin/src/views/main/industry/editForm.vue new file mode 100644 index 0000000..b228ec5 --- /dev/null +++ b/admin/src/views/main/industry/editForm.vue @@ -0,0 +1,123 @@ + + + diff --git a/admin/src/views/main/industry/list.vue b/admin/src/views/main/industry/list.vue new file mode 100644 index 0000000..6ac915a --- /dev/null +++ b/admin/src/views/main/industry/list.vue @@ -0,0 +1,147 @@ + + + diff --git a/admin/src/views/main/info/editForm.vue b/admin/src/views/main/info/editForm.vue new file mode 100644 index 0000000..a3dc080 --- /dev/null +++ b/admin/src/views/main/info/editForm.vue @@ -0,0 +1,214 @@ + + + diff --git a/admin/src/views/main/info/list.vue b/admin/src/views/main/info/list.vue new file mode 100644 index 0000000..df25e7c --- /dev/null +++ b/admin/src/views/main/info/list.vue @@ -0,0 +1,276 @@ + + + diff --git a/admin/src/views/main/navbar/editForm.vue b/admin/src/views/main/navbar/editForm.vue new file mode 100644 index 0000000..bec84c3 --- /dev/null +++ b/admin/src/views/main/navbar/editForm.vue @@ -0,0 +1,178 @@ + + + diff --git a/admin/src/views/main/navbar/list.vue b/admin/src/views/main/navbar/list.vue new file mode 100644 index 0000000..9ac1c34 --- /dev/null +++ b/admin/src/views/main/navbar/list.vue @@ -0,0 +1,202 @@ + + + diff --git a/admin/src/views/main/notice/editForm.vue b/admin/src/views/main/notice/editForm.vue new file mode 100644 index 0000000..447f0a7 --- /dev/null +++ b/admin/src/views/main/notice/editForm.vue @@ -0,0 +1,195 @@ + + + diff --git a/admin/src/views/main/notice/list.vue b/admin/src/views/main/notice/list.vue new file mode 100644 index 0000000..c3de368 --- /dev/null +++ b/admin/src/views/main/notice/list.vue @@ -0,0 +1,275 @@ + + + diff --git a/admin/src/views/main/party/editForm.vue b/admin/src/views/main/party/editForm.vue new file mode 100644 index 0000000..7ee544d --- /dev/null +++ b/admin/src/views/main/party/editForm.vue @@ -0,0 +1,214 @@ + + + diff --git a/admin/src/views/main/party/list.vue b/admin/src/views/main/party/list.vue new file mode 100644 index 0000000..8e0ef5d --- /dev/null +++ b/admin/src/views/main/party/list.vue @@ -0,0 +1,276 @@ + + + diff --git a/admin/src/views/main/platform/set.vue b/admin/src/views/main/platform/set.vue new file mode 100644 index 0000000..b5521a6 --- /dev/null +++ b/admin/src/views/main/platform/set.vue @@ -0,0 +1,437 @@ + + + + + diff --git a/admin/src/views/main/product/detail.vue b/admin/src/views/main/product/detail.vue new file mode 100644 index 0000000..e926615 --- /dev/null +++ b/admin/src/views/main/product/detail.vue @@ -0,0 +1,210 @@ + + + diff --git a/admin/src/views/main/product/list.vue b/admin/src/views/main/product/list.vue new file mode 100644 index 0000000..ac44b1a --- /dev/null +++ b/admin/src/views/main/product/list.vue @@ -0,0 +1,283 @@ + + + diff --git a/admin/src/views/main/reguser/list.vue b/admin/src/views/main/reguser/list.vue new file mode 100644 index 0000000..19fc12d --- /dev/null +++ b/admin/src/views/main/reguser/list.vue @@ -0,0 +1,154 @@ + + + diff --git a/admin/src/views/main/supply/detail.vue b/admin/src/views/main/supply/detail.vue new file mode 100644 index 0000000..219c9ef --- /dev/null +++ b/admin/src/views/main/supply/detail.vue @@ -0,0 +1,210 @@ + + + diff --git a/admin/src/views/main/supply/list.vue b/admin/src/views/main/supply/list.vue new file mode 100644 index 0000000..a7409e1 --- /dev/null +++ b/admin/src/views/main/supply/list.vue @@ -0,0 +1,264 @@ + + + diff --git a/admin/src/views/main/vip/auth/editForm.vue b/admin/src/views/main/vip/auth/editForm.vue new file mode 100644 index 0000000..f96df8e --- /dev/null +++ b/admin/src/views/main/vip/auth/editForm.vue @@ -0,0 +1,157 @@ + + + diff --git a/admin/src/views/main/vip/auth/list.vue b/admin/src/views/main/vip/auth/list.vue new file mode 100644 index 0000000..8c06718 --- /dev/null +++ b/admin/src/views/main/vip/auth/list.vue @@ -0,0 +1,189 @@ + + + diff --git a/admin/src/views/main/vip/editForm.vue b/admin/src/views/main/vip/editForm.vue new file mode 100644 index 0000000..7da07fe --- /dev/null +++ b/admin/src/views/main/vip/editForm.vue @@ -0,0 +1,309 @@ + + + diff --git a/admin/src/views/main/vip/list.vue b/admin/src/views/main/vip/list.vue new file mode 100644 index 0000000..83f179f --- /dev/null +++ b/admin/src/views/main/vip/list.vue @@ -0,0 +1,156 @@ + + + diff --git a/admin/src/views/main/wx/mini.vue b/admin/src/views/main/wx/mini.vue new file mode 100644 index 0000000..68af3d6 --- /dev/null +++ b/admin/src/views/main/wx/mini.vue @@ -0,0 +1,154 @@ + + + diff --git a/admin/src/views/main/wx/minieditform.vue b/admin/src/views/main/wx/minieditform.vue new file mode 100644 index 0000000..5161e69 --- /dev/null +++ b/admin/src/views/main/wx/minieditform.vue @@ -0,0 +1,180 @@ + + + diff --git a/admin/src/views/system/account/center/Index.vue b/admin/src/views/system/account/center/Index.vue new file mode 100644 index 0000000..e2ffd4a --- /dev/null +++ b/admin/src/views/system/account/center/Index.vue @@ -0,0 +1,308 @@ + + + + + diff --git a/admin/src/views/system/account/center/page/App.vue b/admin/src/views/system/account/center/page/App.vue new file mode 100644 index 0000000..853aeab --- /dev/null +++ b/admin/src/views/system/account/center/page/App.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/admin/src/views/system/account/center/page/Article.vue b/admin/src/views/system/account/center/page/Article.vue new file mode 100644 index 0000000..bac1ded --- /dev/null +++ b/admin/src/views/system/account/center/page/Article.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/admin/src/views/system/account/center/page/Project.vue b/admin/src/views/system/account/center/page/Project.vue new file mode 100644 index 0000000..24dfb29 --- /dev/null +++ b/admin/src/views/system/account/center/page/Project.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/admin/src/views/system/account/center/page/index.js b/admin/src/views/system/account/center/page/index.js new file mode 100644 index 0000000..b579b6a --- /dev/null +++ b/admin/src/views/system/account/center/page/index.js @@ -0,0 +1,5 @@ +import AppPage from './App' +import ArticlePage from './Article' +import ProjectPage from './Project' + +export { AppPage, ArticlePage, ProjectPage } diff --git a/admin/src/views/system/account/settings/AvatarModal.vue b/admin/src/views/system/account/settings/AvatarModal.vue new file mode 100644 index 0000000..474bfb7 --- /dev/null +++ b/admin/src/views/system/account/settings/AvatarModal.vue @@ -0,0 +1,182 @@ + + + + diff --git a/admin/src/views/system/account/settings/BaseSetting.vue b/admin/src/views/system/account/settings/BaseSetting.vue new file mode 100644 index 0000000..c50b7f3 --- /dev/null +++ b/admin/src/views/system/account/settings/BaseSetting.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/admin/src/views/system/account/settings/Custom.vue b/admin/src/views/system/account/settings/Custom.vue new file mode 100644 index 0000000..c235570 --- /dev/null +++ b/admin/src/views/system/account/settings/Custom.vue @@ -0,0 +1,75 @@ + + + diff --git a/admin/src/views/system/account/settings/Index.vue b/admin/src/views/system/account/settings/Index.vue new file mode 100644 index 0000000..989b764 --- /dev/null +++ b/admin/src/views/system/account/settings/Index.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/admin/src/views/system/account/settings/Notification.vue b/admin/src/views/system/account/settings/Notification.vue new file mode 100644 index 0000000..cbea7fc --- /dev/null +++ b/admin/src/views/system/account/settings/Notification.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/admin/src/views/system/account/settings/Security.vue b/admin/src/views/system/account/settings/Security.vue new file mode 100644 index 0000000..ec6cab7 --- /dev/null +++ b/admin/src/views/system/account/settings/Security.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/admin/src/views/system/account/settings/ThirdOpen.vue b/admin/src/views/system/account/settings/ThirdOpen.vue new file mode 100644 index 0000000..6c17827 --- /dev/null +++ b/admin/src/views/system/account/settings/ThirdOpen.vue @@ -0,0 +1,28 @@ + + + + diff --git a/admin/src/views/system/account/settings/securityItem/updPwd.vue b/admin/src/views/system/account/settings/securityItem/updPwd.vue new file mode 100644 index 0000000..4c45629 --- /dev/null +++ b/admin/src/views/system/account/settings/securityItem/updPwd.vue @@ -0,0 +1,134 @@ + + + diff --git a/admin/src/views/system/app/addForm.vue b/admin/src/views/system/app/addForm.vue new file mode 100644 index 0000000..8e80ee1 --- /dev/null +++ b/admin/src/views/system/app/addForm.vue @@ -0,0 +1,87 @@ + + diff --git a/admin/src/views/system/app/editForm.vue b/admin/src/views/system/app/editForm.vue new file mode 100644 index 0000000..2a119f3 --- /dev/null +++ b/admin/src/views/system/app/editForm.vue @@ -0,0 +1,116 @@ + + diff --git a/admin/src/views/system/app/index.vue b/admin/src/views/system/app/index.vue new file mode 100644 index 0000000..bdc6d97 --- /dev/null +++ b/admin/src/views/system/app/index.vue @@ -0,0 +1,272 @@ +/* eslint-disable eqeqeq */ + + + diff --git a/admin/src/views/system/config/addForm.vue b/admin/src/views/system/config/addForm.vue new file mode 100644 index 0000000..231ddb7 --- /dev/null +++ b/admin/src/views/system/config/addForm.vue @@ -0,0 +1,130 @@ + + diff --git a/admin/src/views/system/config/editForm.vue b/admin/src/views/system/config/editForm.vue new file mode 100644 index 0000000..ddd2894 --- /dev/null +++ b/admin/src/views/system/config/editForm.vue @@ -0,0 +1,158 @@ + + diff --git a/admin/src/views/system/config/index.vue b/admin/src/views/system/config/index.vue new file mode 100644 index 0000000..483d6b4 --- /dev/null +++ b/admin/src/views/system/config/index.vue @@ -0,0 +1,201 @@ + + + diff --git a/admin/src/views/system/dashboard/Analysis.vue b/admin/src/views/system/dashboard/Analysis.vue new file mode 100644 index 0000000..e69de29 diff --git a/admin/src/views/system/dashboard/Monitor.vue b/admin/src/views/system/dashboard/Monitor.vue new file mode 100644 index 0000000..74b5bff --- /dev/null +++ b/admin/src/views/system/dashboard/Monitor.vue @@ -0,0 +1,15 @@ + diff --git a/admin/src/views/system/dashboard/TestWork.vue b/admin/src/views/system/dashboard/TestWork.vue new file mode 100644 index 0000000..c36ece5 --- /dev/null +++ b/admin/src/views/system/dashboard/TestWork.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/admin/src/views/system/dashboard/Workplace.vue b/admin/src/views/system/dashboard/Workplace.vue new file mode 100644 index 0000000..8ffb3a4 --- /dev/null +++ b/admin/src/views/system/dashboard/Workplace.vue @@ -0,0 +1,526 @@ + + + + + + + + + + + + + + + + --> diff --git a/admin/src/views/system/dict/addForm.vue b/admin/src/views/system/dict/addForm.vue new file mode 100644 index 0000000..22f82ff --- /dev/null +++ b/admin/src/views/system/dict/addForm.vue @@ -0,0 +1,106 @@ + + + diff --git a/admin/src/views/system/dict/dictdata/addForm.vue b/admin/src/views/system/dict/dictdata/addForm.vue new file mode 100644 index 0000000..09e988b --- /dev/null +++ b/admin/src/views/system/dict/dictdata/addForm.vue @@ -0,0 +1,123 @@ + + + diff --git a/admin/src/views/system/dict/dictdata/editForm.vue b/admin/src/views/system/dict/dictdata/editForm.vue new file mode 100644 index 0000000..5377949 --- /dev/null +++ b/admin/src/views/system/dict/dictdata/editForm.vue @@ -0,0 +1,137 @@ + + + diff --git a/admin/src/views/system/dict/dictdata/index.vue b/admin/src/views/system/dict/dictdata/index.vue new file mode 100644 index 0000000..f6149dd --- /dev/null +++ b/admin/src/views/system/dict/dictdata/index.vue @@ -0,0 +1,235 @@ + + + diff --git a/admin/src/views/system/dict/editForm.vue b/admin/src/views/system/dict/editForm.vue new file mode 100644 index 0000000..ad8178e --- /dev/null +++ b/admin/src/views/system/dict/editForm.vue @@ -0,0 +1,128 @@ + + + diff --git a/admin/src/views/system/dict/index.vue b/admin/src/views/system/dict/index.vue new file mode 100644 index 0000000..fd72b33 --- /dev/null +++ b/admin/src/views/system/dict/index.vue @@ -0,0 +1,224 @@ + + + diff --git a/admin/src/views/system/email/index.vue b/admin/src/views/system/email/index.vue new file mode 100644 index 0000000..b4dec38 --- /dev/null +++ b/admin/src/views/system/email/index.vue @@ -0,0 +1,205 @@ + + + diff --git a/admin/src/views/system/exception/403.vue b/admin/src/views/system/exception/403.vue new file mode 100644 index 0000000..ffc3799 --- /dev/null +++ b/admin/src/views/system/exception/403.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/admin/src/views/system/exception/404.vue b/admin/src/views/system/exception/404.vue new file mode 100644 index 0000000..16f767f --- /dev/null +++ b/admin/src/views/system/exception/404.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/admin/src/views/system/exception/500.vue b/admin/src/views/system/exception/500.vue new file mode 100644 index 0000000..cc5d7ab --- /dev/null +++ b/admin/src/views/system/exception/500.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/admin/src/views/system/file/detailForm.vue b/admin/src/views/system/file/detailForm.vue new file mode 100644 index 0000000..f25b719 --- /dev/null +++ b/admin/src/views/system/file/detailForm.vue @@ -0,0 +1,99 @@ + + diff --git a/admin/src/views/system/file/index.vue b/admin/src/views/system/file/index.vue new file mode 100644 index 0000000..bcaed8a --- /dev/null +++ b/admin/src/views/system/file/index.vue @@ -0,0 +1,266 @@ + + + diff --git a/admin/src/views/system/file/previewForm.vue b/admin/src/views/system/file/previewForm.vue new file mode 100644 index 0000000..ebce151 --- /dev/null +++ b/admin/src/views/system/file/previewForm.vue @@ -0,0 +1,60 @@ + + diff --git a/admin/src/views/system/index/welcome.vue b/admin/src/views/system/index/welcome.vue new file mode 100644 index 0000000..a5c7575 --- /dev/null +++ b/admin/src/views/system/index/welcome.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/admin/src/views/system/log/exlog/details.vue b/admin/src/views/system/log/exlog/details.vue new file mode 100644 index 0000000..086173b --- /dev/null +++ b/admin/src/views/system/log/exlog/details.vue @@ -0,0 +1,69 @@ + + diff --git a/admin/src/views/system/log/exlog/index.vue b/admin/src/views/system/log/exlog/index.vue new file mode 100644 index 0000000..343ad85 --- /dev/null +++ b/admin/src/views/system/log/exlog/index.vue @@ -0,0 +1,236 @@ + + + diff --git a/admin/src/views/system/log/oplog/details.vue b/admin/src/views/system/log/oplog/details.vue new file mode 100644 index 0000000..54bffcd --- /dev/null +++ b/admin/src/views/system/log/oplog/details.vue @@ -0,0 +1,48 @@ + + diff --git a/admin/src/views/system/log/oplog/index.vue b/admin/src/views/system/log/oplog/index.vue new file mode 100644 index 0000000..9e2bc26 --- /dev/null +++ b/admin/src/views/system/log/oplog/index.vue @@ -0,0 +1,225 @@ + + + diff --git a/admin/src/views/system/log/thirdlog/detail.vue b/admin/src/views/system/log/thirdlog/detail.vue new file mode 100644 index 0000000..0d5eb1a --- /dev/null +++ b/admin/src/views/system/log/thirdlog/detail.vue @@ -0,0 +1,85 @@ + + diff --git a/admin/src/views/system/log/thirdlog/index.vue b/admin/src/views/system/log/thirdlog/index.vue new file mode 100644 index 0000000..b40c13a --- /dev/null +++ b/admin/src/views/system/log/thirdlog/index.vue @@ -0,0 +1,236 @@ + + + diff --git a/admin/src/views/system/log/vislog/details.vue b/admin/src/views/system/log/vislog/details.vue new file mode 100644 index 0000000..5030b40 --- /dev/null +++ b/admin/src/views/system/log/vislog/details.vue @@ -0,0 +1,53 @@ + + diff --git a/admin/src/views/system/log/vislog/index.vue b/admin/src/views/system/log/vislog/index.vue new file mode 100644 index 0000000..e5c05f7 --- /dev/null +++ b/admin/src/views/system/log/vislog/index.vue @@ -0,0 +1,203 @@ + + + diff --git a/admin/src/views/system/machine/index.vue b/admin/src/views/system/machine/index.vue new file mode 100644 index 0000000..4cac216 --- /dev/null +++ b/admin/src/views/system/machine/index.vue @@ -0,0 +1,140 @@ + + + diff --git a/admin/src/views/system/menu/addForm.vue b/admin/src/views/system/menu/addForm.vue new file mode 100644 index 0000000..d626c84 --- /dev/null +++ b/admin/src/views/system/menu/addForm.vue @@ -0,0 +1,612 @@ + + + diff --git a/admin/src/views/system/menu/editForm.vue b/admin/src/views/system/menu/editForm.vue new file mode 100644 index 0000000..284487c --- /dev/null +++ b/admin/src/views/system/menu/editForm.vue @@ -0,0 +1,677 @@ + + + diff --git a/admin/src/views/system/menu/index.vue b/admin/src/views/system/menu/index.vue new file mode 100644 index 0000000..a706207 --- /dev/null +++ b/admin/src/views/system/menu/index.vue @@ -0,0 +1,303 @@ +/* eslint-disable */ + + + + diff --git a/admin/src/views/system/notice/addForm.vue b/admin/src/views/system/notice/addForm.vue new file mode 100644 index 0000000..6da7f75 --- /dev/null +++ b/admin/src/views/system/notice/addForm.vue @@ -0,0 +1,228 @@ + + + diff --git a/admin/src/views/system/notice/detailForm.vue b/admin/src/views/system/notice/detailForm.vue new file mode 100644 index 0000000..a5c54ab --- /dev/null +++ b/admin/src/views/system/notice/detailForm.vue @@ -0,0 +1,62 @@ + + diff --git a/admin/src/views/system/notice/editForm.vue b/admin/src/views/system/notice/editForm.vue new file mode 100644 index 0000000..47d16eb --- /dev/null +++ b/admin/src/views/system/notice/editForm.vue @@ -0,0 +1,256 @@ + + + diff --git a/admin/src/views/system/notice/index.vue b/admin/src/views/system/notice/index.vue new file mode 100644 index 0000000..3e89be2 --- /dev/null +++ b/admin/src/views/system/notice/index.vue @@ -0,0 +1,254 @@ + + + diff --git a/admin/src/views/system/noticeReceived/detailForm.vue b/admin/src/views/system/noticeReceived/detailForm.vue new file mode 100644 index 0000000..a4b43ed --- /dev/null +++ b/admin/src/views/system/noticeReceived/detailForm.vue @@ -0,0 +1,75 @@ + + + + diff --git a/admin/src/views/system/noticeReceived/index.vue b/admin/src/views/system/noticeReceived/index.vue new file mode 100644 index 0000000..b9d24d1 --- /dev/null +++ b/admin/src/views/system/noticeReceived/index.vue @@ -0,0 +1,156 @@ + + + + diff --git a/admin/src/views/system/org/addForm.vue b/admin/src/views/system/org/addForm.vue new file mode 100644 index 0000000..7e48c90 --- /dev/null +++ b/admin/src/views/system/org/addForm.vue @@ -0,0 +1,162 @@ + + + diff --git a/admin/src/views/system/org/editForm.vue b/admin/src/views/system/org/editForm.vue new file mode 100644 index 0000000..7c346f2 --- /dev/null +++ b/admin/src/views/system/org/editForm.vue @@ -0,0 +1,180 @@ + + + diff --git a/admin/src/views/system/org/index.vue b/admin/src/views/system/org/index.vue new file mode 100644 index 0000000..7e03976 --- /dev/null +++ b/admin/src/views/system/org/index.vue @@ -0,0 +1,205 @@ + + + diff --git a/admin/src/views/system/pos/addForm.vue b/admin/src/views/system/pos/addForm.vue new file mode 100644 index 0000000..0d5ec15 --- /dev/null +++ b/admin/src/views/system/pos/addForm.vue @@ -0,0 +1,101 @@ + + + diff --git a/admin/src/views/system/pos/editForm.vue b/admin/src/views/system/pos/editForm.vue new file mode 100644 index 0000000..c3d07cb --- /dev/null +++ b/admin/src/views/system/pos/editForm.vue @@ -0,0 +1,115 @@ + + + diff --git a/admin/src/views/system/pos/index.vue b/admin/src/views/system/pos/index.vue new file mode 100644 index 0000000..2668112 --- /dev/null +++ b/admin/src/views/system/pos/index.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/admin/src/views/system/role/addForm.vue b/admin/src/views/system/role/addForm.vue new file mode 100644 index 0000000..8b992f2 --- /dev/null +++ b/admin/src/views/system/role/addForm.vue @@ -0,0 +1,125 @@ + + + diff --git a/admin/src/views/system/role/editForm.vue b/admin/src/views/system/role/editForm.vue new file mode 100644 index 0000000..8cd5a98 --- /dev/null +++ b/admin/src/views/system/role/editForm.vue @@ -0,0 +1,144 @@ + + + diff --git a/admin/src/views/system/role/index.vue b/admin/src/views/system/role/index.vue new file mode 100644 index 0000000..b8feecb --- /dev/null +++ b/admin/src/views/system/role/index.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/admin/src/views/system/role/roleMenuForm.vue b/admin/src/views/system/role/roleMenuForm.vue new file mode 100644 index 0000000..20389c6 --- /dev/null +++ b/admin/src/views/system/role/roleMenuForm.vue @@ -0,0 +1,185 @@ + + + diff --git a/admin/src/views/system/role/roleOrgForm.vue b/admin/src/views/system/role/roleOrgForm.vue new file mode 100644 index 0000000..46b731d --- /dev/null +++ b/admin/src/views/system/role/roleOrgForm.vue @@ -0,0 +1,195 @@ + + + diff --git a/admin/src/views/system/user/addForm.vue b/admin/src/views/system/user/addForm.vue new file mode 100644 index 0000000..bf56392 --- /dev/null +++ b/admin/src/views/system/user/addForm.vue @@ -0,0 +1,575 @@ + + + diff --git a/admin/src/views/system/user/editForm.vue b/admin/src/views/system/user/editForm.vue new file mode 100644 index 0000000..81ba8ff --- /dev/null +++ b/admin/src/views/system/user/editForm.vue @@ -0,0 +1,567 @@ + + diff --git a/admin/src/views/system/user/index.vue b/admin/src/views/system/user/index.vue new file mode 100644 index 0000000..662db06 --- /dev/null +++ b/admin/src/views/system/user/index.vue @@ -0,0 +1,478 @@ + + + diff --git a/admin/src/views/system/user/userComForm.vue b/admin/src/views/system/user/userComForm.vue new file mode 100644 index 0000000..56b3b8b --- /dev/null +++ b/admin/src/views/system/user/userComForm.vue @@ -0,0 +1,398 @@ + + + diff --git a/admin/src/views/system/user/userOrgForm.vue b/admin/src/views/system/user/userOrgForm.vue new file mode 100644 index 0000000..508c3b8 --- /dev/null +++ b/admin/src/views/system/user/userOrgForm.vue @@ -0,0 +1,150 @@ + + + diff --git a/admin/src/views/system/user/userRoleForm.vue b/admin/src/views/system/user/userRoleForm.vue new file mode 100644 index 0000000..cbdd201 --- /dev/null +++ b/admin/src/views/system/user/userRoleForm.vue @@ -0,0 +1,117 @@ + + + diff --git a/admin/src/views/system/user/userVIPForm.vue b/admin/src/views/system/user/userVIPForm.vue new file mode 100644 index 0000000..9dcc9aa --- /dev/null +++ b/admin/src/views/system/user/userVIPForm.vue @@ -0,0 +1,136 @@ + + + diff --git a/admin/src/views/userLoginReg/Login.vue b/admin/src/views/userLoginReg/Login.vue new file mode 100644 index 0000000..9f9a885 --- /dev/null +++ b/admin/src/views/userLoginReg/Login.vue @@ -0,0 +1,316 @@ + + + + + diff --git a/admin/tests/unit/.eslintrc.js b/admin/tests/unit/.eslintrc.js new file mode 100644 index 0000000..958d51b --- /dev/null +++ b/admin/tests/unit/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + jest: true + } +} diff --git a/admin/vue.config.js b/admin/vue.config.js new file mode 100644 index 0000000..ab2c5e4 --- /dev/null +++ b/admin/vue.config.js @@ -0,0 +1,144 @@ +const path = require('path') +const webpack = require('webpack') +const createThemeColorReplacerPlugin = require('./config/plugin.config') +const CompressionWebpackPlugin = require('compression-webpack-plugin') +const productionGzipExtensions = ['js', 'css'] + +function resolve(dir) { + return path.join(__dirname, dir) +} + +const isProd = process.env.NODE_ENV === 'production' + +const assetsCDN = { + // webpack build externals + externals: { + vue: 'Vue', + 'vue-router': 'VueRouter', + vuex: 'Vuex', + axios: 'axios' + }, + css: [], + // https://unpkg.com/browse/vue@2.6.10/ + js: [ + '//imgcdn.ybhdmob.com/npm/vue@2.6.14/vue.min.js', + '//imgcdn.ybhdmob.com/npm/vue-router@3.1.3/vue-router.min.js', + '//imgcdn.ybhdmob.com/npm/vuex@3.1.1/vuex.min.js', + '//imgcdn.ybhdmob.com/npm/axios@0.19.0/axios.min.js' + ] +} + +// vue.config.js +const vueConfig = { + lintOnSave: false, // 关闭eslintrc语法检查 + runtimeCompiler: true, + configureWebpack: { + // webpack plugins + plugins: [ + // Ignore all locale files of moment.js + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + // maxChunks:使用大于或等于 1 的值,来限制 chunk 的最大数量。使用 1 防止添加任何其他额外的 chunk,这是因为entry/main chunk 也会包含在计数之中。 + // minChunkSize: 设置 chunk 的最小大小。 + // 在合并 chunk 时,webpack 会尝试识别出具有重复模块的 chunk,并优先进行合并。任何模块都不会被合并到 entry chunk 中,以免影响初始页面加载时间。 + new webpack.optimize.LimitChunkCountPlugin({ + maxChunks: 5, + minChunkSize: 100 + }), + // 配置compression-webpack-plugin压缩 + new CompressionWebpackPlugin({ + algorithm: 'gzip', + test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), + threshold: 10240, + minRatio: 0.8, + deleteOriginalAssets: false // 是否删除源文件 默认为true 如果Nginx配置了gzip可以true,否则删了源文件就不能正常访问了 + }) + ], + // if prod, add externals + externals: isProd ? assetsCDN.externals : {} + }, + + chainWebpack: config => { + config.resolve.alias.set('@$', resolve('src')) + + const svgRule = config.module.rule('svg') + svgRule.uses.clear() + svgRule + .oneOf('inline') + .resourceQuery(/inline/) + .use('vue-svg-icon-loader') + .loader('vue-svg-icon-loader') + .end() + .end() + .oneOf('external') + .use('file-loader') + .loader('file-loader') + .options({ + name: 'assets/[name].[hash:8].[ext]' + }) + + // if prod is on + // assets require on cdn + if (isProd) { + config.plugin('html').tap(args => { + args[0].cdn = assetsCDN + return args + }) + } + }, + + css: { + loaderOptions: { + less: { + modifyVars: { + 'primary-color': '#2F54EB', + 'layout-color': '#2F54EB', + 'border-radius-base': '2px' + }, + // DO NOT REMOVE THIS LINE + javascriptEnabled: true + } + } + }, + + devServer: { + port: 81, + proxy: { + '/api': { + target: process.env.VUE_APP_API_BASE_URL, + ws: false, + changeOrigin: true, + pathRewrite: { + '^/api': '/api' // 需要rewrite的, + } + }, + '/bapi': { + target: process.env.VUE_APP_API_BASE_URL, + ws: false, + changeOrigin: true, + pathRewrite: { + '^/bapi': '/bapi' // 需要rewrite的, + } + }, + '/hubs': { + target: process.env.VUE_APP_SOCKET_BASE_URL, + ws: true, + changeOrigin: true + } + } + }, + + // disable source map in production + productionSourceMap: false, + // babel-loader no-ignore node_modules/* + transpileDependencies: [] +} + +// preview.pro.loacg.com only do not use in your production; +if (process.env.VUE_APP_PREVIEW === 'true') { + // eslint-disable-next-line no-labels + // runtimeCompiler: true, + // add `ThemeColorReplacer` plugin to webpack plugins + vueConfig.configureWebpack.plugins.push(createThemeColorReplacerPlugin()) +} + +module.exports = vueConfig diff --git a/admin/webstorm.config.js b/admin/webstorm.config.js new file mode 100644 index 0000000..9117455 --- /dev/null +++ b/admin/webstorm.config.js @@ -0,0 +1,3 @@ +'use strict' +const webpackConfig = require('@vue/cli-service/webpack.config.js') +module.exports = webpackConfig diff --git a/admin20250319/.browserslistrc b/admin20250319/.browserslistrc new file mode 100644 index 0000000..8f96043 --- /dev/null +++ b/admin20250319/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +last 2 versions +not ie <= 10 diff --git a/admin20250319/.editorconfig b/admin20250319/.editorconfig new file mode 100644 index 0000000..6f77dff --- /dev/null +++ b/admin20250319/.editorconfig @@ -0,0 +1,39 @@ +[*] +charset=utf-8 +end_of_line=lf +insert_final_newline=false +indent_style=space +indent_size=2 + +[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}] +indent_style=space +indent_size=2 + +[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}] +indent_style=space +indent_size=2 + +[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}] +indent_style=space +indent_size=2 + +[*.svg] +indent_style=space +indent_size=2 + +[*.js.map] +indent_style=space +indent_size=2 + +[*.less] +indent_style=space +indent_size=2 + +[*.vue] +indent_style=space +indent_size=2 + +[{.analysis_options,*.yml,*.yaml}] +indent_style=space +indent_size=2 + diff --git a/admin20250319/.env b/admin20250319/.env new file mode 100644 index 0000000..ea3e364 --- /dev/null +++ b/admin20250319/.env @@ -0,0 +1,4 @@ +NODE_ENV=production +VUE_APP_PREVIEW=false +VUE_APP_API_BASE_URL=http://irdhdt.com/ +VUE_APP_SOCKET_BASE_URL=ws://irdhdt.com/ \ No newline at end of file diff --git a/admin20250319/.env.development b/admin20250319/.env.development new file mode 100644 index 0000000..dba61d2 --- /dev/null +++ b/admin20250319/.env.development @@ -0,0 +1,4 @@ +NODE_ENV=development +VUE_APP_PREVIEW=true +VUE_APP_API_BASE_URL=https://localhost:7218 +VUE_APP_SOCKET_BASE_URL=ws://localhost:7218 \ No newline at end of file diff --git a/admin20250319/.env.preview b/admin20250319/.env.preview new file mode 100644 index 0000000..ea3e364 --- /dev/null +++ b/admin20250319/.env.preview @@ -0,0 +1,4 @@ +NODE_ENV=production +VUE_APP_PREVIEW=false +VUE_APP_API_BASE_URL=http://irdhdt.com/ +VUE_APP_SOCKET_BASE_URL=ws://irdhdt.com/ \ No newline at end of file diff --git a/admin20250319/.eslintrc.js b/admin20250319/.eslintrc.js new file mode 100644 index 0000000..e4f4dae --- /dev/null +++ b/admin20250319/.eslintrc.js @@ -0,0 +1,77 @@ +module.exports = { + root: true, + env: { + node: true + }, + 'extends': [ + 'plugin:vue/strongly-recommended', + '@vue/standard' + ], + rules: { + 'no-console': 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'generator-star-spacing': 'off', + 'no-mixed-operators': 0, + 'vue/max-attributes-per-line': [ + 2, + { + 'singleline': 5, + 'multiline': { + 'max': 1, + 'allowFirstLine': false + } + } + ], + 'vue/attribute-hyphenation': 0, + 'vue/html-self-closing': 0, + 'vue/component-name-in-template-casing': 0, + 'vue/html-closing-bracket-spacing': 0, + 'vue/singleline-html-element-content-newline': 0, + 'vue/no-unused-components': 0, + 'vue/multiline-html-element-content-newline': 0, + 'vue/no-use-v-if-with-v-for': 0, + 'vue/html-closing-bracket-newline': 0, + 'vue/no-parsing-error': 0, + 'no-tabs': 0, + 'quotes': [ + 2, + 'single', + { + 'avoidEscape': true, + 'allowTemplateLiterals': true + } + ], + 'semi': [ + 2, + 'never', + { + 'beforeStatementContinuationChars': 'never' + } + ], + 'no-delete-var': 2, + 'prefer-const': [ + 2, + { + 'ignoreReadBeforeAssign': false + } + ], + 'template-curly-spacing': 'off', + 'indent': 'off', + "space-before-function-paren": 0, + 'no-multi-spaces': 2, //不能用多余的空格 + }, + parserOptions: { + parser: 'babel-eslint' + }, + overrides: [ + { + files: [ + '**/__tests__/*.{j,t}s?(x)', + '**/tests/unit/**/*.spec.{j,t}s?(x)' + ], + env: { + jest: true + } + } + ] +} diff --git a/admin20250319/.gitignore b/admin20250319/.gitignore new file mode 100644 index 0000000..d35bbf7 --- /dev/null +++ b/admin20250319/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.idea/ \ No newline at end of file diff --git a/admin20250319/.prettierrc b/admin20250319/.prettierrc new file mode 100644 index 0000000..cbe842a --- /dev/null +++ b/admin20250319/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 120, + "semi": false, + "singleQuote": true +} diff --git a/admin20250319/.travis.yml b/admin20250319/.travis.yml new file mode 100644 index 0000000..a08bfcb --- /dev/null +++ b/admin20250319/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +node_js: + - 10.15.0 +cache: yarn +script: + - yarn + - yarn run lint --no-fix && yarn run build diff --git a/admin20250319/Dockerfile b/admin20250319/Dockerfile new file mode 100644 index 0000000..0850a2f --- /dev/null +++ b/admin20250319/Dockerfile @@ -0,0 +1,7 @@ +FROM nginx + +COPY ./dist /usr/share/nginx/html +# 更新配置 +COPY ./docker/nginx/vhost/default.conf /etc/nginx/conf.d +# 暴露端口 +EXPOSE 80 \ No newline at end of file diff --git a/admin20250319/LICENSE b/admin20250319/LICENSE new file mode 100644 index 0000000..66eef0b --- /dev/null +++ b/admin20250319/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Anan Yang + +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. \ No newline at end of file diff --git a/admin20250319/babel.config.js b/admin20250319/babel.config.js new file mode 100644 index 0000000..b6c4717 --- /dev/null +++ b/admin20250319/babel.config.js @@ -0,0 +1,28 @@ +const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV) + +const plugins = [] +if (IS_PROD) { + plugins.push('transform-remove-console') +} + +// lazy load ant-design-vue +// if your use import on Demand, Use this code +plugins.push(['import', { + 'libraryName': 'ant-design-vue', + 'libraryDirectory': 'es', + 'style': true // `style: true` 会加载 less 文件 +}]) + +module.exports = { + presets: [ + [ + '@babel/preset-env', + { + 'useBuiltIns': 'entry', + 'corejs': 3 + } + ], + '@vue/cli-plugin-babel/preset' + ], + plugins +} diff --git a/admin20250319/build.sh b/admin20250319/build.sh new file mode 100644 index 0000000..a12a631 --- /dev/null +++ b/admin20250319/build.sh @@ -0,0 +1,7 @@ +#! /bin/bash +## author:liuzl +cp ./docker/nginx/vhost/hccz.conf /var/jenkins_home/nginx/conf +#docker stop hccz +#docker rm hccz +docker build -t hccz:v1 . +docker run -d -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8085:80 --restart=unless-stopped --net=mynet --name=hccz hccz:v1 \ No newline at end of file diff --git a/admin20250319/config/plugin.config.js b/admin20250319/config/plugin.config.js new file mode 100644 index 0000000..af8159a --- /dev/null +++ b/admin20250319/config/plugin.config.js @@ -0,0 +1,46 @@ +const ThemeColorReplacer = require('webpack-theme-color-replacer') +const generate = require('@ant-design/colors/lib/generate').default + +const getAntdSerials = (color) => { + // 淡化(即less的tint) + const lightens = new Array(9).fill().map((t, i) => { + return ThemeColorReplacer.varyColor.lighten(color, i / 10) + }) + const colorPalettes = generate(color) + const rgb = ThemeColorReplacer.varyColor.toNum3(color.replace('#', '')).join(',') + return lightens.concat(colorPalettes).concat(rgb) +} + +const themePluginOption = { + fileName: 'css/theme-colors-[contenthash:8].css', + matchColors: getAntdSerials('#FA541C'), // 主色系列 + // 改变样式选择器,解决样式覆盖问题 + changeSelector (selector) { + switch (selector) { + case '.ant-calendar-today .ant-calendar-date': + return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector + case '.ant-btn:focus,.ant-btn:hover': + return '.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger)' + case '.ant-btn.active,.ant-btn:active': + return '.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger)' + case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': + case '.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon': + return ':not(.ant-steps-item-process)' + selector + case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': + case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover': + return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover' + case '.ant-menu-horizontal > .ant-menu-item-selected > a': + case '.ant-menu-horizontal>.ant-menu-item-selected>a': + return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a' + case '.ant-menu-horizontal > .ant-menu-item > a:hover': + case '.ant-menu-horizontal>.ant-menu-item>a:hover': + return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover' + default : + return selector + } + } +} + +const createThemeColorReplacerPlugin = () => new ThemeColorReplacer(themePluginOption) + +module.exports = createThemeColorReplacerPlugin diff --git a/admin20250319/deploy.config.js b/admin20250319/deploy.config.js new file mode 100644 index 0000000..29eb1f2 --- /dev/null +++ b/admin20250319/deploy.config.js @@ -0,0 +1,18 @@ +module.exports = { + projectName: 'jutian_admin', + readyTimeout: 20000, + cluster: [], + prod: { + name: '正式环境', + script: 'npm run build', + host: '123.60.2.99', + port: 22, + username: 'liuzhaoliang', + password: 'liuzhaoliang', + distPath: 'dist', + webDir: '/zzt.jt-sky.com', + bakDir: '', + isRemoveRemoteFile: false, + isRemoveLocalFile: false + } +} diff --git a/admin20250319/dist/avatar2.jpg b/admin20250319/dist/avatar2.jpg new file mode 100644 index 0000000..9adb2d1 Binary files /dev/null and b/admin20250319/dist/avatar2.jpg differ diff --git a/admin20250319/dist/css/app.95833cd9.css b/admin20250319/dist/css/app.95833cd9.css new file mode 100644 index 0000000..b5222e2 --- /dev/null +++ b/admin20250319/dist/css/app.95833cd9.css @@ -0,0 +1 @@ +.app{overflow:auto;border:none}.scrollbar{margin:0 auto}.app1::-webkit-scrollbar{width:8px}.app1::-webkit-scrollbar-thumb{border-radius:6px;background:#aaa}.app1::-webkit-scrollbar-track{border-radius:8px;background:#fff}#userLayout.user-layout-wrapper[data-v-6947dc62]{height:100%}#userLayout.user-layout-wrapper.mobile .container .main[data-v-6947dc62]{max-width:368px;width:98%}#userLayout.user-layout-wrapper .container[data-v-6947dc62]{width:100%;min-height:100%;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='800' viewBox='0 0 200 200'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='88' y1='88' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23064e77'/%3E%3Cstop offset='1' stop-color='%230a7dbe'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' gradientUnits='userSpaceOnUse' x1='75' y1='76' x2='168' y2='160'%3E%3Cstop offset='0' stop-color='%238f8f8f'/%3E%3Cstop offset='.09' stop-color='%23b3b3b3'/%3E%3Cstop offset='.18' stop-color='%23c9c9c9'/%3E%3Cstop offset='.31' stop-color='%23dbdbdb'/%3E%3Cstop offset='.44' stop-color='%23e8e8e8'/%3E%3Cstop offset='.59' stop-color='%23f2f2f2'/%3E%3Cstop offset='.75' stop-color='%23fafafa'/%3E%3Cstop offset='1' stop-color='%23FFF'/%3E%3C/linearGradient%3E%3Cfilter id='b' x='0' y='0' width='200%25' height='200%25'%3E%3CfeGaussianBlur in='SourceGraphic' stdDeviation='12'/%3E%3C/filter%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 174V0h174z'/%3E%3Cpath fill-opacity='.5' filter='url(%23b)' d='M121.8 174C59.2 153.1 0 174 0 174s63.5-73.8 87-94c24.4-20.9 87-80 87-80s-66.1 104.4-52.2 174z'/%3E%3Cpath fill='url(%23c)' d='M142.7 142.7C59.2 142.7 0 174 0 174s42-66.3 74.9-99.3S174 0 174 0s-31.3 62.6-31.3 142.7z'/%3E%3C/svg%3E");background-attachment:fixed;background-repeat:no-repeat;background-position:0 0;padding:110px 0 144px;position:relative}#userLayout.user-layout-wrapper .container a[data-v-6947dc62]{text-decoration:none}#userLayout.user-layout-wrapper .container .top[data-v-6947dc62]{text-align:center}#userLayout.user-layout-wrapper .container .top .header[data-v-6947dc62]{height:44px;line-height:44px}#userLayout.user-layout-wrapper .container .top .header .badge[data-v-6947dc62]{position:absolute;display:inline-block;line-height:1;vertical-align:middle;margin-left:-12px;margin-top:-10px;opacity:.8}#userLayout.user-layout-wrapper .container .top .header .logo[data-v-6947dc62]{height:44px;vertical-align:top;margin-right:16px;border-style:none}#userLayout.user-layout-wrapper .container .top .header .title[data-v-6947dc62]{font-size:33px;color:rgba(0,0,0,.85);font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:600;position:relative;top:2px}#userLayout.user-layout-wrapper .container .top .desc[data-v-6947dc62]{font-size:14px;color:rgba(0,0,0,.45);margin-top:12px;margin-bottom:40px}#userLayout.user-layout-wrapper .container .main[data-v-6947dc62]{min-width:260px;width:368px;margin:0 auto}#userLayout.user-layout-wrapper .container .footer[data-v-6947dc62]{position:absolute;width:100%;bottom:0;padding:0 16px;margin:48px 0 24px;text-align:center}#userLayout.user-layout-wrapper .container .footer .links[data-v-6947dc62]{margin-bottom:8px;font-size:14px}#userLayout.user-layout-wrapper .container .footer .links a[data-v-6947dc62]{color:rgba(0,0,0,.45);-webkit-transition:all .3s;transition:all .3s}#userLayout.user-layout-wrapper .container .footer .links a[data-v-6947dc62]:not(:last-child){margin-right:40px}#userLayout.user-layout-wrapper .container .footer .copyright[data-v-6947dc62]{color:rgba(0,0,0,.45);font-size:14px}.header-notice-wrapper{top:50px!important}.header-notice[data-v-502fd791]{display:inline-block;-webkit-transition:all .3s;transition:all .3s}.header-notice span[data-v-502fd791]{vertical-align:initial}.appRedio[data-v-6755ad7a]{border:1px solid #91d5ff;padding:10px 20px;background:#e6f7ff;border-radius:2px;margin-bottom:10px;color:#91d5ff}.header-animat{position:relative;z-index:105}.showHeader-enter-active{-webkit-transition:all .25s ease;transition:all .25s ease}.showHeader-leave-active{-webkit-transition:all .5s ease;transition:all .5s ease}.showHeader-enter,.showHeader-leave-to{opacity:0}.footer[data-v-9b8348a4]{padding:0 16px;margin:0 0 10px;text-align:center}.footer .links[data-v-9b8348a4]{margin-bottom:8px}.footer .links a[data-v-9b8348a4]{color:rgba(0,0,0,.45)}.footer .links a[data-v-9b8348a4]:hover{color:rgba(0,0,0,.65)}.footer .links a[data-v-9b8348a4]:not(:last-child){margin-right:40px}.footer .copyright[data-v-9b8348a4]{color:rgba(0,0,0,.45);font-size:14px}.setting-drawer-index-content .setting-drawer-index-blockChecbox[data-v-01e25c20]{display:-webkit-box;display:-ms-flexbox;display:flex}.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item[data-v-01e25c20]{margin-right:16px;position:relative;border-radius:4px;cursor:pointer}.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item img[data-v-01e25c20]{width:48px}.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-01e25c20]{position:absolute;top:0;right:0;width:100%;padding-top:15px;padding-left:24px;height:100%;color:#1890ff;font-size:14px;font-weight:700}.setting-drawer-index-content .setting-drawer-theme-color-colorBlock[data-v-01e25c20]{width:20px;height:20px;border-radius:2px;float:left;cursor:pointer;margin-right:8px;padding-left:0;padding-right:0;text-align:center;color:#fff;font-weight:700}.setting-drawer-index-content .setting-drawer-theme-color-colorBlock i[data-v-01e25c20]{font-size:14px}.setting-drawer-index-handle[data-v-01e25c20]{position:absolute;top:240px;background:#1890ff;width:48px;height:48px;right:300px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;pointer-events:auto;z-index:1001;text-align:center;font-size:16px;border-radius:4px 0 0 4px}.setting-drawer-index-handle i[data-v-01e25c20]{color:#fff;font-size:20px}.page-transition-enter,.page-transition-leave-active{opacity:0}.page-transition-enter .page-transition-container,.page-transition-leave-active .page-transition-container{-webkit-transform:scale(1.1);transform:scale(1.1)}.page-header[data-v-300f978a]{background:#fff;padding:10px 32px 0;border-bottom:0 solid #e8e8e8}.page-header .breadcrumb[data-v-300f978a]{margin-bottom:10px}.page-header .detail[data-v-300f978a]{display:-webkit-box;display:-ms-flexbox;display:flex}.page-header .detail .avatar[data-v-300f978a]{-webkit-box-flex:0;-ms-flex:0 1 72px;flex:0 1 72px;margin:0 24px 8px 0}.page-header .detail .avatar>span[data-v-300f978a]{border-radius:72px;display:block;width:72px;height:72px}.page-header .detail .main[data-v-300f978a]{width:100%;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.page-header .detail .main .row[data-v-300f978a]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.page-header .detail .main .row .avatar[data-v-300f978a]{margin-bottom:10px}.page-header .detail .main .title[data-v-300f978a]{font-size:20px;line-height:28px;font-weight:500;color:rgba(0,0,0,.85);margin-bottom:16px;-webkit-box-flex:1;-ms-flex:auto;flex:auto}.page-header .detail .main .logo[data-v-300f978a]{width:28px;height:28px;border-radius:4px;margin-right:16px}.page-header .detail .main .content[data-v-300f978a],.page-header .detail .main .headerContent[data-v-300f978a]{-webkit-box-flex:1;-ms-flex:auto;flex:auto;color:rgba(0,0,0,.45);line-height:22px}.page-header .detail .main .content .link[data-v-300f978a],.page-header .detail .main .headerContent .link[data-v-300f978a]{margin-top:16px;line-height:24px}.page-header .detail .main .content .link a[data-v-300f978a],.page-header .detail .main .headerContent .link a[data-v-300f978a]{font-size:14px;margin-right:32px}.page-header .detail .main .extra[data-v-300f978a]{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:88px;min-width:242px;text-align:right}.page-header .detail .main .action[data-v-300f978a]{margin-left:56px;min-width:266px;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;text-align:right}.page-header .detail .main .action[data-v-300f978a]:empty{display:none}.mobile .page-header .main .row[data-v-300f978a]{-ms-flex-wrap:wrap;flex-wrap:wrap}.mobile .page-header .main .row .avatar[data-v-300f978a]{-webkit-box-flex:0;-ms-flex:0 1 25%;flex:0 1 25%;margin:0 2% 8px 0}.mobile .page-header .main .row .content[data-v-300f978a],.mobile .page-header .main .row .headerContent[data-v-300f978a]{-webkit-box-flex:0;-ms-flex:0 1 70%;flex:0 1 70%}.mobile .page-header .main .row .content .link[data-v-300f978a],.mobile .page-header .main .row .headerContent .link[data-v-300f978a]{margin-top:16px;line-height:24px}.mobile .page-header .main .row .content .link a[data-v-300f978a],.mobile .page-header .main .row .headerContent .link a[data-v-300f978a]{font-size:14px;margin-right:10px}.mobile .page-header .main .row .extra[data-v-300f978a]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin-left:0;min-width:0;text-align:right}.mobile .page-header .main .row .action[data-v-300f978a]{margin-left:unset;min-width:266px;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;text-align:left;margin-bottom:12px}.mobile .page-header .main .row .action[data-v-300f978a]:empty{display:none}.content[data-v-d6c73dd6]{margin:24px 24px 0}.content .link[data-v-d6c73dd6]{margin-top:16px}.content .link[data-v-d6c73dd6]:not(:empty){margin-bottom:16px}.content .link a[data-v-d6c73dd6]{margin-right:32px;height:24px;line-height:24px;display:inline-block}.content .link a i[data-v-d6c73dd6]{font-size:24px;margin-right:8px;vertical-align:middle}.content .link a span[data-v-d6c73dd6]{height:24px;line-height:24px;display:inline-block;vertical-align:middle}.page-menu-search[data-v-d6c73dd6]{text-align:center;margin-bottom:16px}.page-menu-tabs[data-v-d6c73dd6]{margin-top:48px}.extra-img[data-v-d6c73dd6]{margin-top:-60px;text-align:center;width:195px}.extra-img img[data-v-d6c73dd6]{width:100%}.mobile .extra-img[data-v-d6c73dd6]{margin-top:0;text-align:center;width:96px}.mobile .extra-img img[data-v-d6c73dd6]{width:100%}.ant-pro-multi-tab{margin:-23px -24px 24px -24px;background:#fff}.topmenu .ant-pro-multi-tab-wrapper{max-width:1200px;margin:0 auto}.topmenu.content-width-Fluid .ant-pro-multi-tab-wrapper{max-width:100%;margin:0 auto}#nprogress{pointer-events:none}#nprogress .bar{background:#2f54eb;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #2f54eb,0 0 5px #2f54eb;box-shadow:0 0 10px #2f54eb,0 0 5px #2f54eb;opacity:1;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border:2px solid transparent;border-top-color:#2f54eb;border-left-color:#2f54eb;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}#app{height:100%}#app.colorWeak{-webkit-filter:invert(80%);filter:invert(80%)}#app.userLayout{overflow:auto}.layout.ant-layout{height:auto;overflow-x:hidden}.layout.ant-layout.mobile .ant-layout-content .content,.layout.ant-layout.tablet .ant-layout-content .content{margin:24px 0 0}.layout.ant-layout.mobile .ant-table-wrapper .ant-table-content,.layout.ant-layout.tablet .ant-table-wrapper .ant-table-content{overflow-y:auto}.layout.ant-layout.mobile .ant-table-wrapper .ant-table-body,.layout.ant-layout.tablet .ant-table-wrapper .ant-table-body{min-width:800px}.layout.ant-layout.mobile .topmenu.content-width-Fluid .header-index-wide,.layout.ant-layout.tablet .topmenu.content-width-Fluid .header-index-wide{margin-left:0}.layout.ant-layout.mobile .sidemenu .ant-header-fixedHeader.ant-header-side-closed,.layout.ant-layout.mobile .sidemenu .ant-header-fixedHeader.ant-header-side-opened{width:100%}.layout.ant-layout.ant-layout-has-sider{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.layout.ant-layout .trigger{font-size:20px;line-height:55px;padding:0 24px;cursor:pointer;-webkit-transition:color .3s;transition:color .3s}.layout.ant-layout .trigger:hover{background:rgba(0,0,0,.025)}.layout.ant-layout .topmenu .ant-header-fixedHeader{position:fixed;top:0;right:0;z-index:9;width:100%;-webkit-transition:width .2s;transition:width .2s}.layout.ant-layout .topmenu .ant-header-fixedHeader.ant-header-side-closed,.layout.ant-layout .topmenu .ant-header-fixedHeader.ant-header-side-opened{width:100%}.layout.ant-layout .topmenu.content-width-Fluid .header-index-wide{max-width:unset}.layout.ant-layout .topmenu.content-width-Fluid .header-index-wide .header-index-left{-webkit-box-flex:1;-ms-flex:1 1 1000px;flex:1 1 1000px}.layout.ant-layout .topmenu.content-width-Fluid .header-index-wide .header-index-left .logo{margin-left:25px}.layout.ant-layout .topmenu.content-width-Fluid .header-index-wide .header-index-left .ant-menu.ant-menu-horizontal{max-width:calc(100vw - 453px);-webkit-box-flex:1;-ms-flex:1 1 calc(100vw - 453px);flex:1 1 calc(100vw - 453px)}.layout.ant-layout .topmenu.content-width-Fluid .header-index-wide .header-index-right{margin-right:25px}.layout.ant-layout .topmenu.content-width-Fluid .page-header-index-wide{max-width:unset}.layout.ant-layout .sidemenu .ant-header-fixedHeader{position:fixed;top:0;right:0;z-index:9;width:100%;-webkit-transition:width .2s;transition:width .2s}.layout.ant-layout .sidemenu .ant-header-fixedHeader.ant-header-side-opened{width:calc(100% - 230px)}.layout.ant-layout .sidemenu .ant-header-fixedHeader.ant-header-side-closed{width:calc(100% - 80px)}.layout.ant-layout .header{height:55px;background:#fff;-webkit-box-shadow:0 1px 4px rgba(0,21,41,.08);box-shadow:0 1px 4px rgba(0,21,41,.08);position:relative}.layout.ant-layout .header .user-wrapper,.layout.ant-layout .top-nav-header-index .user-wrapper{float:right;height:100%}.layout.ant-layout .header .user-wrapper .action,.layout.ant-layout .top-nav-header-index .user-wrapper .action{line-height:55px;cursor:pointer;padding:0 12px;display:inline-block;-webkit-transition:all .3s;transition:all .3s;height:100%;color:rgba(0,0,0,.65)}.layout.ant-layout .header .user-wrapper .action:hover,.layout.ant-layout .top-nav-header-index .user-wrapper .action:hover{background:rgba(0,0,0,.025)}.layout.ant-layout .header .user-wrapper .action .avatar,.layout.ant-layout .top-nav-header-index .user-wrapper .action .avatar{margin:15px 8px 15px 0;color:#1890ff;background:hsla(0,0%,100%,.85);vertical-align:middle}.layout.ant-layout .header .user-wrapper .action .icon,.layout.ant-layout .top-nav-header-index .user-wrapper .action .icon{font-size:16px;padding:4px}.layout.ant-layout .header.dark .user-wrapper .action,.layout.ant-layout .header.dark .user-wrapper .action a,.layout.ant-layout .top-nav-header-index.dark .user-wrapper .action,.layout.ant-layout .top-nav-header-index.dark .user-wrapper .action a{color:hsla(0,0%,100%,.85)}.layout.ant-layout .header.dark .user-wrapper .action:hover,.layout.ant-layout .top-nav-header-index.dark .user-wrapper .action:hover{background:hsla(0,0%,100%,.16)}.layout.ant-layout.mobile .top-nav-header-index .header-index-wide .header-index-left .trigger,.layout.ant-layout.tablet .top-nav-header-index .header-index-wide .header-index-left .trigger{color:hsla(0,0%,100%,.85);padding:0 12px}.layout.ant-layout.mobile .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header,.layout.ant-layout.tablet .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header{-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;text-align:center;line-height:58px}.layout.ant-layout.mobile .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header h1,.layout.ant-layout.tablet .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header h1{display:none}.layout.ant-layout.mobile .top-nav-header-index.light .header-index-wide .header-index-left .trigger,.layout.ant-layout.tablet .top-nav-header-index.light .header-index-wide .header-index-left .trigger{color:rgba(0,0,0,.65)}.layout.ant-layout.tablet .top-nav-header-index .header-index-wide .header-index-left .logo>a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout.ant-layout.tablet .top-nav-header-index .header-index-wide .ant-menu.ant-menu-horizontal{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;white-space:normal}.layout.ant-layout .top-nav-header-index{-webkit-box-shadow:0 1px 4px rgba(0,21,41,.08);box-shadow:0 1px 4px rgba(0,21,41,.08);position:relative;-webkit-transition:background .3s,width .2s;transition:background .3s,width .2s}.layout.ant-layout .top-nav-header-index .header-index-wide{max-width:1200px;margin:auto;padding-left:0;display:-webkit-box;display:-ms-flexbox;display:flex;height:55px}.layout.ant-layout .top-nav-header-index .header-index-wide .ant-menu.ant-menu-horizontal{max-width:835px;-webkit-box-flex:0;-ms-flex:0 1 835px;flex:0 1 835px;border:none;height:55px;line-height:55px}.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-left{-webkit-box-flex:0;-ms-flex:0 1 1000px;flex:0 1 1000px;display:-webkit-box;display:-ms-flexbox;display:flex}.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header{-webkit-box-flex:0;-ms-flex:0 0 165px;flex:0 0 165px;width:165px;height:55px;position:relative;line-height:55px;-webkit-transition:all .3s;transition:all .3s;overflow:hidden}.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header img,.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header svg{display:inline-block;vertical-align:middle;height:32px;width:32px}.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-left .logo.top-nav-header h1{color:#fff;display:inline-block;vertical-align:top;font-size:16px;margin:0 0 0 12px;font-weight:400}.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-right{-webkit-box-flex:0;-ms-flex:0 0 238px;flex:0 0 238px;-ms-flex-item-align:end;align-self:flex-end;height:55px;overflow:hidden}.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-right .content-box{float:right}.layout.ant-layout .top-nav-header-index .header-index-wide .header-index-right .content-box .action{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout.ant-layout .top-nav-header-index.light{background-color:#fff}.layout.ant-layout .top-nav-header-index.light .header-index-wide .header-index-left .logo h1{color:#002140}.layout.ant-layout .layout-content{margin:24px 24px 0;padding:0 12px 0 0}.layout.ant-layout .ant-layout-footer{padding:0}.topmenu .page-header-index-wide{max-width:1200px;margin:0 auto}.ant-drawer.drawer-sider .sider{-webkit-box-shadow:none;box-shadow:none}.ant-drawer.drawer-sider.dark .ant-drawer-content{background-color:#001529}.ant-drawer.drawer-sider.light{-webkit-box-shadow:none;box-shadow:none}.ant-drawer.drawer-sider.light .ant-drawer-content{background-color:#fff}.ant-drawer.drawer-sider .ant-drawer-body{padding:0}.sider{-webkit-box-shadow:2px 0 6px rgba(0,21,41,.35);box-shadow:2px 0 6px rgba(0,21,41,.35);position:relative;z-index:106;min-height:100vh}.sider .ant-layout-sider-children{overflow-y:hidden}.sider .ant-layout-sider-children:hover{overflow-y:auto}.sider.ant-fixed-sidemenu{position:fixed;height:100%}.sider .logo{position:relative;height:55px;padding-left:24px;overflow:hidden;line-height:55px;background:#002140;-webkit-transition:all .3s;transition:all .3s}.sider .logo h1,.sider .logo img,.sider .logo svg{display:inline-block;vertical-align:middle}.sider .logo img,.sider .logo svg{height:32px;width:32px}.sider .logo h1{color:#fff;font-size:20px;margin:0 0 0 12px;font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:600;vertical-align:middle}.sider.light{background-color:#fff;-webkit-box-shadow:2px 0 8px 0 rgba(29,35,41,.05);box-shadow:2px 0 8px 0 rgba(29,35,41,.05)}.sider.light .logo{background:#fff;-webkit-box-shadow:1px 1px 0 0 #e8e8e8;box-shadow:1px 1px 0 0 #e8e8e8}.sider.light .logo h1{color:unset}.sider.light .ant-menu-light{border-right-color:transparent}.user-dropdown-menu span{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.user-dropdown-menu-wrapper.ant-dropdown-menu{padding:4px 0}.user-dropdown-menu-wrapper.ant-dropdown-menu .ant-dropdown-menu-item{width:160px}.user-dropdown-menu-wrapper.ant-dropdown-menu .ant-dropdown-menu-item>.anticon:first-child,.user-dropdown-menu-wrapper.ant-dropdown-menu .ant-dropdown-menu-item>a>.anticon:first-child,.user-dropdown-menu-wrapper.ant-dropdown-menu .ant-dropdown-menu-submenu-title>.anticon:first-child .ant-dropdown-menu-submenu-title>a>.anticon:first-child{min-width:12px;margin-right:8px}.table-alert{margin-bottom:16px}.table-page-search-wrapper .ant-form-inline .ant-form-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:24px;margin-right:0}.table-page-search-wrapper .ant-form-inline .ant-form-item .ant-form-item-control-wrapper{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;display:inline-block;vertical-align:middle}.table-page-search-wrapper .ant-form-inline .ant-form-item>.ant-form-item-label{line-height:32px;padding-right:8px;width:auto}.table-page-search-wrapper .ant-form-inline .ant-form-item .ant-form-item-control{height:32px;line-height:32px}.table-page-search-wrapper .table-page-search-submitButtons{display:block;margin-bottom:0}.table-page-search-wrapper .table-page-search-submitButtons button{margin-bottom:5px}.content .table-operator{margin-bottom:18px}.content .table-operator button{margin-right:8px}.chart-card-header .meta[data-v-2fb1f842],.chart-card-header[data-v-2fb1f842]{position:relative;overflow:hidden;width:100%}.chart-card-header .meta[data-v-2fb1f842]{color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.chart-card-action[data-v-2fb1f842]{cursor:pointer;position:absolute;top:0;right:0}.chart-card-footer[data-v-2fb1f842]{border-top:1px solid #e8e8e8;padding-top:9px;margin-top:8px}.chart-card-footer>[data-v-2fb1f842]{position:relative}.chart-card-footer .field[data-v-2fb1f842]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.chart-card-content[data-v-2fb1f842]{margin-bottom:12px;position:relative;height:46px;width:100%}.chart-card-content .content-fix[data-v-2fb1f842]{position:absolute;left:0;bottom:0;width:100%}.total[data-v-2fb1f842]{overflow:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;color:#000;margin-top:4px;margin-bottom:0;font-size:30px;line-height:38px;height:38px}body[data-v-1cd0b9b6],html[data-v-1cd0b9b6]{width:100%;height:100%}input[data-v-1cd0b9b6]::-ms-clear,input[data-v-1cd0b9b6]::-ms-reveal{display:none}[data-v-1cd0b9b6],[data-v-1cd0b9b6]:after,[data-v-1cd0b9b6]:before{-webkit-box-sizing:border-box;box-sizing:border-box}html[data-v-1cd0b9b6]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}article[data-v-1cd0b9b6],aside[data-v-1cd0b9b6],dialog[data-v-1cd0b9b6],figcaption[data-v-1cd0b9b6],figure[data-v-1cd0b9b6],footer[data-v-1cd0b9b6],header[data-v-1cd0b9b6],hgroup[data-v-1cd0b9b6],main[data-v-1cd0b9b6],nav[data-v-1cd0b9b6],section[data-v-1cd0b9b6]{display:block}body[data-v-1cd0b9b6]{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"][data-v-1cd0b9b6]:focus{outline:none!important}hr[data-v-1cd0b9b6]{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1[data-v-1cd0b9b6],h2[data-v-1cd0b9b6],h3[data-v-1cd0b9b6],h4[data-v-1cd0b9b6],h5[data-v-1cd0b9b6],h6[data-v-1cd0b9b6]{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p[data-v-1cd0b9b6]{margin-top:0;margin-bottom:1em}abbr[data-original-title][data-v-1cd0b9b6],abbr[title][data-v-1cd0b9b6]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address[data-v-1cd0b9b6]{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number][data-v-1cd0b9b6],input[type=password][data-v-1cd0b9b6],input[type=text][data-v-1cd0b9b6],textarea[data-v-1cd0b9b6]{-webkit-appearance:none}dl[data-v-1cd0b9b6],ol[data-v-1cd0b9b6],ul[data-v-1cd0b9b6]{margin-top:0;margin-bottom:1em}ol ol[data-v-1cd0b9b6],ol ul[data-v-1cd0b9b6],ul ol[data-v-1cd0b9b6],ul ul[data-v-1cd0b9b6]{margin-bottom:0}dt[data-v-1cd0b9b6]{font-weight:500}dd[data-v-1cd0b9b6]{margin-bottom:.5em;margin-left:0}blockquote[data-v-1cd0b9b6]{margin:0 0 1em}dfn[data-v-1cd0b9b6]{font-style:italic}b[data-v-1cd0b9b6],strong[data-v-1cd0b9b6]{font-weight:bolder}small[data-v-1cd0b9b6]{font-size:80%}sub[data-v-1cd0b9b6],sup[data-v-1cd0b9b6]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[data-v-1cd0b9b6]{bottom:-.25em}sup[data-v-1cd0b9b6]{top:-.5em}a[data-v-1cd0b9b6]{color:#2f54eb;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a[data-v-1cd0b9b6]:hover{color:#597ef7}a[data-v-1cd0b9b6]:active{color:#1d39c4}a[data-v-1cd0b9b6]:active,a[data-v-1cd0b9b6]:hover{text-decoration:none;outline:0}a[disabled][data-v-1cd0b9b6]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code[data-v-1cd0b9b6],kbd[data-v-1cd0b9b6],pre[data-v-1cd0b9b6],samp[data-v-1cd0b9b6]{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre[data-v-1cd0b9b6]{margin-top:0;margin-bottom:1em;overflow:auto}figure[data-v-1cd0b9b6]{margin:0 0 1em}img[data-v-1cd0b9b6]{vertical-align:middle;border-style:none}svg[data-v-1cd0b9b6]:not(:root){overflow:hidden}[role=button][data-v-1cd0b9b6],a[data-v-1cd0b9b6],area[data-v-1cd0b9b6],button[data-v-1cd0b9b6],input[data-v-1cd0b9b6]:not([type=range]),label[data-v-1cd0b9b6],select[data-v-1cd0b9b6],summary[data-v-1cd0b9b6],textarea[data-v-1cd0b9b6]{-ms-touch-action:manipulation;touch-action:manipulation}table[data-v-1cd0b9b6]{border-collapse:collapse}caption[data-v-1cd0b9b6]{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th[data-v-1cd0b9b6]{text-align:inherit}button[data-v-1cd0b9b6],input[data-v-1cd0b9b6],optgroup[data-v-1cd0b9b6],select[data-v-1cd0b9b6],textarea[data-v-1cd0b9b6]{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button[data-v-1cd0b9b6],input[data-v-1cd0b9b6]{overflow:visible}button[data-v-1cd0b9b6],select[data-v-1cd0b9b6]{text-transform:none}[type=reset][data-v-1cd0b9b6],[type=submit][data-v-1cd0b9b6],button[data-v-1cd0b9b6],html [type=button][data-v-1cd0b9b6]{-webkit-appearance:button}[type=button][data-v-1cd0b9b6]::-moz-focus-inner,[type=reset][data-v-1cd0b9b6]::-moz-focus-inner,[type=submit][data-v-1cd0b9b6]::-moz-focus-inner,button[data-v-1cd0b9b6]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][data-v-1cd0b9b6],input[type=radio][data-v-1cd0b9b6]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date][data-v-1cd0b9b6],input[type=datetime-local][data-v-1cd0b9b6],input[type=month][data-v-1cd0b9b6],input[type=time][data-v-1cd0b9b6]{-webkit-appearance:listbox}textarea[data-v-1cd0b9b6]{overflow:auto;resize:vertical}fieldset[data-v-1cd0b9b6]{min-width:0;margin:0;padding:0;border:0}legend[data-v-1cd0b9b6]{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress[data-v-1cd0b9b6]{vertical-align:baseline}[type=number][data-v-1cd0b9b6]::-webkit-inner-spin-button,[type=number][data-v-1cd0b9b6]::-webkit-outer-spin-button{height:auto}[type=search][data-v-1cd0b9b6]{outline-offset:-2px;-webkit-appearance:none}[type=search][data-v-1cd0b9b6]::-webkit-search-cancel-button,[type=search][data-v-1cd0b9b6]::-webkit-search-decoration{-webkit-appearance:none}[data-v-1cd0b9b6]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[data-v-1cd0b9b6]{display:inline-block}summary[data-v-1cd0b9b6]{display:list-item}template[data-v-1cd0b9b6]{display:none}[hidden][data-v-1cd0b9b6]{display:none!important}mark[data-v-1cd0b9b6]{padding:.2em;background-color:#feffe6}[data-v-1cd0b9b6]::-moz-selection{color:#fff;background:#2f54eb}[data-v-1cd0b9b6]::selection{color:#fff;background:#2f54eb}.clearfix[data-v-1cd0b9b6]{zoom:1}.clearfix[data-v-1cd0b9b6]:after,.clearfix[data-v-1cd0b9b6]:before{display:table;content:""}.clearfix[data-v-1cd0b9b6]:after{clear:both}.anticon[data-v-1cd0b9b6]{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>[data-v-1cd0b9b6]{line-height:1}.anticon svg[data-v-1cd0b9b6]{display:inline-block}.anticon[data-v-1cd0b9b6]:before{display:none}.anticon .anticon-icon[data-v-1cd0b9b6]{display:block}.anticon[tabindex][data-v-1cd0b9b6]{cursor:pointer}.anticon-spin[data-v-1cd0b9b6],.anticon-spin[data-v-1cd0b9b6]:before{display:inline-block;-webkit-animation:loadingCircle-1cd0b9b6 1s linear infinite;animation:loadingCircle-1cd0b9b6 1s linear infinite}.fade-appear[data-v-1cd0b9b6],.fade-enter[data-v-1cd0b9b6],.fade-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active[data-v-1cd0b9b6],.fade-enter.fade-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antFadeIn-1cd0b9b6;animation-name:antFadeIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antFadeOut-1cd0b9b6;animation-name:antFadeOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear[data-v-1cd0b9b6],.fade-enter[data-v-1cd0b9b6]{opacity:0}.fade-appear[data-v-1cd0b9b6],.fade-enter[data-v-1cd0b9b6],.fade-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn-1cd0b9b6{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn-1cd0b9b6{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut-1cd0b9b6{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut-1cd0b9b6{0%{opacity:1}to{opacity:0}}.move-up-appear[data-v-1cd0b9b6],.move-up-enter[data-v-1cd0b9b6],.move-up-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active[data-v-1cd0b9b6],.move-up-enter.move-up-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveUpIn-1cd0b9b6;animation-name:antMoveUpIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveUpOut-1cd0b9b6;animation-name:antMoveUpOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear[data-v-1cd0b9b6],.move-up-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear[data-v-1cd0b9b6],.move-down-enter[data-v-1cd0b9b6],.move-down-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active[data-v-1cd0b9b6],.move-down-enter.move-down-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveDownIn-1cd0b9b6;animation-name:antMoveDownIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveDownOut-1cd0b9b6;animation-name:antMoveDownOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear[data-v-1cd0b9b6],.move-down-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear[data-v-1cd0b9b6],.move-left-enter[data-v-1cd0b9b6],.move-left-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active[data-v-1cd0b9b6],.move-left-enter.move-left-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveLeftIn-1cd0b9b6;animation-name:antMoveLeftIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveLeftOut-1cd0b9b6;animation-name:antMoveLeftOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear[data-v-1cd0b9b6],.move-left-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear[data-v-1cd0b9b6],.move-right-enter[data-v-1cd0b9b6],.move-right-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active[data-v-1cd0b9b6],.move-right-enter.move-right-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveRightIn-1cd0b9b6;animation-name:antMoveRightIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antMoveRightOut-1cd0b9b6;animation-name:antMoveRightOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear[data-v-1cd0b9b6],.move-right-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn-1cd0b9b6{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn-1cd0b9b6{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut-1cd0b9b6{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut-1cd0b9b6{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn-1cd0b9b6{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn-1cd0b9b6{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut-1cd0b9b6{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut-1cd0b9b6{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn-1cd0b9b6{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn-1cd0b9b6{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut-1cd0b9b6{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut-1cd0b9b6{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn-1cd0b9b6{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn-1cd0b9b6{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut-1cd0b9b6{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut-1cd0b9b6{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle-1cd0b9b6{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle-1cd0b9b6{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true][data-v-1cd0b9b6],[ant-click-animating=true][data-v-1cd0b9b6]{position:relative}html[data-v-1cd0b9b6]{--antd-wave-shadow-color:#2f54eb}.ant-click-animating-node[data-v-1cd0b9b6],[ant-click-animating-without-extra-node=true][data-v-1cd0b9b6]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #2f54eb;box-shadow:0 0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect-1cd0b9b6 2s cubic-bezier(.08,.82,.17,1),waveEffect-1cd0b9b6 .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect-1cd0b9b6 2s cubic-bezier(.08,.82,.17,1),waveEffect-1cd0b9b6 .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect-1cd0b9b6{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect-1cd0b9b6{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect-1cd0b9b6{to{opacity:0}}@keyframes fadeEffect-1cd0b9b6{to{opacity:0}}.slide-up-appear[data-v-1cd0b9b6],.slide-up-enter[data-v-1cd0b9b6],.slide-up-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active[data-v-1cd0b9b6],.slide-up-enter.slide-up-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideUpIn-1cd0b9b6;animation-name:antSlideUpIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideUpOut-1cd0b9b6;animation-name:antSlideUpOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear[data-v-1cd0b9b6],.slide-up-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear[data-v-1cd0b9b6],.slide-down-enter[data-v-1cd0b9b6],.slide-down-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active[data-v-1cd0b9b6],.slide-down-enter.slide-down-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideDownIn-1cd0b9b6;animation-name:antSlideDownIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideDownOut-1cd0b9b6;animation-name:antSlideDownOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear[data-v-1cd0b9b6],.slide-down-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear[data-v-1cd0b9b6],.slide-left-enter[data-v-1cd0b9b6],.slide-left-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active[data-v-1cd0b9b6],.slide-left-enter.slide-left-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideLeftIn-1cd0b9b6;animation-name:antSlideLeftIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideLeftOut-1cd0b9b6;animation-name:antSlideLeftOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear[data-v-1cd0b9b6],.slide-left-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear[data-v-1cd0b9b6],.slide-right-enter[data-v-1cd0b9b6],.slide-right-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active[data-v-1cd0b9b6],.slide-right-enter.slide-right-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideRightIn-1cd0b9b6;animation-name:antSlideRightIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antSlideRightOut-1cd0b9b6;animation-name:antSlideRightOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear[data-v-1cd0b9b6],.slide-right-enter[data-v-1cd0b9b6]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn-1cd0b9b6{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn-1cd0b9b6{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut-1cd0b9b6{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut-1cd0b9b6{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn-1cd0b9b6{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn-1cd0b9b6{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut-1cd0b9b6{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut-1cd0b9b6{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn-1cd0b9b6{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn-1cd0b9b6{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut-1cd0b9b6{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut-1cd0b9b6{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn-1cd0b9b6{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn-1cd0b9b6{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut-1cd0b9b6{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut-1cd0b9b6{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear[data-v-1cd0b9b6],.swing-enter[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active[data-v-1cd0b9b6],.swing-enter.swing-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antSwingIn-1cd0b9b6;animation-name:antSwingIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn-1cd0b9b6{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn-1cd0b9b6{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear[data-v-1cd0b9b6],.zoom-enter[data-v-1cd0b9b6],.zoom-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active[data-v-1cd0b9b6],.zoom-enter.zoom-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomIn-1cd0b9b6;animation-name:antZoomIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomOut-1cd0b9b6;animation-name:antZoomOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear[data-v-1cd0b9b6],.zoom-enter[data-v-1cd0b9b6]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear[data-v-1cd0b9b6],.zoom-big-enter[data-v-1cd0b9b6],.zoom-big-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active[data-v-1cd0b9b6],.zoom-big-enter.zoom-big-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomBigIn-1cd0b9b6;animation-name:antZoomBigIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomBigOut-1cd0b9b6;animation-name:antZoomBigOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear[data-v-1cd0b9b6],.zoom-big-enter[data-v-1cd0b9b6]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear[data-v-1cd0b9b6],.zoom-big-fast-enter[data-v-1cd0b9b6],.zoom-big-fast-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active[data-v-1cd0b9b6],.zoom-big-fast-enter.zoom-big-fast-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomBigIn-1cd0b9b6;animation-name:antZoomBigIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomBigOut-1cd0b9b6;animation-name:antZoomBigOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear[data-v-1cd0b9b6],.zoom-big-fast-enter[data-v-1cd0b9b6]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear[data-v-1cd0b9b6],.zoom-up-enter[data-v-1cd0b9b6],.zoom-up-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active[data-v-1cd0b9b6],.zoom-up-enter.zoom-up-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomUpIn-1cd0b9b6;animation-name:antZoomUpIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomUpOut-1cd0b9b6;animation-name:antZoomUpOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear[data-v-1cd0b9b6],.zoom-up-enter[data-v-1cd0b9b6]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear[data-v-1cd0b9b6],.zoom-down-enter[data-v-1cd0b9b6],.zoom-down-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active[data-v-1cd0b9b6],.zoom-down-enter.zoom-down-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomDownIn-1cd0b9b6;animation-name:antZoomDownIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomDownOut-1cd0b9b6;animation-name:antZoomDownOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear[data-v-1cd0b9b6],.zoom-down-enter[data-v-1cd0b9b6]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear[data-v-1cd0b9b6],.zoom-left-enter[data-v-1cd0b9b6],.zoom-left-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active[data-v-1cd0b9b6],.zoom-left-enter.zoom-left-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomLeftIn-1cd0b9b6;animation-name:antZoomLeftIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomLeftOut-1cd0b9b6;animation-name:antZoomLeftOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear[data-v-1cd0b9b6],.zoom-left-enter[data-v-1cd0b9b6]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear[data-v-1cd0b9b6],.zoom-right-enter[data-v-1cd0b9b6],.zoom-right-leave[data-v-1cd0b9b6]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active[data-v-1cd0b9b6],.zoom-right-enter.zoom-right-enter-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomRightIn-1cd0b9b6;animation-name:antZoomRightIn-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active[data-v-1cd0b9b6]{-webkit-animation-name:antZoomRightOut-1cd0b9b6;animation-name:antZoomRightOut-1cd0b9b6;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear[data-v-1cd0b9b6],.zoom-right-enter[data-v-1cd0b9b6]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave[data-v-1cd0b9b6]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn-1cd0b9b6{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn-1cd0b9b6{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn-1cd0b9b6{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut-1cd0b9b6{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy[data-v-1cd0b9b6]{overflow:hidden}.ant-motion-collapse-legacy-active[data-v-1cd0b9b6],.ant-motion-collapse[data-v-1cd0b9b6]{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse[data-v-1cd0b9b6]{overflow:hidden}.ant-pro-smooth-area[data-v-1cd0b9b6]{position:relative;width:100%}.ant-pro-smooth-area .chart-wrapper[data-v-1cd0b9b6]{position:absolute;bottom:-28px;width:100%}.chart-mini-progress[data-v-430bb431]{padding:5px 0;position:relative;width:100%}.chart-mini-progress .target[data-v-430bb431]{position:absolute;top:0;bottom:0}.chart-mini-progress .target span[data-v-430bb431]{border-radius:100px;position:absolute;top:0;left:0;height:4px;width:2px}.chart-mini-progress .target span[data-v-430bb431]:last-child{top:auto;bottom:0}.chart-mini-progress .progress-wrapper[data-v-430bb431]{background-color:#f5f5f5;position:relative}.chart-mini-progress .progress-wrapper .progress[data-v-430bb431]{-webkit-transition:all .4s cubic-bezier(.08,.82,.17,1) 0s;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s;border-radius:1px 0 0 1px;background-color:#1890ff;width:0;height:100%}.rank[data-v-e1fcea82]{padding:0 32px 32px 72px}.rank .list[data-v-e1fcea82]{margin:25px 0 0;padding:0;list-style:none}.rank .list li[data-v-e1fcea82]{margin-top:16px}.rank .list li span[data-v-e1fcea82]{color:rgba(0,0,0,.65);font-size:14px;line-height:22px}.rank .list li span[data-v-e1fcea82]:first-child{background-color:#f5f5f5;border-radius:20px;display:inline-block;font-size:12px;font-weight:600;margin-right:24px;height:20px;line-height:20px;width:20px;text-align:center}.rank .list li span.active[data-v-e1fcea82]{background-color:#314659;color:#fff}.rank .list li span[data-v-e1fcea82]:last-child{float:right}.mobile .rank[data-v-e1fcea82]{padding:0 32px 32px 32px}.ant-pro-avatar-list{display:inline-block}.ant-pro-avatar-list ul{list-style:none;display:inline-block;padding:0;margin:0 0 0 8px;font-size:0}.ant-pro-avatar-list-item{display:inline-block;font-size:14px;margin-left:-8px;width:32px;height:32px}.ant-pro-avatar-list-item :global .ant-avatar{border:1px solid #fff;cursor:pointer}.ant-pro-avatar-list-item.large{width:40px;height:40px}.ant-pro-avatar-list-item.small{width:24px;height:24px}.ant-pro-avatar-list-item.mini{width:20px;height:20px}.ant-pro-avatar-list-item.mini :global .ant-avatar{width:20px;height:20px;line-height:20px}.ant-pro-avatar-list-item.mini :global .ant-avatar .ant-avatar-string{font-size:12px;line-height:18px}.ant-pro-footer-toolbar{position:fixed;width:100%;bottom:0;right:0;height:56px;line-height:56px;-webkit-box-shadow:0 -1px 2px rgba(0,0,0,.03);box-shadow:0 -1px 2px rgba(0,0,0,.03);background:#fff;border-top:1px solid #e8e8e8;padding:0 24px;z-index:9}.ant-pro-footer-toolbar:after{content:"";display:block;clear:both}.description-list .title[data-v-745c64a4]{color:rgba(0,0,0,.85);font-size:14px;font-weight:500;margin-bottom:16px}.description-list[data-v-745c64a4] .term{color:rgba(0,0,0,.85);display:table-cell;line-height:20px;margin-right:8px;padding-bottom:16px;white-space:nowrap}.description-list[data-v-745c64a4] .term:not(:empty):after{content:":";margin:0 8px 0 2px;position:relative;top:-.5px}.description-list[data-v-745c64a4] .content{color:rgba(0,0,0,.65);display:table-cell;min-height:22px;line-height:22px;padding-bottom:16px;width:100%}.description-list[data-v-745c64a4] .content:empty{content:" ";height:38px;padding-bottom:16px}.description-list.small .title[data-v-745c64a4]{font-size:14px;color:rgba(0,0,0,.65);font-weight:400;margin-bottom:12px}.description-list.small .content[data-v-745c64a4],.description-list.small[data-v-745c64a4] .term{padding-bottom:8px}.description-list.large .content[data-v-745c64a4],.description-list.large[data-v-745c64a4] .term{padding-bottom:16px}.description-list.large .title[data-v-745c64a4]{font-size:16px}.description-list.vertical .term[data-v-745c64a4]{padding-bottom:8px}.description-list.vertical .content[data-v-745c64a4],.description-list.vertical[data-v-745c64a4] .term{display:block}body[data-v-9f28f096],html[data-v-9f28f096]{width:100%;height:100%}input[data-v-9f28f096]::-ms-clear,input[data-v-9f28f096]::-ms-reveal{display:none}[data-v-9f28f096],[data-v-9f28f096]:after,[data-v-9f28f096]:before{-webkit-box-sizing:border-box;box-sizing:border-box}html[data-v-9f28f096]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}article[data-v-9f28f096],aside[data-v-9f28f096],dialog[data-v-9f28f096],figcaption[data-v-9f28f096],figure[data-v-9f28f096],footer[data-v-9f28f096],header[data-v-9f28f096],hgroup[data-v-9f28f096],main[data-v-9f28f096],nav[data-v-9f28f096],section[data-v-9f28f096]{display:block}body[data-v-9f28f096]{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"][data-v-9f28f096]:focus{outline:none!important}hr[data-v-9f28f096]{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1[data-v-9f28f096],h2[data-v-9f28f096],h3[data-v-9f28f096],h4[data-v-9f28f096],h5[data-v-9f28f096],h6[data-v-9f28f096]{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p[data-v-9f28f096]{margin-top:0;margin-bottom:1em}abbr[data-original-title][data-v-9f28f096],abbr[title][data-v-9f28f096]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address[data-v-9f28f096]{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number][data-v-9f28f096],input[type=password][data-v-9f28f096],input[type=text][data-v-9f28f096],textarea[data-v-9f28f096]{-webkit-appearance:none}dl[data-v-9f28f096],ol[data-v-9f28f096],ul[data-v-9f28f096]{margin-top:0;margin-bottom:1em}ol ol[data-v-9f28f096],ol ul[data-v-9f28f096],ul ol[data-v-9f28f096],ul ul[data-v-9f28f096]{margin-bottom:0}dt[data-v-9f28f096]{font-weight:500}dd[data-v-9f28f096]{margin-bottom:.5em;margin-left:0}blockquote[data-v-9f28f096]{margin:0 0 1em}dfn[data-v-9f28f096]{font-style:italic}b[data-v-9f28f096],strong[data-v-9f28f096]{font-weight:bolder}small[data-v-9f28f096]{font-size:80%}sub[data-v-9f28f096],sup[data-v-9f28f096]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[data-v-9f28f096]{bottom:-.25em}sup[data-v-9f28f096]{top:-.5em}a[data-v-9f28f096]{color:#2f54eb;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a[data-v-9f28f096]:hover{color:#597ef7}a[data-v-9f28f096]:active{color:#1d39c4}a[data-v-9f28f096]:active,a[data-v-9f28f096]:hover{text-decoration:none;outline:0}a[disabled][data-v-9f28f096]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code[data-v-9f28f096],kbd[data-v-9f28f096],pre[data-v-9f28f096],samp[data-v-9f28f096]{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre[data-v-9f28f096]{margin-top:0;margin-bottom:1em;overflow:auto}figure[data-v-9f28f096]{margin:0 0 1em}img[data-v-9f28f096]{vertical-align:middle;border-style:none}svg[data-v-9f28f096]:not(:root){overflow:hidden}[role=button][data-v-9f28f096],a[data-v-9f28f096],area[data-v-9f28f096],button[data-v-9f28f096],input[data-v-9f28f096]:not([type=range]),label[data-v-9f28f096],select[data-v-9f28f096],summary[data-v-9f28f096],textarea[data-v-9f28f096]{-ms-touch-action:manipulation;touch-action:manipulation}table[data-v-9f28f096]{border-collapse:collapse}caption[data-v-9f28f096]{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th[data-v-9f28f096]{text-align:inherit}button[data-v-9f28f096],input[data-v-9f28f096],optgroup[data-v-9f28f096],select[data-v-9f28f096],textarea[data-v-9f28f096]{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button[data-v-9f28f096],input[data-v-9f28f096]{overflow:visible}button[data-v-9f28f096],select[data-v-9f28f096]{text-transform:none}[type=reset][data-v-9f28f096],[type=submit][data-v-9f28f096],button[data-v-9f28f096],html [type=button][data-v-9f28f096]{-webkit-appearance:button}[type=button][data-v-9f28f096]::-moz-focus-inner,[type=reset][data-v-9f28f096]::-moz-focus-inner,[type=submit][data-v-9f28f096]::-moz-focus-inner,button[data-v-9f28f096]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][data-v-9f28f096],input[type=radio][data-v-9f28f096]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date][data-v-9f28f096],input[type=datetime-local][data-v-9f28f096],input[type=month][data-v-9f28f096],input[type=time][data-v-9f28f096]{-webkit-appearance:listbox}textarea[data-v-9f28f096]{overflow:auto;resize:vertical}fieldset[data-v-9f28f096]{min-width:0;margin:0;padding:0;border:0}legend[data-v-9f28f096]{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress[data-v-9f28f096]{vertical-align:baseline}[type=number][data-v-9f28f096]::-webkit-inner-spin-button,[type=number][data-v-9f28f096]::-webkit-outer-spin-button{height:auto}[type=search][data-v-9f28f096]{outline-offset:-2px;-webkit-appearance:none}[type=search][data-v-9f28f096]::-webkit-search-cancel-button,[type=search][data-v-9f28f096]::-webkit-search-decoration{-webkit-appearance:none}[data-v-9f28f096]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[data-v-9f28f096]{display:inline-block}summary[data-v-9f28f096]{display:list-item}template[data-v-9f28f096]{display:none}[hidden][data-v-9f28f096]{display:none!important}mark[data-v-9f28f096]{padding:.2em;background-color:#feffe6}[data-v-9f28f096]::-moz-selection{color:#fff;background:#2f54eb}[data-v-9f28f096]::selection{color:#fff;background:#2f54eb}.clearfix[data-v-9f28f096]{zoom:1}.clearfix[data-v-9f28f096]:after,.clearfix[data-v-9f28f096]:before{display:table;content:""}.clearfix[data-v-9f28f096]:after{clear:both}.anticon[data-v-9f28f096]{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>[data-v-9f28f096]{line-height:1}.anticon svg[data-v-9f28f096]{display:inline-block}.anticon[data-v-9f28f096]:before{display:none}.anticon .anticon-icon[data-v-9f28f096]{display:block}.anticon[tabindex][data-v-9f28f096]{cursor:pointer}.anticon-spin[data-v-9f28f096],.anticon-spin[data-v-9f28f096]:before{display:inline-block;-webkit-animation:loadingCircle-9f28f096 1s linear infinite;animation:loadingCircle-9f28f096 1s linear infinite}.fade-appear[data-v-9f28f096],.fade-enter[data-v-9f28f096],.fade-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active[data-v-9f28f096],.fade-enter.fade-enter-active[data-v-9f28f096]{-webkit-animation-name:antFadeIn-9f28f096;animation-name:antFadeIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active[data-v-9f28f096]{-webkit-animation-name:antFadeOut-9f28f096;animation-name:antFadeOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear[data-v-9f28f096],.fade-enter[data-v-9f28f096]{opacity:0}.fade-appear[data-v-9f28f096],.fade-enter[data-v-9f28f096],.fade-leave[data-v-9f28f096]{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn-9f28f096{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn-9f28f096{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut-9f28f096{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut-9f28f096{0%{opacity:1}to{opacity:0}}.move-up-appear[data-v-9f28f096],.move-up-enter[data-v-9f28f096],.move-up-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active[data-v-9f28f096],.move-up-enter.move-up-enter-active[data-v-9f28f096]{-webkit-animation-name:antMoveUpIn-9f28f096;animation-name:antMoveUpIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active[data-v-9f28f096]{-webkit-animation-name:antMoveUpOut-9f28f096;animation-name:antMoveUpOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear[data-v-9f28f096],.move-up-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear[data-v-9f28f096],.move-down-enter[data-v-9f28f096],.move-down-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active[data-v-9f28f096],.move-down-enter.move-down-enter-active[data-v-9f28f096]{-webkit-animation-name:antMoveDownIn-9f28f096;animation-name:antMoveDownIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active[data-v-9f28f096]{-webkit-animation-name:antMoveDownOut-9f28f096;animation-name:antMoveDownOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear[data-v-9f28f096],.move-down-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear[data-v-9f28f096],.move-left-enter[data-v-9f28f096],.move-left-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active[data-v-9f28f096],.move-left-enter.move-left-enter-active[data-v-9f28f096]{-webkit-animation-name:antMoveLeftIn-9f28f096;animation-name:antMoveLeftIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active[data-v-9f28f096]{-webkit-animation-name:antMoveLeftOut-9f28f096;animation-name:antMoveLeftOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear[data-v-9f28f096],.move-left-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear[data-v-9f28f096],.move-right-enter[data-v-9f28f096],.move-right-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active[data-v-9f28f096],.move-right-enter.move-right-enter-active[data-v-9f28f096]{-webkit-animation-name:antMoveRightIn-9f28f096;animation-name:antMoveRightIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active[data-v-9f28f096]{-webkit-animation-name:antMoveRightOut-9f28f096;animation-name:antMoveRightOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear[data-v-9f28f096],.move-right-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn-9f28f096{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn-9f28f096{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut-9f28f096{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut-9f28f096{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn-9f28f096{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn-9f28f096{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut-9f28f096{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut-9f28f096{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn-9f28f096{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn-9f28f096{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut-9f28f096{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut-9f28f096{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn-9f28f096{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn-9f28f096{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut-9f28f096{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut-9f28f096{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle-9f28f096{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle-9f28f096{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true][data-v-9f28f096],[ant-click-animating=true][data-v-9f28f096]{position:relative}html[data-v-9f28f096]{--antd-wave-shadow-color:#2f54eb}.ant-click-animating-node[data-v-9f28f096],[ant-click-animating-without-extra-node=true][data-v-9f28f096]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #2f54eb;box-shadow:0 0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect-9f28f096 2s cubic-bezier(.08,.82,.17,1),waveEffect-9f28f096 .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect-9f28f096 2s cubic-bezier(.08,.82,.17,1),waveEffect-9f28f096 .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect-9f28f096{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect-9f28f096{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect-9f28f096{to{opacity:0}}@keyframes fadeEffect-9f28f096{to{opacity:0}}.slide-up-appear[data-v-9f28f096],.slide-up-enter[data-v-9f28f096],.slide-up-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active[data-v-9f28f096],.slide-up-enter.slide-up-enter-active[data-v-9f28f096]{-webkit-animation-name:antSlideUpIn-9f28f096;animation-name:antSlideUpIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active[data-v-9f28f096]{-webkit-animation-name:antSlideUpOut-9f28f096;animation-name:antSlideUpOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear[data-v-9f28f096],.slide-up-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear[data-v-9f28f096],.slide-down-enter[data-v-9f28f096],.slide-down-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active[data-v-9f28f096],.slide-down-enter.slide-down-enter-active[data-v-9f28f096]{-webkit-animation-name:antSlideDownIn-9f28f096;animation-name:antSlideDownIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active[data-v-9f28f096]{-webkit-animation-name:antSlideDownOut-9f28f096;animation-name:antSlideDownOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear[data-v-9f28f096],.slide-down-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear[data-v-9f28f096],.slide-left-enter[data-v-9f28f096],.slide-left-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active[data-v-9f28f096],.slide-left-enter.slide-left-enter-active[data-v-9f28f096]{-webkit-animation-name:antSlideLeftIn-9f28f096;animation-name:antSlideLeftIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active[data-v-9f28f096]{-webkit-animation-name:antSlideLeftOut-9f28f096;animation-name:antSlideLeftOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear[data-v-9f28f096],.slide-left-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear[data-v-9f28f096],.slide-right-enter[data-v-9f28f096],.slide-right-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active[data-v-9f28f096],.slide-right-enter.slide-right-enter-active[data-v-9f28f096]{-webkit-animation-name:antSlideRightIn-9f28f096;animation-name:antSlideRightIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active[data-v-9f28f096]{-webkit-animation-name:antSlideRightOut-9f28f096;animation-name:antSlideRightOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear[data-v-9f28f096],.slide-right-enter[data-v-9f28f096]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn-9f28f096{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn-9f28f096{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut-9f28f096{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut-9f28f096{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn-9f28f096{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn-9f28f096{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut-9f28f096{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut-9f28f096{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn-9f28f096{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn-9f28f096{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut-9f28f096{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut-9f28f096{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn-9f28f096{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn-9f28f096{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut-9f28f096{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut-9f28f096{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear[data-v-9f28f096],.swing-enter[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active[data-v-9f28f096],.swing-enter.swing-enter-active[data-v-9f28f096]{-webkit-animation-name:antSwingIn-9f28f096;animation-name:antSwingIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn-9f28f096{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn-9f28f096{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear[data-v-9f28f096],.zoom-enter[data-v-9f28f096],.zoom-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active[data-v-9f28f096],.zoom-enter.zoom-enter-active[data-v-9f28f096]{-webkit-animation-name:antZoomIn-9f28f096;animation-name:antZoomIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active[data-v-9f28f096]{-webkit-animation-name:antZoomOut-9f28f096;animation-name:antZoomOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear[data-v-9f28f096],.zoom-enter[data-v-9f28f096]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear[data-v-9f28f096],.zoom-big-enter[data-v-9f28f096],.zoom-big-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active[data-v-9f28f096],.zoom-big-enter.zoom-big-enter-active[data-v-9f28f096]{-webkit-animation-name:antZoomBigIn-9f28f096;animation-name:antZoomBigIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active[data-v-9f28f096]{-webkit-animation-name:antZoomBigOut-9f28f096;animation-name:antZoomBigOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear[data-v-9f28f096],.zoom-big-enter[data-v-9f28f096]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear[data-v-9f28f096],.zoom-big-fast-enter[data-v-9f28f096],.zoom-big-fast-leave[data-v-9f28f096]{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active[data-v-9f28f096],.zoom-big-fast-enter.zoom-big-fast-enter-active[data-v-9f28f096]{-webkit-animation-name:antZoomBigIn-9f28f096;animation-name:antZoomBigIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active[data-v-9f28f096]{-webkit-animation-name:antZoomBigOut-9f28f096;animation-name:antZoomBigOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear[data-v-9f28f096],.zoom-big-fast-enter[data-v-9f28f096]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear[data-v-9f28f096],.zoom-up-enter[data-v-9f28f096],.zoom-up-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active[data-v-9f28f096],.zoom-up-enter.zoom-up-enter-active[data-v-9f28f096]{-webkit-animation-name:antZoomUpIn-9f28f096;animation-name:antZoomUpIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active[data-v-9f28f096]{-webkit-animation-name:antZoomUpOut-9f28f096;animation-name:antZoomUpOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear[data-v-9f28f096],.zoom-up-enter[data-v-9f28f096]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear[data-v-9f28f096],.zoom-down-enter[data-v-9f28f096],.zoom-down-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active[data-v-9f28f096],.zoom-down-enter.zoom-down-enter-active[data-v-9f28f096]{-webkit-animation-name:antZoomDownIn-9f28f096;animation-name:antZoomDownIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active[data-v-9f28f096]{-webkit-animation-name:antZoomDownOut-9f28f096;animation-name:antZoomDownOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear[data-v-9f28f096],.zoom-down-enter[data-v-9f28f096]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear[data-v-9f28f096],.zoom-left-enter[data-v-9f28f096],.zoom-left-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active[data-v-9f28f096],.zoom-left-enter.zoom-left-enter-active[data-v-9f28f096]{-webkit-animation-name:antZoomLeftIn-9f28f096;animation-name:antZoomLeftIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active[data-v-9f28f096]{-webkit-animation-name:antZoomLeftOut-9f28f096;animation-name:antZoomLeftOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear[data-v-9f28f096],.zoom-left-enter[data-v-9f28f096]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear[data-v-9f28f096],.zoom-right-enter[data-v-9f28f096],.zoom-right-leave[data-v-9f28f096]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active[data-v-9f28f096],.zoom-right-enter.zoom-right-enter-active[data-v-9f28f096]{-webkit-animation-name:antZoomRightIn-9f28f096;animation-name:antZoomRightIn-9f28f096;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active[data-v-9f28f096]{-webkit-animation-name:antZoomRightOut-9f28f096;animation-name:antZoomRightOut-9f28f096;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear[data-v-9f28f096],.zoom-right-enter[data-v-9f28f096]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave[data-v-9f28f096]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn-9f28f096{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn-9f28f096{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn-9f28f096{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut-9f28f096{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy[data-v-9f28f096]{overflow:hidden}.ant-motion-collapse-legacy-active[data-v-9f28f096],.ant-motion-collapse[data-v-9f28f096]{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse[data-v-9f28f096]{overflow:hidden}.ant-pro-trend[data-v-9f28f096]{display:inline-block;font-size:14px;line-height:22px}.ant-pro-trend .down[data-v-9f28f096],.ant-pro-trend .up[data-v-9f28f096]{margin-left:4px;position:relative;top:1px}.ant-pro-trend .down i[data-v-9f28f096],.ant-pro-trend .up i[data-v-9f28f096]{font-size:12px;-webkit-transform:scale(.83);transform:scale(.83)}.ant-pro-trend .item-text[data-v-9f28f096]{display:inline-block;margin-left:8px;color:rgba(0,0,0,.85)}.ant-pro-trend .up[data-v-9f28f096]{color:#f5222d}.ant-pro-trend .down[data-v-9f28f096]{color:#52c41a;top:-1px}.ant-pro-trend.reverse-color .up[data-v-9f28f096]{color:#52c41a}.ant-pro-trend.reverse-color .down[data-v-9f28f096]{color:#f5222d}.table-wrapper{background:#fff}.s-table-tool{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:16px}.s-table-tool .s-table-tool-left{-webkit-box-flex:1;-ms-flex:1;flex:1}.s-table-tool .s-table-tool-right{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.s-table-tool .s-table-tool-right .s-tool-item{font-size:16px;margin-left:16px;cursor:pointer}.s-tool-column-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:4px 16px 4px 4px}.s-tool-column-item .ant-checkbox-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1}.s-tool-column-item .s-tool-column-handle{opacity:.8;cursor:move}.s-tool-column-item .s-tool-column-handle .anticon-more{font-size:12px;margin-top:2px}.s-tool-column-item .s-tool-column-handle .anticon-more+.anticon-more{margin:2px 4px 0 -8px}.s-tool-column-header{padding:5px 16px 10px 24px;min-width:180px}.s-tool-column .ant-divider{margin:0}.s-tool-column .ant-checkbox-group{padding:4px 0;display:block}.result[data-v-4aa70533]{text-align:center;width:72%;margin:0 auto;padding:24px 0 8px}.result .icon[data-v-4aa70533]{font-size:72px;line-height:72px;margin-bottom:24px}.result .success[data-v-4aa70533]{color:#52c41a}.result .error[data-v-4aa70533]{color:red}.result .title[data-v-4aa70533]{font-size:24px;color:rgba(0,0,0,.85);font-weight:500;line-height:32px;margin-bottom:16px}.result .description[data-v-4aa70533]{font-size:14px;line-height:22px;color:rgba(0,0,0,.45);margin-bottom:24px}.result .extra[data-v-4aa70533]{background:#fafafa;padding:24px 40px;border-radius:2px;text-align:left}.result .action[data-v-4aa70533]{margin-top:32px}.mobile .result[data-v-4aa70533]{width:100%;margin:0 auto;padding:unset}body[data-v-74e4dc71],html[data-v-74e4dc71]{width:100%;height:100%}input[data-v-74e4dc71]::-ms-clear,input[data-v-74e4dc71]::-ms-reveal{display:none}[data-v-74e4dc71],[data-v-74e4dc71]:after,[data-v-74e4dc71]:before{-webkit-box-sizing:border-box;box-sizing:border-box}html[data-v-74e4dc71]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}article[data-v-74e4dc71],aside[data-v-74e4dc71],dialog[data-v-74e4dc71],figcaption[data-v-74e4dc71],figure[data-v-74e4dc71],footer[data-v-74e4dc71],header[data-v-74e4dc71],hgroup[data-v-74e4dc71],main[data-v-74e4dc71],nav[data-v-74e4dc71],section[data-v-74e4dc71]{display:block}body[data-v-74e4dc71]{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"][data-v-74e4dc71]:focus{outline:none!important}hr[data-v-74e4dc71]{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1[data-v-74e4dc71],h2[data-v-74e4dc71],h3[data-v-74e4dc71],h4[data-v-74e4dc71],h5[data-v-74e4dc71],h6[data-v-74e4dc71]{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p[data-v-74e4dc71]{margin-top:0;margin-bottom:1em}abbr[data-original-title][data-v-74e4dc71],abbr[title][data-v-74e4dc71]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address[data-v-74e4dc71]{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number][data-v-74e4dc71],input[type=password][data-v-74e4dc71],input[type=text][data-v-74e4dc71],textarea[data-v-74e4dc71]{-webkit-appearance:none}dl[data-v-74e4dc71],ol[data-v-74e4dc71],ul[data-v-74e4dc71]{margin-top:0;margin-bottom:1em}ol ol[data-v-74e4dc71],ol ul[data-v-74e4dc71],ul ol[data-v-74e4dc71],ul ul[data-v-74e4dc71]{margin-bottom:0}dt[data-v-74e4dc71]{font-weight:500}dd[data-v-74e4dc71]{margin-bottom:.5em;margin-left:0}blockquote[data-v-74e4dc71]{margin:0 0 1em}dfn[data-v-74e4dc71]{font-style:italic}b[data-v-74e4dc71],strong[data-v-74e4dc71]{font-weight:bolder}small[data-v-74e4dc71]{font-size:80%}sub[data-v-74e4dc71],sup[data-v-74e4dc71]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[data-v-74e4dc71]{bottom:-.25em}sup[data-v-74e4dc71]{top:-.5em}a[data-v-74e4dc71]{color:#2f54eb;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a[data-v-74e4dc71]:hover{color:#597ef7}a[data-v-74e4dc71]:active{color:#1d39c4}a[data-v-74e4dc71]:active,a[data-v-74e4dc71]:hover{text-decoration:none;outline:0}a[disabled][data-v-74e4dc71]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code[data-v-74e4dc71],kbd[data-v-74e4dc71],pre[data-v-74e4dc71],samp[data-v-74e4dc71]{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre[data-v-74e4dc71]{margin-top:0;margin-bottom:1em;overflow:auto}figure[data-v-74e4dc71]{margin:0 0 1em}img[data-v-74e4dc71]{vertical-align:middle;border-style:none}svg[data-v-74e4dc71]:not(:root){overflow:hidden}[role=button][data-v-74e4dc71],a[data-v-74e4dc71],area[data-v-74e4dc71],button[data-v-74e4dc71],input[data-v-74e4dc71]:not([type=range]),label[data-v-74e4dc71],select[data-v-74e4dc71],summary[data-v-74e4dc71],textarea[data-v-74e4dc71]{-ms-touch-action:manipulation;touch-action:manipulation}table[data-v-74e4dc71]{border-collapse:collapse}caption[data-v-74e4dc71]{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th[data-v-74e4dc71]{text-align:inherit}button[data-v-74e4dc71],input[data-v-74e4dc71],optgroup[data-v-74e4dc71],select[data-v-74e4dc71],textarea[data-v-74e4dc71]{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button[data-v-74e4dc71],input[data-v-74e4dc71]{overflow:visible}button[data-v-74e4dc71],select[data-v-74e4dc71]{text-transform:none}[type=reset][data-v-74e4dc71],[type=submit][data-v-74e4dc71],button[data-v-74e4dc71],html [type=button][data-v-74e4dc71]{-webkit-appearance:button}[type=button][data-v-74e4dc71]::-moz-focus-inner,[type=reset][data-v-74e4dc71]::-moz-focus-inner,[type=submit][data-v-74e4dc71]::-moz-focus-inner,button[data-v-74e4dc71]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][data-v-74e4dc71],input[type=radio][data-v-74e4dc71]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date][data-v-74e4dc71],input[type=datetime-local][data-v-74e4dc71],input[type=month][data-v-74e4dc71],input[type=time][data-v-74e4dc71]{-webkit-appearance:listbox}textarea[data-v-74e4dc71]{overflow:auto;resize:vertical}fieldset[data-v-74e4dc71]{min-width:0;margin:0;padding:0;border:0}legend[data-v-74e4dc71]{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress[data-v-74e4dc71]{vertical-align:baseline}[type=number][data-v-74e4dc71]::-webkit-inner-spin-button,[type=number][data-v-74e4dc71]::-webkit-outer-spin-button{height:auto}[type=search][data-v-74e4dc71]{outline-offset:-2px;-webkit-appearance:none}[type=search][data-v-74e4dc71]::-webkit-search-cancel-button,[type=search][data-v-74e4dc71]::-webkit-search-decoration{-webkit-appearance:none}[data-v-74e4dc71]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[data-v-74e4dc71]{display:inline-block}summary[data-v-74e4dc71]{display:list-item}template[data-v-74e4dc71]{display:none}[hidden][data-v-74e4dc71]{display:none!important}mark[data-v-74e4dc71]{padding:.2em;background-color:#feffe6}[data-v-74e4dc71]::-moz-selection{color:#fff;background:#2f54eb}[data-v-74e4dc71]::selection{color:#fff;background:#2f54eb}.clearfix[data-v-74e4dc71]{zoom:1}.clearfix[data-v-74e4dc71]:after,.clearfix[data-v-74e4dc71]:before{display:table;content:""}.clearfix[data-v-74e4dc71]:after{clear:both}.anticon[data-v-74e4dc71]{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>[data-v-74e4dc71]{line-height:1}.anticon svg[data-v-74e4dc71]{display:inline-block}.anticon[data-v-74e4dc71]:before{display:none}.anticon .anticon-icon[data-v-74e4dc71]{display:block}.anticon[tabindex][data-v-74e4dc71]{cursor:pointer}.anticon-spin[data-v-74e4dc71],.anticon-spin[data-v-74e4dc71]:before{display:inline-block;-webkit-animation:loadingCircle-74e4dc71 1s linear infinite;animation:loadingCircle-74e4dc71 1s linear infinite}.fade-appear[data-v-74e4dc71],.fade-enter[data-v-74e4dc71],.fade-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active[data-v-74e4dc71],.fade-enter.fade-enter-active[data-v-74e4dc71]{-webkit-animation-name:antFadeIn-74e4dc71;animation-name:antFadeIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active[data-v-74e4dc71]{-webkit-animation-name:antFadeOut-74e4dc71;animation-name:antFadeOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear[data-v-74e4dc71],.fade-enter[data-v-74e4dc71]{opacity:0}.fade-appear[data-v-74e4dc71],.fade-enter[data-v-74e4dc71],.fade-leave[data-v-74e4dc71]{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn-74e4dc71{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn-74e4dc71{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut-74e4dc71{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut-74e4dc71{0%{opacity:1}to{opacity:0}}.move-up-appear[data-v-74e4dc71],.move-up-enter[data-v-74e4dc71],.move-up-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active[data-v-74e4dc71],.move-up-enter.move-up-enter-active[data-v-74e4dc71]{-webkit-animation-name:antMoveUpIn-74e4dc71;animation-name:antMoveUpIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active[data-v-74e4dc71]{-webkit-animation-name:antMoveUpOut-74e4dc71;animation-name:antMoveUpOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear[data-v-74e4dc71],.move-up-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear[data-v-74e4dc71],.move-down-enter[data-v-74e4dc71],.move-down-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active[data-v-74e4dc71],.move-down-enter.move-down-enter-active[data-v-74e4dc71]{-webkit-animation-name:antMoveDownIn-74e4dc71;animation-name:antMoveDownIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active[data-v-74e4dc71]{-webkit-animation-name:antMoveDownOut-74e4dc71;animation-name:antMoveDownOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear[data-v-74e4dc71],.move-down-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear[data-v-74e4dc71],.move-left-enter[data-v-74e4dc71],.move-left-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active[data-v-74e4dc71],.move-left-enter.move-left-enter-active[data-v-74e4dc71]{-webkit-animation-name:antMoveLeftIn-74e4dc71;animation-name:antMoveLeftIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active[data-v-74e4dc71]{-webkit-animation-name:antMoveLeftOut-74e4dc71;animation-name:antMoveLeftOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear[data-v-74e4dc71],.move-left-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear[data-v-74e4dc71],.move-right-enter[data-v-74e4dc71],.move-right-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active[data-v-74e4dc71],.move-right-enter.move-right-enter-active[data-v-74e4dc71]{-webkit-animation-name:antMoveRightIn-74e4dc71;animation-name:antMoveRightIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active[data-v-74e4dc71]{-webkit-animation-name:antMoveRightOut-74e4dc71;animation-name:antMoveRightOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear[data-v-74e4dc71],.move-right-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn-74e4dc71{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn-74e4dc71{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut-74e4dc71{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut-74e4dc71{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn-74e4dc71{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn-74e4dc71{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut-74e4dc71{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut-74e4dc71{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn-74e4dc71{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn-74e4dc71{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut-74e4dc71{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut-74e4dc71{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn-74e4dc71{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn-74e4dc71{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut-74e4dc71{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut-74e4dc71{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle-74e4dc71{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle-74e4dc71{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true][data-v-74e4dc71],[ant-click-animating=true][data-v-74e4dc71]{position:relative}html[data-v-74e4dc71]{--antd-wave-shadow-color:#2f54eb}.ant-click-animating-node[data-v-74e4dc71],[ant-click-animating-without-extra-node=true][data-v-74e4dc71]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #2f54eb;box-shadow:0 0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect-74e4dc71 2s cubic-bezier(.08,.82,.17,1),waveEffect-74e4dc71 .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect-74e4dc71 2s cubic-bezier(.08,.82,.17,1),waveEffect-74e4dc71 .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect-74e4dc71{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect-74e4dc71{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect-74e4dc71{to{opacity:0}}@keyframes fadeEffect-74e4dc71{to{opacity:0}}.slide-up-appear[data-v-74e4dc71],.slide-up-enter[data-v-74e4dc71],.slide-up-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active[data-v-74e4dc71],.slide-up-enter.slide-up-enter-active[data-v-74e4dc71]{-webkit-animation-name:antSlideUpIn-74e4dc71;animation-name:antSlideUpIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active[data-v-74e4dc71]{-webkit-animation-name:antSlideUpOut-74e4dc71;animation-name:antSlideUpOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear[data-v-74e4dc71],.slide-up-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear[data-v-74e4dc71],.slide-down-enter[data-v-74e4dc71],.slide-down-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active[data-v-74e4dc71],.slide-down-enter.slide-down-enter-active[data-v-74e4dc71]{-webkit-animation-name:antSlideDownIn-74e4dc71;animation-name:antSlideDownIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active[data-v-74e4dc71]{-webkit-animation-name:antSlideDownOut-74e4dc71;animation-name:antSlideDownOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear[data-v-74e4dc71],.slide-down-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear[data-v-74e4dc71],.slide-left-enter[data-v-74e4dc71],.slide-left-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active[data-v-74e4dc71],.slide-left-enter.slide-left-enter-active[data-v-74e4dc71]{-webkit-animation-name:antSlideLeftIn-74e4dc71;animation-name:antSlideLeftIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active[data-v-74e4dc71]{-webkit-animation-name:antSlideLeftOut-74e4dc71;animation-name:antSlideLeftOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear[data-v-74e4dc71],.slide-left-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear[data-v-74e4dc71],.slide-right-enter[data-v-74e4dc71],.slide-right-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active[data-v-74e4dc71],.slide-right-enter.slide-right-enter-active[data-v-74e4dc71]{-webkit-animation-name:antSlideRightIn-74e4dc71;animation-name:antSlideRightIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active[data-v-74e4dc71]{-webkit-animation-name:antSlideRightOut-74e4dc71;animation-name:antSlideRightOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear[data-v-74e4dc71],.slide-right-enter[data-v-74e4dc71]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn-74e4dc71{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn-74e4dc71{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut-74e4dc71{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut-74e4dc71{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn-74e4dc71{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn-74e4dc71{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut-74e4dc71{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut-74e4dc71{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn-74e4dc71{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn-74e4dc71{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut-74e4dc71{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut-74e4dc71{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn-74e4dc71{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn-74e4dc71{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut-74e4dc71{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut-74e4dc71{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear[data-v-74e4dc71],.swing-enter[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active[data-v-74e4dc71],.swing-enter.swing-enter-active[data-v-74e4dc71]{-webkit-animation-name:antSwingIn-74e4dc71;animation-name:antSwingIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn-74e4dc71{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn-74e4dc71{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear[data-v-74e4dc71],.zoom-enter[data-v-74e4dc71],.zoom-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active[data-v-74e4dc71],.zoom-enter.zoom-enter-active[data-v-74e4dc71]{-webkit-animation-name:antZoomIn-74e4dc71;animation-name:antZoomIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active[data-v-74e4dc71]{-webkit-animation-name:antZoomOut-74e4dc71;animation-name:antZoomOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear[data-v-74e4dc71],.zoom-enter[data-v-74e4dc71]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear[data-v-74e4dc71],.zoom-big-enter[data-v-74e4dc71],.zoom-big-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active[data-v-74e4dc71],.zoom-big-enter.zoom-big-enter-active[data-v-74e4dc71]{-webkit-animation-name:antZoomBigIn-74e4dc71;animation-name:antZoomBigIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active[data-v-74e4dc71]{-webkit-animation-name:antZoomBigOut-74e4dc71;animation-name:antZoomBigOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear[data-v-74e4dc71],.zoom-big-enter[data-v-74e4dc71]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear[data-v-74e4dc71],.zoom-big-fast-enter[data-v-74e4dc71],.zoom-big-fast-leave[data-v-74e4dc71]{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active[data-v-74e4dc71],.zoom-big-fast-enter.zoom-big-fast-enter-active[data-v-74e4dc71]{-webkit-animation-name:antZoomBigIn-74e4dc71;animation-name:antZoomBigIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active[data-v-74e4dc71]{-webkit-animation-name:antZoomBigOut-74e4dc71;animation-name:antZoomBigOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear[data-v-74e4dc71],.zoom-big-fast-enter[data-v-74e4dc71]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear[data-v-74e4dc71],.zoom-up-enter[data-v-74e4dc71],.zoom-up-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active[data-v-74e4dc71],.zoom-up-enter.zoom-up-enter-active[data-v-74e4dc71]{-webkit-animation-name:antZoomUpIn-74e4dc71;animation-name:antZoomUpIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active[data-v-74e4dc71]{-webkit-animation-name:antZoomUpOut-74e4dc71;animation-name:antZoomUpOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear[data-v-74e4dc71],.zoom-up-enter[data-v-74e4dc71]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear[data-v-74e4dc71],.zoom-down-enter[data-v-74e4dc71],.zoom-down-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active[data-v-74e4dc71],.zoom-down-enter.zoom-down-enter-active[data-v-74e4dc71]{-webkit-animation-name:antZoomDownIn-74e4dc71;animation-name:antZoomDownIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active[data-v-74e4dc71]{-webkit-animation-name:antZoomDownOut-74e4dc71;animation-name:antZoomDownOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear[data-v-74e4dc71],.zoom-down-enter[data-v-74e4dc71]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear[data-v-74e4dc71],.zoom-left-enter[data-v-74e4dc71],.zoom-left-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active[data-v-74e4dc71],.zoom-left-enter.zoom-left-enter-active[data-v-74e4dc71]{-webkit-animation-name:antZoomLeftIn-74e4dc71;animation-name:antZoomLeftIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active[data-v-74e4dc71]{-webkit-animation-name:antZoomLeftOut-74e4dc71;animation-name:antZoomLeftOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear[data-v-74e4dc71],.zoom-left-enter[data-v-74e4dc71]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear[data-v-74e4dc71],.zoom-right-enter[data-v-74e4dc71],.zoom-right-leave[data-v-74e4dc71]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active[data-v-74e4dc71],.zoom-right-enter.zoom-right-enter-active[data-v-74e4dc71]{-webkit-animation-name:antZoomRightIn-74e4dc71;animation-name:antZoomRightIn-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active[data-v-74e4dc71]{-webkit-animation-name:antZoomRightOut-74e4dc71;animation-name:antZoomRightOut-74e4dc71;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear[data-v-74e4dc71],.zoom-right-enter[data-v-74e4dc71]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave[data-v-74e4dc71]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn-74e4dc71{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn-74e4dc71{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn-74e4dc71{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut-74e4dc71{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy[data-v-74e4dc71]{overflow:hidden}.ant-motion-collapse-legacy-active[data-v-74e4dc71],.ant-motion-collapse[data-v-74e4dc71]{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse[data-v-74e4dc71]{overflow:hidden}ul[data-v-74e4dc71]{list-style:none;padding:0;overflow-y:scroll;height:250px}ul li[data-v-74e4dc71]{display:inline-block;padding:12px;margin:3px 0;border-radius:2px}ul li.active[data-v-74e4dc71],ul li[data-v-74e4dc71]:hover{cursor:pointer;color:#fff;background-color:#2f54eb}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#2f54eb;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#597ef7}a:active{color:#1d39c4}a:active,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th{text-align:inherit}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{color:#fff;background:#2f54eb}::selection{color:#fff;background:#2f54eb}.clearfix{zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#2f54eb}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #2f54eb;box-shadow:0 0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear,.swing-enter{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active,.swing-enter.swing-enter-active{-webkit-animation-name:antSwingIn;animation-name:antSwingIn;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.exception{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:80%;min-height:500px}.exception .imgBlock{-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;width:62.5%;padding-right:152px;zoom:1}.exception .imgBlock:after,.exception .imgBlock:before{content:" ";display:table}.exception .imgBlock:after{clear:both;height:0;font-size:0;visibility:hidden}.exception .imgEle{float:right;width:100%;max-width:430px;height:360px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.exception .content{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.exception .content h1{margin-bottom:24px;color:#434e59;font-weight:600;font-size:72px;line-height:72px}.exception .content .desc{margin-bottom:16px;color:rgba(0,0,0,.45);font-size:20px;line-height:28px}.exception .content .actions button:not(:last-child){margin-right:8px}@media screen and (max-width:1200px){.exception .imgBlock{padding-right:88px}}@media screen and (max-width:576px){.exception{display:block;text-align:center}.exception .imgBlock{margin:0 auto 24px;padding-right:0}}@media screen and (max-width:480px){.exception .imgBlock{margin-bottom:-24px;overflow:hidden}}body[data-v-400fd39c],html[data-v-400fd39c]{width:100%;height:100%}input[data-v-400fd39c]::-ms-clear,input[data-v-400fd39c]::-ms-reveal{display:none}[data-v-400fd39c],[data-v-400fd39c]:after,[data-v-400fd39c]:before{-webkit-box-sizing:border-box;box-sizing:border-box}html[data-v-400fd39c]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}article[data-v-400fd39c],aside[data-v-400fd39c],dialog[data-v-400fd39c],figcaption[data-v-400fd39c],figure[data-v-400fd39c],footer[data-v-400fd39c],header[data-v-400fd39c],hgroup[data-v-400fd39c],main[data-v-400fd39c],nav[data-v-400fd39c],section[data-v-400fd39c]{display:block}body[data-v-400fd39c]{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"][data-v-400fd39c]:focus{outline:none!important}hr[data-v-400fd39c]{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1[data-v-400fd39c],h2[data-v-400fd39c],h3[data-v-400fd39c],h4[data-v-400fd39c],h5[data-v-400fd39c],h6[data-v-400fd39c]{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p[data-v-400fd39c]{margin-top:0;margin-bottom:1em}abbr[data-original-title][data-v-400fd39c],abbr[title][data-v-400fd39c]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address[data-v-400fd39c]{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number][data-v-400fd39c],input[type=password][data-v-400fd39c],input[type=text][data-v-400fd39c],textarea[data-v-400fd39c]{-webkit-appearance:none}dl[data-v-400fd39c],ol[data-v-400fd39c],ul[data-v-400fd39c]{margin-top:0;margin-bottom:1em}ol ol[data-v-400fd39c],ol ul[data-v-400fd39c],ul ol[data-v-400fd39c],ul ul[data-v-400fd39c]{margin-bottom:0}dt[data-v-400fd39c]{font-weight:500}dd[data-v-400fd39c]{margin-bottom:.5em;margin-left:0}blockquote[data-v-400fd39c]{margin:0 0 1em}dfn[data-v-400fd39c]{font-style:italic}b[data-v-400fd39c],strong[data-v-400fd39c]{font-weight:bolder}small[data-v-400fd39c]{font-size:80%}sub[data-v-400fd39c],sup[data-v-400fd39c]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[data-v-400fd39c]{bottom:-.25em}sup[data-v-400fd39c]{top:-.5em}a[data-v-400fd39c]{color:#2f54eb;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a[data-v-400fd39c]:hover{color:#597ef7}a[data-v-400fd39c]:active{color:#1d39c4}a[data-v-400fd39c]:active,a[data-v-400fd39c]:hover{text-decoration:none;outline:0}a[disabled][data-v-400fd39c]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code[data-v-400fd39c],kbd[data-v-400fd39c],pre[data-v-400fd39c],samp[data-v-400fd39c]{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre[data-v-400fd39c]{margin-top:0;margin-bottom:1em;overflow:auto}figure[data-v-400fd39c]{margin:0 0 1em}img[data-v-400fd39c]{vertical-align:middle;border-style:none}svg[data-v-400fd39c]:not(:root){overflow:hidden}[role=button][data-v-400fd39c],a[data-v-400fd39c],area[data-v-400fd39c],button[data-v-400fd39c],input[data-v-400fd39c]:not([type=range]),label[data-v-400fd39c],select[data-v-400fd39c],summary[data-v-400fd39c],textarea[data-v-400fd39c]{-ms-touch-action:manipulation;touch-action:manipulation}table[data-v-400fd39c]{border-collapse:collapse}caption[data-v-400fd39c]{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th[data-v-400fd39c]{text-align:inherit}button[data-v-400fd39c],input[data-v-400fd39c],optgroup[data-v-400fd39c],select[data-v-400fd39c],textarea[data-v-400fd39c]{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button[data-v-400fd39c],input[data-v-400fd39c]{overflow:visible}button[data-v-400fd39c],select[data-v-400fd39c]{text-transform:none}[type=reset][data-v-400fd39c],[type=submit][data-v-400fd39c],button[data-v-400fd39c],html [type=button][data-v-400fd39c]{-webkit-appearance:button}[type=button][data-v-400fd39c]::-moz-focus-inner,[type=reset][data-v-400fd39c]::-moz-focus-inner,[type=submit][data-v-400fd39c]::-moz-focus-inner,button[data-v-400fd39c]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][data-v-400fd39c],input[type=radio][data-v-400fd39c]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date][data-v-400fd39c],input[type=datetime-local][data-v-400fd39c],input[type=month][data-v-400fd39c],input[type=time][data-v-400fd39c]{-webkit-appearance:listbox}textarea[data-v-400fd39c]{overflow:auto;resize:vertical}fieldset[data-v-400fd39c]{min-width:0;margin:0;padding:0;border:0}legend[data-v-400fd39c]{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress[data-v-400fd39c]{vertical-align:baseline}[type=number][data-v-400fd39c]::-webkit-inner-spin-button,[type=number][data-v-400fd39c]::-webkit-outer-spin-button{height:auto}[type=search][data-v-400fd39c]{outline-offset:-2px;-webkit-appearance:none}[type=search][data-v-400fd39c]::-webkit-search-cancel-button,[type=search][data-v-400fd39c]::-webkit-search-decoration{-webkit-appearance:none}[data-v-400fd39c]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[data-v-400fd39c]{display:inline-block}summary[data-v-400fd39c]{display:list-item}template[data-v-400fd39c]{display:none}[hidden][data-v-400fd39c]{display:none!important}mark[data-v-400fd39c]{padding:.2em;background-color:#feffe6}[data-v-400fd39c]::-moz-selection{color:#fff;background:#2f54eb}[data-v-400fd39c]::selection{color:#fff;background:#2f54eb}.clearfix[data-v-400fd39c]{zoom:1}.clearfix[data-v-400fd39c]:after,.clearfix[data-v-400fd39c]:before{display:table;content:""}.clearfix[data-v-400fd39c]:after{clear:both}.anticon[data-v-400fd39c]{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>[data-v-400fd39c]{line-height:1}.anticon svg[data-v-400fd39c]{display:inline-block}.anticon[data-v-400fd39c]:before{display:none}.anticon .anticon-icon[data-v-400fd39c]{display:block}.anticon[tabindex][data-v-400fd39c]{cursor:pointer}.anticon-spin[data-v-400fd39c],.anticon-spin[data-v-400fd39c]:before{display:inline-block;-webkit-animation:loadingCircle-400fd39c 1s linear infinite;animation:loadingCircle-400fd39c 1s linear infinite}.fade-appear[data-v-400fd39c],.fade-enter[data-v-400fd39c],.fade-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active[data-v-400fd39c],.fade-enter.fade-enter-active[data-v-400fd39c]{-webkit-animation-name:antFadeIn-400fd39c;animation-name:antFadeIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active[data-v-400fd39c]{-webkit-animation-name:antFadeOut-400fd39c;animation-name:antFadeOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear[data-v-400fd39c],.fade-enter[data-v-400fd39c]{opacity:0}.fade-appear[data-v-400fd39c],.fade-enter[data-v-400fd39c],.fade-leave[data-v-400fd39c]{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn-400fd39c{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn-400fd39c{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut-400fd39c{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut-400fd39c{0%{opacity:1}to{opacity:0}}.move-up-appear[data-v-400fd39c],.move-up-enter[data-v-400fd39c],.move-up-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active[data-v-400fd39c],.move-up-enter.move-up-enter-active[data-v-400fd39c]{-webkit-animation-name:antMoveUpIn-400fd39c;animation-name:antMoveUpIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active[data-v-400fd39c]{-webkit-animation-name:antMoveUpOut-400fd39c;animation-name:antMoveUpOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear[data-v-400fd39c],.move-up-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear[data-v-400fd39c],.move-down-enter[data-v-400fd39c],.move-down-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active[data-v-400fd39c],.move-down-enter.move-down-enter-active[data-v-400fd39c]{-webkit-animation-name:antMoveDownIn-400fd39c;animation-name:antMoveDownIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active[data-v-400fd39c]{-webkit-animation-name:antMoveDownOut-400fd39c;animation-name:antMoveDownOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear[data-v-400fd39c],.move-down-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear[data-v-400fd39c],.move-left-enter[data-v-400fd39c],.move-left-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active[data-v-400fd39c],.move-left-enter.move-left-enter-active[data-v-400fd39c]{-webkit-animation-name:antMoveLeftIn-400fd39c;animation-name:antMoveLeftIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active[data-v-400fd39c]{-webkit-animation-name:antMoveLeftOut-400fd39c;animation-name:antMoveLeftOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear[data-v-400fd39c],.move-left-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear[data-v-400fd39c],.move-right-enter[data-v-400fd39c],.move-right-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active[data-v-400fd39c],.move-right-enter.move-right-enter-active[data-v-400fd39c]{-webkit-animation-name:antMoveRightIn-400fd39c;animation-name:antMoveRightIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active[data-v-400fd39c]{-webkit-animation-name:antMoveRightOut-400fd39c;animation-name:antMoveRightOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear[data-v-400fd39c],.move-right-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn-400fd39c{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn-400fd39c{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut-400fd39c{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut-400fd39c{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn-400fd39c{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn-400fd39c{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut-400fd39c{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut-400fd39c{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn-400fd39c{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn-400fd39c{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut-400fd39c{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut-400fd39c{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn-400fd39c{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn-400fd39c{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut-400fd39c{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut-400fd39c{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle-400fd39c{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle-400fd39c{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true][data-v-400fd39c],[ant-click-animating=true][data-v-400fd39c]{position:relative}html[data-v-400fd39c]{--antd-wave-shadow-color:#2f54eb}.ant-click-animating-node[data-v-400fd39c],[ant-click-animating-without-extra-node=true][data-v-400fd39c]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #2f54eb;box-shadow:0 0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect-400fd39c 2s cubic-bezier(.08,.82,.17,1),waveEffect-400fd39c .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect-400fd39c 2s cubic-bezier(.08,.82,.17,1),waveEffect-400fd39c .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect-400fd39c{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect-400fd39c{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect-400fd39c{to{opacity:0}}@keyframes fadeEffect-400fd39c{to{opacity:0}}.slide-up-appear[data-v-400fd39c],.slide-up-enter[data-v-400fd39c],.slide-up-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active[data-v-400fd39c],.slide-up-enter.slide-up-enter-active[data-v-400fd39c]{-webkit-animation-name:antSlideUpIn-400fd39c;animation-name:antSlideUpIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active[data-v-400fd39c]{-webkit-animation-name:antSlideUpOut-400fd39c;animation-name:antSlideUpOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear[data-v-400fd39c],.slide-up-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear[data-v-400fd39c],.slide-down-enter[data-v-400fd39c],.slide-down-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active[data-v-400fd39c],.slide-down-enter.slide-down-enter-active[data-v-400fd39c]{-webkit-animation-name:antSlideDownIn-400fd39c;animation-name:antSlideDownIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active[data-v-400fd39c]{-webkit-animation-name:antSlideDownOut-400fd39c;animation-name:antSlideDownOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear[data-v-400fd39c],.slide-down-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear[data-v-400fd39c],.slide-left-enter[data-v-400fd39c],.slide-left-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active[data-v-400fd39c],.slide-left-enter.slide-left-enter-active[data-v-400fd39c]{-webkit-animation-name:antSlideLeftIn-400fd39c;animation-name:antSlideLeftIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active[data-v-400fd39c]{-webkit-animation-name:antSlideLeftOut-400fd39c;animation-name:antSlideLeftOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear[data-v-400fd39c],.slide-left-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear[data-v-400fd39c],.slide-right-enter[data-v-400fd39c],.slide-right-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active[data-v-400fd39c],.slide-right-enter.slide-right-enter-active[data-v-400fd39c]{-webkit-animation-name:antSlideRightIn-400fd39c;animation-name:antSlideRightIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active[data-v-400fd39c]{-webkit-animation-name:antSlideRightOut-400fd39c;animation-name:antSlideRightOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear[data-v-400fd39c],.slide-right-enter[data-v-400fd39c]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn-400fd39c{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn-400fd39c{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut-400fd39c{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut-400fd39c{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn-400fd39c{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn-400fd39c{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut-400fd39c{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut-400fd39c{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn-400fd39c{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn-400fd39c{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut-400fd39c{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut-400fd39c{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn-400fd39c{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn-400fd39c{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut-400fd39c{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut-400fd39c{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear[data-v-400fd39c],.swing-enter[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active[data-v-400fd39c],.swing-enter.swing-enter-active[data-v-400fd39c]{-webkit-animation-name:antSwingIn-400fd39c;animation-name:antSwingIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn-400fd39c{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn-400fd39c{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear[data-v-400fd39c],.zoom-enter[data-v-400fd39c],.zoom-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active[data-v-400fd39c],.zoom-enter.zoom-enter-active[data-v-400fd39c]{-webkit-animation-name:antZoomIn-400fd39c;animation-name:antZoomIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active[data-v-400fd39c]{-webkit-animation-name:antZoomOut-400fd39c;animation-name:antZoomOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear[data-v-400fd39c],.zoom-enter[data-v-400fd39c]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear[data-v-400fd39c],.zoom-big-enter[data-v-400fd39c],.zoom-big-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active[data-v-400fd39c],.zoom-big-enter.zoom-big-enter-active[data-v-400fd39c]{-webkit-animation-name:antZoomBigIn-400fd39c;animation-name:antZoomBigIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active[data-v-400fd39c]{-webkit-animation-name:antZoomBigOut-400fd39c;animation-name:antZoomBigOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear[data-v-400fd39c],.zoom-big-enter[data-v-400fd39c]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear[data-v-400fd39c],.zoom-big-fast-enter[data-v-400fd39c],.zoom-big-fast-leave[data-v-400fd39c]{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active[data-v-400fd39c],.zoom-big-fast-enter.zoom-big-fast-enter-active[data-v-400fd39c]{-webkit-animation-name:antZoomBigIn-400fd39c;animation-name:antZoomBigIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active[data-v-400fd39c]{-webkit-animation-name:antZoomBigOut-400fd39c;animation-name:antZoomBigOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear[data-v-400fd39c],.zoom-big-fast-enter[data-v-400fd39c]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear[data-v-400fd39c],.zoom-up-enter[data-v-400fd39c],.zoom-up-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active[data-v-400fd39c],.zoom-up-enter.zoom-up-enter-active[data-v-400fd39c]{-webkit-animation-name:antZoomUpIn-400fd39c;animation-name:antZoomUpIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active[data-v-400fd39c]{-webkit-animation-name:antZoomUpOut-400fd39c;animation-name:antZoomUpOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear[data-v-400fd39c],.zoom-up-enter[data-v-400fd39c]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear[data-v-400fd39c],.zoom-down-enter[data-v-400fd39c],.zoom-down-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active[data-v-400fd39c],.zoom-down-enter.zoom-down-enter-active[data-v-400fd39c]{-webkit-animation-name:antZoomDownIn-400fd39c;animation-name:antZoomDownIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active[data-v-400fd39c]{-webkit-animation-name:antZoomDownOut-400fd39c;animation-name:antZoomDownOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear[data-v-400fd39c],.zoom-down-enter[data-v-400fd39c]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear[data-v-400fd39c],.zoom-left-enter[data-v-400fd39c],.zoom-left-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active[data-v-400fd39c],.zoom-left-enter.zoom-left-enter-active[data-v-400fd39c]{-webkit-animation-name:antZoomLeftIn-400fd39c;animation-name:antZoomLeftIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active[data-v-400fd39c]{-webkit-animation-name:antZoomLeftOut-400fd39c;animation-name:antZoomLeftOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear[data-v-400fd39c],.zoom-left-enter[data-v-400fd39c]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear[data-v-400fd39c],.zoom-right-enter[data-v-400fd39c],.zoom-right-leave[data-v-400fd39c]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active[data-v-400fd39c],.zoom-right-enter.zoom-right-enter-active[data-v-400fd39c]{-webkit-animation-name:antZoomRightIn-400fd39c;animation-name:antZoomRightIn-400fd39c;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active[data-v-400fd39c]{-webkit-animation-name:antZoomRightOut-400fd39c;animation-name:antZoomRightOut-400fd39c;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear[data-v-400fd39c],.zoom-right-enter[data-v-400fd39c]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave[data-v-400fd39c]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn-400fd39c{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn-400fd39c{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn-400fd39c{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut-400fd39c{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy[data-v-400fd39c]{overflow:hidden}.ant-motion-collapse-legacy-active[data-v-400fd39c],.ant-motion-collapse[data-v-400fd39c]{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse[data-v-400fd39c]{overflow:hidden}.antd-pro-components-standard-form-row-index-standardFormRow[data-v-400fd39c]{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:16px;padding-bottom:16px;border-bottom:1px dashed #e8e8e8}.antd-pro-components-standard-form-row-index-standardFormRow[data-v-400fd39c] .ant-form-item{margin-right:24px}.antd-pro-components-standard-form-row-index-standardFormRow[data-v-400fd39c] .ant-form-item-label label{margin-right:0;color:rgba(0,0,0,.65)}.antd-pro-components-standard-form-row-index-standardFormRow .ant-form-item-control[data-v-400fd39c],.antd-pro-components-standard-form-row-index-standardFormRow[data-v-400fd39c] .ant-form-item-label{padding:0;line-height:32px}.antd-pro-components-standard-form-row-index-standardFormRow .antd-pro-components-standard-form-row-index-label[data-v-400fd39c]{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-right:24px;color:rgba(0,0,0,.85);font-size:14px;text-align:right}.antd-pro-components-standard-form-row-index-standardFormRow .antd-pro-components-standard-form-row-index-label>span[data-v-400fd39c]{display:inline-block;height:32px;line-height:32px}.antd-pro-components-standard-form-row-index-standardFormRow .antd-pro-components-standard-form-row-index-label>span[data-v-400fd39c]:after{content:":"}.antd-pro-components-standard-form-row-index-standardFormRow .antd-pro-components-standard-form-row-index-content[data-v-400fd39c]{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0}.antd-pro-components-standard-form-row-index-standardFormRow .antd-pro-components-standard-form-row-index-content[data-v-400fd39c] .ant-form-item:last-child{margin-right:0}.antd-pro-components-standard-form-row-index-standardFormRow.antd-pro-components-standard-form-row-index-standardFormRowLast[data-v-400fd39c]{margin-bottom:0;padding-bottom:0;border:none}.antd-pro-components-standard-form-row-index-standardFormRow.antd-pro-components-standard-form-row-index-standardFormRowBlock[data-v-400fd39c] .ant-form-item,.antd-pro-components-standard-form-row-index-standardFormRow.antd-pro-components-standard-form-row-index-standardFormRowBlock div.ant-form-item-control-wrapper[data-v-400fd39c],.antd-pro-components-standard-form-row-index-standardFormRow.antd-pro-components-standard-form-row-index-standardFormRowGrid[data-v-400fd39c] .ant-form-item,.antd-pro-components-standard-form-row-index-standardFormRow.antd-pro-components-standard-form-row-index-standardFormRowGrid div.ant-form-item-control-wrapper[data-v-400fd39c]{display:block}.antd-pro-components-standard-form-row-index-standardFormRow.antd-pro-components-standard-form-row-index-standardFormRowGrid[data-v-400fd39c] .ant-form-item-label{float:left}body[data-v-0d752822],html[data-v-0d752822]{width:100%;height:100%}input[data-v-0d752822]::-ms-clear,input[data-v-0d752822]::-ms-reveal{display:none}[data-v-0d752822],[data-v-0d752822]:after,[data-v-0d752822]:before{-webkit-box-sizing:border-box;box-sizing:border-box}html[data-v-0d752822]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article[data-v-0d752822],aside[data-v-0d752822],dialog[data-v-0d752822],figcaption[data-v-0d752822],figure[data-v-0d752822],footer[data-v-0d752822],header[data-v-0d752822],hgroup[data-v-0d752822],main[data-v-0d752822],nav[data-v-0d752822],section[data-v-0d752822]{display:block}body[data-v-0d752822]{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"][data-v-0d752822]:focus{outline:none!important}hr[data-v-0d752822]{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1[data-v-0d752822],h2[data-v-0d752822],h3[data-v-0d752822],h4[data-v-0d752822],h5[data-v-0d752822],h6[data-v-0d752822]{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p[data-v-0d752822]{margin-top:0;margin-bottom:1em}abbr[data-original-title][data-v-0d752822],abbr[title][data-v-0d752822]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address[data-v-0d752822]{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number][data-v-0d752822],input[type=password][data-v-0d752822],input[type=text][data-v-0d752822],textarea[data-v-0d752822]{-webkit-appearance:none}dl[data-v-0d752822],ol[data-v-0d752822],ul[data-v-0d752822]{margin-top:0;margin-bottom:1em}ol ol[data-v-0d752822],ol ul[data-v-0d752822],ul ol[data-v-0d752822],ul ul[data-v-0d752822]{margin-bottom:0}dt[data-v-0d752822]{font-weight:500}dd[data-v-0d752822]{margin-bottom:.5em;margin-left:0}blockquote[data-v-0d752822]{margin:0 0 1em}dfn[data-v-0d752822]{font-style:italic}b[data-v-0d752822],strong[data-v-0d752822]{font-weight:bolder}small[data-v-0d752822]{font-size:80%}sub[data-v-0d752822],sup[data-v-0d752822]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[data-v-0d752822]{bottom:-.25em}sup[data-v-0d752822]{top:-.5em}a[data-v-0d752822]{color:#2f54eb;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a[data-v-0d752822]:hover{color:#597ef7}a[data-v-0d752822]:active{color:#1d39c4}a[data-v-0d752822]:active,a[data-v-0d752822]:hover{text-decoration:none;outline:0}a[disabled][data-v-0d752822]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code[data-v-0d752822],kbd[data-v-0d752822],pre[data-v-0d752822],samp[data-v-0d752822]{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre[data-v-0d752822]{margin-top:0;margin-bottom:1em;overflow:auto}figure[data-v-0d752822]{margin:0 0 1em}img[data-v-0d752822]{vertical-align:middle;border-style:none}svg[data-v-0d752822]:not(:root){overflow:hidden}[role=button][data-v-0d752822],a[data-v-0d752822],area[data-v-0d752822],button[data-v-0d752822],input[data-v-0d752822]:not([type=range]),label[data-v-0d752822],select[data-v-0d752822],summary[data-v-0d752822],textarea[data-v-0d752822]{-ms-touch-action:manipulation;touch-action:manipulation}table[data-v-0d752822]{border-collapse:collapse}caption[data-v-0d752822]{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th[data-v-0d752822]{text-align:inherit}button[data-v-0d752822],input[data-v-0d752822],optgroup[data-v-0d752822],select[data-v-0d752822],textarea[data-v-0d752822]{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button[data-v-0d752822],input[data-v-0d752822]{overflow:visible}button[data-v-0d752822],select[data-v-0d752822]{text-transform:none}[type=reset][data-v-0d752822],[type=submit][data-v-0d752822],button[data-v-0d752822],html [type=button][data-v-0d752822]{-webkit-appearance:button}[type=button][data-v-0d752822]::-moz-focus-inner,[type=reset][data-v-0d752822]::-moz-focus-inner,[type=submit][data-v-0d752822]::-moz-focus-inner,button[data-v-0d752822]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][data-v-0d752822],input[type=radio][data-v-0d752822]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date][data-v-0d752822],input[type=datetime-local][data-v-0d752822],input[type=month][data-v-0d752822],input[type=time][data-v-0d752822]{-webkit-appearance:listbox}textarea[data-v-0d752822]{overflow:auto;resize:vertical}fieldset[data-v-0d752822]{min-width:0;margin:0;padding:0;border:0}legend[data-v-0d752822]{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress[data-v-0d752822]{vertical-align:baseline}[type=number][data-v-0d752822]::-webkit-inner-spin-button,[type=number][data-v-0d752822]::-webkit-outer-spin-button{height:auto}[type=search][data-v-0d752822]{outline-offset:-2px;-webkit-appearance:none}[type=search][data-v-0d752822]::-webkit-search-cancel-button,[type=search][data-v-0d752822]::-webkit-search-decoration{-webkit-appearance:none}[data-v-0d752822]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[data-v-0d752822]{display:inline-block}summary[data-v-0d752822]{display:list-item}template[data-v-0d752822]{display:none}[hidden][data-v-0d752822]{display:none!important}mark[data-v-0d752822]{padding:.2em;background-color:#feffe6}[data-v-0d752822]::-moz-selection{color:#fff;background:#2f54eb}[data-v-0d752822]::selection{color:#fff;background:#2f54eb}.clearfix[data-v-0d752822]{zoom:1}.clearfix[data-v-0d752822]:after,.clearfix[data-v-0d752822]:before{display:table;content:""}.clearfix[data-v-0d752822]:after{clear:both}.anticon[data-v-0d752822]{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>[data-v-0d752822]{line-height:1}.anticon svg[data-v-0d752822]{display:inline-block}.anticon[data-v-0d752822]:before{display:none}.anticon .anticon-icon[data-v-0d752822]{display:block}.anticon[tabindex][data-v-0d752822]{cursor:pointer}.anticon-spin[data-v-0d752822],.anticon-spin[data-v-0d752822]:before{display:inline-block;-webkit-animation:loadingCircle-0d752822 1s linear infinite;animation:loadingCircle-0d752822 1s linear infinite}.fade-appear[data-v-0d752822],.fade-enter[data-v-0d752822],.fade-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active[data-v-0d752822],.fade-enter.fade-enter-active[data-v-0d752822]{-webkit-animation-name:antFadeIn-0d752822;animation-name:antFadeIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active[data-v-0d752822]{-webkit-animation-name:antFadeOut-0d752822;animation-name:antFadeOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear[data-v-0d752822],.fade-enter[data-v-0d752822]{opacity:0}.fade-appear[data-v-0d752822],.fade-enter[data-v-0d752822],.fade-leave[data-v-0d752822]{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn-0d752822{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn-0d752822{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut-0d752822{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut-0d752822{0%{opacity:1}to{opacity:0}}.move-up-appear[data-v-0d752822],.move-up-enter[data-v-0d752822],.move-up-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active[data-v-0d752822],.move-up-enter.move-up-enter-active[data-v-0d752822]{-webkit-animation-name:antMoveUpIn-0d752822;animation-name:antMoveUpIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active[data-v-0d752822]{-webkit-animation-name:antMoveUpOut-0d752822;animation-name:antMoveUpOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear[data-v-0d752822],.move-up-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear[data-v-0d752822],.move-down-enter[data-v-0d752822],.move-down-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active[data-v-0d752822],.move-down-enter.move-down-enter-active[data-v-0d752822]{-webkit-animation-name:antMoveDownIn-0d752822;animation-name:antMoveDownIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active[data-v-0d752822]{-webkit-animation-name:antMoveDownOut-0d752822;animation-name:antMoveDownOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear[data-v-0d752822],.move-down-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear[data-v-0d752822],.move-left-enter[data-v-0d752822],.move-left-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active[data-v-0d752822],.move-left-enter.move-left-enter-active[data-v-0d752822]{-webkit-animation-name:antMoveLeftIn-0d752822;animation-name:antMoveLeftIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active[data-v-0d752822]{-webkit-animation-name:antMoveLeftOut-0d752822;animation-name:antMoveLeftOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear[data-v-0d752822],.move-left-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear[data-v-0d752822],.move-right-enter[data-v-0d752822],.move-right-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active[data-v-0d752822],.move-right-enter.move-right-enter-active[data-v-0d752822]{-webkit-animation-name:antMoveRightIn-0d752822;animation-name:antMoveRightIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active[data-v-0d752822]{-webkit-animation-name:antMoveRightOut-0d752822;animation-name:antMoveRightOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear[data-v-0d752822],.move-right-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn-0d752822{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn-0d752822{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut-0d752822{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut-0d752822{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn-0d752822{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn-0d752822{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut-0d752822{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut-0d752822{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn-0d752822{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn-0d752822{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut-0d752822{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut-0d752822{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn-0d752822{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn-0d752822{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut-0d752822{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut-0d752822{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle-0d752822{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle-0d752822{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true][data-v-0d752822],[ant-click-animating=true][data-v-0d752822]{position:relative}html[data-v-0d752822]{--antd-wave-shadow-color:#2f54eb}.ant-click-animating-node[data-v-0d752822],[ant-click-animating-without-extra-node=true][data-v-0d752822]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #2f54eb;box-shadow:0 0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect-0d752822 2s cubic-bezier(.08,.82,.17,1),waveEffect-0d752822 .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect-0d752822 2s cubic-bezier(.08,.82,.17,1),waveEffect-0d752822 .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect-0d752822{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect-0d752822{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect-0d752822{to{opacity:0}}@keyframes fadeEffect-0d752822{to{opacity:0}}.slide-up-appear[data-v-0d752822],.slide-up-enter[data-v-0d752822],.slide-up-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active[data-v-0d752822],.slide-up-enter.slide-up-enter-active[data-v-0d752822]{-webkit-animation-name:antSlideUpIn-0d752822;animation-name:antSlideUpIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active[data-v-0d752822]{-webkit-animation-name:antSlideUpOut-0d752822;animation-name:antSlideUpOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear[data-v-0d752822],.slide-up-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear[data-v-0d752822],.slide-down-enter[data-v-0d752822],.slide-down-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active[data-v-0d752822],.slide-down-enter.slide-down-enter-active[data-v-0d752822]{-webkit-animation-name:antSlideDownIn-0d752822;animation-name:antSlideDownIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active[data-v-0d752822]{-webkit-animation-name:antSlideDownOut-0d752822;animation-name:antSlideDownOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear[data-v-0d752822],.slide-down-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear[data-v-0d752822],.slide-left-enter[data-v-0d752822],.slide-left-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active[data-v-0d752822],.slide-left-enter.slide-left-enter-active[data-v-0d752822]{-webkit-animation-name:antSlideLeftIn-0d752822;animation-name:antSlideLeftIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active[data-v-0d752822]{-webkit-animation-name:antSlideLeftOut-0d752822;animation-name:antSlideLeftOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear[data-v-0d752822],.slide-left-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear[data-v-0d752822],.slide-right-enter[data-v-0d752822],.slide-right-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active[data-v-0d752822],.slide-right-enter.slide-right-enter-active[data-v-0d752822]{-webkit-animation-name:antSlideRightIn-0d752822;animation-name:antSlideRightIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active[data-v-0d752822]{-webkit-animation-name:antSlideRightOut-0d752822;animation-name:antSlideRightOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear[data-v-0d752822],.slide-right-enter[data-v-0d752822]{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn-0d752822{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn-0d752822{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut-0d752822{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut-0d752822{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn-0d752822{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn-0d752822{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut-0d752822{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut-0d752822{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn-0d752822{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn-0d752822{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut-0d752822{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut-0d752822{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn-0d752822{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn-0d752822{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut-0d752822{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut-0d752822{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear[data-v-0d752822],.swing-enter[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active[data-v-0d752822],.swing-enter.swing-enter-active[data-v-0d752822]{-webkit-animation-name:antSwingIn-0d752822;animation-name:antSwingIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn-0d752822{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn-0d752822{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear[data-v-0d752822],.zoom-enter[data-v-0d752822],.zoom-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active[data-v-0d752822],.zoom-enter.zoom-enter-active[data-v-0d752822]{-webkit-animation-name:antZoomIn-0d752822;animation-name:antZoomIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active[data-v-0d752822]{-webkit-animation-name:antZoomOut-0d752822;animation-name:antZoomOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear[data-v-0d752822],.zoom-enter[data-v-0d752822]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear[data-v-0d752822],.zoom-big-enter[data-v-0d752822],.zoom-big-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active[data-v-0d752822],.zoom-big-enter.zoom-big-enter-active[data-v-0d752822]{-webkit-animation-name:antZoomBigIn-0d752822;animation-name:antZoomBigIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active[data-v-0d752822]{-webkit-animation-name:antZoomBigOut-0d752822;animation-name:antZoomBigOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear[data-v-0d752822],.zoom-big-enter[data-v-0d752822]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear[data-v-0d752822],.zoom-big-fast-enter[data-v-0d752822],.zoom-big-fast-leave[data-v-0d752822]{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active[data-v-0d752822],.zoom-big-fast-enter.zoom-big-fast-enter-active[data-v-0d752822]{-webkit-animation-name:antZoomBigIn-0d752822;animation-name:antZoomBigIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active[data-v-0d752822]{-webkit-animation-name:antZoomBigOut-0d752822;animation-name:antZoomBigOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear[data-v-0d752822],.zoom-big-fast-enter[data-v-0d752822]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear[data-v-0d752822],.zoom-up-enter[data-v-0d752822],.zoom-up-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active[data-v-0d752822],.zoom-up-enter.zoom-up-enter-active[data-v-0d752822]{-webkit-animation-name:antZoomUpIn-0d752822;animation-name:antZoomUpIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active[data-v-0d752822]{-webkit-animation-name:antZoomUpOut-0d752822;animation-name:antZoomUpOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear[data-v-0d752822],.zoom-up-enter[data-v-0d752822]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear[data-v-0d752822],.zoom-down-enter[data-v-0d752822],.zoom-down-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active[data-v-0d752822],.zoom-down-enter.zoom-down-enter-active[data-v-0d752822]{-webkit-animation-name:antZoomDownIn-0d752822;animation-name:antZoomDownIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active[data-v-0d752822]{-webkit-animation-name:antZoomDownOut-0d752822;animation-name:antZoomDownOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear[data-v-0d752822],.zoom-down-enter[data-v-0d752822]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear[data-v-0d752822],.zoom-left-enter[data-v-0d752822],.zoom-left-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active[data-v-0d752822],.zoom-left-enter.zoom-left-enter-active[data-v-0d752822]{-webkit-animation-name:antZoomLeftIn-0d752822;animation-name:antZoomLeftIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active[data-v-0d752822]{-webkit-animation-name:antZoomLeftOut-0d752822;animation-name:antZoomLeftOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear[data-v-0d752822],.zoom-left-enter[data-v-0d752822]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear[data-v-0d752822],.zoom-right-enter[data-v-0d752822],.zoom-right-leave[data-v-0d752822]{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active[data-v-0d752822],.zoom-right-enter.zoom-right-enter-active[data-v-0d752822]{-webkit-animation-name:antZoomRightIn-0d752822;animation-name:antZoomRightIn-0d752822;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active[data-v-0d752822]{-webkit-animation-name:antZoomRightOut-0d752822;animation-name:antZoomRightOut-0d752822;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear[data-v-0d752822],.zoom-right-enter[data-v-0d752822]{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave[data-v-0d752822]{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn-0d752822{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn-0d752822{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn-0d752822{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut-0d752822{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy[data-v-0d752822]{overflow:hidden}.ant-motion-collapse-legacy-active[data-v-0d752822],.ant-motion-collapse[data-v-0d752822]{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse[data-v-0d752822]{overflow:hidden}.antd-pro-components-article-list-content-index-listContent .description[data-v-0d752822]{max-width:720px;line-height:22px}.antd-pro-components-article-list-content-index-listContent .extra[data-v-0d752822]{margin-top:16px;color:rgba(0,0,0,.45);line-height:22px}.antd-pro-components-article-list-content-index-listContent .extra[data-v-0d752822] .ant-avatar{position:relative;top:1px;width:20px;height:20px;margin-right:8px;vertical-align:top}.antd-pro-components-article-list-content-index-listContent .extra>em[data-v-0d752822]{margin-left:16px;color:rgba(0,0,0,.25);font-style:normal}@media screen and (max-width:480px){.antd-pro-components-article-list-content-index-listContent .extra>em[data-v-0d752822]{display:block;margin-top:8px;margin-left:0}}.w-e-toolbar{-ms-flex-wrap:wrap;flex-wrap:wrap} \ No newline at end of file diff --git a/admin20250319/dist/css/app.95833cd9.css.gz b/admin20250319/dist/css/app.95833cd9.css.gz new file mode 100644 index 0000000..3432b4c Binary files /dev/null and b/admin20250319/dist/css/app.95833cd9.css.gz differ diff --git a/admin20250319/dist/css/chunk-0c4f7e34.c8738afd.css b/admin20250319/dist/css/chunk-0c4f7e34.c8738afd.css new file mode 100644 index 0000000..c9aa8a8 --- /dev/null +++ b/admin20250319/dist/css/chunk-0c4f7e34.c8738afd.css @@ -0,0 +1 @@ +[data-v-00d5c7eb] .ant-table td{white-space:nowrap}[data-v-00d5c7eb] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-00d5c7eb],[data-v-00d5c7eb] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-00d5c7eb]{margin-bottom:18px}button[data-v-00d5c7eb]{margin-right:8px}.avatar-upload-preview[data-v-51fe0dd0]{position:absolute;top:50%;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);width:200px;height:200px;border-radius:50%;-webkit-box-shadow:0 0 4px #ccc;box-shadow:0 0 4px #ccc;overflow:hidden}.avatar-upload-preview img[data-v-51fe0dd0]{width:100%;height:100%}.avatar-upload-wrapper[data-v-0ef84846]{height:200px;width:100%}.ant-upload-preview[data-v-0ef84846]{position:relative;margin:0 auto;width:100%;max-width:180px;height:180px;border-radius:50%;-webkit-box-shadow:0 0 4px #ccc;box-shadow:0 0 4px #ccc}.ant-upload-preview .upload-icon[data-v-0ef84846]{position:absolute;top:0;right:10px;font-size:1.4rem;padding:.5rem;background:rgba(222,221,221,.7);border-radius:50%;border:1px solid rgba(0,0,0,.2)}.ant-upload-preview .mask[data-v-0ef84846]{opacity:0;position:absolute;background:rgba(0,0,0,.4);cursor:pointer;-webkit-transition:opacity .4s;transition:opacity .4s}.ant-upload-preview .mask[data-v-0ef84846]:hover{opacity:1}.ant-upload-preview .mask i[data-v-0ef84846]{font-size:2rem;position:absolute;top:50%;left:50%;margin-left:-1rem;margin-top:-1rem;color:#d6d6d6}.ant-upload-preview .mask[data-v-0ef84846],.ant-upload-preview img[data-v-0ef84846]{width:100%;max-width:180px;height:100%;border-radius:50%;overflow:hidden}[data-v-0fbfdccf] .ant-table td{white-space:nowrap}[data-v-0fbfdccf] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-0fbfdccf],[data-v-0fbfdccf] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-0fbfdccf]{margin-bottom:18px}button[data-v-0fbfdccf]{margin-right:8px}:host,:root{--w-e-textarea-bg-color:#fff;--w-e-textarea-color:#333;--w-e-textarea-border-color:#ccc;--w-e-textarea-slight-border-color:#e8e8e8;--w-e-textarea-slight-color:#d4d4d4;--w-e-textarea-slight-bg-color:#f5f2f0;--w-e-textarea-selected-border-color:#b4d5ff;--w-e-textarea-handler-bg-color:#4290f7;--w-e-toolbar-color:#595959;--w-e-toolbar-bg-color:#fff;--w-e-toolbar-active-color:#333;--w-e-toolbar-active-bg-color:#f1f1f1;--w-e-toolbar-disabled-color:#999;--w-e-toolbar-border-color:#e8e8e8;--w-e-modal-button-bg-color:#fafafa;--w-e-modal-button-border-color:#d9d9d9}.w-e-text-container *,.w-e-toolbar *{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;outline:none;padding:0}.w-e-text-container blockquote,.w-e-text-container li,.w-e-text-container p,.w-e-text-container td,.w-e-text-container th,.w-e-toolbar *{line-height:1.5}.w-e-text-container{background-color:var(--w-e-textarea-bg-color);color:var(--w-e-textarea-color);height:100%;position:relative}.w-e-text-container .w-e-scroll{-webkit-overflow-scrolling:touch;height:100%}.w-e-text-container [data-slate-editor]{word-wrap:break-word;border-top:1px solid transparent;min-height:100%;outline:0;padding:0 10px;white-space:pre-wrap}.w-e-text-container [data-slate-editor] p{margin:15px 0}.w-e-text-container [data-slate-editor] h1,.w-e-text-container [data-slate-editor] h2,.w-e-text-container [data-slate-editor] h3,.w-e-text-container [data-slate-editor] h4,.w-e-text-container [data-slate-editor] h5{margin:20px 0}.w-e-text-container [data-slate-editor] img{cursor:default;display:inline!important;max-width:100%;min-height:20px;min-width:20px}.w-e-text-container [data-slate-editor] span{text-indent:0}.w-e-text-container [data-slate-editor] [data-selected=true]{-webkit-box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color);box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-placeholder{font-style:italic;left:10px;top:17px;width:90%}.w-e-max-length-info,.w-e-text-placeholder{color:var(--w-e-textarea-slight-color);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.w-e-max-length-info{bottom:.5em;right:1em}.w-e-bar{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-color);font-size:14px;padding:0 5px}.w-e-bar svg{fill:var(--w-e-toolbar-color);height:14px;width:14px}.w-e-bar-show{display:-webkit-box;display:-ms-flexbox;display:flex}.w-e-bar-hidden{display:none}.w-e-hover-bar{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.12156862745098039);box-shadow:0 2px 5px rgba(0,0,0,.12156862745098039);position:absolute}.w-e-toolbar{-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative}.w-e-bar-divider{background-color:var(--w-e-toolbar-border-color);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:40px;margin:0 5px;width:1px}.w-e-bar-item{display:-webkit-box;display:-ms-flexbox;display:flex;height:40px;padding:4px;position:relative;text-align:center}.w-e-bar-item,.w-e-bar-item button{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.w-e-bar-item button{background:transparent;border:none;color:var(--w-e-toolbar-color);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:32px;overflow:hidden;padding:0 8px;white-space:nowrap}.w-e-bar-item button:hover{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item button .title{margin-left:5px}.w-e-bar-item .active{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item .disabled{color:var(--w-e-toolbar-disabled-color);cursor:not-allowed}.w-e-bar-item .disabled svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-menu-tooltip-v5:before{background-color:var(--w-e-toolbar-active-color);border-radius:5px;color:var(--w-e-toolbar-bg-color);content:attr(data-tooltip);font-size:.75em;padding:5px 10px;text-align:center;top:40px;white-space:pre;z-index:1}.w-e-menu-tooltip-v5:after,.w-e-menu-tooltip-v5:before{opacity:0;position:absolute;-webkit-transition:opacity .6s;transition:opacity .6s;visibility:hidden}.w-e-menu-tooltip-v5:after{border:5px solid transparent;border-bottom:5px solid var(--w-e-toolbar-active-color);content:"";top:30px}.w-e-menu-tooltip-v5:hover:after,.w-e-menu-tooltip-v5:hover:before{opacity:1;visibility:visible}.w-e-menu-tooltip-v5.tooltip-right:before{left:100%;top:10px}.w-e-menu-tooltip-v5.tooltip-right:after{border-bottom-color:transparent;border-left-color:transparent;border-right-color:var(--w-e-toolbar-active-color);border-top-color:transparent;left:100%;margin-left:-10px;top:16px}.w-e-bar-item-group .w-e-bar-item-menus-container{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);display:none;left:0;margin-top:40px;position:absolute;top:0;z-index:1}.w-e-bar-item-group:hover .w-e-bar-item-menus-container{display:block}.w-e-select-list{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);left:0;margin-top:40px;max-height:350px;min-width:100px;overflow-y:auto;position:absolute;top:0;z-index:1}.w-e-select-list ul{line-height:1;list-style:none}.w-e-select-list ul .selected{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li{cursor:pointer;padding:7px 0 7px 25px;position:relative;text-align:left;white-space:nowrap}.w-e-select-list ul li:hover{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li svg{left:0;margin-left:5px;margin-top:-7px;position:absolute;top:50%}.w-e-bar-bottom .w-e-select-list{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-drop-panel{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);margin-top:40px;min-width:200px;padding:10px;position:absolute;top:0;z-index:1}.w-e-bar-bottom .w-e-drop-panel{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-modal{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);color:var(--w-e-toolbar-color);font-size:14px;min-height:40px;min-width:100px;padding:20px 15px 0;position:absolute;text-align:left;z-index:1}.w-e-modal .btn-close{cursor:pointer;line-height:1;padding:5px;position:absolute;right:8px;top:7px}.w-e-modal .btn-close svg{fill:var(--w-e-toolbar-color);height:10px;width:10px}.w-e-modal .babel-container{display:block;margin-bottom:15px}.w-e-modal .babel-container span{display:block;margin-bottom:10px}.w-e-modal .button-container{margin-bottom:15px}.w-e-modal button{background-color:var(--w-e-modal-button-bg-color);cursor:pointer;font-weight:400;height:32px;padding:4.5px 15px;text-align:center;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.w-e-modal button,.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{border:1px solid var(--w-e-modal-button-border-color);border-radius:4px;color:var(--w-e-toolbar-color)}.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";background-color:var(--w-e-toolbar-bg-color);font-variant:tabular-nums;padding:4.5px 11px;-webkit-transition:all .3s;transition:all .3s;width:100%}.w-e-modal textarea{min-height:60px}body .w-e-modal,body .w-e-modal *{-webkit-box-sizing:border-box;box-sizing:border-box}.w-e-progress-bar{background-color:var(--w-e-textarea-handler-bg-color);height:1px;position:absolute;-webkit-transition:width .3s;transition:width .3s;width:0}.w-e-full-screen-container{bottom:0!important;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important;height:100%!important;left:0!important;margin:0!important;padding:0!important;position:fixed;right:0!important;top:0!important;width:100%!important}.w-e-full-screen-container [data-w-e-textarea=true]{-webkit-box-flex:1!important;-ms-flex:1!important;flex:1!important}.w-e-text-container [data-slate-editor] code{background-color:var(--w-e-textarea-slight-bg-color);border-radius:3px;font-family:monospace;padding:3px}.w-e-panel-content-color{list-style:none;text-align:left;width:230px}.w-e-panel-content-color li{border:1px solid var(--w-e-toolbar-bg-color);border-radius:3px 3px;cursor:pointer;display:inline-block;padding:2px}.w-e-panel-content-color li:hover{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color li .color-block{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px 3px;height:17px;width:17px}.w-e-panel-content-color .active{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color .clear{line-height:1.5;margin-bottom:5px;width:100%}.w-e-panel-content-color .clear svg{height:16px;margin-bottom:-4px;width:16px}.w-e-text-container [data-slate-editor] blockquote{background-color:var(--w-e-textarea-slight-bg-color);border-left:8px solid var(--w-e-textarea-selected-border-color);display:block;font-size:100%;line-height:1.5;margin:10px 0;padding:10px}.w-e-panel-content-emotion{font-size:20px;list-style:none;text-align:left;width:300px}.w-e-panel-content-emotion li{border-radius:3px 3px;cursor:pointer;display:inline-block;padding:0 5px}.w-e-panel-content-emotion li:hover{background-color:var(--w-e-textarea-slight-bg-color)}.w-e-textarea-divider{border-radius:3px;margin:20px auto;padding:20px}.w-e-textarea-divider hr{background-color:var(--w-e-textarea-border-color);border:0;display:block;height:1px}.w-e-text-container [data-slate-editor] pre>code{background-color:var(--w-e-textarea-slight-bg-color);border:1px solid var(--w-e-textarea-slight-border-color);border-radius:4px 4px;display:block;font-size:14px;padding:10px;text-indent:0}.w-e-text-container [data-slate-editor] .w-e-image-container{display:inline-block;margin:0 3px}.w-e-text-container [data-slate-editor] .w-e-image-container:hover{-webkit-box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color);box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-container [data-slate-editor] .w-e-selected-image-container{overflow:hidden;position:relative}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .w-e-image-dragger{background-color:var(--w-e-textarea-handler-bg-color);height:7px;position:absolute;width:7px}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-top{cursor:nwse-resize;left:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-top{cursor:nesw-resize;right:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-bottom{bottom:0;cursor:nesw-resize;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-bottom{bottom:0;cursor:nwse-resize;right:0}.w-e-text-container [contenteditable=false] .w-e-image-container:hover,.w-e-text-container [data-slate-editor] .w-e-selected-image-container:hover{-webkit-box-shadow:none;box-shadow:none}.w-e-text-container [data-slate-editor] .table-container{border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin-top:10px;overflow-x:auto;padding:10px;width:100%}.w-e-text-container [data-slate-editor] table{border-collapse:collapse}.w-e-text-container [data-slate-editor] table td,.w-e-text-container [data-slate-editor] table th{border:1px solid var(--w-e-textarea-border-color);line-height:1.5;min-width:30px;padding:3px 5px;text-align:left}.w-e-text-container [data-slate-editor] table th{background-color:var(--w-e-textarea-slight-bg-color);font-weight:700;text-align:center}.w-e-panel-content-table{background-color:var(--w-e-toolbar-bg-color)}.w-e-panel-content-table table{border-collapse:collapse}.w-e-panel-content-table td{border:1px solid var(--w-e-toolbar-border-color);cursor:pointer;height:15px;padding:3px 5px;width:20px}.w-e-panel-content-table td.active{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-textarea-video-container{background-image:linear-gradient(45deg,#eee 25%,transparent 0,transparent 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0,#fff 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin:10px auto 0;padding:10px 0;text-align:center}.w-e-text-container [data-slate-editor] pre>code{word-wrap:normal;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;margin:.5em 0;overflow:auto;padding:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal}.w-e-text-container [data-slate-editor] pre>code .token.cdata,.w-e-text-container [data-slate-editor] pre>code .token.comment,.w-e-text-container [data-slate-editor] pre>code .token.doctype,.w-e-text-container [data-slate-editor] pre>code .token.prolog{color:#708090}.w-e-text-container [data-slate-editor] pre>code .token.punctuation{color:#999}.w-e-text-container [data-slate-editor] pre>code .token.namespace{opacity:.7}.w-e-text-container [data-slate-editor] pre>code .token.boolean,.w-e-text-container [data-slate-editor] pre>code .token.constant,.w-e-text-container [data-slate-editor] pre>code .token.deleted,.w-e-text-container [data-slate-editor] pre>code .token.number,.w-e-text-container [data-slate-editor] pre>code .token.property,.w-e-text-container [data-slate-editor] pre>code .token.symbol,.w-e-text-container [data-slate-editor] pre>code .token.tag{color:#905}.w-e-text-container [data-slate-editor] pre>code .token.attr-name,.w-e-text-container [data-slate-editor] pre>code .token.builtin,.w-e-text-container [data-slate-editor] pre>code .token.char,.w-e-text-container [data-slate-editor] pre>code .token.inserted,.w-e-text-container [data-slate-editor] pre>code .token.selector,.w-e-text-container [data-slate-editor] pre>code .token.string{color:#690}.w-e-text-container [data-slate-editor] pre>code .language-css .token.string,.w-e-text-container [data-slate-editor] pre>code .style .token.string,.w-e-text-container [data-slate-editor] pre>code .token.entity,.w-e-text-container [data-slate-editor] pre>code .token.operator,.w-e-text-container [data-slate-editor] pre>code .token.url{color:#9a6e3a}.w-e-text-container [data-slate-editor] pre>code .token.atrule,.w-e-text-container [data-slate-editor] pre>code .token.attr-value,.w-e-text-container [data-slate-editor] pre>code .token.keyword{color:#07a}.w-e-text-container [data-slate-editor] pre>code .token.class-name,.w-e-text-container [data-slate-editor] pre>code .token.function{color:#dd4a68}.w-e-text-container [data-slate-editor] pre>code .token.important,.w-e-text-container [data-slate-editor] pre>code .token.regex,.w-e-text-container [data-slate-editor] pre>code .token.variable{color:#e90}.w-e-text-container [data-slate-editor] pre>code .token.bold,.w-e-text-container [data-slate-editor] pre>code .token.important{font-weight:700}.w-e-text-container [data-slate-editor] pre>code .token.italic{font-style:italic}.w-e-text-container [data-slate-editor] pre>code .token.entity{cursor:help}[data-v-193e696a] .ant-table td{white-space:nowrap}[data-v-193e696a] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-193e696a],[data-v-193e696a] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-193e696a]{margin-bottom:18px}button[data-v-193e696a]{margin-right:8px}[data-v-5d82afdc] .ant-table td{white-space:nowrap}[data-v-5d82afdc] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-5d82afdc],[data-v-5d82afdc] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-5d82afdc]{margin-bottom:18px}button[data-v-5d82afdc]{margin-right:8px}[data-v-4a867e18] .ant-table td{white-space:nowrap}[data-v-4a867e18] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-4a867e18],[data-v-4a867e18] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-4a867e18]{margin-bottom:18px}button[data-v-4a867e18]{margin-right:8px}[data-v-3a9d0183] .ant-table td{white-space:nowrap}[data-v-3a9d0183] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-3a9d0183],[data-v-3a9d0183] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-3a9d0183]{margin-bottom:18px}button[data-v-3a9d0183]{margin-right:8px}[data-v-4a2f543e] .ant-table td{white-space:nowrap}[data-v-4a2f543e] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-4a2f543e],[data-v-4a2f543e] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-4a2f543e]{margin-bottom:18px}button[data-v-4a2f543e]{margin-right:8px}[data-v-30045c3f] .ant-table td{white-space:nowrap}[data-v-30045c3f] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-30045c3f],[data-v-30045c3f] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-30045c3f]{margin-bottom:18px}button[data-v-30045c3f]{margin-right:8px}[data-v-ae4b8f7a] .ant-table td{white-space:nowrap}[data-v-ae4b8f7a] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-ae4b8f7a],[data-v-ae4b8f7a] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-ae4b8f7a]{margin-bottom:18px}button[data-v-ae4b8f7a]{margin-right:8px}[data-v-6fdc1f70] .ant-table td{white-space:nowrap}[data-v-6fdc1f70] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-6fdc1f70],[data-v-6fdc1f70] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-6fdc1f70]{margin-bottom:18px}button[data-v-6fdc1f70]{margin-right:8px}[data-v-defd0614] .ant-table td{white-space:nowrap}[data-v-defd0614] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-defd0614],[data-v-defd0614] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-defd0614]{margin-bottom:18px}button[data-v-defd0614]{margin-right:8px}.account-settings-info-main[data-v-67279d5d]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;overflow:auto}.account-settings-info-main.mobile[data-v-67279d5d]{display:block}.account-settings-info-main.mobile .account-settings-info-left[data-v-67279d5d]{border-right:unset;border-bottom:1px solid #e8e8e8;width:100%;height:50px;overflow-x:auto;overflow-y:scroll}.account-settings-info-main.mobile .account-settings-info-right[data-v-67279d5d]{padding:20px 40px}.account-settings-info-main .account-settings-info-left[data-v-67279d5d]{border-right:1px solid #e8e8e8;width:224px}.account-settings-info-main .account-settings-info-right[data-v-67279d5d]{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;padding:8px 40px}.account-settings-info-main .account-settings-info-right .account-settings-info-title[data-v-67279d5d]{color:rgba(0,0,0,.85);font-size:20px;font-weight:500;line-height:28px;margin-bottom:12px}.account-settings-info-main .account-settings-info-right .account-settings-info-view[data-v-67279d5d]{padding-top:12px}[data-v-1718cfba] .ant-table td{white-space:nowrap}[data-v-1718cfba] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-1718cfba],[data-v-1718cfba] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-1718cfba]{margin-bottom:18px}button[data-v-1718cfba]{margin-right:8px}[data-v-8ba5f616] .ant-table td{white-space:nowrap}[data-v-8ba5f616] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-8ba5f616],[data-v-8ba5f616] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-8ba5f616]{margin-bottom:18px}button[data-v-8ba5f616]{margin-right:8px}.subButton{float:right}.subForm-item{margin-bottom:0}[data-v-35a6c60d] .ant-table td{white-space:nowrap}[data-v-35a6c60d] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-35a6c60d],[data-v-35a6c60d] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-35a6c60d]{margin-bottom:18px}button[data-v-35a6c60d]{margin-right:8px}[data-v-7d5182b0] .ant-table td{white-space:nowrap}[data-v-7d5182b0] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-7d5182b0],[data-v-7d5182b0] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-7d5182b0]{margin-bottom:18px}button[data-v-7d5182b0]{margin-right:8px}.table-operator{margin-bottom:18px}button{margin-right:8px}[data-v-20d5efd2] .ant-table td{white-space:nowrap}[data-v-20d5efd2] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-20d5efd2],[data-v-20d5efd2] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-20d5efd2]{margin-bottom:18px}button[data-v-20d5efd2]{margin-right:8px}[data-v-da255892] .ant-table td{white-space:nowrap}[data-v-da255892] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-da255892],[data-v-da255892] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-da255892]{margin-bottom:18px}button[data-v-da255892]{margin-right:8px} \ No newline at end of file diff --git a/admin20250319/dist/css/chunk-0c4f7e34.c8738afd.css.gz b/admin20250319/dist/css/chunk-0c4f7e34.c8738afd.css.gz new file mode 100644 index 0000000..e00151a Binary files /dev/null and b/admin20250319/dist/css/chunk-0c4f7e34.c8738afd.css.gz differ diff --git a/admin20250319/dist/css/chunk-7e6a7aed.a1d22d63.css b/admin20250319/dist/css/chunk-7e6a7aed.a1d22d63.css new file mode 100644 index 0000000..762cf9a --- /dev/null +++ b/admin20250319/dist/css/chunk-7e6a7aed.a1d22d63.css @@ -0,0 +1 @@ +.head-info[data-v-432d5786]{position:relative;text-align:left;padding:0 32px 0 0;min-width:125px}.head-info.center[data-v-432d5786]{text-align:center;padding:0 32px}.head-info span[data-v-432d5786]{color:rgba(0,0,0,.45);display:inline-block;font-size:14px;line-height:22px;margin-bottom:4px}.head-info p[data-v-432d5786]{color:rgba(0,0,0,.85);font-size:24px;line-height:32px;margin:0}.head-info em[data-v-432d5786]{background-color:#e8e8e8;position:absolute;height:56px;width:1px;top:0;right:0}.project-list .card-title[data-v-75d33b64]{font-size:0}.project-list .card-title a[data-v-75d33b64]{color:rgba(0,0,0,.85);margin-left:12px;line-height:24px;height:24px;display:inline-block;vertical-align:top;font-size:14px}.project-list .card-title a[data-v-75d33b64]:hover{color:#1890ff}.project-list .card-description[data-v-75d33b64]{color:rgba(0,0,0,.45);height:44px;line-height:22px;overflow:hidden}.project-list .project-item[data-v-75d33b64]{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:8px;overflow:hidden;font-size:12px;height:20px;line-height:20px}.project-list .project-item a[data-v-75d33b64]{color:rgba(0,0,0,.45);display:inline-block;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0}.project-list .project-item a[data-v-75d33b64]:hover{color:#1890ff}.project-list .project-item .datetime[data-v-75d33b64]{color:rgba(0,0,0,.25);-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:right}.project-list .ant-card-meta-description[data-v-75d33b64]{color:rgba(0,0,0,.45);height:44px;line-height:22px;overflow:hidden}.item-group[data-v-75d33b64]{padding:20px 0 8px 24px;font-size:0}.item-group a[data-v-75d33b64]{color:rgba(0,0,0,.65);display:inline-block;font-size:14px;margin-bottom:13px;width:25%}.members a[data-v-75d33b64]{display:block;margin:12px 0;line-height:24px;height:24px}.members a .member[data-v-75d33b64]{font-size:14px;color:rgba(0,0,0,.65);line-height:24px;max-width:100px;vertical-align:top;margin-left:12px;-webkit-transition:all .3s;transition:all .3s;display:inline-block}.members a:hover span[data-v-75d33b64]{color:#1890ff}.mobile .project-list .project-card-grid[data-v-75d33b64]{width:100%}.mobile .more-info[data-v-75d33b64]{border:0;padding-top:16px;margin:16px 0 16px}.mobile .headerContent .title .welcome-text[data-v-75d33b64]{display:none} \ No newline at end of file diff --git a/admin20250319/dist/css/chunk-vendors.fde4acf3.css b/admin20250319/dist/css/chunk-vendors.fde4acf3.css new file mode 100644 index 0000000..efbf80a --- /dev/null +++ b/admin20250319/dist/css/chunk-vendors.fde4acf3.css @@ -0,0 +1 @@ +body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#2f54eb;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#597ef7}a:active{color:#1d39c4}a:active,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th{text-align:inherit}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{color:#fff;background:#2f54eb}::selection{color:#fff;background:#2f54eb}.clearfix{zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#2f54eb}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #2f54eb;box-shadow:0 0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #2f54eb;box-shadow:0 0 0 #2f54eb;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear,.swing-enter{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active,.swing-enter.swing-enter-active{-webkit-animation-name:antSwingIn;animation-name:antSwingIn;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-affix{position:fixed;z-index:10}.ant-alert{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;padding:8px 15px 8px 37px;word-wrap:break-word;border-radius:2px}.ant-alert.ant-alert-no-icon{padding:8px 15px}.ant-alert.ant-alert-closable{padding-right:30px}.ant-alert-icon{position:absolute;top:11.5px;left:16px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff1f0;border:1px solid #ffa39e}.ant-alert-error .ant-alert-icon{color:#f5222d}.ant-alert-close-icon{position:absolute;top:8px;right:16px;padding:0;overflow:hidden;font-size:12px;line-height:22px;background-color:transparent;border:none;outline:none;cursor:pointer}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,.45);-webkit-transition:color .3s;transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,.75)}.ant-alert-close-text{color:rgba(0,0,0,.45);-webkit-transition:color .3s;transition:color .3s}.ant-alert-close-text:hover{color:rgba(0,0,0,.75)}.ant-alert-with-description{position:relative;padding:15px 15px 15px 64px;color:rgba(0,0,0,.65);line-height:1.5;border-radius:2px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{position:absolute;top:16px;left:24px;font-size:24px}.ant-alert-with-description .ant-alert-close-icon{position:absolute;top:16px;right:16px;font-size:14px;cursor:pointer}.ant-alert-with-description .ant-alert-message{display:block;margin-bottom:4px;color:rgba(0,0,0,.85);font-size:16px}.ant-alert-message{color:rgba(0,0,0,.85)}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-closing{height:0!important;margin:0;padding-top:0;padding-bottom:0;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert-slide-up-leave{-webkit-animation:antAlertSlideUpOut .3s cubic-bezier(.78,.14,.15,.86);animation:antAlertSlideUpOut .3s cubic-bezier(.78,.14,.15,.86);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-alert-banner{margin-bottom:0;border:0;border-radius:0}@-webkit-keyframes antAlertSlideUpIn{0%{-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antAlertSlideUpIn{0%{-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antAlertSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antAlertSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}.ant-anchor{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;padding-left:2px}.ant-anchor-wrapper{margin-left:-4px;padding-left:4px;overflow:auto;background-color:#fff}.ant-anchor-ink{position:absolute;top:0;left:0;height:100%}.ant-anchor-ink:before{position:relative;display:block;width:2px;height:100%;margin:0 auto;background-color:#e8e8e8;content:" "}.ant-anchor-ink-ball{position:absolute;left:50%;display:none;width:8px;height:8px;background-color:#fff;border:2px solid #2f54eb;border-radius:8px;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:top .3s ease-in-out;transition:top .3s ease-in-out}.ant-anchor-ink-ball.visible{display:inline-block}.ant-anchor.fixed .ant-anchor-ink .ant-anchor-ink-ball{display:none}.ant-anchor-link{padding:7px 0 7px 16px;line-height:1.143}.ant-anchor-link-title{position:relative;display:block;margin-bottom:6px;overflow:hidden;color:rgba(0,0,0,.65);white-space:nowrap;text-overflow:ellipsis;-webkit-transition:all .3s;transition:all .3s}.ant-anchor-link-title:only-child{margin-bottom:0}.ant-anchor-link-active>.ant-anchor-link-title{color:#2f54eb}.ant-anchor-link .ant-anchor-link{padding-top:5px;padding-bottom:5px}.ant-select-auto-complete{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.ant-select-auto-complete.ant-select .ant-select-selection{border:0;-webkit-box-shadow:none;box-shadow:none}.ant-select-auto-complete.ant-select .ant-select-selection__rendered{height:100%;margin-right:0;margin-left:0;line-height:32px}.ant-select-auto-complete.ant-select .ant-select-selection__placeholder{margin-right:12px;margin-left:12px}.ant-select-auto-complete.ant-select .ant-select-selection--single{height:auto}.ant-select-auto-complete.ant-select .ant-select-search--inline{position:static;float:left}.ant-select-auto-complete.ant-select-allow-clear .ant-select-selection:hover .ant-select-selection__rendered{margin-right:0!important}.ant-select-auto-complete.ant-select .ant-input{height:32px;line-height:1.5;background:transparent;border-width:1px}.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#597ef7;border-right-width:1px!important}.ant-select-auto-complete.ant-select .ant-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-select-auto-complete.ant-select .ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-select-auto-complete.ant-select-lg .ant-select-selection__rendered{line-height:40px}.ant-select-auto-complete.ant-select-lg .ant-input{height:40px;padding-top:6px;padding-bottom:6px}.ant-select-auto-complete.ant-select-sm .ant-select-selection__rendered{line-height:24px}.ant-select-auto-complete.ant-select-sm .ant-input{height:24px;padding-top:1px;padding-bottom:1px}.ant-input-group>.ant-select-auto-complete .ant-select-search__field.ant-input-affix-wrapper{display:inline;float:none}.ant-avatar{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;overflow:hidden;color:#fff;white-space:nowrap;text-align:center;vertical-align:middle;background:#ccc;width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar-image{background:transparent}.ant-avatar-string{position:absolute;left:50%;-webkit-transform-origin:0 center;transform-origin:0 center}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg-string{position:absolute;left:50%;-webkit-transform-origin:0 center;transform-origin:0 center}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-sm-string{position:absolute;left:50%;-webkit-transform-origin:0 center;transform-origin:0 center}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ant-back-top{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:fixed;right:100px;bottom:50px;z-index:10;width:40px;height:40px;cursor:pointer}.ant-back-top-content{width:40px;height:40px;overflow:hidden;color:#fff;text-align:center;background-color:rgba(0,0,0,.45);border-radius:20px}.ant-back-top-content,.ant-back-top-content:hover{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-back-top-content:hover{background-color:rgba(0,0,0,.65)}.ant-back-top-icon{width:14px;height:16px;margin:12px auto;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAABGdBTUEAALGPC/xhBQAAAbtJREFUWAntmMtKw0AUhhMvS5cuxILgQlRUpIggIoKIIoigG1eC+AA+jo+i6FIXBfeuXIgoeKVeitVWJX5HWhhDksnUpp3FDPyZk3Nm5nycmZKkXhAEOXSA3lG7muTeRzmfy6HneUvIhnYkQK+Q9NhAA0Opg0vBEhjBKHiyb8iGMyQMOYuK41BcBSypAL+MYXSKjtFAW7EAGEO3qN4uMQbbAkXiSfRQJ1H6a+yhlkKRcAoVFYiweYNjtCVQJJpBz2GCiPt7fBOZQpFgDpUikse5HgnkM4Fi4QX0Fpc5wf9EbLqpUCy4jMoJSXWhFwbMNgWKhVbRhy5jirhs9fy/oFhgHVVTJEs7RLZ8sSEoJm6iz7SZDMbJ+/OKERQTttCXQRLToRUmrKWCYuA2+jbN0MB4OQobYShfdTCgn/sL1K36M7TLrN3n+758aPy2rrpR6+/od5E8tf/A1uLS9aId5T7J3CNYihkQ4D9PiMdMC7mp4rjB9kjFjZp8BlnVHJBuO1yFXIV0FdDF3RlyFdJVQBdv5AxVdIsq8apiZ2PyYO1EVykesGfZEESsCkweyR8MUW+V8uJ1gkYipmpdP1pm2aJVPEGzAAAAAElFTkSuQmCC) 100%/100% no-repeat}@media screen and (max-width:768px){.ant-back-top{right:60px}}@media screen and (max-width:480px){.ant-back-top{right:20px}}.ant-badge{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;color:unset;line-height:1}.ant-badge-count{min-width:20px;height:20px;padding:0 6px;color:#fff;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;text-align:center;background:#f5222d;border-radius:10px;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-multiple-words{padding:0 8px}.ant-badge-dot{width:6px;height:6px;background:#f5222d;border-radius:100%;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ant-badge-count,.ant-badge-dot,.ant-badge .ant-scroll-number-custom-component{position:absolute;top:0;right:0;z-index:1;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100% 0;transform-origin:100% 0}.ant-badge-status{line-height:inherit;vertical-align:baseline}.ant-badge-status-dot{position:relative;top:-1px;display:inline-block;width:6px;height:6px;vertical-align:middle;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{position:relative;background-color:#1890ff}.ant-badge-status-processing:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;-webkit-animation:antStatusProcessing 1.2s ease-in-out infinite;animation:antStatusProcessing 1.2s ease-in-out infinite;content:""}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#f5222d}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-magenta,.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{margin-left:8px;color:rgba(0,0,0,.65);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{-webkit-animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-zoom-leave{-webkit-animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-not-a-wrapper:not(.ant-badge-status){vertical-align:middle}.ant-badge-not-a-wrapper .ant-scroll-number{position:relative;top:auto;display:block}.ant-badge-not-a-wrapper .ant-badge-count{-webkit-transform:none;transform:none}@-webkit-keyframes antStatusProcessing{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.5}to{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}@keyframes antStatusProcessing{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.5}to{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}.ant-scroll-number{overflow:hidden}.ant-scroll-number-only{display:inline-block;height:20px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only>p.ant-scroll-number-only-unit{height:20px;margin:0}.ant-scroll-number-symbol{vertical-align:top}@-webkit-keyframes antZoomBadgeIn{0%{-webkit-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}to{-webkit-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeIn{0%{-webkit-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}to{-webkit-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}}@-webkit-keyframes antZoomBadgeOut{0%{-webkit-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}to{-webkit-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}}@keyframes antZoomBadgeOut{0%{-webkit-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}to{-webkit-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}}.ant-breadcrumb{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:rgba(0,0,0,.45);font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,.45);-webkit-transition:color .3s;transition:color .3s}.ant-breadcrumb a:hover{color:#597ef7}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,.65)}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{margin:0 8px;color:rgba(0,0,0,.45)}.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-btn{line-height:1.499;position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;border:1px solid transparent;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.015);box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:manipulation;touch-action:manipulation;height:32px;padding:0 15px;font-size:14px;border-radius:2px;color:rgba(0,0,0,.65);background-color:#fff;border-color:#d9d9d9}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{outline:0;-webkit-box-shadow:none;box-shadow:none}.ant-btn.disabled,.ant-btn[disabled]{cursor:not-allowed}.ant-btn.disabled>*,.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{height:40px;padding:0 15px;font-size:16px;border-radius:2px}.ant-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:2px}.ant-btn>a:only-child{color:currentColor}.ant-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:focus,.ant-btn:hover{color:#597ef7;background-color:#fff;border-color:#597ef7}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn.active,.ant-btn:active{color:#1d39c4;background-color:#fff;border-color:#1d39c4}.ant-btn.active>a:only-child,.ant-btn:active>a:only-child{color:currentColor}.ant-btn.active>a:only-child:after,.ant-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-disabled,.ant-btn-disabled.active,.ant-btn-disabled:active,.ant-btn-disabled:focus,.ant-btn-disabled:hover,.ant-btn.disabled,.ant-btn.disabled.active,.ant-btn.disabled:active,.ant-btn.disabled:focus,.ant-btn.disabled:hover,.ant-btn[disabled],.ant-btn[disabled].active,.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-disabled.active>a:only-child,.ant-btn-disabled:active>a:only-child,.ant-btn-disabled:focus>a:only-child,.ant-btn-disabled:hover>a:only-child,.ant-btn-disabled>a:only-child,.ant-btn.disabled.active>a:only-child,.ant-btn.disabled:active>a:only-child,.ant-btn.disabled:focus>a:only-child,.ant-btn.disabled:hover>a:only-child,.ant-btn.disabled>a:only-child,.ant-btn[disabled].active>a:only-child,.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentColor}.ant-btn-disabled.active>a:only-child:after,.ant-btn-disabled:active>a:only-child:after,.ant-btn-disabled:focus>a:only-child:after,.ant-btn-disabled:hover>a:only-child:after,.ant-btn-disabled>a:only-child:after,.ant-btn.disabled.active>a:only-child:after,.ant-btn.disabled:active>a:only-child:after,.ant-btn.disabled:focus>a:only-child:after,.ant-btn.disabled:hover>a:only-child:after,.ant-btn.disabled>a:only-child:after,.ant-btn[disabled].active>a:only-child:after,.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn.active,.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:#fff}.ant-btn>i,.ant-btn>span{display:inline-block;-webkit-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);transition:margin-left .3s cubic-bezier(.645,.045,.355,1);pointer-events:none}.ant-btn-primary{color:#fff;background-color:#2f54eb;border-color:#2f54eb;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;background-color:#597ef7;border-color:#597ef7}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary.active,.ant-btn-primary:active{color:#fff;background-color:#1d39c4;border-color:#1d39c4}.ant-btn-primary.active>a:only-child,.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-primary.active>a:only-child:after,.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary-disabled,.ant-btn-primary-disabled.active,.ant-btn-primary-disabled:active,.ant-btn-primary-disabled:focus,.ant-btn-primary-disabled:hover,.ant-btn-primary.disabled,.ant-btn-primary.disabled.active,.ant-btn-primary.disabled:active,.ant-btn-primary.disabled:focus,.ant-btn-primary.disabled:hover,.ant-btn-primary[disabled],.ant-btn-primary[disabled].active,.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-primary-disabled.active>a:only-child,.ant-btn-primary-disabled:active>a:only-child,.ant-btn-primary-disabled:focus>a:only-child,.ant-btn-primary-disabled:hover>a:only-child,.ant-btn-primary-disabled>a:only-child,.ant-btn-primary.disabled.active>a:only-child,.ant-btn-primary.disabled:active>a:only-child,.ant-btn-primary.disabled:focus>a:only-child,.ant-btn-primary.disabled:hover>a:only-child,.ant-btn-primary.disabled>a:only-child,.ant-btn-primary[disabled].active>a:only-child,.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-primary-disabled.active>a:only-child:after,.ant-btn-primary-disabled:active>a:only-child:after,.ant-btn-primary-disabled:focus>a:only-child:after,.ant-btn-primary-disabled:hover>a:only-child:after,.ant-btn-primary-disabled>a:only-child:after,.ant-btn-primary.disabled.active>a:only-child:after,.ant-btn-primary.disabled:active>a:only-child:after,.ant-btn-primary.disabled:focus>a:only-child:after,.ant-btn-primary.disabled:hover>a:only-child:after,.ant-btn-primary.disabled>a:only-child:after,.ant-btn-primary[disabled].active>a:only-child:after,.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#597ef7;border-left-color:#597ef7}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#597ef7}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#597ef7}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,.65);background-color:transparent;border-color:#d9d9d9}.ant-btn-ghost>a:only-child{color:currentColor}.ant-btn-ghost>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#597ef7;background-color:transparent;border-color:#597ef7}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentColor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost.active,.ant-btn-ghost:active{color:#1d39c4;background-color:transparent;border-color:#1d39c4}.ant-btn-ghost.active>a:only-child,.ant-btn-ghost:active>a:only-child{color:currentColor}.ant-btn-ghost.active>a:only-child:after,.ant-btn-ghost:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost-disabled,.ant-btn-ghost-disabled.active,.ant-btn-ghost-disabled:active,.ant-btn-ghost-disabled:focus,.ant-btn-ghost-disabled:hover,.ant-btn-ghost.disabled,.ant-btn-ghost.disabled.active,.ant-btn-ghost.disabled:active,.ant-btn-ghost.disabled:focus,.ant-btn-ghost.disabled:hover,.ant-btn-ghost[disabled],.ant-btn-ghost[disabled].active,.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-ghost-disabled.active>a:only-child,.ant-btn-ghost-disabled:active>a:only-child,.ant-btn-ghost-disabled:focus>a:only-child,.ant-btn-ghost-disabled:hover>a:only-child,.ant-btn-ghost-disabled>a:only-child,.ant-btn-ghost.disabled.active>a:only-child,.ant-btn-ghost.disabled:active>a:only-child,.ant-btn-ghost.disabled:focus>a:only-child,.ant-btn-ghost.disabled:hover>a:only-child,.ant-btn-ghost.disabled>a:only-child,.ant-btn-ghost[disabled].active>a:only-child,.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentColor}.ant-btn-ghost-disabled.active>a:only-child:after,.ant-btn-ghost-disabled:active>a:only-child:after,.ant-btn-ghost-disabled:focus>a:only-child:after,.ant-btn-ghost-disabled:hover>a:only-child:after,.ant-btn-ghost-disabled>a:only-child:after,.ant-btn-ghost.disabled.active>a:only-child:after,.ant-btn-ghost.disabled:active>a:only-child:after,.ant-btn-ghost.disabled:focus>a:only-child:after,.ant-btn-ghost.disabled:hover>a:only-child:after,.ant-btn-ghost.disabled>a:only-child:after,.ant-btn-ghost[disabled].active>a:only-child:after,.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed{color:rgba(0,0,0,.65);background-color:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed>a:only-child{color:currentColor}.ant-btn-dashed>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#597ef7;background-color:#fff;border-color:#597ef7}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentColor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed.active,.ant-btn-dashed:active{color:#1d39c4;background-color:#fff;border-color:#1d39c4}.ant-btn-dashed.active>a:only-child,.ant-btn-dashed:active>a:only-child{color:currentColor}.ant-btn-dashed.active>a:only-child:after,.ant-btn-dashed:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed-disabled,.ant-btn-dashed-disabled.active,.ant-btn-dashed-disabled:active,.ant-btn-dashed-disabled:focus,.ant-btn-dashed-disabled:hover,.ant-btn-dashed.disabled,.ant-btn-dashed.disabled.active,.ant-btn-dashed.disabled:active,.ant-btn-dashed.disabled:focus,.ant-btn-dashed.disabled:hover,.ant-btn-dashed[disabled],.ant-btn-dashed[disabled].active,.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dashed-disabled.active>a:only-child,.ant-btn-dashed-disabled:active>a:only-child,.ant-btn-dashed-disabled:focus>a:only-child,.ant-btn-dashed-disabled:hover>a:only-child,.ant-btn-dashed-disabled>a:only-child,.ant-btn-dashed.disabled.active>a:only-child,.ant-btn-dashed.disabled:active>a:only-child,.ant-btn-dashed.disabled:focus>a:only-child,.ant-btn-dashed.disabled:hover>a:only-child,.ant-btn-dashed.disabled>a:only-child,.ant-btn-dashed[disabled].active>a:only-child,.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentColor}.ant-btn-dashed-disabled.active>a:only-child:after,.ant-btn-dashed-disabled:active>a:only-child:after,.ant-btn-dashed-disabled:focus>a:only-child:after,.ant-btn-dashed-disabled:hover>a:only-child:after,.ant-btn-dashed-disabled>a:only-child:after,.ant-btn-dashed.disabled.active>a:only-child:after,.ant-btn-dashed.disabled:active>a:only-child:after,.ant-btn-dashed.disabled:focus>a:only-child:after,.ant-btn-dashed.disabled:hover>a:only-child:after,.ant-btn-dashed.disabled>a:only-child:after,.ant-btn-dashed[disabled].active>a:only-child:after,.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger.active,.ant-btn-danger:active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-danger.active>a:only-child,.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-danger.active>a:only-child:after,.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger-disabled,.ant-btn-danger-disabled.active,.ant-btn-danger-disabled:active,.ant-btn-danger-disabled:focus,.ant-btn-danger-disabled:hover,.ant-btn-danger.disabled,.ant-btn-danger.disabled.active,.ant-btn-danger.disabled:active,.ant-btn-danger.disabled:focus,.ant-btn-danger.disabled:hover,.ant-btn-danger[disabled],.ant-btn-danger[disabled].active,.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-danger-disabled.active>a:only-child,.ant-btn-danger-disabled:active>a:only-child,.ant-btn-danger-disabled:focus>a:only-child,.ant-btn-danger-disabled:hover>a:only-child,.ant-btn-danger-disabled>a:only-child,.ant-btn-danger.disabled.active>a:only-child,.ant-btn-danger.disabled:active>a:only-child,.ant-btn-danger.disabled:focus>a:only-child,.ant-btn-danger.disabled:hover>a:only-child,.ant-btn-danger.disabled>a:only-child,.ant-btn-danger[disabled].active>a:only-child,.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-danger-disabled.active>a:only-child:after,.ant-btn-danger-disabled:active>a:only-child:after,.ant-btn-danger-disabled:focus>a:only-child:after,.ant-btn-danger-disabled:hover>a:only-child:after,.ant-btn-danger-disabled>a:only-child:after,.ant-btn-danger.disabled.active>a:only-child:after,.ant-btn-danger.disabled:active>a:only-child:after,.ant-btn-danger.disabled:focus>a:only-child:after,.ant-btn-danger.disabled:hover>a:only-child:after,.ant-btn-danger.disabled>a:only-child:after,.ant-btn-danger[disabled].active>a:only-child:after,.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link{color:#2f54eb;background-color:transparent;border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-btn-link>a:only-child{color:currentColor}.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link:focus,.ant-btn-link:hover{color:#597ef7;background-color:transparent;border-color:#597ef7}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link.active,.ant-btn-link:active{color:#1d39c4;background-color:transparent;border-color:#1d39c4}.ant-btn-link.active>a:only-child,.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-link.active>a:only-child:after,.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link-disabled,.ant-btn-link-disabled.active,.ant-btn-link-disabled:active,.ant-btn-link-disabled:focus,.ant-btn-link-disabled:hover,.ant-btn-link.disabled,.ant-btn-link.disabled.active,.ant-btn-link.disabled:active,.ant-btn-link.disabled:focus,.ant-btn-link.disabled:hover,.ant-btn-link[disabled],.ant-btn-link[disabled].active,.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link-disabled,.ant-btn-link-disabled.active,.ant-btn-link-disabled:active,.ant-btn-link-disabled:focus,.ant-btn-link-disabled:hover,.ant-btn-link.disabled,.ant-btn-link.disabled.active,.ant-btn-link.disabled:active,.ant-btn-link.disabled:focus,.ant-btn-link.disabled:hover,.ant-btn-link[disabled],.ant-btn-link[disabled].active,.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:transparent;border-color:transparent;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-link-disabled.active>a:only-child,.ant-btn-link-disabled:active>a:only-child,.ant-btn-link-disabled:focus>a:only-child,.ant-btn-link-disabled:hover>a:only-child,.ant-btn-link-disabled>a:only-child,.ant-btn-link.disabled.active>a:only-child,.ant-btn-link.disabled:active>a:only-child,.ant-btn-link.disabled:focus>a:only-child,.ant-btn-link.disabled:hover>a:only-child,.ant-btn-link.disabled>a:only-child,.ant-btn-link[disabled].active>a:only-child,.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-link-disabled>a:only-child:after,.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-link.disabled>a:only-child:after,.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-icon-only{width:32px;height:32px;padding:0;font-size:16px;border-radius:2px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;padding:0;font-size:18px;border-radius:2px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;padding:0;font-size:14px;border-radius:2px}.ant-btn-icon-only>i{vertical-align:middle}.ant-btn-round{height:32px;padding:0 16px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;padding:0 20px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;padding:0 12px;font-size:14px;border-radius:24px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle,.ant-btn-circle-outline{min-width:32px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle-outline.ant-btn-lg,.ant-btn-circle.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle-outline.ant-btn-sm,.ant-btn-circle.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;display:none;background:#fff;border-radius:inherit;opacity:.35;-webkit-transition:opacity .2s;transition:opacity .2s;content:"";pointer-events:none}.ant-btn .anticon{-webkit-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizeSpeed}.ant-btn.ant-btn-loading{position:relative}.ant-btn.ant-btn-loading:not([disabled]){pointer-events:none}.ant-btn.ant-btn-loading:before{display:block}.ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only){padding-left:29px}.ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) .anticon:not(:last-child){margin-left:-14px}.ant-btn-sm.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only){padding-left:24px}.ant-btn-sm.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) .anticon{margin-left:-17px}.ant-btn-group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn.active,.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn.active,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn:disabled,.ant-btn-group>span>.ant-btn:disabled{z-index:0}.ant-btn-group>.ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;padding:0 15px;font-size:16px;border-radius:0;line-height:38px}.ant-btn-group-lg>.ant-btn.ant-btn-icon-only{width:40px;height:40px;padding-right:0;padding-left:0}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;padding:0 7px;font-size:14px;border-radius:0;line-height:22px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm>.ant-btn.ant-btn-icon-only{width:24px;height:24px;padding-right:0;padding-left:0}.ant-btn+.ant-btn-group,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group>span+span,.ant-btn-group span+.ant-btn{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{padding-right:8px;border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{padding-left:8px;border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn-background-ghost{color:#fff;background:transparent!important;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#2f54eb;background-color:transparent;border-color:#2f54eb;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#597ef7;background-color:transparent;border-color:#597ef7}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#1d39c4;background-color:transparent;border-color:#1d39c4}.ant-btn-background-ghost.ant-btn-primary.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary-disabled,.ant-btn-background-ghost.ant-btn-primary-disabled.active,.ant-btn-background-ghost.ant-btn-primary-disabled:active,.ant-btn-background-ghost.ant-btn-primary-disabled:focus,.ant-btn-background-ghost.ant-btn-primary-disabled:hover,.ant-btn-background-ghost.ant-btn-primary.disabled,.ant-btn-background-ghost.ant-btn-primary.disabled.active,.ant-btn-background-ghost.ant-btn-primary.disabled:active,.ant-btn-background-ghost.ant-btn-primary.disabled:focus,.ant-btn-background-ghost.ant-btn-primary.disabled:hover,.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled].active,.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger.active,.ant-btn-background-ghost.ant-btn-danger:active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger-disabled,.ant-btn-background-ghost.ant-btn-danger-disabled.active,.ant-btn-background-ghost.ant-btn-danger-disabled:active,.ant-btn-background-ghost.ant-btn-danger-disabled:focus,.ant-btn-background-ghost.ant-btn-danger-disabled:hover,.ant-btn-background-ghost.ant-btn-danger.disabled,.ant-btn-background-ghost.ant-btn-danger.disabled.active,.ant-btn-background-ghost.ant-btn-danger.disabled:active,.ant-btn-background-ghost.ant-btn-danger.disabled:focus,.ant-btn-background-ghost.ant-btn-danger.disabled:hover,.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled].active,.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link{color:#2f54eb;background-color:transparent;border-color:transparent;text-shadow:none;color:#fff}.ant-btn-background-ghost.ant-btn-link>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#597ef7;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#1d39c4;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link.active>a:only-child,.ant-btn-background-ghost.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-link[disabled].active,.ant-btn-background-ghost.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-link-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn-block{width:100%}.ant-btn:empty{vertical-align:top}a.ant-btn{padding-top:.1px;line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-fullcalendar{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";border-top:1px solid #d9d9d9;outline:none}.ant-select.ant-fullcalendar-year-select{min-width:90px}.ant-select.ant-fullcalendar-year-select.ant-select-sm{min-width:70px}.ant-select.ant-fullcalendar-month-select{min-width:80px;margin-left:8px}.ant-select.ant-fullcalendar-month-select.ant-select-sm{min-width:70px}.ant-fullcalendar-header{padding:11px 16px 11px 0;text-align:right}.ant-fullcalendar-header .ant-select-dropdown{text-align:left}.ant-fullcalendar-header .ant-radio-group{margin-left:8px;text-align:left}.ant-fullcalendar-header label.ant-radio-button{height:22px;padding:0 10px;line-height:20px}.ant-fullcalendar-date-panel{position:relative;outline:none}.ant-fullcalendar-calendar-body{padding:8px 12px}.ant-fullcalendar table{width:100%;max-width:100%;height:256px;background-color:transparent;border-collapse:collapse}.ant-fullcalendar table,.ant-fullcalendar td,.ant-fullcalendar th{border:0}.ant-fullcalendar td{position:relative}.ant-fullcalendar-calendar-table{margin-bottom:0;border-spacing:0}.ant-fullcalendar-column-header{width:33px;padding:0;line-height:18px;text-align:center}.ant-fullcalendar-column-header .ant-fullcalendar-column-header-inner{display:block;font-weight:400}.ant-fullcalendar-week-number-header .ant-fullcalendar-column-header-inner{display:none}.ant-fullcalendar-date,.ant-fullcalendar-month{text-align:center;-webkit-transition:all .3s;transition:all .3s}.ant-fullcalendar-value{display:block;width:24px;height:24px;margin:0 auto;padding:0;color:rgba(0,0,0,.65);line-height:24px;background:transparent;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.ant-fullcalendar-value:hover{background:#f0f5ff;cursor:pointer}.ant-fullcalendar-value:active{color:#fff;background:#2f54eb}.ant-fullcalendar-month-panel-cell .ant-fullcalendar-value{width:48px}.ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value,.ant-fullcalendar-today .ant-fullcalendar-value{-webkit-box-shadow:0 0 0 1px #2f54eb inset;box-shadow:inset 0 0 0 1px #2f54eb}.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value,.ant-fullcalendar-selected-day .ant-fullcalendar-value{color:#fff;background:#2f54eb}.ant-fullcalendar-disabled-cell-first-of-row .ant-fullcalendar-value{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-fullcalendar-disabled-cell-last-of-row .ant-fullcalendar-value{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-fullcalendar-last-month-cell .ant-fullcalendar-value,.ant-fullcalendar-next-month-btn-day .ant-fullcalendar-value{color:rgba(0,0,0,.25)}.ant-fullcalendar-month-panel-table{width:100%;table-layout:fixed;border-collapse:separate}.ant-fullcalendar-content{position:absolute;bottom:-9px;left:0;width:100%}.ant-fullcalendar-fullscreen{border-top:0}.ant-fullcalendar-fullscreen .ant-fullcalendar-table{table-layout:fixed}.ant-fullcalendar-fullscreen .ant-fullcalendar-header .ant-radio-group{margin-left:16px}.ant-fullcalendar-fullscreen .ant-fullcalendar-header label.ant-radio-button{height:32px;line-height:30px}.ant-fullcalendar-fullscreen .ant-fullcalendar-date,.ant-fullcalendar-fullscreen .ant-fullcalendar-month{display:block;height:116px;margin:0 4px;padding:4px 8px;color:rgba(0,0,0,.65);text-align:left;border-top:2px solid #e8e8e8;-webkit-transition:background .3s;transition:background .3s}.ant-fullcalendar-fullscreen .ant-fullcalendar-date:hover,.ant-fullcalendar-fullscreen .ant-fullcalendar-month:hover{background:#f0f5ff;cursor:pointer}.ant-fullcalendar-fullscreen .ant-fullcalendar-date:active,.ant-fullcalendar-fullscreen .ant-fullcalendar-month:active{background:#d6e4ff}.ant-fullcalendar-fullscreen .ant-fullcalendar-column-header{padding-right:12px;padding-bottom:5px;text-align:right}.ant-fullcalendar-fullscreen .ant-fullcalendar-value{width:auto;text-align:right;background:transparent}.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value{color:rgba(0,0,0,.65)}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date{background:transparent;border-top-color:#2f54eb}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value,.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value{-webkit-box-shadow:none;box-shadow:none}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date{background:#f0f5ff}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value{color:#2f54eb}.ant-fullcalendar-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date,.ant-fullcalendar-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date{color:rgba(0,0,0,.25)}.ant-fullcalendar-fullscreen .ant-fullcalendar-content{position:static;width:auto;height:88px;overflow-y:auto}.ant-fullcalendar-disabled-cell .ant-fullcalendar-date,.ant-fullcalendar-disabled-cell .ant-fullcalendar-date:hover{cursor:not-allowed}.ant-fullcalendar-disabled-cell:not(.ant-fullcalendar-today) .ant-fullcalendar-date,.ant-fullcalendar-disabled-cell:not(.ant-fullcalendar-today) .ant-fullcalendar-date:hover{background:transparent}.ant-fullcalendar-disabled-cell .ant-fullcalendar-value{width:auto;color:rgba(0,0,0,.25);border-radius:0;cursor:not-allowed}.ant-card{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;background:#fff;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.ant-card-hoverable{cursor:pointer}.ant-card-hoverable:hover{border-color:rgba(0,0,0,.09);-webkit-box-shadow:0 2px 8px rgba(0,0,0,.09);box-shadow:0 2px 8px rgba(0,0,0,.09)}.ant-card-bordered{border:1px solid #e8e8e8}.ant-card-head{min-height:48px;margin-bottom:-1px;padding:0 24px;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;background:transparent;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0;zoom:1}.ant-card-head:after,.ant-card-head:before{display:table;content:""}.ant-card-head:after{clear:both}.ant-card-head-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ant-card-head-title{display:inline-block;-webkit-box-flex:1;-ms-flex:1;flex:1;padding:16px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-card-head .ant-tabs{clear:both;margin-bottom:-17px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px}.ant-card-head .ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-card-extra{float:right;margin-left:auto;padding:16px 0;color:rgba(0,0,0,.65);font-weight:400;font-size:14px}.ant-card-body{padding:24px;zoom:1}.ant-card-body:after,.ant-card-body:before{display:table;content:""}.ant-card-body:after{clear:both}.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body{margin:-1px 0 0 -1px;padding:0}.ant-card-grid{float:left;width:33.33%;padding:24px;border:0;border-radius:0;-webkit-box-shadow:1px 0 0 0 #e8e8e8,0 1px 0 0 #e8e8e8,1px 1px 0 0 #e8e8e8,1px 0 0 0 #e8e8e8 inset,0 1px 0 0 #e8e8e8 inset;box-shadow:1px 0 0 0 #e8e8e8,0 1px 0 0 #e8e8e8,1px 1px 0 0 #e8e8e8,inset 1px 0 0 0 #e8e8e8,inset 0 1px 0 0 #e8e8e8;-webkit-transition:all .3s;transition:all .3s}.ant-card-grid-hoverable:hover{position:relative;z-index:1;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-card-contain-tabs>.ant-card-head .ant-card-head-title{min-height:32px;padding-bottom:0}.ant-card-contain-tabs>.ant-card-head .ant-card-extra{padding-bottom:0}.ant-card-cover>*{display:block;width:100%}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{margin:0;padding:0;list-style:none;background:#fafafa;border-top:1px solid #e8e8e8;zoom:1}.ant-card-actions:after,.ant-card-actions:before{display:table;content:""}.ant-card-actions:after{clear:both}.ant-card-actions>li{float:left;margin:12px 0;color:rgba(0,0,0,.45);text-align:center}.ant-card-actions>li>span{position:relative;display:block;min-width:32px;font-size:14px;line-height:22px;cursor:pointer}.ant-card-actions>li>span:hover{color:#2f54eb;-webkit-transition:color .3s;transition:color .3s}.ant-card-actions>li>span>.anticon,.ant-card-actions>li>span a:not(.ant-btn){display:inline-block;width:100%;color:rgba(0,0,0,.45);line-height:22px;-webkit-transition:color .3s;transition:color .3s}.ant-card-actions>li>span>.anticon:hover,.ant-card-actions>li>span a:not(.ant-btn):hover{color:#2f54eb}.ant-card-actions>li>span>.anticon{font-size:16px;line-height:22px}.ant-card-actions>li:not(:last-child){border-right:1px solid #e8e8e8}.ant-card-type-inner .ant-card-head{padding:0 24px;background:#fafafa}.ant-card-type-inner .ant-card-head-title{padding:12px 0;font-size:14px}.ant-card-type-inner .ant-card-body{padding:16px 24px}.ant-card-type-inner .ant-card-extra{padding:13.5px 0}.ant-card-meta{margin:-4px 0;zoom:1}.ant-card-meta:after,.ant-card-meta:before{display:table;content:""}.ant-card-meta:after{clear:both}.ant-card-meta-avatar{float:left;padding-right:16px}.ant-card-meta-detail{overflow:hidden}.ant-card-meta-detail>div:not(:last-child){margin-bottom:8px}.ant-card-meta-title{overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;white-space:nowrap;text-overflow:ellipsis}.ant-card-meta-description{color:rgba(0,0,0,.45)}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-card-loading-content p{margin:0}.ant-card-loading-block{height:14px;margin:4px 0;background:-webkit-gradient(linear,left top,right top,from(rgba(207,216,220,.2)),color-stop(rgba(207,216,220,.4)),to(rgba(207,216,220,.2)));background:linear-gradient(90deg,rgba(207,216,220,.2),rgba(207,216,220,.4),rgba(207,216,220,.2));background-size:600% 600%;border-radius:2px;-webkit-animation:card-loading 1.4s ease infinite;animation:card-loading 1.4s ease infinite}@-webkit-keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.ant-card-small>.ant-card-head{min-height:36px;padding:0 12px;font-size:14px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-head-title{padding:8px 0}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{padding:8px 0;font-size:14px}.ant-card-small>.ant-card-body{padding:12px}.ant-carousel{margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.ant-carousel,.ant-carousel .slick-slider{-webkit-box-sizing:border-box;box-sizing:border-box}.ant-carousel .slick-slider{position:relative;display:block;-webkit-touch-callout:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.ant-carousel .slick-list{position:relative;display:block;margin:0;padding:0;overflow:hidden}.ant-carousel .slick-list:focus{outline:none}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{-webkit-transform:translateZ(0);transform:translateZ(0)}.ant-carousel .slick-track{position:relative;top:0;left:0;display:block}.ant-carousel .slick-track:after,.ant-carousel .slick-track:before{display:table;content:""}.ant-carousel .slick-track:after{clear:both}.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .ant-carousel .slick-slide{float:right}.ant-carousel .slick-slide img{display:block}.ant-carousel .slick-slide.slick-loading img{display:none}.ant-carousel .slick-slide.dragging img{pointer-events:none}.ant-carousel .slick-initialized .slick-slide{display:block}.ant-carousel .slick-loading .slick-slide{visibility:hidden}.ant-carousel .slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{position:absolute;top:50%;display:block;width:20px;height:20px;margin-top:-10px;padding:0;font-size:0;line-height:0;border:0;cursor:pointer}.ant-carousel .slick-next,.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{color:transparent;background:transparent;outline:none}.ant-carousel .slick-next:focus:before,.ant-carousel .slick-next:hover:before,.ant-carousel .slick-prev:focus:before,.ant-carousel .slick-prev:hover:before{opacity:1}.ant-carousel .slick-next.slick-disabled:before,.ant-carousel .slick-prev.slick-disabled:before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev:before{content:"←"}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-next:before{content:"→"}.ant-carousel .slick-dots{position:absolute;display:block;width:100%;height:3px;margin:0;padding:0;text-align:center;list-style:none}.ant-carousel .slick-dots-bottom{bottom:12px}.ant-carousel .slick-dots-top{top:12px}.ant-carousel .slick-dots li{position:relative;display:inline-block;margin:0 2px;padding:0;text-align:center;vertical-align:top}.ant-carousel .slick-dots li button{display:block;width:16px;height:3px;padding:0;color:transparent;font-size:0;background:#fff;border:0;border-radius:1px;outline:none;cursor:pointer;opacity:.3;-webkit-transition:all .5s;transition:all .5s}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.75}.ant-carousel .slick-dots li.slick-active button{width:24px;background:#fff;opacity:1}.ant-carousel .slick-dots li.slick-active button:focus,.ant-carousel .slick-dots li.slick-active button:hover{opacity:1}.ant-carousel-vertical .slick-dots{top:50%;bottom:auto;width:3px;height:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-carousel-vertical .slick-dots-left{left:12px}.ant-carousel-vertical .slick-dots-right{right:12px}.ant-carousel-vertical .slick-dots li{margin:0 2px;vertical-align:baseline}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.ant-cascader{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.ant-cascader-input.ant-input{position:static;width:100%;padding-right:24px;background-color:transparent!important;cursor:pointer}.ant-cascader-picker-show-search .ant-cascader-input.ant-input{position:relative}.ant-cascader-picker{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;background-color:#fff;border-radius:2px;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s}.ant-cascader-picker-with-value .ant-cascader-picker-label{color:transparent}.ant-cascader-picker-disabled{color:rgba(0,0,0,.25);background:#f5f5f5;cursor:not-allowed}.ant-cascader-picker-disabled .ant-cascader-input{cursor:not-allowed}.ant-cascader-picker:focus .ant-cascader-input{border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:rgba(0,0,0,.25)}.ant-cascader-picker-label{position:absolute;top:50%;left:0;width:100%;height:20px;margin-top:-10px;padding:0 20px 0 12px;overflow:hidden;line-height:20px;white-space:nowrap;text-overflow:ellipsis}.ant-cascader-picker-clear{position:absolute;top:50%;right:12px;z-index:2;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;line-height:12px;background:#fff;cursor:pointer;opacity:0;-webkit-transition:color .3s ease,opacity .15s ease;transition:color .3s ease,opacity .15s ease}.ant-cascader-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-cascader-picker:hover .ant-cascader-picker-clear{opacity:1}.ant-cascader-picker-arrow{position:absolute;top:50%;right:12px;z-index:1;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;line-height:12px;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.ant-cascader-picker-arrow.ant-cascader-picker-arrow-expand{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ant-cascader-picker-label:hover+.ant-cascader-input{border-color:#597ef7;border-right-width:1px!important}.ant-cascader-picker-small .ant-cascader-picker-arrow,.ant-cascader-picker-small .ant-cascader-picker-clear{right:8px}.ant-cascader-menus{position:absolute;z-index:1050;font-size:14px;white-space:nowrap;background:#fff;border-radius:2px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-cascader-menus ol,.ant-cascader-menus ul{margin:0;list-style:none}.ant-cascader-menus-empty,.ant-cascader-menus-hidden{display:none}.ant-cascader-menus.slide-up-appear.slide-up-appear-active.ant-cascader-menus-placement-bottomLeft,.ant-cascader-menus.slide-up-enter.slide-up-enter-active.ant-cascader-menus-placement-bottomLeft{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-cascader-menus.slide-up-appear.slide-up-appear-active.ant-cascader-menus-placement-topLeft,.ant-cascader-menus.slide-up-enter.slide-up-enter-active.ant-cascader-menus-placement-topLeft{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-cascader-menus.slide-up-leave.slide-up-leave-active.ant-cascader-menus-placement-bottomLeft{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-cascader-menus.slide-up-leave.slide-up-leave-active.ant-cascader-menus-placement-topLeft{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-cascader-menu{display:inline-block;min-width:111px;height:180px;margin:0;padding:4px 0;overflow:auto;vertical-align:top;list-style:none;border-right:1px solid #e8e8e8;-ms-overflow-style:-ms-autohiding-scrollbar}.ant-cascader-menu:first-child{border-radius:2px 0 0 2px}.ant-cascader-menu:last-child{margin-right:-1px;border-right-color:transparent;border-radius:0 2px 2px 0}.ant-cascader-menu:only-child{border-radius:2px}.ant-cascader-menu-item{padding:5px 12px;line-height:22px;white-space:nowrap;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-cascader-menu-item:hover{background:#f0f5ff}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:transparent}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{font-weight:600;background-color:#fafafa}.ant-cascader-menu-item-expand{position:relative;padding-right:24px}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg);position:absolute;right:12px;color:rgba(0,0,0,.45)}:root .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,:root .ant-cascader-menu-item-loading-icon{font-size:12px}.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon{color:rgba(0,0,0,.25)}.ant-cascader-menu-item .ant-cascader-menu-item-keyword{color:#f5222d}@-webkit-keyframes antCheckboxEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@keyframes antCheckboxEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}.ant-checkbox{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;top:-.09em;display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;outline:none;cursor:pointer}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#2f54eb}.ant-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #2f54eb;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;transition:all .3s}.ant-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-checkbox-checked .ant-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-checkbox-checked .ant-checkbox-inner{background-color:#2f54eb;border-color:#2f54eb}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;animation-name:none}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-checkbox-disabled .ant-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;animation-name:none}.ant-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block;line-height:unset;cursor:pointer}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox+span{padding-right:8px;padding-left:8px}.ant-checkbox-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block}.ant-checkbox-group-item{display:inline-block;margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#2f54eb;border:0;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-collapse{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 16px;padding-left:40px;color:rgba(0,0,0,.85);line-height:22px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;left:16px;display:inline-block;font-size:12px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow>*{line-height:1}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{display:inline-block}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow:before{display:none}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow .ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow-icon{display:block}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{-webkit-transition:-webkit-transform .24s;transition:-webkit-transform .24s;transition:transform .24s;transition:transform .24s,-webkit-transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{float:right}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{padding:12px 16px;padding-right:40px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{right:16px;left:auto}.ant-collapse-anim-active{-webkit-transition:height .2s cubic-bezier(.215,.61,.355,1);transition:height .2s cubic-bezier(.215,.61,.355,1)}.ant-collapse-content{overflow:hidden;color:rgba(0,0,0,.65);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-inactive{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-comment{position:relative}.ant-comment-inner{display:-webkit-box;display:-ms-flexbox;display:flex;padding:16px 0}.ant-comment-avatar{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-right:12px;cursor:pointer}.ant-comment-avatar img{width:32px;height:32px;border-radius:50%}.ant-comment-content{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:1px;font-size:14px;word-wrap:break-word}.ant-comment-content-author{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:4px;font-size:14px}.ant-comment-content-author>a,.ant-comment-content-author>span{padding-right:8px;font-size:12px;line-height:18px}.ant-comment-content-author-name{color:rgba(0,0,0,.45);font-size:14px;-webkit-transition:color .3s;transition:color .3s}.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:rgba(0,0,0,.45)}.ant-comment-content-author-time{color:#ccc;white-space:nowrap;cursor:auto}.ant-comment-content-detail p{white-space:pre-wrap}.ant-comment-actions{margin-top:12px;padding-left:0}.ant-comment-actions>li{display:inline-block;color:rgba(0,0,0,.45)}.ant-comment-actions>li>span{padding-right:10px;color:rgba(0,0,0,.45);font-size:12px;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-comment-actions>li>span:hover{color:#595959}.ant-comment-nested{margin-left:44px}.ant-calendar-picker-container{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;z-index:1050;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-topLeft,.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-topRight,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-topLeft,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-bottomLeft,.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-bottomRight,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-bottomLeft,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-topLeft,.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-bottomLeft,.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-calendar-picker{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;outline:none;cursor:text;-webkit-transition:opacity .3s;transition:opacity .3s}.ant-calendar-picker-input{outline:none}.ant-calendar-picker-input.ant-input{line-height:1.5}.ant-calendar-picker-input.ant-input-sm{padding-top:0;padding-bottom:0}.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#597ef7}.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-calendar-picker-clear,.ant-calendar-picker-icon{position:absolute;top:50%;right:12px;z-index:1;width:14px;height:14px;margin-top:-7px;font-size:12px;line-height:14px;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-picker-clear{z-index:2;color:rgba(0,0,0,.25);font-size:14px;background:#fff;cursor:pointer;opacity:0;pointer-events:none}.ant-calendar-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-calendar-picker:hover .ant-calendar-picker-clear{opacity:1;pointer-events:auto}.ant-calendar-picker-icon{display:inline-block;color:rgba(0,0,0,.25);font-size:14px;line-height:1}.ant-input-disabled+.ant-calendar-picker-icon{cursor:not-allowed}.ant-calendar-picker-small .ant-calendar-picker-clear,.ant-calendar-picker-small .ant-calendar-picker-icon{right:8px}.ant-calendar{position:relative;width:280px;font-size:14px;line-height:1.5;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #fff;border-radius:2px;outline:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-calendar-input-wrap{height:34px;padding:6px 10px;border-bottom:1px solid #e8e8e8}.ant-calendar-input{width:100%;height:22px;color:rgba(0,0,0,.65);background:#fff;border:0;outline:0;cursor:auto}.ant-calendar-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-calendar-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-calendar-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-calendar-input:placeholder-shown{text-overflow:ellipsis}.ant-calendar-week-number{width:286px}.ant-calendar-week-number-cell{text-align:center}.ant-calendar-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-header a:hover{color:#597ef7}.ant-calendar-header .ant-calendar-century-select,.ant-calendar-header .ant-calendar-decade-select,.ant-calendar-header .ant-calendar-month-select,.ant-calendar-header .ant-calendar-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-header .ant-calendar-century-select-arrow,.ant-calendar-header .ant-calendar-decade-select-arrow,.ant-calendar-header .ant-calendar-month-select-arrow,.ant-calendar-header .ant-calendar-year-select-arrow{display:none}.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-next-month-btn,.ant-calendar-header .ant-calendar-next-year-btn,.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-prev-month-btn,.ant-calendar-header .ant-calendar-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-prev-year-btn{left:7px;height:100%}.ant-calendar-header .ant-calendar-prev-century-btn:after,.ant-calendar-header .ant-calendar-prev-century-btn:before,.ant-calendar-header .ant-calendar-prev-decade-btn:after,.ant-calendar-header .ant-calendar-prev-decade-btn:before,.ant-calendar-header .ant-calendar-prev-year-btn:after,.ant-calendar-header .ant-calendar-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-header .ant-calendar-prev-century-btn:hover:after,.ant-calendar-header .ant-calendar-prev-century-btn:hover:before,.ant-calendar-header .ant-calendar-prev-decade-btn:hover:after,.ant-calendar-header .ant-calendar-prev-decade-btn:hover:before,.ant-calendar-header .ant-calendar-prev-year-btn:hover:after,.ant-calendar-header .ant-calendar-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-prev-century-btn:after,.ant-calendar-header .ant-calendar-prev-decade-btn:after,.ant-calendar-header .ant-calendar-prev-year-btn:after{display:none;position:relative;left:-3px;display:inline-block}.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-next-year-btn{right:7px;height:100%}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-century-btn:before,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:before,.ant-calendar-header .ant-calendar-next-year-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-header .ant-calendar-next-century-btn:hover:after,.ant-calendar-header .ant-calendar-next-century-btn:hover:before,.ant-calendar-header .ant-calendar-next-decade-btn:hover:after,.ant-calendar-header .ant-calendar-next-decade-btn:hover:before,.ant-calendar-header .ant-calendar-next-year-btn:hover:after,.ant-calendar-header .ant-calendar-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:after{display:none}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-century-btn:before,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:before,.ant-calendar-header .ant-calendar-next-year-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-header .ant-calendar-next-century-btn:before,.ant-calendar-header .ant-calendar-next-decade-btn:before,.ant-calendar-header .ant-calendar-next-year-btn:before{position:relative;left:3px}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:after{display:inline-block}.ant-calendar-header .ant-calendar-prev-month-btn{left:29px;height:100%}.ant-calendar-header .ant-calendar-prev-month-btn:after,.ant-calendar-header .ant-calendar-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-header .ant-calendar-prev-month-btn:hover:after,.ant-calendar-header .ant-calendar-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-prev-month-btn:after{display:none}.ant-calendar-header .ant-calendar-next-month-btn{right:29px;height:100%}.ant-calendar-header .ant-calendar-next-month-btn:after,.ant-calendar-header .ant-calendar-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-header .ant-calendar-next-month-btn:hover:after,.ant-calendar-header .ant-calendar-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-next-month-btn:after{display:none}.ant-calendar-header .ant-calendar-next-month-btn:after,.ant-calendar-header .ant-calendar-next-month-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-body{padding:8px 12px}.ant-calendar table{width:100%;max-width:100%;background-color:transparent;border-collapse:collapse}.ant-calendar table,.ant-calendar td,.ant-calendar th{text-align:center;border:0}.ant-calendar-calendar-table{margin-bottom:0;border-spacing:0}.ant-calendar-column-header{width:33px;padding:6px 0;line-height:18px;text-align:center}.ant-calendar-column-header .ant-calendar-column-header-inner{display:block;font-weight:400}.ant-calendar-week-number-header .ant-calendar-column-header-inner{display:none}.ant-calendar-cell{height:30px;padding:3px 0}.ant-calendar-date{display:block;width:24px;height:24px;margin:0 auto;padding:0;color:rgba(0,0,0,.65);line-height:22px;text-align:center;background:transparent;border:1px solid transparent;border-radius:2px;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-calendar-date-panel{position:relative;outline:none}.ant-calendar-date:hover{background:#f0f5ff;cursor:pointer}.ant-calendar-date:active{color:#fff;background:#597ef7}.ant-calendar-today .ant-calendar-date{color:#2f54eb;font-weight:700;border-color:#2f54eb}.ant-calendar-selected-day .ant-calendar-date{background:#d6e4ff}.ant-calendar-last-month-cell .ant-calendar-date,.ant-calendar-last-month-cell .ant-calendar-date:hover,.ant-calendar-next-month-btn-day .ant-calendar-date,.ant-calendar-next-month-btn-day .ant-calendar-date:hover{color:rgba(0,0,0,.25);background:transparent;border-color:transparent}.ant-calendar-disabled-cell .ant-calendar-date{position:relative;width:auto;color:rgba(0,0,0,.25);background:#f5f5f5;border:1px solid transparent;border-radius:0;cursor:not-allowed}.ant-calendar-disabled-cell .ant-calendar-date:hover{background:#f5f5f5}.ant-calendar-disabled-cell.ant-calendar-selected-day .ant-calendar-date:before{position:absolute;top:-1px;left:5px;width:24px;height:24px;background:rgba(0,0,0,.1);border-radius:2px;content:""}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date{position:relative;padding-right:5px;padding-left:5px}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date:before{position:absolute;top:-1px;left:5px;width:24px;height:24px;border:1px solid rgba(0,0,0,.25);border-radius:2px;content:" "}.ant-calendar-disabled-cell-first-of-row .ant-calendar-date{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-calendar-disabled-cell-last-of-row .ant-calendar-date{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-calendar-footer{padding:0 12px;line-height:38px;border-top:1px solid #e8e8e8}.ant-calendar-footer:empty{border-top:0}.ant-calendar-footer-btn{display:block;text-align:center}.ant-calendar-footer-extra{text-align:left}.ant-calendar .ant-calendar-clear-btn,.ant-calendar .ant-calendar-today-btn{display:inline-block;margin:0 0 0 8px;text-align:center}.ant-calendar .ant-calendar-clear-btn-disabled,.ant-calendar .ant-calendar-today-btn-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-calendar .ant-calendar-clear-btn:only-child,.ant-calendar .ant-calendar-today-btn:only-child{margin:0}.ant-calendar .ant-calendar-clear-btn{position:absolute;top:7px;right:5px;display:none;width:20px;height:20px;margin:0;overflow:hidden;line-height:20px;text-align:center;text-indent:-76px}.ant-calendar .ant-calendar-clear-btn:after{display:inline-block;width:20px;color:rgba(0,0,0,.25);font-size:14px;line-height:1;text-indent:43px;-webkit-transition:color .3s ease;transition:color .3s ease}.ant-calendar .ant-calendar-clear-btn:hover:after{color:rgba(0,0,0,.45)}.ant-calendar .ant-calendar-ok-btn{position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;border:1px solid transparent;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.015);box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:manipulation;touch-action:manipulation;height:32px;padding:0 15px;color:#fff;background-color:#2f54eb;border-color:#2f54eb;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045);height:24px;padding:0 7px;font-size:14px;border-radius:2px;line-height:22px}.ant-calendar .ant-calendar-ok-btn>.anticon{line-height:1}.ant-calendar .ant-calendar-ok-btn,.ant-calendar .ant-calendar-ok-btn:active,.ant-calendar .ant-calendar-ok-btn:focus{outline:0}.ant-calendar .ant-calendar-ok-btn:not([disabled]):hover{text-decoration:none}.ant-calendar .ant-calendar-ok-btn:not([disabled]):active{outline:0;-webkit-box-shadow:none;box-shadow:none}.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled]{cursor:not-allowed}.ant-calendar .ant-calendar-ok-btn.disabled>*,.ant-calendar .ant-calendar-ok-btn[disabled]>*{pointer-events:none}.ant-calendar .ant-calendar-ok-btn-lg{height:40px;padding:0 15px;font-size:16px;border-radius:2px}.ant-calendar .ant-calendar-ok-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:2px}.ant-calendar .ant-calendar-ok-btn>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{color:#fff;background-color:#597ef7;border-color:#597ef7}.ant-calendar .ant-calendar-ok-btn:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn:hover>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{color:#fff;background-color:#1d39c4;border-color:#1d39c4}.ant-calendar .ant-calendar-ok-btn.active>a:only-child,.ant-calendar .ant-calendar-ok-btn:active>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn.active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn[disabled].active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-calendar .ant-calendar-ok-btn-disabled.active>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled:active>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled:hover>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled.active>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled:active>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled:hover>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled].active>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]:active>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]:hover>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn-disabled.active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled:active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled:hover>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled.active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled:active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled:hover>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled].active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]:active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]:hover>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar-range-picker-input{width:44%;height:99%;text-align:center;background-color:transparent;border:0;outline:0}.ant-calendar-range-picker-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-calendar-range-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-calendar-range-picker-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-calendar-range-picker-input:placeholder-shown{text-overflow:ellipsis}.ant-calendar-range-picker-input[disabled]{cursor:not-allowed}.ant-calendar-range-picker-separator{display:inline-block;min-width:10px;height:100%;color:rgba(0,0,0,.45);white-space:nowrap;text-align:center;vertical-align:top;pointer-events:none}.ant-input-disabled .ant-calendar-range-picker-separator{color:rgba(0,0,0,.25)}.ant-calendar-range{width:552px;overflow:hidden}.ant-calendar-range .ant-calendar-date-panel:after{display:block;clear:both;height:0;visibility:hidden;content:"."}.ant-calendar-range-part{position:relative;width:50%}.ant-calendar-range-left{float:left}.ant-calendar-range-left .ant-calendar-time-picker-inner{border-right:1px solid #e8e8e8}.ant-calendar-range-right{float:right}.ant-calendar-range-right .ant-calendar-time-picker-inner{border-left:1px solid #e8e8e8}.ant-calendar-range-middle{position:absolute;left:50%;z-index:1;height:34px;margin:1px 0 0 0;padding:0 200px 0 0;color:rgba(0,0,0,.45);line-height:34px;text-align:center;-webkit-transform:translateX(-50%);transform:translateX(-50%);pointer-events:none}.ant-calendar-range-right .ant-calendar-date-input-wrap{margin-left:-90px}.ant-calendar-range.ant-calendar-time .ant-calendar-range-middle{padding:0 10px 0 0;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#2f54eb;background:#d6e4ff;border-color:#2f54eb}.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{color:#fff;background:#2f54eb;border:1px solid transparent}.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#2f54eb}.ant-calendar-range.ant-calendar-time .ant-calendar-range-right .ant-calendar-date-input-wrap{margin-left:0}.ant-calendar-range .ant-calendar-input-wrap{position:relative;height:34px}.ant-calendar-range .ant-calendar-input,.ant-calendar-range .ant-calendar-time-picker-input{position:relative;display:inline-block;width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s;height:24px;padding-right:0;padding-left:0;line-height:24px;border:0;-webkit-box-shadow:none;box-shadow:none}.ant-calendar-range .ant-calendar-input::-moz-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:-moz-placeholder-shown,.ant-calendar-range .ant-calendar-time-picker-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-calendar-range .ant-calendar-input:placeholder-shown,.ant-calendar-range .ant-calendar-time-picker-input:placeholder-shown{text-overflow:ellipsis}.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#597ef7;border-right-width:1px!important}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-calendar-range .ant-calendar-input-disabled,.ant-calendar-range .ant-calendar-time-picker-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-calendar-range .ant-calendar-input-disabled:hover,.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-calendar-range .ant-calendar-input[disabled],.ant-calendar-range .ant-calendar-time-picker-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-calendar-range .ant-calendar-input[disabled]:hover,.ant-calendar-range .ant-calendar-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-calendar-range .ant-calendar-input,textarea.ant-calendar-range .ant-calendar-time-picker-input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-calendar-range .ant-calendar-input-lg,.ant-calendar-range .ant-calendar-time-picker-input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-calendar-range .ant-calendar-input-sm,.ant-calendar-range .ant-calendar-time-picker-input-sm{height:24px;padding:1px 7px}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{-webkit-box-shadow:none;box-shadow:none}.ant-calendar-range .ant-calendar-time-picker-icon{display:none}.ant-calendar-range.ant-calendar-week-number{width:574px}.ant-calendar-range.ant-calendar-week-number .ant-calendar-range-part{width:286px}.ant-calendar-range .ant-calendar-decade-panel,.ant-calendar-range .ant-calendar-month-panel,.ant-calendar-range .ant-calendar-year-panel{top:34px}.ant-calendar-range .ant-calendar-month-panel .ant-calendar-year-panel{top:0}.ant-calendar-range .ant-calendar-decade-panel-table,.ant-calendar-range .ant-calendar-month-panel-table,.ant-calendar-range .ant-calendar-year-panel-table{height:208px}.ant-calendar-range .ant-calendar-in-range-cell{position:relative;border-radius:0}.ant-calendar-range .ant-calendar-in-range-cell>div{position:relative;z-index:1}.ant-calendar-range .ant-calendar-in-range-cell:before{position:absolute;top:4px;right:0;bottom:4px;left:0;display:block;background:#f0f5ff;border:0;border-radius:0;content:""}.ant-calendar-range .ant-calendar-footer-extra{float:left}div.ant-calendar-range-quick-selector{text-align:left}div.ant-calendar-range-quick-selector>a{margin-right:8px}.ant-calendar-range .ant-calendar-decade-panel-header,.ant-calendar-range .ant-calendar-header,.ant-calendar-range .ant-calendar-month-panel-header,.ant-calendar-range .ant-calendar-year-panel-header{border-bottom:0}.ant-calendar-range .ant-calendar-body,.ant-calendar-range .ant-calendar-decade-panel-body,.ant-calendar-range .ant-calendar-month-panel-body,.ant-calendar-range .ant-calendar-year-panel-body{border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker{top:68px;z-index:2;width:100%;height:207px}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-panel{height:267px;margin-top:-34px}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-inner{height:100%;padding-top:40px;background:none}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox{display:inline-block;height:100%;background-color:#fff;border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-select{height:100%}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-select ul{max-height:100%}.ant-calendar-range.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn{margin-right:8px}.ant-calendar-range.ant-calendar-time .ant-calendar-today-btn{height:22px;margin:8px 12px;line-height:22px}.ant-calendar-range-with-ranges.ant-calendar-time .ant-calendar-time-picker{height:233px}.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body{border-top-color:transparent}.ant-calendar-time-picker{position:absolute;top:40px;width:100%;background-color:#fff}.ant-calendar-time-picker-panel{position:absolute;z-index:1050;width:100%}.ant-calendar-time-picker-inner{position:relative;display:inline-block;width:100%;overflow:hidden;font-size:14px;line-height:1.5;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;outline:none}.ant-calendar-time-picker-column-1,.ant-calendar-time-picker-column-1 .ant-calendar-time-picker-select,.ant-calendar-time-picker-combobox{width:100%}.ant-calendar-time-picker-column-2 .ant-calendar-time-picker-select{width:50%}.ant-calendar-time-picker-column-3 .ant-calendar-time-picker-select{width:33.33%}.ant-calendar-time-picker-column-4 .ant-calendar-time-picker-select{width:25%}.ant-calendar-time-picker-input-wrap{display:none}.ant-calendar-time-picker-select{position:relative;float:left;height:226px;overflow:hidden;font-size:14px;border-right:1px solid #e8e8e8}.ant-calendar-time-picker-select:hover{overflow-y:auto}.ant-calendar-time-picker-select:first-child{margin-left:0;border-left:0}.ant-calendar-time-picker-select:last-child{border-right:0}.ant-calendar-time-picker-select ul{width:100%;max-height:206px;margin:0;padding:0;list-style:none}.ant-calendar-time-picker-select li{width:100%;height:24px;margin:0;line-height:24px;text-align:center;list-style:none;cursor:pointer;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-time-picker-select li:last-child:after{display:block;height:202px;content:""}.ant-calendar-time-picker-select li:hover{background:#f0f5ff}.ant-calendar-time-picker-select li:focus{color:#2f54eb;font-weight:600;outline:none}li.ant-calendar-time-picker-select-option-selected{font-weight:600;background:#f5f5f5}li.ant-calendar-time-picker-select-option-disabled{color:rgba(0,0,0,.25)}li.ant-calendar-time-picker-select-option-disabled:hover{background:transparent;cursor:not-allowed}.ant-calendar-time .ant-calendar-day-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:34px}.ant-calendar-time .ant-calendar-footer{position:relative;height:auto}.ant-calendar-time .ant-calendar-footer-btn{text-align:right}.ant-calendar-time .ant-calendar-footer .ant-calendar-today-btn{float:left;margin:0}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn{display:inline-block;margin-right:8px}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled{color:rgba(0,0,0,.25)}.ant-calendar-month-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#fff;border-radius:2px;outline:none}.ant-calendar-month-panel>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.ant-calendar-month-panel-hidden{display:none}.ant-calendar-month-panel-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.ant-calendar-month-panel-header a:hover{color:#597ef7}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select-arrow,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select-arrow,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select-arrow,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select-arrow{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn{left:7px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:after{display:none;position:relative;left:-3px;display:inline-block}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn{right:7px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:before{position:relative;left:3px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after{display:inline-block}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn{left:29px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:after{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn{right:29px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:after{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-month-panel-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.ant-calendar-month-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-month-panel-footer .ant-calendar-footer-extra{padding:0 12px}.ant-calendar-month-panel-table{width:100%;height:100%;table-layout:fixed;border-collapse:separate}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{color:#fff;background:#2f54eb}.ant-calendar-month-panel-cell{text-align:center}.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month,.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover{color:rgba(0,0,0,.25);background:#f5f5f5;cursor:not-allowed}.ant-calendar-month-panel-month{display:inline-block;height:24px;margin:0 auto;padding:0 8px;color:rgba(0,0,0,.65);line-height:24px;text-align:center;background:transparent;border-radius:2px;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-calendar-month-panel-month:hover{background:#f0f5ff;cursor:pointer}.ant-calendar-year-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#fff;border-radius:2px;outline:none}.ant-calendar-year-panel>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.ant-calendar-year-panel-hidden{display:none}.ant-calendar-year-panel-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.ant-calendar-year-panel-header a:hover{color:#597ef7}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select-arrow,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select-arrow,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select-arrow,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select-arrow{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn{left:7px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:after{display:none;position:relative;left:-3px;display:inline-block}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn{right:7px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:before{position:relative;left:3px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after{display:inline-block}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn{left:29px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:after{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn{right:29px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:after{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-year-panel-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.ant-calendar-year-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-year-panel-footer .ant-calendar-footer-extra{padding:0 12px}.ant-calendar-year-panel-table{width:100%;height:100%;table-layout:fixed;border-collapse:separate}.ant-calendar-year-panel-cell{text-align:center}.ant-calendar-year-panel-year{display:inline-block;height:24px;margin:0 auto;padding:0 8px;color:rgba(0,0,0,.65);line-height:24px;text-align:center;background:transparent;border-radius:2px;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-calendar-year-panel-year:hover{background:#f0f5ff;cursor:pointer}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{color:#fff;background:#2f54eb}.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year{color:rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-decade-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:#fff;border-radius:2px;outline:none}.ant-calendar-decade-panel-hidden{display:none}.ant-calendar-decade-panel-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.ant-calendar-decade-panel-header a:hover{color:#597ef7}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select-arrow,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select-arrow,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select-arrow,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select-arrow{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn{left:7px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:after{display:none;position:relative;left:-3px;display:inline-block}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn{right:7px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:before{position:relative;left:3px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after{display:inline-block}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn{left:29px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:after{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn{right:29px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;-webkit-transform:rotate(-45deg) scale(.8);transform:rotate(-45deg) scale(.8);-webkit-transition:all .3s;transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:after{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:before{-webkit-transform:rotate(135deg) scale(.8);transform:rotate(135deg) scale(.8)}.ant-calendar-decade-panel-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.ant-calendar-decade-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-decade-panel-footer .ant-calendar-footer-extra{padding:0 12px}.ant-calendar-decade-panel-table{width:100%;height:100%;table-layout:fixed;border-collapse:separate}.ant-calendar-decade-panel-cell{white-space:nowrap;text-align:center}.ant-calendar-decade-panel-decade{display:inline-block;height:24px;margin:0 auto;padding:0 6px;color:rgba(0,0,0,.65);line-height:24px;text-align:center;background:transparent;border-radius:2px;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-calendar-decade-panel-decade:hover{background:#f0f5ff;cursor:pointer}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{color:#fff;background:#2f54eb}.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade{color:rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-month .ant-calendar-month-header-wrap{position:relative;height:288px}.ant-calendar-month .ant-calendar-month-panel,.ant-calendar-month .ant-calendar-year-panel{top:0;height:100%}.ant-calendar-week-number-cell{opacity:.5}.ant-calendar-week-number .ant-calendar-body tr{cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-calendar-week-number .ant-calendar-body tr:hover{background:#f0f5ff}.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{font-weight:700;background:#d6e4ff}.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date,.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date{color:rgba(0,0,0,.65);background:transparent}.ant-descriptions-title{margin-bottom:20px;color:rgba(0,0,0,.85);font-weight:700;font-size:16px;line-height:1.5}.ant-descriptions-view{width:100%;overflow:hidden;border-radius:2px}.ant-descriptions-view table{width:100%;table-layout:fixed}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:16px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{color:rgba(0,0,0,.85);font-weight:400;font-size:14px;line-height:1.5}.ant-descriptions-item-label:after{position:relative;top:-.5px;margin:0 8px 0 2px;content:" "}.ant-descriptions-item-colon:after{content:":"}.ant-descriptions-item-no-label:after{margin:0;content:""}.ant-descriptions-item-content{display:table-cell;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5}.ant-descriptions-item{padding-bottom:0}.ant-descriptions-item>span{display:inline-block}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:12px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-view>table{table-layout:auto}.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-bordered .ant-descriptions-item-label{padding:16px 24px;border-right:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-item-label:after{display:none}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:12px 24px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:8px 16px}.ant-divider{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";background:#e8e8e8}.ant-divider,.ant-divider-vertical{position:relative;top:-.06em;display:inline-block;width:1px;height:.9em;margin:0 8px;vertical-align:middle}.ant-divider-horizontal{display:block;clear:both;width:100%;min-width:100%;height:1px;margin:24px 0}.ant-divider-horizontal.ant-divider-with-text-center,.ant-divider-horizontal.ant-divider-with-text-left,.ant-divider-horizontal.ant-divider-with-text-right{display:table;margin:16px 0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;white-space:nowrap;text-align:center;background:transparent}.ant-divider-horizontal.ant-divider-with-text-center:after,.ant-divider-horizontal.ant-divider-with-text-center:before,.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-left:before,.ant-divider-horizontal.ant-divider-with-text-right:after,.ant-divider-horizontal.ant-divider-with-text-right:before{position:relative;top:50%;display:table-cell;width:50%;border-top:1px solid #e8e8e8;-webkit-transform:translateY(50%);transform:translateY(50%);content:""}.ant-divider-horizontal.ant-divider-with-text-left .ant-divider-inner-text,.ant-divider-horizontal.ant-divider-with-text-right .ant-divider-inner-text{display:inline-block;padding:0 10px}.ant-divider-horizontal.ant-divider-with-text-left:before{top:50%;width:5%}.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-right:before{top:50%;width:95%}.ant-divider-horizontal.ant-divider-with-text-right:after{top:50%;width:5%}.ant-divider-inner-text{display:inline-block;padding:0 24px}.ant-divider-dashed{background:none;border-color:#e8e8e8;border-style:dashed;border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed{border-top:0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed:before,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:before,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:before{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-drawer{position:fixed;z-index:1000;width:0;height:100%;-webkit-transition:height 0s ease .3s,width 0s ease .3s,-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:height 0s ease .3s,width 0s ease .3s,-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s;transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s,-webkit-transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer>*{-webkit-transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1),-webkit-box-shadow .3s cubic-bezier(.7,.3,.1,1);transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1),-webkit-box-shadow .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.1,1),-webkit-transform .3s cubic-bezier(.7,.3,.1,1),-webkit-box-shadow .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-content-wrapper{position:absolute}.ant-drawer .ant-drawer-content{width:100%;height:100%}.ant-drawer-left,.ant-drawer-right{top:0;width:0;height:100%}.ant-drawer-left .ant-drawer-content-wrapper,.ant-drawer-right .ant-drawer-content-wrapper{height:100%}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{width:100%;-webkit-transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),-webkit-transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-left.ant-drawer-open.no-mask,.ant-drawer-right.ant-drawer-open.no-mask{width:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:2px 0 8px rgba(0,0,0,.15);box-shadow:2px 0 8px rgba(0,0,0,.15)}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:-2px 0 8px rgba(0,0,0,.15);box-shadow:-2px 0 8px rgba(0,0,0,.15)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;-webkit-transform:translateX(1px);transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{left:0;width:100%;height:0%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;-webkit-transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),-webkit-transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-bottom.ant-drawer-open.no-mask,.ant-drawer-top.ant-drawer-open.no-mask{height:0%}.ant-drawer-top{top:0}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:0 -2px 8px rgba(0,0,0,.15);box-shadow:0 -2px 8px rgba(0,0,0,.15)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;-webkit-transform:translateY(1px);transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{height:100%;opacity:1;-webkit-transition:none;transition:none;-webkit-animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1);animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px}.ant-drawer-content{position:relative;z-index:1;overflow:auto;background-color:#fff;background-clip:padding-box;border:0}.ant-drawer-close{position:absolute;top:0;right:0;z-index:10;display:block;width:56px;height:56px;padding:0;color:rgba(0,0,0,.45);font-weight:700;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;text-rendering:auto}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-drawer-header{position:relative;padding:16px 24px;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0}.ant-drawer-header,.ant-drawer-header-no-title{color:rgba(0,0,0,.65);background:#fff}.ant-drawer-body{padding:24px;font-size:14px;line-height:1.5;word-wrap:break-word}.ant-drawer-wrapper-body{height:100%;overflow:auto}.ant-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0;background-color:rgba(0,0,0,.45);opacity:0;filter:alpha(opacity=45);-webkit-transition:opacity .3s linear,height 0s ease .3s;transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15)}@-webkit-keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}.ant-dropdown{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.ant-dropdown:before{position:absolute;top:-7px;right:0;bottom:-7px;left:-7px;z-index:-9999;opacity:.0001;content:" "}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:12px}.ant-dropdown-wrap .anticon-down:before{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.ant-dropdown-wrap-open .anticon-down:before{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden{display:none}.ant-dropdown-menu{position:relative;margin:0;padding:4px 0;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15);-webkit-transform:translateZ(0)}.ant-dropdown-menu-item-group-title{padding:5px 12px;color:rgba(0,0,0,.45);-webkit-transition:all .3s;transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050}.ant-dropdown-menu-submenu-popup>.ant-dropdown-menu{-webkit-transform-origin:0 0;transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em;padding:0}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 12px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-menu-submenu-title>span>.anticon:first-child{min-width:12px;margin-right:8px;font-size:12px}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{display:block;margin:-5px -12px;padding:5px 12px;color:rgba(0,0,0,.65);-webkit-transition:all .3s;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#2f54eb;background-color:#f0f5ff}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#f0f5ff}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{height:1px;margin:4px 0;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.45);font-style:normal;display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,:root .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{font-size:12px}.ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none}.ant-dropdown-menu-submenu-title{padding-right:26px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{position:absolute;top:0;left:100%;min-width:100%;margin-left:4px;-webkit-transform-origin:0 0;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#2f54eb}.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-link>.anticon.anticon-down,:root .ant-dropdown-trigger>.anticon.anticon-down{font-size:12px}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child){padding-right:8px;padding-left:8px}.ant-dropdown-button .anticon.anticon-down{display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-button .anticon.anticon-down{font-size:12px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:transparent}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#2f54eb}.ant-empty{margin:0 8px;font-size:14px;line-height:22px;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-description{margin:0}.ant-empty-footer{margin-top:16px}.ant-empty-normal{margin:32px 0;color:rgba(0,0,0,.25)}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{margin:8px 0;color:rgba(0,0,0,.25)}.ant-empty-small .ant-empty-image{height:35px}@media (max-width:575px){.ant-form-item-control-wrapper,.ant-form-item-label{display:block;width:100%}.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-form-item-label label:after{display:none}.ant-col-xs-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-xs-24.ant-form-item-label label:after{display:none}}@media (max-width:767px){.ant-col-sm-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-sm-24.ant-form-item-label label:after{display:none}}@media (max-width:991px){.ant-col-md-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-md-24.ant-form-item-label label:after{display:none}}@media (max-width:1199px){.ant-col-lg-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-lg-24.ant-form-item-label label:after{display:none}}@media (max-width:1599px){.ant-col-xl-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-xl-24.ant-form-item-label label:after{display:none}}@-webkit-keyframes antShowHelpIn{0%{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes antShowHelpOut{to{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}}@-webkit-keyframes diffZoomIn1{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes diffZoomIn2{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes diffZoomIn3{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}.ant-form{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.ant-form legend{display:block;width:100%;margin-bottom:20px;padding:0;color:rgba(0,0,0,.45);font-size:16px;line-height:inherit;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}.ant-form input[type=checkbox],.ant-form input[type=radio]{line-height:normal}.ant-form input[type=file]{display:block}.ant-form input[type=range]{display:block;width:100%}.ant-form select[multiple],.ant-form select[size]{height:auto}.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus,.ant-form input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ant-form output{display:block;padding-top:15px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5}.ant-form-item-required:before{display:inline-block;margin-right:4px;color:#f5222d;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.ant-form-hide-required-mark .ant-form-item-required:before{display:none}.ant-form-item-label>label{color:rgba(0,0,0,.85)}.ant-form-item-label>label:after{content:":";position:relative;top:-.5px;margin:0 8px 0 2px}.ant-form-item-label>label.ant-form-item-no-colon:after{content:" "}.ant-form-item{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";margin-bottom:24px;vertical-align:top}.ant-form-item label{position:relative}.ant-form-item label>.anticon{font-size:14px;vertical-align:top}.ant-form-item-control{position:relative;line-height:40px;zoom:1}.ant-form-item-control:after,.ant-form-item-control:before{display:table;content:""}.ant-form-item-control:after{clear:both}.ant-form-item-children{position:relative}.ant-form-item-with-help{margin-bottom:5px}.ant-form-item-label{display:inline-block;overflow:hidden;line-height:39.9999px;white-space:nowrap;text-align:right;vertical-align:middle}.ant-form-item-label-left{text-align:left}.ant-form-item .ant-switch{margin:2px 0 4px}.ant-form-explain,.ant-form-extra{clear:both;min-height:22px;margin-top:-2px;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5;-webkit-transition:color .3s cubic-bezier(.215,.61,.355,1);transition:color .3s cubic-bezier(.215,.61,.355,1)}.ant-form-explain{margin-bottom:-1px}.ant-form-extra{padding-top:4px}.ant-form-text{display:inline-block;padding-right:8px}.ant-form-split{display:block;text-align:center}form .has-feedback .ant-input{padding-right:30px}form .has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:18px}form .has-feedback .ant-input-affix-wrapper .ant-input{padding-right:49px}form .has-feedback .ant-input-affix-wrapper.ant-input-affix-wrapper-input-with-clear-btn .ant-input{padding-right:68px}form .has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,form .has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection__clear,form .has-feedback>.ant-select .ant-select-arrow,form .has-feedback>.ant-select .ant-select-selection__clear{right:28px}form .has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,form .has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}form .has-feedback .ant-cascader-picker-arrow{margin-right:17px}form .has-feedback .ant-calendar-picker-clear,form .has-feedback .ant-calendar-picker-icon,form .has-feedback .ant-cascader-picker-clear,form .has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix,form .has-feedback .ant-time-picker-clear,form .has-feedback .ant-time-picker-icon{right:28px}form .ant-mentions,form textarea.ant-input{height:auto;margin-bottom:4px}form .ant-upload{background:transparent}form input[type=checkbox],form input[type=radio]{width:14px;height:14px}form .ant-checkbox-inline,form .ant-radio-inline{display:inline-block;margin-left:8px;font-weight:400;vertical-align:middle;cursor:pointer}form .ant-checkbox-inline:first-child,form .ant-radio-inline:first-child{margin-left:0}form .ant-checkbox-vertical,form .ant-radio-vertical{display:block}form .ant-checkbox-vertical+.ant-checkbox-vertical,form .ant-radio-vertical+.ant-radio-vertical{margin-left:0}form .ant-input-number+.ant-form-text{margin-left:8px}form .ant-input-number-handler-wrap{z-index:2}form .ant-cascader-picker,form .ant-select{width:100%}form .ant-input-group .ant-cascader-picker,form .ant-input-group .ant-select{width:auto}form .ant-input-group-wrapper,form :not(.ant-input-group-wrapper)>.ant-input-group{display:inline-block;vertical-align:middle}form:not(.ant-form-vertical) .ant-input-group-wrapper,form:not(.ant-form-vertical) :not(.ant-input-group-wrapper)>.ant-input-group{position:relative;top:-1px}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-24.ant-form-item-label label:after,.ant-col-xl-24.ant-form-item-label label:after,.ant-form-vertical .ant-form-item-label label:after{display:none}.ant-form-vertical .ant-form-item{padding-bottom:8px}.ant-form-vertical .ant-form-item-control{line-height:1.5}.ant-form-vertical .ant-form-explain{margin-top:2px;margin-bottom:-5px}.ant-form-vertical .ant-form-extra{margin-top:2px;margin-bottom:-4px}@media (max-width:575px){.ant-form-item-control-wrapper,.ant-form-item-label{display:block;width:100%}.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-form-item-label label:after{display:none}.ant-col-xs-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-xs-24.ant-form-item-label label:after{display:none}}@media (max-width:767px){.ant-col-sm-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-sm-24.ant-form-item-label label:after{display:none}}@media (max-width:991px){.ant-col-md-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-md-24.ant-form-item-label label:after{display:none}}@media (max-width:1199px){.ant-col-lg-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-lg-24.ant-form-item-label label:after{display:none}}@media (max-width:1599px){.ant-col-xl-24.ant-form-item-label{display:block;margin:0;padding:0 0 8px;line-height:1.5;white-space:normal;text-align:left}.ant-col-xl-24.ant-form-item-label label:after{display:none}}.ant-form-inline .ant-form-item{display:inline-block;margin-right:16px;margin-bottom:0}.ant-form-inline .ant-form-item-with-help{margin-bottom:24px}.ant-form-inline .ant-form-item>.ant-form-item-control-wrapper,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-text,.ant-form-inline .has-feedback{display:inline-block}.has-error.has-feedback .ant-form-item-children-icon,.has-success.has-feedback .ant-form-item-children-icon,.has-warning.has-feedback .ant-form-item-children-icon,.is-validating.has-feedback .ant-form-item-children-icon{position:absolute;top:50%;right:0;z-index:1;width:32px;height:20px;margin-top:-10px;font-size:14px;line-height:20px;text-align:center;visibility:visible;-webkit-animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);pointer-events:none}.has-error.has-feedback .ant-form-item-children-icon svg,.has-success.has-feedback .ant-form-item-children-icon svg,.has-warning.has-feedback .ant-form-item-children-icon svg,.is-validating.has-feedback .ant-form-item-children-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.has-success.has-feedback .ant-form-item-children-icon{color:#52c41a;-webkit-animation-name:diffZoomIn1!important;animation-name:diffZoomIn1!important}.has-warning .ant-form-explain,.has-warning .ant-form-split{color:#faad14}.has-warning .ant-input,.has-warning .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input:focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.has-warning .ant-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.has-warning .ant-input-affix-wrapper .ant-input,.has-warning .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input-affix-wrapper .ant-input:focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.has-warning .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#faad14}.has-warning .ant-input-prefix{color:#faad14}.has-warning .ant-input-group-addon{color:#faad14;background-color:#fff;border-color:#faad14}.has-warning .has-feedback{color:#faad14}.has-warning.has-feedback .ant-form-item-children-icon{color:#faad14;-webkit-animation-name:diffZoomIn3!important;animation-name:diffZoomIn3!important}.has-warning .ant-select-selection,.has-warning .ant-select-selection:hover{border-color:#faad14}.has-warning .ant-select-focused .ant-select-selection,.has-warning .ant-select-open .ant-select-selection{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.has-warning .ant-calendar-picker-icon:after,.has-warning .ant-cascader-picker-arrow,.has-warning .ant-picker-icon:after,.has-warning .ant-select-arrow,.has-warning .ant-time-picker-icon:after{color:#faad14}.has-warning .ant-input-number,.has-warning .ant-time-picker-input{border-color:#faad14}.has-warning .ant-input-number-focused,.has-warning .ant-input-number:focus,.has-warning .ant-time-picker-input-focused,.has-warning .ant-time-picker-input:focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.has-warning .ant-input-number:not([disabled]):hover,.has-warning .ant-time-picker-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.has-warning .ant-cascader-picker:hover .ant-cascader-input{border-color:#faad14}.has-error .ant-form-explain,.has-error .ant-form-split{color:#f5222d}.has-error .ant-input,.has-error .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input:focus{border-color:#ff4d4f;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(245,34,45,.2);box-shadow:0 0 0 2px rgba(245,34,45,.2)}.has-error .ant-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ff4d4f;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(245,34,45,.2);box-shadow:0 0 0 2px rgba(245,34,45,.2)}.has-error .ant-input-affix-wrapper .ant-input,.has-error .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input-affix-wrapper .ant-input:focus{border-color:#ff4d4f;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(245,34,45,.2);box-shadow:0 0 0 2px rgba(245,34,45,.2)}.has-error .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#f5222d}.has-error .ant-input-prefix{color:#f5222d}.has-error .ant-input-group-addon{color:#f5222d;background-color:#fff;border-color:#f5222d}.has-error .has-feedback{color:#f5222d}.has-error.has-feedback .ant-form-item-children-icon{color:#f5222d;-webkit-animation-name:diffZoomIn2!important;animation-name:diffZoomIn2!important}.has-error .ant-select-selection,.has-error .ant-select-selection:hover{border-color:#f5222d}.has-error .ant-select-focused .ant-select-selection,.has-error .ant-select-open .ant-select-selection{border-color:#ff4d4f;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(245,34,45,.2);box-shadow:0 0 0 2px rgba(245,34,45,.2)}.has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#f5222d}.has-error .ant-input-group-addon .ant-select-selection{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.has-error .ant-calendar-picker-icon:after,.has-error .ant-cascader-picker-arrow,.has-error .ant-picker-icon:after,.has-error .ant-select-arrow,.has-error .ant-time-picker-icon:after{color:#f5222d}.has-error .ant-input-number,.has-error .ant-time-picker-input{border-color:#f5222d}.has-error .ant-input-number-focused,.has-error .ant-input-number:focus,.has-error .ant-time-picker-input-focused,.has-error .ant-time-picker-input:focus{border-color:#ff4d4f;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(245,34,45,.2);box-shadow:0 0 0 2px rgba(245,34,45,.2)}.has-error .ant-input-number:not([disabled]):hover,.has-error .ant-mention-wrapper .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover,.has-error .ant-time-picker-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-cascader-picker:focus .ant-cascader-input,.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff4d4f;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(245,34,45,.2);box-shadow:0 0 0 2px rgba(245,34,45,.2)}.has-error .ant-cascader-picker:hover .ant-cascader-input,.has-error .ant-transfer-list{border-color:#f5222d}.has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#597ef7;border-right-width:1px!important}.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.is-validating.has-feedback .ant-form-item-children-icon{display:inline-block;color:#2f54eb}.ant-advanced-search-form .ant-form-item{margin-bottom:24px}.ant-advanced-search-form .ant-form-item-with-help{margin-bottom:5px}.show-help-appear,.show-help-enter,.show-help-leave{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.show-help-appear.show-help-appear-active,.show-help-enter.show-help-enter-active{-webkit-animation-name:antShowHelpIn;animation-name:antShowHelpIn;-webkit-animation-play-state:running;animation-play-state:running}.show-help-leave.show-help-leave-active{-webkit-animation-name:antShowHelpOut;animation-name:antShowHelpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.show-help-appear,.show-help-enter{opacity:0}.show-help-appear,.show-help-enter,.show-help-leave{-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1)}@keyframes antShowHelpIn{0%{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes antShowHelpOut{to{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}}@keyframes diffZoomIn1{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes diffZoomIn2{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes diffZoomIn3{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}.ant-row{position:relative;height:auto;margin-right:0;margin-left:0;zoom:1;display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.ant-row:after,.ant-row:before{display:table;content:""}.ant-row+.ant-row:before,.ant-row:after{clear:both}.ant-row-flex{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.ant-row-flex,.ant-row-flex:after,.ant-row-flex:before{display:-webkit-box;display:-ms-flexbox;display:flex}.ant-row-flex-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.ant-row-flex-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ant-row-flex-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.ant-row-flex-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.ant-row-flex-space-around{-ms-flex-pack:distribute;justify-content:space-around}.ant-row-flex-top{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.ant-row-flex-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ant-row-flex-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.ant-col{position:relative;min-height:1px}.ant-col-1,.ant-col-2,.ant-col-3,.ant-col-4,.ant-col-5,.ant-col-6,.ant-col-7,.ant-col-8,.ant-col-9,.ant-col-10,.ant-col-11,.ant-col-12,.ant-col-13,.ant-col-14,.ant-col-15,.ant-col-16,.ant-col-17,.ant-col-18,.ant-col-19,.ant-col-20,.ant-col-21,.ant-col-22,.ant-col-23,.ant-col-24,.ant-col-lg-1,.ant-col-lg-2,.ant-col-lg-3,.ant-col-lg-4,.ant-col-lg-5,.ant-col-lg-6,.ant-col-lg-7,.ant-col-lg-8,.ant-col-lg-9,.ant-col-lg-10,.ant-col-lg-11,.ant-col-lg-12,.ant-col-lg-13,.ant-col-lg-14,.ant-col-lg-15,.ant-col-lg-16,.ant-col-lg-17,.ant-col-lg-18,.ant-col-lg-19,.ant-col-lg-20,.ant-col-lg-21,.ant-col-lg-22,.ant-col-lg-23,.ant-col-lg-24,.ant-col-md-1,.ant-col-md-2,.ant-col-md-3,.ant-col-md-4,.ant-col-md-5,.ant-col-md-6,.ant-col-md-7,.ant-col-md-8,.ant-col-md-9,.ant-col-md-10,.ant-col-md-11,.ant-col-md-12,.ant-col-md-13,.ant-col-md-14,.ant-col-md-15,.ant-col-md-16,.ant-col-md-17,.ant-col-md-18,.ant-col-md-19,.ant-col-md-20,.ant-col-md-21,.ant-col-md-22,.ant-col-md-23,.ant-col-md-24,.ant-col-sm-1,.ant-col-sm-2,.ant-col-sm-3,.ant-col-sm-4,.ant-col-sm-5,.ant-col-sm-6,.ant-col-sm-7,.ant-col-sm-8,.ant-col-sm-9,.ant-col-sm-10,.ant-col-sm-11,.ant-col-sm-12,.ant-col-sm-13,.ant-col-sm-14,.ant-col-sm-15,.ant-col-sm-16,.ant-col-sm-17,.ant-col-sm-18,.ant-col-sm-19,.ant-col-sm-20,.ant-col-sm-21,.ant-col-sm-22,.ant-col-sm-23,.ant-col-sm-24,.ant-col-xs-1,.ant-col-xs-2,.ant-col-xs-3,.ant-col-xs-4,.ant-col-xs-5,.ant-col-xs-6,.ant-col-xs-7,.ant-col-xs-8,.ant-col-xs-9,.ant-col-xs-10,.ant-col-xs-11,.ant-col-xs-12,.ant-col-xs-13,.ant-col-xs-14,.ant-col-xs-15,.ant-col-xs-16,.ant-col-xs-17,.ant-col-xs-18,.ant-col-xs-19,.ant-col-xs-20,.ant-col-xs-21,.ant-col-xs-22,.ant-col-xs-23,.ant-col-xs-24{position:relative;padding-right:0;padding-left:0}.ant-col-1,.ant-col-2,.ant-col-3,.ant-col-4,.ant-col-5,.ant-col-6,.ant-col-7,.ant-col-8,.ant-col-9,.ant-col-10,.ant-col-11,.ant-col-12,.ant-col-13,.ant-col-14,.ant-col-15,.ant-col-16,.ant-col-17,.ant-col-18,.ant-col-19,.ant-col-20,.ant-col-21,.ant-col-22,.ant-col-23,.ant-col-24{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left}.ant-col-24{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ant-col-23{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ant-col-22{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ant-col-21{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ant-col-20{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ant-col-19{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ant-col-18{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ant-col-17{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ant-col-16{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ant-col-15{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ant-col-14{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ant-col-13{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ant-col-12{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ant-col-11{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ant-col-10{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ant-col-9{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ant-col-8{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ant-col-7{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ant-col-6{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ant-col-5{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ant-col-4{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ant-col-3{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ant-col-2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ant-col-1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.ant-col-xs-1,.ant-col-xs-2,.ant-col-xs-3,.ant-col-xs-4,.ant-col-xs-5,.ant-col-xs-6,.ant-col-xs-7,.ant-col-xs-8,.ant-col-xs-9,.ant-col-xs-10,.ant-col-xs-11,.ant-col-xs-12,.ant-col-xs-13,.ant-col-xs-14,.ant-col-xs-15,.ant-col-xs-16,.ant-col-xs-17,.ant-col-xs-18,.ant-col-xs-19,.ant-col-xs-20,.ant-col-xs-21,.ant-col-xs-22,.ant-col-xs-23,.ant-col-xs-24{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left}.ant-col-xs-24{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ant-col-xs-23{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ant-col-xs-22{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ant-col-xs-21{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ant-col-xs-20{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ant-col-xs-19{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ant-col-xs-18{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ant-col-xs-17{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ant-col-xs-16{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ant-col-xs-15{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ant-col-xs-14{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ant-col-xs-13{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ant-col-xs-12{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ant-col-xs-11{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ant-col-xs-10{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ant-col-xs-9{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ant-col-xs-8{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ant-col-xs-7{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ant-col-xs-6{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ant-col-xs-5{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ant-col-xs-4{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ant-col-xs-3{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ant-col-xs-2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ant-col-xs-1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}@media (min-width:576px){.ant-col-sm-1,.ant-col-sm-2,.ant-col-sm-3,.ant-col-sm-4,.ant-col-sm-5,.ant-col-sm-6,.ant-col-sm-7,.ant-col-sm-8,.ant-col-sm-9,.ant-col-sm-10,.ant-col-sm-11,.ant-col-sm-12,.ant-col-sm-13,.ant-col-sm-14,.ant-col-sm-15,.ant-col-sm-16,.ant-col-sm-17,.ant-col-sm-18,.ant-col-sm-19,.ant-col-sm-20,.ant-col-sm-21,.ant-col-sm-22,.ant-col-sm-23,.ant-col-sm-24{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left}.ant-col-sm-24{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ant-col-sm-23{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ant-col-sm-22{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ant-col-sm-21{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ant-col-sm-20{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ant-col-sm-19{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ant-col-sm-18{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ant-col-sm-17{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ant-col-sm-16{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ant-col-sm-15{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ant-col-sm-14{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ant-col-sm-13{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ant-col-sm-12{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ant-col-sm-11{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ant-col-sm-10{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ant-col-sm-9{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ant-col-sm-8{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ant-col-sm-7{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ant-col-sm-6{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ant-col-sm-5{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ant-col-sm-4{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ant-col-sm-3{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ant-col-sm-2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ant-col-sm-1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:768px){.ant-col-md-1,.ant-col-md-2,.ant-col-md-3,.ant-col-md-4,.ant-col-md-5,.ant-col-md-6,.ant-col-md-7,.ant-col-md-8,.ant-col-md-9,.ant-col-md-10,.ant-col-md-11,.ant-col-md-12,.ant-col-md-13,.ant-col-md-14,.ant-col-md-15,.ant-col-md-16,.ant-col-md-17,.ant-col-md-18,.ant-col-md-19,.ant-col-md-20,.ant-col-md-21,.ant-col-md-22,.ant-col-md-23,.ant-col-md-24{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left}.ant-col-md-24{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ant-col-md-23{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ant-col-md-22{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ant-col-md-21{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ant-col-md-20{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ant-col-md-19{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ant-col-md-18{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ant-col-md-17{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ant-col-md-16{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ant-col-md-15{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ant-col-md-14{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ant-col-md-13{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ant-col-md-12{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ant-col-md-11{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ant-col-md-10{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ant-col-md-9{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ant-col-md-8{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ant-col-md-7{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ant-col-md-6{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ant-col-md-5{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ant-col-md-4{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ant-col-md-3{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ant-col-md-2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ant-col-md-1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:992px){.ant-col-lg-1,.ant-col-lg-2,.ant-col-lg-3,.ant-col-lg-4,.ant-col-lg-5,.ant-col-lg-6,.ant-col-lg-7,.ant-col-lg-8,.ant-col-lg-9,.ant-col-lg-10,.ant-col-lg-11,.ant-col-lg-12,.ant-col-lg-13,.ant-col-lg-14,.ant-col-lg-15,.ant-col-lg-16,.ant-col-lg-17,.ant-col-lg-18,.ant-col-lg-19,.ant-col-lg-20,.ant-col-lg-21,.ant-col-lg-22,.ant-col-lg-23,.ant-col-lg-24{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left}.ant-col-lg-24{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ant-col-lg-23{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ant-col-lg-22{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ant-col-lg-21{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ant-col-lg-20{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ant-col-lg-19{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ant-col-lg-18{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ant-col-lg-17{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ant-col-lg-16{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ant-col-lg-15{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ant-col-lg-14{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ant-col-lg-13{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ant-col-lg-12{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ant-col-lg-11{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ant-col-lg-10{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ant-col-lg-9{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ant-col-lg-8{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ant-col-lg-7{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ant-col-lg-6{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ant-col-lg-5{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ant-col-lg-4{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ant-col-lg-3{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ant-col-lg-2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ant-col-lg-1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:1200px){.ant-col-xl-1,.ant-col-xl-2,.ant-col-xl-3,.ant-col-xl-4,.ant-col-xl-5,.ant-col-xl-6,.ant-col-xl-7,.ant-col-xl-8,.ant-col-xl-9,.ant-col-xl-10,.ant-col-xl-11,.ant-col-xl-12,.ant-col-xl-13,.ant-col-xl-14,.ant-col-xl-15,.ant-col-xl-16,.ant-col-xl-17,.ant-col-xl-18,.ant-col-xl-19,.ant-col-xl-20,.ant-col-xl-21,.ant-col-xl-22,.ant-col-xl-23,.ant-col-xl-24{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left}.ant-col-xl-24{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ant-col-xl-23{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ant-col-xl-22{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ant-col-xl-21{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ant-col-xl-20{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ant-col-xl-19{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ant-col-xl-18{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ant-col-xl-17{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ant-col-xl-16{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ant-col-xl-15{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ant-col-xl-14{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ant-col-xl-13{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ant-col-xl-12{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ant-col-xl-11{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ant-col-xl-10{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ant-col-xl-9{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ant-col-xl-8{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ant-col-xl-7{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ant-col-xl-6{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ant-col-xl-5{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ant-col-xl-4{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ant-col-xl-3{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ant-col-xl-2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ant-col-xl-1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:1600px){.ant-col-xxl-1,.ant-col-xxl-2,.ant-col-xxl-3,.ant-col-xxl-4,.ant-col-xxl-5,.ant-col-xxl-6,.ant-col-xxl-7,.ant-col-xxl-8,.ant-col-xxl-9,.ant-col-xxl-10,.ant-col-xxl-11,.ant-col-xxl-12,.ant-col-xxl-13,.ant-col-xxl-14,.ant-col-xxl-15,.ant-col-xxl-16,.ant-col-xxl-17,.ant-col-xxl-18,.ant-col-xxl-19,.ant-col-xxl-20,.ant-col-xxl-21,.ant-col-xxl-22,.ant-col-xxl-23,.ant-col-xxl-24{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left}.ant-col-xxl-24{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ant-col-xxl-23{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ant-col-xxl-22{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ant-col-xxl-21{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ant-col-xxl-20{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ant-col-xxl-19{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ant-col-xxl-18{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ant-col-xxl-17{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ant-col-xxl-16{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ant-col-xxl-15{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ant-col-xxl-14{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ant-col-xxl-13{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ant-col-xxl-12{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ant-col-xxl-11{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ant-col-xxl-10{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ant-col-xxl-9{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ant-col-xxl-8{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ant-col-xxl-7{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ant-col-xxl-6{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ant-col-xxl-5{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ant-col-xxl-4{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ant-col-xxl-3{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ant-col-xxl-2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ant-col-xxl-1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}.ant-input{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.ant-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:focus,.ant-input:hover{border-color:#597ef7;border-right-width:1px!important}.ant-input:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-input-sm{height:24px;padding:1px 7px}.ant-input-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:table;width:100%;border-collapse:separate;border-spacing:0}.ant-input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{width:1px;white-space:nowrap;vertical-align:middle}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;width:100%;margin-bottom:0;text-align:inherit}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-group-addon{position:relative;padding:0 11px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select .ant-select-selection{margin:-1px;background-color:inherit;border:1px solid transparent;-webkit-box-shadow:none;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#2f54eb}.ant-input-group-addon>i:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selection,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selection{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selection,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selection{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{height:40px;padding:6px 11px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{height:24px;padding:1px 7px}.ant-input-group-lg .ant-select-selection--single{height:40px}.ant-input-group-sm .ant-select-selection--single{height:24px}.ant-input-group .ant-input-affix-wrapper{display:table-cell;float:left;width:100%}.ant-input-group.ant-input-group-compact{display:block;zoom:1}.ant-input-group.ant-input-group-compact:after,.ant-input-group.ant-input-group-compact:before{display:table;content:""}.ant-input-group.ant-input-group-compact:after{clear:both}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:-1px;border-right-width:1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor:focus,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection:hover,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input:focus,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input,.ant-input-group.ant-input-group-compact>:last-child{border-right-width:1px;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-affix-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;width:100%;text-align:start}.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#597ef7;border-right-width:1px!important}.ant-input-affix-wrapper .ant-input{position:relative;text-align:inherit}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{position:absolute;top:50%;z-index:2;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:rgba(0,0,0,.65);line-height:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-input-affix-wrapper .ant-input-prefix :not(.anticon),.ant-input-affix-wrapper .ant-input-suffix :not(.anticon){line-height:1.5}.ant-input-affix-wrapper .ant-input-disabled~.ant-input-suffix .anticon{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-input-affix-wrapper .ant-input-prefix{left:12px}.ant-input-affix-wrapper .ant-input-suffix{right:12px}.ant-input-affix-wrapper .ant-input:not(:first-child){padding-left:30px}.ant-input-affix-wrapper .ant-input:not(:last-child){padding-right:30px}.ant-input-affix-wrapper.ant-input-affix-wrapper-input-with-clear-btn .ant-input:not(:last-child){padding-right:49px}.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input{padding-right:22px}.ant-input-password-icon{color:rgba(0,0,0,.45);cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-input-password-icon:hover{color:#333}.ant-input-clear-icon{color:rgba(0,0,0,.25);font-size:12px;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;vertical-align:0}.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-clear-icon:active{color:rgba(0,0,0,.65)}.ant-input-clear-icon+i{margin-left:6px}.ant-input-textarea-clear-icon{color:rgba(0,0,0,.25);font-size:12px;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;position:absolute;top:0;right:0;margin:8px 8px 0 0}.ant-input-textarea-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-textarea-clear-icon:active{color:rgba(0,0,0,.65)}.ant-input-textarea-clear-icon+i{margin-left:6px}.ant-input-search-icon{color:rgba(0,0,0,.45);cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-input-search-icon:hover{color:rgba(0,0,0,.8)}.ant-input-search-enter-button input{border-right:0}.ant-input-search-enter-button+.ant-input-group-addon,.ant-input-search-enter-button input+.ant-input-group-addon{padding:0;border:0}.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-number{-webkit-box-sizing:border-box;box-sizing:border-box;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;-webkit-transition:all .3s;transition:all .3s;display:inline-block;width:90px;margin:0;padding:0;border:1px solid #d9d9d9;border-radius:2px}.ant-input-number::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-input-number:-ms-input-placeholder{color:#bfbfbf}.ant-input-number::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-number:focus{border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-input-number[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-input-number{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-number-lg{height:40px;padding:6px 11px}.ant-input-number-sm{height:24px;padding:1px 7px}.ant-input-number-handler{position:relative;display:block;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;text-align:center;-webkit-transition:all .1s linear;transition:all .1s linear}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#597ef7}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:4px;width:12px;height:12px;color:rgba(0,0,0,.45);line-height:12px;-webkit-transition:all .1s linear;transition:all .1s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner:before,.ant-input-number-handler-up-inner:before{display:none}.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number-focused,.ant-input-number:hover{border-color:#597ef7;border-right-width:1px!important}.ant-input-number-focused{outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-input-number-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-disabled .ant-input-number-input{cursor:not-allowed}.ant-input-number-disabled .ant-input-number-handler-wrap{display:none}.ant-input-number-input{width:100%;height:30px;padding:0 11px;text-align:left;background-color:transparent;border:0;border-radius:2px;outline:0;-webkit-transition:all .3s linear;transition:all .3s linear;-moz-appearance:textfield!important}.ant-input-number-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf}.ant-input-number-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number-input:placeholder-shown{text-overflow:ellipsis}.ant-input-number-input[type=number]::-webkit-inner-spin-button,.ant-input-number-input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.ant-input-number-lg{padding:0;font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:22px;padding:0 7px}.ant-input-number-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border-left:1px solid #d9d9d9;border-radius:0 2px 2px 0;opacity:0;-webkit-transition:opacity .24s linear .1s;transition:opacity .24s linear .1s}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{display:inline-block;font-size:12px;font-size:7px\9;-webkit-transform:scale(.58333333) rotate(0deg);transform:scale(.58333333) rotate(0deg);min-width:auto;margin-right:0}:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{font-size:12px}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number:hover .ant-input-number-handler-wrap{opacity:1}.ant-input-number-handler-up{border-top-right-radius:2px;cursor:pointer}.ant-input-number-handler-up-inner{top:50%;margin-top:-5px;text-align:center}.ant-input-number-handler-up:hover{height:60%!important}.ant-input-number-handler-down{top:0;border-top:1px solid #d9d9d9;border-bottom-right-radius:2px;cursor:pointer}.ant-input-number-handler-down-inner{top:50%;margin-top:-6px;text-align:center}.ant-input-number-handler-down:hover{height:60%!important}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:rgba(0,0,0,.25)}.ant-layout{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:auto;flex:auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:0;background:#f0f2f5}.ant-layout,.ant-layout *{-webkit-box-sizing:border-box;box-sizing:border-box}.ant-layout.ant-layout-has-sider{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{overflow-x:hidden}.ant-layout-footer,.ant-layout-header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ant-layout-header{height:64px;padding:0 50px;line-height:64px;background:#001529}.ant-layout-footer{padding:24px 50px;color:rgba(0,0,0,.65);font-size:14px;background:#f0f2f5}.ant-layout-content{-webkit-box-flex:1;-ms-flex:auto;flex:auto;min-height:0}.ant-layout-sider{position:relative;min-width:0;background:#001529;-webkit-transition:all .2s;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ant-layout-sider-trigger{position:fixed;bottom:0;z-index:1;height:48px;color:#fff;line-height:48px;text-align:center;background:#002140;cursor:pointer;-webkit-transition:all .2s;transition:all .2s}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{position:absolute;top:64px;right:-36px;z-index:1;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;text-align:center;background:#001529;border-radius:0 2px 2px 0;cursor:pointer;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-layout-sider-zero-width-trigger:hover{background:#192c3e}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:2px 0 0 2px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,.65);background:#fff}.ant-list{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative}.ant-list *{outline:none}.ant-list-pagination{margin-top:24px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:12px;text-align:center}.ant-list-more button{padding-right:32px;padding-left:32px}.ant-list-spin{min-height:40px;text-align:center}.ant-list-empty-text{padding:16px;color:rgba(0,0,0,.25);font-size:14px;text-align:center}.ant-list-items{margin:0;padding:0;list-style:none}.ant-list-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 0}.ant-list-item-content{color:rgba(0,0,0,.65)}.ant-list-item-meta{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;font-size:0}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{-webkit-box-flex:1;-ms-flex:1 0;flex:1 0}.ant-list-item-meta-title{margin-bottom:4px;color:rgba(0,0,0,.65);font-size:14px;line-height:22px}.ant-list-item-meta-title>a{color:rgba(0,0,0,.65);-webkit-transition:all .3s;transition:all .3s}.ant-list-item-meta-title>a:hover{color:#2f54eb}.ant-list-item-meta-description{color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.ant-list-item-action{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-left:48px;padding:0;font-size:0;list-style:none}.ant-list-item-action>li{position:relative;display:inline-block;padding:0 8px;color:rgba(0,0,0,.45);font-size:14px;line-height:22px;text-align:center;cursor:pointer}.ant-list-item-action>li:first-child{padding-left:0}.ant-list-item-action-split{position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background-color:#e8e8e8}.ant-list-footer,.ant-list-header{background:transparent}.ant-list-footer,.ant-list-header{padding-top:12px;padding-bottom:12px}.ant-list-empty{padding:16px 0;color:rgba(0,0,0,.45);font-size:12px;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header{border-bottom:1px solid #e8e8e8}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #e8e8e8}.ant-list-lg .ant-list-item{padding-top:16px;padding-bottom:16px}.ant-list-sm .ant-list-item{padding-top:8px;padding-bottom:8px}.ant-list-vertical .ant-list-item{-webkit-box-align:initial;-ms-flex-align:initial;align-items:normal}.ant-list-vertical .ant-list-item-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:16px}.ant-list-vertical .ant-list-item-meta-title{margin-bottom:12px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ant-list-vertical .ant-list-item-action{margin-top:16px;margin-left:auto}.ant-list-vertical .ant-list-item-action>li{padding:0 16px}.ant-list-vertical .ant-list-item-action>li:first-child{padding-left:0}.ant-list-grid .ant-col>.ant-list-item{display:block;max-width:100%;margin-bottom:16px;padding-top:0;padding-bottom:0;border-bottom:none}.ant-list-item-no-flex{display:block}.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:right}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:2px}.ant-list-bordered .ant-list-footer,.ant-list-bordered .ant-list-header,.ant-list-bordered .ant-list-item{padding-right:24px;padding-left:24px}.ant-list-bordered .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-list-bordered .ant-list-pagination{margin:16px 24px}.ant-list-bordered.ant-list-sm .ant-list-item{padding-right:16px;padding-left:16px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header{padding:16px 24px}@media screen and (max-width:768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{-ms-flex-wrap:wrap;flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.ant-list-vertical .ant-list-item-main{min-width:220px}.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-mentions{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s;position:relative;display:inline-block;height:auto;padding:0;overflow:hidden;line-height:1.5;white-space:pre-wrap;vertical-align:bottom}.ant-mentions::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-mentions:-ms-input-placeholder{color:#bfbfbf}.ant-mentions::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions:-ms-input-placeholder{text-overflow:ellipsis}.ant-mentions:placeholder-shown{text-overflow:ellipsis}.ant-mentions:focus,.ant-mentions:hover{border-color:#597ef7;border-right-width:1px!important}.ant-mentions:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-mentions-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-mentions{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-mentions-lg{height:40px;padding:6px 11px;font-size:16px}.ant-mentions-sm{height:24px;padding:1px 7px}.ant-mentions-disabled>textarea{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions-focused{border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-mentions-measure,.ant-mentions>textarea{min-height:30px;margin:0;padding:4px 11px;overflow:inherit;overflow-x:hidden;overflow-y:auto;font-weight:inherit;font-size:inherit;font-family:inherit;font-style:inherit;font-variant:inherit;font-size-adjust:inherit;font-stretch:inherit;line-height:inherit;direction:inherit;letter-spacing:inherit;white-space:inherit;text-align:inherit;vertical-align:top;word-wrap:break-word;word-break:inherit;-moz-tab-size:inherit;-o-tab-size:inherit;tab-size:inherit}.ant-mentions>textarea{width:100%;border:none;outline:none;resize:none}.ant-mentions>textarea::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-mentions>textarea:-ms-input-placeholder{color:#bfbfbf}.ant-mentions>textarea::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions>textarea:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions>textarea:-ms-input-placeholder{text-overflow:ellipsis}.ant-mentions>textarea:placeholder-shown{text-overflow:ellipsis}.ant-mentions>textarea:-moz-read-only{cursor:default}.ant-mentions>textarea:read-only{cursor:default}.ant-mentions-measure{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;color:transparent;pointer-events:none}.ant-mentions-measure>span{display:inline-block;min-height:1em}.ant-mentions-dropdown{margin:0;padding:0;color:rgba(0,0,0,.65);font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;font-variant:normal;background-color:#fff;border-radius:2px;outline:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-mentions-dropdown-hidden{display:none}.ant-mentions-dropdown-menu{max-height:250px;margin-bottom:0;padding-left:0;overflow:auto;list-style:none;outline:none}.ant-mentions-dropdown-menu-item{position:relative;display:block;min-width:100px;padding:5px 12px;overflow:hidden;color:rgba(0,0,0,.65);font-weight:400;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-mentions-dropdown-menu-item:hover{background-color:#f0f5ff}.ant-mentions-dropdown-menu-item:first-child{border-radius:2px 2px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 2px 2px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-mentions-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-mentions-dropdown-menu-item-selected{color:rgba(0,0,0,.65);font-weight:600;background-color:#fafafa}.ant-mentions-dropdown-menu-item-active{background-color:#f0f5ff}.ant-menu{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;font-size:14px;font-variant:tabular-nums;line-height:1.5;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";margin-bottom:0;padding-left:0;color:rgba(0,0,0,.65);line-height:0;list-style:none;background:#fff;outline:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15);-webkit-transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s;zoom:1}.ant-menu:after,.ant-menu:before{display:table;content:""}.ant-menu:after{clear:both}.ant-menu ol,.ant-menu ul{margin:0;padding:0;list-style:none}.ant-menu-hidden{display:none}.ant-menu-item-group-title{padding:8px 16px;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5;-webkit-transition:all .3s;transition:all .3s}.ant-menu-submenu,.ant-menu-submenu-inline{-webkit-transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1);transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#2f54eb}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#f0f5ff}.ant-menu-submenu .ant-menu-sub{cursor:auto;-webkit-transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item>a{display:block;color:rgba(0,0,0,.65)}.ant-menu-item>a:hover{color:#2f54eb}.ant-menu-item>a:before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;content:""}.ant-menu-item>.ant-badge>a{color:rgba(0,0,0,.65)}.ant-menu-item>.ant-badge>a:hover{color:#2f54eb}.ant-menu-item-divider{height:1px;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#2f54eb}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#2f54eb}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#f0f5ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #e8e8e8}.ant-menu-vertical-right{border-left:1px solid #e8e8e8}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{min-width:160px;padding:0;border-right:0;-webkit-transform-origin:0 0;transform-origin:0 0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{-webkit-transform-origin:0 0;transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-item,.ant-menu-submenu-title{position:relative;display:block;margin:0;padding:0 20px;white-space:nowrap;cursor:pointer;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{min-width:14px;margin-right:10px;font-size:14px;-webkit-transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1);transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .anticon+span,.ant-menu-submenu-title .anticon+span{opacity:1;-webkit-transition:opacity .3s cubic-bezier(.645,.045,.355,1),width .3s cubic-bezier(.645,.045,.355,1);transition:opacity .3s cubic-bezier(.645,.045,.355,1),width .3s cubic-bezier(.645,.045,.355,1)}.ant-menu>.ant-menu-item-divider{height:1px;margin:1px 0;padding:0;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-menu-submenu-popup{position:absolute;z-index:1050;background:#fff;border-radius:2px}.ant-menu-submenu-popup .submenu-title-wrapper{padding-right:20px}.ant-menu-submenu-popup:before{position:absolute;top:-7px;right:0;bottom:0;left:0;opacity:.0001;content:" "}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{-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)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{position:absolute;top:50%;right:16px;width:10px;-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)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{position:absolute;width:6px;height:1.5px;background:#fff;background:rgba(0,0,0,.65)\9;background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.65)),to(rgba(0,0,0,.65)));background-image:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.65));background-image:none\9;border-radius:2px;-webkit-transition:background .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);content:""}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(45deg) translateY(-2px);transform:rotate(45deg) translateY(-2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(-45deg) translateY(2px);transform:rotate(-45deg) translateY(2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#2f54eb),to(#2f54eb));background:linear-gradient(90deg,#2f54eb,#2f54eb)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(-45deg) translateX(2px);transform:rotate(-45deg) translateX(2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(45deg) translateX(-2px);transform:rotate(45deg) translateX(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow{-webkit-transform:translateY(-2px);transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(-45deg) translateX(-2px);transform:rotate(-45deg) translateX(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(45deg) translateX(2px);transform:rotate(45deg) translateX(2px)}.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a,.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a{color:#2f54eb}.ant-menu-horizontal{line-height:46px;white-space:nowrap;border:0;border-bottom:1px solid #e8e8e8;-webkit-box-shadow:none;box-shadow:none}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{position:relative;top:1px;display:inline-block;vertical-align:bottom;border-bottom:2px solid transparent}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover{color:#2f54eb;border-bottom:2px solid #2f54eb}.ant-menu-horizontal>.ant-menu-item>a{display:block;color:rgba(0,0,0,.65)}.ant-menu-horizontal>.ant-menu-item>a:hover{color:#2f54eb}.ant-menu-horizontal>.ant-menu-item>a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected>a{color:#2f54eb}.ant-menu-horizontal:after{display:block;clear:both;height:0;content:"\20"}.ant-menu-inline .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after{position:absolute;top:0;right:0;bottom:0;border-right:3px solid #2f54eb;-webkit-transform:scaleY(.0001);transform:scaleY(.0001);opacity:0;-webkit-transition:opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);transition:opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);content:""}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title{height:40px;margin-top:4px;margin-bottom:4px;padding:0 16px;overflow:hidden;font-size:14px;line-height:40px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{-webkit-transform:scaleY(1);transform:scaleY(1);opacity:1;-webkit-transition:opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1);transition:opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline-collapsed{width:80px}.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 32px!important;text-overflow:clip}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{display:none}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:16px;line-height:40px}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;max-width:0;opacity:0}.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu-inline-collapsed .ant-menu-item-group-title{padding-right:4px;padding-left:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right,.ant-menu-sub.ant-menu-inline{-webkit-box-shadow:none;box-shadow:none}.ant-menu-sub.ant-menu-inline{padding:0;border:0;border-radius:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,.25)!important;background:none;border-color:transparent!important;cursor:not-allowed}.ant-menu-item-disabled>a,.ant-menu-submenu-disabled>a{color:rgba(0,0,0,.25)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:rgba(0,0,0,.25)!important}.ant-menu-dark,.ant-menu-dark .ant-menu-sub{color:hsla(0,0%,100%,.65);background:#001529}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;-webkit-transition:all .3s;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.45) inset;box-shadow:inset 0 2px 8px rgba(0,0,0,.45)}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{top:0;margin-top:0;border-color:#001529;border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff;background-color:transparent}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-title:hover>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#2f54eb}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a{color:hsla(0,0%,100%,.35)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.35)!important}.ant-message{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:fixed;top:16px;left:0;z-index:1010;width:100%;pointer-events:none}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice:first-child{margin-top:-8px}.ant-message-notice-content{display:inline-block;padding:10px 16px;background:#fff;border-radius:2px;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15);pointer-events:all}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#f5222d}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{position:relative;top:1px;margin-right:8px;font-size:16px}.ant-message-notice.move-up-leave.move-up-leave-active{overflow:hidden;-webkit-animation-name:MessageMoveOut;animation-name:MessageMoveOut;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}@keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}.ant-modal{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;top:100px;width:auto;margin:0 auto;padding-bottom:24px;pointer-events:none}.ant-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow:auto;outline:0;-webkit-overflow-scrolling:touch}.ant-modal-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:0;border-radius:2px;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15);pointer-events:auto}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:rgba(0,0,0,.45);font-weight:700;line-height:1;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s}.ant-modal-close-x{display:block;width:56px;height:56px;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-rendering:auto}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{padding:16px 24px;color:rgba(0,0,0,.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0}.ant-modal-body{padding:24px;font-size:14px;line-height:1.5;word-wrap:break-word}.ant-modal-footer{padding:10px 16px;text-align:right;background:transparent;border-top:1px solid #e8e8e8;border-radius:0 0 2px 2px}.ant-modal-footer button+button{margin-bottom:0;margin-left:8px}.ant-modal.zoom-appear,.ant-modal.zoom-enter{-webkit-transform:none;transform:none;opacity:0;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45);filter:alpha(opacity=50)}.ant-modal-mask-hidden{display:none}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ant-modal-centered .ant-modal{top:0;display:inline-block;text-align:left;vertical-align:middle}@media (max-width:767px){.ant-modal{max-width:calc(100vw - 16px);margin:8px auto}.ant-modal-centered .ant-modal{-webkit-box-flex:1;-ms-flex:1;flex:1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper{zoom:1}.ant-modal-confirm-body-wrapper:after,.ant-modal-confirm-body-wrapper:before{display:table;content:""}.ant-modal-confirm-body-wrapper:after{clear:both}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:rgba(0,0,0,.65);font-size:14px}.ant-modal-confirm-body>.anticon{float:left;margin-right:16px;font-size:22px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns button+button{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#f5222d}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-notification{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:fixed;z-index:1010;width:384px;max-width:calc(100vw - 32px);margin-right:24px}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-right:0;margin-left:24px}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationLeftFadeIn;animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{font-size:14px;cursor:pointer}.ant-notification-notice{position:relative;margin-bottom:16px;padding:16px 24px;overflow:hidden;line-height:1.5;background:#fff;border-radius:2px;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15)}.ant-notification-notice-message{display:inline-block;margin-bottom:8px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ant-notification-notice-message-single-line-auto-margin{display:block;width:calc(264px - 100%);max-width:4px;background-color:transparent;pointer-events:none}.ant-notification-notice-message-single-line-auto-margin:before{display:block;content:""}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-closable .ant-notification-notice-message{padding-right:24px}.ant-notification-notice-with-icon .ant-notification-notice-message{margin-bottom:4px;margin-left:48px;font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{margin-left:48px;font-size:14px}.ant-notification-notice-icon{position:absolute;margin-left:4px;font-size:24px;line-height:24px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#f5222d}.ant-notification-notice-close{position:absolute;top:16px;right:22px;color:rgba(0,0,0,.45);outline:none}.ant-notification-notice-close:hover{color:rgba(0,0,0,.67)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{-webkit-animation-duration:.24s;animation-duration:.24s;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-notification-fade-appear,.ant-notification-fade-enter{opacity:0;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave{-webkit-animation-duration:.24s;animation-duration:.24s;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-notification-fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationFadeIn;animation-name:NotificationFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{-webkit-animation-name:NotificationFadeOut;animation-name:NotificationFadeOut;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@-webkit-keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}to{right:0;opacity:1}}@keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}to{right:0;opacity:1}}@-webkit-keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;padding-top:16px 24px;padding-bottom:16px 24px;opacity:1}to{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}@keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;padding-top:16px 24px;padding-bottom:16px 24px;opacity:1}to{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}.ant-page-header{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;padding:16px 24px;background-color:#fff}.ant-page-header-ghost{background-color:inherit}.ant-page-header.has-breadcrumb{padding-top:12px}.ant-page-header.has-footer{padding-bottom:0}.ant-page-header-back{float:left;margin:8px 0;margin-right:16px;font-size:16px;line-height:1}.ant-page-header-back-button{color:#2f54eb;text-decoration:none;outline:none;-webkit-transition:color .3s;transition:color .3s;color:#000;cursor:pointer}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#597ef7}.ant-page-header-back-button:active{color:#1d39c4}.ant-page-header .ant-divider-vertical{height:14px;margin:0 12px;vertical-align:middle}.ant-breadcrumb+.ant-page-header-heading{margin-top:8px}.ant-page-header-heading{width:100%;overflow:hidden}.ant-page-header-heading-title{display:block;float:left;margin-bottom:0;padding-right:12px;color:rgba(0,0,0,.85);font-weight:600;font-size:20px;line-height:32px}.ant-page-header-heading .ant-avatar{float:left;margin-right:12px}.ant-page-header-heading-sub-title{float:left;margin:5px 0;margin-right:12px;color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.ant-page-header-heading-tags{float:left;margin:4px 0}.ant-page-header-heading-extra{float:right}.ant-page-header-heading-extra>*{margin-left:8px}.ant-page-header-heading-extra>:first-child{margin-left:0}.ant-page-header-content{padding-top:12px;overflow:hidden}.ant-page-header-footer{margin-top:16px}.ant-page-header-footer .ant-tabs-bar{margin-bottom:1px;border-bottom:0}.ant-page-header-footer .ant-tabs-bar .ant-tabs-nav .ant-tabs-tab{padding:8px;font-size:16px}@media (max-width:576px){.ant-page-header-heading-extra{display:block;float:unset;width:100%;padding-top:12px;overflow:hidden}}.ant-pagination{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.ant-pagination,.ant-pagination ol,.ant-pagination ul{margin:0;padding:0;list-style:none}.ant-pagination:after{display:block;clear:both;height:0;overflow:hidden;visibility:hidden;content:" "}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;height:32px;margin-right:8px;line-height:30px;vertical-align:middle}.ant-pagination-item{min-width:32px;font-family:Arial;text-align:center;list-style:none;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-item a{display:block;padding:0 6px;color:rgba(0,0,0,.65);-webkit-transition:none;transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#2f54eb;-webkit-transition:all .3s;transition:all .3s}.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#2f54eb}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#2f54eb}.ant-pagination-item-active a{color:#2f54eb}.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#597ef7}.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#597ef7}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{display:inline-block;font-size:12px;font-size:12px\9;-webkit-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg);color:#2f54eb;letter-spacing:-1px;opacity:0;-webkit-transition:all .2s;transition:all .2s}:root .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,:root .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{top:0;right:0;bottom:0;left:0;margin:auto}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{position:absolute;top:0;right:0;bottom:0;left:0;display:block;margin:auto;color:rgba(0,0,0,.25);letter-spacing:2px;text-align:center;text-indent:.13em;opacity:1;-webkit-transition:all .2s;transition:all .2s}.ant-pagination-jump-next:focus .ant-pagination-item-link-icon,.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{display:inline-block;min-width:32px;height:32px;color:rgba(0,0,0,.65);font-family:Arial;line-height:32px;text-align:center;vertical-align:middle;list-style:none;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-pagination-next,.ant-pagination-prev{outline:0}.ant-pagination-next a,.ant-pagination-prev a{color:rgba(0,0,0,.65);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#597ef7}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{display:block;height:100%;font-size:12px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;-webkit-transition:all .3s;transition:all .3s}.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#2f54eb;border-color:#2f54eb}.ant-pagination-disabled,.ant-pagination-disabled:focus,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:focus .ant-pagination-item-link,.ant-pagination-disabled:focus a,.ant-pagination-disabled:hover .ant-pagination-item-link,.ant-pagination-disabled:hover a,.ant-pagination-disabled a{color:rgba(0,0,0,.25);border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto;margin-right:8px}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;line-height:32px;vertical-align:top}.ant-pagination-options-quick-jumper input{position:relative;display:inline-block;width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s;width:50px;margin:0 8px}.ant-pagination-options-quick-jumper input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#597ef7;border-right-width:1px!important}.ant-pagination-options-quick-jumper input:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-pagination-options-quick-jumper input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-pagination-options-quick-jumper input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{height:24px;padding:1px 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{height:24px;border:0}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;margin-right:8px;padding:0 6px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;-webkit-transition:border-color .3s;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#2f54eb}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;margin:0;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{min-width:24px;height:24px;margin:0;line-height:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:24px;margin-right:0;line-height:24px}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px;padding:1px 7px;width:44px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,.25);background:transparent;border:none;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:#fff}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover{color:rgba(0,0,0,.45);background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:1}@media only screen and (max-width:992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.ant-pagination-options{display:none}}.ant-popover{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ant-popover:after{position:absolute;background:hsla(0,0%,100%,.01);content:""}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:10px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:10px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-color:#fff;background-clip:padding-box;border-radius:2px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15);-webkit-box-shadow:0 0 8px rgba(0,0,0,.15)\9;box-shadow:0 0 8px rgba(0,0,0,.15)\9}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}}.ant-popover-title{min-width:177px;min-height:32px;margin:0;padding:5px 16px 4px;color:rgba(0,0,0,.85);font-weight:500;border-bottom:1px solid #e8e8e8}.ant-popover-inner-content{padding:12px 16px;color:rgba(0,0,0,.65)}.ant-popover-message{position:relative;padding:4px 0 12px;color:rgba(0,0,0,.65);font-size:14px}.ant-popover-message>.anticon{position:absolute;top:8px;color:#faad14;font-size:14px}.ant-popover-message-title{padding-left:22px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button{margin-left:8px}.ant-popover-arrow{position:absolute;display:block;width:8.48528137px;height:8.48528137px;background:transparent;border-style:solid;border-width:4.24264069px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{bottom:6.2px;border-top-color:transparent;border-right-color:#fff;border-bottom-color:#fff;border-left-color:transparent;-webkit-box-shadow:3px 3px 7px rgba(0,0,0,.07);box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow{left:50%;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow{left:16px}.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{right:16px}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow{left:6px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:#fff;-webkit-box-shadow:-3px 3px 7px rgba(0,0,0,.07);box-shadow:-3px 3px 7px rgba(0,0,0,.07)}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow{top:50%;-webkit-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg)}.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{top:6px;border-top-color:#fff;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#fff;-webkit-box-shadow:-2px -2px 5px rgba(0,0,0,.06);box-shadow:-2px -2px 5px rgba(0,0,0,.06)}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow{left:50%;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{right:16px}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow{right:6px;border-top-color:#fff;border-right-color:#fff;border-bottom-color:transparent;border-left-color:transparent;-webkit-box-shadow:3px -3px 7px rgba(0,0,0,.07);box-shadow:3px -3px 7px rgba(0,0,0,.07)}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow{top:50%;-webkit-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg)}.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow{bottom:12px}.ant-progress{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block}.ant-progress-line{position:relative;width:100%;font-size:14px}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-outer{display:inline-block;width:100%;margin-right:0;padding-right:0}.ant-progress-show-info .ant-progress-outer{margin-right:calc(-2em - 8px);padding-right:calc(2em + 8px)}.ant-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{-webkit-animation:ant-progress-appear .3s;animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-bg,.ant-progress-success-bg{position:relative;background-color:#1890ff;border-radius:100px;-webkit-transition:all .4s cubic-bezier(.08,.82,.17,1) 0s;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{position:absolute;top:0;left:0;background-color:#52c41a}.ant-progress-text{display:inline-block;width:2em;margin-left:8px;color:rgba(0,0,0,.45);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg:before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:10px;opacity:0;-webkit-animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;content:""}.ant-progress-status-exception .ant-progress-bg{background-color:#f5222d}.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#f5222d}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-inner{position:relative;line-height:1;background-color:transparent}.ant-progress-circle .ant-progress-text{position:absolute;top:50%;left:50%;width:100%;margin:0;padding:0;color:rgba(0,0,0,.65);line-height:1;white-space:normal;text-align:center;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-progress-circle .ant-progress-text .anticon{font-size:1.16666667em}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}@-webkit-keyframes ant-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}@keyframes ant-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}.ant-radio-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block}.ant-radio-wrapper{margin:0;margin-right:8px}.ant-radio,.ant-radio-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;white-space:nowrap;cursor:pointer}.ant-radio{margin:0;line-height:1;vertical-align:sub;outline:none}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#2f54eb}.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(47,84,235,.08);box-shadow:0 0 0 3px rgba(47,84,235,.08)}.ant-radio-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #2f54eb;border-radius:50%;visibility:hidden;-webkit-animation:antRadioEffect .36s ease-in-out;animation:antRadioEffect .36s ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both;content:""}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border-color:#d9d9d9;border-style:solid;border-width:1px;border-radius:100px;-webkit-transition:all .3s;transition:all .3s}.ant-radio-inner:after{position:absolute;top:3px;left:3px;display:table;width:8px;height:8px;background-color:#2f54eb;border-top:0;border-left:0;border-radius:8px;-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-radio-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;opacity:0}.ant-radio-checked .ant-radio-inner{border-color:#2f54eb}.ant-radio-checked .ant-radio-inner:after{-webkit-transform:scale(1);transform:scale(1);opacity:1;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9!important;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.2)}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}span.ant-radio+*{padding-right:8px;padding-left:8px}.ant-radio-button-wrapper{position:relative;display:inline-block;height:32px;margin:0;padding:0 15px;color:rgba(0,0,0,.65);line-height:30px;background:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-left:0;cursor:pointer;-webkit-transition:color .3s,background .3s,border-color .3s;transition:color .3s,background .3s,border-color .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,.65)}.ant-radio-button-wrapper>.ant-radio-button{display:block;width:0;height:0;margin-left:0}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;padding:0 7px;line-height:22px}.ant-radio-button-wrapper:not(:first-child):before{position:absolute;top:0;left:-1px;display:block;width:1px;height:100%;background-color:#d9d9d9;content:""}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px}.ant-radio-button-wrapper:last-child{border-radius:0 2px 2px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:2px}.ant-radio-button-wrapper:hover{position:relative;color:#2f54eb}.ant-radio-button-wrapper:focus-within{outline:3px solid rgba(47,84,235,.06)}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{width:0;height:0;opacity:0;pointer-events:none}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){z-index:1;color:#2f54eb;background:#fff;border-color:#2f54eb;-webkit-box-shadow:-1px 0 0 0 #2f54eb;box-shadow:-1px 0 0 0 #2f54eb}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#2f54eb!important;opacity:.1}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#2f54eb;-webkit-box-shadow:none!important;box-shadow:none!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#597ef7;border-color:#597ef7;-webkit-box-shadow:-1px 0 0 0 #597ef7;box-shadow:-1px 0 0 0 #597ef7}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#1d39c4;border-color:#1d39c4;-webkit-box-shadow:-1px 0 0 0 #1d39c4;box-shadow:-1px 0 0 0 #1d39c4}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(47,84,235,.06)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#597ef7;border-color:#597ef7}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#1d39c4;border-color:#1d39c4}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(47,84,235,.06)}.ant-radio-button-wrapper-disabled{cursor:not-allowed}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none}@-webkit-keyframes antRadioEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@keyframes antRadioEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@supports (-moz-appearance:meterbar) and (background-blend-mode:difference,normal){.ant-radio{vertical-align:text-bottom}}.ant-rate{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block;margin:0;padding:0;color:#fadb14;font-size:20px;line-height:unset;list-style:none;outline:none}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star:hover{-webkit-transform:scale(1);transform:scale(1)}.ant-rate-star{position:relative;display:inline-block;margin:0;padding:0;color:inherit;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div:focus{outline:0}.ant-rate-star>div:focus,.ant-rate-star>div:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.ant-rate-star-first,.ant-rate-star-second{color:#e8e8e8;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-rate-star-first .anticon,.ant-rate-star-second .anticon{vertical-align:middle}.ant-rate-star-first{position:absolute;top:0;left:0;width:50%;height:100%;overflow:hidden;opacity:0}.ant-rate-star-half .ant-rate-star-first,.ant-rate-star-half .ant-rate-star-second{opacity:1}.ant-rate-star-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{display:inline-block;margin-left:8px;font-size:14px}.ant-result{padding:48px 32px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#f5222d}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-image{width:250px;height:295px;margin:auto}.ant-result-icon{margin-bottom:24px;text-align:center}.ant-result-icon>.anticon{font-size:72px}.ant-result-title{color:rgba(0,0,0,.85);font-size:24px;line-height:1.8;text-align:center}.ant-result-subtitle{color:rgba(0,0,0,.45);font-size:14px;line-height:1.6;text-align:center}.ant-result-extra{margin-top:32px;text-align:center}.ant-result-extra>*{margin-right:8px}.ant-result-extra>:last-child{margin-right:0}.ant-result-content{margin-top:24px;padding:24px 40px;background-color:#fafafa}.ant-select{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;outline:0}.ant-select,.ant-select ol,.ant-select ul{margin:0;padding:0;list-style:none}.ant-select>ul>li>a{padding:0;background-color:#fff}.ant-select-arrow{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;right:11px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;line-height:1;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .ant-select-arrow-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-select-selection{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-radius:2px;outline:none;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-selection:hover{border-color:#597ef7;border-right-width:1px!important}.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-select-selection__clear{position:absolute;top:50%;right:11px;z-index:1;display:inline-block;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;font-style:normal;line-height:12px;text-align:center;text-transform:none;background:#fff;cursor:pointer;opacity:0;-webkit-transition:color .3s ease,opacity .15s ease;transition:color .3s ease,opacity .15s ease;text-rendering:auto}.ant-select-selection__clear:before{display:block}.ant-select-selection__clear:hover{color:rgba(0,0,0,.45)}.ant-select-selection:hover .ant-select-selection__clear{opacity:1}.ant-select-selection-selected-value{float:left;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-no-arrow .ant-select-selection-selected-value{padding-right:0}.ant-select-disabled{color:rgba(0,0,0,.25)}.ant-select-disabled .ant-select-selection{background:#f5f5f5;cursor:not-allowed}.ant-select-disabled .ant-select-selection:active,.ant-select-disabled .ant-select-selection:focus,.ant-select-disabled .ant-select-selection:hover{border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none}.ant-select-disabled .ant-select-selection__clear{display:none;visibility:hidden;pointer-events:none}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice{padding-right:10px;color:rgba(0,0,0,.33);background:#f5f5f5}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice__remove{display:none}.ant-select-selection--single{position:relative;height:32px;cursor:pointer}.ant-select-selection--single .ant-select-selection__rendered{margin-right:24px}.ant-select-no-arrow .ant-select-selection__rendered{margin-right:11px}.ant-select-selection__rendered{position:relative;display:block;margin-right:11px;margin-left:11px;line-height:30px}.ant-select-selection__rendered:after{display:inline-block;width:0;visibility:hidden;content:".";pointer-events:none}.ant-select-lg{font-size:16px}.ant-select-lg .ant-select-selection--single{height:40px}.ant-select-lg .ant-select-selection__rendered{line-height:38px}.ant-select-lg .ant-select-selection--multiple{min-height:40px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__rendered li{height:32px;line-height:32px}.ant-select-lg .ant-select-selection--multiple .ant-select-arrow,.ant-select-lg .ant-select-selection--multiple .ant-select-selection__clear{top:20px}.ant-select-sm .ant-select-selection--single{height:24px}.ant-select-sm .ant-select-selection__rendered{margin-left:7px;line-height:22px}.ant-select-sm .ant-select-selection--multiple{min-height:24px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__rendered li{height:16px;line-height:14px}.ant-select-sm .ant-select-selection--multiple .ant-select-arrow,.ant-select-sm .ant-select-selection--multiple .ant-select-selection__clear{top:12px}.ant-select-sm .ant-select-arrow,.ant-select-sm .ant-select-selection__clear{right:8px}.ant-select-disabled .ant-select-selection__choice__remove{color:rgba(0,0,0,.25);cursor:default}.ant-select-disabled .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,.25)}.ant-select-search__field__wrap{position:relative;display:inline-block}.ant-select-search__field__placeholder,.ant-select-selection__placeholder{position:absolute;top:50%;right:9px;left:0;max-width:100%;height:20px;margin-top:-10px;overflow:hidden;color:#bfbfbf;line-height:20px;white-space:nowrap;text-align:left;text-overflow:ellipsis}.ant-select-search__field__placeholder{left:12px}.ant-select-search__field__mirror{position:absolute;top:0;left:0;white-space:pre;opacity:0;pointer-events:none}.ant-select-search--inline{position:absolute;width:100%;height:100%}.ant-select-search--inline .ant-select-search__field__wrap{width:100%;height:100%}.ant-select-search--inline .ant-select-search__field{width:100%;height:100%;font-size:100%;line-height:1;background:transparent;border-width:0;border-radius:2px;outline:0}.ant-select-search--inline>i{float:right}.ant-select-selection--multiple{min-height:32px;padding-bottom:3px;cursor:text;zoom:1}.ant-select-selection--multiple:after,.ant-select-selection--multiple:before{display:table;content:""}.ant-select-selection--multiple:after{clear:both}.ant-select-selection--multiple .ant-select-search--inline{position:static;float:left;width:auto;max-width:100%;padding:0}.ant-select-selection--multiple .ant-select-search--inline .ant-select-search__field{width:.75em;max-width:100%;padding:1px}.ant-select-selection--multiple .ant-select-selection__rendered{height:auto;margin-bottom:-3px;margin-left:5px}.ant-select-selection--multiple .ant-select-selection__placeholder{margin-left:6px}.ant-select-selection--multiple .ant-select-selection__rendered>ul>li,.ant-select-selection--multiple>ul>li{height:24px;margin-top:3px;line-height:22px}.ant-select-selection--multiple .ant-select-selection__choice{position:relative;float:left;max-width:99%;margin-right:4px;padding:0 20px 0 10px;overflow:hidden;color:rgba(0,0,0,.65);background-color:#fafafa;border:1px solid #e8e8e8;border-radius:2px;cursor:default;-webkit-transition:padding .3s cubic-bezier(.645,.045,.355,1);transition:padding .3s cubic-bezier(.645,.045,.355,1)}.ant-select-selection--multiple .ant-select-selection__choice__disabled{padding:0 10px}.ant-select-selection--multiple .ant-select-selection__choice__content{display:inline-block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-transition:margin .3s cubic-bezier(.645,.045,.355,1);transition:margin .3s cubic-bezier(.645,.045,.355,1)}.ant-select-selection--multiple .ant-select-selection__choice__remove{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:4px;color:rgba(0,0,0,.45);font-weight:700;line-height:inherit;cursor:pointer;-webkit-transition:all .3s;transition:all .3s;display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg)}.ant-select-selection--multiple .ant-select-selection__choice__remove>*{line-height:1}.ant-select-selection--multiple .ant-select-selection__choice__remove svg{display:inline-block}.ant-select-selection--multiple .ant-select-selection__choice__remove:before{display:none}.ant-select-selection--multiple .ant-select-selection__choice__remove .ant-select-selection--multiple .ant-select-selection__choice__remove-icon{display:block}:root .ant-select-selection--multiple .ant-select-selection__choice__remove{font-size:12px}.ant-select-selection--multiple .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,.75)}.ant-select-selection--multiple .ant-select-arrow,.ant-select-selection--multiple .ant-select-selection__clear{top:16px}.ant-select-allow-clear .ant-select-selection--multiple .ant-select-selection__rendered,.ant-select-show-arrow .ant-select-selection--multiple .ant-select-selection__rendered{margin-right:20px}.ant-select-open .ant-select-arrow-icon svg{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ant-select-open .ant-select-selection{border-color:#597ef7;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-select-combobox .ant-select-arrow{display:none}.ant-select-combobox .ant-select-search--inline{float:none;width:100%;height:100%}.ant-select-combobox .ant-select-search__field__wrap{width:100%;height:100%}.ant-select-combobox .ant-select-search__field{position:relative;z-index:1;width:100%;height:100%;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1),height 0s;transition:all .3s cubic-bezier(.645,.045,.355,1),height 0s}.ant-select-combobox.ant-select-allow-clear .ant-select-selection:hover .ant-select-selection__rendered,.ant-select-combobox.ant-select-show-arrow .ant-select-selection:hover .ant-select-selection__rendered{margin-right:20px}.ant-select-dropdown{margin:0;padding:0;color:rgba(0,0,0,.65);font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;font-variant:normal;background-color:#fff;border-radius:2px;outline:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-dropdown-menu{max-height:250px;margin-bottom:0;padding:4px 0;padding-left:0;overflow:auto;list-style:none;outline:none}.ant-select-dropdown-menu-item-group-list{margin:0;padding:0}.ant-select-dropdown-menu-item-group-list>.ant-select-dropdown-menu-item{padding-left:20px}.ant-select-dropdown-menu-item-group-title{height:32px;padding:0 12px;color:rgba(0,0,0,.45);font-size:12px;line-height:32px}.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child),.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child{border-radius:0}.ant-select-dropdown-menu-item{position:relative;display:block;padding:5px 12px;overflow:hidden;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#f0f5ff}.ant-select-dropdown-menu-item-selected{color:rgba(0,0,0,.65);font-weight:600;background-color:#fafafa}.ant-select-dropdown-menu-item-disabled,.ant-select-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#f0f5ff}.ant-select-dropdown-menu-item-divider{height:1px;margin:1px 0;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item{padding-right:32px}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item .ant-select-selected-icon{position:absolute;top:50%;right:12px;color:transparent;font-weight:700;font-size:12px;text-shadow:0 .1px 0,.1px 0 0,0 -.1px 0,-.1px 0;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all .2s;transition:all .2s}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon{color:rgba(0,0,0,.87)}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-disabled .ant-select-selected-icon{display:none}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{display:inline-block;color:#2f54eb}.ant-select-dropdown--empty.ant-select-dropdown--multiple .ant-select-dropdown-menu-item{padding-right:12px}.ant-select-dropdown-container-open .ant-select-dropdown,.ant-select-dropdown-open .ant-select-dropdown{display:block}.ant-skeleton{display:table;width:100%}.ant-skeleton-header{display:table-cell;padding-right:16px;vertical-align:top}.ant-skeleton-header .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:#f2f2f2;width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content{display:table-cell;width:100%;vertical-align:top}.ant-skeleton-content .ant-skeleton-title{width:100%;height:16px;margin-top:16px;background:#f2f2f2}.ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:24px}.ant-skeleton-content .ant-skeleton-paragraph{padding:0}.ant-skeleton-content .ant-skeleton-paragraph>li{width:100%;height:16px;list-style:none;background:#f2f2f2}.ant-skeleton-content .ant-skeleton-paragraph>li:last-child:not(:first-child):not(:nth-child(2)){width:61%}.ant-skeleton-content .ant-skeleton-paragraph>li+li{margin-top:16px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title{margin-top:12px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:28px}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:ant-skeleton-loading 1.4s ease infinite;animation:ant-skeleton-loading 1.4s ease infinite}@-webkit-keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.ant-slider{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;height:12px;margin:14px 6px 10px;padding:4px 0;cursor:pointer;-ms-touch-action:none;touch-action:none}.ant-slider-vertical{width:12px;height:100%;margin:6px 10px;padding:0 4px}.ant-slider-vertical .ant-slider-rail{width:4px;height:100%}.ant-slider-vertical .ant-slider-track{width:4px}.ant-slider-vertical .ant-slider-handle{margin-top:-6px;margin-left:-5px}.ant-slider-vertical .ant-slider-mark{top:0;left:12px;width:18px;height:100%}.ant-slider-vertical .ant-slider-mark-text{left:4px;white-space:nowrap}.ant-slider-vertical .ant-slider-step{width:4px;height:100%}.ant-slider-vertical .ant-slider-dot{top:auto;left:2px;margin-bottom:-4px}.ant-slider-tooltip .ant-tooltip-inner{min-width:unset}.ant-slider-with-marks{margin-bottom:28px}.ant-slider-rail{width:100%;background-color:#f5f5f5}.ant-slider-rail,.ant-slider-track{position:absolute;height:4px;border-radius:2px;-webkit-transition:background-color .3s;transition:background-color .3s}.ant-slider-track{background-color:#adc6ff}.ant-slider-handle{position:absolute;width:14px;height:14px;margin-top:-5px;background-color:#fff;border:2px solid #adc6ff;border-radius:50%;-webkit-box-shadow:0;box-shadow:0;cursor:pointer;-webkit-transition:border-color .3s,-webkit-box-shadow .6s,-webkit-transform .3s cubic-bezier(.18,.89,.32,1.28);transition:border-color .3s,-webkit-box-shadow .6s,-webkit-transform .3s cubic-bezier(.18,.89,.32,1.28);transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28);transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28),-webkit-box-shadow .6s,-webkit-transform .3s cubic-bezier(.18,.89,.32,1.28)}.ant-slider-handle:focus{border-color:#5976ef;outline:none;-webkit-box-shadow:0 0 0 5px rgba(47,84,235,.2);box-shadow:0 0 0 5px rgba(47,84,235,.2)}.ant-slider-handle.ant-tooltip-open{border-color:#2f54eb}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#85a5ff}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#85a5ff}.ant-slider-mark{position:absolute;top:14px;left:0;width:100%;font-size:14px}.ant-slider-mark-text{position:absolute;display:inline-block;color:rgba(0,0,0,.45);text-align:center;word-break:keep-all;cursor:pointer}.ant-slider-mark-text-active{color:rgba(0,0,0,.65)}.ant-slider-step{position:absolute;width:100%;height:4px;background:transparent}.ant-slider-dot{position:absolute;top:-2px;width:8px;height:8px;background-color:#fff;border:2px solid #e8e8e8;border-radius:50%;cursor:pointer}.ant-slider-dot,.ant-slider-dot:first-child,.ant-slider-dot:last-child{margin-left:-4px}.ant-slider-dot-active{border-color:#97aaf5}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,.25)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#fff;border-color:rgba(0,0,0,.25)!important;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-space{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.ant-space-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.ant-space-align-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ant-space-align-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.ant-space-align-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.ant-space-align-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.ant-spin{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;display:none;color:#2f54eb;text-align:center;vertical-align:middle;opacity:0;-webkit-transition:-webkit-transform .3s cubic-bezier(.78,.14,.15,.86);transition:-webkit-transform .3s cubic-bezier(.78,.14,.15,.86);transition:transform .3s cubic-bezier(.78,.14,.15,.86);transition:transform .3s cubic-bezier(.78,.14,.15,.86),-webkit-transform .3s cubic-bezier(.78,.14,.15,.86)}.ant-spin-spinning{position:static;display:inline-block;opacity:1}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{position:absolute;top:0;left:0;z-index:4;display:block;width:100%;height:100%;max-height:400px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{position:absolute;top:50%;left:50%;margin:-10px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{position:absolute;top:50%;width:100%;padding-top:5px;text-shadow:0 1px 2px #fff}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;-webkit-transition:opacity .3s;transition:opacity .3s}.ant-spin-container:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:none\9;width:100%;height:100%;background:#fff;opacity:0;-webkit-transition:all .3s;transition:all .3s;content:"";pointer-events:none}.ant-spin-blur{clear:both;overflow:hidden;opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(0,0,0,.45)}.ant-spin-dot{position:relative;display:inline-block;font-size:20px;width:1em;height:1em}.ant-spin-dot-item{position:absolute;display:block;width:9px;height:9px;background-color:#2f54eb;border-radius:100%;-webkit-transform:scale(.75);transform:scale(.75);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;opacity:.3;-webkit-animation:antSpinMove 1s linear infinite alternate;animation:antSpinMove 1s linear infinite alternate}.ant-spin-dot-item:first-child{top:0;left:0}.ant-spin-dot-item:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.ant-spin-dot-item:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.ant-spin-dot-item:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}.ant-spin-dot-spin{-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:antRotate 1.2s linear infinite;animation:antRotate 1.2s linear infinite}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{width:6px;height:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{width:14px;height:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-spin-blur{background:#fff;opacity:.5}}@-webkit-keyframes antSpinMove{to{opacity:1}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}.ant-statistic{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.ant-statistic-title{margin-bottom:4px;color:rgba(0,0,0,.45);font-size:14px}.ant-statistic-content{color:rgba(0,0,0,.85);font-size:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ant-statistic-content-value-decimal{font-size:16px}.ant-statistic-content-prefix,.ant-statistic-content-suffix{display:inline-block}.ant-statistic-content-prefix{margin-right:4px}.ant-statistic-content-suffix{margin-left:4px;font-size:16px}.ant-steps{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;font-size:0}.ant-steps-item{position:relative;display:inline-block;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;vertical-align:top}.ant-steps-item-container{outline:none}.ant-steps-item:last-child{-webkit-box-flex:0;-ms-flex:none;flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{width:32px;height:32px;margin-right:8px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;line-height:32px;text-align:center;border:1px solid rgba(0,0,0,.25);border-radius:32px;-webkit-transition:background-color .3s,border-color .3s;transition:background-color .3s,border-color .3s}.ant-steps-item-icon>.ant-steps-icon{position:relative;top:-1px;color:#2f54eb;line-height:1}.ant-steps-item-tail{position:absolute;top:12px;left:0;width:100%;padding:0 10px}.ant-steps-item-tail:after{display:inline-block;width:100%;height:1px;background:#e8e8e8;border-radius:1px;-webkit-transition:background .3s;transition:background .3s;content:""}.ant-steps-item-title{position:relative;display:inline-block;padding-right:16px;color:rgba(0,0,0,.65);font-size:16px;line-height:32px}.ant-steps-item-title:after{position:absolute;top:16px;left:100%;display:block;width:9999px;height:1px;background:#e8e8e8;content:""}.ant-steps-item-subtitle{display:inline;margin-left:8px;font-weight:400}.ant-steps-item-description,.ant-steps-item-subtitle{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#e8e8e8}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#2f54eb}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#2f54eb}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#2f54eb}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#e8e8e8}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.65)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background:#2f54eb}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#fff}.ant-steps-item-process .ant-steps-item-title{font-weight:500}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#2f54eb}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#2f54eb}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#2f54eb}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.65)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#2f54eb}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#2f54eb}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#e8e8e8}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#e8e8e8}.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after{background:#f5222d}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]{cursor:pointer}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-icon .ant-steps-icon,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-title{-webkit-transition:color .3s;transition:color .3s}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#2f54eb}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#2f54eb}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#2f54eb}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{margin-right:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child{margin-right:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-right:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail{display:none}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px;white-space:normal}.ant-steps-item-custom .ant-steps-item-icon{height:auto;background:none;border:0}.ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{top:0;left:.5px;width:32px;height:32px;font-size:24px;line-height:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#2f54eb}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{width:auto}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{margin-right:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child{margin-right:0}.ant-steps-small .ant-steps-item-icon{width:24px;height:24px;font-size:12px;line-height:24px;text-align:center;border-radius:24px}.ant-steps-small .ant-steps-item-title{padding-right:12px;font-size:14px;line-height:24px}.ant-steps-small .ant-steps-item-title:after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-small .ant-steps-item-tail{top:8px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{width:inherit;height:inherit;line-height:inherit;background:none;border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px;-webkit-transform:none;transform:none}.ant-steps-vertical{display:block}.ant-steps-vertical .ant-steps-item{display:block;overflow:visible}.ant-steps-vertical .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-vertical .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical .ant-steps-item-title{line-height:32px}.ant-steps-vertical .ant-steps-item-description{padding-bottom:12px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{position:absolute;top:0;left:16px;width:1px;height:100%;padding:38px 0 6px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail:after{width:1px;height:100%}.ant-steps-vertical>.ant-steps-item:not(:last-child)>.ant-steps-item-container>.ant-steps-item-tail{display:block}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{display:none}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{position:absolute;top:0;left:12px;padding:30px 0 6px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}@media (max-width:480px){.ant-steps-horizontal.ant-steps-label-horizontal{display:block}.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item{display:block;overflow:visible}.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-title{line-height:32px}.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-description{padding-bottom:12px}.ant-steps-horizontal.ant-steps-label-horizontal>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{position:absolute;top:0;left:16px;width:1px;height:100%;padding:38px 0 6px}.ant-steps-horizontal.ant-steps-label-horizontal>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail:after{width:1px;height:100%}.ant-steps-horizontal.ant-steps-label-horizontal>.ant-steps-item:not(:last-child)>.ant-steps-item-container>.ant-steps-item-tail{display:block}.ant-steps-horizontal.ant-steps-label-horizontal>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{display:none}.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{position:absolute;top:0;left:12px;padding:30px 0 6px}.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}}.ant-steps-label-vertical .ant-steps-item{overflow:visible}.ant-steps-label-vertical .ant-steps-item-tail{margin-left:58px;padding:3.5px 24px}.ant-steps-label-vertical .ant-steps-item-content{display:block;width:116px;margin-top:8px;text-align:center}.ant-steps-label-vertical .ant-steps-item-icon{display:inline-block;margin-left:42px}.ant-steps-label-vertical .ant-steps-item-title{padding-right:0}.ant-steps-label-vertical .ant-steps-item-title:after{display:none}.ant-steps-label-vertical .ant-steps-item-subtitle{display:block;margin-bottom:4px;margin-left:0;line-height:1.5}.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon{margin-left:46px}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5}.ant-steps-dot .ant-steps-item-tail,.ant-steps-dot.ant-steps-small .ant-steps-item-tail{top:2px;width:100%;margin:0 0 0 70px;padding:0}.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{width:calc(100% - 20px);height:3px;margin-left:12px}.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:2px}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{width:8px;height:8px;margin-left:67px;padding-right:0;line-height:8px;background:transparent;border:0}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{position:relative;float:left;width:100%;height:100%;border-radius:100px;-webkit-transition:all .3s;transition:all .3s}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{position:absolute;top:-12px;left:-26px;width:60px;height:32px;background:rgba(0,0,0,.001);content:""}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{width:10px;height:10px;line-height:10px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon .ant-steps-icon-dot{top:-1px}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-top:8px;margin-left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{top:2px;left:-9px;margin:0;padding:22px 0 4px}.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot{left:-2px}.ant-steps-navigation{padding-top:12px}.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:-12px}.ant-steps-navigation .ant-steps-item{overflow:visible;text-align:center}.ant-steps-navigation .ant-steps-item-container{display:inline-block;height:100%;margin-left:-16px;padding-bottom:12px;text-align:left;-webkit-transition:opacity .3s;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:auto}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{max-width:100%;padding-right:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title:after{display:none}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]{cursor:pointer}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]:hover{opacity:.85}.ant-steps-navigation .ant-steps-item:last-child{-webkit-box-flex:1;-ms-flex:1;flex:1}.ant-steps-navigation .ant-steps-item:last-child:after{display:none}.ant-steps-navigation .ant-steps-item:after{position:absolute;top:50%;left:100%;display:inline-block;width:12px;height:12px;margin-top:-14px;margin-left:-2px;border:1px solid rgba(0,0,0,.25);border-bottom:none;border-left:none;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:""}.ant-steps-navigation .ant-steps-item:before{position:absolute;bottom:0;left:50%;display:inline-block;width:0;height:3px;background-color:#2f54eb;-webkit-transition:width .3s,left .3s;transition:width .3s,left .3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;content:""}.ant-steps-navigation .ant-steps-item.ant-steps-item-active:before{left:0;width:100%}@media (max-width:480px){.ant-steps-navigation>.ant-steps-item{margin-right:0!important}.ant-steps-navigation>.ant-steps-item:before{display:none}.ant-steps-navigation>.ant-steps-item.ant-steps-item-active:before{top:0;right:0;left:unset;display:block;width:3px;height:calc(100% - 24px)}.ant-steps-navigation>.ant-steps-item:after{position:relative;top:-2px;left:50%;display:block;width:8px;height:8px;margin-bottom:8px;text-align:center;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.ant-steps-navigation>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}}.ant-steps-flex-not-supported.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item{margin-left:-16px;padding-left:16px;background:#fff}.ant-steps-flex-not-supported.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item{margin-left:-12px;padding-left:12px}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item:last-child{overflow:hidden}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item:last-child .ant-steps-icon-dot:after{right:-200px;width:200px}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot:after,.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot:before{position:absolute;top:0;left:-10px;width:10px;height:8px;background:#fff;content:""}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot:after{right:-10px;left:auto}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#ccc}.ant-switch{margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:44px;height:22px;line-height:20px;vertical-align:middle;background-color:rgba(0,0,0,.25);border:1px solid transparent;border-radius:100px;cursor:pointer;-webkit-transition:all .36s;transition:all .36s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-switch-inner{display:block;margin-right:6px;margin-left:24px;color:#fff;font-size:12px}.ant-switch-loading-icon,.ant-switch:after{position:absolute;top:1px;left:1px;width:18px;height:18px;background-color:#fff;border-radius:18px;cursor:pointer;-webkit-transition:all .36s cubic-bezier(.78,.14,.15,.86);transition:all .36s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-switch:after{-webkit-box-shadow:0 2px 4px 0 rgba(0,35,11,.2);box-shadow:0 2px 4px 0 rgba(0,35,11,.2)}.ant-switch:not(.ant-switch-disabled):active:after,.ant-switch:not(.ant-switch-disabled):active:before{width:24px}.ant-switch-loading-icon{z-index:1;display:none;font-size:12px;background:transparent}.ant-switch-loading-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-switch-loading .ant-switch-loading-icon{display:inline-block;color:rgba(0,0,0,.65)}.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#2f54eb}.ant-switch:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-switch:focus:hover{-webkit-box-shadow:none;box-shadow:none}.ant-switch-small{min-width:28px;height:16px;line-height:14px}.ant-switch-small .ant-switch-inner{margin-right:3px;margin-left:18px;font-size:12px}.ant-switch-small:after{width:12px;height:12px}.ant-switch-small:active:after,.ant-switch-small:active:before{width:16px}.ant-switch-small .ant-switch-loading-icon{width:12px;height:12px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin-right:18px;margin-left:3px}.ant-switch-small.ant-switch-checked .ant-switch-loading-icon{left:100%;margin-left:-13px}.ant-switch-small.ant-switch-loading .ant-switch-loading-icon{font-weight:700;-webkit-transform:scale(.66667);transform:scale(.66667)}.ant-switch-checked{background-color:#2f54eb}.ant-switch-checked .ant-switch-inner{margin-right:24px;margin-left:6px}.ant-switch-checked:after{left:100%;margin-left:-1px;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.ant-switch-checked .ant-switch-loading-icon{left:100%;margin-left:-19px}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-disabled:after,.ant-switch-disabled:before,.ant-switch-loading *,.ant-switch-loading:after,.ant-switch-loading:before{cursor:not-allowed}@-webkit-keyframes AntSwitchSmallLoadingCircle{0%{-webkit-transform:rotate(0deg) scale(.66667);transform:rotate(0deg) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}to{-webkit-transform:rotate(1turn) scale(.66667);transform:rotate(1turn) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}}@keyframes AntSwitchSmallLoadingCircle{0%{-webkit-transform:rotate(0deg) scale(.66667);transform:rotate(0deg) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}to{-webkit-transform:rotate(1turn) scale(.66667);transform:rotate(1turn) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}}.ant-table-wrapper{zoom:1}.ant-table-wrapper:after,.ant-table-wrapper:before{display:table;content:""}.ant-table-wrapper:after{clear:both}.ant-table{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;clear:both}.ant-table-body{-webkit-transition:opacity .3s;transition:opacity .3s}.ant-table-empty .ant-table-body{overflow-x:auto!important;overflow-y:hidden!important}.ant-table table{width:100%;text-align:left;border-radius:2px 2px 0 0;border-collapse:separate;border-spacing:0}.ant-table-layout-fixed table{table-layout:fixed}.ant-table-thead>tr>th{color:rgba(0,0,0,.85);font-weight:500;text-align:left;background:#fafafa;border-bottom:1px solid #e8e8e8;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr>th .ant-table-filter-icon,.ant-table-thead>tr>th .anticon-filter{position:absolute;top:0;right:0;width:28px;height:100%;color:#bfbfbf;font-size:12px;text-align:center;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-table-thead>tr>th .ant-table-filter-icon>svg,.ant-table-thead>tr>th .anticon-filter>svg{position:absolute;top:50%;left:50%;margin-top:-5px;margin-left:-6px}.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#2f54eb}.ant-table-thead>tr>th .ant-table-column-sorter{display:table-cell;vertical-align:middle}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner{height:1em;margin-top:.35em;margin-left:.57142857em;color:#bfbfbf;line-height:1em;text-align:center;-webkit-transition:all .3s;transition:all .3s}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up{display:inline-block;font-size:12px;font-size:11px\9;-webkit-transform:scale(.91666667) rotate(0deg);transform:scale(.91666667) rotate(0deg);display:block;height:1em;line-height:1em;-webkit-transition:all .3s;transition:all .3s}:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down,:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up{font-size:12px}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#2f54eb}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full{margin-top:-.15em}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full .ant-table-column-sorter-down,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full .ant-table-column-sorter-up{height:.5em;line-height:.5em}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full .ant-table-column-sorter-down{margin-top:.125em}.ant-table-thead>tr>th.ant-table-column-has-actions{position:relative;background-clip:padding-box;-webkit-background-clip:border-box}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters{padding-right:30px!important}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .ant-table-filter-icon.ant-table-filter-open,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .anticon-filter.ant-table-filter-open,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:hover,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:hover{color:rgba(0,0,0,.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:active,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:active{color:rgba(0,0,0,.65)}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters{cursor:pointer}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .ant-table-filter-icon,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .anticon-filter{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-down:not(.on),.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-up:not(.on){color:rgba(0,0,0,.45)}.ant-table-thead>tr>th .ant-table-header-column{display:inline-block;max-width:100%;vertical-align:top}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters{display:table}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>.ant-table-column-title{display:table-cell;vertical-align:middle}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:relative}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters:before{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;-webkit-transition:all .3s;transition:all .3s;content:""}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters:hover:before{background:rgba(0,0,0,.04)}.ant-table-thead>tr>th.ant-table-column-has-sorters{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-table-thead>tr:first-child>th:first-child{border-top-left-radius:2px}.ant-table-thead>tr:first-child>th:last-child{border-top-right-radius:2px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #e8e8e8;-webkit-transition:background .3s;transition:background .3s}.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#f0f5ff}.ant-table-tbody>tr.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr:hover.ant-table-row-selected>td,.ant-table-tbody>tr:hover.ant-table-row-selected>td.ant-table-column-sort,.ant-table-thead>tr.ant-table-row-selected>td.ant-table-column-sort,.ant-table-thead>tr:hover.ant-table-row-selected>td,.ant-table-thead>tr:hover.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-thead>tr:hover{background:none}.ant-table-footer{position:relative;padding:16px 16px;color:rgba(0,0,0,.85);background:#fafafa;border-top:1px solid #e8e8e8;border-radius:0 0 2px 2px}.ant-table-footer:before{position:absolute;top:-1px;left:0;width:100%;height:1px;background:#fafafa;content:""}.ant-table.ant-table-bordered .ant-table-footer{border:1px solid #e8e8e8}.ant-table-title{position:relative;top:1px;padding:16px 0;border-radius:2px 2px 0 0}.ant-table.ant-table-bordered .ant-table-title{padding-right:16px;padding-left:16px;border:1px solid #e8e8e8}.ant-table-title+.ant-table-content{position:relative;border-radius:2px 2px 0 0}.ant-table-bordered .ant-table-title+.ant-table-content,.ant-table-bordered .ant-table-title+.ant-table-content .ant-table-thead>tr:first-child>th,.ant-table-bordered .ant-table-title+.ant-table-content table,.ant-table-without-column-header .ant-table-title+.ant-table-content,.ant-table-without-column-header table{border-radius:0}.ant-table-without-column-header.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-top:1px solid #e8e8e8;border-radius:2px}.ant-table-tbody>tr.ant-table-row-selected td{color:inherit;background:#fafafa}.ant-table-thead>tr>th.ant-table-column-sort{background:#f5f5f5}.ant-table-tbody>tr>td.ant-table-column-sort{background:rgba(0,0,0,.01)}.ant-table-tbody>tr>td,.ant-table-thead>tr>th{padding:16px 16px;overflow-wrap:break-word}.ant-table-expand-icon-th,.ant-table-row-expand-icon-cell{width:50px;min-width:50px;text-align:center}.ant-table-header{overflow:hidden;background:#fafafa}.ant-table-header table{border-radius:2px 2px 0 0}.ant-table-loading{position:relative}.ant-table-loading .ant-table-body{background:#fff;opacity:.5}.ant-table-loading .ant-table-spin-holder{position:absolute;top:50%;left:50%;height:20px;margin-left:-30px;line-height:20px}.ant-table-loading .ant-table-with-pagination{margin-top:-20px}.ant-table-loading .ant-table-without-pagination{margin-top:10px}.ant-table-bordered .ant-table-body>table,.ant-table-bordered .ant-table-fixed-left table,.ant-table-bordered .ant-table-fixed-right table,.ant-table-bordered .ant-table-header>table{border:1px solid #e8e8e8;border-right:0;border-bottom:0}.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-bordered.ant-table-fixed-header .ant-table-header>table{border-bottom:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body>table{border-top-left-radius:0;border-top-right-radius:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner>table,.ant-table-bordered.ant-table-fixed-header .ant-table-header+.ant-table-body>table{border-top:0}.ant-table-bordered .ant-table-thead>tr:not(:last-child)>th{border-bottom:1px solid #e8e8e8}.ant-table-bordered .ant-table-tbody>tr>td,.ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #e8e8e8}.ant-table-placeholder{position:relative;z-index:1;margin-top:-1px;padding:16px 16px;color:rgba(0,0,0,.25);font-size:14px;text-align:center;background:#fff;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0 0 2px 2px}.ant-table-pagination.ant-pagination{float:right;margin:16px 0}.ant-table-filter-dropdown{position:relative;min-width:96px;margin-left:-8px;background:#fff;border-radius:2px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-table-filter-dropdown .ant-dropdown-menu{max-height:calc(100vh - 130px);overflow-x:hidden;border:0;border-radius:2px 2px 0 0;-webkit-box-shadow:none;box-shadow:none}.ant-table-filter-dropdown .ant-dropdown-menu-item>label+span{padding-right:0}.ant-table-filter-dropdown .ant-dropdown-menu-sub{border-radius:2px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#2f54eb;font-weight:700;text-shadow:0 0 2px #d6e4ff}.ant-table-filter-dropdown .ant-dropdown-menu-item{overflow:hidden}.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-item:last-child,.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title{border-radius:0}.ant-table-filter-dropdown-btns{padding:7px 8px;overflow:hidden;border-top:1px solid #e8e8e8}.ant-table-filter-dropdown-link{color:#2f54eb}.ant-table-filter-dropdown-link:hover{color:#597ef7}.ant-table-filter-dropdown-link:active{color:#1d39c4}.ant-table-filter-dropdown-link.confirm{float:left}.ant-table-filter-dropdown-link.clear{float:right}.ant-table-selection{white-space:nowrap}.ant-table-selection-select-all-custom{margin-right:4px!important}.ant-table-selection .anticon-down{color:#bfbfbf;-webkit-transition:all .3s;transition:all .3s}.ant-table-selection-menu{min-width:96px;margin-top:5px;margin-left:-30px;background:#fff;border-radius:2px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-table-selection-menu .ant-action-down{color:#bfbfbf}.ant-table-selection-down{display:inline-block;padding:0;line-height:1;cursor:pointer}.ant-table-selection-down:hover .anticon-down{color:rgba(0,0,0,.6)}.ant-table-row-expand-icon{color:#2f54eb;text-decoration:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;display:inline-block;width:17px;height:17px;color:inherit;line-height:13px;text-align:center;background:#fff;border:1px solid #e8e8e8;border-radius:2px;outline:none;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#597ef7}.ant-table-row-expand-icon:active{color:#1d39c4}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentColor}.ant-table-row-expanded:after{content:"-"}.ant-table-row-collapsed:after{content:"+"}.ant-table-row-spaced{visibility:hidden}.ant-table-row-spaced:after{content:"."}.ant-table-row-cell-ellipsis,.ant-table-row-cell-ellipsis .ant-table-column-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-table-row-cell-ellipsis .ant-table-column-title{display:block}.ant-table-row-cell-break-word{word-wrap:break-word;word-break:break-word}tr.ant-table-expanded-row,tr.ant-table-expanded-row:hover{background:#fbfbfb}tr.ant-table-expanded-row td>.ant-table-wrapper{margin:-16px -16px -17px}.ant-table .ant-table-row-indent+.ant-table-row-expand-icon{margin-right:8px}.ant-table-scroll{overflow:auto;overflow-x:hidden}.ant-table-scroll table{min-width:100%}.ant-table-scroll table .ant-table-fixed-columns-in-body:not([colspan]){color:transparent}.ant-table-scroll table .ant-table-fixed-columns-in-body:not([colspan])>*{visibility:hidden}.ant-table-body-inner{height:100%}.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{position:relative;background:#fff}.ant-table-fixed-header .ant-table-body-inner{overflow:scroll}.ant-table-fixed-header .ant-table-scroll .ant-table-header{margin-bottom:-20px;padding-bottom:20px;overflow:scroll;opacity:.9999}.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:0 0 1px 0}.ant-table-hide-scrollbar{scrollbar-color:transparent transparent;min-width:unset}.ant-table-hide-scrollbar::-webkit-scrollbar{min-width:inherit;background-color:transparent}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:1px 1px 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header.ant-table-hide-scrollbar .ant-table-thead>tr:only-child>th:last-child{border-right-color:transparent}.ant-table-fixed-left,.ant-table-fixed-right{position:absolute;top:0;z-index:1;overflow:hidden;border-radius:0;-webkit-transition:-webkit-box-shadow .3s ease;transition:-webkit-box-shadow .3s ease;transition:box-shadow .3s ease;transition:box-shadow .3s ease,-webkit-box-shadow .3s ease}.ant-table-fixed-left table,.ant-table-fixed-right table{width:auto;background:#fff}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed,.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed{border-radius:0}.ant-table-fixed-left{left:0;-webkit-box-shadow:6px 0 6px -4px rgba(0,0,0,.15);box-shadow:6px 0 6px -4px rgba(0,0,0,.15)}.ant-table-fixed-left .ant-table-header{overflow-y:hidden}.ant-table-fixed-left .ant-table-body-inner{margin-right:-20px;padding-right:20px}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-inner{padding-right:0}.ant-table-fixed-left,.ant-table-fixed-left table{border-radius:2px 0 0 0}.ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-top-right-radius:0}.ant-table-fixed-right{right:0;-webkit-box-shadow:-6px 0 6px -4px rgba(0,0,0,.15);box-shadow:-6px 0 6px -4px rgba(0,0,0,.15)}.ant-table-fixed-right,.ant-table-fixed-right table{border-radius:0 2px 0 0}.ant-table-fixed-right .ant-table-expanded-row{color:transparent;pointer-events:none}.ant-table-fixed-right .ant-table-thead>tr>th:first-child{border-top-left-radius:0}.ant-table.ant-table-scroll-position-left .ant-table-fixed-left,.ant-table.ant-table-scroll-position-right .ant-table-fixed-right{-webkit-box-shadow:none;box-shadow:none}.ant-table colgroup>col.ant-table-selection-col{width:60px}.ant-table-thead>tr>th.ant-table-selection-column-custom .ant-table-selection{margin-right:-15px}.ant-table-tbody>tr>td.ant-table-selection-column,.ant-table-thead>tr>th.ant-table-selection-column{text-align:center}.ant-table-tbody>tr>td.ant-table-selection-column .ant-radio-wrapper,.ant-table-thead>tr>th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}.ant-table-row[class*=ant-table-row-level-0] .ant-table-selection-column>span{display:inline-block}.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-left:8px}@supports (-moz-appearance:meterbar){.ant-table-thead>tr>th.ant-table-column-has-actions{background-clip:padding-box}}.ant-table-middle>.ant-table-content>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-footer,.ant-table-middle>.ant-table-content>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-title{padding:12px 8px}.ant-table-middle tr.ant-table-expanded-row td>.ant-table-wrapper{margin:-12px -8px -13px}.ant-table-small{border:1px solid #e8e8e8;border-radius:2px}.ant-table-small>.ant-table-content>.ant-table-footer,.ant-table-small>.ant-table-title{padding:8px 8px}.ant-table-small>.ant-table-title{top:0;border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-footer{background-color:transparent;border-top:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-footer:before{background-color:transparent}.ant-table-small>.ant-table-content>.ant-table-body{margin:0 8px}.ant-table-small>.ant-table-content>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table{border:0}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th{padding:8px 8px}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th{background-color:transparent}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort{background-color:rgba(0,0,0,.01)}.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table{padding:0}.ant-table-small>.ant-table-content .ant-table-header{background-color:transparent;border-radius:2px 2px 0 0}.ant-table-small>.ant-table-content .ant-table-placeholder,.ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:0}.ant-table-small.ant-table-bordered{border-right:0}.ant-table-small.ant-table-bordered .ant-table-title{border:0;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-content{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer{border:0;border-top:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer:before{display:none}.ant-table-small.ant-table-bordered .ant-table-placeholder{border-right:0;border-bottom:0;border-left:0}.ant-table-small.ant-table-bordered .ant-table-tbody>tr>td:last-child,.ant-table-small.ant-table-bordered .ant-table-thead>tr>th.ant-table-row-cell-last{border-right:none}.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody>tr>td:last-child,.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-fixed-right{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-small tr.ant-table-expanded-row td>.ant-table-wrapper{margin:-8px -8px -9px}.ant-table-small.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{border-radius:0 0 2px 2px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container{height:40px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-ink-bar{visibility:hidden}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{height:40px;margin:0;margin-right:2px;padding:0 16px;line-height:38px;background:#fafafa;border:1px solid #e8e8e8;border-radius:2px 2px 0 0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{height:40px;color:#2f54eb;background:#fff;border-color:#e8e8e8;border-bottom:1px solid #fff}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active:before{border-top:2px solid transparent}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#2f54eb;color:rgba(0,0,0,.25)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-inactive{padding:0}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-wrap{margin-bottom:0}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{width:16px;height:16px;height:14px;margin-right:-5px;margin-left:3px;overflow:hidden;color:rgba(0,0,0,.45);font-size:12px;vertical-align:middle;-webkit-transition:all .3s;transition:all .3s}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover{color:rgba(0,0,0,.85)}.ant-tabs.ant-tabs-card .ant-tabs-card-content>.ant-tabs-tabpane,.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content>.ant-tabs-tabpane{-webkit-transition:none!important;transition:none!important}.ant-tabs.ant-tabs-card .ant-tabs-card-content>.ant-tabs-tabpane-inactive,.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content>.ant-tabs-tabpane-inactive{overflow:hidden}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab:hover .anticon-close{opacity:1}.ant-tabs-extra-content{line-height:45px}.ant-tabs-extra-content .ant-tabs-new-tab{position:relative;width:20px;height:20px;color:rgba(0,0,0,.65);font-size:12px;line-height:20px;text-align:center;border:1px solid #e8e8e8;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#2f54eb;border-color:#2f54eb}.ant-tabs-extra-content .ant-tabs-new-tab svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-tabs.ant-tabs-large .ant-tabs-extra-content{line-height:56px}.ant-tabs.ant-tabs-small .ant-tabs-extra-content{line-height:37px}.ant-tabs.ant-tabs-card .ant-tabs-extra-content{line-height:40px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-container{height:100%}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{margin-bottom:8px;border-bottom:1px solid #e8e8e8}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active{padding-bottom:4px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab:last-child,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab:last-child{margin-bottom:8px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-new-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-new-tab{width:90%}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-wrap{margin-right:0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab{margin-right:1px;border-right:0;border-radius:2px 0 0 2px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active{margin-right:-1px;padding-right:18px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-wrap{margin-left:0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{margin-left:1px;border-left:0;border-radius:0 2px 2px 0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active{margin-left:-1px;padding-left:18px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab{height:auto;border-top:0;border-bottom:1px solid #e8e8e8;border-radius:0 0 2px 2px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{padding-top:1px;padding-bottom:0;color:#2f54eb}.ant-tabs{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;overflow:hidden;zoom:1}.ant-tabs:after,.ant-tabs:before{display:table;content:""}.ant-tabs:after{clear:both}.ant-tabs-ink-bar{position:absolute;bottom:1px;left:0;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:2px;background-color:#2f54eb;-webkit-transform-origin:0 0;transform-origin:0 0}.ant-tabs-bar{margin:0 0 16px 0;border-bottom:1px solid #e8e8e8;outline:none}.ant-tabs-bar,.ant-tabs-nav-container{-webkit-transition:padding .3s cubic-bezier(.645,.045,.355,1);transition:padding .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav-container{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:-1px;overflow:hidden;font-size:14px;line-height:1.5;white-space:nowrap;zoom:1}.ant-tabs-nav-container:after,.ant-tabs-nav-container:before{display:table;content:""}.ant-tabs-nav-container:after{clear:both}.ant-tabs-nav-container-scrolling{padding-right:32px;padding-left:32px}.ant-tabs-bottom .ant-tabs-bottom-bar{margin-top:16px;margin-bottom:0;border-top:1px solid #e8e8e8;border-bottom:none}.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-ink-bar{top:1px;bottom:auto}.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-nav-container{margin-top:-1px;margin-bottom:0}.ant-tabs-tab-next,.ant-tabs-tab-prev{position:absolute;z-index:2;width:0;height:100%;color:rgba(0,0,0,.45);text-align:center;background-color:transparent;border:0;cursor:pointer;opacity:0;-webkit-transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ant-tabs-tab-next.ant-tabs-tab-arrow-show,.ant-tabs-tab-prev.ant-tabs-tab-arrow-show{width:32px;height:100%;opacity:1;pointer-events:auto}.ant-tabs-tab-next:hover,.ant-tabs-tab-prev:hover{color:rgba(0,0,0,.65)}.ant-tabs-tab-next-icon,.ant-tabs-tab-prev-icon{position:absolute;top:50%;left:50%;font-weight:700;font-style:normal;font-variant:normal;line-height:inherit;text-align:center;text-transform:none;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-tabs-tab-next-icon-target,.ant-tabs-tab-prev-icon-target{display:block;display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg)}:root .ant-tabs-tab-next-icon-target,:root .ant-tabs-tab-prev-icon-target{font-size:12px}.ant-tabs-tab-btn-disabled{cursor:not-allowed}.ant-tabs-tab-btn-disabled,.ant-tabs-tab-btn-disabled:hover{color:rgba(0,0,0,.25)}.ant-tabs-tab-next{right:2px}.ant-tabs-tab-prev{left:0}:root .ant-tabs-tab-prev{-webkit-filter:none;filter:none}.ant-tabs-nav-wrap{margin-bottom:-1px;overflow:hidden}.ant-tabs-nav-scroll{overflow:hidden;white-space:nowrap}.ant-tabs-nav{position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding-left:0;list-style:none;-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)}.ant-tabs-nav:after,.ant-tabs-nav:before{display:table;content:" "}.ant-tabs-nav:after{clear:both}.ant-tabs-nav .ant-tabs-tab{position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;margin:0 32px 0 0;padding:12px 16px;text-decoration:none;cursor:pointer;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav .ant-tabs-tab:before{position:absolute;top:-1px;left:0;width:100%;border-top:2px solid transparent;border-radius:2px 2px 0 0;-webkit-transition:all .3s;transition:all .3s;content:"";pointer-events:none}.ant-tabs-nav .ant-tabs-tab:last-child{margin-right:0}.ant-tabs-nav .ant-tabs-tab:hover{color:#597ef7}.ant-tabs-nav .ant-tabs-tab:active{color:#1d39c4}.ant-tabs-nav .ant-tabs-tab .anticon{margin-right:8px}.ant-tabs-nav .ant-tabs-tab-active{color:#2f54eb;font-weight:500}.ant-tabs-nav .ant-tabs-tab-disabled,.ant-tabs-nav .ant-tabs-tab-disabled:hover{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container{font-size:16px}.ant-tabs .ant-tabs-large-bar .ant-tabs-tab{padding:16px}.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container{font-size:14px}.ant-tabs .ant-tabs-small-bar .ant-tabs-tab{padding:8px 16px}.ant-tabs-content:before{display:block;overflow:hidden;content:""}.ant-tabs .ant-tabs-bottom-content,.ant-tabs .ant-tabs-top-content{width:100%}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane{-ms-flex-negative:0;flex-shrink:0;width:100%;-webkit-backface-visibility:hidden;opacity:1;-webkit-transition:opacity .45s;transition:opacity .45s}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane-inactive,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane-inactive input,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated,.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);transition:margin-left .3s cubic-bezier(.645,.045,.355,1);will-change:margin-left}.ant-tabs .ant-tabs-left-bar,.ant-tabs .ant-tabs-right-bar{height:100%;border-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show{width:100%;height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab{display:block;float:none;margin:0 0 16px 0;padding:8px 24px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab:last-child,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab:last-child{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-extra-content,.ant-tabs .ant-tabs-right-bar .ant-tabs-extra-content{text-align:center}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-scroll,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-scroll{width:auto}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{height:100%}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling{padding:32px 0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav{width:100%}.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar,.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar{top:0;bottom:auto;left:auto;width:2px;height:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next{right:0;bottom:0;width:100%;height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev{top:0;width:100%;height:32px}.ant-tabs .ant-tabs-left-content,.ant-tabs .ant-tabs-right-content{width:auto;margin-top:0!important;overflow:hidden}.ant-tabs .ant-tabs-left-bar{float:left;margin-right:-1px;margin-bottom:0;border-right:1px solid #e8e8e8}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab{text-align:right}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap{margin-right:-1px}.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar{right:1px}.ant-tabs .ant-tabs-left-content{padding-left:24px;border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar{float:right;margin-bottom:0;margin-left:-1px;border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{margin-left:-1px}.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar{left:1px}.ant-tabs .ant-tabs-right-content{padding-right:24px;border-right:1px solid #e8e8e8}.ant-tabs-bottom .ant-tabs-ink-bar-animated,.ant-tabs-top .ant-tabs-ink-bar-animated{-webkit-transition:width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-left .ant-tabs-ink-bar-animated,.ant-tabs-right .ant-tabs-ink-bar-animated{-webkit-transition:height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-content-animated,.no-flex>.ant-tabs-content>.ant-tabs-content-animated{margin-left:0!important;-webkit-transform:none!important;transform:none!important}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-tabpane-inactive,.no-flex>.ant-tabs-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-tabpane-inactive input,.no-flex>.ant-tabs-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tabs-left-content>.ant-tabs-content-animated,.ant-tabs-right-content>.ant-tabs-content-animated{margin-left:0!important;-webkit-transform:none!important;transform:none!important}.ant-tabs-left-content>.ant-tabs-tabpane-inactive,.ant-tabs-right-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs-left-content>.ant-tabs-tabpane-inactive input,.ant-tabs-right-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tag{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block;height:auto;margin-right:8px;padding:0 7px;font-size:12px;line-height:20px;white-space:nowrap;background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;cursor:default;opacity:1;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-tag:hover{opacity:.85}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,.65)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag .anticon-close{display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg);margin-left:3px;color:rgba(0,0,0,.45);font-weight:700;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}:root .ant-tag .anticon-close{font-size:12px}.ant-tag .anticon-close:hover{color:rgba(0,0,0,.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;border-color:transparent}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#2f54eb}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#2f54eb}.ant-tag-checkable:active{background-color:#1d39c4}.ant-tag-hidden{display:none}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-time-picker-panel{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;z-index:1050;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ant-time-picker-panel-inner{position:relative;left:-2px;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-time-picker-panel-input{width:100%;max-width:154px;margin:0;padding:0;line-height:normal;border:0;outline:0;cursor:auto}.ant-time-picker-panel-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-time-picker-panel-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-time-picker-panel-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-time-picker-panel-input:placeholder-shown{text-overflow:ellipsis}.ant-time-picker-panel-input-wrap{position:relative;padding:7px 2px 7px 12px;border-bottom:1px solid #e8e8e8}.ant-time-picker-panel-input-invalid{border-color:#f5222d}.ant-time-picker-panel-narrow .ant-time-picker-panel-input-wrap{max-width:112px}.ant-time-picker-panel-select{position:relative;float:left;width:56px;max-height:192px;overflow:hidden;font-size:14px;border-left:1px solid #e8e8e8}.ant-time-picker-panel-select:hover{overflow-y:auto}.ant-time-picker-panel-select:first-child{margin-left:0;border-left:0}.ant-time-picker-panel-select:last-child{border-right:0}.ant-time-picker-panel-select:only-child{width:100%}.ant-time-picker-panel-select ul{width:56px;margin:0;padding:0 0 160px;list-style:none}.ant-time-picker-panel-select li{width:100%;height:32px;margin:0;padding:0 0 0 12px;line-height:32px;text-align:left;list-style:none;cursor:pointer;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-time-picker-panel-select li:focus{color:#2f54eb;font-weight:600;outline:none}.ant-time-picker-panel-select li:hover{background:#f0f5ff}li.ant-time-picker-panel-select-option-selected{font-weight:600;background:#f5f5f5}li.ant-time-picker-panel-select-option-selected:hover{background:#f5f5f5}li.ant-time-picker-panel-select-option-disabled{color:rgba(0,0,0,.25)}li.ant-time-picker-panel-select-option-disabled:hover{background:transparent;cursor:not-allowed}li.ant-time-picker-panel-select-option-disabled:focus{color:rgba(0,0,0,.25);font-weight:inherit}.ant-time-picker-panel-combobox{zoom:1}.ant-time-picker-panel-combobox:after,.ant-time-picker-panel-combobox:before{display:table;content:""}.ant-time-picker-panel-combobox:after{clear:both}.ant-time-picker-panel-addon{padding:8px;border-top:1px solid #e8e8e8}.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-topLeft,.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-topRight,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-topLeft,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-bottomLeft,.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-bottomRight,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-bottomLeft,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-topLeft,.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-bottomLeft,.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-time-picker{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;font-size:14px;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";width:128px;outline:none;cursor:text;-webkit-transition:opacity .3s;transition:opacity .3s}.ant-time-picker,.ant-time-picker-input{color:rgba(0,0,0,.65);line-height:1.5;position:relative;display:inline-block}.ant-time-picker-input{width:100%;height:32px;padding:4px 11px;font-size:14px;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.ant-time-picker-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-time-picker-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-time-picker-input:placeholder-shown{text-overflow:ellipsis}.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#597ef7;border-right-width:1px!important}.ant-time-picker-input:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(47,84,235,.2);box-shadow:0 0 0 2px rgba(47,84,235,.2)}.ant-time-picker-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-time-picker-input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-time-picker-input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-time-picker-input-sm{height:24px;padding:1px 7px}.ant-time-picker-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-time-picker-open{opacity:0}.ant-time-picker-clear,.ant-time-picker-icon{position:absolute;top:50%;right:11px;z-index:1;width:14px;height:14px;margin-top:-7px;color:rgba(0,0,0,.25);line-height:14px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-time-picker-clear .ant-time-picker-clock-icon,.ant-time-picker-icon .ant-time-picker-clock-icon{display:block;color:rgba(0,0,0,.25);line-height:1}.ant-time-picker-clear{z-index:2;background:#fff;opacity:0;pointer-events:none}.ant-time-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-time-picker:hover .ant-time-picker-clear{opacity:1;pointer-events:auto}.ant-time-picker-large .ant-time-picker-input{height:40px;padding:6px 11px;font-size:16px}.ant-time-picker-small .ant-time-picker-input{height:24px;padding:1px 7px}.ant-time-picker-small .ant-time-picker-clear,.ant-time-picker-small .ant-time-picker-icon{right:7px}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.ant-input{line-height:1.5}}}.ant-timeline{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";margin:0;padding:0;list-style:none}.ant-timeline-item{position:relative;margin:0;padding:0 0 20px;font-size:14px;list-style:none}.ant-timeline-item-tail{position:absolute;top:10px;left:4px;height:calc(100% - 10px);border-left:2px solid #e8e8e8}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px;background-color:transparent}.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-timeline-item-head{position:absolute;width:10px;height:10px;background-color:#fff;border:2px solid transparent;border-radius:100px}.ant-timeline-item-head-blue{color:#2f54eb;border-color:#2f54eb}.ant-timeline-item-head-red{color:#f5222d;border-color:#f5222d}.ant-timeline-item-head-green{color:#52c41a;border-color:#52c41a}.ant-timeline-item-head-gray{color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-timeline-item-head-custom{position:absolute;top:5.5px;left:5px;width:auto;height:auto;margin-top:0;padding:3px 1px;line-height:1;text-align:center;border:0;border-radius:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-timeline-item-content{position:relative;top:-6px;margin:0 0 0 18px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-tail{display:none}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:1px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:calc(50% - 4px);width:calc(50% - 14px);text-align:left}.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:calc(50% - 12px);margin:0;text-align:right}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:calc(100% - 6px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:calc(100% - 18px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{display:block;height:calc(100% - 14px);border-left:2px dotted #e8e8e8}.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail{display:none}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{top:15px;display:block;height:calc(100% - 15px);border-left:2px dotted #e8e8e8}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content{min-height:48px}.ant-tooltip{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:absolute;z-index:1060;display:block;max-width:250px;visibility:visible}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:8px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:8px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:8px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:8px}.ant-tooltip-inner{min-width:30px;min-height:32px;padding:6px 8px;color:#fff;text-align:left;text-decoration:none;word-wrap:break-word;background-color:rgba(0,0,0,.75);border-radius:2px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-tooltip-arrow{position:absolute;display:block;width:13.07106781px;height:13.07106781px;overflow:hidden;background:transparent;pointer-events:none}.ant-tooltip-arrow:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:5px;height:5px;margin:auto;background-color:rgba(0,0,0,.75);content:"";pointer-events:auto}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow:before,.ant-tooltip-placement-topLeft .ant-tooltip-arrow:before,.ant-tooltip-placement-topRight .ant-tooltip-arrow:before{-webkit-box-shadow:3px 3px 7px rgba(0,0,0,.07);box-shadow:3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateY(-6.53553391px) rotate(45deg);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow:before,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow:before,.ant-tooltip-placement-rightTop .ant-tooltip-arrow:before{-webkit-box-shadow:-3px 3px 7px rgba(0,0,0,.07);box-shadow:-3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(6.53553391px) rotate(45deg);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow:before,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow:before,.ant-tooltip-placement-leftTop .ant-tooltip-arrow:before{-webkit-box-shadow:3px -3px 7px rgba(0,0,0,.07);box-shadow:3px -3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(-6.53553391px) rotate(45deg);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow:before,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow:before,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow:before{-webkit-box-shadow:-3px -3px 7px rgba(0,0,0,.07);box-shadow:-3px -3px 7px rgba(0,0,0,.07);-webkit-transform:translateY(6.53553391px) rotate(45deg);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-transfer-customize-list{display:-webkit-box;display:-ms-flexbox;display:flex}.ant-transfer-customize-list .ant-transfer-operation{-webkit-box-flex:0;-ms-flex:none;flex:none;-ms-flex-item-align:center;align-self:center}.ant-transfer-customize-list .ant-transfer-list{-webkit-box-flex:1;-ms-flex:auto;flex:auto;width:auto;height:auto;min-height:200px}.ant-transfer-customize-list .ant-transfer-list-body-with-search{padding-top:0}.ant-transfer-customize-list .ant-transfer-list-body-search-wrapper{position:relative;padding-bottom:0}.ant-transfer-customize-list .ant-transfer-list-body-customize-wrapper{padding:12px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #e8e8e8}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body{margin:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination{margin:16px 0 4px}.ant-transfer{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{position:relative;display:inline-block;width:180px;height:200px;padding-top:40px;vertical-align:middle;border:1px solid #d9d9d9;border-radius:2px}.ant-transfer-list-with-footer{padding-bottom:34px}.ant-transfer-list-search{padding:0 24px 0 8px}.ant-transfer-list-search-action{position:absolute;top:12px;right:12px;bottom:12px;width:28px;color:rgba(0,0,0,.25);line-height:32px;text-align:center}.ant-transfer-list-search-action .anticon{color:rgba(0,0,0,.25);-webkit-transition:all .3s;transition:all .3s}.ant-transfer-list-search-action .anticon:hover{color:rgba(0,0,0,.45)}span.ant-transfer-list-search-action{pointer-events:none}.ant-transfer-list-header{position:absolute;top:0;left:0;width:100%;padding:8px 12px 9px;overflow:hidden;color:rgba(0,0,0,.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0}.ant-transfer-list-header-title{position:absolute;right:12px}.ant-transfer-list-header .ant-checkbox-wrapper+span{padding-left:8px}.ant-transfer-list-body{position:relative;height:100%;font-size:14px}.ant-transfer-list-body-search-wrapper{position:absolute;top:0;left:0;width:100%;padding:12px}.ant-transfer-list-body-with-search{padding-top:56px}.ant-transfer-list-content{height:100%;margin:0;padding:0;overflow:auto;list-style:none}.ant-transfer-list-content>.LazyLoad{-webkit-animation:transferHighlightIn 1s;animation:transferHighlightIn 1s}.ant-transfer-list-content-item{min-height:32px;padding:6px 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-transition:all .3s;transition:all .3s}.ant-transfer-list-content-item>span{padding-right:0}.ant-transfer-list-content-item-text{padding-left:8px}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#f0f5ff;cursor:pointer}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-transfer-list-body-not-found{position:absolute;top:50%;width:100%;padding-top:0;color:rgba(0,0,0,.25);text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-transfer-list-body-with-search .ant-transfer-list-body-not-found{margin-top:16px}.ant-transfer-list-footer{position:absolute;bottom:0;left:0;width:100%;border-top:1px solid #e8e8e8;border-radius:0 0 2px 2px}.ant-transfer-operation{display:inline-block;margin:0 8px;overflow:hidden;vertical-align:middle}.ant-transfer-operation .ant-btn{display:block}.ant-transfer-operation .ant-btn:first-child{margin-bottom:4px}.ant-transfer-operation .ant-btn .anticon{font-size:12px}@-webkit-keyframes transferHighlightIn{0%{background:#d6e4ff}to{background:transparent}}@keyframes transferHighlightIn{0%{background:#d6e4ff}to{background:transparent}}.ant-tree.ant-tree-directory{position:relative}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-switcher,.ant-tree.ant-tree-directory>li span.ant-tree-switcher{position:relative;z-index:1}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-switcher.ant-tree-switcher-noop,.ant-tree.ant-tree-directory>li span.ant-tree-switcher.ant-tree-switcher-noop{pointer-events:none}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-checkbox,.ant-tree.ant-tree-directory>li span.ant-tree-checkbox{position:relative;z-index:1}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper,.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper{border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:hover,.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:hover:before,.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:hover:before{background:#f0f5ff}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper.ant-tree-node-selected,.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff;background:transparent}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:before,.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:before{position:absolute;right:0;left:0;height:24px;-webkit-transition:all .3s;transition:all .3s;content:""}.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper>span,.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper>span{position:relative;z-index:1}.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-switcher,.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner{border-color:#2f54eb}.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked:after,.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked:after{border-color:#fff}.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background:#fff}.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after,.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border-color:#2f54eb}.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper:before,.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper:before{background:#2f54eb}.ant-tree-checkbox{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;top:-.09em;display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;outline:none;cursor:pointer}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner{border-color:#2f54eb}.ant-tree-checkbox-checked:after{top:0;height:100%;border:1px solid #2f54eb;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox:after,.ant-tree-checkbox:hover:after{visibility:visible}.ant-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;transition:all .3s}.ant-tree-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-tree-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#2f54eb;border-color:#2f54eb}.ant-tree-checkbox-disabled{cursor:not-allowed}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;animation-name:none}.ant-tree-checkbox-disabled .ant-tree-checkbox-input{cursor:not-allowed}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;animation-name:none}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree-checkbox-disabled:hover:after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled:after{visibility:hidden}.ant-tree-checkbox-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block;line-height:unset;cursor:pointer}.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-tree-checkbox-wrapper+.ant-tree-checkbox-wrapper{margin-left:8px}.ant-tree-checkbox+span{padding-right:8px;padding-left:8px}.ant-tree-checkbox-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block}.ant-tree-checkbox-group-item{display:inline-block;margin-right:8px}.ant-tree-checkbox-group-item:last-child{margin-right:0}.ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:0}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#2f54eb;border:0;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-tree{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";margin:0;padding:0}.ant-tree-checkbox-checked:after{position:absolute;top:16.67%;left:0;width:100%;height:66.67%}.ant-tree ol,.ant-tree ul{margin:0;padding:0;list-style:none}.ant-tree li{margin:0;padding:4px 0;white-space:nowrap;list-style:none;outline:0}.ant-tree li span[draggable=true],.ant-tree li span[draggable]{line-height:20px;border-top:2px solid transparent;border-bottom:2px solid transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-khtml-user-drag:element;-webkit-user-drag:element}.ant-tree li.drag-over>span[draggable]{color:#fff;background-color:#2f54eb;opacity:.8}.ant-tree li.drag-over-gap-top>span[draggable]{border-top-color:#2f54eb}.ant-tree li.drag-over-gap-bottom>span[draggable]{border-bottom-color:#2f54eb}.ant-tree li.filter-node>span{color:#f5222d!important;font-weight:500!important}.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon,.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon{position:absolute;left:0;display:inline-block;width:24px;height:24px;color:#2f54eb;font-size:14px;-webkit-transform:none;transform:none}.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon svg,.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}:root .ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close:after,:root .ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open:after{opacity:0}.ant-tree li ul{margin:0;padding:0 0 0 18px}.ant-tree li .ant-tree-node-content-wrapper{display:inline-block;height:24px;margin:0;padding:0 5px;color:rgba(0,0,0,.65);line-height:24px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-tree li .ant-tree-node-content-wrapper:hover{background-color:#f0f5ff}.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#d6e4ff}.ant-tree li span.ant-tree-checkbox{top:auto;height:24px;margin:0 4px 0 2px;padding:4px 0}.ant-tree li span.ant-tree-iconEle,.ant-tree li span.ant-tree-switcher{display:inline-block;width:24px;height:24px;margin:0;line-height:24px;text-align:center;vertical-align:top;border:0 none;outline:none;cursor:pointer}.ant-tree li span.ant-tree-iconEle:empty{display:none}.ant-tree li span.ant-tree-switcher{position:relative}.ant-tree li span.ant-tree-switcher.ant-tree-switcher-noop{cursor:default}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon{font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg);display:inline-block;font-weight:700}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon{font-size:12px}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon svg,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon{font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg);display:inline-block;font-weight:700}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon{font-size:12px}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon svg,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon svg{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.ant-tree li:last-child>span.ant-tree-iconEle:before,.ant-tree li:last-child>span.ant-tree-switcher:before{display:none}.ant-tree>li:first-child{padding-top:7px}.ant-tree>li:last-child{padding-bottom:7px}.ant-tree-child-tree>li:first-child{padding-top:8px}.ant-tree-child-tree>li:last-child{padding-bottom:0}li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper,li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper span,li.ant-tree-treenode-disabled>span:not(.ant-tree-switcher){color:rgba(0,0,0,.25);cursor:not-allowed}li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree-icon__close,.ant-tree-icon__open{margin-right:2px;vertical-align:top}.ant-tree.ant-tree-show-line li{position:relative}.ant-tree.ant-tree-show-line li span.ant-tree-switcher{color:rgba(0,0,0,.45);background:#fff}.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher-noop .ant-select-switcher-icon,.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher-noop .ant-tree-switcher-icon{display:inline-block;font-weight:400;font-size:12px}.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher-noop .ant-select-switcher-icon svg,.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher-noop .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon,.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon{display:inline-block;font-weight:400;font-size:12px}.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon svg,.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon,.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon{display:inline-block;font-weight:400;font-size:12px}.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon svg,.ant-tree.ant-tree-show-line li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-tree.ant-tree-show-line li:not(:last-child):before{position:absolute;left:12px;width:1px;height:100%;height:calc(100% - 22px);margin:22px 0 0;border-left:1px solid #d9d9d9;content:" "}.ant-tree.ant-tree-icon-hide .ant-tree-treenode-loading .ant-tree-iconEle{display:none}.ant-tree.ant-tree-block-node li .ant-tree-node-content-wrapper{width:calc(100% - 24px)}.ant-tree.ant-tree-block-node li span.ant-tree-checkbox+.ant-tree-node-content-wrapper{width:calc(100% - 46px)}.ant-select-tree-checkbox{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;top:-.09em;display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;outline:none;cursor:pointer}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner{border-color:#2f54eb}.ant-select-tree-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #2f54eb;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox:after,.ant-select-tree-checkbox:hover:after{visibility:visible}.ant-select-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;transition:all .3s}.ant-select-tree-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-select-tree-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#2f54eb;border-color:#2f54eb}.ant-select-tree-checkbox-disabled{cursor:not-allowed}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;animation-name:none}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input{cursor:not-allowed}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;animation-name:none}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree-checkbox-disabled:hover:after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled:after{visibility:hidden}.ant-select-tree-checkbox-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block;line-height:unset;cursor:pointer}.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-select-tree-checkbox-wrapper+.ant-select-tree-checkbox-wrapper{margin-left:8px}.ant-select-tree-checkbox+span{padding-right:8px;padding-left:8px}.ant-select-tree-checkbox-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:inline-block}.ant-select-tree-checkbox-group-item{display:inline-block;margin-right:8px}.ant-select-tree-checkbox-group-item:last-child{margin-right:0}.ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:0}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#2f54eb;border:0;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-select-tree{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";margin:0;margin-top:-4px;padding:0 4px}.ant-select-tree li{margin:8px 0;padding:0;white-space:nowrap;list-style:none;outline:0}.ant-select-tree li.filter-node>span{font-weight:500}.ant-select-tree li ul{margin:0;padding:0 0 0 18px}.ant-select-tree li .ant-select-tree-node-content-wrapper{display:inline-block;width:calc(100% - 24px);margin:0;padding:3px 5px;color:rgba(0,0,0,.65);text-decoration:none;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-select-tree li .ant-select-tree-node-content-wrapper:hover{background-color:#f0f5ff}.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#d6e4ff}.ant-select-tree li span.ant-select-tree-checkbox{margin:0 4px 0 0}.ant-select-tree li span.ant-select-tree-checkbox+.ant-select-tree-node-content-wrapper{width:calc(100% - 46px)}.ant-select-tree li span.ant-select-tree-iconEle,.ant-select-tree li span.ant-select-tree-switcher{display:inline-block;width:24px;height:24px;margin:0;line-height:22px;text-align:center;vertical-align:middle;border:0 none;outline:none;cursor:pointer}.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon{position:absolute;left:0;display:inline-block;color:#2f54eb;font-size:14px;-webkit-transform:none;transform:none}.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-select-tree li span.ant-select-tree-switcher{position:relative}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher-noop{cursor:auto}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon{font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg);display:inline-block;font-weight:700}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon svg,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon{font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg);display:inline-block;font-weight:700}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon svg,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon svg{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon{position:absolute;left:0;display:inline-block;width:24px;height:24px;color:#2f54eb;font-size:14px;-webkit-transform:none;transform:none}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon svg,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-select-tree-child-tree,.ant-select-tree .ant-select-tree-treenode-loading .ant-select-tree-iconEle{display:none}.ant-select-tree-child-tree-open{display:block}li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper,li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper span,li.ant-select-tree-treenode-disabled>span:not(.ant-select-tree-switcher){color:rgba(0,0,0,.25);cursor:not-allowed}li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper:hover{background:transparent}.ant-select-tree-icon__close,.ant-select-tree-icon__open{margin-right:2px;vertical-align:top}.ant-select-tree-dropdown{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.ant-select-tree-dropdown .ant-select-dropdown-search{position:sticky;top:0;z-index:1;display:block;padding:4px;background:#fff}.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field__wrap{width:100%}.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding:4px 7px;border:1px solid #d9d9d9;border-radius:4px;outline:none}.ant-select-tree-dropdown .ant-select-dropdown-search.ant-select-search--hide{display:none}.ant-select-tree-dropdown .ant-select-not-found{display:block;padding:7px 16px;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-upload{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";outline:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;width:100%;outline:none}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{display:table;float:left;width:104px;height:104px;margin-right:8px;margin-bottom:8px;text-align:center;vertical-align:top;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;-webkit-transition:border-color .3s ease;transition:border-color .3s ease}.ant-upload.ant-upload-select-picture-card>.ant-upload{display:table-cell;width:100%;height:100%;padding:8px;text-align:center;vertical-align:middle}.ant-upload.ant-upload-select-picture-card:hover{border-color:#2f54eb}.ant-upload.ant-upload-drag{position:relative;width:100%;height:100%;text-align:center;background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;-webkit-transition:border-color .3s;transition:border-color .3s}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#1d39c4}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#597ef7}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#597ef7;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{margin:0 0 4px;color:rgba(0,0,0,.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,.25);font-size:30px;-webkit-transition:all .3s;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,.45)}.ant-upload-picture-card-wrapper{zoom:1;display:inline-block;width:100%}.ant-upload-picture-card-wrapper:after,.ant-upload-picture-card-wrapper:before{display:table;content:""}.ant-upload-picture-card-wrapper:after{clear:both}.ant-upload-list{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";zoom:1}.ant-upload-list:after,.ant-upload-list:before{display:table;content:""}.ant-upload-list:after{clear:both}.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-right:14px}.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-right:28px}.ant-upload-list-item{position:relative;height:22px;margin-top:8px;font-size:14px}.ant-upload-list-item-name{display:inline-block;width:100%;padding-left:22px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-upload-list-item-name-icon-count-1{padding-right:14px}.ant-upload-list-item-card-actions{position:absolute;right:0;opacity:0}.ant-upload-list-item-card-actions.picture{top:25px;line-height:1;opacity:1}.ant-upload-list-item-card-actions .anticon{padding-right:6px;color:rgba(0,0,0,.45)}.ant-upload-list-item-info{height:100%;padding:0 12px 0 4px;-webkit-transition:background-color .3s;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;width:100%;height:100%}.ant-upload-list-item-info .anticon-loading,.ant-upload-list-item-info .anticon-paper-clip{position:absolute;top:5px;color:rgba(0,0,0,.45);font-size:14px}.ant-upload-list-item .anticon-close{display:inline-block;font-size:12px;font-size:10px\9;-webkit-transform:scale(.83333333) rotate(0deg);transform:scale(.83333333) rotate(0deg);position:absolute;top:6px;right:4px;color:rgba(0,0,0,.45);line-height:0;cursor:pointer;opacity:0;-webkit-transition:all .3s;transition:all .3s}:root .ant-upload-list-item .anticon-close{font-size:12px}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,.65)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f0f5ff}.ant-upload-list-item:hover .ant-upload-list-item-card-actions,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .anticon-paper-clip{color:#f5222d}.ant-upload-list-item-error .ant-upload-list-item-card-actions{opacity:1}.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{color:#f5222d}.ant-upload-list-item-progress{position:absolute;bottom:-12px;width:100%;padding-left:26px;font-size:14px;line-height:0}.ant-upload-list-picture-card .ant-upload-list-item,.ant-upload-list-picture .ant-upload-list-item{position:relative;height:66px;padding:8px;border:1px solid #d9d9d9;border-radius:2px}.ant-upload-list-picture-card .ant-upload-list-item:hover,.ant-upload-list-picture .ant-upload-list-item:hover{background:transparent}.ant-upload-list-picture-card .ant-upload-list-item-error,.ant-upload-list-picture .ant-upload-list-item-error{border-color:#f5222d}.ant-upload-list-picture-card .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item-info{padding:0}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info{background:transparent}.ant-upload-list-picture-card .ant-upload-list-item-uploading,.ant-upload-list-picture .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture .ant-upload-list-item-thumbnail{position:absolute;top:8px;left:8px;width:48px;height:48px;font-size:26px;line-height:54px;text-align:center;opacity:.8}.ant-upload-list-picture-card .ant-upload-list-item-icon,.ant-upload-list-picture .ant-upload-list-item-icon{position:absolute;top:50%;left:50%;font-size:26px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-upload-list-picture-card .ant-upload-list-item-image,.ant-upload-list-picture .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img,.ant-upload-list-picture .ant-upload-list-item-thumbnail img{display:block;width:48px;height:48px;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-name{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;margin:0 0 0 8px;padding-right:8px;padding-left:48px;overflow:hidden;line-height:44px;white-space:nowrap;text-overflow:ellipsis;-webkit-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1,.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1{padding-right:18px}.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2,.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2{padding-right:36px}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name{line-height:28px}.ant-upload-list-picture-card .ant-upload-list-item-progress,.ant-upload-list-picture .ant-upload-list-item-progress{bottom:14px;width:calc(100% - 24px);margin-top:0;padding-left:56px}.ant-upload-list-picture-card .anticon-close,.ant-upload-list-picture .anticon-close{position:absolute;top:8px;right:8px;line-height:1;opacity:1}.ant-upload-list-picture-card.ant-upload-list:after{display:none}.ant-upload-list-picture-card-container,.ant-upload-list-picture-card .ant-upload-list-item{float:left;width:104px;height:104px;margin:0 8px 8px 0}.ant-upload-list-picture-card .ant-upload-list-item-info{position:relative;height:100%;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-info:before{position:absolute;z-index:1;width:100%;height:100%;background-color:rgba(0,0,0,.5);opacity:0;-webkit-transition:all .3s;transition:all .3s;content:" "}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{position:absolute;top:50%;left:50%;z-index:10;white-space:nowrap;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;-webkit-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o{z-index:10;width:16px;margin:0 4px;color:hsla(0,0%,100%,.85);font-size:16px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{position:static;display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;margin:8px 0 0;padding:0;line-height:1.5;text-align:center}.ant-upload-list-picture-card .anticon-picture+.ant-upload-list-item-name{position:absolute;bottom:10px;display:block}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye-o,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-uploading-text{margin-top:18px;color:rgba(0,0,0,.45)}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0}.ant-upload-list .ant-upload-success-icon{color:#52c41a;font-weight:700}.ant-upload-list .ant-upload-animate-enter,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave,.ant-upload-list .ant-upload-animate-leave{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:cubic-bezier(.78,.14,.15,.86);animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-enter{-webkit-animation-name:uploadAnimateIn;animation-name:uploadAnimateIn}.ant-upload-list .ant-upload-animate-leave{-webkit-animation-name:uploadAnimateOut;animation-name:uploadAnimateOut}.ant-upload-list .ant-upload-animate-inline-enter{-webkit-animation-name:uploadAnimateInlineIn;animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-name:uploadAnimateInlineOut;animation-name:uploadAnimateInlineOut}@-webkit-keyframes uploadAnimateIn{0%{height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateIn{0%{height:0;margin:0;padding:0;opacity:0}}@-webkit-keyframes uploadAnimateOut{to{height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateOut{to{height:0;margin:0;padding:0;opacity:0}}@-webkit-keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@-webkit-keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}.dv-active-ring-chart{position:relative}.dv-active-ring-chart .active-ring-chart-container{width:100%;height:100%}.dv-active-ring-chart .active-ring-info{position:absolute;width:100%;height:100%;left:0;top:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dv-active-ring-chart .active-ring-info .dv-digital-flop{width:100px;height:30px}.dv-active-ring-chart .active-ring-info .active-ring-name{width:100px;height:30px;color:#fff;text-align:center;vertical-align:middle;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.dv-border-box-1{position:relative;width:100%;height:100%}.dv-border-box-1 .border{position:absolute;display:block}.dv-border-box-1 .right-top{right:0;-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.dv-border-box-1 .left-bottom{bottom:0;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.dv-border-box-1 .right-bottom{right:0;bottom:0;-webkit-transform:rotateX(180deg) rotateY(180deg);transform:rotateX(180deg) rotateY(180deg)}.dv-border-box-1 .border-box-content,.dv-border-box-10{position:relative;width:100%;height:100%}.dv-border-box-10{border-radius:6px}.dv-border-box-10 .dv-border-svg-container{position:absolute;display:block}.dv-border-box-10 .right-top{right:0;-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.dv-border-box-10 .left-bottom{bottom:0;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.dv-border-box-10 .right-bottom{right:0;bottom:0;-webkit-transform:rotateX(180deg) rotateY(180deg);transform:rotateX(180deg) rotateY(180deg)}.dv-border-box-10 .border-box-content,.dv-border-box-11{position:relative;width:100%;height:100%}.dv-border-box-11 .dv-border-svg-container{position:absolute;width:100%;height:100%;top:0;left:0}.dv-border-box-11 .dv-border-svg-container>polyline{fill:none;stroke-width:1}.dv-border-box-11 .border-box-content,.dv-border-box-12{position:relative;width:100%;height:100%}.dv-border-box-12 .dv-border-svg-container{position:absolute;width:100%;height:100%;top:0;left:0}.dv-border-box-12 .border-box-content,.dv-border-box-13{position:relative;width:100%;height:100%}.dv-border-box-13 .dv-border-svg-container{position:absolute;width:100%;height:100%;top:0;left:0}.dv-border-box-2,.dv-border-box-13 .border-box-content{position:relative;width:100%;height:100%}.dv-border-box-2 .dv-border-svg-container{position:absolute;width:100%;height:100%;top:0;left:0}.dv-border-box-2 .dv-border-svg-container>polyline{fill:none;stroke-width:1}.dv-border-box-2 .border-box-content,.dv-border-box-3{position:relative;width:100%;height:100%}.dv-border-box-3 .dv-border-svg-container{position:absolute;width:100%;height:100%;top:0;left:0}.dv-border-box-3 .dv-border-svg-container>polyline{fill:none}.dv-border-box-3 .dv-bb3-line1{stroke-width:3}.dv-border-box-3 .dv-bb3-line2{stroke-width:1}.dv-border-box-3 .border-box-content,.dv-border-box-4{position:relative;width:100%;height:100%}.dv-border-box-4 .dv-reverse{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.dv-border-box-4 .dv-border-svg-container{position:absolute;width:100%;height:100%;top:0;left:0}.dv-border-box-4 .dv-border-svg-container>polyline{fill:none}.dv-border-box-4 .sw1{stroke-width:1}.dv-border-box-4 .sw3{stroke-width:3px;stroke-linecap:round}.dv-border-box-4 .dv-bb4-line-1,.dv-border-box-4 .dv-bb4-line-2{stroke-width:1}.dv-border-box-4 .dv-bb4-line-3,.dv-border-box-4 .dv-bb4-line-4{stroke-width:3px;stroke-linecap:round}.dv-border-box-4 .dv-bb4-line-5,.dv-border-box-4 .dv-bb4-line-6,.dv-border-box-4 .dv-bb4-line-7{stroke-width:1}.dv-border-box-4 .dv-bb4-line-8,.dv-border-box-4 .dv-bb4-line-9{stroke-width:3px;stroke-linecap:round}.dv-border-box-4 .dv-bb4-line-9{stroke-dasharray:100 250}.dv-border-box-4 .dv-bb4-line-10{stroke-width:1;stroke-dasharray:80 270}.dv-border-box-4 .border-box-content,.dv-border-box-5{position:relative;width:100%;height:100%}.dv-border-box-5 .dv-reverse{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.dv-border-box-5 .dv-border-svg-container{position:absolute;top:0;left:0;width:100%;height:100%}.dv-border-box-5 .dv-border-svg-container>polyline{fill:none}.dv-border-box-5 .dv-bb5-line-1,.dv-border-box-5 .dv-bb5-line-2{stroke-width:1}.dv-border-box-5 .dv-bb5-line-3,.dv-border-box-5 .dv-bb5-line-6{stroke-width:5}.dv-border-box-5 .dv-bb5-line-4,.dv-border-box-5 .dv-bb5-line-5{stroke-width:2}.dv-border-box-5 .border-box-content,.dv-border-box-6{position:relative;width:100%;height:100%}.dv-border-box-6 .dv-border-svg-container{position:absolute;top:0;left:0;width:100%;height:100%}.dv-border-box-6 .dv-border-svg-container>polyline{fill:none;stroke-width:1}.dv-border-box-6 .border-box-content,.dv-border-box-7{position:relative;width:100%;height:100%}.dv-border-box-7 .dv-border-svg-container{position:absolute;top:0;left:0;width:100%;height:100%}.dv-border-box-7 .dv-border-svg-container>polyline{fill:none;stroke-linecap:round}.dv-border-box-7 .dv-bb7-line-width-2{stroke-width:2}.dv-border-box-7 .dv-bb7-line-width-5{stroke-width:5}.dv-border-box-7 .border-box-content,.dv-border-box-8{position:relative;width:100%;height:100%}.dv-border-box-8 .dv-border-svg-container{position:absolute;width:100%;height:100%;left:0;top:0}.dv-border-box-8 .border-box-content,.dv-border-box-9{position:relative;width:100%;height:100%}.dv-border-box-9 .dv-border-svg-container{position:absolute;width:100%;height:100%;left:0;top:0}.dv-border-box-9 .border-box-content{position:relative;width:100%;height:100%}.dv-capsule-chart{position:relative;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;padding:10px;color:#fff}.dv-capsule-chart,.dv-capsule-chart .label-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-sizing:border-box;box-sizing:border-box}.dv-capsule-chart .label-column{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-right:10px;text-align:right;font-size:12px}.dv-capsule-chart .label-column div{height:20px;line-height:20px}.dv-capsule-chart .capsule-container{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.dv-capsule-chart .capsule-item{-webkit-box-shadow:0 0 3px #999;box-shadow:0 0 3px #999;height:10px;margin:5px 0;border-radius:5px}.dv-capsule-chart .capsule-item .capsule-item-column{position:relative;height:8px;margin-top:1px;border-radius:5px;-webkit-transition:all .3s;transition:all .3s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dv-capsule-chart .capsule-item .capsule-item-column .capsule-item-value{font-size:12px;-webkit-transform:translateX(100%);transform:translateX(100%)}.dv-capsule-chart .unit-label{height:20px;position:relative;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dv-capsule-chart .unit-label,.dv-capsule-chart .unit-text{font-size:12px;display:-webkit-box;display:-ms-flexbox;display:flex}.dv-capsule-chart .unit-text{text-align:right;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;line-height:20px;margin-left:10px}.dv-charts-container{position:relative}.dv-charts-container,.dv-charts-container .charts-canvas-container,.dv-conical-column-chart{width:100%;height:100%}.dv-conical-column-chart text{text-anchor:middle}.dv-decoration-1{width:100%;height:100%}.dv-decoration-1 svg{-webkit-transform-origin:left top;transform-origin:left top}.dv-decoration-10,.dv-decoration-11{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.dv-decoration-11{position:relative}.dv-decoration-11 .decoration-content{position:absolute;top:0;left:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.dv-decoration-11 .decoration-content,.dv-decoration-12{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.dv-decoration-12{position:relative}.dv-decoration-12 .decoration-content{position:absolute;top:0;left:0}.dv-decoration-2,.dv-decoration-12 .decoration-content{width:100%;height:100%;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}.dv-decoration-3{width:100%;height:100%}.dv-decoration-3 svg{-webkit-transform-origin:left top;transform-origin:left top}.dv-decoration-4{position:relative;width:100%;height:100%}.dv-decoration-4 .container{display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden;position:absolute;-webkit-box-flex:1;-ms-flex:1;flex:1}.dv-decoration-4 .normal{-webkit-animation:ani-height ease-in-out infinite;animation:ani-height ease-in-out infinite;left:50%;margin-left:-2px}.dv-decoration-4 .reverse{-webkit-animation:ani-width ease-in-out infinite;animation:ani-width ease-in-out infinite;top:50%;margin-top:-2px}@-webkit-keyframes ani-height{0%{height:0%}70%{height:100%}to{height:100%}}@keyframes ani-height{0%{height:0%}70%{height:100%}to{height:100%}}@-webkit-keyframes ani-width{0%{width:0}70%{width:100%}to{width:100%}}@keyframes ani-width{0%{width:0}70%{width:100%}to{width:100%}}.dv-decoration-5,.dv-decoration-6{width:100%;height:100%}.dv-decoration-6 svg{-webkit-transform-origin:left top;transform-origin:left top}.dv-decoration-7{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dv-decoration-7,.dv-decoration-8,.dv-decoration-9{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%}.dv-decoration-9{position:relative;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.dv-decoration-9 svg{position:absolute;left:0;top:0;-webkit-transform-origin:left top;transform-origin:left top}.dv-digital-flop canvas{width:100%;height:100%}.dv-flyline-chart{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-size:100% 100%}.dv-flyline-chart polyline{-webkit-transition:all .3s;transition:all .3s}.dv-flyline-chart text{text-anchor:middle;dominant-baseline:middle}.dv-flyline-chart-enhanced{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-size:100% 100%}.dv-flyline-chart-enhanced text{text-anchor:middle;dominant-baseline:middle}#dv-full-screen-container{position:fixed;top:0;left:0;overflow:hidden;-webkit-transform-origin:left top;transform-origin:left top;z-index:999}.dv-loading{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dv-loading .loading-tip{font-size:15px}.dv-percent-pond{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dv-percent-pond svg{position:absolute;left:0;top:0;width:100%;height:100%}.dv-percent-pond polyline{-webkit-transition:all .3s;transition:all .3s}.dv-percent-pond text{font-size:25px;font-weight:700;text-anchor:middle;dominant-baseline:middle}.dv-scroll-board{position:relative;width:100%;height:100%;color:#fff}.dv-scroll-board .text{padding:0 10px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dv-scroll-board .header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;font-size:15px}.dv-scroll-board .header .header-item{padding:0 10px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:all .3s;transition:all .3s}.dv-scroll-board .rows{overflow:hidden}.dv-scroll-board .rows .row-item{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;-webkit-transition:all .3s;transition:all .3s}.dv-scroll-board .rows .ceil{padding:0 10px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dv-scroll-board .rows .index{border-radius:3px;padding:0 3px}.dv-scroll-ranking-board{width:100%;height:100%;color:#fff;overflow:hidden}.dv-scroll-ranking-board .row-item{-webkit-transition:all .3s;transition:all .3s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden}.dv-scroll-ranking-board .ranking-info{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;font-size:13px}.dv-scroll-ranking-board .ranking-info .rank{width:40px;color:#1370fb}.dv-scroll-ranking-board .ranking-info .info-name{-webkit-box-flex:1;-ms-flex:1;flex:1}.dv-scroll-ranking-board .ranking-column{border-bottom:2px solid rgba(19,112,251,.5);margin-top:5px}.dv-scroll-ranking-board .ranking-column .inside-column{position:relative;height:6px;background-color:#1370fb;margin-bottom:2px;border-radius:1px;overflow:hidden}.dv-scroll-ranking-board .ranking-column .shine{position:absolute;left:0;top:2px;height:2px;width:50px;-webkit-transform:translateX(-100%);transform:translateX(-100%);background:radial-gradient(#28f8ff 5%,transparent 80%);-webkit-animation:shine 3s ease-in-out infinite alternate;animation:shine 3s ease-in-out infinite alternate}@-webkit-keyframes shine{80%{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{left:100%;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes shine{80%{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{left:100%;-webkit-transform:translateX(0);transform:translateX(0)}}.dv-water-pond-level{position:relative}.dv-water-pond-level svg{position:absolute;width:100%;height:100%;top:0;left:0}.dv-water-pond-level text{font-size:25px;font-weight:700;text-anchor:middle;dominant-baseline:middle}.dv-water-pond-level ellipse,.dv-water-pond-level rect{fill:none;stroke-width:3}.dv-water-pond-level canvas{margin-top:8px;margin-left:8px;width:calc(100% - 16px);height:calc(100% - 16px);-webkit-box-sizing:border-box;box-sizing:border-box} \ No newline at end of file diff --git a/admin20250319/dist/css/chunk-vendors.fde4acf3.css.gz b/admin20250319/dist/css/chunk-vendors.fde4acf3.css.gz new file mode 100644 index 0000000..4073b25 Binary files /dev/null and b/admin20250319/dist/css/chunk-vendors.fde4acf3.css.gz differ diff --git a/admin20250319/dist/css/fail.0d0a559d.css b/admin20250319/dist/css/fail.0d0a559d.css new file mode 100644 index 0000000..d869522 --- /dev/null +++ b/admin20250319/dist/css/fail.0d0a559d.css @@ -0,0 +1 @@ +.sysInfo_table{width:100%;min-height:45px;line-height:45px;text-align:center}.sysInfo_td{border-bottom:1px solid #e8e8e8}.account-settings-info-main[data-v-7dba0b30]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;overflow:auto}.account-settings-info-main.mobile[data-v-7dba0b30]{display:block}.account-settings-info-main.mobile .account-settings-info-left[data-v-7dba0b30]{border-right:unset;border-bottom:1px solid #e8e8e8;width:100%;height:50px;overflow-x:auto;overflow-y:scroll}.account-settings-info-main.mobile .account-settings-info-right[data-v-7dba0b30]{padding:20px 40px}.account-settings-info-main .account-settings-info-left[data-v-7dba0b30]{border-right:1px solid #e8e8e8;width:224px}.account-settings-info-main .account-settings-info-right[data-v-7dba0b30]{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;padding:8px 40px}.account-settings-info-main .account-settings-info-right .account-settings-info-title[data-v-7dba0b30]{color:rgba(0,0,0,.85);font-size:20px;font-weight:500;line-height:28px;margin-bottom:12px}.account-settings-info-main .account-settings-info-right .account-settings-info-view[data-v-7dba0b30]{padding-top:12px}.app-list .meta-cardInfo[data-v-3641be70]{zoom:1;margin-top:16px}.app-list .meta-cardInfo>div[data-v-3641be70]{position:relative;text-align:left;float:left;width:50%}.app-list .meta-cardInfo>div p[data-v-3641be70]{line-height:32px;font-size:24px;margin:0}.app-list .meta-cardInfo>div p[data-v-3641be70]:first-child{color:rgba(0,0,0,.45);font-size:12px;line-height:20px;margin-bottom:4px}.ant-pro-pages-account-projects-cardList[data-v-29afc0d2]{margin-top:24px}.ant-pro-pages-account-projects-cardList[data-v-29afc0d2] .ant-card-meta-title{margin-bottom:4px}.ant-pro-pages-account-projects-cardList[data-v-29afc0d2] .ant-card-meta-description{height:44px;overflow:hidden;line-height:22px}.ant-pro-pages-account-projects-cardList .cardItemContent[data-v-29afc0d2]{display:-webkit-box;display:-ms-flexbox;display:flex;height:20px;margin-top:16px;margin-bottom:-4px;line-height:20px}.ant-pro-pages-account-projects-cardList .cardItemContent>span[data-v-29afc0d2]{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;color:rgba(0,0,0,.45);font-size:12px}.ant-pro-pages-account-projects-cardList .cardItemContent[data-v-29afc0d2] .ant-pro-avatar-list{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.page-header-wrapper-grid-content-main[data-v-db6471d8]{width:100%;height:100%;min-height:100%;-webkit-transition:.3s;transition:.3s}.page-header-wrapper-grid-content-main .account-center-avatarHolder[data-v-db6471d8]{text-align:center;margin-bottom:24px}.page-header-wrapper-grid-content-main .account-center-avatarHolder>.avatar[data-v-db6471d8]{margin:0 auto;width:104px;height:104px;margin-bottom:20px;border-radius:50%;overflow:hidden}.page-header-wrapper-grid-content-main .account-center-avatarHolder>.avatar img[data-v-db6471d8]{height:100%;width:100%}.page-header-wrapper-grid-content-main .account-center-avatarHolder .username[data-v-db6471d8]{color:rgba(0,0,0,.85);font-size:20px;line-height:28px;font-weight:500;margin-bottom:4px}.page-header-wrapper-grid-content-main .account-center-detail p[data-v-db6471d8]{margin-bottom:8px;padding-left:26px;position:relative}.page-header-wrapper-grid-content-main .account-center-detail i[data-v-db6471d8]{position:absolute;height:14px;width:14px;left:0;top:4px;background:url(https://gw.alipayobjects.com/zos/rmsportal/pBjWzVAHnOOtAUvZmZfy.svg)}.page-header-wrapper-grid-content-main .account-center-detail .title[data-v-db6471d8]{background-position:0 0}.page-header-wrapper-grid-content-main .account-center-detail .group[data-v-db6471d8]{background-position:0 -22px}.page-header-wrapper-grid-content-main .account-center-detail .address[data-v-db6471d8]{background-position:0 -44px}.page-header-wrapper-grid-content-main .account-center-tags .ant-tag[data-v-db6471d8]{margin-bottom:8px}.page-header-wrapper-grid-content-main .account-center-team .members a[data-v-db6471d8]{display:block;margin:12px 0;line-height:24px;height:24px}.page-header-wrapper-grid-content-main .account-center-team .members a .member[data-v-db6471d8]{font-size:14px;color:rgba(0,0,0,.65);line-height:24px;max-width:100px;vertical-align:top;margin-left:12px;-webkit-transition:all .3s;transition:all .3s;display:inline-block}.page-header-wrapper-grid-content-main .account-center-team .members a:hover span[data-v-db6471d8]{color:#1890ff}.page-header-wrapper-grid-content-main .tagsTitle[data-v-db6471d8],.page-header-wrapper-grid-content-main .teamTitle[data-v-db6471d8]{font-weight:500;color:rgba(0,0,0,.85);margin-bottom:12px}.user-layout-login label[data-v-b7b15aae]{font-size:14px}.user-layout-login .getCaptcha[data-v-b7b15aae]{display:block;width:100%;height:40px}.user-layout-login .forge-password[data-v-b7b15aae]{font-size:14px}.user-layout-login button.login-button[data-v-b7b15aae]{padding:0 15px;font-size:16px;height:40px;width:100%}.user-layout-login .user-login-other[data-v-b7b15aae]{text-align:left;margin-top:24px;line-height:22px}.user-layout-login .user-login-other .item-icon[data-v-b7b15aae]{font-size:24px;color:rgba(0,0,0,.2);margin-left:16px;vertical-align:middle;cursor:pointer;-webkit-transition:color .3s;transition:color .3s}.user-layout-login .user-login-other .item-icon[data-v-b7b15aae]:hover{color:#1890ff}.user-layout-login .user-login-other .register[data-v-b7b15aae]{float:right}[data-v-39bce0ec] .ant-table td{white-space:nowrap}[data-v-39bce0ec] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-39bce0ec],[data-v-39bce0ec] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-39bce0ec]{margin-bottom:18px}button[data-v-39bce0ec]{margin-right:8px}[data-v-2ea92d0a] .ant-table td{white-space:nowrap}[data-v-2ea92d0a] .ant-table-body{overflow-x:auto!important}.ant-table-tbody>tr>td[data-v-2ea92d0a],[data-v-2ea92d0a] .ant-table-thead>tr>th{white-space:nowrap}.table-operator[data-v-2ea92d0a]{margin-bottom:18px}button[data-v-2ea92d0a]{margin-right:8px}.table-operator{margin-bottom:18px}button{margin-right:8px}.table-operator[data-v-49edf7c6]{margin-bottom:18px}button[data-v-49edf7c6]{margin-right:8px}.table-operator[data-v-4018ca46]{margin-bottom:18px}button[data-v-4018ca46]{margin-right:8px} \ No newline at end of file diff --git a/admin20250319/dist/favicon.ico b/admin20250319/dist/favicon.ico new file mode 100644 index 0000000..c47a2e2 Binary files /dev/null and b/admin20250319/dist/favicon.ico differ diff --git a/admin20250319/dist/img/logo.06b60a1c.png b/admin20250319/dist/img/logo.06b60a1c.png new file mode 100644 index 0000000..77c7a18 Binary files /dev/null and b/admin20250319/dist/img/logo.06b60a1c.png differ diff --git a/admin20250319/dist/img/welcome.164ddad4.png b/admin20250319/dist/img/welcome.164ddad4.png new file mode 100644 index 0000000..94abec2 Binary files /dev/null and b/admin20250319/dist/img/welcome.164ddad4.png differ diff --git a/admin20250319/dist/index.html b/admin20250319/dist/index.html new file mode 100644 index 0000000..c0b2603 --- /dev/null +++ b/admin20250319/dist/index.html @@ -0,0 +1 @@ +管理平台
\ No newline at end of file diff --git a/admin20250319/dist/js/app.6bb61b59.js b/admin20250319/dist/js/app.6bb61b59.js new file mode 100644 index 0000000..8eccf33 --- /dev/null +++ b/admin20250319/dist/js/app.6bb61b59.js @@ -0,0 +1 @@ +(function(e){function t(t){for(var a,i,r=t[0],c=t[1],l=t[2],u=0,d=[];u0&&void 0!==arguments[0]?arguments[0]:[];return e.filter((function(e){return e.tag||e.text&&""!==e.text.trim()}))}var se,re,ce=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split("").reduce((function(e,t){var n=t.charCodeAt(0);return n>=0&&n<=128?e+1:e+2}),0)},le=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=0;return e.split("").reduce((function(e,a){var i=a.charCodeAt(0);return n+=i>=0&&i<=128?1:2,n<=t?e+a:e}),"")},ue={AvatarItem:ie,name:"AvatarList",components:{Avatar:W["a"],AvatarItem:ie},props:{prefixCls:{type:String,default:"ant-pro-avatar-list"},size:{type:[String,Number],default:"default"},maxLength:{type:Number,default:0},excessItemsStyle:{type:Object,default:function(){return{color:"#f56a00",backgroundColor:"#fde3cf"}}}},data:function(){return{}},methods:{getItems:function(e){var t,n=this.$createElement,a=(t={},Object(Y["a"])(t,"".concat(this.prefixCls,"-item"),!0),Object(Y["a"])(t,"".concat(this.size),!0),t);this.maxLength>0&&(e=e.slice(0,this.maxLength),e.push(n(W["a"],{attrs:{size:this.size},style:this.excessItemsStyle},["+".concat(this.maxLength)])));var i=e.map((function(e){return n("li",{class:a},[e])}));return i}},render:function(){var e,t=arguments[0],n=this.$props,a=n.prefixCls,i=n.size,o=(e={},Object(Y["a"])(e,"".concat(a),!0),Object(Y["a"])(e,"".concat(i),!0),e),s=oe(this.$slots.default),r=s&&s.length?t("ul",{class:"".concat(a,"-items")},[this.getItems(s)]):null;return t("div",{class:o},[r])}},de=ue,fe=Object(r["a"])(de,se,re,!1,null,null,null),pe=fe.exports,me=(n("84962"),pe),he=function(){var e=this,t=e._self._c;return t("span",[e._v(" "+e._s(e._f("format")(e.lastTime))+" ")])},ge=[];n("99af");function be(e){return 1*e<10?"0".concat(e):e}var ve,ye,ke={name:"CountDown",props:{format:{type:Function,default:void 0},target:{type:[Date,Number],required:!0},onEnd:{type:Function,default:function(){return{}}}},data:function(){return{dateTime:"0",originTargetTime:0,lastTime:0,timer:0,interval:1e3}},filters:{format:function(e){var t=36e5,n=6e4,a=Math.floor(e/t),i=Math.floor((e-a*t)/n),o=Math.floor((e-a*t-i*n)/1e3);return"".concat(be(a),":").concat(be(i),":").concat(be(o))}},created:function(){this.initTime(),this.tick()},methods:{initTime:function(){var e=0,t=0;this.originTargetTime=this.target;try{t="[object Date]"===Object.prototype.toString.call(this.target)?this.target:new Date(this.target).getTime()}catch(n){throw new Error("invalid target prop")}e=t-(new Date).getTime(),this.lastTime=e<0?0:e},tick:function(){var e=this,t=this.onEnd;this.timer=setTimeout((function(){e.lastTimethis.length?"...":"")])},getTooltip:function(e,t){var n=this.$createElement;return n(ee["a"],[n("template",{slot:"title"},[e]),this.getStrDom(e,t)])}},render:function(){var e=this.$props,t=e.tooltip,n=e.length,a=this.$slots.default.map((function(e){return e.text})).join(""),i=ce(a),o=t&&i>n?this.getTooltip(a,i):this.getStrDom(a,i);return o}}),Oe=Ce,Te=Object(r["a"])(Oe,ve,ye,!1,null,null,null),Ee=Te.exports,we=Ee,je=function(){var e=this,t=e._self._c;return t("div",{class:e.prefixCls},[t("div",{staticStyle:{float:"left"}},[e._t("extra",(function(){return[e._v(e._s(e.extra))]}))],2),t("div",{staticStyle:{float:"right"}},[e._t("default")],2)])},Le=[],Re={name:"FooterToolBar",props:{prefixCls:{type:String,default:"ant-pro-footer-toolbar"},extra:{type:[String,Object],default:""}}},Ie=Re,ze=Object(r["a"])(Ie,je,Le,!1,null,"4ea7eeef",null),Ae=(ze.exports,n("2432"),function(){var e=this,t=e._self._c;return t("div",{class:[e.prefixCls]},[e._t("subtitle",(function(){return[t("div",{class:["".concat(e.prefixCls,"-subtitle")]},[e._v(e._s("string"===typeof e.subTitle?e.subTitle:e.subTitle()))])]})),t("div",{staticClass:"number-info-value"},[t("span",[e._v(e._s(e.total))]),t("span",{staticClass:"sub-total"},[e._v(" "+e._s(e.subTotal)+" "),t("icon",{attrs:{type:"caret-".concat(e.status)}})],1)])],2)}),Fe=[],Pe=n("0c63"),Me={name:"NumberInfo",props:{prefixCls:{type:String,default:"ant-pro-number-info"},total:{type:Number,required:!0},subTotal:{type:Number,required:!0},subTitle:{type:[String,Function],default:""},status:{type:String,default:"up"}},components:{Icon:Pe["a"]},data:function(){return{}}},Ge=Me,De=(n("8178"),Object(r["a"])(Ge,Ae,Fe,!1,null,"0780afb4",null)),Ke=(De.exports,function(){var e=this,t=e._self._c;return t("div",{class:["description-list",e.size,"vertical"===e.layout?"vertical":"horizontal"]},[e.title?t("div",{staticClass:"title"},[e._v(e._s(e.title))]):e._e(),t("a-row",[e._t("default")],2)],1)}),Be=[],Ne=n("5530"),qe=n("da05"),Ue={name:"DetailListItem",props:{term:{type:String,default:"",required:!1}},inject:{col:{type:Number}},render:function(){var e=arguments[0];return e(qe["b"],{props:Object(Ne["a"])({},He[this.col])},[e("div",{class:"term"},[this.$props.term]),e("div",{class:"content"},[this.$slots.default])])}},He={1:{xs:24},2:{xs:24,sm:12},3:{xs:24,sm:12,md:8},4:{xs:24,sm:12,md:6}},Je={name:"DetailList",Item:Ue,components:{Col:qe["b"]},props:{title:{type:String,default:"",required:!1},col:{type:Number,required:!1,default:3},size:{type:String,required:!1,default:"large"},layout:{type:String,required:!1,default:"horizontal"}},provide:function(){return{col:this.col>4?4:this.col}}},Xe=Je,Ze=(n("b882"),Object(r["a"])(Xe,Ke,Be,!1,null,"745c64a4",null)),Qe=(Ze.exports,n("8fb1"),n("5704"),n("b558")),Ve=(n("fbd8"),n("55f1")),Ye=(n("ac1f"),n("841c"),Ve["a"].Item),We=Ve["a"].ItemGroup,_e=Ve["a"].SubMenu,$e=Qe["a"].Search,et=(Boolean,function(){var e=this,t=e._self._c;return t("div",{class:[e.prefixCls,e.reverseColor&&"reverse-color"]},[t("span",[e._t("term"),t("span",{staticClass:"item-text"},[e._t("default")],2)],2),t("span",{class:[e.flag]},[t("a-icon",{attrs:{type:"caret-".concat(e.flag)}})],1)])}),tt=[],nt={name:"Trend",props:{prefixCls:{type:String,default:"ant-pro-trend"},flag:{type:String,required:!0},reverseColor:{type:Boolean,default:!1}}},at=nt,it=(n("c8c5"),Object(r["a"])(at,et,tt,!1,null,"9f28f096",null)),ot=(it.exports,n("2638")),st=n.n(ot),rt=n("53ca"),ct=(n("caad"),n("159b"),n("b64b"),n("2532"),n("372e")),lt=n("c832"),ut=n.n(lt),dt=n("b76a"),ft=n.n(dt),pt=function(){var e=this,t=e._self._c;return t("div",{staticClass:"ant-dropdown-menu s-tool-column ant-dropdown-content",attrs:{slot:"overlay"},slot:"overlay"},[t("div",{staticClass:"s-tool-column-header s-tool-column-item"},[t("a-checkbox",{attrs:{indeterminate:e.indeterminate,checked:e.checkAll},on:{change:e.onCheckAllChange}},[e._v(" 列展示 ")]),t("a",{on:{click:e.reset}},[e._v("重置")])],1),t("a-divider"),t("div",{staticClass:"ant-checkbox-group"},[t("div",[t("draggable",{attrs:{animation:"300"},on:{end:e.emitColumnChange},model:{value:e.columnsSetting,callback:function(t){e.columnsSetting=t},expression:"columnsSetting"}},e._l(e.columnsSetting,(function(n){return t("div",{key:n.title,staticClass:"s-tool-column-item"},[t("div",{staticClass:"s-tool-column-handle"},[t("a-icon",{attrs:{type:"more"}}),t("a-icon",{attrs:{type:"more"}})],1),t("a-checkbox",{on:{change:e.onChange},model:{value:n.checked,callback:function(t){e.$set(n,"checked",t)},expression:"item.checked"}},[e._v(e._s(n.title))])],1)})),0)],1)])],1)},mt=[],ht={props:{columns:{type:Array,default:function(){return[]}}},components:{draggable:ft.a},data:function(){return{indeterminate:!1,checkAll:!0,columnsSetting:[],originColumns:[]}},methods:{reset:function(){this.columnsSetting=JSON.parse(JSON.stringify(this.originColumns)),this.indeterminate=!1,this.checkAll=!0,this.emitColumnChange()},onChange:function(){var e=this.columnsSetting.filter((function(e){return e.checked}));this.indeterminate=!!e.length&&e.length0&&void 0!==arguments[0]&&arguments[0];e&&(this.localPagination=Object.assign({},{current:1,pageSize:this.pageSize})),this.loadData()},loadData:function(e,t,n){var a=this;this.localLoading=!0;var i=Object.assign({pageNo:e&&e.current||this.showPagination&&this.localPagination.current||this.pageNum,pageSize:e&&e.pageSize||this.showPagination&&this.localPagination.pageSize||this.pageSize},n&&n.field&&{sortField:n.field}||{},n&&n.order&&{sortOrder:n.order}||{},Object(Ne["a"])({},t));this.queryparams=i;var o=this.data(i);"object"!==Object(rt["a"])(o)&&"function"!==typeof o||"function"!==typeof o.then||o.then((function(t){if(null!=t){if(a.localPagination=a.showPagination&&Object.assign({},a.localPagination,{current:t.pageno,total:t.totalrows,showSizeChanger:a.showSizeChanger,pageSize:e&&e.pageSize||a.localPagination.pageSize})||!1,null==t.rows&&(t.rows=[]),0===t.rows.length&&a.showPagination&&a.localPagination.current>1)return a.localPagination.current--,void a.loadData();try{["auto",!0].includes(a.showPagination)&&t.totalCount<=t.totalPage*a.localPagination.pageSize&&(a.localPagination.hideOnSinglePage=!0)}catch(n){a.localPagination=!1}a.localDataSource=t.rows,a.localLoading=!1}else a.localLoading=!1}))},initTotalList:function(e){var t=[];return e&&e instanceof Array&&e.forEach((function(e){e.needTotal&&t.push(Object(Ne["a"])(Object(Ne["a"])({},e),{},{total:0}))})),t},updateSelect:function(e,t){this.selectedRows=t,this.selectedRowKeys=e;var n=this.needTotalList;this.needTotalList=n.map((function(e){return Object(Ne["a"])(Object(Ne["a"])({},e),{},{total:t.reduce((function(t,n){var a=t+parseInt(ut()(n,e.dataIndex));return isNaN(a)?0:a}),0)})}))},clearSelected:function(){this.rowSelection&&(this.rowSelection.onChange([],[]),this.updateSelect([],[]))},renderClear:function(e){var t=this,n=this.$createElement;return this.selectedRowKeys.length<=0?null:n("a",{style:"margin-left: 24px",on:{click:function(){e(),t.clearSelected()}}},["清空"])},renderAlert:function(){var e=this.$createElement;this.needTotalList.map((function(t){return e("span",{style:"margin-right: 12px"},[t.title,"总计 ",e("a",{style:"font-weight: 600"},[t.customRender?t.customRender(t.total):t.total])])})),"boolean"===typeof this.alert.clear&&this.alert.clear?this.renderClear(this.clearSelected):null!==this.alert&&"function"===typeof this.alert.clear&&this.renderClear(this.alert.clear);return""},columnChange:function(e){this.columnsSetting=e},renderHeader:function(){var e=this,t=this.$createElement,n=[{icon:"reload",title:"刷新",onClick:function(){e.refresh()}},{icon:"setting",title:"列设置",isDropdown:!0,menu:function(){return t(vt,{slot:"overlay",attrs:{columns:e.columns},on:{columnChange:e.columnChange}})},onClick:function(){}},{icon:"printer",title:"打印",isDropdown:!1,onClick:function(){var t=e.$el.getElementsByClassName("ant-table-body"),n=null!==t?t[0].innerHTML:"",a=window.open("打印窗口","_blank"),i=[""].join(""),o=n;a.document.write(i+o),a.document.close(),a.print(),a.close()}}];return this.isexport&&n.push({icon:"download",title:"导出",isDropdown:!1,onClick:function(){e.onExport&&e.onExport()}}),this.extraTool.length&&(n=n.concat(this.extraTool)),t("div",{class:"s-table-tool"},[t("div",{class:"s-table-tool-left"},[this.$scopedSlots.operator&&this.$scopedSlots.operator()]),t("div",{class:"s-table-tool-right"},[n.map((function(e){return e.isDropdown?t("a-dropdown",{attrs:{trigger:["click"]}},[t("a-tooltip",{attrs:{title:e.title},class:"s-tool-item",on:{click:e.onClick}},[t("a-icon",{attrs:{type:e.icon}})]),e.menu()]):t("a-tooltip",{attrs:{title:e.title},class:"s-tool-item",on:{click:e.onClick}},[t("a-icon",{attrs:{type:e.icon}})])}))])])}},render:function(){var e=this,t=arguments[0],n={},a=Object.keys(this.$data),i="object"===Object(rt["a"])(this.alert)&&null!==this.alert&&this.alert.show&&"undefined"!==typeof this.rowSelection.selectedRowKeys||this.alert;Object.keys(ct["a"].props).forEach((function(t){var o="local".concat(t.substring(0,1).toUpperCase()).concat(t.substring(1));if(a.includes(o))return n[t]=e[o],n[t];if("rowSelection"===t){if(i&&e.rowSelection)return n[t]=Object(Ne["a"])(Object(Ne["a"])({},e.rowSelection),{},{selectedRows:e.selectedRows,selectedRowKeys:e.selectedRowKeys,onChange:function(n,a){e.updateSelect(n,a),"undefined"!==typeof e[t].onChange&&e[t].onChange(n,a)}}),n[t];if(!e.rowSelection)return n[t]=null,n[t]}return e[t]&&(n[t]=e[t]),n=Object(Ne["a"])(Object(Ne["a"])({},n),{},{size:e.customSize,columns:e.columnsSetting.filter((function(e){return void 0===e.checked||e.checked}))}),n[t]}));var o=t("a-table",st()([{},{props:n,scopedSlots:Object(Ne["a"])({},this.$scopedSlots)},{on:{change:this.loadData,expand:function(t,n){e.$emit("expand",t,n)}}}]),[Object.keys(this.$slots).map((function(n){return t("template",{slot:n},[e.$slots[n]])}))]);return t("div",{class:"table-wrapper"},[this.renderHeader(),i?this.renderAlert():null,o])}}),kt=(n("31fc"),n("a4d3"),n("e01a"),function(){var e=this,t=e._self._c;return t("div",{staticClass:"result"},[t("div",[t("a-icon",{class:Object(Y["a"])({icon:!0},"".concat(e.type),!0),attrs:{type:e.localIsSuccess?"check-circle":"close-circle"}})],1),t("div",{staticClass:"title"},[e._t("title",(function(){return[e._v(" "+e._s(e.title)+" ")]}))],2),t("div",{staticClass:"description"},[e._t("description",(function(){return[e._v(" "+e._s(e.description)+" ")]}))],2),e.$slots.default?t("div",{staticClass:"extra"},[e._t("default")],2):e._e(),e.$slots.action?t("div",{staticClass:"action"},[e._t("action")],2):e._e()])}),xt=[],St=["success","error"],Ct={name:"Result",props:{isSuccess:{type:Boolean,default:!1},type:{type:String,default:St[0],validator:function(e){return function(e){return St.includes(e)}}},title:{type:String,default:""},description:{type:String,default:""}},computed:{localIsSuccess:function(){return this.type===St[0]}}},Ot=Ct,Tt=(n("d40c"),Object(r["a"])(Ot,kt,xt,!1,null,"4aa70533",null)),Et=(Tt.exports,n("13bb"),n("07ac"),n("4d91")),wt=(n("b97c"),n("7571")),jt=wt["a"].CheckableTag,Lt={name:"TagSelectOption",props:{prefixCls:{type:String,default:"ant-pro-tag-select-option"},value:{type:[String,Number,Object],default:""},checked:{type:Boolean,default:!1}},data:function(){return{localChecked:this.checked||!1}},watch:{checked:function(e){this.localChecked=e},"$parent.items":{handler:function(e){this.value&&e.hasOwnProperty(this.value)&&(this.localChecked=e[this.value])},deep:!0}},render:function(){var e=this,t=arguments[0],n=this.$slots,a=this.value,i=function(t){e.$emit("change",{value:a,checked:t})};return t(jt,{key:a,on:{change:i},model:{value:e.localChecked,callback:function(t){e.localChecked=t}}},[n.default])}},Rt={Option:Lt,name:"TagSelect",model:{prop:"checked",event:"change"},props:{prefixCls:{type:String,default:"ant-pro-tag-select"},defaultValue:{type:Et["a"].array,default:null},value:{type:Et["a"].array,default:null},expandable:{type:Boolean,default:!1},hideCheckAll:{type:Boolean,default:!1}},data:function(){return{expand:!1,localCheckAll:!1,items:this.getItemsKey(oe(this.$slots.default)),val:this.value||this.defaultValue||[]}},methods:{onChange:function(e){var t=Object.keys(this.items).filter((function(t){return t===e.value}));this.items[t]=e.checked;var n=Object.values(this.items).lastIndexOf(!1);this.localCheckAll=-1===n},onCheckAll:function(e){var t=this;Object.keys(this.items).forEach((function(n){t.items[n]=e.checked})),this.localCheckAll=e.checked},getItemsKey:function(e){var t={};return e.forEach((function(e){t[e.componentOptions.propsData&&e.componentOptions.propsData.value]=!1})),t},renderCheckAll:function(){var e=this,t=this.$createElement,n={on:{change:function(t){e.onCheckAll(t),t.value="total",e.$emit("change",t)}}},a=t(Lt,st()([{key:"total",attrs:{checked:this.localCheckAll}},n]),["All"]);return!this.hideCheckAll&&a||null},renderExpandable:function(){},renderTags:function(e){var t=this,n={change:function(e){t.onChange(e),t.$emit("change",e)}};return e.map((function(e){var t=e.componentOptions;return t.listeners=n,e}))}},render:function(){var e=arguments[0],t=this.$props.prefixCls,n=Object(Y["a"])({},"".concat(t),!0),a=oe(this.$slots.default);return e("div",{class:n},[this.renderCheckAll(),this.renderTags(a)])}},It=function(){var e=this,t=e._self._c;return t("div",{staticClass:"exception"},[t("div",{staticClass:"imgBlock"},[t("div",{staticClass:"imgEle",style:{backgroundImage:"url(".concat(e.config[e.type].img,")")}})]),t("div",{staticClass:"content"},[t("h1",[e._v(e._s(e.config[e.type].title))]),t("div",{staticClass:"desc"},[e._v(e._s(e.config[e.type].desc))]),t("div",{staticClass:"actions"},[t("a-button",{attrs:{type:"primary"},on:{click:e.handleToHome}},[e._v("返回首页")])],1)])])},zt=[],At={403:{img:"https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg",title:"403",desc:"抱歉,你无权访问该页面"},404:{img:"https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg",title:"404",desc:"抱歉,你访问的页面不存在或仍在开发中"},500:{img:"https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg",title:"500",desc:"抱歉,服务器出错了"}},Ft=At,Pt={name:"Exception",props:{type:{type:String,default:"404"}},data:function(){return{config:Ft}},methods:{handleToHome:function(){this.$router.push({name:"Console"})}}},Mt=Pt,Gt=(n("b9a3"),Object(r["a"])(Mt,It,zt,!1,null,null,null)),Dt=Gt.exports,Kt=Dt,Bt=function(){var e=this,t=e._self._c;return t("div",{class:[e.prefixCls,e.lastCls,e.blockCls,e.gridCls]},[e.title?t("div",{staticClass:"antd-pro-components-standard-form-row-index-label"},[t("span",[e._v(e._s(e.title))])]):e._e(),t("div",{staticClass:"antd-pro-components-standard-form-row-index-content"},[e._t("default")],2)])},Nt=[],qt=["antd-pro-components-standard-form-row-index-standardFormRowBlock","antd-pro-components-standard-form-row-index-standardFormRowGrid","antd-pro-components-standard-form-row-index-standardFormRowLast"],Ut={name:"StandardFormRow",props:{prefixCls:{type:String,default:"antd-pro-components-standard-form-row-index-standardFormRow"},title:{type:String,default:void 0},last:{type:Boolean},block:{type:Boolean},grid:{type:Boolean}},computed:{lastCls:function(){return this.last?qt[2]:null},blockCls:function(){return this.block?qt[0]:null},gridCls:function(){return this.grid?qt[1]:null}}},Ht=Ut,Jt=(n("0134"),Object(r["a"])(Ht,Bt,Nt,!1,null,"400fd39c",null)),Xt=Jt.exports,Zt=Xt,Qt=function(){var e=this,t=e._self._c;return t("div",{staticClass:"antd-pro-components-article-list-content-index-listContent"},[t("div",{staticClass:"description"},[e._t("default",(function(){return[e._v(" "+e._s(e.description)+" ")]}))],2),t("div",{staticClass:"extra"},[t("a-avatar",{attrs:{src:e.avatar,size:"small"}}),t("a",{attrs:{href:e.href}},[e._v(e._s(e.owner))]),e._v(" 发布在 "),t("a",{attrs:{href:e.href}},[e._v(e._s(e.href))]),t("em",[e._v(e._s(e._f("moment")(e.updateAt)))])],1)])},Vt=[],Yt={name:"ArticleListContent",props:{prefixCls:{type:String,default:"antd-pro-components-article-list-content-index-listContent"},description:{type:String,default:""},owner:{type:String,required:!0},avatar:{type:String,required:!0},href:{type:String,required:!0},updateAt:{type:String,required:!0}}},Wt=Yt,_t=(n("30fc"),Object(r["a"])(Wt,Qt,Vt,!1,null,"0d752822",null)),$t=_t.exports,en=$t,tn=function(){var e=this,t=e._self._c;return t("div",[t("div",{ref:"myEditor",attrs:{id:"editor"}}),e._t("default")],2)},nn=[],an=(n("3ca3"),n("ddb0"),n("2b3d"),n("9861"),n("1a0b")),on=n.n(an),sn={name:"ComponentWangeditor",data:function(){return{edit:""}},props:{value:{type:String,default:""},config:{type:Object,default:function(){return{}}},uploadConfig:{type:Object,default:function(){return{method:"http",url:"/"}}}},computed:{customConfig:function(){return Object(Ne["a"])({pasteFilterStyle:!1,pasteIgnoreImg:!1},this.config)}},watch:{value:function(e,t){this.editor.txt.text(e)}},components:{},methods:{readBlobAsDataURL:function(e,t){var n=new FileReader;n.onload=function(e){t(e.target.result)},n.readAsDataURL(e)},initEditor:function(){var e=this;this.editor=new on.a(this.$refs.myEditor),this.editor.customConfig=this.customConfig,this.editor.customConfig.uploadImgMaxLength=5,this.editor.change=function(){e.$emit("input",this.txt.html()),e.$emit("onchange",this.txt.html(),this.txt)},this.editor.customConfig.customUploadImg=function(t,n){if("custom"===e.uploadConfig.method&&t.forEach((function(e){var t=URL.createObjectURL(e);n(t)})),"base64"===e.uploadConfig.method&&t.forEach((function(t){e.readBlobAsDataURL(t,(function(e){n(e)}))})),"http"===e.uploadConfig.method)if(e.uploadConfig.callback)e.uploadConfig.callback(t,n);else{var a=new FormData;t.forEach((function(e){a.append("file",e)})),e.axios.post(e.uploadConfig.url,a).then((function(e){var t=e.data;t&&t.url&&n(t.url)}))}},this.editor.create(),this.editor.txt.text(this.value),this.$emit("oninit",this.editor)}},beforeCreate:function(){},created:function(){},beforeMount:function(){},mounted:function(){this.initEditor()}},rn=sn,cn=(n("3b8b"),Object(r["a"])(rn,tn,nn,!1,null,null,null)),ln=cn.exports,un=n("ed3b"),dn=function(e){function t(t,n,a){var i=this;if(a=a||{},i&&i._isVue){var o=document.querySelector("body>div[type=dialog]");o||(o=document.createElement("div"),o.setAttribute("type","dialog"),document.body.appendChild(o));var s=function(e,t){if(e instanceof Function){var n=e();n instanceof Promise?n.then((function(e){e&&t()})):n&&t()}else e||t()},r=new e({data:function(){return{visible:!0}},router:i.$router,store:i.$store,mounted:function(){var e=this;this.$on("close",(function(t){e.handleClose()}))},methods:{handleClose:function(){var e=this;s(this.$refs._component.onCancel,(function(){e.visible=!1,e.$refs._component.$emit("close"),e.$refs._component.$emit("cancel"),r.$destroy()}))},handleOk:function(){var e=this;s(this.$refs._component.onOK||this.$refs._component.onOk,(function(){e.visible=!1,e.$refs._component.$emit("close"),e.$refs._component.$emit("ok"),r.$destroy()}))}},render:function(e){var i=this,o=a&&a.model;o&&delete a.model;var s=Object.assign({},o&&{model:o}||{},{attrs:Object.assign({},Object(Ne["a"])({},a.attrs||a),{visible:this.visible}),on:Object.assign({},Object(Ne["a"])({},a.on||a),{ok:function(){i.handleOk()},cancel:function(){i.handleClose()}})}),r=n&&n.model;r&&delete n.model;var c=Object.assign({},r&&{model:r}||{},{ref:"_component",attrs:Object.assign({},Object(Ne["a"])({},n&&n.attrs||n)),on:Object.assign({},Object(Ne["a"])({},n&&n.on||n))});return e(un["a"],s,[e(t,c)])}}).$mount(o)}}Object.defineProperty(e.prototype,"$dialog",{get:function(){return function(){t.apply(this,arguments)}}})},fn=function(){var e=this,t=e._self._c;return t("a-card",{attrs:{bordered:!1,bodyStyle:e.tstyle}},[e._t("content")],2)},pn=[],mn={name:"XCard",data:function(){return{tstyle:{"padding-bottom":"0px","margin-bottom":"10px"}}}},hn=mn,gn=Object(r["a"])(hn,fn,pn,!1,null,null,null),bn=gn.exports},"30fc":function(e,t,n){"use strict";n("d3a9")},"31fc":function(e,t,n){"use strict";var a,i,o=n("8bbf"),s=n.n(o),r=new s.a,c=n("5530"),l=(n("b0c0"),n("7db0"),n("d3b7"),n("4de4"),n("caad"),n("2532"),n("159b"),n("d81d"),{name:"MultiTab",data:function(){return{fullPathList:[],pages:[],activeKey:"",newTabIndex:0}},created:function(){var e=this;r.$on("open",(function(t){if(!t)throw new Error("multi-tab: open tab ".concat(t," err"));e.activeKey=t})).$on("close",(function(t){t?e.closeThat(t):e.closeThat(e.activeKey)})).$on("rename",(function(t){var n=t.key,a=t.name;try{var i=e.pages.find((function(e){return e.path===n}));i.meta.customTitle=a,e.$forceUpdate()}catch(o){}})),this.pages.push(this.$route),this.fullPathList.push(this.$route.fullPath),this.selectedLastPath()},methods:{onEdit:function(e,t){this[t](e)},remove:function(e){this.pages=this.pages.filter((function(t){return t.fullPath!==e})),this.fullPathList=this.fullPathList.filter((function(t){return t!==e})),this.fullPathList.includes(this.activeKey)||this.selectedLastPath()},selectedLastPath:function(){this.activeKey=this.fullPathList[this.fullPathList.length-1]},closeThat:function(e){this.fullPathList.length>1?this.remove(e):this.$message.info("这是最后一个标签了, 无法被关闭")},closeLeft:function(e){var t=this,n=this.fullPathList.indexOf(e);n>0?this.fullPathList.forEach((function(e,a){an&&t.remove(e)})):this.$message.info("右侧没有标签")},closeAll:function(e){var t=this,n=this.fullPathList.indexOf(e);this.fullPathList.forEach((function(e,a){a!==n&&t.remove(e)}))},closeMenuClick:function(e,t){this[e](t)},renderTabPaneMenu:function(e){var t=this,n=this.$createElement;return n("a-menu",{on:Object(c["a"])({},{click:function(n){var a=n.key;n.item,n.domEvent;t.closeMenuClick(a,e)}})},[n("a-menu-item",{key:"closeThat"},["关闭当前标签"]),n("a-menu-item",{key:"closeRight"},["关闭右侧"]),n("a-menu-item",{key:"closeLeft"},["关闭左侧"]),n("a-menu-item",{key:"closeAll"},["关闭其他"])])},renderTabPane:function(e,t){var n=this.$createElement,a=this.renderTabPaneMenu(t);return n("a-dropdown",{attrs:{overlay:a,trigger:["contextmenu"]}},[n("span",{style:{userSelect:"none"}},[e])])}},watch:{$route:function(e){this.activeKey=e.fullPath,this.fullPathList.indexOf(e.fullPath)<0&&(this.fullPathList.push(e.fullPath),this.pages.push(e))},activeKey:function(e){this.$router.push({path:e})}},render:function(){var e=this,t=arguments[0],n=this.onEdit,a=this.$data.pages,i=a.map((function(n){return t("a-tab-pane",{style:{height:0,background:"#8999ee",color:"#899ee"},attrs:{tab:e.renderTabPane(n.meta.customTitle||n.meta.title,n.fullPath),closable:a.length>1},key:n.fullPath})}));return t("div",{class:"ant-pro-multi-tab"},[t("div",{class:"ant-pro-multi-tab-wrapper"},[t("a-tabs",{attrs:{hideAdd:!0,tabBarGutter:-1,type:"editable-card",tabBarStyle:{background:"#FFF",margin:0,paddingLeft:"0px",paddingTop:"0px"}},on:Object(c["a"])({},{edit:n}),model:{value:e.activeKey,callback:function(t){e.activeKey=t}}},[i])])])}}),u=l,d=n("2877"),f=Object(d["a"])(u,a,i,!1,null,null,null),p=f.exports,m=(n("3489"),{open:function(e){r.$emit("open",e)},rename:function(e,t){r.$emit("rename",{key:e,name:t})},closeCurrentPage:function(){this.close()},close:function(e){r.$emit("close",e)}});p.install=function(e){e.prototype.$multiTab||(m.instance=r,e.prototype.$multiTab=m,e.component("multi-tab",p))};t["a"]=p},3489:function(e,t,n){},"35d8":function(e,t,n){},"3b8b":function(e,t,n){"use strict";n("5803")},4360:function(e,t,n){"use strict";var a=n("8bbf"),i=n.n(a),o=n("5880"),s=n.n(o),r=n("9fb0"),c={state:{sidebar:!0,device:"desktop",theme:"",layout:"",contentWidth:"",fixedHeader:!1,fixSiderbar:!1,autoHideHeader:!1,color:null,weak:!1,multiTab:!0,crumbsState:!0,hasError:!1},mutations:{SET_SIDEBAR_TYPE:function(e,t){e.sidebar=t,i.a.ls.set(r["n"],t)},CLOSE_SIDEBAR:function(e){i.a.ls.set(r["n"],!0),e.sidebar=!1},TOGGLE_DEVICE:function(e,t){e.device=t},TOGGLE_THEME:function(e,t){i.a.ls.set(r["l"],t),e.theme=t},TOGGLE_LAYOUT_MODE:function(e,t){i.a.ls.set(r["j"],t),e.layout=t},TOGGLE_FIXED_HEADER:function(e,t){i.a.ls.set(r["g"],t),e.fixedHeader=t},TOGGLE_FIXED_SIDERBAR:function(e,t){i.a.ls.set(r["i"],t),e.fixSiderbar=t},TOGGLE_FIXED_HEADER_HIDDEN:function(e,t){i.a.ls.set(r["h"],t),e.autoHideHeader=t},TOGGLE_CONTENT_WIDTH:function(e,t){i.a.ls.set(r["e"],t),e.contentWidth=t},TOGGLE_COLOR:function(e,t){i.a.ls.set(r["c"],t),e.color=t},TOGGLE_WEAK:function(e,t){i.a.ls.set(r["d"],t),e.weak=t},TOGGLE_MULTI_TAB:function(e,t){i.a.ls.set(r["k"],t),e.multiTab=t},TOGGLE_CRUMBS_STATE:function(e,t){i.a.ls.set(r["f"],t),e.crumbsState=t},SET_HAS_ERROR:function(e,t){e.hasError=t}},actions:{setSidebar:function(e,t){var n=e.commit;n("SET_SIDEBAR_TYPE",t)},CloseSidebar:function(e){var t=e.commit;t("CLOSE_SIDEBAR")},ToggleDevice:function(e,t){var n=e.commit;n("TOGGLE_DEVICE",t)},ToggleTheme:function(e,t){var n=e.commit;n("TOGGLE_THEME",t)},ToggleLayoutMode:function(e,t){var n=e.commit;n("TOGGLE_LAYOUT_MODE",t)},ToggleFixedHeader:function(e,t){var n=e.commit;t||n("TOGGLE_FIXED_HEADER_HIDDEN",!1),n("TOGGLE_FIXED_HEADER",t)},ToggleFixSiderbar:function(e,t){var n=e.commit;n("TOGGLE_FIXED_SIDERBAR",t)},ToggleFixedHeaderHidden:function(e,t){var n=e.commit;n("TOGGLE_FIXED_HEADER_HIDDEN",t)},ToggleContentWidth:function(e,t){var n=e.commit;n("TOGGLE_CONTENT_WIDTH",t)},ToggleColor:function(e,t){var n=e.commit;n("TOGGLE_COLOR",t)},ToggleWeak:function(e,t){var n=e.commit;n("TOGGLE_WEAK",t)},ToggleMultiTab:function(e,t){var n=e.commit;n("TOGGLE_MULTI_TAB",t)},ToggleCrumbsState:function(e,t){var n=e.commit;n("TOGGLE_CRUMBS_STATE",t)},SetHasError:function(e,t){var n=e.commit;n("SET_HAS_ERROR",t)}}},l=c,u=(n("b0c0"),n("4de4"),n("d3b7"),n("4e82"),n("3ca3"),n("ddb0"),n("2b3d"),n("9861"),n("159b"),n("6135")),d=n("126f"),f=n("0bfe"),p=n("b775");function m(e){return Object(p["b"])({url:"/sysenumdata/getclientdata",method:"get",param:e})}function h(e){return Object(p["b"])({url:"/system/getconfiginfo",method:"post",param:e})}var g=n("6597"),b=n("f045"),v=n("ca00"),y=n("a18c"),k={state:{token:"",name:"",welcome:"",avatar:"",buttons:[],allButtons:[],alldevicetypes:[],allconfig:{},clientdata:{},admintype:"",roles:[],info:{},notices:[]},mutations:{SET_TOKEN:function(e,t){e.token=t},SET_NAME:function(e,t){var n=t.name,a=t.welcome;e.name=n,e.welcome=a},SET_AVATAR:function(e,t){e.avatar=t},SET_ROLES:function(e,t){e.roles=t},SET_INFO:function(e,t){e.info=t},SET_BUTTONS:function(e,t){e.buttons=t},SET_ALL_BUTTONS:function(e,t){e.allButtons=t},SET_ADMINTYPE:function(e,t){e.admintype=t},SET_DEVICETYPE:function(e,t){e.alldevicetypes=t},SET_CONFIGINFO:function(e,t){e.allconfig=t},SET_CLIENTDATA:function(e,t){e.clientdata=t},SET_NOTICES:function(e,t){e.notices=t},APPEND_NOTICE:function(e,t){t.publicTime=Object(v["b"])(t.publicTime,"YYYY-mm-dd HH:MM:SS");var n=e.notices,a=n.rows.filter((function(e){return e.value===t.type}))[0],i=n.rows.filter((function(e){return e.value!==t.type}));a.noticeData.unshift(t),n.totalrows++,a.noticeData.length>6&&a.noticeData.pop(),n.rows=[],n.rows.push(a),n.rows.push.apply(n.rows,i),n.rows.sort((function(e,t){return e.index-t.index})),e.notices=n},SUBTRACT_NOTICE:function(e,t){var n=e.notices,a=n.rows.filter((function(e){return e.value===t.type}))[0],i=n.rows.filter((function(e){return e.value!==t.type}));a.noticeData.shift(t),n.totalrows--,a.noticeData.length>6&&a.noticeData.pop(),n.rows=[],n.rows.pop(a),n.rows.pop.apply(n.rows,i),n.rows.sort((function(e,t){return e.index-t.index})),e.notices=n}},actions:{Login:function(e,t){e.commit;return i.a.ls.remove(r["b"]),new Promise((function(e,n){Object(u["d"])(t).then((function(t){0===t.code?e():n(t.message)})).catch((function(e){n("后端未启动或代理错误")}))}))},GetInfo:function(e){var t=this,n=e.commit;return new Promise((function(e,a){Object(u["b"])().then((function(i){if(0===i.code){var o=i.data;n("SET_ADMINTYPE",o.admintype),n("SET_ROLES",1),n("SET_BUTTONS",o.permissions),n("SET_ALL_BUTTONS",o.allpermissions),n("SET_INFO",o),n("SET_NAME",{name:o.name,welcome:Object(v["f"])()}),null!=o.avatar?Object(g["d"])({id:o.avatar}).then((function(e){n("SET_AVATAR",window.URL.createObjectURL(new Blob([e])))})).catch((function(e){t.$myerror("预览错误:"+e.message)})):n("SET_AVATAR","/avatar2.jpg"),e(o)}else a(new Error(i.message))}))}))},Logout:function(e){var t=e.commit,n=e.state;return new Promise((function(e){Object(u["e"])(n.token).then((function(){e()})).catch((function(){e()})).finally((function(){t("SET_TOKEN",""),t("SET_ROLES",[]),t("SET_BUTTONS",[]),t("SET_ALL_BUTTONS",[]),t("SET_ADMINTYPE",""),i.a.ls.remove(r["a"]),i.a.ls.remove(r["b"]),i.a.ls.remove(r["m"]),i.a.ls.remove("X-Access-Token")}))}))},getConfig:function(e){var t=e.commit;return new Promise((function(e,n){h().then((function(a){if(0===a.code){var i=a.data;t("SET_CONFIGINFO",i),e(i)}else n(new Error(a.message))})).catch((function(e){n(e)}))}))},dictTypeData:function(){return new Promise((function(e,t){Object(d["g"])().then((function(n){if(0===n.code){var a=n.data;i.a.ls.set(r["m"],a),e()}else t(new Error(n.message))})).catch((function(e){t(e)}))}))},getclientdata:function(e){var t=e.commit;return new Promise((function(e,n){m().then((function(a){if(0===a.code){var i=a.data;t("SET_CLIENTDATA",i),e(i)}else n(new Error(a.message))})).catch((function(e){n(e)}))}))},MenuChange:function(e,t){e.commit;return new Promise((function(e){Object(f["e"])({application:t.code}).then((function(n){var a={code:"",name:"",active:"",menu:""};a.active=!0,a.menu=n.data;var o=i.a.ls.get(r["b"]),s=[];o.forEach((function(e){e.active&&(e.active=!1),s.push(e)})),i.a.ls.set(r["b"],s),a.name=t.name,a.code=t.code;var c=[];c.push(a),i.a.ls.set(r["b"],c),e(n);var l=n.data;M.dispatch("GenerateRoutes",{antDesignmenus:l}).then((function(){y["a"].addRoutes(M.getters.addRouters)}))})).catch((function(){e()}))}))},getNoticReceiveList:function(e){var t=e.commit;return new Promise((function(e,n){Object(b["b"])({pageSize:6}).then((function(a){if(0===a.code){var i=a.data;t("SET_NOTICES",i),e()}else n(new Error(a.message))})).catch((function(e){n(e)}))}))}}},x=k,S=(n("99af"),n("d73b")),C=n("5530"),O=(n("d81d"),n("9911"),n("2ca0"),n("ac1f"),n("5319"),n("680a")),T={BasicLayout:O["a"],BlankLayout:O["b"],RouteView:O["e"],PageView:O["d"],Iframe:O["c"],403:function(){return n.e("fail").then(n.bind(null,"097e"))},404:function(){return n.e("fail").then(n.bind(null,"d250"))},500:function(){return n.e("fail").then(n.bind(null,"656f"))},Workplace:function(){return n.e("chunk-7e6a7aed").then(n.bind(null,"d3bc"))},AccountCenter:function(){return n.e("fail").then(n.bind(null,"8b8b"))},AccountSettings:function(){return n.e("fail").then(n.bind(null,"90aa"))},BaseSettings:function(){return n.e("chunk-0c4f7e34").then(n.bind(null,"dd26"))},SecuritySettings:function(){return n.e("chunk-0c4f7e34").then(n.bind(null,"7203"))},CustomSettings:function(){return n.e("fail").then(n.bind(null,"7320f"))},NotificationSettings:function(){return n.e("fail").then(n.bind(null,"0ca5"))},ThirdOpenSettings:function(){return n.e("fail").then(n.bind(null,"2790"))},Console:function(){return n.e("fail").then(n.bind(null,"c5e0"))}},E={path:"*",redirect:"/welcome",hidden:!0},w=[{name:"account",pid:0,id:10028,meta:{title:"个人页",icon:"user",show:!1},redirect:"/account/center",component:"RouteView"},{name:"center",pid:10028,id:10029,meta:{title:"个人中心",show:!1},component:"AccountCenter"},{name:"settings",pid:"10028",id:"10030",meta:{title:"个人设置",hideHeader:!0,hideChildren:!0,show:!1},redirect:"/account/settings/base",component:"AccountSettings"},{name:"BaseSettings",path:"/account/settings/base",pid:10030,id:10031,meta:{title:"基本设置",show:!1},component:"BaseSettings"},{name:"SecuritySettings",path:"/account/settings/security",pid:10030,id:10032,meta:{title:"安全设置",show:!1},component:"SecuritySettings"},{name:"CustomSettings",path:"/account/settings/custom",pid:10030,id:10033,meta:{title:"个性化设置",show:!1},component:"CustomSettings"},{name:"BindingSettings",path:"/account/settings/binding",pid:10030,id:10034,meta:{title:"",show:!1},component:"BindingSettings"},{name:"NotificationSettings",path:"/account/settings/notification",pid:10030,id:10034,meta:{title:"新消息通知",show:!1},component:"NotificationSettings"},{name:"ThirdOpenSettings",path:"/account/settings/thirdopen",pid:10030,id:10035,meta:{title:"推送配置",show:!1},component:"ThirdOpenSettings"},{name:"Console",path:"/welcome",pid:0,id:183183,meta:{title:"首页",show:!1},component:"Console"}],j={key:"",name:"MenuIndex.vue",path:"",component:"BasicLayout",redirect:"/welcome",meta:{title:"首页"},children:[]},L=function(e){return new Promise((function(t,n){var a=e.antDesignmenus,i=[],o=[];I(a,o,0),I(w,o,0),j.children=o,i.push(j);var s=R(i);s.push(E),t(s)})).catch((function(e){return Promise.reject(e)}))},R=function e(t,a){return t.map((function(t){var i=t.meta||{},o=i.title,s=i.show,r=i.hideChildren,c=(i.hiddenHeaderContent,i.target),l=i.icon,u=i.link,d={path:t.path||"".concat(a&&a.path||"","/").concat(t.key),name:t.name||t.key||"",component:T[t.component||t.key]||function(){return n("9dac")("./".concat(t.component))},meta:{title:o,icon:l||void 0,target:c,link:u}};return!1===s&&(d.hidden=!0),r&&(d.hideChildrenInMenu=!0),d.path.startsWith("http")||(d.path=d.path.replace("//","/")),t.redirect&&(d.redirect=t.redirect),t.children&&t.children.length>0&&(d.children=e(t.children,d)),d}))},I=function e(t,n,a){t&&t.forEach((function(i){if(i.pid==a){var o=Object(C["a"])(Object(C["a"])({},i),{},{key:i.key||i.name,children:[]});e(t,o.children,i.id),o.children.length<=0&&delete o.children,n.push(o)}}))},z={state:{routers:S["a"],addRouters:[]},mutations:{SET_ROUTERS:function(e,t){e.addRouters=t,e.routers=S["a"].concat(t)}},actions:{GenerateRoutes:function(e,t){var n=e.commit;return new Promise((function(e){L(t).then((function(t){n("SET_ROUTERS",t),e()}))})).catch((function(e){reject(e)}))}}},A=z,F={device:function(e){return e.app.device},theme:function(e){return e.app.theme},color:function(e){return e.app.color},token:function(e){return e.user.token},avatar:function(e){return e.user.avatar},nickname:function(e){return e.user.name},welcome:function(e){return e.user.welcome},roles:function(e){return e.user.roles},buttons:function(e){return e.user.buttons},allButtons:function(e){return e.user.allButtons},alldevtypes:function(e){return e.user.alldevicetypes},clientdata:function(e){return e.user.clientdata},admintype:function(e){return e.user.admintype},configinfo:function(e){return e.user.allconfig},userInfo:function(e){return e.user.info},userNotices:function(e){return e.user.notices},addRouters:function(e){return e.permission.addRouters},multiTab:function(e){return e.app.multiTab},lang:function(e){return e.i18n.lang}},P=F;i.a.use(s.a);var M=t["a"]=new s.a.Store({modules:{app:l,user:x,permission:A},state:{},mutations:{},actions:{},getters:P})},"46b4":function(e,t,n){},"4b6f":function(e,t,n){"use strict";n("e9b0")},"4be9":function(e,t,n){},"4ca5":function(e,t,n){},"548a":function(e,t,n){},"56d7":function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("a4d3"),n("e01a"),n("b636"),n("dc8d"),n("efe9"),n("d28b"),n("2a1b"),n("80e0"),n("6b9e"),n("197b"),n("2351"),n("8172"),n("944a"),n("81b8"),n("99af"),n("a874"),n("cb29"),n("4de4"),n("7db0"),n("c740"),n("0481"),n("5db7"),n("a630"),n("caad"),n("a15b"),n("d81d"),n("5ded"),n("fb6a"),n("4e82"),n("f785"),n("a434"),n("4069"),n("73d9"),n("c19f"),n("82da"),n("ace4"),n("efec"),n("b56e"),n("b0c0"),n("0c47"),n("4ec9"),n("5327"),n("79a8"),n("9ff9"),n("3ea3"),n("40d9"),n("ff9c"),n("0ac8"),n("f664"),n("4057"),n("bc01"),n("6b93"),n("ca21"),n("90d7"),n("2af1"),n("0261"),n("7898"),n("23dc"),n("b65f"),n("a9e3"),n("35b3"),n("f00c"),n("8ba4"),n("9129"),n("583b"),n("aff5"),n("e6e1"),n("c35a"),n("25eb"),n("b680"),n("12a8"),n("e71b"),n("4fadc"),n("dca8"),n("c1f9"),n("e439"),n("dbb4"),n("7039"),n("3410"),n("2b19"),n("c906"),n("e21d"),n("e43e"),n("b64b"),n("bf96"),n("5bf7"),n("cee8"),n("af93"),n("131a"),n("d3b7"),n("07ac"),n("a6fd"),n("4ae1"),n("3f3a"),n("ac16"),n("5d41"),n("9e4a"),n("7f78"),n("c760"),n("db96"),n("1bf2"),n("d6dd"),n("7ed3"),n("8b9a"),n("4d63"),n("ac1f"),n("5377"),n("25f0"),n("6062"),n("f5b2"),n("8a79"),n("f6d6"),n("2532"),n("3ca3"),n("466d"),n("843c"),n("4d90"),n("d80f"),n("38cf"),n("5319"),n("841c"),n("1276"),n("2ca0"),n("498a"),n("1e25"),n("eee7"),n("18a5"),n("1393"),n("04d3"),n("cc71"),n("c7cd"),n("9767"),n("1913"),n("c5d0"),n("9911"),n("c96a"),n("2315"),n("4c53"),n("664f"),n("cfc3"),n("4a9b"),n("fd87"),n("8b09"),n("143c"),n("5cc6"),n("8a59"),n("84c3"),n("fb2c"),n("9a8c"),n("a975"),n("735e"),n("c1ac"),n("d139"),n("3a7b"),n("d5d6"),n("20bf"),n("82f8"),n("e91f"),n("60bd"),n("5f96"),n("3280"),n("3fcc"),n("ec97"),n("ca91"),n("25a1"),n("cd26"),n("3c5d"),n("2954"),n("649e"),n("219c"),n("170b"),n("b39a"),n("72f7"),n("10d1"),n("1fe2"),n("159b"),n("ddb0"),n("130f"),n("9f96"),n("2b3d"),n("bf19"),n("9861"),n("96cf");var a=n("8bbf"),i=n.n(a),o=function(){var e=this,t=e._self._c;return t("a-config-provider",{attrs:{locale:e.locale}},[t("div",{staticClass:"app app1",attrs:{id:"app"}},[t("router-view",{staticClass:"scrollbar"})],1)])},s=[],r=n("677e"),c=n.n(r),l=n("ac0d"),u={mixins:[l["a"]],data:function(){return{locale:c.a}},mounted:function(){}},d=u,f=(n("67d1"),n("2877")),p=Object(f["a"])(d,o,s,!1,null,null,null),m=p.exports,h=n("a18c"),g=n("4360"),b=n("b775"),v=n("ca00"),y=n("9fb0"),k=n("e819");function x(){g["a"].commit("SET_SIDEBAR_TYPE",i.a.ls.get(y["n"],!0)),g["a"].commit("TOGGLE_THEME",i.a.ls.get(y["l"],k["a"].navTheme)),g["a"].commit("TOGGLE_LAYOUT_MODE",i.a.ls.get(y["j"],k["a"].layout)),g["a"].commit("TOGGLE_FIXED_HEADER",i.a.ls.get(y["g"],k["a"].fixedHeader)),g["a"].commit("TOGGLE_FIXED_SIDERBAR",i.a.ls.get(y["i"],k["a"].fixSiderbar)),g["a"].commit("TOGGLE_CONTENT_WIDTH",i.a.ls.get(y["e"],k["a"].contentWidth)),g["a"].commit("TOGGLE_FIXED_HEADER_HIDDEN",i.a.ls.get(y["h"],k["a"].autoHideHeader)),g["a"].commit("TOGGLE_WEAK",i.a.ls.get(y["d"],k["a"].colorWeak)),g["a"].commit("TOGGLE_COLOR",i.a.ls.get(y["c"],k["a"].primaryColor)),g["a"].commit("TOGGLE_MULTI_TAB",i.a.ls.get(y["k"],k["a"].multiTab)),g["a"].commit("TOGGLE_CRUMBS_STATE",i.a.ls.get(y["f"],k["a"].crumbsSate)),g["a"].commit("SET_TOKEN",i.a.ls.get(y["a"]))}var S=n("c16e"),C=n.n(S),O=(n("3b18"),n("f64c")),T=(n("3c1f"),n("2f50")),E=(n("dd98"),n("3779")),w=(n("bffa"),n("6634")),j=(n("34c0"),n("9fd0")),L=(n("06f4"),n("fc25")),R=(n("5cad"),n("7b2d")),I=(n("c119"),n("d865")),z=(n("98a7"),n("7bec")),A=(n("dc5a"),n("56cd")),F=(n("2a26"),n("768f")),P=(n("cc70"),n("1fd5")),M=(n("1273"),n("f2ca")),G=(n("eb14"),n("39ab")),D=(n("0025"),n("27ab")),K=(n("9980"),n("0bb7")),B=(n("55ec"),n("a79d8")),N=(n("b97c"),n("7571")),q=(n("ab9e"),n("2c92")),U=(n("9a33"),n("f933")),H=(n("6d2a"),n("9571")),J=(n("fbd8"),n("55f1")),X=(n("7f6b"),n("8592")),Z=(n("b380"),n("bf7b")),Q=(n("dd48"),n("2fc4")),V=(n("af3d"),n("27fd")),Y=(n("d88f"),n("fe2b")),W=(n("9d5c"),n("a600")),_=(n("5136"),n("681b")),$=(n("4a96"),n("a071")),ee=(n("8fb1"),n("0c63")),te=(n("d13f"),n("ccb9")),ne=(n("c68a"),n("0020")),ae=(n("cd17"),n("ed3b")),ie=(n("0032"),n("e32c")),oe=(n("de6a"),n("9a63")),se=(n("f2ef"),n("3af3")),re=(n("288f"),n("cdeb")),ce=(n("2ef0"),n("9839")),le=(n("ee00"),n("bb76")),ue=(n("5783"),n("59a5")),de=(n("fbd6"),n("160c")),fe=(n("6ba6"),n("5efb")),pe=(n("922d"),n("09d9")),me=(n("5704"),n("b558")),he=(n("1a62"),n("98c5")),ge=(n("d2a3"),n("4df5")),be=n("cf45");i.a.use(ge["a"]),i.a.use(he["a"]),i.a.use(me["a"]),i.a.use(pe["a"]),i.a.use(fe["a"]),i.a.use(de["a"]),i.a.use(ue["a"]),i.a.use(le["a"]),i.a.use(ce["c"]),i.a.use(re["a"]),i.a.use(se["a"]),i.a.use(oe["a"]),i.a.use(ie["a"]),i.a.use(ae["a"]),i.a.use(ne["a"]),i.a.use(te["a"]),i.a.use(ee["a"]),i.a.use($["a"]),i.a.use(_["a"]),i.a.use(W["a"]),i.a.use(Y["b"]),i.a.use(V["a"]),i.a.use(Q["a"]),i.a.use(Z["a"]),i.a.use(X["a"]),i.a.use(J["a"]),i.a.use(H["a"]),i.a.use(U["a"]),i.a.use(q["a"]),i.a.use(N["a"]),i.a.use(B["a"]),i.a.use(K["a"]),i.a.use(D["a"]),i.a.use(G["a"]),i.a.use(M["a"]),i.a.use(P["a"]),i.a.use(F["a"]),i.a.use(A["a"]),i.a.use(z["a"]),i.a.use(I["a"]),i.a.use(R["a"]),i.a.use(L["a"]),i.a.use(j["a"]),i.a.use(w["a"]),i.a.use(E["a"]),i.a.use(T["a"]),i.a.prototype.$confirm=ae["a"].confirm,i.a.prototype.$message=O["a"],i.a.prototype.$notification=A["a"],i.a.prototype.$info=ae["a"].info,i.a.prototype.$success=ae["a"].success,i.a.prototype.$error=ae["a"].error,i.a.prototype.$warning=ae["a"].warning,i.a.prototype.$myinfo=be["b"],i.a.prototype.$mysuccess=be["c"],i.a.prototype.$myerror=be["a"],i.a.prototype.$mywarning=be["d"];var ve=n("4eb5"),ye=n.n(ve),ke=n("7e79"),xe=n.n(ke),Se=n("31fc"),Ce=n("5530"),Oe={name:"PageLoading",props:{tip:{type:String,default:"Loading.."},size:{type:String,default:"large"}},render:function(){var e=arguments[0],t={textAlign:"center",background:"rgba(0,0,0,0.6)",position:"fixed",top:0,bottom:0,left:0,right:0,zIndex:1100},n={position:"absolute",left:"50%",top:"40%",transform:"translate(-50%, -50%)"};return e("div",{style:t},[e(X["a"],{attrs:{size:this.size,tip:this.tip},style:n})])}},Te="0.0.1",Ee={newInstance:function(e,t){var n=document.querySelector("body>div[type=loading]");n||(n=document.createElement("div"),n.setAttribute("type","loading"),n.setAttribute("class","ant-loading-wrapper"),document.body.appendChild(n));var a=Object.assign({visible:!1,size:"large",tip:"Loading..."},t),i=new e({data:function(){return Object(Ce["a"])({},a)},render:function(){var e=arguments[0],t=this.tip,n={};return this.tip&&(n.tip=t),this.visible?e(Oe,{props:Object(Ce["a"])({},n)}):null}}).$mount(n);function o(e){var t=Object(Ce["a"])(Object(Ce["a"])({},a),e),n=t.visible,o=t.size,s=t.tip;i.$set(i,"visible",n),s&&i.$set(i,"tip",s),o&&i.$set(i,"size",o)}return{instance:i,update:o}}},we={show:function(e){this.instance.update(Object(Ce["a"])(Object(Ce["a"])({},e),{},{visible:!0}))},hide:function(){this.instance.update({visible:!1})}},je=function(e,t){e.prototype.$loading||(we.instance=Ee.newInstance(e,t),e.prototype.$loading=we)},Le={version:Te,install:je},Re=n("3835"),Ie={add:{key:"add",label:"新增"},delete:{key:"delete",label:"删除"},edit:{key:"edit",label:"修改"},query:{key:"query",label:"查询"},get:{key:"get",label:"详情"},enable:{key:"enable",label:"启用"},disable:{key:"disable",label:"禁用"},import:{key:"import",label:"导入"},export:{key:"export",label:"导出"}};function ze(e){ze.installed||(!e.prototype.$auth&&Object.defineProperties(e.prototype,{$auth:{get:function(){var e=this;return function(t){var n=t.split("."),a=Object(Re["a"])(n,2),i=a[0],o=a[1],s=e.$store.getters.roles.permissions;return s.find((function(e){return e.permissionId===i})).actionList.findIndex((function(e){return e===o}))>-1}}}}),!e.prototype.$enum&&Object.defineProperties(e.prototype,{$enum:{get:function(){return function(e){var t=Ie;return e&&e.split(".").forEach((function(e){t=t&&t[e]||null})),t}}}}))}var Ae=ze;i.a.directive("action",{inserted:function(e,t,n){var a=t.arg,i=g["a"].getters.roles,o=n.context.$route.meta.permission,s=o instanceof String&&[o]||o;i.permissions.forEach((function(t){s.includes(t.permissionId)&&t.actionList&&!t.actionList.includes(a)&&(e.parentNode&&e.parentNode.removeChild(e)||(e.style.display="none"))}))}});ye.a.config.autoSetContainer=!0,i.a.use(Se["a"]),i.a.use(Le),i.a.use(C.a,k["a"].storageOptions),i.a.use(ye.a),i.a.use(Ae),i.a.use(xe.a);var Fe=n("323e"),Pe=n.n(Fe),Me=(n("fddb"),function(e){document.title=e;var t=navigator.userAgent,n=/\bMicroMessenger\/([\d\.]+)/;if(n.test(t)&&/ip(hone|od|ad)/i.test(t)){var a=document.createElement("iframe");a.src="/favicon.ico",a.style.display="none",a.onload=function(){setTimeout((function(){a.remove()}),9)},document.body.appendChild(a)}}),Ge="管理平台",De=n("0063"),Ke=n.n(De);Pe.a.configure({showSpinner:!1});var Be=["login","register","registerResult","wechat"];h["a"].beforeEach((function(e,t,n){if(Pe.a.start(),null===g["a"].getters.configinfo||"undefined"===typeof g["a"].getters.configinfo.version)g["a"].dispatch("getConfig").then((function(t){e.meta&&"undefined"!==typeof e.meta.title&&Me("".concat(e.meta.title," - ").concat(g["a"].getters.configinfo.platformname))}));else{var a=Ge;null!==g["a"].getters.configinfo&&"undefined"!==typeof g["a"].getters.configinfo.platformname&&(a=g["a"].getters.configinfo.platformname),e.meta&&"undefined"!==typeof e.meta.title&&Me("".concat(e.meta.title," - ").concat(a))}i.a.ls.get(y["a"])?"/user/login"===e.path?Pe.a.done():0===g["a"].getters.roles.length?(g["a"].dispatch("GetInfo").then((function(a){if(a.menus.length<1)ae["a"].error({title:"提示:",content:"无菜单权限,请联系管理员",okText:"确定",onOk:function(){g["a"].dispatch("Logout").then((function(){null!=t.query.info&&"undefined"!==typeof t.query.info?location.href=location.protocol+"//"+location.host+t.path+"?redirect="+t.query.redirect:window.location.reload()}))}});else{var o,s=i.a.ls.get(y["b"]);if(null==s){var r=[];if(a.apps.forEach((function(e){var t={code:"",name:"",active:"",menu:""};e.active?(t.code=e.code,t.name=e.name,t.active=e.active,t.menu=a.menus,o=a.menus):(t.code=e.code,t.name=e.name,t.active=e.active,t.menu=""),r.push(t)})),void 0===o){var c=Ke.a.from(r).first();c.active="Y",c.menu=a.menus,o=a.menus}i.a.ls.set(y["b"],r,6048e5),setTimeout((function(){A["a"].success({message:"欢迎",description:"".concat(Object(v["d"])(),",欢迎回来")})}),1e3)}else o=i.a.ls.get(y["b"])[0].menu;g["a"].dispatch("GenerateRoutes",{antDesignmenus:o}).then((function(){h["a"].addRoutes(g["a"].getters.addRouters);var a=decodeURIComponent(t.query.redirect||e.path);e.path===a?(n({path:a}),n(Object(Ce["a"])(Object(Ce["a"])({},e),{},{replace:!0}))):n({path:a})}))}})).catch((function(){g["a"].dispatch("Logout").then((function(){n({path:"/user/login",query:{redirect:e.fullPath}})}))})),g["a"].dispatch("getNoticReceiveList").then((function(e){})),g["a"].dispatch("getclientdata").then((function(e){}))):n():Be.includes(e.name)?n():(n({path:"/user/login",query:{redirect:e.fullPath}}),Pe.a.done())})),h["a"].afterEach((function(){Pe.a.done()}));var Ne=n("c1df"),qe=n.n(Ne);n("5c3a");qe.a.locale("zh-cn"),i.a.filter("NumberFormat",(function(e){if(!e)return"0";var t=e.toString().replace(/(\d)(?=(?:\d{3})+$)/g,"$1,");return t})),i.a.filter("moment",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD HH:mm:ss";return qe()(e).format(t)})),i.a.filter("Fmoney",(function(e){e=e.toString().replace(/\$|\,/g,""),isNaN(e)&&(e="0");var t=e==(e=Math.abs(e));e=Math.floor(100*e+.50000000001);var n=e%100;e=Math.floor(e/100).toString(),n<10&&(n="0"+n);for(var a=0;a-1}function Je(){return g["a"].getters.applocation}n("3aed");var Xe=n("6c29");i.a.use(Xe["a"]),i.a.use(b["a"]),i.a.use(Ue["d"]),i.a.prototype.hasPerm=He,i.a.prototype.applocation=Je,i.a.config.productionTip=!1,new i.a({router:h["a"],store:g["a"],created:x,render:function(e){return e(m)}}).$mount("#app")},5803:function(e,t,n){},5880:function(e,t){e.exports=Vuex},6135:function(e,t,n){"use strict";n.d(t,"d",(function(){return i})),n.d(t,"e",(function(){return o})),n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return c}));var a=n("b775");function i(e){return Object(a["b"])({url:"/login",method:"post",data:e})}function o(e){return Object(a["b"])({url:"/logout",method:"get",params:e})}function s(e){return Object(a["b"])({url:"/getLoginUser",method:"get",params:e})}function r(e){return Object(a["b"])({url:"/api/wxopen/sendcode",method:"get",params:e})}function c(e){return Object(a["b"])({url:"/getCaptchaOpen",method:"get",params:e})}},6254:function(e,t,n){},6389:function(e,t){e.exports=VueRouter},6597:function(e,t,n){"use strict";n.d(t,"c",(function(){return i})),n.d(t,"e",(function(){return o})),n.d(t,"b",(function(){return s})),n.d(t,"d",(function(){return r})),n.d(t,"a",(function(){return c})),n.d(t,"f",(function(){return l}));var a=n("b775");function i(e){return Object(a["b"])({url:"/sysFileInfo/page",method:"get",params:e})}function o(e){return Object(a["b"])({url:"/sysFileInfo/upload",method:"post",data:e})}function s(e){return Object(a["b"])({url:"/sysFileInfo/download",method:"get",params:e,responseType:"blob"})}function r(e){return Object(a["b"])({url:"/sysFileInfo/preview",method:"get",params:e,responseType:"arraybuffer"})}function c(e){return Object(a["b"])({url:"/sysFileInfo/delete",method:"post",data:e})}function l(e){return Object(a["b"])({url:"/sysFileInfo/uploadAvatar",method:"post",data:e})}},"67d1":function(e,t,n){"use strict";n("6842")},"680a":function(e,t,n){"use strict";n.d(t,"f",(function(){return g})),n.d(t,"a",(function(){return _e})),n.d(t,"b",(function(){return S})),n.d(t,"e",(function(){return d})),n.d(t,"d",(function(){return bt})),n.d(t,"c",(function(){return xt}));var a,i,o=function(){var e=this,t=e._self._c;return t("div",{class:["user-layout-wrapper",e.device],attrs:{id:"userLayout"}},[t("div",{staticClass:"container"},[t("div",{staticClass:"top"},[t("div",{staticClass:"header"},[t("a",{attrs:{href:"/"}},[e.customlogo?e._e():t("img",{staticClass:"logo",attrs:{src:n("cf05"),alt:"logo"}}),e.customlogo?t("img",{staticClass:"logo",attrs:{alt:"logo",src:e.logo}}):e._e(),t("span",{staticClass:"title"},[e._v(e._s(e.$store.getters.configinfo.platformname))])])]),t("div",{staticClass:"desc"})]),t("route-view"),t("div",{staticClass:"footer"},[t("div",{staticClass:"copyright"},[e._v(" Copyright © 2025 "),t("a",[e._v(e._s(e.$store.getters.configinfo.copyright))]),e._v(" "+e._s(e.$store.getters.configinfo.version)+" ")])])],1)])},s=[],r={name:"RouteView",props:{keepAlive:{type:Boolean,default:!0}},data:function(){return{}},render:function(){var e=arguments[0],t=this.$route.meta,n=this.$store.getters,a=e("keep-alive",[e("router-view")]),i=e("router-view");return(n.multiTab||t.keepAlive)&&(this.keepAlive||n.multiTab||t.keepAlive)?a:i}},c=r,l=n("2877"),u=Object(l["a"])(c,a,i,!1,null,null,null),d=u.exports,f=n("ac0d"),p={name:"UserLayout",components:{RouteView:d},mixins:[f["c"]],data:function(){return{customlogo:!(!this.$store.getters.configinfo.logo||""===this.$store.getters.configinfo.logo),logo:this.$store.getters.configinfo.logo}},mounted:function(){document.body.classList.add("userLayout")},beforeDestroy:function(){document.body.classList.remove("userLayout")}},m=p,h=(n("f3ba"),Object(l["a"])(m,o,s,!1,null,"6947dc62",null)),g=h.exports,b=function(){var e=this,t=e._self._c;return t("div",[t("router-view")],1)},v=[],y={name:"BlankLayout"},k=y,x=Object(l["a"])(k,b,v,!1,null,"7f25f9eb",null),S=x.exports,C=function(){var e=this,t=e._self._c;return t("a-layout",{class:["layout",e.device]},[e.isMobile()?t("a-drawer",{attrs:{placement:"left",wrapClassName:"drawer-sider ".concat(e.navTheme),closable:!1,visible:e.collapsed},on:{close:e.drawerClose}},[t("side-menu",{attrs:{mode:"inline",menus:e.menus,theme:e.navTheme,collapsed:!1,collapsible:!0},on:{menuSelect:e.menuSelect}})],1):e.isSideMenu()?t("side-menu",{attrs:{mode:"inline",menus:e.menus,theme:e.navTheme,collapsed:e.collapsed,collapsible:!0}}):e._e(),t("a-layout",{class:[e.layoutMode,"content-width-".concat(e.contentWidth)],style:{paddingLeft:e.contentPaddingLeft,minHeight:"100vh"}},[t("global-header",{attrs:{mode:e.layoutMode,menus:e.menus,theme:e.navTheme,collapsed:e.collapsed,device:e.device},on:{toggle:e.toggle}}),t("a-layout-content",{style:{height:"100%",margin:"24px 24px 0",paddingTop:e.fixedHeader?"55px":"0"}},[e.multiTab?t("multi-tab"):e._e(),t("transition",{attrs:{name:"page-transition"}},[t("route-view")],1)],1),t("a-layout-footer",[t("global-footer")],1),e.production?e._e():t("setting-drawer")],1)],1)},O=[],T=n("5530"),E=(n("7db0"),n("d3b7"),n("ca00")),w=n("5880"),j=n("e819"),L=function(){var e=this,t=e._self._c;return t("a-layout-sider",{class:["sider",e.isDesktop()?null:"shadow",e.theme,e.fixSiderbar?"ant-fixed-sidemenu":null],attrs:{width:"230px",collapsible:e.collapsible,trigger:null},model:{value:e.collapsed,callback:function(t){e.collapsed=t},expression:"collapsed"}},[t("logo",{attrs:{customlogo:e.customlogo,logo:e.$store.getters.configinfo.logo,title:e.$store.getters.configinfo.platformname}}),t("s-menu",{attrs:{collapsed:e.collapsed,menu:e.menus,theme:e.theme,mode:e.mode},on:{select:e.onSelect}})],1)},R=[],I=function(){var e=this,t=e._self._c;return t("div",{staticClass:"logo"},[t("router-link",{attrs:{to:{name:"Console"}}},[e.customlogo?e._e():t("LogoSvg",{attrs:{alt:"logo"}}),e.customlogo?t("img",{staticStyle:{width:"32px",height:"32px"},attrs:{alt:"logo",src:e.logo}}):e._e(),e.showTitle?t("h1",{staticStyle:{"white-space":"nowrap","text-overflow":"ellipsis",overflow:"hidden","max-width":"160px"},attrs:{title:e.titles}},[e._v(e._s(this.titles))]):e._e()],1)],1)},z=[],A=n("8eeb4"),F=n.n(A),P={name:"Logo",components:{LogoSvg:F.a},mixins:[f["b"],f["c"]],data:function(){return{titles:""}},props:{logo:{type:String,default:"",required:!1},customlogo:{type:Boolean,default:!1,required:!1},title:{type:String,default:"管理平台",required:!1},showTitle:{type:Boolean,default:!0,required:!1}},created:function(){"topmenu"===this.layoutMode?this.title.length>8?this.titles=this.title.substring(0,8)+"...":this.titles=this.title:this.title.length>10?this.titles=this.title.substring(0,8)+"...":this.titles=this.title}},M=P,G=Object(l["a"])(M,I,z,!1,null,null,null),D=G.exports,K=n("2638"),B=n.n(K),N=n("53ca"),q=(n("159b"),n("99af"),n("caad"),n("2532"),n("b0c0"),n("d81d"),n("55f1")),U=n("0c63"),H={name:"SMenu",props:{menu:{type:Array,required:!0},theme:{type:String,required:!1,default:"dark"},mode:{type:String,required:!1,default:"inline"},collapsed:{type:Boolean,required:!1,default:!1}},data:function(){return{openKeys:[],selectedKeys:[],cachedOpenKeys:[]}},computed:{rootSubmenuKeys:function(e){var t=[];return e.menu.forEach((function(e){return t.push(e.path)})),t}},mounted:function(){this.updateMenu()},watch:{collapsed:function(e){e?(this.cachedOpenKeys=this.openKeys.concat(),this.openKeys=[]):this.openKeys=this.cachedOpenKeys},$route:function(){this.updateMenu()}},methods:{onOpenChange:function(e){var t=this;if("horizontal"!==this.mode){var n=e.find((function(e){return!t.openKeys.includes(e)}));this.rootSubmenuKeys.includes(n)?this.openKeys=n?[n]:[]:this.openKeys=e}else this.openKeys=e},onSelect:function(e){var t=e.item,n=e.key,a=e.selectedKeys;this.selectedKeys=a,this.$emit("select",{item:t,key:n,selectedKeys:a})},updateMenu:function(){var e=this.$route.matched.concat(),t=this.$route.meta.hidden;e.length>=3&&t?(e.pop(),this.selectedKeys=[e[e.length-1].path]):this.selectedKeys=[e.pop().path];var n=[];"inline"===this.mode&&e.forEach((function(e){n.push(e.path)})),this.collapsed?this.cachedOpenKeys=n:this.openKeys=n},renderItem:function(e){return e.hidden?null:e.children&&!e.hideChildrenInMenu?this.renderSubMenu(e):this.renderMenuItem(e)},renderMenuItem:function(e){var t=this.$createElement,n=e.meta.target||null,a=n?"a":"router-link",i={to:{name:e.name}},o={href:e.path,target:e.meta.target};return e.children&&e.hideChildrenInMenu&&e.children.forEach((function(e){e.meta=Object.assign(e.meta,{hidden:!0})})),t(q["a"].Item,B()([{},{key:e.path}]),[t(a,{props:Object(T["a"])({},i),attrs:Object(T["a"])({},o)},[this.renderIcon(e.meta.icon),t("span",[e.meta.title])])])},renderSubMenu:function(e){var t=this,n=this.$createElement,a=[];return e.hideChildrenInMenu||e.children.forEach((function(e){return a.push(t.renderItem(e))})),n(q["a"].SubMenu,B()([{},{key:e.path}]),[n("span",{slot:"title"},[this.renderIcon(e.meta.icon),n("span",[e.meta.title])]),a])},renderIcon:function(e){var t=this.$createElement;if("none"===e||void 0===e)return null;var n={};return"object"===Object(N["a"])(e)?n.component=e:n.type=e,t(U["a"],{props:Object(T["a"])({},n)})}},render:function(){var e=this,t=arguments[0],n={props:{mode:this.mode,theme:this.theme,openKeys:this.openKeys,selectedKeys:this.selectedKeys},on:{openChange:this.onOpenChange,select:this.onSelect}},a=this.menu.map((function(t){return t.hidden?null:e.renderItem(t)}));return t(q["a"],B()([{},n]),[a])}},J=H,X={name:"SideMenu",components:{Logo:D,SMenu:J},mixins:[f["b"],f["c"]],data:function(){return{customlogo:!(!this.$store.getters.configinfo.logo||""===this.$store.getters.configinfo.logo)}},props:{mode:{type:String,required:!1,default:"inline"},theme:{type:String,required:!1,default:"dark"},collapsible:{type:Boolean,required:!1,default:!1},collapsed:{type:Boolean,required:!1,default:!1},menus:{type:Array,required:!0}},methods:{onSelect:function(e){this.$emit("menuSelect",e)}}},Z=X,Q=Object(l["a"])(Z,L,R,!1,null,null,null),V=Q.exports,Y=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"showHeader"}},[e.visible?t("div",{staticClass:"header-animat"},[e.visible?t("a-layout-header",{class:[e.fixedHeader&&"ant-header-fixedHeader",e.sidebarOpened?"ant-header-side-opened":"ant-header-side-closed"],style:{padding:"0",height:"55px"}},["sidemenu"===e.mode?t("div",{staticClass:"header"},[t("a-menu",{staticStyle:{height:"55px","border-bottom":"0px"},attrs:{mode:"horizontal","default-selected-keys":this.defApp}},["mobile"===e.device?t("a-icon",{staticClass:"trigger",attrs:{type:e.collapsed?"menu-fold":"menu-unfold"},on:{click:e.toggle}}):t("a-icon",{staticClass:"trigger",staticStyle:{"padding-left":"20px","padding-right":"20px"},attrs:{type:e.collapsed?"menu-unfold":"menu-fold"},on:{click:e.toggle}}),e._l(e.userInfo.apps,(function(n){return t("a-menu-item",{key:n.code,staticStyle:{top:"0px","line-height":"55px","padding-left":"10px","padding-right":"10px"},on:{click:function(t){return e.switchApp(n.code)}}},[e._v(" "+e._s(n.name)+" ")])})),t("user-menu")],2)],1):t("div",{class:["top-nav-header-index",e.theme]},[t("div",{staticClass:"header-index-wide"},[t("div",{staticClass:"header-index-left"},[t("logo",{staticClass:"top-nav-header",attrs:{"show-title":"mobile"!==e.device}}),"mobile"!==e.device?t("s-menu",{attrs:{mode:"horizontal",menu:e.menus,theme:e.theme}}):t("a-icon",{staticClass:"trigger",attrs:{type:e.collapsed?"menu-fold":"menu-unfold"},on:{click:e.toggle}})],1),t("user-menu",{staticClass:"header-index-right"})],1)])]):e._e()],1):e._e()])},W=[],_=(n("4de4"),function(){var e=this,t=e._self._c;return t("div",{staticClass:"user-wrapper"},[t("div",{staticClass:"content-box"},[t("span",{staticClass:"action",on:{click:e.toggleFullscreen}},[e.isFullscreen?t("a-icon",{attrs:{type:"fullscreen-exit"}}):t("a-icon",{attrs:{type:"fullscreen"}})],1),e.hasPerm("sysNotice:received")?t("notice-icon",{staticClass:"action"}):e._e(),t("a-dropdown",[t("span",{staticClass:"action ant-dropdown-link user-dropdown-menu"},[t("a-avatar",{staticClass:"avatar",attrs:{size:"small",src:e.avatar}}),t("span",[e._v(e._s(e.nickname))])],1),t("a-menu",{staticClass:"user-dropdown-menu-wrapper",attrs:{slot:"overlay"},slot:"overlay"},["sidemenu"===e.mode?t("a-menu-item",{key:"4"},[t("a",{on:{click:function(t){return e.appToggled()}}},[t("a-icon",{attrs:{type:"swap"}}),t("span",[e._v("切换应用")])],1)]):e._e(),t("a-menu-item",{key:"1"},[t("router-link",{attrs:{to:{name:"settings"}}},[t("a-icon",{attrs:{type:"setting"}}),t("span",[e._v("账户设置")])],1)],1),t("a-menu-divider"),t("a-menu-item",{key:"3"},[t("a",{attrs:{href:"javascript:;"},on:{click:e.handleLogout}},[t("a-icon",{attrs:{type:"logout"}}),t("span",[e._v("退出登录")])],1)])],1)],1)],1),t("a-modal",{attrs:{title:"切换应用",visible:e.visible,footer:null,"confirm-loading":e.confirmLoading},on:{cancel:e.handleCancel}},[t("a-form",{attrs:{form:e.form1}},[t("a-form-item",{attrs:{labelCol:e.labelCol,wrapperCol:e.wrapperCol,label:"选择应用"}},[t("a-menu",{staticStyle:{"border-bottom":"0px",lineHeight:"55px"},attrs:{mode:"inline","default-selected-keys":this.defApp}},e._l(e.userInfo.apps,(function(n){return t("a-menu-item",{key:n.code,staticStyle:{top:"0px"},on:{click:function(t){return e.switchApp(n.code)}}},[e._v(" "+e._s(n.name)+" ")])})),1)],1)],1)],1)],1)}),$=[],ee=n("c7eb"),te=n("1da1"),ne=n("93bf"),ae=n.n(ne),ie=function(){var e=this,t=e._self._c;return t("a-popover",{attrs:{trigger:"click",placement:"bottomRight",overlayClassName:"header-notice-wrapper",getPopupContainer:function(){return e.$refs.noticeRef.parentElement},autoAdjustOverflow:!0,arrowPointAtCenter:!0,overlayStyle:{width:"300px",top:"50px"}},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},[t("template",{slot:"content"},[t("a-spin",{attrs:{spinning:e.loading}},[t("a-tabs",e._l(e.userNotices.rows,(function(n){return t("a-tab-pane",{key:n.key,attrs:{tab:n.key}},[t("a-list",[e._l(n.noticedata.filter((function(e){return e.type==n.value})),(function(n,a){return t("a-list-item",{key:a},[t("a-list-item-meta",{attrs:{title:n.title,description:n.publicTime}},[t("a-avatar",{staticStyle:{"background-color":"white"},attrs:{slot:"avatar",src:e.noticeImg},slot:"avatar"})],1)],1)})),n.noticedata.filter((function(e){return e.type==n.value})).length>0?t("a-list-item",{staticStyle:{display:"block","text-align":"center"}},[t("a-button",{attrs:{type:"link"},on:{click:function(t){return e.goMore()}}},[e._v("去处理")])],1):e._e()],2)],1)})),1)],1)],1),t("span",{ref:"noticeRef",staticClass:"header-notice",staticStyle:{padding:"0 18px"},on:{click:e.fetchNotice}},[t("a-badge",{attrs:{count:e.userNotices.totalrows}},[t("a-icon",{staticStyle:{"font-size":"16px",padding:"4px"},attrs:{type:"bell"}})],1)],1)],2)},oe=[],se=n("818f"),re=n.n(se),ce={name:"HeaderNotice",data:function(){return{loading:!1,visible:!1,noticeImg:re.a}},mounted:function(){},computed:Object(T["a"])({},Object(w["mapGetters"])(["userNotices"])),methods:{fetchNotice:function(){this.visible=!this.visible},goMore:function(){this.visible=!this.visible,this.$router.push("/noticeReceived")}}},le=ce,ue=(n("235a"),n("ca65"),Object(l["a"])(le,ie,oe,!1,null,"502fd791",null)),de=ue.exports,fe=de,pe=n("9fb0"),me=n("8bbf"),he=n.n(me),ge=n("f64c");function be(e){he.a.socket.invoke("ClientsSendMessagetoAll",{title:e.title,message:e.message,messagetype:e.messagetype}).then((function(e){}))}var ve={name:"UserMenu",components:{NoticeIcon:fe,screenfull:ae.a},props:{mode:{type:String,default:"sidemenu"}},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},wrapperCol:{xs:{span:24},sm:{span:16}},visible:!1,confirmLoading:!1,form1:this.$form.createForm(this),defApp:[],isFullscreen:!1}},computed:Object(T["a"])({},Object(w["mapGetters"])(["token","nickname","avatar","userInfo"])),mounted:function(){return Object(te["a"])(Object(ee["a"])().mark((function e(){return Object(ee["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})))()},methods:Object(T["a"])(Object(T["a"])({},Object(w["mapActions"])(["Logout","MenuChange"])),{},{handleLogout:function(){var e=this;this.$confirm({title:"提示",content:"真的要注销登录吗 ?",okText:"确定",cancelText:"取消",onOk:function(){return e.Logout({}).then((function(){setTimeout((function(){window.location.reload()}),16)})).catch((function(t){e.$myerror({title:"错误",description:t.message})}))},onCancel:function(){}})},appToggled:function(){this.visible=!0,this.defApp.push(he.a.ls.get(pe["b"])[0].code)},switchApp:function(e){this.visible=!1,this.defApp=[];var t=this.userInfo.apps.filter((function(t){return t.code===e})),n=ge["a"].loading("正在切换应用!",0);this.MenuChange(t[0]).then((function(e){n()})).catch((function(e){ge["a"].error("应用切换异常"+e)}))},handleCancel:function(){this.form1.resetFields(),this.visible=!1},toggleFullscreen:function(){ae.a.isEnabled?(ae.a.toggle(),ae.a.isFullscreen?this.isFullscreen=!1:this.isFullscreen=!0):ge["a"].error("您的浏览器不支持全屏模式")},sendMessage:function(){be(Object.assign({title:"测试标题",message:"这是消息内容",messagetype:1}))}}),sockets:{ReceiveMessage:function(e){switch(e.messagetype){case 0:this.$notification.info({message:e.title,description:e.message,placement:"bottomRight",duration:null});break;case 1:this.$notification.success({message:e.title,description:e.message,placement:"bottomRight",duration:null});break;case 2:this.$notification.warning({message:e.title,description:e.message,placement:"bottomRight",duration:null});break;case 3:this.$notification.error({message:e.title,description:e.message,placement:"bottomRight",duration:null});break}}}},ye=ve,ke=(n("db3e"),Object(l["a"])(ye,_,$,!1,null,"6755ad7a",null)),xe=ke.exports,Se=n("0063"),Ce=n.n(Se),Oe={name:"GlobalHeader",components:{UserMenu:xe,SMenu:J,Logo:D},computed:Object(T["a"])({},Object(w["mapGetters"])(["userInfo"])),created:function(){var e=Ce.a.from(he.a.ls.get(pe["b"])).firstOrDefault((function(e){return"Y"===e.active}));void 0!==e&&this.defApp.push(e.code)},mixins:[f["b"]],props:{mode:{type:String,default:"sidemenu"},menus:{type:Array,required:!0},theme:{type:String,required:!1,default:"dark"},collapsed:{type:Boolean,required:!1,default:!1},device:{type:String,required:!1,default:"desktop"}},data:function(){return{visible:!0,oldScrollTop:0,defApp:[]}},mounted:function(){document.addEventListener("scroll",this.handleScroll,{passive:!0})},methods:Object(T["a"])(Object(T["a"])({},Object(w["mapActions"])(["MenuChange"])),{},{switchApp:function(e){this.defApp=[];var t=this.userInfo.apps.filter((function(t){return t.code===e})),n=ge["a"].loading("正在切换应用!",0);this.MenuChange(t[0]).then((function(e){n()})).catch((function(e){ge["a"].error("应用切换异常")}))},handleScroll:function(){var e=this;if(this.autoHideHeader){var t=document.body.scrollTop+document.documentElement.scrollTop;this.ticking||(this.ticking=!0,requestAnimationFrame((function(){e.oldScrollTop>t?e.visible=!0:t>300&&e.visible?e.visible=!1:t<300&&!e.visible&&(e.visible=!0),e.oldScrollTop=t,e.ticking=!1})))}},toggle:function(){this.$emit("toggle")}}),beforeDestroy:function(){document.body.removeEventListener("scroll",this.handleScroll,!0)}},Te=Oe,Ee=(n("90db"),Object(l["a"])(Te,Y,W,!1,null,null,null)),we=Ee.exports,je=we,Le=function(){var e=this,t=e._self._c;return t("div",{staticClass:"footer"},[t("div",{staticClass:"links"}),t("div",{staticClass:"copyright"},[e._v(" Copyright © 2025 "),t("a",[e._v(e._s(e.$store.getters.configinfo.copyright))]),e._v(" "+e._s(e.$store.getters.configinfo.version)+" ")])])},Re=[],Ie={name:"GlobalFooter",data:function(){return{}}},ze=Ie,Ae=(n("6f58"),Object(l["a"])(ze,Le,Re,!1,null,"9b8348a4",null)),Fe=Ae.exports,Pe=Fe,Me=function(){var e=this,t=e._self._c;return t("div",{staticClass:"setting-drawer"},[t("a-drawer",{staticStyle:{"z-index":"999"},attrs:{width:"300",placement:"right",closable:!1,visible:e.visible,"drawer-style":{position:"absolute"}},on:{close:e.onClose}},[t("div",{staticClass:"setting-drawer-index-content"},[t("div",{style:{marginBottom:"24px"}},[t("h3",{staticClass:"setting-drawer-index-title"},[e._v("整体风格设置")]),t("div",{staticClass:"setting-drawer-index-blockChecbox"},[t("a-tooltip",[t("template",{slot:"title"},[e._v(" 暗色菜单风格 ")]),t("div",{staticClass:"setting-drawer-index-item",on:{click:function(t){return e.handleMenuTheme("dark")}}},[t("img",{attrs:{src:"https://gw.alipayobjects.com/zos/rmsportal/LCkqqYNmvBEbokSDscrm.svg",alt:"dark"}}),"dark"===e.navTheme?t("div",{staticClass:"setting-drawer-index-selectIcon"},[t("a-icon",{attrs:{type:"check"}})],1):e._e()])],2),t("a-tooltip",[t("template",{slot:"title"},[e._v(" 亮色菜单风格 ")]),t("div",{staticClass:"setting-drawer-index-item",on:{click:function(t){return e.handleMenuTheme("light")}}},[t("img",{attrs:{src:"https://gw.alipayobjects.com/zos/rmsportal/jpRkZQMyYRryryPNtyIC.svg",alt:"light"}}),"dark"!==e.navTheme?t("div",{staticClass:"setting-drawer-index-selectIcon"},[t("a-icon",{attrs:{type:"check"}})],1):e._e()])],2)],1)]),t("div",{style:{marginBottom:"24px"}},[t("h3",{staticClass:"setting-drawer-index-title"},[e._v("主题色")]),t("div",{staticStyle:{height:"20px"}},e._l(e.colorList,(function(n,a){return t("a-tooltip",{key:a,staticClass:"setting-drawer-theme-color-colorBlock"},[t("template",{slot:"title"},[e._v(" "+e._s(n.key)+" ")]),t("a-tag",{attrs:{color:n.color},on:{click:function(t){return e.changeColor(n.color)}}},[n.color===e.primaryColor?t("a-icon",{attrs:{type:"check"}}):e._e()],1)],2)})),1)]),t("a-divider"),t("div",{style:{marginBottom:"24px"}},[t("h3",{staticClass:"setting-drawer-index-title"},[e._v("导航模式")]),t("div",{staticClass:"setting-drawer-index-blockChecbox"},[t("a-tooltip",[t("template",{slot:"title"},[e._v(" 侧边栏导航 ")]),t("div",{staticClass:"setting-drawer-index-item",on:{click:function(t){return e.handleLayout("sidemenu")}}},[t("img",{attrs:{src:"https://gw.alipayobjects.com/zos/rmsportal/JopDzEhOqwOjeNTXkoje.svg",alt:"sidemenu"}}),"sidemenu"===e.layoutMode?t("div",{staticClass:"setting-drawer-index-selectIcon"},[t("a-icon",{attrs:{type:"check"}})],1):e._e()])],2),t("a-tooltip",[t("template",{slot:"title"},[e._v(" 顶部栏导航 ")]),t("div",{staticClass:"setting-drawer-index-item",on:{click:function(t){return e.handleLayout("topmenu")}}},[t("img",{attrs:{src:"https://gw.alipayobjects.com/zos/rmsportal/KDNDBbriJhLwuqMoxcAr.svg",alt:"topmenu"}}),"sidemenu"!==e.layoutMode?t("div",{staticClass:"setting-drawer-index-selectIcon"},[t("a-icon",{attrs:{type:"check"}})],1):e._e()])],2)],1),t("div",{style:{marginTop:"24px"}},[t("a-list",{attrs:{split:!1}},[t("a-list-item",[t("a-tooltip",{attrs:{slot:"actions"},slot:"actions"},[t("template",{slot:"title"},[e._v(" 该设定仅 [顶部栏导航] 时有效 ")]),t("a-select",{staticStyle:{width:"80px"},attrs:{size:"small",defaultValue:e.contentWidth},on:{change:e.handleContentWidthChange}},[t("a-select-option",{attrs:{value:"Fixed"}},[e._v("固定")]),"sidemenu"!==e.layoutMode?t("a-select-option",{attrs:{value:"Fluid"}},[e._v("流式")]):e._e()],1)],2),t("a-list-item-meta",[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("内容区域宽度")])])],1),t("a-list-item",[t("a-switch",{attrs:{slot:"actions",size:"small",defaultChecked:e.fixedHeader},on:{change:e.handleFixedHeader},slot:"actions"}),t("a-list-item-meta",[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("固定 Header")])])],1),t("a-list-item",[t("a-switch",{attrs:{slot:"actions",size:"small",disabled:!e.fixedHeader,defaultChecked:e.autoHideHeader},on:{change:e.handleFixedHeaderHidden},slot:"actions"}),t("a-list-item-meta",[t("a-tooltip",{attrs:{slot:"title",placement:"left"},slot:"title"},[t("template",{slot:"title"},[e._v("固定 Header 时可配置")]),t("div",{style:{opacity:e.fixedHeader?"1":"0.5"}},[e._v("下滑时隐藏 Header")])],2)],1)],1),t("a-list-item",[t("a-switch",{attrs:{slot:"actions",size:"small",disabled:"topmenu"===e.layoutMode,defaultChecked:e.fixSiderbar},on:{change:e.handleFixSiderbar},slot:"actions"}),t("a-list-item-meta",[t("div",{style:{textDecoration:"topmenu"===e.layoutMode?"line-through":"unset"},attrs:{slot:"title"},slot:"title"},[e._v("固定侧边菜单")])])],1)],1)],1)]),t("a-divider"),t("div",{style:{marginBottom:"24px"}},[t("h3",{staticClass:"setting-drawer-index-title"},[e._v("其他设置")]),t("div",[t("a-list",{attrs:{split:!1}},[t("a-list-item",[t("a-switch",{attrs:{slot:"actions",size:"small",defaultChecked:e.colorWeak},on:{change:e.onColorWeak},slot:"actions"}),t("a-list-item-meta",[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("色弱模式")])])],1),t("a-list-item",[t("a-switch",{attrs:{slot:"actions",size:"small",defaultChecked:e.multiTab},on:{change:e.onMultiTab},slot:"actions"}),t("a-list-item-meta",[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("多页签模式")])])],1),t("a-list-item",[t("a-switch",{attrs:{slot:"actions",size:"small",defaultChecked:e.crumbsState},on:{change:e.onCrumbs},slot:"actions"}),t("a-list-item-meta",[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("显示面包屑")])])],1)],1)],1)]),t("a-divider"),t("div",{style:{marginBottom:"24px"}},[t("a-button",{attrs:{icon:"copy",block:""},on:{click:e.doCopy}},[e._v("拷贝设置")]),t("a-alert",{style:{marginTop:"24px"},attrs:{type:"warning"}},[t("span",{attrs:{slot:"message"},slot:"message"},[e._v(" 配置栏只在开发环境用于预览,生产环境不会展现,请手动修改配置文件。修改配置文件后,需要清空本地缓存和LocalStorage "),t("a",{attrs:{href:"https://github.com/sendya/ant-design-pro-vue/blob/master/src/config/defaultSettings.js",target:"_blank"}},[e._v("src/config/defaultSettings.js")])])])],1)],1),t("div",{staticClass:"setting-drawer-index-handle",attrs:{slot:"handle"},on:{click:e.toggle},slot:"handle"},[e.visible?t("a-icon",{attrs:{type:"close"}}):t("a-icon",{attrs:{type:"setting"}})],1)])],1)},Ge=[],De=n("c4ef"),Ke={components:{},mixins:[f["b"],f["c"]],data:function(){return{visible:!1,colorList:De["a"]}},watch:{},mounted:function(){Object(De["c"])(this.primaryColor),this.colorWeak!==j["a"].colorWeak&&Object(De["b"])(this.colorWeak)},methods:{showDrawer:function(){this.visible=!0},onClose:function(){this.visible=!1},toggle:function(){this.visible=!this.visible},onColorWeak:function(e){this.$store.dispatch("ToggleWeak",e),Object(De["b"])(e)},onMultiTab:function(e){this.$store.dispatch("ToggleMultiTab",e)},onCrumbs:function(e){this.$store.dispatch("ToggleCrumbsState",e)},handleMenuTheme:function(e){this.$store.dispatch("ToggleTheme",e)},doCopy:function(){var e=this,t="export default {\n primaryColor: '".concat(this.primaryColor,"', // primary color of ant design\n navTheme: '").concat(this.navTheme,"', // theme for nav menu\n layout: '").concat(this.layoutMode,"', // nav menu position: sidemenu or topmenu\n contentWidth: '").concat(this.contentWidth,"', // layout of content: Fluid or Fixed, only works when layout is topmenu\n fixedHeader: ").concat(this.fixedHeader,", // sticky header\n fixSiderbar: ").concat(this.fixSiderbar,", // sticky siderbar\n autoHideHeader: ").concat(this.autoHideHeader,", // auto hide header\n colorWeak: ").concat(this.colorWeak,",\n multiTab: ").concat(this.multiTab,",\n crumbsState: ").concat(this.crumbsState,",\n production: process.env.NODE_ENV === 'production' && process.env.VUE_APP_PREVIEW !== 'true',\n // vue-ls options\n storageOptions: {\n namespace: 'pro__',\n name: 'ls',\n storage: 'local',\n }\n}");this.$copyText(t).then((function(t){e.$message.success("复制完毕")})).catch((function(t){e.$myerror("复制失败")}))},handleLayout:function(e){this.$store.dispatch("ToggleLayoutMode",e),this.handleFixSiderbar(!1)},handleContentWidthChange:function(e){this.$store.dispatch("ToggleContentWidth",e)},changeColor:function(e){this.primaryColor!==e&&(this.$store.dispatch("ToggleColor",e),Object(De["c"])(e))},handleFixedHeader:function(e){this.$store.dispatch("ToggleFixedHeader",e)},handleFixedHeaderHidden:function(e){this.$store.dispatch("ToggleFixedHeaderHidden",e)},handleFixSiderbar:function(e){"topmenu"!==this.layoutMode?this.$store.dispatch("ToggleFixSiderbar",e):this.$store.dispatch("ToggleFixSiderbar",!1)}}},Be=Ke,Ne=(n("7979"),Object(l["a"])(Be,Me,Ge,!1,null,"01e25c20",null)),qe=Ne.exports,Ue=qe,He=(n("2ca0"),n("ac1f"),n("5319"),n("cd3f")),Je=n.n(He);function Xe(e){if(!e)return null;e=Je()(e);var t=Array.isArray(e)?e.concat():[e];while(t.length)for(var n=t.length,a=function(){var e=t.shift();if(!e.children||!e.children.length)return"continue";e.children.forEach((function(t){"/"===t.path[0]||t.path.startsWith("http")||(t.path=e.path.replace(/(\w*)[/]*$/,"$1/".concat(t.path)))})),t=t.concat(e.children)},i=0;i-1&&this.$nextTick((function(){e.collapsed=!e.collapsed,setTimeout((function(){e.collapsed=!e.collapsed}),16)}))},methods:Object(T["a"])(Object(T["a"])({},Object(w["mapActions"])(["setSidebar"])),{},{setMenus:function(){var e=Xe(this.mainMenu.find((function(e){return"/"===e.path})));this.menus=e&&e.children||[]},toggle:function(){this.collapsed=!this.collapsed,this.setSidebar(!this.collapsed),Object(E["e"])()},paddingCalc:function(){var e="";return e=this.sidebarOpened?this.isDesktop()?"230px":"80px":(this.isMobile()?"0":this.fixSidebar&&"80px")||"0",e},menuSelect:function(){},drawerClose:function(){this.collapsed=!1}})},Ye=Ve,We=(n("b7ce"),Object(l["a"])(Ye,C,O,!1,null,null,null)),_e=We.exports,$e=(n("a4d3"),n("e01a"),n("841c"),function(){var e=this,t=e._self._c;return t("div",{style:e.$route.meta.hiddenHeaderContent?null:"margin: -24px -24px 0px;"},[e.$route.meta.hiddenHeaderContent?e._e():t("page-header",{attrs:{title:e.pageTitle,logo:e.logo,avatar:e.avatar}},[e._t("action",null,{slot:"action"}),e._t("headerContent",null,{slot:"content"}),!this.$slots.headerContent&&e.description?t("div",{attrs:{slot:"content"},slot:"content"},[t("p",{staticStyle:{"font-size":"14px",color:"rgba(0,0,0,.65)"}},[e._v(e._s(e.description))]),t("div",{staticClass:"link"})]):e._e(),e._t("extra",(function(){return[t("div",{staticClass:"extra-img"},["undefined"!==typeof e.extraImage?t("img",{attrs:{src:e.extraImage}}):e._e()])]}),{slot:"extra"}),t("div",{attrs:{slot:"pageMenu"},slot:"pageMenu"},[e.search?t("div",{staticClass:"page-menu-search"},[t("a-input-search",{staticStyle:{width:"80%","max-width":"522px"},attrs:{placeholder:"请输入...",size:"large",enterButton:"搜索"}})],1):e._e(),e.tabs&&e.tabs.items?t("div",{staticClass:"page-menu-tabs"},[t("a-tabs",{attrs:{tabBarStyle:{margin:0},activeKey:e.tabs.active()},on:{change:e.tabs.callback}},e._l(e.tabs.items,(function(e){return t("a-tab-pane",{key:e.key,attrs:{tab:e.title}})})),1)],1):e._e()])],2),t("div",{staticClass:"content"},[t("div",{staticClass:"page-header-index-wide"},[e._t("default",(function(){return[e.multiTab?t("keep-alive",[t("router-view",{ref:"content"})],1):t("router-view",{ref:"content",staticStyle:{margin:"-12px -14px 0"}})]}))],2)])],1)}),et=[],tt=function(){var e=this,t=e._self._c;return t("div",{staticClass:"page-header"},[t("div",{staticClass:"page-header-index-wide"},[e.crumbsState?t("s-breadcrumb"):e._e(),t("div",{staticClass:"detail"},[e.$route.meta.hiddenHeaderContent?e._e():t("div",{staticClass:"main"},[t("div",{staticClass:"row"},[e.logo?t("img",{staticClass:"logo",attrs:{src:e.logo}}):e._e(),e.title?t("h1",{staticClass:"title"},[e._v(e._s(e.title))]):e._e(),t("div",{staticClass:"action"},[e._t("action")],2)]),t("div",{staticClass:"row"},[e.avatar?t("div",{staticClass:"avatar"},[t("a-avatar",{attrs:{src:e.avatar}})],1):e._e(),this.$slots.content?t("div",{staticClass:"headerContent"},[e._t("content")],2):e._e(),this.$slots.extra?t("div",{staticClass:"extra"},[e._t("extra")],2):e._e()]),t("div",[e._t("pageMenu")],2)])])],1)])},nt=[],at=function(){var e=this,t=e._self._c;return t("a-breadcrumb",{staticClass:"breadcrumb"},e._l(e.breadList,(function(n,a){return t("a-breadcrumb-item",{key:n.name},[n.name!=e.name&&1!=a?t("router-link",{attrs:{to:{path:""===n.path?"/":n.path}}},[e._v(e._s(n.meta.title))]):t("span",[e._v(e._s(n.meta.title))])],1)})),1)},it=[],ot={data:function(){return{name:"",breadList:[]}},created:function(){this.getBreadcrumb()},methods:{getBreadcrumb:function(){var e=this;this.breadList=[],this.name=this.$route.name,this.$route.matched.forEach((function(t){e.breadList.push(t)}))}},watch:{$route:function(){this.getBreadcrumb()}}},st=ot,rt=Object(l["a"])(st,at,it,!1,null,"553e219d",null),ct=rt.exports,lt={name:"PageHeader",components:{"s-breadcrumb":ct},props:{title:{type:[String,Boolean],default:!0,required:!1},logo:{type:String,default:"",required:!1},avatar:{type:String,default:"",required:!1}},data:function(){return{crumbsState:this.$store.state.app.crumbsState}},computed:{getCrumbsState:function(){return this.$store.state.app.crumbsState}},watch:{getCrumbsState:function(e,t){this.crumbsState=e}}},ut=lt,dt=(n("f760"),Object(l["a"])(ut,tt,nt,!1,null,"300f978a",null)),ft=dt.exports,pt=ft,mt={name:"PageView",components:{PageHeader:pt},props:{avatar:{type:String,default:null},title:{type:[String,Boolean],default:!0},logo:{type:String,default:null},directTabs:{type:Object,default:null}},data:function(){return{pageTitle:null,description:null,linkList:[],extraImage:"",search:!1,tabs:{}}},computed:Object(T["a"])({},Object(w["mapState"])({multiTab:function(e){return e.app.multiTab}})),mounted:function(){this.tabs=this.directTabs,this.getPageMeta()},updated:function(){this.getPageMeta()},methods:{getPageMeta:function(){this.pageTitle="";var e=this.$refs.content;e&&(e.pageMeta?Object.assign(this,e.pageMeta):(this.description=e.description,this.linkList=e.linkList,this.extraImage=e.extraImage,this.search=!0===e.search,this.tabs=e.tabs))}}},ht=mt,gt=(n("a95e"),Object(l["a"])(ht,$e,et,!1,null,"d6c73dd6",null)),bt=gt.exports,vt=(n("9911"),n("a9e3"),{name:"Iframe",data:function(){return{}},render:function(){var e=arguments[0],t=this.$route.meta.link;if(""==={link:t}.link)return"404";var n="";n={link:t}.link.indexOf("token=")>-1?{link:t}.link+he.a.ls.get(pe["a"]):{link:t}.link;var a="",i=document.documentElement.clientHeight;return a=Number(i)-260+"px",e("iframe",{attrs:{id:"iframe",height:a,src:n,frameBorder:"0"},style:"width:100%;overflow:hidden;"})}}),yt=vt,kt=Object(l["a"])(yt,Ze,Qe,!1,null,null,null),xt=kt.exports},6842:function(e,t,n){},"6f58":function(e,t,n){"use strict";n("6254")},7979:function(e,t,n){"use strict";n("548a")},"7dd9":function(e,t,n){},8178:function(e,t,n){"use strict";n("8cf7")},"818f":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAABwhJREFUeAHlW01sVFUUPufNTGmJTTSCrvwJCxrFBcaaGBFijC5MxCgmhA5M/9Qaf0JANJiokWBM/FlY0ESt2k4pFMICjbgwwShR0QWgIRGQLkzQhSIQf7qgf/OO3znTKdPp/L33ZtqZ6UmaN333nnPP971777v33POYyizS0bGY3JFV5NIyYmki4qVEsgjXRhJptOaZh3EPf3wB1yESPkMOnSSn/hvu6ztfThe5HMalLXobwEVh+z5cbxEg89MOlISYf4buIVwHuX/wuB87+XR8OZbNoHR2NtL4pS6UdQrJzdnqBL3HxKdgo5ciDT3c24seE1wCEyDt7VeSO7YJT3ojgF8V3KXCFkDE3+gRO8mp6+Z4/J/CGrlr+CZARJjao+0A/oYILc7dRPlKmOk8iNhK8cE4M2OkeRdfBEhr6/VEY4MAvsJ7k6XXABFHiOqivGvXb16teyZA2tavINc9gO5+jdfGylkfw+Ivcpw13L8HZBQvTvFVMSW3ruskN/FVpYFXDOaT+qY+epCieoDs3x+ig5++JeRu9mB7zqoyOW/T6oee57VrE4WcKEiAgf/8kwOY9B4sZKySyjEpfkYPPLymEAmFh4A++SoDrw/CfIbvhR5K3h6g4wkz/ceFjFRyOd4Qj/Kufb25fMxJQHK21wmP6nIpV8N9ABwjJ3RPrrdDVgLsPS/jRytxtvdDur0iOXJ7tnXCjDnAVni6yKmw97wf4CmdJBZduGH1miEzCNDlbaWs8DJ8DfSvYdKle4ZMYyS5sRkZQuU5Wdtn+Fbyf23v4NQvTd9ATe8B2NXVKnhl07DpzjVNpnrA5H7+LMbLrGxp03yY1Z+2lY403JCKJ1zuAQhm1Dp4ZdowJgM3RvxlAhDJmdVHMbeNTWE1AjSGB2bKEsaaW5zZW1esFrdEcdiqJAOY2WsXeRcz7O/kMGKCCw5jlh0pUs1TNbyl6olG7yZXejChXedJObNyEvPxJAEavQ0qTriV47sPBzWTT3+S2C+kfUMrJSa+zle3iDLD7FjcHqHrIhTyV3HlivwVSlmaSJ4nBDGp4XqcWYT10MJv3D69fZHEQYm1HKQIb+LewV/Ty0r1WzqjS2hcuiUhq4PaVMwM7I6d2AS1Bn0EIE5icllNE3IS2+jtsnlzQwnMmgnp6looseirNOGe0ja0rZLYxmmVkzyuKoG5+sZb2aFn8aIdwwT1Ml384xc4vSaoZWlreYRG/juNcNxLODIbBfgttKRpeVC7po+jOpbWlqPYJTUHNegM7LNVpTzWci2N0ptYcsSsmzF/SRLeyAMDp720IbHYTcQTO+HbvTCspgYotGArJsI/1Y4bW4d7wQRkHsNbQA8qSyf80d5zsNYmHRs+4ETiXQPAEycwLHZQeOH21BI0V4u2JE9ceoVkYiN0I3DyJwqFnuG+3d/n0vF/XxZhIYRT2jKIObykqRlP70mQPIxh8RzODs+gx23I1ZyVaR1XtqgOO85T6O7N5QGvXnAjS2zdKPpS4LBXaghkA4cI09VE46+h7HE8VQdP9TsK46n27j6h9aU9uhyLm3dQdhfKXNz6kCjyIiI4F7U8m5RkCCBcNisEpAAkj81dDAu6Az0DMXvnfUzCjH3qE3gIIYD/YbK7/5jSyXUtFQFhvL+G4QCeUPlFz/fxlO/kjvVtlJDXMbM/bdMb8TkO8QvUt6cfJASe3IpGAuyYAzQzY/ZEATJOc6mhsQm/d7DD3fY7wAmvf+9lGG8BS0u50b8Rf5rc0/MvNKdFZ/xZCqLFF7QHDAUxUd26MuRYQlJ1o/DvPZKxHMvG8m+iujWRiQYCkIqGcRAUCTYskaA2itWXbdtScYxiVWbUM8zA7lgeXjIVbUYlTzfGh1d6qh+k8tkzq4Komy4wK3ZMgiaHJq/+LwmJS+v6+0u5Dc50Rm1rG1hDxDPLfPxvmNET0P81KOq6x3wYqVoV7DOadWFmBBgJsRYNaMyLyDAOR07xwN5lijs1BPR3ziQCLawxmcJ6mQBNP9UMzBqXyaOxnhTMKQIsUKHpp7UuwJgelJkiwHBr7q2mn9aoJI/H67rT4U0jwM7NNfe2VgXYDGMavqm3QOoe9utMbS3fImixInWvFq54+keof+/KzHjDtB6gQJMVkHisubc1IkkswJQl2DKDACNBs6418VhTzKpcDINiyZFJnpUAI0GzrlkjulUuwJArR1CR5SRACzXD0hKP9Z8qFPU9X5aoQspLgGHWrGtNPK4yMZ/heyG3CxJg2daada0p6FUi5msRmeIKZ8ZrMB9G+xhB6L1SHKTka8dvmU14OubzJEdn2vZEgCrP609mlACbUTXx2D5U0jtzL+aL+uTxeyH13HMPSMG1FeN8/WwuRYJe5+2Hk+kkGBHz9dPZTCKMjPn48XQ2IoyMCv98/n/3KNjByI2A/AAAAABJRU5ErkJggg=="},84962:function(e,t,n){},"89e5":function(e,t,n){},"8ae3":function(e,t,n){"use strict";n("28ac")},"8bbf":function(e,t){e.exports=Vue},"8cf7":function(e,t,n){},"8eeb4":function(e,t,n){var a=n("b2b7");e.exports={__esModule:!0,default:a.svgComponent({tag:"svg",attrsMap:{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",width:"151px",height:"147px",viewBox:"0 0 151 147","enable-background":"new 0 0 151 147","xml:space":"preserve"},children:[{tag:"image",attrsMap:{id:"image0",width:"151",height:"147",x:"0",y:"0","xlink:href":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAACTCAYAAACDDotvAAAAIGNIUk0AAHomAACAhAAA+gAAAIDo\nAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCa\nnBgAAIAASURBVHja7P15kG3Zld6H/dba+5x7b05vHmueq1CFqQB0A2igu9HomZIlWiRDFCmFTJG2\npBAtWbIlhR0eImSHLSk8hSVFaKAka6AsUQyJbJsiW43uRjeGxlwooAbUPL355cv5DufsvZb/2Pvc\nzFf1CugmqW6yyVORkVn5MvOee846a/jWt74lP7hyhde3lPPnTrArDYtZ4uGTPf14wht7sNbPOdVt\nsZCT3L3aMN28wjuXL3Px7oc4ffIkOzs73Lq1Ax7Y2rrJU089xI0b1xlNRvS9IUI5PGPxGB4m4MaP\nOmJQbm5PWaTMg/eeYW/ac+nKAedPR3Y2LzM6cZabU+dDFxr297ZJYcLePHNydZW9zrHRGt4lzoUZ\nsx4mK+uo79N1t7DxCbb6Fe4dzWF6ixQmTPOEldOr5DHcPID5HC5O9tifdfj4GHEGcXsHWWuQUbu6\nu5iuTzbWdncOdqeT1RGXWOfMCM5EpzvIvG2R+2LitStzrjLm6TOwsR5pMF7bhSTKWr/PKU3c6jYY\nR0VmHeuThldNODbOhP6AOFrh7XnHPasrjDSzMw1s3tzkhO9x77ljvNytk0Pk4jp0Ozu8ndY4tRFY\nGRmz6YJrecKJ4KyYY6Lc6ODuY9D2c17bVfKo5f41GM16Xtg2NtZazqwIceGECDfNODYJrHaQFW4p\nrIqzSuIdCxyg3N3AaJ64jjJqlcm0A3Pij7zLf68fIkRVsiJ5ND71zpXrT71z/epHNne3H1w7cezZ\n+x998K+dO7ZxVQxTBflbf8U/NMffN673OUSgjUIUo0mzk9896H/sS5d2f27v+v6nZtN439bu2ol2\nsXLpvuPjTx8n/epT6/pbF2K4FlRyowI/2jn/oT/+vnG961CBJsKiQ3YW7Yl3bmx/+PLVKz/1zOb+\nz3zz6u6H0kF/TENk3oPvdQ/fsv7e8LJ9Zuvs6a9vnz/xxftOr3zj9Gr7StOwH1T/oN/OH+jx942r\nHoIwamDmkBf9yavX5h//9ddv/OTbV7Z+8trW/pOXRU/e0hPMciIlJ3vECMSt2ErIj1ze3Hzkuct7\nv3z+dPvMk2c2vvCJe4//DZ/ot8ZB3PMf9Lv7gzn+vnEBMQaiRK5u9qtv3uo+9sqlmz/zyjs3f+qt\nazef3DrIp2Y56naExQhi26AAEnAgdTNUDBS2troT+weLz+1ev/bktWvHPvWhi6f/i1On7/rV1VHY\nbFosUowY/A/6Lf/+XNc/6BP4gzrcYRyVdhzZ66bM9xcXfuPZt//h1zb9H7i03z99Yybnd9Iac11h\nHldIcYE2CVPo0gJhQevCqkHrAQ3KLMGWBa5bf/bN+d4feX7Xnnr8gv7sJ0/FL8xFf2ftzLHXxk20\nJij93wPe7O8543J3YoysN4HLM12/dTM/+twrb/3YmzcOPvfcpa0f2+ybuw4sxDmRpEpuMhaN0BjZ\nO/reyO4gQhIQMdwhBsEFRJwmOdMucX26c99ic/GPX13Rn3n27Mp3H3xAfv3hu07/ejuWl1Yb5nLw\nh7u2/HvGuAYDWFkbsTndXdnc2vzIN19882eff/3K597Z3PvwtRkn9nTELAQ6E7LOkSjQZPBM64J6\nAoQQRyRRUiMkMi5Crx2iwsicSVJgFRIsFjHcOJB7fzCd33th952ffOTKwS98+OLqX3vi7OivH4u8\nvNoK2/0f9NX5H+b4Q29c7k4IkY112NwOk0u38oe++fI7v/jdV6793KXd+QdvztLGXh/ptCHHlowi\n0QmqxChIGGFxBVUDCQQEk0DAkAytO4LQaQmN0YXojntiIYbFBBrYzcp0c3Zse3f/F69dHz31xrlj\nH33i4un/Yv/E+jOjkd4cjfB+/gd9tf72Hn9ojcsdggrH18Zcu7k7eefVG48+99o7n//Si2//0sub\ns09cmYVjNxlzENfJbYMHcJygwjh0qAYIjqvQEzABC4oZuGUcR0QI2XFLhFEgUowv4BAMU6H3RB8a\nDuIGczf6xS7Tq/t3b23t/snNa9tPXD154osPnVn72r3HJ989tbr65kqUTPcHffX+9hx/KI1LRFhf\ngc2dcPqrb06f+v6Lb/30iy+98pNX92cffOdgcXqrg6kEbNQQVVHrUQRzo1VoU6YBGgViJreG7M3x\n6S7SBnQcITooaAI15UBHmAfEKAhsVFR68Ixax6jbJ6pj4uyr0nc23r01++RbM3nyW9en/+Ddxzee\nfeye5ov3nm2/srLGayGEff4uD5d/qIxLBCajEQfd/MzLL7zx0e+8+ObPvvTG9c9ubu0+vn0wO75D\nwxbKIo6xZg2LE1QU6El9Jqij4ow0MCIQXLAckBxIuwsOrlzDR0JYaxmtt4xXRoyJNLSkDL0IuJK0\nJPkiBp5wA9GGbD2IQtMi3rJtzuwgr19P+x+4tj199NLm5ifuPT35xpMXN75w37mVL1w4Pnod/bsX\nuPhDY1xNjKRZuus3nnnu6Rffuv5zr17d+ezl7fkjV7bnq3tdYGGrWAtx3OAecOuIixlRjJEITYio\nR4IJE8s06QDmB8znHWRjtr3H7s1bqGVWJ2PCiQ2a4ydoVlfRjXVk4kQyKpFoSs6Rha6w0AmSEs2i\ng6CYOj1OHwI0ihKQINzKxKsH+aG3+/k9rx/4R+7fkY/fd9fq37jruD9/YiW8rcJU/i4rLv8uNy5B\nRMH9/PPPP/+x5197+/PfeP6Vn7rVhUc3F3Ft31qmMmEWRuSmwWSBIVjKQAmBjRhjVaIauGMpsZjP\nmO/vkvZvMTuYsZjPOZh3LKYdKxoQz8xTx3Rnn9HGOpPzZ+hXThOCIkhJ+h0gkEVoBCIZRzGc7GAO\n2Rx3B5SkAULDnuf20vbs8Z29g7veuHr9kw+c5Jmn7lr5nXTs5NfOnzj2Yohh9gd91X+3x991xiUC\nKgXlDkHu/hvfeOfp19658dPf/8Gbn31jc+fxa7PR2pyAawPagASQjAcn4jS942RCUEYSaGmQ7JAc\n6/fpZnPSwR7pYJd+ukea7ZH6OaMsbDQj0Iylfbpk2IGz2IbdK69y4soF1s+dZ+XUGdLqOtMQySEy\nUkqiL4q74y5IjiQHF3B1ghiuziwbfXb2gLCQdZ32H351Kzz53M355+4/tffNJ++b/PXHzrX/3Sj4\nO5pLH/Tv5OPvGuMSEVSVbAihufDc8y99/I3r2z/9yitXP/3Gle3HNne74zsZZm1k4YI2giKIZ1wV\ncycoBFFQJQCSM5YTi5Twrmd+sE9/MKOb7mKLKZIWtJ4Zx0AQIbjjOCllSsOwZkPubL79Nju3thmf\nvsnkwl00Z8/STlYxBHXQakxBBBdBgeyO9T0SArgiZqT6ftVKq8g7j/2NvXunu7vn97Y2H7t1euWp\nR06N/9qDp9e+vjDdQcRU4O/EkPl3vHGpCiGU8n/ccv5bz77z8ZfeuPb5169c/+wrb15+ZDbXjS6N\n6NIIbxo8KS1ejEEFzQnXTFKBoGirNO5oWpD7BdItSLM98sGctJjjXU/b9aj3RIUGJ+RMtkAyI5jR\neEbVS4+xN8S6YsC7xmx3n8XVTVbPX+T4mbOcPL5Bt36c+WhMEkEzZMmoBCYeyCaEHlpRVAIiQtZM\nEsjiJA3MOMZesvbqZv/kK3uzBy9s2mce2hn95oN7/jvnj/cvnluz1z3rfvg7zMB+n41L+F3T6USI\nMZL6LJeu7J55/gev/vjVq9s/8+yLb3zm28+//th+n9bjeJ1sE7IpcbSCxAjk8hiLlxAaBFcI6hiZ\nvMjk3EE3xRZTfD4lL6Yw7/HUo+40UCAKcdyMPvUlpEkAAcHIOYFAEFBRshsBJTrM9nbYnc/ZvHGd\n4+fPMbl4D37iFDoagSq4lcoxtMQYEfN6aaT4QpHlpTI3sPIeZjmTu8XkYH/36e2d7Qeu31j93F0n\nVl+4+8ToGxePr3797Pr4udCGnRCKp/+DPn4fjUvAE/wu+SduhpLWX3710ie//f03/+EfvPz2567d\n2n9ot7N2t19jYRkWE2Jco11ZZZqhT0ZSQHuiWzHjmEATLhmbZtL+gtTNoZsRuxnazWlJjEzw3BMQ\nxK2cL14+PECETMbdQHs8J3AjBqERwczwfkF0ZaIti9SzuLXHbG+T+bXr2KlzrJ07x9qpk8S1NWYx\nMtdEyqAhIlHJXhL8LIpjJDeCQ8iZhUFShdExUOWy24k3ttoTJ6fth8/e1J+5sDr73r3H8m899UD8\n4vFR/K4Edht1+ANskP/+GZcoavs4AdcxP4yqGUNgOpvxze987yd/++sv/MsvvXHzx65tzscWJjBZ\nIWgg5IzTsOg6kighNjRNU7yNCFEEsQyWMe9Jnuj2p3Q7e/SLGZI6WuuJOSNqoLFUe+64gbvVSg5C\nKMYjkgkCq2srTMYRrGcxPeBgd5egkRBaFEjeE1SYNC2d9ext3WB+MGVn6xYbZ0+zduEi49NnCJMx\nWYvRKmAigKE4LhC9dAFcBMdQQCxV2o6RzNjrF+oHfn6605/ausEHbmy1n73/7PEv3XvvyS+eO7nx\nTNOwq8UF/iE2rmJhJHPccgEY39e4lIP5XL/34puf/vb33/jJGwfKPK0T146TRTGUOG4xEyR6yXdC\nyVdiiCBOQ4/1mb5fkPsZi8UCn2/TLvZpugVkpxGnESV6RlJGgmJmWA1RJkLOmfm0Y6TG/ReOc+8D\n9/KpT37i+fPnTmxdvvLm3d/5zrfve+H5F9jd2aHvIcQxMUxQMUx6VJUmgndTZtf2WezcpLtxjdGZ\n80wuXKQ5c4qwMsGC4SFiOUM1qrEJjjIPEKRUlZbn5K4nxhYPY/aysW+wKU1zow93vX4wv+v5m7uf\nuGtv9fNPXJz+90+dl19l0nxzddT4PP/+ArK/r8YlopBnzLuEO++bflk2ptO57uzuru3s7dLbOkQl\nmZH6jCt4n8BhMh6jYnT9FFv0tKOIWIfkHu+m2OwA6xeEviOnOZ4XRBVQaFRpRBEr+Zm7IeKIZ7Il\nFosF7ajlrgsneey+e/j5n/7k8x/72NNfuHDv+f+7O+/cuPnoR57+8Af/3EsvvvDx3/6t3/roc8/9\ngN3dGYxC6VNKS9uO6XvDNCFtYJ4TB5u32Ns5IN7cYnLmNGvnzrB6+iTt2ipZoDdDNCAOWSA0kUiD\nesbcCx6XBSfjKqhC8sRMMou+o9/LJ+ZvXfmp/VvtY1evNp945MLp/+rxu058YdJyc2VEjgEk/Q+f\nk/2+Gpc7TGJi2kVSDoVpcIcjG1hGRCJZArPsaNPSZyXnHpGOSMl1Fos9ojgBYyQJOehgPqNfdHg/\nI3RzYm9EB4tO5z1KoBEhSEDNi7cIARHI9MznM2LjnD9/gic+8Bg/9zOfu/z0o4/8lQsnVv4fJ05s\nvLSd4PrWLpu3bn3j0XvPf+Ohi8fvfvCeM/+35194+dPPfPf5u9566wqXL92gm02JG+tMvEFzgNiy\nyMpxlIN5z97lq3Q3Ntm69A7d2bNsXDzDyunTNOMxRKVPiZl17HlkvVljIi2hHUE2Uu5JYuRoheKK\nMjOjkRUWPmI6a9iay/m392f/o7dubT75ypXZ5x89P/6tJ8423+ikeeVYyF0TmiX08Xe9cQFkV1aa\nzBTFXBF5r6MWFUQFV0QrpOBiBAGxBusDiiHeV++XcOvJnmAxx+Yz+n4GKSE40Qv1RtyZNA2enUYC\nljLiQhMUs46+n6GauevMBg8+eC+f/+mffPXhxx77b0Zrp/+b++879ZVu74CtnT1svIGIICLM5gvm\n+7vv3H3fff/4yVPnP/qxj33iz333u8//iW9987trL/7gVTa3tnEdI4ywbFgYYyTaoKyYkDBsOmX+\n1lt0t26wdvYsxy7eRVhbYzSaEJqGsQUaMwQvoVoVk4YkxsIS9IWqrdog0cmpx6TDEBaLJP2t7uHN\n3e37Lt0Y/cxrp9efve/Cid+69/TKbzYrzYsrIw5i+B8GJ/vbZlyFNxU4dmKNrpuTLdN1i/eUxO4w\nbnoWFsg53jE0uhSqC6ruAoKStcRRzS0giHVgCfdMtjnYHHKHLObQz1HrCAgaAmMNRIeshqoCBubk\nDJYzXddhPufU6WM8fN9d/NzPfeby0x9+8i/ce/H0X7l6a+9br964xcHpU4UpEVtSEIxQQlQ9ZtPZ\n4uBg+jsP3HfP7yj8xU/+2Mc//91nnv9HvvTbX330lVfe5NL1LbrsSJjgtLTNKhNalAbxjIkxX+yw\ns7XLwY0tmtMnOX7hLlZPn2ZjtMKiN/ZTzxzFRyNyO6aLQpIeETAB90ySTBNBPSMSMVmlM9iZds2N\nvcX9b2/197+2Nf/xe06t/swj5yZfeOjM6DcWG6MX11RnYYBC/k4yLhFhbX2Nra1ba7/yV3/tse2t\nW+sf+dgHv3Hi+ImDlN7reB0tbRC5c9oltR7S+iGeC28qZFRmGE6wDklT3KZ4nhYDSwtiSkBCguEK\nFpxOnGxOdKefd+Q+4e6M2xGjkbK6NuHixXv5ic9+/OZHPvTBv9COVv7SI489+i3ygu3Xr9CnhskE\n9m7sM8176GSVVVV2opJyoqTJgjvsH0zp+/SFD3zgkS9MJuv/n8efevTPfP3rz/zjX/rSV0++/uYl\nbm7tsejnoJkYW0RawBGJRHdGJsw3F8z2Num3brE4c47F6TO0ayusTyasjVtcnEXqmfVOrwENDS5S\nW0oBFwqc4QL9jCCCqdNlZ3/WsXs1n9uapV+6vD376A+ujH/+npOTL95/euU3VlZWXpyMZDuEvwOM\nq21hbW2V2Wxx7JVXXn7yi1/84s995atf/tyxYxt+4tSx/+Opp098oe/fy3wrz0f7o422ODEwK4mY\nZrR6Hc198VTeIdZhtkC9L7SZUIoHE8M000vGckZ6R3IJSahy/vxpHn34QT76kceuf/CDj/8n9z9w\n/q/Mu/mXfvDyZfb3Z4gnTh9f5dSpyOV3XuHKO29z+u4z2GzG6ZVVzq0dY228xq35nJwO36e7s7Oz\nR5/6Z89fPPkvfPanPvmffuITH/1TX/7K1/8XX//O93n1jSvs7BxgNkcCBMBzQpOzGltwZ7Ew5jeu\ns9ibcvPaJmunj3Hi9ElWzxwnyiqugeyC0CJNREJAHfqodGJkShhthq80ouMRkoVtAztAdhf9hVu7\n8wuXbtz88KuX/CcfP7v2RTm38ZvtyWMvnRqv3KI6+d934xqNRrzx5uaF7z37vR975ZXXf+KF5178\n9PPPf/+py1feOfbww/ff2traeXg6nX/h4OAOTXw3bLSKBy2g5LuOclmEYlgZMSvU4eRY05F0AdLT\n0CGSEIXgkQanqXmUiOMIKRgBiCaozNg4OeLui3dx8cJ5nnz8iTc/+emP/193due/efGuC99bW1/l\n1jvb1UBK6+nEsRExKC++9Ca7B7vc1d5DRyK7MA4jxs0qlhqOnVhjdnCFodgXATNjd3cflfits+cu\nfvszn/7Ur/zEpz/+D/3OV5/5p5995vnRpUuX2dvfZz6fszAHMdwjrY4YN+uYGbP5Jot0jYP5mO7W\nMVZvnGXt9EXGx06ytrFBDgL0YJkeI2XIWsbeXAO9tyQ3XFJpcLaCG8zdScmZZdjqOX9j7j9/df/g\nQy9v2ufvPzv6xgNnmq+dP+XfXBk3l/5m87Hfk3GpCE0Msro6Pvvtb3/zqe9+5we/+P3vv/C5S5eu\nPLK1eWsjpUTQQEp9m3MalZO6UxQvIKH7nSO8i1QGgS9/XqyyCMiYdLhkhAodqKAeiJppVYplWE8q\n7cTKNjWaRrj77rP85Gc+vfVTP/Hpf/3ui+d/pRmF57/2zec5OJiytt5Q7LlicX4AQeiSEWNLDLGc\nU73Y5oZ5xjO04xXWTp4nhIzZ4QMjIqSc2d3d8xjkN46tr335Z37yU//1pz768X/qq1/72j/53HPP\n8cbbb3Fzawc3w6MTBPBMCGPEFgRdkM3o9pyD/QXXr++xeuosxy5c4MS5C4wmkWwGGCqUOQCgd/AY\nkeAkLcbeW0LNEVeyRHqDhTmLJLro08XpwfaZ7Z30gc2bzaceuZvfevDM6S+snD71fBtkc1Gu7N9+\n4xo3yttb3fnvfOnVn/72t777+bfeuvxj165df3Bn6/radDqlT4mmaWF0jr4/IZI2CGwQ/L0j7eKO\nmVJc0x2qRXMw8CyuBsEMfIbmnrAwGgJBMrCgKcQoSMVDpdAVCo04ghMyWMocO77C0x99mp//2c/+\nysd//In/3UrYeKbRlkU3W3pPM2cyannqsXMoB5hntJz/qoj8KVX9uKr+VcH+v7efMOCGS+CNyzd5\n8IEHSyivmNTgBXM29g+mXdusf2myOn7mJz/3yf/k0z/9sae//rVv/6+//a1nT166coNrN7Zxcbo8\nxX1Bq4HoDZYj89yRcfpFT57vsXXzMumtkxw/f5HjZ88iq6t0TWTmmV4FCdAiWO9EAl0IJA10JBbq\njHAmoiDCFJhrYDe2zfXkF9/czOe/P7cPnbt6/ZfuPrH/rYdObXz1obMnvnV6Q16VzO9qlOR9jauC\n1IAQ29HalRs3PvTd7776R770a1/+5We+8d3HF10/dnOEHtGG0BTkXCQCjQiNC7H+/7v+tjg4GHbH\nhP5o6wWjtC48I0fsUdXJXvIvrMAMZcTClgZ71HGqwsWLF3jqqSe/fOrU+jO7N7vC9eJ2DxpEWJk0\nmGVACCEwm00/+eyz3/sXv/e97z/20uuv/oknP/rUr5x65LF/zXp56Wg1bGZ0XY+HMT9YjDh9/zHW\n1pxJD+88/1aBL6Cg/vN+f/VY8xuTpvniz//Cz/7GB5/6yD/67We+/8++8NzLq2+8c5mrN2+R3chm\niEfME+JGDIGgkHPHYr/n1sGM3d09bt28yer5c0zOnIW1VcycPhkigRibyoGzwgxpWjIZS4bV6SUD\nFCW7sMhGl9C9bnZyZ3dx4saN9OjVlfCpa6eOf/Oxi6d/+54LZ76xth5fw2X+wyLme+68UEhoDozF\nT7y+Fz/09Vsrn377zRs/9b3vvPOx5167fnpr3rPhibWgRG0RgS6l0jqxjJS459zZMZVXMXt/gkRW\nxDNSOJsIWvhTpuDCYEaSC79KqoGU/7QWDFZeuvagB+8RgvTdTGop6pAKRjQYfRt7uiODEaERZrPp\np95889Jj3/zG9/nmN58/9t1nXv3TP/GJT/2RH/vYJ/7NjWPH/t8iclNVu2LEUkKYKzQRjRAauOcj\n92P7C975wcuMRwqeydlJnm1jfePbK6sr3/vln//Jv/L0B5/4Y9959nt/9vvPvbD65juX5ebmFrPF\nHmQhaCCnORYaApEmBFxa+t0D9g5uMN++wuTmacYnTrJ64iQr6+vMUFyLga21IyZ9w8KLPphSWmbD\nJBNueDY0G70Y06gc5Fa2vD12LccPvzqPjz4z9c/et9t9575z+uWzx+Qb51fkeXHZVd57O28zrqCg\nMcjOtDv+5pXdj7xxY/+zr18/+NSN7fkHbl67dv6tqzfbgy6xsn6MZnFA8IRbou/TcCuXUVkG9/S3\ncgykBPPD/xnUFoacTN7/l8s/F+6K1icmW2osF8/Y5TkIPP7kA8wOCmam71KmCaqICIuuY3d/n8Ui\n0T/3Igeb+yfeeePt/+Mjjz38P7vv/rv/f8fPH/93QwgvQJnZGbymG7hC1MBsbYVTH/0gk/3Ea996\nCV+JUHOhnHMfgn55bXXytV/6xV/4lUcfe/xPfud73/2TL7/02urbb19ia3uXg3mHe4+i9JYpHFdB\nNCIIi4Nd9hczfPMGaydOsnLqDM2Jk4xX1gkq9AtKT7Vp0Yo3+HCtyk0rHtsME8FQOjfKMy50KU2m\n3fajWzs7d12+Kk/fdUK/f/+J8ZfvWZ98+f4Tx78vo7h/9PLF+jdRAclp/dp2/7HffOfmz716Y+dn\nrs3SE/udHDONdKywF1aYygorJNynZCv5k0vBrJAyqlK6+z8i95P8/oahCmTEzIVcw2gGF4RYPktJ\nYAVBXd5TMZsHtNJuggvBY7nZ0LhKAWmHU0FY2WgQ3yc2ze1PX9OgUbfbdszK6jGQOf0s88oPXufy\nO9f1+8+9fN99Dz3wzz7+xuN/9IkPPPzvjaL+O1Hl+ntM3esVMaU52TI6e4wQelI/X4Zld8fckzu/\nvra28qVf+MVPf/HJx+//o5ffvPSZF1586ewrr7/K5q09unRA545qg+cpKUeytow0kqyh6/dJe9ts\nXb1Mc/I0x86d5/iJM6yP1yEaqUkwmtA1kXmEPnjl9pcH0tTrLVBCWGOmMJcR7mPEnRuLsHrJFo+8\nMps+9OytvU/evT77/JMXwq9+4KL+5jnRFwQWIhAFUA1s7nZnvvPylT/++o3df+iN65sfuzzrTvXt\nCtKuMl5raZpQ2i9uhcoy2EFhppGpLffSFnER9aFF8h67OvLM/FDH5VbCoR/hVtUwiNvwvB35t8P/\nKwCtIO7V8JcvnO8YrkWYTMbvOYfJZMxkPHkTAt0CUoLYBGLbsug6Xnvtdd6+epVnX/7BhceffPR/\n/9mf/PTPnOr1/9LE+K0QuKlKptCQVeszkOZw4tF7GK/A7mvvoD3kLi2fx+qVu67r/7Pjx4//Zx/7\n0NM//shjL//5ty69/elvf/vZB174wUvcvLXDvJujEglNSRvUIEigkUByw7o5s6tXOdjZZfvYTU6d\nucjGybPo2hoSyiCwuJQ0wkuV61aMy3OhiZcTP5LTWqbrO7yb080O9GCnuzDdzqemt7YfmN06+/j9\nJyZ/9YmzJ34zhjiNKnBwMDv9g1d3/4mvvLj557aSPraQk+zEGQkYuYEsCMxQFrR0TLyMUCXviuei\nYpxBiSiqhUH0w4xreePv5NRc6ptJIuTCJacg4SKFXw4Dj73miVhJ9sVwKZlXSbSoXCarQZUU4bZ5\nU6FAHzdvbr8HHmnbhv39/dQ2JzzoeSHfoEcwcQSlN8FT5OU3d3hn7w2udCc+e60/89lHHznzxW5j\n7SvWxJebJjyTTL4zT3WooobLPIezD99Nd3PGymyOIOT+dh/s7uzv7X/t5KlTX/vAR5544O57L/xv\nnnz10c9/99nv3f+DF17mnUtXkS7QtKuEsErGsWT0AoGGJhv9tGdrd5ebN2+xOHOB1XPniadOYWeO\noWsjgoB1hptBVjLgroyYQHJEOkJ0YsylthJIHpjldfaDsO25vbJ58PjM5ye29/N4bbTxyqTVl+Is\n++qbV6/+0bdv9n/yxsHOY/vSwmjiyVwSoMlpeiXkMqgu4mTPtKpl5B0D0RqmSg4kIhabJscYifEO\n1SIUZJ07R8bB67i5mKUyvFCTF7MEBqq5eFEZFK8K/IB4qYzMkcGwtH6N49nabHYbFqUipJz41jee\no+9TrawOb+6JE+vdZNLkTBclQBwFgjg5Ganv6WYzehmR+8zrN3fZeOMSb+7v/tRDO/f81CP3nOa+\n0/F7JvyRLLx9agySKvYtYD3o8Qn3nX6A6eUdVvIMXMm90SyvRyErbm1tvX727Lk/+/DDj33o0cce\n++cvvX3pE7/633/hgy+//DqzeWLWTQmjFaJEzMvDZoAHpY0NuV9w65032d3eYnziJCv755lcPM3q\n+ioSRyyATpwkjjkkK31dVAjimKfi8F0IMaIuZMvQQ5onFtPFaB76Y7nrJ6gQD0zO7Vj/05uaH9oe\nZW7lRAi9CGMSjkiAPCkMSGnRmDEpU8R4wMnLjrrlYngiSozRVfU9CXIxLiVYD+Ry8u86gpQWkeVU\nPlxpxHHr6ZMRJBK0wz3VKcEy3Vw+e+WeF4+3zO2kAIyi2ovIbQYkUkJA2zaovtfbhhjEPIPMsdDh\nAbIYKXekkCC12GiVNDnFjckFrk/u4cpUefsV5+0b+9x3QR+/91T+rx84tfq1TPsbk6j/TZAjkdkg\ndTA6f4xzJ6dsvdWxcXbMYjolpYoe1/NMKbG5ufnsuXOn/6nHHnvw4mOPP/yvvvDCi3/ky1/5+oPf\ne/Yl9qcLuq6nCUoTJ3RqSGgIuWPkPatEdDfh21vMLr/F4sxJjt99F+v3XCSsrhMnE+bjFksNebZW\nZw96JM8RT2VC3RW1BpGAeEO2FiwzX+TGV2QlmozSwomNjmMTx22MvUloiQQgICoEF9S0QAClhVzA\nz2XoGDAlX34SBzfTvu81pcSdGteClKahcyRvOnJYGYzAXcRBrRLkSswcHvol5FB9TEXwDfGjxnGk\nQeYCZjJgY7e50sr+vFMol6FgQTAPJI91zKxWowrNCA5kgYcDFpNMH4S96U323uq4thOat07xY6+d\nOv1j95w68ccePLt2cn1d/vIosH1b8z5Dv0hwbJ8zZ9a4/OIBx09OcHpsmmGdOiAi9H3PzZubl8+d\nO/8/X18//h/df//9f/4HT7/2ua9+9dv3v/jSa6WBvthFdcSo9YJnaRFn6boyziaemN68xP7eTVZv\nXGH93EXGp89yYmMda9fIYUyMAUfos9CZ1MgE6k6oVbyKE0rFEjFZMXTl7hMtUZkkD6POonnfRryT\nSvcNSAZyLB/eYoSKPBnmFDUXii6CS0WiKS489X14P+Mq7sDed0Jl+V3H1QsRsOR2BjUUlkGPMjDh\ngLkXhqobsXLMqTiOiC09m5Yfuy0c/+iZpMp6IJA9Ih4RFPNQeGJimMxJk8R0suBaXKDrKzQbI3Zv\nHpAWc25uLnhj7xrnbuxeuLK98R98+J5Tf/yB0+P/c1L9ovlgpvvltbLSLzLNBE6ur5CCMj61gc0y\neTsTx7o0+sViwa2tre88cN9df+b0iY2PP/rQvf/qc99/6Ze+/LWvr7zygzewg0V5UBvFPBE8E0Mg\n0xFSoU7nXvHZnP3NbWarl1nZOEE4fwE7b8jaKs3Y8Dhi4RETKwwTU6Te72iBaIKYtG66LqKnHjrT\nhtiSc3RN0cfe+Ly0WnLALOFWSlTXHqfgH2U6+V03R4Qh5Ro8kZnp7f3B3/0xMKDFvZoyNKJoLn9P\ntPYZ/agpevWcWgcaDidFRUL5KNhXqKnZ7cbs8H7n6y44HSJzVDIqBSczycVTShG9aV3RHAq3XwKi\nARuP2Jtnpg7bs55bBzfZ3btOmu/+wiTe99LGZPylPudsHtlotxDJy/N2g36Wae5eoz2+Srs3pzFh\n+9oCGZcp7SY6qsJ0Nmdnd/+bd99z/z82Gh37mQ999EO//MpLr33mq1/+xkdffOlV0v6ULgldnqNx\nxGgywczJZmR15v0+/V7HfLpHt3uLdn8b3blJc+IEo+PHGK2t00wmzGJgYU5wwc3JZER7wMhikrD1\n3u1MZ8TYZAgWIAckRzxVSMFy4SYomCfM+5JAO5BLs/g2bzNEnmW7Re39ci6vAP6PMi5dhkw5/J57\nhSHu7PFEtKLOVm9SkZgUwvAzfxNsJUXoXZgX2SQGL1mrUa/nmjPBgaYlxUBORhMa8miFbJk2Gill\nZLrD+b19pr2NxmPCwsgrcQdVwd/dixXw5GQSq2urXD+zCe0OF4+dZFUje3sNN24cXo3pdNrN57O/\n/pGPPPbX77/34kNPfvCxf+FLX/zan/j617919pXX3mJ3b0rqFyg9o9gwcqFLCVxoopUpo6lD17OY\n3mB/8xhy/Azh1DnS2XPkjWOglXEnBeA2z2R3MpCccY+PAYmLZl9TmIWMSbI5nWVc4hKxDRppxRHL\nJPeinMeQ2/jh/OZwsV1QVW9+SLUI0HmPkLkTGDHcfcMFL9QbqV3/wfh0KA6hapEeIvfv8kkc9oEO\n/+9Ox3w2p+/728K1uzMaNSrSRnyMWF9eVyvyL6XdJK6MrEGspe0KMU9x0mhOVoF+QtZEkgnGHB1N\naEbtQdPEZBJYb2+hOOZ6LMY4iRL3gf3b7KxXdtI2owtTTq6d4hiR48dbXn9V6ebKYp5ZXSned3d3\nj4OD+asPP/Lwn7/7vrv/yo99/GO//K1vP/envvntZ88+/9IrbO/tkfoFQaTQdtoG045sGbEOTQ2T\n3KD7iX5rTtqaMfLIsWbEQRNwDbgK2QvO6ZoKQ0SSqiwQIPY61UQXMkbyrlSICMl9ObSQcNStMEBd\nj+Q0R2PLYbdHRCzG6O8PRQip78nvi3P50Ct0rLAVhn1Bhy1pqb/7ftTckgPieiQGHh1rPvKTDqrK\n0z/+0fe0lNq2Zbq3x7e/+byU7kDG7dDziki5QSaELGgu+UcviqizYE7ftwQZkZc+EDxEmrbdGzVi\nrsJ8nhCb4S4f2rxx699oGP2l9WblSyvSXjP0zaGfGgjQBZJBp44G5fGnpzTRuac/w6U3hPms5Llm\nxmwxY2Wj+bUPf/ADv/bYI0/9xkef/vgff+a5H/yxr3z1a5M333yV2eyAvcWclHo8jnGPRIk05owP\negSjlw7rhXjhLtYQenMW1mGq5TpoQQ2y9+WKeC/gxJBXYb7pMQcf5YZoiWSGakSSEBondB266FBL\n9LHM461V7XWvuYoRMLyETnXJnuTg4IDpdHrnW6+l5Xwn88om4CLqipKJAmqJSCjhx+YIVloUVhig\nqhWJN6lJtlS+V67GNcG8w7VbSGNIvh2sFIHzF8/y7tR+Mmm5ckUnB27MKE9nlKY84dlwVWbk0lMf\n2k0U7QfPmdiXMt3ZRICFtuyHETMg0bdZDBdhc7FHyjNwPvabr37tk5f2tj6wfv7U7t1nL84+3Hzw\nr1zkwr+noi+/+1r1CY6d7IkEWiZMxspd99zD3paQU3ngF/OOtIDxeONXjm2c/I3PfuZj//5HP3bX\nP/r1rz3/p7/8W9/aePG15/C+w63ocqgqosZ+LCN2ZpFxXkEWM+KiY2UyZupOpnDPumnHijsxQ8oi\nWRpxhCheenXqEAhobeNo7RPijmcrLAUpuYYNvBc5CtYctmi8AK3adT19f2ftxdD+qJGTWvvjyzwL\n0cLYqFpaVFKdVDqJ+8C8Pzyfo13HAmZYxTHe6++67r3nGlRIOUdTWfaNpLJk3R0JskStD30qy3+n\ntldcOkDJ0pJCJAPZLZqXJvS54+eJYvLKjTc2ru7d9O9demVjeouN85fPcvPq7r/04bse+fzj5+7/\nN0Zt+5cz0+WJCpCyIEHozVhdbVhbjYyP77FxbszuJmhbzqXvMwcH0/0w6X776aef+Ob66tn5229c\n/xffuPQKfT/HPRPEaiUueCj6Go4W4RUvjIlYQWrzcm+sTiaJeYkyUsiKUWotNJR5XhkE4qVf6EOu\nkx31AjaqaAEljzz8OsBdS5amv7/lOD+0iixVW+krlg8QcpUhKki9VghElrqOQ6ZWM+za0nGpXQQC\neEQkpqF6/N0c9aIs9OgQ7wDrSZVF8pJG2B3fU5UEqNeuEBi9UK+dXg1OxsRKMwIn4h40qJu7TA/m\nvDN7nVs3npNnL1/46GMPPvnvfuS+x/6pJ09c/A8FeVlgG+RNjnSzci6QTWyNtm1YW52zmEf2DhoI\nAxCbydlmZ86c+avnzp/7U20zOee2QMII8RIaRZUgqVTEoogoGgr+uezyVvgneE1lzBBkUL4jDuV3\nGetb5jp1nrDU++++aL9/CirO4fn5YUl65DyGzGv4mfc/NRkqyfxuoHRAvr/ypW/Tp/Su9yesrkx8\nZWXyu9XnOXLu1RCdO/QhBssr6s9mhjltyvl/gqChCWgOuBp7/Q77l6fcOtjb2Lly7Wd3T9z36Z27\n7useuvue//z4yur/VlQPBDkyCSOFLqeONrAWnVGEzUtGbIRZCrzw/Rusrq73K5NRL4N8k4aS2kq9\nViqoa/VcejvI7EdpA+XamzlW0o2iAXPIjQLPBctyKU9/gSJ8aZVOaRCXp1iXxleOI7xxx9V4f9dE\nbde8z90KYqgkRxIqiUAm+gIjYqLLsDTIGS3vUw1Zg+cyHUJqaVk4EFTfappISvnIuVSVmjue8WGo\nHzhONiAc3F56GkMovJ1wNIRJPfr56O9FsADuNKZ+IlHKe0uJ+binX20JGUjbfOPSt/jB1WdWHl18\nYOUTzdP/9I+defszd623zzXhnr8B+h3QF/A+HS2UTYTJpCeuX2N3tksIwmze07RhYp5bVSWEIqlZ\nJAJKaFMUscN4H6SmA6lEtFIpFzarW8lj3WUZlWJ9tmRIzH1JrSjx1kwLeXgwsN89Jvq7+En/Id/3\nSqyw6nEckbwMhSIDT553eayjfBq/7W+KCPOu6/f2Dlgsbh95G09GfPazH3vPmYzHI25c3+Q3v/TN\n24xl4L3eCds/6m39h1wGEVn2OVUEg15VN0VkrfxZo8/GIkZaUeYGqevJ6YC3L7/Dhq6G9b3Jhxcn\nVj58aiP9Yxtj99W48VOw91UZrSZZnptIj/mFcxPmTyS++8wu6+th8OIZ99KA1jAQD+pDMmholA6I\nVSXGbLF4WpUyRe5WWciGmYhZycoLTlAGIkokHEacpIpeDIDSADOZlt7dD+uZSJV0fDcUfuTIlghB\nKuB5+2FiQB5F0hreFVaELlDKCBkEVKx4LSs8Zq/nU9pB5XulJJDCvZfM6srYX3r5df/GzvfeE9o/\n9/lPsNKOSkJ69K0UQ1plmXT98Gfm0LDsMCJ4LsArQi5aSUuGLCgpK01pT3UE+a9E+V+auph37Gdh\nT+5npEbjPWt6QMsu/axjf2eHt9a/Re/bnNx7itOTJ+T82oP/r+Nrj/xljc0PiM2+IjsCX3Z6IDAZ\nR9bX4gC/JBE380QiEWIEy1VrNeCWMTukP+fUk/oea0olbArZpYjqZSvVcla0JtyxNImrp7KM54yH\nUPhUbhXTseUUy5Gc9gjp+D3W9f5PK5BSZmVtQrfYx8zfc6NzUFLqV2bz6VrfLYCWnBeHlFzNJbb7\nkV5j/Rv5XRM3bl6lBcZ03UI2NtZZW129jXIDRSu1PHm3G08Jl36mTIgffRje32PV3zmSBxbjVxS7\nvc5xEZh1Da0mQvAcVDvV4FG1dL9SYpTntK2iTU/Kc6bsM8+GhwM0G/O9nmv9ZQ6CcLB68OETGzsf\nHh0/zdraMY6vnn8nhvC0YjcyE86fXWHxqPG9Z3c5dkyWkShqKOP/UDQ80EPKc0UMKh275laF26Wi\nWJXF8tKeqwfE4BVysjIH6FbDjRYyjOVSimKGmJe+GpAQImX/83ATbPBwFOBSrHwcNay+T7TjMRfu\nupvNG5fZ3boJwpLTDaCSCUEM8vVGE2E0Ytrv4qbEOEJyoUEzGLcPYxoVrad0JKMGLHVMD6asrTbs\n7e3w4AN36z0XzjCd395QT4ueRT+tFOsjxlVCm6iGJT1ogBjMChSBHCa7cGhg5b0oWcrZxqh4AlHF\nSwulF1VOrOyjmjHThpwVy6iVDGjsxrptMTOYtj2zuEsOW5xs97HWOK4tp+IZUnTcLnGzv8r2zjch\nKePdVe5d/+TZk8ee/IsnVh78i6b5P1KclB2VAFVWAS9cPTUlEzBraWIEm2PegztqR95XnessITQu\nRV7qz7mKZBGIyyapI/hhriWeCzcLwbWQx7yq7hVqrNSU/zb0+9CtvevJFhH6Rc94ZcyFh+5GApy/\neJH19XWS9fQHB+VmxFgE09p265d/+Rf+8tmz5+LNrf2ns/ixpp10TWh6REzERUTPKpwGWsPjYFxD\nmdw0sY9On1OW48ePX//Ih5/6aozxpf2Djr6yNYbkei4goxHMu3cZWO0GDOD+0ep12ZF4b9O78uEP\n+fHUjGPZVwBEggjMUsP6KBDLMOYyLpTWVgEr1QNtbvA8IqYRxBZjRK+JPixIVATAIv1CEFOSwPXF\ntVY5+7Oj5szJSbvyH6nkcn8l1FwWikfIpRr3Mpk0RKnDRKAakBluqeTfGpaFzXAdVIQgBZiKJVmT\nujCpUF2tMj/NS15jUr52L1ypoKGAZxS6X33p4uHEhvxCDm+M0C06RuMxdz18N6FR+tJIZ2VjnS4W\ntqSnTLe/h4TIaNSkj3z4iS/ec99dXz1xfOPRS1e2Vrf29nbW11YXIpJEREXk7oDcA4wyeQxLKpe4\ne2jaZrcJca7JdH1j47WTp059exyb1KdUjUqYu5EEpuIcO7YGMoVpVxiLh8ZVyCU68LoOE3WpK1mW\nJjF0LMoFLUaXHQtGX8aPlv+e3aK7c9BPmHaXEbqUzVxr3hgYyI+JkUG7aEhplSYtMG/pNbLQHWYy\nI0fHQgZGhD6wmhowZz9eYZHuAu/3glQ6OBSOnmnFSwwk4WqIDZx6I0gdABgMzUqP1y2XdKR6LDmS\nXgfEQ5WNPGz8WVGCccsFb6xIvSOlHDVf5ugDXe+o37IjtZOBeLbl47+YL5isTLj48EViq2XEaQBb\nS0OeldPH8Vw8ST+fYu5s39pmPFnpPvDEw9/f3nuRH7z6GpbtKN7yZlhOXeRlWBw8R9M2JZdIRjYY\nT1YYrUcaDUw9kzEO3OgR2sGnbKyU9zddIEGH3DKUTkE1Nhs6AocVVbXo2wd6By9GvQHmWP09t9o0\nNYg4b29fok8HolUxerim5QgkVVLdJdTk0myLFklZ6AHPAqbL198KVuQXkmIp4B678kqOexlRM1Kw\n5RXTeo9T5Zk3SM29pE5lH/rU2uodnPdA7rTlvxfjKpQpU7HB/Q3Wa7hJ+XCn5HaFt2VmEGTwVctz\n8+o6srukqu25mC+YrE645+GLaBPpO79j28f6Eo3GG8fZ35wyXlVME123qAY6ZzFf0C0WS1qNiNQm\nOqTBuPTQuBzHNCC9kfqikdDhLMTKyHt9IpdPWNkGhW6slHOaLiooIlGGHLKmBO9m0UpdXGDmtxUL\nBRw1Yh06EZfy9NcnV2p4bUODSkvK2ZdAx5LHFEgCi2i0ueRjwZQmr9C70eUF2jWE7Ij0eIDtEQTL\nnDTBiUDTFWWhUJit9Dgp4Kaulb3rBiREB0JmQ5BQMM1KsRoghxLlyjm6WYEkzLBkuBXHEovhedE7\nz6VaMvUlhdgsk6UsBjgsww/10otnKzhzebIzKmJN22ZLxsraCnc/eJGmjcwXGQ36Q7Gy3Gf6WVET\n3BidwVR559o2q8c3eOrDTzIaj4sBiCyRbz8SpoZuggIhRoIq6kLbtshkxCw4qQbzSh+8HQ3zch3D\nxkpJFfrDwCA65Jq3B8xDb3mYo5SKcbgR9ckOWpWiB0Oll4r2dLmnyx0qWuyw/vGSYJQnXzKYKH0M\ndM2Urr2JdBMMZSFzTBKBiGRltC9En5DGVkb3JY1KGZZQKQl9EMmCmuSS3CsjTIZ4dFhgFTJoIRaG\nPBhSxqxIgOZkZMulrWSBnLPiSKw8KGWoBtw4ZMAZw/Pp1TUK1IT38JZWRhMCZDNijL6xumrHTx+n\nXR0Rm0C/eH9E/t2HBCdnZ7U5QQqZK9d3mKytcuLU8WH4txqXLb3UEEuszlQ2KFLJihoClg1vCks1\n2A9RGjj6CG2sEFMi3+xxM0IFbVUO368MxEcvvc/hLeaa/FbIt3Q/jkL3xeAUN1Iv3H3iHEjnb29e\n1UwZjyvVWAW1HdzKoF0OgRT3yVHQdAp8TNdmenEiEc2BcS8Ea7G2aFMk75pMR6IvvcdCAkiKZvUA\nFtDQFqE4z7jpkthUJMoHr1XgqjJB1aNELBXcMhWvrTZ4LhfX3k2ToKS+0JgRXJpy84LQYMTclRH4\nuIIxRWWB0RSrVkG8r0VWT/asU8/N5NgKK6swm0Lblnk4GWg6lMgqRaGsWLjiHgbdBsieyoLNpkho\nz+eliepL4/IjxnUYhoqBFMlKVUVzZXqEZtl4vdOhFcMaQr0rSBtZOX1yd7RxnP2+IeuiCKq5ozkS\nrGXkgc02Mm/hWAPad7SLnrlmOlmgZoxcyJboLdNZLqryLiH3wmSyz9rKGgrjN29d9WxaCJuhAS/V\nXZAiEWVpQfYe9RZfjNldmWOyQOhp3Ipn8sIvc3M6z2QVJMcej7jUKfUY0DDpJDTZqLlik0tP0soV\nTArZDSWipVFIzoVDLyZIktIeHIgClsg5i1c6bazOtzwntbcoWp8Sc2Jtu6il8hTFBkKLe19R8VqO\nmhV3G5TZfLr2/Esv/tLZs+s3z589fcXdOnerwtYBNJqIWqjVV9d4EBFVlb3YszmZtLshaBdEJQcJ\nrj4niKsW63QRVZHobivAcXdfGZyNlXE/iy5TDdqrSiel/jaNkiXKoG4U3UXciK4iopLns8Vpd/4t\nVUXcNcYgfQj97sHWvbv7e3RWkm2vbSgloASwhl6kKPpJJncLbNHRx8RCF8Te0VyA1A5lUtX+SlEr\nNE1PJtObjLP7PzSMk1gFh0WoIsQlRJbPkZyEBZmxJKJndBDSc8dyaSRnL15QREwGIJhQsbnoIuHw\n0ZTCqBiUiUqNYIc+ekliKNii1GHjwSHXFGAZn6KVmjzgLmlI98m4J3LOZBGyKHloVkeBpsF7XYZL\ng/KkqUMcsT93/fLvPPvzb799/YnzF87dbNtxSmauWkA7xTyIWBmqFc9BEAk5aLvTaHtjrV250TST\nA5pWUyT2UaI0YSRBjs88He+x1aC6IsgpF9ZBohToQJJlAfEYY45NtBgbCzEQRN1j8oH7ftjAEkEV\nVXFEmxjDfTEERGHclK1nL760yXfe3iaqg8cKOWTQgrhnB82OJEGTQA8+z3jIBAW3TMpWJ9G1NOLN\n0eIcCFloS7GWW+P+kQkjEyammCgugUTRxAAlhrAsHsjgqqSKWQmhzGSKV9p0FRIZcieEQ12026vb\nYsta6xpBZWhgCwxUGyvhXtxJ7oiVSrwoQC5xvcKKMHOpcXKJ0RSnWBPRQZqoUpJFtaxwS6HgOINT\nlMIME41kF65cuzG6fOnSw5PJ5GFtWnIuXfScHfGeIOVCiQhZQLVBpTXVph/reB7blV7aseRWQ2o0\n0sRWQ2hm0kvSssIlhgAhEEIobl6VLidElRgjsYnEtiHGSNCyBD1jy/V6QcvvSgiEoIQQiDHSxkhs\nAk0I5K7jrXfe5vLN7VIEaJk6LwO5cgdqhOMpk/u6JyjUMXmnYoiAeuXFiS8b1+XqLoLov6sq/1wQ\n0VAp1GjJFXP9OhKoEh24l0Rb1NCqtSXLU6me5vfAFTraSqvfWTayzSrLhCF9LH/fBjuxpRE7UqAI\nMXfNIO5F0EJsICCXbQOZMtrtWr2YRKwZlzcjQ5ldEuWI0qnR565QRg72CcShykc9kmoTd2AzBYmI\nGE6v5jJayHyUA3jsSW0kh0BuGmgiohkNgkZDo1PtCxogFKUWUUeCISFBNFR7VAMSy+yPSjGkEJwY\nQBsvxtYIQoeGnvFoxEoLaZG50jfcyi2rqZAPkxnZAjEWLX2reV1MTuhBuox0iZANCRS9eK1UpQTE\nDJJxDZEgbB0c5+TaDk3oexO2BkEM0YzWIkq0UI0y0DiFVK4NvTg9ilgZ1BUNlP1K9ev39NqH+Yey\nLbeW+keKmcGrhUJZr2avLuV+Dy29o6OEwyzEIOVTMdHo7uJlxlCWdBsvTeyci2Fl6mq2I5btGpYc\nr9J9LM+MIeVpsbKNy2zQdIikvi+pdhyVXK0SM1SKAmF2BRqkHZE9klXJEnAJ5Iq3hPoU+/D92h/z\nOvUuISKheFcJiuvhRwEDSxhBY6l6a89QUZJBiMWLLYCRNtAICwK9l6pLBwLjcC2O9IAEIBs5JXKf\nhr4kpqXv6l4E60yXjW0ZOiS9Bjw4JZ0cQOLDlkopRIoKtRpLnM+ssBN0uLdmZXazGsPvxlPVpsNt\nHmlgsB+NXO/5QA6Hkmuks6HR7YdMVBHzkjKl8qMuhvZlhyCaCmJPwEKLNy22yMXg3HBPBK+hFHBX\nxALiClmwoh1RjTCArNUcjQqEFqNCA4nArI10ocE0QChENm+c3NScsGqtl1e0ZQuicLoL1SAqhKgQ\nS9iTJqDSlNdXIAQslJzCRPCgoM6oiTRNg6kwn4zwHNkNkU5CJSgOcwNa8k2BFIVQImDJvXqDPrMU\nR7Fq+QahN9R7PNed2g4bG/vEmHCXFuW4B0FL3UOs8ueoF/AUiHoYEq1OfjMMLRMQC6WPuVx9fNgr\nHHxXNc5E0eeltAPvYHxOQeq9diYqZifLUQRZOpaSd5jUFpdEFRlQxKP1fEkIhdrtLrmvVh61aamT\nBjcq9b/CQiwrWLDiVlVacMhJSiiRhpxKcxwtuU+ZmikLo1IsHsTjkEBWaEGdbD2xKbiZa8GxRA4T\n1SBVeUcDQbWqAg6STsKkHdG2Y7IPraLiqbOWyizE8jeCKE2MTJqWLJlxrCwBBoVCr+FVsFrJqRdt\nDa+kupxzadfUCtKLDgKeCvukrhmuKXp9KCCq6J8u8JwQVImihKjLzoPG8jCGI+HM3JcwCsuqTasn\nWYLEXn5u2RU94rl+GDmv/rIffh5A4aXqdrWDQ8KgCTgxFEk5U8MlG2J1D3SNneqp3EhXYmjQNkIY\nFY0uq3pNrqXxiYJFktWYPVChB3ajBhbIcpijzPFpbXgLBCWHlkWob0ac4KC5CM4F8eLZpGiBienS\nQBUneECbpvIbHV+kor9eBwsKm6Uqp4ayxxAtE0XBQHohqqCpiJ/0ex39vEOnxji14CX5zu4QpISC\nWLYUqMEkKmKZvluQRyOSJ8wSMURCzkQXmpQZ9z3trEf7nOhB+0Ss2vYRHwdSyWXFCZOAaVl7bJpJ\nORNxohbvYV4AWzUluNabH3BXcpay5a20/azQhior9GjIdFAJywS9gAeVK0c85NtaafdpLuTBEou1\nhk1DkqPpkJ5Th6ed4fXEqgZCDTXlUagtAVVCaGjaBm3a2o+oljwkihoo41RapoQ4IuhaJF5r5VSl\nEUWWBLoSOfx2pLX+vGopvX3Rk/u+MkyloPC19yUi2O5upQnJ8NYYaI3NqIQ8CXU9sSga4xLN1RgG\nH0wUpQmBNO/Z2t5FtrdZiZFC2R1o17Kk4UC9qJbJOWGpL4It5Ipcl75i6BIppNoqyW12K+oolZbm\nyvMS9GkJLhJ86ZnLQtHiYaIVDzvIFmTjkDfnh1GkoAZ3oFoP165Uq++Jh0PxNZTCh/M+h+2sOjBQ\nMm4v0Ix5xjyULXBAFCtJJrn0uOKQkElYNmjLtqxct4w1SByhrePBEGvKqL1UuvGycqiJMxUbkUPX\n7rk2O2tjNi/fVGnsDcamqYTcQEb7ismolyVKg3xPnUoZNE5DvTIDxXmAAZBAkn06nx+hzlSPWvdi\nC4IkQ81pNdASwIyVLhO6HrQpm9A8L72xSbk2WKbJTjLD+h7ru7KDxxOG0JggGcI8QeyxPuHmDTj7\ns4a1VUeCLwj+71vj/7ZrCh4TQVLx4MR6kxOBhHrZq528jK1RFKcIBMy1RBNXkkl5YI+Y0LtyLpf3\nLGGqhKRhhNALciDuqJUwLOa111rEaUQM8QTegLm4u8SSFPqS0TCQwIY4OjyVRVnOiguJDWnklQJb\nmYhy2DAeGHvDDXQv+YEKS1DPzdFBkrLmVaWCVQ5nj8q5pUrWGyaUBsrKULFwdFRsoBXD8nuFGpMR\nTajWHt/RKk+HlS4CfY+lEqLmyZGcS8gMsajWkGoYqWepWui+VkRSNDvWZzyVrrpIQeP72qAOOZEl\nlbwMW82kkPqYTRJB3URDKtBDWdJZCtwykEqNJlqrNHPFrG7KsMKMNTmUH5MBHPVlag6351d3mEyW\nI18VdH7wbe4DfciXOGg5B8fEKuvclvSbWEvHsntumKuwYiyGDckPlUaAWC3PK5I7uFz18ss6eB2v\niszueEW21EtFkzyQXYlWdE7daz/RiqGFXEvgOrnrVE2CDKMulwWcXiohqgcbOoZRqnZV3Yo2REVF\nSs6i8xrGhwULgkgiuoJkNBvqmSZDdKFNBVOaAnsyKVPph/2SAsUYVSeirjPuEnRWQ1rxil396caK\nYRlGUpvMxZszx2c5Nk42GZvIL4q6SCi5kYoQ3dE6woWXNltRJtQyjGuCZSF6KUwSgUOZBBk4WTYY\nVim8BC94TkEs3Cvl+dDABs3awcCWplkvqudMIQAfTgsNz61Xoo94HQlKlpdcLR8UZXxQ7Cs4iwZo\naDE9bIMshfLRusrQyYSlJRerLVWvmdWKCUSaI1zs4r7LJkM5bECrkLXCDUrheNcKxawmlsNjBXR1\n4GNgKAzeq3TGV3EZVTkAyucKJBZBu1S0+D2RxIhmlYlp9C5lsni4DloJlDXXLBJKgvUFnc+LvuCD\nmrGymLTQpTqD1ggGDbo9ktBJFoIaAqFx/0caRFqE0fCQ1JXEWrXKpIpLmTt9LvAEVs+tov3JSwVb\nhlwPZzSrsx6OTBVGfl/KyhEoz2/jchkDf6YwUAdAdbBGiMPTN1QK2QqD0YMWIVoKjcUklCGDQU+0\njbU9VIDJrAGlWdKkTZTca6G6eC5YmSRyNhrpGQ2LC47q0Qton4v+aTlb+mikpq5hKX2imqjWJ7lW\nJlIBXc8l1KodDQnDkzYCVlgO8GoG6Wvw7XFpCnzigYjReFneoNrUzSAD7DI0cwsvSiTRoESr0o5Z\noPMCnAbHAhAyOUFepLIsvapPq2PRvOS6qDUut6LrqWhCzEUzVjXWodyqk2NSqefDJKAVqrqXM8yi\nLBzUBk+UhoGoJbu15lzvi7Ie2kgdhM0c7jMyCnW77leqmFHJg73Wh+5EJxMN0z47KS1PcPmf1WRR\n/RC9q1ypEh8GCy7E/RTK70Ua2lYK47HPaErklDBxQlPUcJZUGZc6dAumwiIPDNcy4RwG9qc2oBWe\nqDlIyd8G6nAx9qPicgMntBhiEY4tO4sGz1MxNu+LUk4Bo8rvBCHV/C1IUzyCKNrEsnZOICcj+gpJ\nDQkRtwWedsES7aJ0ARqFHI2YhbhwWnXGcxh1tjXqDF/L5GAY3maZi4Y5Eqa490WJOmrtNaeS11Gq\nyJSNrBV/VCE6BC/0KBy0h4Oc6HNAhUY9o5IKUTC2hNB0qiEtp4AGo6v5p0sR1PKmsCOyOD6fcZAT\nJoE2lrZetgK6l65Or8NVj2BINpOUXSwPq3IKIFjuCl7YeVXpuGgKRIpx5ao1GswxUVJQPAe6viTK\nWRJRMtGLpwkUsd08BHGk7vShwAla3O+Sr55tWVqDkrxHLRcANRd/LENuKE7QpjRTB+NagouO2ILG\nOjxLpXIPFzNRzqxsmbVcYZhKWswI0WNRYBSryHxpxZCL4iLqRa/KE9gUz0bME/AWL0u2aXJAOwjq\nxM5oku+2qVCFk2ZwmWRfiEiHxDJhoyEjsQCiYajaagGTKAj9MPgbM8Q6fxprAb9IiWSCuge1jIaM\nUpr+IYSZqnQsfbIX0LmGuyS5kBECZaWeOCl1LNyw0BKlcPKTGR6MbGUaW6RUoHHI4UqeIqgZZFly\ng8zKBoui6CJIExAiKWgRhZNDUTZ3QTzSBGfCPn06ABItiaAFGFQX0qCZVakdhY8PmJR9gZIPuerC\nEfR/+J2K3VTCrDTcNtp19OvB8VtFEtXGZbKn8tmRsquxALmRlLo6MmU1JAlS2ysp96Widug9U3Jk\nwXsnDn1MKZu/cgKTjGguHrKvoKQJbl31ShYIRZYomOEmTXSTBmOE0YgVQdtlRWxVhRmyVMJ1LtQf\nkWGmsjIlHJJDcqWXyEJjv9AGwQo9xwtZUWhUaHCPqLU4QpJQEf+4vK8FhBx6xuVry2W8Y0hJqi7U\nctI2Hub3Qx+pRqpsDNPYQ04kqqVHR0BiqNh6LUIq3SNYQ7TMugY0rqDqtN6juUd7R1JmJn3JZQbj\nqtWGuqJOmZf0GpKXhHKt+WBp5bx7YnpJ+1iO0fuRymYwLkVSc6RELzdEa8Fh3tP3C0QPQU8RRbKw\nyDP6WVfEmELAUqrnXBNuHfLBwtZMOSNSFjSoOS6J5EqTpaQHqS9gXdXH10ouUPFCmdNy23VokQ2F\nCsXDD/SWQhotwK5VmMCstJeyVf6DBLJozjKIOA3TmsPkRUH03YoXtCEjPxIqvV7DYTDD1JdpRUm5\nCkGxPtTFc02y5FgEfX3IRZHSUjBKc1rL5kREhUYCgciKRGyokoCkhQ/W45waC5+8eIyzJ9eZjBtE\nFrj1tFmQynM6OtU+wBeDhsIgPFe8F8vFUW4lTC2TeZbvn8yQcy2taZmZhmpoTtHwHJRbymtJqXiB\nTFe8U+13FjanQDJ+8M5VvvnS23SzDguKx3Hdh1j1qepNyKIkN0hV71Wr6qIWiCclYSHGtHPmJsfn\nuRiMDjJjRDQ0BG0J2qLaET0VjySHWvled30XZx4Kx72WGgVqhYkXLxe8R8mx4IqOklBLqEfUeqJl\nRrnIcVL7sIiSKlUqUDy7eAAv6UjAEE24h3oda4M++/L6RjWvbJDDZtPgAbIdJt2OFx6UKlFKzHYJ\nldbhyzZINmFjMubDH7jfH3/w7u+ursa/6J5XkEybdTdm33fLjQxrx4rx9Ec8iQmhvJxLqvae6wMR\nLDPK5uKVom1SP+PNcO6DF3Z3EfBgLBT6LNIYGrQkZKJFNO2wYopZslmUQgzvc7LVnKUlp3tWvvad\nP/7ile1zm/NbxQuGyLBAwSsk4dWmBwntkm8UvMsDuCk5G50n5ouerksnFl3SsRWFiuGBkSq2FmIs\nElKaD9kmOvQsbKk6NIDNg8zAIaVqQN4djkiECV6UAgevORjsuyg6Q6hl8OBDr7h6y8MJ/eLJDuk2\nZUN5lIpDBMO1UG+XJP1hgGVwkS6Khxavm0ezgskIpy9lN6CmrI7h/gvhmQ/eM/5TB5mXLu9FGcVM\nk9VidjfLS/ypGpcfDVMyIPxHgLulQ6pN4iFYD/JRA0fgXcZVi43SeSoyRSJVO0z0qGEBxKbo8NeL\nnYNL1yGnTk5XH7x3fFczWv2jOW4X6nFTGLcqtR+7vDGGZoipqCJKCKAZ94DSloImJ1LuydkaSx7E\n1Wozv1fBoxstMJaS36ikYiw66OkbiVIxe01zspclDAUDDKg4PQH3gLu4uE6DaQnh5ALDqPWinj2U\nFcWEBq9iJOqKafFYXpiYhXpjA+ZY1B2rK0CDl3GK5OKp+mDDg7uHAQCTXGgZQx5UxrfkUPcgKB5r\nQ1orRDFMCbsRotK2DeNJs9c0/qr35IGKuxwytndtz1jO4HOYCw1hUY4sHqufK9FxKGZLWPRST9od\njGsYDTD1Il1nt9HjDo9h4VRV1iuqQLcIvp2doBoCsSk8s1Qb9CpawmLKLPVZvTAWhlbUoD+lKOoR\n3Mi5H/yca6U31cyDIBDVaSpwLAP1afgBtOySHOjHQ65ZMansJQnPlA9z3XTnP18qfAjlnqlmVM1U\nMakMVoYln4fasiJHEf9DEmHR5iqvZXIIBxXKDcSD6NqLB3MXTcZokdFcPIflwiRbCPQpMSUTGoFJ\nIIvQR2UqPRJaGs2wSEw0sHJsBZ/kdnexWEnedxvjyGzR3OFuvv/hFK9A7qosUu0TLpHDoR9dGtfD\ntVjisTVcVJ5dYZBaLGPvP/KoYSJt0y+uszdbOZF7zkzaBh219E6hFmuLWCiSsSQkL8Cc1gqu524E\nT4QoYB3RG5o8YiIzQrcHeToPMk4tiUlpn08maSFr0jPJ+wgH9MHIXlaWSCz5UHIn1jXKucuk2vYp\nW92kUI9cCBbYlxF9ODbtc/PGPE+R7MytZT5S5rFZmzWT8UG7yn7MuK4WCpKXLeU5lya/SgMeD4ss\n6gocLQULoognQgIpaE4lgRY2ahxozsukePl1feJr/NGghLYsa8tBCFpkhFS0dP2tktvq3TYXxiFB\nC3k+ek9cf4/z8LKHLJAIeYpPL7G739GGtmBw/ZxWwJvAwo3J8XXCaIS0gaxCrOc2eMZQU8IQnYPt\nEXm/AWsrdvd+hqV0iy3m86uIFixHVIoCTww1XEdEY0ETvHC7iuRBJtSb7+5VpI4qilEUZMyNnDJW\n1vMFgarTWqv2I0Mbw77xQlSkviep86UD7c4PmQ9DxT94eIeg0adpYS9v38D2zuB7F2nbrlBuVLwA\n4lXWSZVB2qEo4VTP5YeRTKSmTZUJQ85Fp9QOOyY4RHOXbCZuJkXAqwCC4hlZ9KXsDUUzQoISxpHR\n6ip93+Ni5CLFUvCu0BexrwAuo5oulXxg1GSSd+RpHHoLtx3ZywKVkWbG0YjdTXYO9gmhLSX9kFxW\nHvzy/2tZPWAxhyLSsrz4xQsHGO0xDvswO0PqxmDjQYH8No/VdbeYT6+gWvhbRaBdRJoITaiv1+I6\nKuHCBCQXEUQywTKBrkwku5bztzIcqx7AF1jqsGzBzBXXXKGIXusi0hboVVDJpNp1VaUMbuT6de1s\nJCtUpKIZForIqhRyQTIFi1k9zqKPyRrLkKwoKmoe1D20dGGEa5mUUhMseckXC7utdEqsnE/ZUKZl\nGsm9sj6tLP5MRhmMEo/ByWKlWDR3kueCeeQykFC3TONWqMPjZsR4NCZrodq6FMJO8B7XSIyZGITg\nMYuFtATis9C2RnanOzhcRJBrsTAJhWF5vOkQVfa7KoDxewqmPyrWCpZbRqMdmskm/fQ0Obd4P1nO\n6qX5Jt38KkHiISvHPAfRFNsGbZuCbXkELaFiYIDkqFhXwlgo2Q4Dt92saPm7ZZJnupRIOa+m7I0j\nfSEo+AKCy3KgpBoBXhrSSqX9KJJypd0M411FwnPgeRU2KZXrnmumUPJpqfRrEesjlmJpMmNeBlVC\nzaWl4iO+zIXLNSz94wxZB4Yn4FXmEi9kBSeOEhYdd3NJZnRulWdV8ioo6oLiha3QitIirGpLDF76\ncnXHYQ6ZEYkYHbVxH71ZRD9UafIEbVtCRDd3sgurmonBOdb0BWsauvnuhKCsTNpxzr7RhjaZiGvv\n47G4WRO61kzGk+aWtgFiGfGKo0EO4F1hMQRSUjqvFJ7cEsdbRDX66WncAv18QZpepdHm8IoC0ega\ndC6jBhvFShFqcW2xqgQEGW8KQzXTIdYhkkreaIJZKnmZJ7Ibs+zMM8c7Z5QkTjOBpL6PjmyYTHJR\nglppd4kvt4SYaKXy1J5enVzCvFDUUYRA9FAm4b2ruadXXlsPJBrSQSQtomSa2vAOBIQeC1aX0JfI\nhFcVn2FFtGdCKtcpDbwms9paK0SLWPvSSwqLpDIuHjikwZQwMBBdC1CXRlqAwQqhlGc3IKZIG8Dl\nKOB/mFMlaEel3G36BadChwqkI6iqu9O2Lfu7+595/Y1Lf35vd3o6aOizuaXeV1WaTBtmCzFdOyXv\nNGsrvYyipmBKsEU1LhGwYHQU0oSeXJVfXR/F/y4vcsXlyra2ZrKJOxxsTyE2yxxnec5K8KBxEDVR\niYgHNMSS4CbQOoCbo+B9aeISijRCcKPJHWaKeAPWQd8hOSfJ2YNTJ6A8BkyiOI1AUx9crSzbomYw\niMFIbadWXKtibWFJDy/vwTxgNGVX5jAjWsgwiERHYknWpSlL1SWUAuoI/jNIVpnXUbKBKKB2WEV6\nIQse1WwrOxipOI2DWibkUAXqlb4qrpQNsEPZKcxGRRCEVDRuykkJWRO5yWjpifsSiDpqYBnWQmLV\nuzpgwG3hL4RA7vIj3/r2M//xr//6Fx/a352iquS+Y29xnNSso2NloZmz993NiYtnGG2sMA9OkoF5\nWhqnauVh2N9PfPr+5p/45afv+h/HuPbFnI9oog4CNFqGgt9zvqX2Vw0l57IBFY0ByVq3twViG+la\nxRclYdciXkSQnsYPyNmBFstzSHM8d8H7TtRHZcjVfdTgEt2IGFGMJBlVq31XRWgqJbu4BJFc1hYO\n+zm8TCRlMbL0dNbTi6wmD5q8ejSJVcwlJiFkLBAs4rSHtEupnJQiQ1lCsFVG2TK/rdQjE3ygAw2y\n2sW4FBV3JBV9TSnkwIEFli0xqhPGRoKgmEol0pUcDYrLbbxBFxNiHuGa1EIId6oOTWB1viBSZgbf\nfYyalt2tnU+8+sprDz377Ats784YrayTMnRpB6NhAP6uTJ0TiwY/nvEY6HMlL3qP2ILQ94zMmBB5\nc3Ts5I35I3/24unTv71YdLc1J93B48Edq1mPjVqzE/pYJpwaHZG1hdBiEslNQFODdDOilPZS6J3g\nCSXXdtZaydPMCB6wDClbIS9IRbnFNXnhcIk5jSaCR5IFXHpEtvEwQyVCp7g39PNISmXUT0RgkdAc\niTZmPa5zanKBST726rhpOrFR2XiWilfNyUbJPXbBmI+V3FYgNtddUNKV/Fspw8Pal0VflY9h2REZ\nESTSmhM8k22B1B3NMVeSvUmi00Svh4blbnjOtOL0XloaFoSsQrBcByyO5CZEQhoTGWMkcWmDyx08\ngULUSFOwnfccjShtbHbG44lLHBfPGjfIoUVDwVqSB5QV5hxjL55hFo8TYsOinxf9B51ifkD0fY67\ncXw0Znz8Iml8jqSTkOPKu4zLy6zkHY2rFYvT0Ie+DNyGlhBbXBuyjEhtS9MHZDoiiBZelZVY3GKF\nCmyTSraj5jVU6uZA9XTANeeiQRGARnpcxiV8x4y2+6S4KLjTYky2FabzhtnCUe0wn7PqDetxhdNr\n9/Hw2Yftow8+/q37zz/0r4vy9jiM6UVZ5EKhzmYNIrFvA/1EyFFxiySUxopOqrhgoQ6YkJCcEVvg\nbvTutQ9qNNnQ7GRblJFwRGLMpXunSYrWQXYaLcp+uRL4qASy4IeTxb3enpcM10r03ZnWez2TGmxF\nuBBbRndYcjAew2i/3RSRPgRpJUiRcZK+DIRIUyCHxglNIEaIEUIZzqGJlGpJQplOwrGmLZiPdUkY\ne+Fu3X72eL4tkT/8p4ybeRAlahGn0NiUdgxKEKEJigQtizu1hJ8iVVQDa9irnqvB6uyAgBTmR+0O\nugdVJGjFySQQmo7gRrIeWEGlwXLLOEVG8xkb8xnNrGXSrLLanuDc8XPce+4hHr3/Qzx44R45f/zk\nn0ld//1u3hFagzBCpGhuiARijD4JyohMkkxSIamRNRC8oeBrpcNQCafk6hTcBykFJXseetHi5uLi\nRBm0KOrsW6j9RTGpfUYH0VptFAOTO9yApfh/oQeUy1ZUl9/7s0DXRr71ne+RDqal5D1qfGXk2CeT\ncWnxDE3ZOmU8POcmFERZY5mXrGDgcHNdAx7isscnOkgxLllGtxnX+y50r7oNKkITIjk0hBgL70si\nGgKRsNxL9N6HykF6kKKrNUx6C/QimFS6sIgHkaJSFUTIGmi0I9AjkkkoUSBKQA1GahxrA2dWTnP2\n2D1cPPkAjz341BcfPP/w105sXLi20YxfVOz7C10Qxsp8Crs7LdoIlM1tqWlaG7UNURNW5TsGpWvN\nsUyxSyqVqsvQbD5sDQ43vard1Cl/HCT2Zel1WX7mtQtmjoSSi/cCol6a1KF4rPA+6nzvujnLWZI7\nHUGE6zdvMt3aQePt6+ncYX19VTSG5do5l3JBslpRmUHoxQuFuBE8ChYiHqoqDo5Li0pPn5VOS0+w\nrNCrH+9+Udc7ei5xLeSipsHbBm0KUm/aItoUTQbKWt6jIiIgpU9asUCptJUyzt+CtwptnaIIgPfq\nwVUDjQY8QGMTWhuTVdjvjGwTRjZhdRY444EHTp/lnrOP8MBdD3Hv2fs5fvzsv7nfhv8uSFhO+4yb\nSanmRcpU+ThXUNZm45F2K6OWRhbAsL1MEW0K7UalyHUmAyt6qmVGUJbExLJrEdz6Inc5kAXNPeRK\nioABkCu4yrCk0obOQm0z6J0f8N/z0TQN7ai9bXvGcMQYDxkOcmi4A2ktV64/QZEY0RDr9HQRL/GB\nrFtRZguDvMDfBCzr9UkOAYlFRUcr0BmkoOFKfW3h8DWGqYgloDP84/B/QSHIoC7r7qZSNCJCVGJQ\nojbElOsqZiE2E9bWz3FifBy5eJLTKxe7h+568t+/ePL819bisUvZeGZk2Xa0DB0flRT2QTlnyPPc\nUozBxm1DqMM4KsV5iCgWYqWmFJr7MDI2sEYGkqAPTesCU4i7FVzF3cQ8R3JGc9F/UEmIVLmjQfCi\n6nYNKsPvtq+jKir1G8Hcw/v1En9Uj/F9f0fA1bAsoEYFiYoDCILFkvsMEktC0bBKMWCFvjuPWE7v\nMjH/4S+MBSU3Dd4U72hNLLpcWnIrT7loXQxBwW25RTUKw5qiwsliGDQtDFiRVLya+gqSJaA0HoEx\nLS2tFRnxlZXjrJ94gGMnH+DY6r1/9cTk4f/TpRsvXpfWr4UYZ8NKrfZdi0oFmO8b3e6Y0bmW3b1Z\n1SMLZ/KoXbfRqHh9HZGlxVMJ+Um9zkgmBuqbDvIfVbnQbchdyyyBm0vKWcUhOm5V0toLr9yq6JcP\nhGyG8fhh+vr3cPwt+TipTeTb/kw1sKp1MORnRZhk+Fq1TECGIidU6JhLof4h0v7ezkUKUBqaohsm\nMaIaCFomsQMBq68xwHaDyvSdr9rw3QxWgU06FSn8pRK+A0FaVifHGK+d4tRdD/lo9fxbEk5+5djK\nxf9qVU59/R2naFMcXTMhg16+k1PkpZfg4GCXD92/wp5GdDTi3IVI16u6RNU4QkIDIZZCRCMmRYNV\ntYiUKIpa2X09XPsBVnfPQ0GCuWml3HgcL3oLi+Rtn3zU9ZAhpoSWbTJYTkQXcr+gzXNGaVGqF73d\n+wx6UUe+kfV9Evryz7VKOjJMcdult+qO8UNgs1KS3XrURxRCUKIJXsroEJFYNFqlTiF5CHUarikJ\n/fu85g91pF5G3nwUkVEko+Q2ICFiWhB7l0huhRS8tGxk6C0KZgvwvoCRElB6YIYw64MsTFgBdAxo\nG9cORuHU+vroXrKeYtJucHb9CTt79tGDk8cf/st7+fo/t2Vv917U34888IdT55YCq3urzGdOGK+Q\n8j59f7g7MagyDsr1A/8TP9jqHrpKZH91rYjcpVIcqXmVxsyERom9oqk8uOZOn7oyzFMnwTUoOU9Z\nzLJ4rnwuBiZbTXHVvQpPDNd1qNQO9VGPPodDA/r3+xjyMB30TYMuwxTiFC3fgHooi7+rR1s6jd/T\nUd5jHLXEti9L0JsG0UjQoowYPOCx6rPWaZxhgY3WBrQlq2rZBepRqR5Rl5z+ads2//KpExf+p83I\nPiNxwbhdz6fXHv6319ZO/0oTm2fPNo8eaN8wt3lhfnqPeBlhS1bUGS9dX+XUqFqSD9eqXK8mQvZ4\n7trO4ue+9/yNP/fcD15eub65W4T2JOKZqlOhS4R+qeJshvc9uetIqce8yG0Jww6DRM5RK29TYuke\nZhnELhQK1TdnZGhMe9Fz0Lpoigr1/60fXu36TsY5yAAM/JwCRQQzghftU3UvE+AqNFIUjbXeMamU\nFNHaqqnN4Nv2NL/rXN7fi5btFzJu0UlhHBADxAYJbdGP0AhtQBpFgqPBK/e8VIlaaeIioejMFsar\ni4rPpomV1ThH/e2gk//03ImPvXpq46m/oNGi6Oj7Evjn3feW16qgTH1p8odjrPAo/fQit6Y9cdLg\nzN9zlUNQgrBi3fyPvPzqrX/mudcvf+716zNeeWfKXrcKbYOLo5ppKBNLakLrsSBA2Ysk56Ijzfsi\nHU8ihLxkC2MLxNpl0hEHqrrf6Q5LVYwYMAx/f3zhbyZB/5s1x0FIZPAoQQMeYwk5dZVuKSRDaTQ7\nS8Fa6va1YfvG4fn/kNesdJzYBEITCV6GJyTGohrtSsgl59IjlW2tZ+vYW3lwVcrq3lwqQA1B5MXn\nd/j4j0cmK0rbnpdRyzNO+7SQVjISeh+tKaP9Mp7bE3WVrC0H/QqrKz/NqCj4MeBly9snQtPAZNQe\n69Poyedfv/Gnv/K9V/7sS2++3VzZmrLbtWztJEIclf6uZUYxEF2L+JzWtTz94aiZ57LYs+iTOdwG\nRteoVk8hZlFyQLIMzMY6gKqZLKUay1Z2/mUp+p/+t8NpDReAO/ut4fsyYKfV+gfacpnRG9iasUzL\n6CHcgBTBX6XQQoKEKtRrIvQcLl4/8prCHc+m5IdF2V0aLRhPoBQJodJ8+4F0mJZMgbIAahj/ktKW\nSoVFWujWodUQc9s2HOzDaOIg5o5Ma/ox8+VNyzQYCUPkYUYSmTJEvvd6/1ETIWWmuwe/MNvZ+bPP\nvXL5j33nxbd448ZNtqcdi+wseuhyi7YjLCXGWkTvxIphBXdCKqJuWjXcLAuNB1x7fKmzUdB+ra1E\ndxUQYpmyHqSg6x+sI2KILm8sAxe9/uyS+vH74LBuMzSGLRCHI1G6ZFbWcFerSfOqh+qVbBcCKoPy\nidz5he70+lXfozAJlDDkSOKEUBo9ugyzBcX2o2N5nlh0ByQzVtsR9z94Hz/xEx/jrrsu/rerq6t7\nbdNy5ZKxetxp2tsBageilBUpe1Nnt1/Bx5G10Z3PtW2E0Wi8ujWbfuTqla1f+sbzr/+Z59+4fuGV\nKze4ftCxT2aRi4CUBy/T7mpoEJpY1sEMO6Byt0C7BZYWhEWHdH2RFaiqPYMu17DkXqsnqIAVMWQV\nMTXxgORA9MQ4OYtUNbGsJGzRChMi5koAKypvS0+xlJZe2tvfviR/mEgWrztnTOsUzHAbhj3SJRFF\nSgtpQL4LYhwHicukVQf16DFw4u7YCxXJpp7SsFSFqnTj5f9dnCSFJZKtrLzTDDkbU1tgtkfTGqdP\nneSjH/oUP/fTn/rugw/e9R+Mxvk/XMwXuNfeqGQCmUSo1XpiBOzlyK35Ot1No6Pj7L2rtxufwuoo\nEEQ52N3/+ctvXPkzL73y8i++dnnz2HcuCZcPYI8VtsZjFtHxlHDJtNbQdIr0PbFKsJMclUhKPdPp\nFOZ7aO5pOkMOFrS9Eb1I8ikdaCrT10PvkV7cPOAQF6qintB+5oGOTp1pGyD0tDiZHiHX1krJK7x6\nhRLhF8snVnBC5VEdNobfz7WVU3k/5Kza0jAlW/uIVRK7vt5wq71qPvjQWxRq/67iZF7E1iQIEmTg\nN77rBR2X7gjV7fCwoEFzik0qAnE9mU5iGaMjM87KqgZmQZmrM/cFB7bDhMTxyYjzFx7mw08/wcc/\n+olfO3ns/q898uADf2E22339YHad9fVJ8RR9YmobBBrWmLLH8QIFAa9MYX+qPNT2pBzRSksWhVGL\n7Of4oas30j94+eb+xWdffuOXXnjlzfuv3bjF3rxjN4+ZoqQQGGkovxdbBIihKV5XncaFWJXDre/o\nprvY9g1yN0Pq6hXpeyxZ1UsDaAimqGUiRQDQzMTEg4tLnMdGczcj9DML1pFcmUVlPGzB8oR5Ilkg\nZaETCBLIHrAAbtNqCqGG1EA0QS25i7u8j3HJkersjhWa+8Ldd1w4XbRFK5lPCjNT0aKgJzV8ixxB\nR2vTY2hRUEWEBVx9kHp7lzE7hEX1du86lyC02WTUB4yubPMajckx0uTEsdRwXALW9Ujq8JgZn255\n5Pg5PvPhj/PxT37ki3fff+6/PX9u4y+88+Zs79q1bVZWCiRRJC4za+c3WOhJFi5s905ojyHA1GEn\n77EeCtMzKuwcwEqbiO7/TDpY/Ozrl7YffubVGx964a1NXt2ecbNrmOd76NtceGBLXS0jZkNjUxgu\nKE0bGI2UkHvSdJvFdI+DvR1kZ5fVnZuFGVMLOamtrKFDY7mwa1ZiGbSd9wsMl4X1jXsmtn0mzeZ4\n6iRYh/ZOmxdl0lehwZfTveqpfjYaKZoBqfQC6gKkgtYaTgoSTWhzUWx87w0bDOH9c7Yd4B3KgvTq\nQgqtNtfdy2U45L2QuwzDuj5MxbDUQIg5dtEj+T3VYhFy8ztALEG0z7FbdJowEhFhjUTqE21yxjg+\n30fTlFMbYx498Qg/9oEH7Sc+8Ph//MEHH/jyyomNv/bWlctXr1+/Rdc1jJqSF+ZFYuWeU8w1Mjm9\nQhRjgXJ1MeLetojYRcrmuKG328SAKRtvb/nndw8W//qLr15bf+7Vq7x86RY3F5kDVeae8MYYa8RS\nqErXlHwqQJAezaVNFPMcpnO63V1mt67Tb28TFjPUMovKeFAZHMDwYJehjzY6QXJR8yHRNI5Kmkfl\nymTU9NEXad5PZ4v9W7fG3vXQU8ptAc9pOX2MNWUrRQX/lvNpS1xSloxmB7IQMzTvN4P6u+i/7CNc\ncveP1A7UkZxOjmRbtxNodDiPYWgWlvl70RfVLngk3MG45H2mjUTECNEsBFLVoVc3rDf6RSKhnD19\nmrvbx1l55CIfunjy+kcfve9fO9WGf+veE2tszWbs7k1ZHQ8Fh+DzxHh9xMb54/QUEblQBzBafbdX\nLSyS4ytjru3sf+Lm1va/9Nzbm//AK9emq69c2eON6ws2Z8J8NCI1sSbVRd9r1IyLIo8YIdQZgNwj\nOdPP50x3tulu3YCtXWR/j/FswSQvcFF2tS2vb2UbiAQrLNgyq1dmLbRMO4kk3DPz+fTFtm2+9fVv\nvdXHU2c2rj31ocf+yxxeDdPXL31q5tNjvQmTtsVzJlkmmZKS0luis0SD4SGS3IpspQNeNmYUfcPS\nmhWxHxoWf8SxAG4evfnIUq/90LDkXR9L+6idez3sLAiCqTbLHO5dN1AGtcL3PgkibjLq91k/uMF6\nEFbbDWLjnFltefTkKZ68eJq7Ny7+K1H6F9+5vPvWeHX1ma2b1zkzbtjbT9x1YZ0zJxu+8uVdTk46\n7MHjjDYmpXTvlpMuDM9Cg0oGD6JhbTz++N7u7Ce+cnP/5166tP3Yi5dvPfDq9R02951ZBzONdCuK\nhzKtKqGkLtYbKeUysRUCK+6smOGznunNW+xdvwl72+hsiqauLK0QY64l24uD5LoqGp02BqKWabDc\nzUGMg/kBMcKpE8e68+fOPnvfA/f9J+fPHX/2xs1t4vr6yuyX/4Gf/0sf+vjWq1/77ou/9PyLr//C\nt7/7vSe7xWJl1ER8UbZbmSdSzvSU/ThlE2nFxSj7ojlClqv8hR9C6fqRxmU4acmNkgE+GMp7v6Md\n2G3tqCMQ8fI7WjU/bg9//h4feLvvym6CJyaSaJqGs6uRu86d5gPnz7/55JnJf7lBuHI86n/atGFz\ntREWBx0C9AnW1+CuU2NCCHzq0yvMGPOqtzSSqyDx4bkI0Jnx0vau3782+olb+zv/zzfevnLureu3\nLrzxznZ4+1bm8j5spUiSNbQdkaPXBF2rB3HUShfFyypNGg2ExZz9W5scXLtG2ryJTWdoP6PJPeoZ\npzL7KstYKnisQdFQujM59bjNWcz3QY2NjdXFE0889OLHPvrhX3/8sUf/+l13X/xa3/c7KaWyWGp1\nZX1+331rX7lw/5kXPvDE3b99z8XJz7/y0iuf27x+67HN7by62F+gHcR+ynq3YCLGTrQylWtOsFKF\nqEEXIKnQZl0EYxqMOx464GfvHx6H/s/tRuBLcfL6y9VVLRM4q4ZYhUDq66gYWTNZF6Os7XtyrgK0\n5jtWiwjdBrPuCT2AVeHMuQ0euPcsj953z79yqmn+0o7q26kjzXoaAnry+Mgu703xBKHJbJzuyqNm\nmVOnG7aJ9Ne4zeiHHQ0KIxH9zI35wc++vXXzj759ffbw956fcW3T2dpr2crKNIxJ4wmxnZQFo4sp\nnmZolQUNEpAwYoxxfDGH+Yzp3g43r16ju3UT7eaElAh9wnPRtCj8PymgM+BuNFqgkaLZUWcdoxNb\nOH/m3MGF8ydfevjhB3/rYx//yN/48R9/+ne2bk23VBu2d7YwK1Lh9H1PMiOupK3777vwqx94/B/9\n5vee/f4XXnjupZ//3nMv/8z3X37zif1OmqhOsIykHmsGuu7tIOcQnsRlV2Dxfrbzu0DBMjB9/3/+\nUX/hTiQXx0uZvDz3o/962D65/W+bma6N4tsPnjk5W19tXnniyQf+ndPHVl8YIc+3i8WNkJydPMGR\n3h1S58TJiFN3nWQl7JW/vkxInZxu58OpwKvb8OAx2hzst9988837n3/77RNXd7dldzbinaur7Bw4\niQl9aKFdgdGIPpQBVm0bovZlCluhlSJ5pGnBYnuT7avX2Lp1A/b3aBYLRhRoIQ5iEkol+tWGlQ4S\n47WX7BksESIcO7a+c/LE2ktPPfXolz729Ad/7ZFHH/yaW95smlCWaaXD6n85Du0OfV/ypdCObz18\n371//ccfu/+bzz/1yFe/8/1Xfu5bb176+G67cnGF3dXF9qVxt74eLKzU4Ff2/s18wWLUs99OaJK/\nbu+Twgyv98OhCOuAraOmNIxgSuWZDRroSx0vr6j9kdm74XORDzeCp1kUJR+FIiqqv7Jxgunu9p1O\nehvR/5U27f8hjkZdM55saoje9wlxJPqhQoU7SCOsnQnEOKhWB4QqF+/DUuDly4L7R7qcf/HXXt37\nJ1+9cuuxV6/uc2V3hb1ZYObrzNrjmCwIlvCQkeiMdIqo0aoxkjLd3WgqqtkH20w3t+g3t1jcvMJi\nf0pYTNGUacL/v70zeY70ONP7LzO/pRYAhR3oRq9o9L4vZHNpkhqPOJrQyOOZcTh8Gkf4MhGe/8KO\nmKN98GnCBx8c4YPDod0jyZJIDUXJFJtkUySbZK9EL9iqCrVv35aZPmSh2aLIJilRFEnpOSKAQBXq\nRX6Zbz7v79EwpOakapgQIiXKKpRVBCrAZoZEJ8RphwxNsVg0M/PjKzt3bXvp2NEDz509e+Li4cP7\nrlar9ZZrb2vHDnnP381771/RWkuaZrgAF6qHDu7/xtHjZ149+M7tM3e6yclGZvatJdlSYuXu1iCe\nsBop0AjlIYV2WTfCaAurOd8TY3mxlb7yK1Kes/M+4MJbA+33ftFd/7DF6/2Awn13x+9ozcMVwsXo\nJVsRcFsnyeJ4DqsEtyLB+Fie+O7aMPlj6N13j+iWtbZ1L/aNdw/KW919gTso9EIIh8Mt2k0UKiu0\n6ET5bK1usQVBPkAJ602uVFuPLlfb/2V5s7v7Zq3nrbViGhE0Y0msfVKVIxs2PTEKz9MoT7vtPgaR\npSjr4CAmimjXNmmVqwxqDUS3j9druv0YLpzKR+Cijsy9jYXRqdtcGM0giTGp4z6MTOQplYrV/fuW\nXjh8ZOm7J0+deObE8UO3ITaBm80lS7PhLvbX5fEBstaBSDJts5mF3PWHxhZuH0jEs+0kmVptd5ZW\nG/qR6xvdx2vtzpFm1puOpJBaxPSFRcixhpGi5yFzUjB4v7bDR/Thb5397n23W6GcS9I92rYubYcd\neetuENzWPLv3dWMdZdlqKa30EMqgtcEbVwjPnXiNAOX7+KVJ2u0WgbCOsyUefFNvrKBUdIiASKgh\nmQ8SfG7ZacZlpBvdjMqgyE7Vpqvt9oD0X7+60f275Wrr8Go3U+tdj3K/QF+PECtIA/e4kt4IRgcI\nT+Dw8oYgg5x0A3L5RKB6Mf16jW61QlTfhGaH4iDBYhDKDkfqsiFlBzAWX7qIaeUJtExgGCAjQ8no\nZJFcONJeXNx++eSxQz96+Py5b4dh8dVavY/ve8RxRJYZPswJ4/Eh2jqVZdokpbFcdSJXrAb9iStB\niUvjU/ELlUbr6du12uOrnea+Qa9XyluQSVw11rSQJOoDPhf1Yb/4t5F4t9zuTai4azMiS5ExLywJ\nG1eyvoPH8e4qqKylLRUvT2zjgK/ZXiu7Ma8sIc20m1bewmE67zexzRFafiVt1V0UYX0JVZtjJaMw\nKpjqC//EjfXG165v1P92udYplvsZLR3QsSGRUKRWYqXCD11TWlhDjgwpDJ7nHCC+EMh0gEhierUa\ng0qZVnmNQaOBzpJhGq0jbQuzRWd0EX+eUOg0YWuPmaYxFo30BIVikfHx8fbevYtv7VtcfO7smcM/\nPrR//6sTk2O119+44qJZPoZR4UOL61cL7d0PTBu79tCMXOvlg6u3cyMX73Syh2419cn11mDHRK9d\nTYWJIosl3aKgvOcXK/GxXuiWtoYQzHt/eHiYcDGA1vW3hmkfLjEDIqG46wdfmbJ8rSTE1x+0eEqt\n0WMB7NvJyCCmmJSZmxoll/dBuczrWAv8hHtDC/e9FGKwOdiTGc7Y1M55SXbqRi3+05vlzX03q3U2\nBgmtLKCjx+iLEGMdTE54Ak+B71m0TcklA6Z0Cw838mW0JokGtJtlos1NkvIGul5Hdlt4SYI3dISg\nFAGSQHvO4oPC9z2EUGQmQw8D6BJtCELF2EQh2r9v91snTxz/0enTZ360f+/e10ZH5Garkf0alv13\nUlzv/TQzA9Nz4zf06PiqP5h+YVs/Onhztf6QSfoqn8std1JsLX3/FyY9R1P5uBZpt0+y9zxpv2JP\nuW/0aavNZnl3kKOdxNyq1veVgsm/y5XUdeGp6wo1EEAo3uf8ad1YncyHHDy0i2O4O6kW0Myg2lHs\nNpLRcJibwBbfGaqSyXyff1duRv9xvd7nnfU6K9U65U6XNh494dNDEosh2ES49FfPUyhp8YXG92A0\nKDIeFLBxQrfTprlZoVpZp1WrYNptVKeHF8UobZFWOTaedU+GrYlnK+2wnyZI05Qo6uN5zlE8NVlK\nDx7a+/aRo0s/PnPm5PcX9y5dmp+fqlc3aqTpb1ZUn0BxOWkNSWYGvrXL/2J2YvmoCX/S0FEpN1bo\nZspa8T6bK2vBL7ghCmfE/qi/TSJwyRV2SPC3OCNjhsumMWqrkeuYxwJnzgtCyZ1ug+Ubt1nvj/xZ\nZ660tGdq5J9n8iM3fW/0v64msqsfsJJmOF55Oty9S9xk9Na76yQwHlqAf5/Arko/Pfvi3cZTyyvr\nrDdTKv2MRs/QpUAcjhKLPLEMncnOagLtaDjSpnhk+ApUKAllSNJMSOp16uXbbJbv0KysEbf7iCQl\nlymUlggROFuxcACUQCdoYtKcQUiJygQmc+2GQAkmJkvR7NzEtfOPnPjxU08+8k9zcxOvzm2baKxv\ndBgMMj4J/dbFtSXj9jNMLRTivCxUOsq60PD3KxElaNwqkw7ie2jEX9dWcwHendVyscfSuqGIRA27\nUkYj0sSZA+85G4foAe1IxQOriAeCTi1DNJrEK8nirvlsceesYmF2dGFF8MyeAq/7StyFez6ijyQl\npagmTHeRF1qD9L+vNiPuVNtcX9/kTr1OMxIkeEOQigLrppYK+EPqtLM3BUAOwQg+udSQdnukjTKt\nW+u0Khu0WhWSXgubDggyN2MaiGGcnmFoWsShJZXCUzmsGZDEMcYacoURts9Mre3cuf3SydNHfnb6\n9JGfzs3PX56fH+2srK7Sbnc/Ubv6J1ZcW0pTSITbcLyfrIVcKLj5y7dJOj38/Pt/o5TKwc3d2JFw\n5gaNEQFSe2gJkbIYKVDCXXRkSuAFCqszd/LT3pAlruhoAWKCoDhLM0q4tJZyre0ztTlgqrL+94dn\nw7+fK+VeMXnvH4pSfNN+hCeCBXIKVBbNZIPoH3/Rip6+cafG3WqXQaRoioCKHSfxAzfPrgQiUEih\n8LRCGoHvopXIhRB4IYUoxevE6FqD/p279O/cobdZpttvYMgISfGku+pRwqKNI0h7wmUDKAvSs2RZ\nRjLoITAUQo+Z2bm7h44sPnfm1NFvHTt26MXtO2ZXZqfHWN3o0GgMfh3f/lksrg+TCgSbN1exWYYX\nBg/4zl+1UVshnWcstSiTkSJBW4rAmPKQfkDo+/SFpW8EKRqG7FkjLFa6YCgEFAoSrRT1bECrkrDa\nNKxvBFwbK5w9MDv2n7bNjX+tEAY3fJ+XPcErEur3XpUQKEEoPYJijvn1Tu7LG7X2l19b3/jr6/U2\n67U2ncRiyREFhiTnDbNXFFvmWWkdSTDnSUIhCIQiZ2JEu0W6WaOxVqa/sU6/ukHUaqIHPaxICDzH\nmbCYe/hIq3HkHVK0dlRImxl0HIONmN82c/vY8aPPXbjw+Le2bZv/eS6frxw6vJN2p0et1kJri+8/\n6HP4nBSXtRD6gvq120StFkGx+FGW4Xt5kaCQaYKnwQY5PCspCEERt4nuJwlGZC4jUbiiMoFAa0Fs\nMqz0sXiOKyXdqU+YHCaOacQxq50WN7rdY9vbjWNHZgqMpaPN6ZHC614Y3Cwq+ghj4yydyjImen0T\nNOrJ7JXb3WNvlevc6XTZzAypKGKKAUqG6NBDhwJihU6US5zAglSEMiDvKXKpxe8npI0yg7V1umtl\nuhtldKOGjTrD8S2DlambHMpc4psUw5AFqTDahbpbrekmAwqFgMXFnWsHDu5+9sKFc9+cmZ15fmy0\nUFVekdt3y/R682it8fwHG+o+V8Xlh4L1K7cYdDrIXPjrl8f3yf1/Wpc5JYb/pVh0MHSXC4vRKdXl\nZZLIML13D6Vt2xnJhSS+RyQtA+HCRVMLsbFkNsaqDKkFCg+LwkiFVgF9KzFJRlJJaG42qK722DGT\nji/PB0/umQ+e3DYJwiqqbclmPWNjo8vKeo2NapPNfkTkKdIwh8rnUX5umMMgUbG74PeVRBhNLtWM\neD5jRuN1+uhmi175Lp2123TW1onbLcwgRugYKVLUMMxga2+ppLOSMwxHVdIbUgU1+bxHcaa0uWvX\nwqsPnz/zjTNnT317cnpuXUnB6sodxkr+vQHcT0OfWnFZC4EnaK9UGTTbhGMjD1y1tiYT39UQsq8E\niTUYqZFW09msUa20WLu7wvSOHUwuLFCcn6U4UUIE0MsM1ldIP89Ap2QkKEKkUKRakQiF9QOElCRJ\nik0idDLA1DPa/SZrrZhb7SnmJnKgUzotTacZU620qNZbJEYhcpPIvO9iFYVCynAYH+f2g8Jz+CJP\nCPI2I4wzkk6D1nqF/voqg/Id0toGtHsEJkUJgRUJWmZuPkC62xIXaC6Q1g6Zqy7Oz5eC6cnJ5TOn\nj71w9uzRnxw4sPfi3LbpK51uO2m12uTz4e9lKv5TKy4/J1h78yb9zQrhSG44uf2AH3CbdCmwwg7H\nl7aum32kY6ALQ8EI/DRDl6tUNpu03lkmPzPF+PZ5RrbPMD41iRzJkQCJsqQ+aBGRetqFNhhveBCV\nWKGxoWWAR4TAZhmVzR6bPUE+X3RUPZ0RpymtVNMPfbwgICyEhELgpw6UK4dOzmwY8ZeXkrzJCJIY\n2W0RrVXprqzRKleIWzVs2kKkkQtQVQwt3L4L3QR8I5HGODy4diuWtBkjhdDs2b3r5tLSnuePHTn0\ng5Mnj/xMZ2zs3Llgx0o5qrVNGFpofh/61IpLKkG7XKffbBKOjroG2QOkjUZn2YbO0q4xegTg/mky\nYVwkr68FUrtmaZImxElMr91ms1ImvzZBcdsco/PT5EolVCnv6DFKIT33aJRagxmGcCo3cp8ICdZD\negGkhlo/w/a7SBmgfIkVAb0AsiAgFYaejsjHmlEvwFO+s4d7Pp5yeCVpDKbToVUp01tbobeyjt6o\nYeMIZRKUHSCsvufo0FgQ0s0EWobE6OGgLYZcLs/c7OQ7B/bvee7Co+e/d/jY/ufjQbc8Pl5gbbVG\nv98nzP1OL9g+kj6V4jJSImtdDi3Mks5NvjsV/QDl8iEz01PP3L67+t8uvvLG39Y2WzNxCioYQQR5\nUjLnvwo8/HxIlhlU6kIFfDK8gYW7faK1dcRIAX90gnBultz2efzpCZJRySDQWD8EZRxb31o0bgDF\nCM9NGyGIBHjSYEwfa0DJgECCUD6ZdVlffg6U8AitQ3/6iSaMEmynT7LZoL1yl25ljW6jjO0PUNqC\nyhzEyh18EdrdBSoCR8QxFp0lDOIOgRLkizkzu33y1sH9e3924vjhHzx6/tRPdOaVfT9nu+0WcZz8\nRldqvyt9OiuXAJFm5H2PXCHPRzmhSCnZuXNh/a/+6l/959179t+5fPnKV67fvHOq2hzM9QaRjLVG\nSh/labSxKOlRHMlhtLtclhjHz81SdBLTafZo1dvoap1w+wze3CRqZoKwVMILAqyS+FKR2Ay0JRuC\nTbSxLqzKGoxNCbxwmPDhdoRKORZrKCSeBpml2DSj32nTrjTorpYZrFeIapsw6CDNAN86QK9VAqmG\nuJXhjICULiJFIrDaoKRkdn4mnZ2auLlr987/d+zEoR89/sjZnw76rY0gUGaQWZIk+dRYHR9Hn95p\nUbgQJPMhj8MtWWsZDGJ27965dvLk0X98Z/n2D65eXz738ouv/ckrL71xodZsL/aSgZ8lBhnkUSpE\nDzHhSuqt5ASXj2gMqRlgBjHZSp+kXCYsjjA+M0txbp7C9BRqfJworzDFPAafQerYqxZJYgxxaIhz\nzr+Us5ICykW/GUNOCgomIZek0O/Rr1Ro37lFtLIO9TY2SZDaIoXG863LRvLFMFk1Q9oYz2iEcWHr\nVvdAeYwEnpmcHll57LGTz504duQ7hw/t+3mcyQ2LZ4UYHkCs9wnOtn+y+tSbqB9H95EM4+0L268u\n7NxzNs64fgAAB85JREFUdbI0++zirqXHlu/eefqtazeeXFsvL7YHcZimEb7nozPnrLTDEHSsy3VG\nWDApRg9I4z6DXpdBp0uz3iCcmsSfmCS3bRpvvERYLJLzfVIhyYxF+h7Cs2RCo4TEVxJQWO0yvv1M\nk7SbdKpVuuUNepUKUa2K1+6SizIsFl8FBEGA8BiurrEz6UnAanSWIIwm9DxGRscG8/Pb7u7as/ON\n3Xvnn//Slx7+fi4XXsviHlIqsmF4+yeJTPhd6DNdXFsyQ6iHFIIkStdPPnzw66cfP/iLI1cWz795\n+eqfXXn7xhObm419vW4UxoPIUZWVcvlF+EOWg0SZlBEbE3keA2NI+wOyQYv+xhpKheTnZxmdn8eb\nmyYojZMfH0UUCiQYOrGLYAmEQgpNICHwLLrVJlkv012+RbqyQVSvQtIntI6JpfOAsUgpSEWK1QmO\nhWYhjVE6Q9k+fmAZGx/pbl/Yfu3AwcM/P3T48E/3Le14fdfubXfzI/nB8nIZYbao0J8PfS6Ka0tb\nfvs0STi4/8DqzPS2byztO/TCuTNr51577Y2vXH797S9VK9X9/cEgyMxW6LgeNmHNPRicwBGppXR2\na6zBmJRqZZVqs0ZuY5TSzDyl+WnCqSmCyXHyuRAlLJ4Fz4CNIjr1GvW1Nfp31+iureJ3eqgsxZeu\nmNQWdUeBsRpjErQeOH+ZtqgsJQh8ivmR3vzC1PVTp08+d/z48R/u2rV4aXp6amNldfkDZww+D/pc\nFdf9MsaQaU2WpeuPnDv63V3bpy8eP3Lge5cvv/2VK1feeapc3jjQarfzg3jgoG1egBUSgxuXctfl\nGrIULcAIRSAspi8wzTW6q7ewEyWChW34u+aYKE1SKuZdEm6k3TXNjWWiRgMviRnJ4mFsr0Upz91B\nGotnBanNMKKPtQPnFNWCghewfXayu39p8c2F3dPP7z+y79kDxw9d2rGwUL59dd05Xj/n+twW1/2K\n4xRjbPmpp770vb2LSy8+cn79xI0b7zx5+fJbT1z65eunu93OpLAWqQLXnHVMDqRU91aGQCnSe1Fv\nkJqUymaVtNNGVTeYmpymMFZAaDCDlKjZpldrYNPUBZ0Li+/5yOHqtsWf1xaksOg4Ik4GhDmfmenJ\nbPeOHZcfOX36++fOnvrBzOzEGxOzpcZGrUw0+Fhun8+0vhDFBe6R2en0EMLU/vzpcz9ZObzzuWMH\n9+w+e+Lwoy9dvPQ3yzduPbnZ687E1qKGsXAMH19SgdUpnhRYFwgGCExq8QcJ4k6N7t0N2qQoL0B5\nQ5S2cVVqLHhS4lnhDhDGQVyMMaQ6w2QJ0iTsmJ3LdizsuHbq1JEfnn/k9Hd27Nj26tLSQvOdK3dp\ntzqf28ffB+kLU1zg3M3GWDqdPpVKzeSLxeWvfvVfLi/uW/rnmzeuPPHCK7/8t1dv3n6i3+tNe0qQ\nZOkQJOxG3LRxQekK4Wh5oQIjyRyUG5AY4SAcFhewpaQLlpJ22Eawbn4vjiKM1QShR7EYmN079l87\nefr4jx597Py3F7btemVp31xzY6NOo9bFGIMSv/+O+ietL1Rx3S8hBFmWsr5eZmQkXHv0iRP/a27n\n3PMbldafXHzppb+5ef3WE9XN+kymwVMhQRgglNvcO2t2hiEFPHxPEEiJZmvO0k0tKjFE0JkhS1Sk\naJOQpgN0FjE5XbK79u64fvjg0jNPXXjsO+MTIxf3799X73UF5XKfLMsQIvzt3uhnWF/Y4tqSlIIo\nzqhsNBgbG1+b2bb3f+5b3PNsfbN24Re/ePkvr1x554l6s7U7TbRLl5duJUsz49LBpGvCYl1S6zBo\nxKVn4LKryQxJNkAnEfmcYHKyFO/affjq2XMnnj1z7uQ/lcZKryxs39VIdZ+NjSphMIHv5X77N/cZ\n1xe+uLYkpSRJElq9CgcXd6wfO7Tvfx/af/CZa9dvPfXii5f+8pevXX4yjpPFONZk2rjwcenhom0c\nu8ul1zu4nLSOHmOzDDLIopiJUjE+fmTp8rETh5698OTZ7+/Zs/OlQtHr9voJlcom+eJ9QQt/APqD\nKa4tSSkZRBFZmpAvlOo7d+765uLiws8fe+zkhZdfee0v3nrz+hOrG+Ulo41QUmCyDCUUng+ZSbZy\naNDaBQn4nsDzbfLw+YfePnvy6A/PnT32/Zm5yUv5QqFVLBbZrK8D6lM16X1W9AdXXFsSQpAkCb1e\nj4MH5ysT4/lvHDiw/2dXrrzz2KVLbzx99erNJ5qt/r5uNypkqeuoB8qNl2XaXYyXxkajHbt2Xp2b\nmfjpl//0qR+cO3Pi5xC1PB/qjR65nD/M2/59v9vfj/5gi+t+RVHCoD9gcmp75eBB9a0LT55/7q03\nbx67+IuXH3/zzWtPr2+UH+71uiNRFJFkCRMT480jR49fPH32xA+PHz/8wt49O96qlNvNIAhptZoE\n5ot38vtN9Mfiuk9xHJOmKRMTo41DB5eeP7h/6cVLl9747g//7zP/4a0rb3/V972ZmZnJ5TNnTv2f\nMw+d/R8nTx+9IYXOpidH2dhokibJb/8ivkD6Y3G9R9ZaoigmyzTFYinZvWfbm3/9bx7/hx0XR5+7\nvXx3797FPde++hdfel75pZoQHlmWEEXpF64B+knoj8X1AXIX5OkQfZ6u//lXnv76nVt31aXXfpnl\n8r5NMzd4+ge7ofoI+v9Xh6uLveolbAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNS0wNC0wMlQwMjoz\nODowNCswMDowMDf7Dh4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjUtMDQtMDJUMDI6Mzg6MDQrMDA6\nMDBGpraiAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDI1LTA0LTAyVDAyOjM4OjA0KzAwOjAwEbOX\nfQAAAABJRU5ErkJggg=="}}]})}},"90db":function(e,t,n){"use strict";n("ca69")},9522:function(e,t,n){},"9bb8":function(e,t,n){"use strict";n("4ca5")},"9d3b":function(e,t,n){},"9dac":function(e,t,n){var a={"./404":["8cdb",9,"fail"],"./404.vue":["8cdb",9,"fail"],"./Home":["bb51",9,"fail"],"./Home.vue":["bb51",9,"fail"],"./components/YbTable":["eadd",9,"fail"],"./components/YbTable.vue":["eadd",9,"fail"],"./components/previewimg":["081d",9,"chunk-0c4f7e34"],"./components/previewimg.vue":["081d",9,"chunk-0c4f7e34"],"./main/README.md":["894d",7,"fail"],"./main/banner/editForm":["8f07",9,"chunk-0c4f7e34"],"./main/banner/editForm.vue":["8f07",9,"chunk-0c4f7e34"],"./main/banner/list":["9a22",9,"chunk-0c4f7e34"],"./main/banner/list.vue":["9a22",9,"chunk-0c4f7e34"],"./main/business/detail":["a71b",9,"chunk-0c4f7e34"],"./main/business/detail.vue":["a71b",9,"chunk-0c4f7e34"],"./main/business/list":["3bf5",9,"chunk-0c4f7e34"],"./main/business/list.vue":["3bf5",9,"chunk-0c4f7e34"],"./main/demand/detail":["cbde",9,"chunk-0c4f7e34"],"./main/demand/detail.vue":["cbde",9,"chunk-0c4f7e34"],"./main/demand/list":["67ed",9,"chunk-0c4f7e34"],"./main/demand/list.vue":["67ed",9,"chunk-0c4f7e34"],"./main/gongyixinxi/editForm":["c09e",9,"chunk-0c4f7e34"],"./main/gongyixinxi/editForm.vue":["c09e",9,"chunk-0c4f7e34"],"./main/gongyixinxi/list":["2c32",9,"chunk-0c4f7e34"],"./main/gongyixinxi/list.vue":["2c32",9,"chunk-0c4f7e34"],"./main/huodong/editForm":["0b3b",9,"chunk-0c4f7e34"],"./main/huodong/editForm.vue":["0b3b",9,"chunk-0c4f7e34"],"./main/huodong/list":["bf7f",9,"chunk-0c4f7e34"],"./main/huodong/list.vue":["bf7f",9,"chunk-0c4f7e34"],"./main/industry/editForm":["a810",9,"chunk-0c4f7e34"],"./main/industry/editForm.vue":["a810",9,"chunk-0c4f7e34"],"./main/industry/list":["6e0d",9,"chunk-0c4f7e34"],"./main/industry/list.vue":["6e0d",9,"chunk-0c4f7e34"],"./main/info/editForm":["5db6",9,"chunk-0c4f7e34"],"./main/info/editForm.vue":["5db6",9,"chunk-0c4f7e34"],"./main/info/list":["9fe8",9,"chunk-0c4f7e34"],"./main/info/list.vue":["9fe8",9,"chunk-0c4f7e34"],"./main/navbar/editForm":["d714",9,"chunk-0c4f7e34"],"./main/navbar/editForm.vue":["d714",9,"chunk-0c4f7e34"],"./main/navbar/list":["537c",9,"chunk-0c4f7e34"],"./main/navbar/list.vue":["537c",9,"chunk-0c4f7e34"],"./main/notice/editForm":["816c",9,"chunk-0c4f7e34"],"./main/notice/editForm.vue":["816c",9,"chunk-0c4f7e34"],"./main/notice/list":["0b15",9,"chunk-0c4f7e34"],"./main/notice/list.vue":["0b15",9,"chunk-0c4f7e34"],"./main/party/editForm":["017a",9,"chunk-0c4f7e34"],"./main/party/editForm.vue":["017a",9,"chunk-0c4f7e34"],"./main/party/list":["ef5a",9,"chunk-0c4f7e34"],"./main/party/list.vue":["ef5a",9,"chunk-0c4f7e34"],"./main/platform/phoneclicknumber":["d8c8",9,"chunk-0c4f7e34"],"./main/platform/phoneclicknumber.vue":["d8c8",9,"chunk-0c4f7e34"],"./main/platform/set":["28e6",9,"chunk-0c4f7e34"],"./main/platform/set.vue":["28e6",9,"chunk-0c4f7e34"],"./main/product/detail":["df22",9,"chunk-0c4f7e34"],"./main/product/detail.vue":["df22",9,"chunk-0c4f7e34"],"./main/product/list":["25cb",9,"chunk-0c4f7e34"],"./main/product/list.vue":["25cb",9,"chunk-0c4f7e34"],"./main/reguser/list":["4bf4",9,"chunk-0c4f7e34"],"./main/reguser/list.vue":["4bf4",9,"chunk-0c4f7e34"],"./main/supply/detail":["80f5",9,"chunk-0c4f7e34"],"./main/supply/detail.vue":["80f5",9,"chunk-0c4f7e34"],"./main/supply/list":["9681",9,"chunk-0c4f7e34"],"./main/supply/list.vue":["9681",9,"chunk-0c4f7e34"],"./main/vip/auth/editForm":["f1fb",9,"chunk-0c4f7e34"],"./main/vip/auth/editForm.vue":["f1fb",9,"chunk-0c4f7e34"],"./main/vip/auth/list":["1e90",9,"chunk-0c4f7e34"],"./main/vip/auth/list.vue":["1e90",9,"chunk-0c4f7e34"],"./main/vip/editForm":["bc32",9,"chunk-0c4f7e34"],"./main/vip/editForm.vue":["bc32",9,"chunk-0c4f7e34"],"./main/vip/list":["b6b6",9,"chunk-0c4f7e34"],"./main/vip/list.vue":["b6b6",9,"chunk-0c4f7e34"],"./main/wx/mini":["7f7b",9,"chunk-0c4f7e34"],"./main/wx/mini.vue":["7f7b",9,"chunk-0c4f7e34"],"./main/wx/minieditform":["2bf8",9,"chunk-0c4f7e34"],"./main/wx/minieditform.vue":["2bf8",9,"chunk-0c4f7e34"],"./system/account/center/Index":["8b8b",9,"fail"],"./system/account/center/Index.vue":["8b8b",9,"fail"],"./system/account/center/page":["d91d",9,"fail"],"./system/account/center/page/":["d91d",9,"fail"],"./system/account/center/page/App":["0bad6",9,"fail"],"./system/account/center/page/App.vue":["0bad6",9,"fail"],"./system/account/center/page/Article":["55c7",9,"fail"],"./system/account/center/page/Article.vue":["55c7",9,"fail"],"./system/account/center/page/Project":["30b2",9,"fail"],"./system/account/center/page/Project.vue":["30b2",9,"fail"],"./system/account/center/page/index":["d91d",9,"fail"],"./system/account/center/page/index.js":["d91d",9,"fail"],"./system/account/settings/AvatarModal":["5e4e",9,"chunk-0c4f7e34"],"./system/account/settings/AvatarModal.vue":["5e4e",9,"chunk-0c4f7e34"],"./system/account/settings/BaseSetting":["dd26",9,"chunk-0c4f7e34"],"./system/account/settings/BaseSetting.vue":["dd26",9,"chunk-0c4f7e34"],"./system/account/settings/Custom":["7320f",9,"fail"],"./system/account/settings/Custom.vue":["7320f",9,"fail"],"./system/account/settings/Index":["90aa",9,"fail"],"./system/account/settings/Index.vue":["90aa",9,"fail"],"./system/account/settings/Notification":["0ca5",9,"fail"],"./system/account/settings/Notification.vue":["0ca5",9,"fail"],"./system/account/settings/Security":["7203",9,"chunk-0c4f7e34"],"./system/account/settings/Security.vue":["7203",9,"chunk-0c4f7e34"],"./system/account/settings/ThirdOpen":["2790",9,"fail"],"./system/account/settings/ThirdOpen.vue":["2790",9,"fail"],"./system/account/settings/securityItem/updPwd":["a784",9,"chunk-0c4f7e34"],"./system/account/settings/securityItem/updPwd.vue":["a784",9,"chunk-0c4f7e34"],"./system/app":["4fb0",9,"fail"],"./system/app/":["4fb0",9,"fail"],"./system/app/addForm":["316e",9,"fail"],"./system/app/addForm.vue":["316e",9,"fail"],"./system/app/editForm":["6b52",9,"fail"],"./system/app/editForm.vue":["6b52",9,"fail"],"./system/app/index":["4fb0",9,"fail"],"./system/app/index.vue":["4fb0",9,"fail"],"./system/config":["cdb7",9,"fail"],"./system/config/":["cdb7",9,"fail"],"./system/config/addForm":["a6f9",9,"fail"],"./system/config/addForm.vue":["a6f9",9,"fail"],"./system/config/editForm":["d68c",9,"fail"],"./system/config/editForm.vue":["d68c",9,"fail"],"./system/config/index":["cdb7",9,"fail"],"./system/config/index.vue":["cdb7",9,"fail"],"./system/dashboard/Analysis":["28a9",9,"fail"],"./system/dashboard/Analysis.vue":["28a9",9,"fail"],"./system/dashboard/Monitor":["1c15",9,"fail"],"./system/dashboard/Monitor.vue":["1c15",9,"fail"],"./system/dashboard/TestWork":["e746",9,"fail"],"./system/dashboard/TestWork.vue":["e746",9,"fail"],"./system/dashboard/Workplace":["d3bc",9,"chunk-7e6a7aed"],"./system/dashboard/Workplace.vue":["d3bc",9,"chunk-7e6a7aed"],"./system/dict":["046a",9,"fail"],"./system/dict/":["046a",9,"fail"],"./system/dict/addForm":["5da6",9,"fail"],"./system/dict/addForm.vue":["5da6",9,"fail"],"./system/dict/dictdata":["72f4",9,"fail"],"./system/dict/dictdata/":["72f4",9,"fail"],"./system/dict/dictdata/addForm":["5321",9,"fail"],"./system/dict/dictdata/addForm.vue":["5321",9,"fail"],"./system/dict/dictdata/editForm":["8142",9,"fail"],"./system/dict/dictdata/editForm.vue":["8142",9,"fail"],"./system/dict/dictdata/index":["72f4",9,"fail"],"./system/dict/dictdata/index.vue":["72f4",9,"fail"],"./system/dict/editForm":["8f60",9,"fail"],"./system/dict/editForm.vue":["8f60",9,"fail"],"./system/dict/index":["046a",9,"fail"],"./system/dict/index.vue":["046a",9,"fail"],"./system/email":["af4d",9,"fail"],"./system/email/":["af4d",9,"fail"],"./system/email/index":["af4d",9,"fail"],"./system/email/index.vue":["af4d",9,"fail"],"./system/exception/403":["097e",9,"fail"],"./system/exception/403.vue":["097e",9,"fail"],"./system/exception/404":["d250",9,"fail"],"./system/exception/404.vue":["d250",9,"fail"],"./system/exception/500":["656f",9,"fail"],"./system/exception/500.vue":["656f",9,"fail"],"./system/file":["cbf1",9,"fail"],"./system/file/":["cbf1",9,"fail"],"./system/file/detailForm":["7e37",9,"fail"],"./system/file/detailForm.vue":["7e37",9,"fail"],"./system/file/index":["cbf1",9,"fail"],"./system/file/index.vue":["cbf1",9,"fail"],"./system/file/previewForm":["f66a",9,"fail"],"./system/file/previewForm.vue":["f66a",9,"fail"],"./system/index/welcome":["c5e0",9,"fail"],"./system/index/welcome.vue":["c5e0",9,"fail"],"./system/log/exlog":["99111",9,"fail"],"./system/log/exlog/":["99111",9,"fail"],"./system/log/exlog/details":["fad9",9,"fail"],"./system/log/exlog/details.vue":["fad9",9,"fail"],"./system/log/exlog/index":["99111",9,"fail"],"./system/log/exlog/index.vue":["99111",9,"fail"],"./system/log/oplog":["8147",9,"fail"],"./system/log/oplog/":["8147",9,"fail"],"./system/log/oplog/details":["06c2",9,"fail"],"./system/log/oplog/details.vue":["06c2",9,"fail"],"./system/log/oplog/index":["8147",9,"fail"],"./system/log/oplog/index.vue":["8147",9,"fail"],"./system/log/thirdlog":["4150",9,"fail"],"./system/log/thirdlog/":["4150",9,"fail"],"./system/log/thirdlog/detail":["a3d8",9,"fail"],"./system/log/thirdlog/detail.vue":["a3d8",9,"fail"],"./system/log/thirdlog/index":["4150",9,"fail"],"./system/log/thirdlog/index.vue":["4150",9,"fail"],"./system/log/vislog":["e85f",9,"fail"],"./system/log/vislog/":["e85f",9,"fail"],"./system/log/vislog/details":["fed3",9,"fail"],"./system/log/vislog/details.vue":["fed3",9,"fail"],"./system/log/vislog/index":["e85f",9,"fail"],"./system/log/vislog/index.vue":["e85f",9,"fail"],"./system/machine":["2537",9,"fail"],"./system/machine/":["2537",9,"fail"],"./system/machine/index":["2537",9,"fail"],"./system/machine/index.vue":["2537",9,"fail"],"./system/menu":["f794",9,"fail"],"./system/menu/":["f794",9,"fail"],"./system/menu/addForm":["b89a",9,"fail"],"./system/menu/addForm.vue":["b89a",9,"fail"],"./system/menu/editForm":["c8d5",9,"fail"],"./system/menu/editForm.vue":["c8d5",9,"fail"],"./system/menu/index":["f794",9,"fail"],"./system/menu/index.vue":["f794",9,"fail"],"./system/notice":["202d",9,"chunk-0c4f7e34"],"./system/notice/":["202d",9,"chunk-0c4f7e34"],"./system/notice/addForm":["26bb",9,"chunk-0c4f7e34"],"./system/notice/addForm.vue":["26bb",9,"chunk-0c4f7e34"],"./system/notice/detailForm":["08fd",9,"chunk-0c4f7e34"],"./system/notice/detailForm.vue":["08fd",9,"chunk-0c4f7e34"],"./system/notice/editForm":["58cb",9,"chunk-0c4f7e34"],"./system/notice/editForm.vue":["58cb",9,"chunk-0c4f7e34"],"./system/notice/index":["202d",9,"chunk-0c4f7e34"],"./system/notice/index.vue":["202d",9,"chunk-0c4f7e34"],"./system/noticeReceived":["3e23",9,"chunk-0c4f7e34"],"./system/noticeReceived/":["3e23",9,"chunk-0c4f7e34"],"./system/noticeReceived/detailForm":["cbd8",9,"chunk-0c4f7e34"],"./system/noticeReceived/detailForm.vue":["cbd8",9,"chunk-0c4f7e34"],"./system/noticeReceived/index":["3e23",9,"chunk-0c4f7e34"],"./system/noticeReceived/index.vue":["3e23",9,"chunk-0c4f7e34"],"./system/org":["3d8b",9,"chunk-0c4f7e34"],"./system/org/":["3d8b",9,"chunk-0c4f7e34"],"./system/org/addForm":["4f46",9,"chunk-0c4f7e34"],"./system/org/addForm.vue":["4f46",9,"chunk-0c4f7e34"],"./system/org/editForm":["a09c",9,"chunk-0c4f7e34"],"./system/org/editForm.vue":["a09c",9,"chunk-0c4f7e34"],"./system/org/index":["3d8b",9,"chunk-0c4f7e34"],"./system/org/index.vue":["3d8b",9,"chunk-0c4f7e34"],"./system/pos":["83b8",9,"chunk-0c4f7e34"],"./system/pos/":["83b8",9,"chunk-0c4f7e34"],"./system/pos/addForm":["7f86",9,"chunk-0c4f7e34"],"./system/pos/addForm.vue":["7f86",9,"chunk-0c4f7e34"],"./system/pos/editForm":["a468",9,"chunk-0c4f7e34"],"./system/pos/editForm.vue":["a468",9,"chunk-0c4f7e34"],"./system/pos/index":["83b8",9,"chunk-0c4f7e34"],"./system/pos/index.vue":["83b8",9,"chunk-0c4f7e34"],"./system/role":["70eb",9,"chunk-0c4f7e34"],"./system/role/":["70eb",9,"chunk-0c4f7e34"],"./system/role/addForm":["a49c",9,"chunk-0c4f7e34"],"./system/role/addForm.vue":["a49c",9,"chunk-0c4f7e34"],"./system/role/editForm":["9888",9,"chunk-0c4f7e34"],"./system/role/editForm.vue":["9888",9,"chunk-0c4f7e34"],"./system/role/index":["70eb",9,"chunk-0c4f7e34"],"./system/role/index.vue":["70eb",9,"chunk-0c4f7e34"],"./system/role/roleMenuForm":["985f",9,"chunk-0c4f7e34"],"./system/role/roleMenuForm.vue":["985f",9,"chunk-0c4f7e34"],"./system/role/roleOrgForm":["e35e",9,"chunk-0c4f7e34"],"./system/role/roleOrgForm.vue":["e35e",9,"chunk-0c4f7e34"],"./system/user":["1f34",9,"chunk-0c4f7e34"],"./system/user/":["1f34",9,"chunk-0c4f7e34"],"./system/user/addForm":["d264",9,"chunk-0c4f7e34"],"./system/user/addForm.vue":["d264",9,"chunk-0c4f7e34"],"./system/user/editForm":["ef60",9,"chunk-0c4f7e34"],"./system/user/editForm.vue":["ef60",9,"chunk-0c4f7e34"],"./system/user/index":["1f34",9,"chunk-0c4f7e34"],"./system/user/index.vue":["1f34",9,"chunk-0c4f7e34"],"./system/user/userComForm":["fcaf",9,"chunk-0c4f7e34"],"./system/user/userComForm.vue":["fcaf",9,"chunk-0c4f7e34"],"./system/user/userOrgForm":["c880",9,"chunk-0c4f7e34"],"./system/user/userOrgForm.vue":["c880",9,"chunk-0c4f7e34"],"./system/user/userRoleForm":["4e4a",9,"chunk-0c4f7e34"],"./system/user/userRoleForm.vue":["4e4a",9,"chunk-0c4f7e34"],"./system/user/userVIPForm":["7d27",9,"chunk-0c4f7e34"],"./system/user/userVIPForm.vue":["7d27",9,"chunk-0c4f7e34"],"./userLoginReg/Login":["1d8a",9,"fail"],"./userLoginReg/Login.vue":["1d8a",9,"fail"]};function i(e){if(!n.o(a,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=a[e],i=t[0];return n.e(t[2]).then((function(){return n.t(i,t[1])}))}i.keys=function(){return Object.keys(a)},i.id="9dac",e.exports=i},"9fb0":function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"n",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"l",(function(){return s})),n.d(t,"j",(function(){return r})),n.d(t,"c",(function(){return c})),n.d(t,"d",(function(){return l})),n.d(t,"g",(function(){return u})),n.d(t,"i",(function(){return d})),n.d(t,"h",(function(){return f})),n.d(t,"e",(function(){return p})),n.d(t,"k",(function(){return m})),n.d(t,"f",(function(){return h})),n.d(t,"m",(function(){return g}));var a="Access-Token",i="SIDEBAR_TYPE",o="ALL_APPS_MENU",s="DEFAULT_THEME",r="DEFAULT_LAYOUT_MODE",c="DEFAULT_COLOR",l="DEFAULT_COLOR_WEAK",u="DEFAULT_FIXED_HEADER",d="DEFAULT_FIXED_SIDEMENU",f="DEFAULT_FIXED_HEADER_HIDDEN",p="DEFAULT_CONTENT_WIDTH_TYPE",m="DEFAULT_MULTI_TAB",h="DEFAULT_CRUMBS_STATE",g="DICT_TYPE_TREE_DATA"},a18c:function(e,t,n){"use strict";var a=n("8bbf"),i=n.n(a),o=n("6389"),s=n.n(o),r=n("d73b"),c=s.a.prototype.push;s.a.prototype.push=function(e,t,n){return t||n?c.call(this,e,t,n):c.call(this,e).catch((function(e){return e}))},i.a.use(s.a),t["a"]=new s.a({mode:"history",base:"/",scrollBehavior:function(){return{y:0}},routes:r["a"]})},a95e:function(e,t,n){"use strict";n("7dd9")},aab0:function(e,t,n){"use strict";n("35d8")},ac0d:function(e,t,n){"use strict";n.d(t,"b",(function(){return l})),n.d(t,"a",(function(){return d})),n.d(t,"c",(function(){return u}));var a=n("5530"),i=n("8e95"),o=n.n(i),s={DESKTOP:"desktop",TABLET:"tablet",MOBILE:"mobile"},r=function(e){var t={match:function(){e&&e(s.DESKTOP)}},n={match:function(){e&&e(s.TABLET)}},a={match:function(){e&&e(s.MOBILE)}};o.a.register("screen and (max-width: 576px)",a).register("screen and (min-width: 576px) and (max-width: 1199px)",n).register("screen and (min-width: 1200px)",t)},c=n("5880"),l={computed:Object(a["a"])({},Object(c["mapState"])({layoutMode:function(e){return e.app.layout},navTheme:function(e){return e.app.theme},primaryColor:function(e){return e.app.color},colorWeak:function(e){return e.app.weak},fixedHeader:function(e){return e.app.fixedHeader},fixSiderbar:function(e){return e.app.fixSiderbar},fixSidebar:function(e){return e.app.fixSiderbar},contentWidth:function(e){return e.app.contentWidth},autoHideHeader:function(e){return e.app.autoHideHeader},sidebarOpened:function(e){return e.app.sidebar},multiTab:function(e){return e.app.multiTab},crumbsState:function(e){return e.app.crumbsState}})),methods:{isTopMenu:function(){return"topmenu"===this.layoutMode},isSideMenu:function(){return!this.isTopMenu()}}},u={computed:Object(a["a"])({},Object(c["mapState"])({device:function(e){return e.app.device}})),methods:{isMobile:function(){return this.device===s.MOBILE},isDesktop:function(){return this.device===s.DESKTOP},isTablet:function(){return this.device===s.TABLET}}},d={mounted:function(){var e=this.$store;r((function(t){switch(t){case s.DESKTOP:e.commit("TOGGLE_DEVICE","desktop"),e.dispatch("setSidebar",!0);break;case s.TABLET:e.commit("TOGGLE_DEVICE","tablet"),e.dispatch("setSidebar",!1);break;case s.MOBILE:default:e.commit("TOGGLE_DEVICE","mobile"),e.dispatch("setSidebar",!0);break}}))}}},afcb:function(e,t,n){},b775:function(e,t,n){"use strict";n.d(t,"a",(function(){return h})),n.d(t,"b",(function(){return p}));n("cd17");var a=n("ed3b"),i=(n("3b18"),n("f64c")),o=(n("dc5a"),n("56cd")),s=(n("d3b7"),n("8bbf")),r=n.n(s),c=n("cebe"),l=n.n(c),u=n("4360"),d={vm:{},install:function(e,t){this.installed||(this.installed=!0,t&&(e.axios=t,Object.defineProperties(e.prototype,{axios:{get:function(){return t}},$http:{get:function(){return t}}})))}},f=n("9fb0"),p=(n("cf45"),l.a.create({baseURL:"/api",timeout:3e4})),m=function(e){if(e.response){var t=e.response.data,n=r.a.ls.get(f["a"]);403===e.response.status&&o["a"].error({message:"Forbidden",description:t.message}),500===e.response.status&&t.message.length>0&&i["a"].error(t.message),401!==e.response.status||t.result&&t.result.isLogin||(o["a"].error({message:"Unauthorized",description:"Authorization verification failed"}),n&&u["a"].dispatch("Logout").then((function(){setTimeout((function(){window.location.reload()}),1500)})))}return Promise.reject(e)};p.interceptors.request.use((function(e){var t=r.a.ls.get(f["a"]),n=r.a.ls.get("X-Access-Token");return t&&(e.headers["Authorization"]="Bearer "+t),n&&(e.headers["X-Authorization"]="Bearer "+n),e.custombaseurl&&(e.baseURL=""),e}),m),p.interceptors.response.use((function(e){if(e.headers["access-token"]&&"invalid_token"!==e.headers["access-token"]&&(r.a.ls.set(f["a"],e.headers["access-token"]),u["a"].commit("SET_TOKEN",e.headers["access-token"])),e.headers["x-access-token"]&&r.a.ls.set("X-Access-Token",e.headers["x-access-token"]),"blob"===e.request.responseType)return e;var t=e.data,n=e.data.code;if(500!==n)return u["a"].state.app.hasError||401===n&&(a["a"].error({title:"提示:",content:t.message,keyboard:!1,okText:"重新登录",onOk:function(){u["a"].dispatch("SetHasError",!1),window.location.reload()}}),r.a.ls.remove(f["a"]),r.a.ls.remove("X-Access-Token"),u["a"].dispatch("SetHasError",!0)),t;a["a"].error({title:"提示:",content:t.message})}),m);var h={vm:{},install:function(e){e.use(d,p)}}},b7ce:function(e,t,n){"use strict";n("46b4")},b882:function(e,t,n){"use strict";n("afcb")},b9a3:function(e,t,n){"use strict";n("f05f")},c2e1:function(e,t,n){},c4ef:function(e,t,n){"use strict";n.d(t,"c",(function(){return u})),n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return d}));n("d3b7");var a=n("f64c"),i=(n("d81d"),n("cb29"),n("a15b"),n("ac1f"),n("5319"),n("99af"),n("6a71")),o=n.n(i),s=n("7746"),r=n.n(s),c={getAntdSerials:function(e){var t=new Array(9).fill().map((function(t,n){return o.a.varyColor.lighten(e,n/10)})),n=r()(e),a=o.a.varyColor.toNum3(e.replace("#","")).join(",");return t.concat(n).concat(a)},changeColor:function(e){var t={newColors:this.getAntdSerials(e),changeUrl:function(e){return"/".concat(e)}};return o.a.changer.changeColor(t,Promise)}},l=[{key:"薄暮",color:"#F5222D"},{key:"火山",color:"#FA541C"},{key:"日暮",color:"#FAAD14"},{key:"明青",color:"#13C2C2"},{key:"极光绿",color:"#52C41A"},{key:"拂晓蓝(默认)",color:"#1890FF"},{key:"极客蓝",color:"#2F54EB"},{key:"酱紫",color:"#722ED1"}],u=function(e){var t=a["a"].loading("正在切换主题!",0);c.changeColor(e).finally((function(e){setTimeout((function(){t()}),10)}))},d=function(e){var t=document.body.querySelector("#app");e?t.classList.add("colorWeak"):t.classList.remove("colorWeak")}},c8c5:function(e,t,n){"use strict";n("f929")},ca00:function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"d",(function(){return o})),n.d(t,"f",(function(){return s})),n.d(t,"e",(function(){return r})),n.d(t,"c",(function(){return c})),n.d(t,"a",(function(){return l}));n("3b18");var a=n("f64c");n("d3b7"),n("25f0"),n("ac1f"),n("4d63"),n("5319"),n("4d90");function i(e,t){var n,a=new Date(e),i={"Y+":a.getFullYear().toString(),"m+":(a.getMonth()+1).toString(),"d+":a.getDate().toString(),"H+":a.getHours().toString(),"M+":a.getMinutes().toString(),"S+":a.getSeconds().toString()};for(var o in i)n=new RegExp("("+o+")").exec(t),n&&(t=t.replace(n[1],1==n[1].length?i[o]:i[o].padStart(n[1].length,"0")));return t}function o(){var e=new Date,t=e.getHours();return t<9?"早上好":t<=11?"上午好":t<=13?"中午好":t<20?"下午好":"晚上好"}function s(){var e=["休息一会儿吧","准备吃什么呢?","要不要打一把 LOL","我猜你可能累了"],t=Math.floor(Math.random()*e.length);return e[t]}function r(){var e=document.createEvent("HTMLEvents");e.initEvent("resize",!0,!0),e.eventType="message",window.dispatchEvent(e)}function c(e,t){return e.length>t?e.substring(0,t)+"...":e}function l(e,t){var n="";1===t?n="/pageTwo/news/detail?id="+e+"&type="+t:2===t?n="/pages/phoneList/detail?id="+e+"&type="+t:3===t?n="/pageTwo/product/detail?id="+e+"&type="+t:4===t||5===t||6===t||7===t?n="/pageTwo/news/detail?id="+e+"&type="+t:8===t||9===t?n="/pageTwo/product/detail?id="+e+"&type="+t:10===t&&(n="/pages/phoneList/detail?id="+e+"&type="+t);var i=document.createElement("input");i.setAttribute("id","cp_hgz_input"),i.value=n,document.getElementsByTagName("body")[0].appendChild(i),document.getElementById("cp_hgz_input").select(),document.execCommand("copy"),document.getElementById("cp_hgz_input").remove(),a["a"].success("复制成功")}},ca65:function(e,t,n){"use strict";n("21c7")},ca69:function(e,t,n){},cebe:function(e,t){e.exports=axios},cf05:function(e,t,n){e.exports=n.p+"img/logo.06b60a1c.png"},cf45:function(e,t,n){"use strict";function a(e){this.$info({content:e})}function i(e){this.$success({content:e})}function o(e){this.$error({content:e})}function s(e){this.$warning({content:e})}n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"d",(function(){return s}))},d3a9:function(e,t,n){},d40c:function(e,t,n){"use strict";n("9d3b")},d73b:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));n("d3b7"),n("3ca3"),n("ddb0");var a=n("680a"),i=n("0dbd"),o=n.n(i),s=(a["a"],a["e"],o.a,[{path:"/user",component:a["f"],redirect:"/user/login",hidden:!0,children:[{path:"login",name:"login",component:function(){return n.e("fail").then(n.bind(null,"1d8a"))},meta:{title:"登录"}},{path:"recover",name:"recover",component:void 0}]},{path:"/test",component:a["b"],redirect:"/test/home",children:[{path:"home",name:"TestHome",component:function(){return n.e("fail").then(n.bind(null,"bb51"))}}]},{path:"/404",component:function(){return n.e("fail").then(n.bind(null,"d250"))}}])},d9ad:function(e,t,n){"use strict";n("0349")},db3e:function(e,t,n){"use strict";n("0d5a")},e040:function(e,t,n){},e819:function(e,t,n){"use strict";t["a"]={primaryColor:"#2F54EB",navTheme:"dark",layout:"sidemenu",contentWidth:"Fixed",fixedHeader:!0,fixSiderbar:!0,autoHideHeader:!1,colorWeak:!1,multiTab:!0,crumbsSate:!1,production:!0,storageOptions:{namespace:"jtsh__",name:"ls",storage:"local"}}},e9b0:function(e,t,n){},f045:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o}));var a=n("b775");function i(e){return Object(a["b"])({url:"/sysNotice/received",method:"get",params:e})}function o(e){return Object(a["b"])({url:"/sysNotice/unread",method:"get",params:e})}},f05f:function(e,t,n){},f3ba:function(e,t,n){"use strict";n("89e5")},f760:function(e,t,n){"use strict";n("c2e1")},f929:function(e,t,n){},fbf3:function(e,t,n){},fddb:function(e,t,n){}}); \ No newline at end of file diff --git a/admin20250319/dist/js/app.6bb61b59.js.gz b/admin20250319/dist/js/app.6bb61b59.js.gz new file mode 100644 index 0000000..ff790c6 Binary files /dev/null and b/admin20250319/dist/js/app.6bb61b59.js.gz differ diff --git a/admin20250319/dist/js/chunk-0c4f7e34.1d3e7469.js b/admin20250319/dist/js/chunk-0c4f7e34.1d3e7469.js new file mode 100644 index 0000000..1bb79c2 --- /dev/null +++ b/admin20250319/dist/js/chunk-0c4f7e34.1d3e7469.js @@ -0,0 +1,149 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0c4f7e34"],{"00ea":function(e,t,i){"use strict";i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return a}));var r=i("b775");function n(e){return Object(r["b"])({url:"/common/uploadimg",method:"post",data:e})}function a(e){return Object(r["b"])({url:"/common/uploadvideo",method:"post",data:e})}},"017a":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading,destroyOnClose:!0},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{validateFirst:!0,rules:[{required:!0,message:"请输入标题"},{max:100,message:"标题最多100个字"}]}],expression:"[\n 'title',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入标题' },\n { max: 100, message: '标题最多100个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入标题"}})],1),t("a-form-item",{attrs:{label:"是否置顶",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-switch",{directives:[{name:"decorator",rawName:"v-decorator",value:["istop",{valuePropName:"checked"}],expression:"['istop', { valuePropName: 'checked' }]"}]})],1),t("a-form-item",{attrs:{label:"封面",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-upload-dragger",{attrs:{customRequest:e.handleUpload,"show-upload-list":!1}},[e.imageUrl?t("img",{staticStyle:{"max-height":"200px","max-width":"400px"},attrs:{src:e.imageUrl,alt:"封面图"}}):t("div",[t("p",{staticClass:"ant-upload-drag-icon"},[t("a-icon",{attrs:{type:e.loading?"loading":"inbox"}})],1),t("p",{staticClass:"ant-upload-text"},[e._v(" 上传封面 ")])])])],1),t("a-form-item",{attrs:{label:"类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["ptype",{rules:[{required:!0,message:"请选择类型"}],initialValue:1}],expression:"['ptype', { rules: [{ required: true, message: '请选择类型' }], initialValue: 1 }]"}],attrs:{placeholder:"请选择类型"},on:{change:e.typeChange}},e._l(e.GetClientDataList("conenttypeenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1),1==e.type?t("a-form-item",{attrs:{label:"小程序Appid",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appid",{rules:[{required:!0,message:"请输入小程序appid"}]}],expression:"['appid', { rules: [{ required: true, message: '请输入小程序appid' }] }]"}],attrs:{placeholder:"请输入小程序appid"}})],1):e._e(),1==e.type?t("a-form-item",{attrs:{label:"小程序页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],attrs:{placeholder:"请输入小程序页面地址"}})],1):e._e(),2==e.type?t("a-form-item",{attrs:{label:"链接",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入链接地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入链接地址' }] }]"}],attrs:{rows:2,placeholder:"请输入链接地址"}})],1):e._e(),3==e.type?t("a-form-item",{attrs:{label:"页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入小程序内的页面地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入小程序内的页面地址' }] }]"}],attrs:{placeholder:"请输入小程序内的页面地址"}})],1):e._e(),4==e.type?t("a-form-item",{attrs:{label:"内容",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],staticStyle:{display:"none"},attrs:{rows:4,placeholder:"请输入内容"}}),t("WangEditor",{ref:"contentRef",attrs:{value:e.html,uploadConfig:e.uploadConfig}})],1):e._e()],1)],1)],1)},n=[],a=(i("d3b7"),i("310b")),o=i("cd38"),l=i("00ea"),u=i("e338"),s={props:{title:{type:String,required:!0}},components:{WangEditor:u["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},loading:!1,imageUrl:"",headimg:"",html:"",uploadConfig:{method:"http",url:"common/uploadimg"},type:1,wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this)}},methods:{GetClientDataList:a["b"],init:function(e){var t=this;this.visible=!0,this.currentInfo=e,this.imageUrl="",this.headimg="",this.html="",e&&e.id&&(this.type=e.ptype,this.headimg=e.headimg,this.imageUrl=e.imageurl,setTimeout((function(){t.form.setFieldsValue({title:e.title,istop:e.istop,ptype:e.ptype,content:e.content}),4===e.ptype?t.html=e.content:1===e.ptype&&t.form.setFieldsValue({appid:e.appid})}),100))},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:(i["id"]=e.currentInfo.id?e.currentInfo.id:null,i["headimg"]=e.headimg,i["content"]=4===i["ptype"]?e.$refs.contentRef.gethtml():i["content"],Object(o["c"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1})))}))},typeChange:function(e){this.type=e},handleUpload:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(l["a"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path):t.$myerror(e.message),t.uploading=!1}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},d=s,c=i("2877"),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},"0656":function(e,t,i){"use strict";i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return a}));var r=i("b775");function n(e){return Object(r["b"])({url:"/business/supply/list",method:"post",data:e})}function a(e){return Object(r["b"])({url:"/business/supply/setstatus",method:"post",data:e})}},"0670":function(e,t,i){},"081d":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{visible:e.previewVisible,footer:null},on:{cancel:function(){return e.previewVisible=!e.previewVisible}}},[t("img",{staticStyle:{width:"100%"},attrs:{alt:e.previewImg.alt,src:e.previewImg.img}})])},n=[],a={name:"",data:function(){return{previewVisible:!1,previewImg:{alt:"无图像",img:""}}},methods:{Show:function(e){this.previewVisible=!this.previewVisible,this.previewImg=e}}},o=a,l=i("2877"),u=Object(l["a"])(o,r,n,!1,null,null,null);t["default"]=u.exports},"08fd":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"通知公告详情",width:1e3,confirmLoading:e.confirmLoading,visible:e.visible,footer:null},on:{cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("div",{staticStyle:{"text-align":"center","font-size":"30px"}},[e._v(e._s(this.contentRecord.title))]),t("br"),t("div",{staticStyle:{"text-align":"right","font-size":"10px"}},[t("span",[e._v("(发布人:"+e._s(this.contentRecord.publicUserName)+")")]),t("span",[e._v("发布时间:"+e._s(this.contentRecord.publicTime)+" ")])]),t("a-divider",{staticStyle:{"margin-top":"5px"}}),t("div",[t("label",{domProps:{innerHTML:e._s(this.contentRecord.content)}})])],1)],1)},n=[],a=i("f0c4"),o={name:"DetailForm",components:{},data:function(){return{visible:!1,confirmLoading:!1,contentRecord:{}}},methods:{detail:function(e){this.confirmLoading=!0,this.visible=!0,this.sysNoticeDetail(e.id)},sysNoticeDetail:function(e){var t=this;Object(a["d"])({id:e}).then((function(e){t.confirmLoading=!1,t.contentRecord=e.data}))},handleCancel:function(){this.visible=!1,this.contentRecord={}}}},l=o,u=i("2877"),s=Object(u["a"])(l,r,n,!1,null,null,null);t["default"]=s.exports},"0901":function(e,t,i){"use strict";i.d(t,"b",(function(){return n})),i.d(t,"d",(function(){return a})),i.d(t,"h",(function(){return o})),i.d(t,"g",(function(){return l})),i.d(t,"f",(function(){return u})),i.d(t,"p",(function(){return s})),i.d(t,"q",(function(){return d})),i.d(t,"n",(function(){return c})),i.d(t,"t",(function(){return p})),i.d(t,"k",(function(){return f})),i.d(t,"l",(function(){return v})),i.d(t,"o",(function(){return h})),i.d(t,"j",(function(){return m})),i.d(t,"e",(function(){return b})),i.d(t,"r",(function(){return g})),i.d(t,"w",(function(){return y})),i.d(t,"s",(function(){return x})),i.d(t,"u",(function(){return _})),i.d(t,"v",(function(){return w})),i.d(t,"i",(function(){return C})),i.d(t,"m",(function(){return D})),i.d(t,"c",(function(){return E})),i.d(t,"a",(function(){return S}));var r=i("b775");function n(e){return Object(r["b"])({url:"/sysUser/pagenew",method:"get",params:e})}function a(e){return Object(r["b"])({url:"/sysUser/add",method:"post",data:e})}function o(e){return Object(r["b"])({url:"/sysUser/edit",method:"post",data:e})}function l(e){return Object(r["b"])({url:"/sysUser/detail",method:"get",params:e})}function u(e){return Object(r["b"])({url:"/sysUser/delete",method:"post",data:e})}function s(e){return Object(r["b"])({url:"/sysUser/ownRole",method:"get",params:e})}function d(e){return Object(r["b"])({url:"/sysUser/ownVIP",method:"post",data:e})}function c(e){return Object(r["b"])({url:"/sysUser/owncom",method:"post",data:e})}function p(e){return Object(r["b"])({url:"/sysUser/submitCom",method:"post",data:e})}function f(e){return Object(r["b"])({url:"/sysUser/grantRole",method:"post",data:e})}function v(e){return Object(r["b"])({url:"/sysUser/grantvip",method:"post",data:e})}function h(e){return Object(r["b"])({url:"/sysUser/ownData",method:"get",params:e})}function m(e){return Object(r["b"])({url:"/sysUser/grantData",method:"post",data:e})}function b(e){return Object(r["b"])({url:"/sysUser/changeStatus",method:"post",data:e})}function g(e){return Object(r["b"])({url:"/sysUser/resetPwd",method:"post",data:e})}function y(e){return Object(r["b"])({url:"/sysUser/updatePwd",method:"post",data:e})}function x(e){return Object(r["b"])({url:"/sysUser/selector",method:"get",params:e})}function _(e){return Object(r["b"])({url:"/sysUser/updateAvatar",method:"post",data:e})}function w(e){return Object(r["b"])({url:"/sysUser/updateInfo",method:"post",data:e})}function C(e){return Object(r["b"])({url:"/sysUser/export",method:"get",data:e,responseType:"blob"})}function D(e){return Object(r["b"])({url:"/sysUser/import",method:"post",data:e})}function E(e){return Object(r["b"])({url:"/sysUser/supplyformembershiplist",method:"post",data:e})}function S(e){return Object(r["b"])({url:"/sysUser/supplyformembershipstatus",method:"post",data:e})}},"0b15":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入标题"},model:{value:e.queryParam.title,callback:function(t){e.$set(e.queryParam,"title",t)},expression:"queryParam.title"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择上架状态","allow-clear":""},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("goodsstatus"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择类型","allow-clear":""},model:{value:e.queryParam.ptype,callback:function(t){e.$set(e.queryParam,"ptype",t)},expression:"queryParam.ptype"}},e._l(e.GetClientDataList("conenttypeenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"status",fn:function(i,r){return t("span",{},[1===r.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))]):2===r.status?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))])],1)}},{key:"ptype",fn:function(i){return t("span",{},[e._v(" "+e._s(e.getenumval("conenttypeenum",i))+" ")])}},{key:"page",fn:function(i,r){return t("span",{},[4===r.ptype?t("a",{on:{click:function(t){return e.copyTextByContentType(i,6)}}},[e._v("复制")]):t("span",[e._v("不支持")])])}},{key:"content",fn:function(i,r){return t("div",{},[1===r.ptype?t("div",[t("div",[e._v("AppId:"+e._s(r.appid))]),""!==i?t("div",[e._v(" 路径:"),t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1):e._e()]):e._e(),2===r.ptype||3===r.ptype?t("div",[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1):e._e(),4===r.ptype?t("div",[t("div",[e._v(e._s(e.textcontent(i,10)))])]):e._e()])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("notice:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e(),!e.hasPerm("notice:status")||1!==r.status&&3!==r.status?e._e():t("a-divider",{attrs:{type:"vertical"}}),!e.hasPerm("notice:status")||1!==r.status&&3!==r.status?e._e():t("a-popconfirm",{attrs:{placement:"topRight",title:"确认上架?"},on:{confirm:function(){return e.setstatus(r,2)}}},[t("a",[e._v("上架")])]),e.hasPerm("notice:status")&&2==r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("notice:status")&&2==r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认下架?"},on:{confirm:function(){return e.setstatus(r,1)}}},[t("a",[e._v("下架")])]):e._e(),e.hasPerm("notice:delete")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("notice:delete")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.Delete(r)}}},[t("a",[e._v("删除")])]):e._e()],1)}}])},[e.hasPerm("info:add")?t("template",{slot:"operator"},[e.hasPerm("info:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.AddorEdit({},0)}}},[e._v("新增公告")]):e._e()],1):e._e()],2),t("editForm",{ref:"editForm",attrs:{title:e.title},on:{ok:e.handleOk}})],1)],1)},n=[],a=i("2af9"),o=i("9fe9"),l=i("310b"),u=i("816c"),s=i("ca00"),d={components:{XCard:a["k"],STable:a["h"],editForm:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"",columns:[{title:"排序",dataIndex:"sortcode"},{title:"标题",dataIndex:"title"},{title:"类型",dataIndex:"ptype",scopedSlots:{customRender:"ptype"}},{title:"浏览量",dataIndex:"browsecnt"},{title:"点赞量",dataIndex:"likecnt"},{title:"内容",dataIndex:"content",scopedSlots:{customRender:"content"}},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{dataIndex:"createdtime",title:"创建时间"},{title:"内链",dataIndex:"id",scopedSlots:{customRender:"page"}}],loadData:function(t){return Object(o["b"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){(this.hasPerm("info:status")||this.hasPerm("info:edit"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:l["b"],copyTextByContentType:s["a"],textcontent:s["c"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},AddorEdit:function(e,t){this.title=1===t?"编辑公告":"新增公告",this.$refs.editForm.init(e)},setstatus:function(e,t){var i=this;Object(o["c"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)}))},Delete:function(e){var t=this;Object(o["a"])({id:e.id}).then((function(e){0===e.code?(t.$message.success("删除成功"),t.$refs.table.refresh()):t.$myerror(e.message)})).catch((function(e){t.$myerror(e.message)}))}}},c=d,p=(i("5621"),i("2877")),f=Object(p["a"])(c,r,n,!1,null,"20d5efd2",null);t["default"]=f.exports},"0b3b":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading,destroyOnClose:!0},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"名称",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["name",{validateFirst:!0,rules:[{required:!0,message:"请输入名称"},{max:100,message:"名称最多100个字"}]}],expression:"[\n 'name',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入名称' },\n { max: 100, message: '名称最多100个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入名称"}})],1),t("a-form-item",{attrs:{label:"是否置顶",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-switch",{directives:[{name:"decorator",rawName:"v-decorator",value:["istop",{valuePropName:"checked"}],expression:"['istop', { valuePropName: 'checked' }]"}]})],1),t("a-form-item",{attrs:{label:"封面",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-upload-dragger",{directives:[{name:"decorator",rawName:"v-decorator",value:["img",{rules:[{required:!0,message:"封面不可为空"}]}],expression:"[\n 'img',\n {\n rules: [{ required: true, message: '封面不可为空' }]\n }\n ]"}],attrs:{customRequest:e.handleUpload,"show-upload-list":!1}},[e.imageUrl?t("img",{staticStyle:{"max-height":"200px","max-width":"400px"},attrs:{src:e.imageUrl,alt:"封面图"}}):t("div",[t("p",{staticClass:"ant-upload-drag-icon"},[t("a-icon",{attrs:{type:e.loading?"loading":"inbox"}})],1),t("p",{staticClass:"ant-upload-text"},[e._v(" 上传封面 ")])])])],1),t("a-form-item",{attrs:{label:"开始时间",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-date-picker",{directives:[{name:"decorator",rawName:"v-decorator",value:["starttime",{validateFirst:!0,rules:[{required:!0,message:"请选择开始时间"}]}],expression:"[\n 'starttime',\n {\n validateFirst: true,\n rules: [{ required: true, message: '请选择开始时间' }]\n }\n ]"}],attrs:{placeholder:"请选择开始时间",showTime:!0}})],1),t("a-form-item",{attrs:{label:"结束时间",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-date-picker",{directives:[{name:"decorator",rawName:"v-decorator",value:["endtime",{validateFirst:!0,rules:[{required:!0,message:"请选择结束时间"}]}],expression:"[\n 'endtime',\n {\n validateFirst: true,\n rules: [{ required: true, message: '请选择结束时间' }]\n }\n ]"}],attrs:{placeholder:"请选择结束时间",showTime:!0}})],1),t("a-form-item",{attrs:{label:"联系电话",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["phone",{validateFirst:!0,rules:[{required:!0,message:"请输入联系电话"},{max:20,message:"联系电话最多20个字"}]}],expression:"[\n 'phone',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入联系电话' },\n { max: 20, message: '联系电话最多20个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入联系电话"}})],1),t("a-form-item",{attrs:{label:"地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-cascader",{directives:[{name:"decorator",rawName:"v-decorator",value:["area",{validateFirst:!0,rules:[{required:!0,message:"请选择地区"}]}],expression:"[\n 'area',\n {\n validateFirst: true,\n rules: [{ required: true, message: '请选择地区' }]\n }\n ]"}],attrs:{options:e.area,placeholder:"请选择地区"},on:{change:e.regionChange}})],1),t("a-form-item",{attrs:{label:"详细地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["address",{validateFirst:!0,rules:[{required:!0,message:"请输入详细地址"},{max:200,message:"详细地址最多200个字"}]}],expression:"[\n 'address',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入详细地址' },\n { max: 200, message: '详细地址最多200个字' }\n ]\n }\n ]"}],attrs:{rows:4,placeholder:"请输入详细地址"}})],1),t("a-form-item",{attrs:{label:"活动内容",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"},{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],staticStyle:{"min-height":"300px"},attrs:{rows:4,placeholder:"请输入内容"}}),t("WangEditor",{ref:"contentRef",attrs:{value:e.html,uploadConfig:e.uploadConfig}})],1)],1)],1)],1)},n=[],a=(i("b0c0"),i("d3b7"),i("310b")),o=i("31bd"),l=i("00ea"),u=i("e338"),s=i("c1df"),d=i.n(s),c=i("2f5d"),p={props:{title:{type:String,required:!0}},components:{WangEditor:u["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},loading:!1,imageUrl:"",headimg:"",html:"",area:c,uploadConfig:{method:"http",url:"common/uploadimg"},wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this)}},methods:{moment:d.a,GetClientDataList:a["b"],init:function(e){var t=this;this.visible=!0,this.currentInfo=e,this.imageUrl="",this.headimg="",this.html="",e&&e.id&&(this.headimg=e.img,this.imageUrl=e.imageurl,setTimeout((function(){t.form.setFieldsValue({name:e.name,istop:e.istop,starttime:d()(e.starttime),endtime:d()(e.endtime),address:e.address,img:e.img,area:[e.province,e.city,e.area],content:e.content,phone:e.phone}),t.html=e.content}),100))},normFile:function(e){return Array.isArray(e)?e:e&&e.fileList},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){if(t)e.confirmLoading=!1;else{if(i["id"]=e.currentInfo.id?e.currentInfo.id:null,i["img"]=e.headimg,i["content"]=e.$refs.contentRef.gethtml(),i["starttime"]=d()(i["starttime"]).format("YYYY-MM-DD HH:mm"),i["endtime"]=d()(i["endtime"]).format("YYYY-MM-DD HH:mm"),3!==i["area"].length)return void e.$message.error("请选择地址");i["province"]=i["area"][0],i["city"]=i["area"][1],i["area"]=i["area"][2],Object(o["c"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1}))}}))},regionChange:function(e,t){},handleUpload:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(l["a"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path,t.form.setFieldsValue({img:e.data.path})):t.$myerror(e.message),t.uploading=!1}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},f=p,v=i("2877"),h=Object(v["a"])(f,r,n,!1,null,null,null);t["default"]=h.exports},"0e73":function(e,t,i){"use strict";i("1927")},1768:function(e,t,i){"use strict";i("1863")},1863:function(e,t,i){},1927:function(e,t,i){},"1d1e":function(e,t,i){"use strict";i("763e")},"1e11":function(e,t,i){"use strict";i("2641")},"1e90":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入名称"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入编码"},model:{value:e.queryParam.code,callback:function(t){e.$set(e.queryParam,"code",t)},expression:"queryParam.code"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择状态","allow-clear":""},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("basestatus"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"status",fn:function(i,r){return t("span",{},[2===r.status?t("span",{staticStyle:{color:"red"}},[e._v(" "+e._s(e.getenumval("basestatus",i)))]):t("span",{staticStyle:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("basestatus",i)))])])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("VipAuth:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e(),e.hasPerm("VipAuth:status")&&1===r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("VipAuth:status")&&1===r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认禁用?"},on:{confirm:function(){return e.setstatus(r,2)}}},[t("a",[e._v("禁用")])]):e._e(),e.hasPerm("VipAuth:status")&&2==r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("VipAuth:status")&&2==r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认启用?"},on:{confirm:function(){return e.setstatus(r,1)}}},[t("a",[e._v("启用")])]):e._e()],1)}}])},[e.hasPerm("VipAuth:add")?t("template",{slot:"operator"},[e.hasPerm("VipAuth:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.AddorEdit({},0)}}},[e._v("新增权限")]):e._e()],1):e._e()],2),t("editForm",{ref:"editForm",attrs:{title:e.title},on:{ok:e.handleOk}})],1)],1)},n=[],a=i("2af9"),o=i("43e1"),l=i("310b"),u=i("f1fb"),s={components:{XCard:a["k"],STable:a["h"],editForm:u["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"",columns:[{title:"权限",dataIndex:"name"},{title:"编码",dataIndex:"code"},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{dataIndex:"remark",title:"备注"}],loadData:function(t){return Object(o["b"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){(this.hasPerm("VipAuth:status")||this.hasPerm("VipAuth:edit"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:l["b"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},AddorEdit:function(e,t){this.title=1===t?"编辑权限":"新增权限",this.$refs.editForm.init(e)},setstatus:function(e,t){var i=this;Object(o["c"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)}))}}},d=s,c=(i("d97b"),i("2877")),p=Object(c["a"])(d,r,n,!1,null,"1718cfba",null);t["default"]=p.exports},"1f34":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("a-row",{attrs:{gutter:24}},[t("a-col",{staticStyle:{padding:"0 0 0 0"},attrs:{md:5,sm:24}},[t("a-card",{attrs:{bordered:!1,loading:e.treeLoading}},[""!=this.orgTree?t("div",[e.orgTree.length?t("a-tree",{attrs:{treeData:e.orgTree,defaultExpandAll:!0,defaultExpandedKeys:e.defaultExpandedKeys,replaceFields:e.replaceFields},on:{select:e.handleClick}}):e._e()],1):t("div",[t("a-empty",{attrs:{image:e.simpleImage}})],1)])],1),t("a-col",{attrs:{md:19,sm:24}},[e.hasPerm("sysUser:page")?t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:6,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入姓名、账号、手机号"},model:{value:e.queryParam.searchValue,callback:function(t){e.$set(e.queryParam,"searchValue",t)},expression:"queryParam.searchValue"}})],1)],1),t("a-col",{attrs:{md:6,sm:24}},[t("a-form-item",[t("a-select",{attrs:{"allow-clear":"",placeholder:"请选择状态","default-value":"0"},model:{value:e.queryParam.searchStatus,callback:function(t){e.$set(e.queryParam,"searchStatus",t)},expression:"queryParam.searchStatus"}},e._l(e.statusDictTypeDropDown,(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(" "+e._s(i.value))])})),1)],1)],1),t("a-col",{attrs:{md:8,sm:24}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)],1)],1)],1)]):e._e(),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"status",fn:function(i,r){return e.hasPerm("sysUser:changeStatus")?t("span",{},[t("a-popconfirm",{attrs:{placement:"top",title:0===i?"确定停用该用户?":"确定启用该用户?"},on:{confirm:function(){return e.editUserStatus(i,r)}}},[t("a",[e._v(e._s(e.statusFilter(i)))])])],1):t("span",{attrs:{slot:"status"},slot:"status"},[e._v(" "+e._s(e.statusFilter(i))+" ")])}},{key:"admintype",fn:function(i){return t("span",{},[e._v(" "+e._s(e.GetClientDataItem("admintype",i))+" ")])}},{key:"vipname",fn:function(i,r){return t("span",{},[3!==r.admintype?t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v("不支持")]):t("div",[i?t("div",[t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(e._s(i))]),t("br"),t("span",[e._v(e._s(e.formattime(r.vipendtime)))])],1):t("a-tag",{attrs:{color:"#f50"}},[e._v("未开通")])],1)],1)}},{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.name,src:r.avatarurl,srcSet:r.avatarurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.name,img:r.avatarurl})}}})],1)}},{key:"comname",fn:function(i,r){return t("div",{},[3!=r.admintype?t("span",[e._v("暂无信息")]):t("div",[e.hasPerm("sysUser:edit")?t("a",{on:{click:function(t){return e.$refs.userComForm.init(r)}}},[e._v(e._s(i||"暂无信息"))]):e._e()])])}},{key:"page",fn:function(i,r){return t("span",{},[3!==r.admintype?t("span",[e._v("不支持")]):t("a",{on:{click:function(t){return e.copyTextByContentType(i,2)}}},[e._v("复制")])])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("sysUser:edit")?t("a",{on:{click:function(t){return e.$refs.editForm.edit(r)}}},[e._v("编辑")]):e._e(),e.hasPerm("sysUser:edit")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysUser:resetPwd")||e.hasPerm("sysUser:grantRole")||e.hasPerm("sysUser:grantData")||e.hasPerm("sysUser:delete")?t("a-dropdown",[t("a",{staticClass:"ant-dropdown-link"},[e._v(" 更多 "),t("a-icon",{attrs:{type:"down"}})],1),t("a-menu",{attrs:{slot:"overlay"},slot:"overlay"},[e.hasPerm("sysUser:resetPwd")?t("a-menu-item",[t("a-popconfirm",{attrs:{placement:"topRight",title:"确认重置密码?"},on:{confirm:function(){return e.resetPwd(r)}}},[t("a",[e._v("重置密码")])])],1):e._e(),e.hasPerm("sysUser:grantRole")?t("a-menu-item",[t("a",{on:{click:function(t){return e.$refs.userRoleForm.userRole(r)}}},[e._v("授权角色")])]):e._e(),e.hasPerm("sysUser:grantData")&&3===r.admintype?t("a-menu-item",[t("a",{on:{click:function(t){return e.$refs.userVIPForm.userVIP(r)}}},[e._v("授权VIP")])]):e._e(),e.hasPerm("sysUser:delete")?t("a-menu-item",[t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.sysUserDelete(r)}}},[t("a",[e._v("删除")])])],1):e._e()],1)],1):e._e()],1)}}],null,!0)},[t("template",{slot:"operator"},[e.hasPerm("sysUser:add")?t("a-button",{attrs:{type:"primary",icon:"plus"},on:{click:function(t){return e.$refs.addForm.add()}}},[e._v("新增用户 ")]):e._e()],1)],2),t("add-form",{ref:"addForm",on:{ok:e.handleOk}}),t("edit-form",{ref:"editForm",on:{ok:e.handleOk}}),t("user-role-form",{ref:"userRoleForm",on:{ok:e.handleOk}}),t("user-org-form",{ref:"userOrgForm",on:{ok:e.handleOk}}),t("userVIPForm",{ref:"userVIPForm",on:{ok:e.handleOk}}),t("userComForm",{ref:"userComForm",on:{ok:e.handleOk}})],1),t("previewimg",{ref:"PreImg"})],1)],1)},n=[],a=i("b85c"),o=(i("06f4"),i("fc25")),l=(i("4de4"),i("d3b7"),i("ac1f"),i("5319"),i("3ca3"),i("ddb0"),i("2b3d"),i("9861"),i("25f0"),i("2af9")),u=i("25fa"),s=i("081d"),d=i("310b"),c=i("ca00"),p=i("c1df"),f=i.n(p),v=i("0901"),h=i("126f"),m=i("d264"),b=i("ef60"),g=i("4e4a"),y=i("c880"),x=i("7d27"),_=i("fcaf"),w={components:{XCard:l["k"],STable:l["h"],addForm:m["default"],editForm:b["default"],userRoleForm:g["default"],userOrgForm:y["default"],previewimg:s["default"],userVIPForm:x["default"],userComForm:_["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},columns:[{title:"头像",dataIndex:"headimg",scopedSlots:{customRender:"headimg"}},{title:"账号",dataIndex:"account"},{title:"姓名",dataIndex:"name"},{title:"企业",dataIndex:"comname",scopedSlots:{customRender:"comname"}},{title:"手机",dataIndex:"phone"},{title:"类型",dataIndex:"admintype",scopedSlots:{customRender:"admintype"}},{title:"VIP",dataIndex:"vipname",scopedSlots:{customRender:"vipname"}},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{title:"内链",dataIndex:"id",scopedSlots:{customRender:"page"}}],loadData:function(t){return Object(v["b"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))},orgTree:[],selectedRowKeys:[],selectedRows:[],defaultExpandedKeys:[],sexDictTypeDropDown:[],statusDictTypeDropDown:[],treeLoading:!0,simpleImage:o["a"].PRESENTED_IMAGE_SIMPLE,replaceFields:{key:"id"}}},created:function(){var e=this;Object(u["c"])(Object.assign(this.queryParam)).then((function(t){if(e.treeLoading=!1,0===t.code){e.orgTree=t.data;var i,r=Object(a["a"])(t.data);try{for(r.s();!(i=r.n()).done;){var n=i.value;0==n.parentId&&e.defaultExpandedKeys.push(n.id)}}catch(o){r.e(o)}finally{r.f()}}})),this.sysDictTypeDropDown(),(this.hasPerm("sysUser:edit")||this.hasPerm("sysUser:resetPwd")||this.hasPerm("sysUser:grantRole")||this.hasPerm("sysUser:grantData")||this.hasPerm("sysUser:delete"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{copyTextByContentType:c["a"],formattime:function(e){return f()(e).format("YYYY-MM-DD")+"到期"},GetClientDataItem:d["a"],statusFilter:function(e){var t=this.statusDictTypeDropDown.filter((function(t){return t.code==e}));if(t.length>0)return t[0].value},sysDictTypeDropDown:function(e){var t=this;Object(h["d"])({code:"sex"}).then((function(e){t.sexDictTypeDropDown=e.data})),Object(h["d"])({code:"common_status"}).then((function(e){t.statusDictTypeDropDown=e.data}))},editUserStatus:function(e,t){var i=this;0==e?this.status=1:1==e&&(this.status=0),Object(v["e"])({id:t.id,status:this.status}).then((function(e){0===e.code?(i.$message.success("操作成功"),i.$refs.table.refresh()):i.$myerror("操作失败:"+e.message)}))},resetPwd:function(e){var t=this;Object(v["r"])({id:e.id}).then((function(e){0===e.code?t.$message.success("重置成功"):t.$myerror("重置失败:"+e.message)}))},sysUserDelete:function(e){var t=this;Object(v["f"])(e).then((function(e){0===e.code?(t.$message.success("删除成功"),t.$refs.table.refresh()):t.$myerror("删除失败:"+e.message)})).catch((function(e){t.$myerror("删除错误:"+e.message)}))},sysUserExport:function(e){var t=this;this.cardLoading=!0,Object(v["i"])().then((function(e){t.cardLoading=!1,t.downloadfile(e)})).catch((function(e){t.cardLoading=!1,t.$myerror("下载错误:获取文件流错误")}))},downloadfile:function(e){var t=new Blob([e.data],{type:"application/octet-stream;charset=UTF-8"}),i=e.headers["content-disposition"],r=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/,n=r.exec(i),a=n[1].replace(/['"]/g,""),o=document.createElement("a"),l=window.URL.createObjectURL(t),u=/^["](.*)["]$/g;o.style.display="none",o.href=l,o.download=decodeURI(a.replace(u,"$1")),document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(l)},customRequest:function(e){var t=this,i=new FormData;i.append("file",e.file),Object(v["m"])(i).then((function(e){0===e.code?(t.$message.success("上传成功"),t.$refs.table.refresh()):t.$myerror("上传失败:"+e.message)}))},handleClick:function(e){this.queryParam={"sysEmpParam.orgId":e.toString()},this.$refs.table.refresh(!0)},toggleAdvanced:function(){this.advanced=!this.advanced},handleOk:function(){this.$refs.table.refresh()},onSelectChange:function(e,t){this.selectedRowKeys=e,this.selectedRows=t}}},C=w,D=(i("244f"),i("2877")),E=Object(D["a"])(C,r,n,!1,null,null,null);t["default"]=E.exports},"202d":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[e.hasPerm("sysNotice:page")?t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:48}},[t("a-col",{attrs:{md:8,sm:24}},[t("a-form-item",{attrs:{label:"关键词"}},[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入标题、内容"},model:{value:e.queryParam.searchValue,callback:function(t){e.$set(e.queryParam,"searchValue",t)},expression:"queryParam.searchValue"}})],1)],1),t("a-col",{attrs:{md:8,sm:24}},[t("a-form-item",{attrs:{label:"类型"}},[t("a-select",{attrs:{placeholder:"请选择类型","allow-clear":""},model:{value:e.queryParam.type,callback:function(t){e.$set(e.queryParam,"type",t)},expression:"queryParam.type"}},e._l(e.typeDictTypeDropDown,(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(" "+e._s(i.value))])})),1)],1)],1),t("a-col",{attrs:{md:8,sm:24}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)],1)],1)],1)]):e._e(),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id},rowSelection:{selectedRowKeys:e.selectedRowKeys,onChange:e.onSelectChange}},scopedSlots:e._u([{key:"status",fn:function(i){return t("span",{},[e._v(" "+e._s(e.statusFilter(i))+" ")])}},{key:"type",fn:function(i){return t("span",{},[e._v(" "+e._s(e.typeFilter(i))+" ")])}},{key:"action",fn:function(i,r){return t("span",{},[0==r.status?t("div",[e.hasPerm("sysNotice:detail")?t("a",{on:{click:function(t){return e.$refs.detailForm.detail(r)}}},[e._v("查看")]):e._e(),e.hasPerm("sysNotice:detail")&e.hasPerm("sysNotice:edit")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysNotice:edit")?t("a",{on:{click:function(t){return e.$refs.editForm.edit(r)}}},[e._v("编辑")]):e._e(),e.hasPerm("sysNotice:edit")&e.hasPerm("sysNotice:changeStatus")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysNotice:changeStatus")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认发布该信息?"},on:{confirm:function(){return e.editNoticeStatus(1,r)}}},[t("a",[e._v("发布")])]):e._e(),e.hasPerm("sysNotice:changeStatus")&e.hasPerm("sysNotice:delete")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysNotice:delete")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.sysNoticeDelete(r)}}},[t("a",[e._v("删除")])]):e._e()],1):e._e(),1==r.status?t("div",[e.hasPerm("sysNotice:detail")?t("a",{on:{click:function(t){return e.$refs.detailForm.detail(r)}}},[e._v("查看")]):e._e(),e.hasPerm("sysNotice:detail")&e.hasPerm("sysNotice:changeStatus")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysNotice:changeStatus")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认撤回该信息?"},on:{confirm:function(){return e.editNoticeStatus(2,r)}}},[t("a",[e._v("撤回")])]):e._e()],1):e._e(),2==r.status?t("div",[e.hasPerm("sysNotice:detail")?t("a",{on:{click:function(t){return e.$refs.detailForm.detail(r)}}},[e._v("查看")]):e._e(),e.hasPerm("sysNotice:detail")&e.hasPerm("sysNotice:delete")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysNotice:delete")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.sysNoticeDelete(r)}}},[t("a",[e._v("删除")])]):e._e()],1):e._e()])}}])},[e.hasPerm("sysNotice:add")?t("template",{slot:"operator"},[e.hasPerm("sysNotice:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.$refs.addForm.add()}}},[e._v("新增公告 ")]):e._e()],1):e._e()],2),e.hasPerm("sysNotice:add")?t("add-form",{ref:"addForm",on:{ok:e.handleOk}}):e._e(),e.hasPerm("sysNotice:edit")?t("edit-form",{ref:"editForm",on:{ok:e.handleOk}}):e._e(),e.hasPerm("sysNotice:detail")?t("detail-form",{ref:"detailForm",on:{ok:e.handleOk}}):e._e(),t("div",{ref:"editor"})],1)],1)},n=[],a=(i("4de4"),i("d3b7"),i("2af9")),o=i("f0c4"),l=i("126f"),u=i("26bb"),s=i("58cb"),d=i("08fd"),c={components:{XCard:a["k"],STable:a["h"],addForm:u["default"],editForm:s["default"],detailForm:d["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},columns:[{title:"标题",dataIndex:"title"},{title:"类型",dataIndex:"type",scopedSlots:{customRender:"type"}},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}}],loadData:function(t){return Object(o["f"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))},selectedRowKeys:[],selectedRows:[],statusDictTypeDropDown:[],typeDictTypeDropDown:[]}},created:function(){this.sysDictTypeDropDown(),(this.hasPerm("sysNotice:changeStatus")||this.hasPerm("sysNotice:edit")||this.hasPerm("sysNotice:delete"))&&this.columns.push({title:"操作",width:"300px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{sysDictTypeDropDown:function(){var e=this;Object(l["d"])({code:"notice_status"}).then((function(t){e.statusDictTypeDropDown=t.data})),Object(l["d"])({code:"notice_type"}).then((function(t){e.typeDictTypeDropDown=t.data}))},statusFilter:function(e){var t=this.statusDictTypeDropDown.filter((function(t){return t.code==e}));if(t.length>0)return t[0].value},typeFilter:function(e){var t=this.typeDictTypeDropDown.filter((function(t){return t.code==e}));if(t.length>0)return t[0].value},editNoticeStatus:function(e,t){var i=this;Object(o["b"])({id:t.id,status:e}).then((function(e){0===e.code?(i.$message.success("操作成功"),i.$refs.table.refresh()):i.$myerror("操作失败:"+e.message)}))},sysNoticeDelete:function(e){var t=this;Object(o["c"])(e).then((function(e){0===e.code?(t.$message.success("删除成功"),t.$refs.table.refresh()):t.$myerror("删除失败:"+e.message)})).catch((function(e){t.$myerror("删除错误:"+e.message)}))},handleOk:function(){this.$refs.table.refresh()},onSelectChange:function(e,t){this.selectedRowKeys=e,this.selectedRows=t}}},p=c,f=(i("a906"),i("2877")),v=Object(f["a"])(p,r,n,!1,null,null,null);t["default"]=v.exports},2445:function(e,t,i){"use strict";i("42b0")},"244f":function(e,t,i){"use strict";i("59f6")},"24ab":function(e,t,i){"use strict";i("5caa")},"25cb":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入名称"},model:{value:e.queryParam.title,callback:function(t){e.$set(e.queryParam,"title",t)},expression:"queryParam.title"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择状态","allow-clear":""},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("shopstatus"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.title,src:r.imageurl,srcSet:r.imageurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.title,img:r.imageurl})}}})],1)}},{key:"page",fn:function(i,r){return t("span",{},[4===r.status||5===r.status?t("span",[e._v("不支持")]):t("a",{on:{click:function(t){return e.copyTextByContentType(i,3)}}},[e._v("复制")])])}},{key:"status",fn:function(i,r){return t("span",{},[1===r.status||5===r.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))]):2===r.status||6===r.status?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))])],1)}},{key:"moreinfo",fn:function(i){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1)}},{key:"address",fn:function(i,r){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(r.province+r.city+r.area+i))])],1)}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("product:view")?t("a",{on:{click:function(t){return e.detail(r)}}},[e._v("详情")]):e._e()])}}])}),t("detail",{ref:"detail",on:{ok:e.handleOk}}),t("a-modal",{attrs:{title:"产品驳回",visible:e.rejectvisible,"confirm-loading":e.rejectconfirmloading},on:{ok:e.rejectok,cancel:e.rejectcancel}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["statusremark",{rules:[{required:!0,message:"驳回原因不可为空"}]}],expression:"['statusremark', { rules: [{ required: true, message: '驳回原因不可为空' }] }]"}],attrs:{rows:4,placeholder:"请输入驳回原因",type:"number","addon-after":"元"}})],1)],1)],1)],1)],1)},n=[],a=i("2af9"),o=i("b4b3"),l=i("310b"),u=i("df22"),s=i("ca00"),d={components:{XCard:a["k"],STable:a["h"],detail:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},rejectvisible:!1,rejectconfirmloading:!1,form:this.$form.createForm(this),columns:[{title:"产品",dataIndex:"title",scopedSlots:{customRender:"moreinfo"}},{title:"价格(元)",dataIndex:"price"},{title:"会员价(元)",dataIndex:"vipprice"},{title:"浏览数",dataIndex:"browsecnt"},{title:"点赞数",dataIndex:"likecnt"},{title:"地址",dataIndex:"address",scopedSlots:{customRender:"address"}},{title:"行业",dataIndex:"industryname"},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{dataIndex:"createtime",title:"创建时间"},{title:"内链",dataIndex:"id",scopedSlots:{customRender:"page"}}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){this.hasPerm("product:view")&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}}),3!==this.$store.state.admintype&&this.columns.unshift({title:"会员",width:"150px",dataIndex:"businessname"})},methods:{GetClientDataList:l["b"],copyTextByContentType:s["a"],textcontent:s["c"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},detail:function(e){this.$refs.detail.init(e)},setstatus:function(e,t){var i=this;5!==t?Object(o["b"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)})):this.rejectvisible=!0},rejectok:function(e){var t=this,i=this;this.form.validateFields((function(e,r){e||(t.rejectconfirmloading=!0,Object(o["b"])({id:i.record.id,statusremark:r["statusremark"]}).then((function(e){0===e.code?(t.$message.success("驳回成功"),t.handleOk()):t.$myerror(e.message),t.rejectcancel()})).catch((function(e){t.$myerror(e.message),t.rejectcancel()})))}))},rejectcancel:function(){this.rejectvisible=!1,this.rejectconfirmloading=!1}}},c=d,p=(i("ae8d"),i("2877")),f=Object(p["a"])(c,r,n,!1,null,"ae4b8f7a",null);t["default"]=f.exports},"25fa":function(e,t,i){"use strict";i.d(t,"c",(function(){return n})),i.d(t,"a",(function(){return a})),i.d(t,"b",(function(){return o})),i.d(t,"d",(function(){return l})),i.d(t,"f",(function(){return u})),i.d(t,"e",(function(){return s}));var r=i("b775");function n(e){return Object(r["b"])({url:"/sysOrg/tree",method:"get",params:e})}function a(e){return Object(r["b"])({url:"/sysOrg/list",method:"get",params:e})}function o(e){return Object(r["b"])({url:"/sysOrg/page",method:"get",params:e})}function l(e){return Object(r["b"])({url:"/sysOrg/add",method:"post",data:e})}function u(e){return Object(r["b"])({url:"/sysOrg/edit",method:"post",data:e})}function s(e){return Object(r["b"])({url:"/sysOrg/delete",method:"post",data:e})}},"262f":function(e,t,i){"use strict";i("3deb")},2641:function(e,t,i){},"26bb":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"新增通知公告",width:1e3,footer:null,visible:e.visible},on:{cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.formLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{rules:[{required:!0,message:"请输入标题!"}]}],expression:"['title', {rules: [{required: true, message: '请输入标题!'}]}]"}],attrs:{placeholder:"请输入标题"}})],1),t("a-form-item",{attrs:{label:"类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-radio-group",{directives:[{name:"decorator",rawName:"v-decorator",value:["type",{rules:[{required:!0,message:"请选择类型!"}]}],expression:"['type',{rules: [{ required: true, message: '请选择类型!' }]}]"}]},e._l(e.typeDictTypeDropDown,(function(i,r){return t("a-radio-button",{key:r,attrs:{value:i.code}},[e._v(" "+e._s(i.value))])})),1)],1),t("a-form-item",{attrs:{labelCol:e.labelCol,wrapperCol:e.wrapperCol,label:"内容"}},[t("antd-editor",{attrs:{uploadConfig:e.editorUploadConfig},on:{onchange:e.changeEditor,oninit:e.getEditor},model:{value:e.editorContent,callback:function(t){e.editorContent=t},expression:"editorContent"}})],1),t("a-form-item",{attrs:{labelCol:e.labelCol,wrapperCol:e.wrapperCol,label:"通知到的人"}},[t("a-transfer",{attrs:{"data-source":e.mockData,"show-search":"","list-style":{width:"40%",height:"300px"},"filter-option":e.filterOption,"target-keys":e.targetKeys,render:function(e){return e.title}},on:{change:e.handleChange}})],1),t("a-divider"),t("a-form-item",{staticClass:"subForm-item"},[t("a-button",{staticClass:"subButton",attrs:{type:"primary"},on:{click:function(t){return e.handleSubmit(1)}}},[e._v("发布")]),t("a-button",{staticClass:"subButton",attrs:{type:"danger"},on:{click:function(t){return e.handleSubmit(0)}}},[e._v("存为草稿")]),t("a-button",{staticClass:"subButton",on:{click:e.handleCancel}},[e._v("取消")])],1)],1)],1)],1)},n=[],a=(i("d3b7"),i("159b"),i("3ca3"),i("ddb0"),i("2b3d"),i("9861"),i("25f0"),i("b0c0"),i("a4d3"),i("e01a"),i("f0c4")),o=i("126f"),l=i("6597"),u=i("2af9"),s=i("0901"),d={name:"AddForm",components:{AntdEditor:u["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:3}},wrapperCol:{xs:{span:24},sm:{span:18}},visible:!1,confirmLoading:!1,form:this.$form.createForm(this),editorContent:"",editorContentText:"",editorUploadConfig:{method:"http",uploadImgServer:"/sysFileInfo/upload",callback:this.editorUploadImage},mockData:[],targetKeys:[],typeDictTypeDropDown:[],formLoading:!0}},methods:{add:function(){this.visible=!0,this.sysDictTypeDropDown(),this.getMock()},sysDictTypeDropDown:function(){var e=this;Object(o["d"])({code:"notice_type"}).then((function(t){e.typeDictTypeDropDown=t.data}))},editorUploadImage:function(e,t){var i=this,r=new FormData;e.forEach((function(e){r.append("file",e)})),Object(l["e"])(r).then((function(e){0===e.code?Object(l["d"])({id:e.data}).then((function(e){t(window.URL.createObjectURL(new Blob([e])))})).catch((function(e){i.$myerror("上传预览错误:"+e.message)})):i.$myerror("编辑器上传图片失败:"+e.message)})).catch((function(e){i.$myerror("预览错误:"+e.message)}))},getEditor:function(e){this.editor=e},changeEditor:function(e,t){this.editorContent=e,this.editorContentText=t.text()},getMock:function(){var e=this,t=[],i=[];Object(s["s"])().then((function(t){e.formLoading=!1;for(var r=0;r-1},handleChange:function(e,t,i){this.targetKeys=e},handleSubmit:function(e){var t=this,i=this.form.validateFields;""!=this.editorContent?this.targetKeys.length<1?this.$myerror("请选择通知到的人"):i((function(i,r){i||(t.formLoading=!0,r.content=t.editorContent,r.status=e,r.noticeUserIdList=t.targetKeys,Object(a["a"])(r).then((function(e){0===e.code?(t.$message.success("新增成功"),t.$emit("ok",r),t.handleCancel()):t.$myerror("新增失败:"+e.message)})).finally((function(e){t.formLoading=!1})))})):this.$myerror("请填写内容")},handleCancel:function(){this.editor.txt.clear(),this.targetKeys=[],this.editorContent="",this.form.resetFields(),this.visible=!1,this.formLoading=!0}}},c=d,p=(i("262f"),i("2877")),f=Object(p["a"])(c,r,n,!1,null,null,null);t["default"]=f.exports},"28e6":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",{staticClass:"page-header-index-wide"},[t("a-card",{style:{height:"100%"},attrs:{bordered:!1,bodyStyle:{padding:"16px 0",height:"100%"}}},[t("div",{staticClass:"account-settings-info-main",class:e.device},[t("div",{staticClass:"account-settings-info-left"},[t("a-menu",{style:{border:"0",width:"mobile"==e.device?"560px":"auto"},attrs:{mode:"mobile"==e.device?"horizontal":"inline","default-selected-keys":["1"],selectedKeys:e.selectedKey,type:"inner"},on:{click:e.changemenu}},[t("a-menu-item",{key:"1"},[e._v(" 小程序配置 ")])],1)],1),t("div",{staticClass:"account-settings-info-right"},[t("div",{staticClass:"account-settings-info-view"},[t("a-spin",{attrs:{spinning:e.confirmLoading}},["1"===e.selectedKey[0]?t("a-row",{attrs:{gutter:16}},[t("a-col",{attrs:{md:24,lg:16}},[t("a-form",{attrs:{layout:"vertical",form:e.form}},[t("a-form-item",{attrs:{label:"小程序名称"}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appname",{validateFirst:!0,rules:[{required:!0,message:"请输入小程序名称"},{max:50,message:"名称最多50个字"}]}],expression:"[\n 'appname',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入小程序名称' },\n { max: 50, message: '名称最多50个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入小程序名称"}})],1),t("a-form-item",{attrs:{label:"公众号二维码","has-feedback":""}},[t("a-upload",{directives:[{name:"decorator",rawName:"v-decorator",value:["officialqrcode",{validateFirst:!0,rules:[{required:!0,message:"请上传公众号二维码"},{max:200,message:"二维码最多200个字"}]}],expression:"[\n 'officialqrcode',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请上传公众号二维码' },\n { max: 200, message: '二维码最多200个字' }\n ]\n }\n ]"}],staticClass:"avatar-uploader",attrs:{name:"file","list-type":"picture-card","show-upload-list":!1,customRequest:e.handleUploadOfficial}},[e.currentInfo.officialqrcodeurl?t("img",{staticStyle:{"max-height":"200px","max-width":"400px"},attrs:{src:e.currentInfo.officialqrcodeurl,alt:"Logo"}}):t("div",[t("a-icon",{attrs:{type:e.uploading?"loading":"plus"}}),t("div",{staticClass:"ant-upload-text"},[e._v(" 上传二维码 ")])],1)])],1),t("a-form-item",{attrs:{label:"联系人二维码","has-feedback":""}},[t("a-upload",{directives:[{name:"decorator",rawName:"v-decorator",value:["secrataryqrcode",{validateFirst:!0,rules:[{required:!0,message:"请上传联系人二维码"},{max:200,message:"二维码最多200个字"}]}],expression:"[\n 'secrataryqrcode',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请上传联系人二维码' },\n { max: 200, message: '二维码最多200个字' }\n ]\n }\n ]"}],staticClass:"avatar-uploader",attrs:{name:"file","list-type":"picture-card","show-upload-list":!1,customRequest:e.handleUploadSecratary}},[e.currentInfo.secrataryqrcodeurl?t("img",{staticStyle:{"max-height":"200px","max-width":"400px"},attrs:{src:e.currentInfo.secrataryqrcodeurl,alt:"Logo"}}):t("div",[t("a-icon",{attrs:{type:e.uploading1?"loading":"plus"}}),t("div",{staticClass:"ant-upload-text"},[e._v(" 上传二维码 ")])],1)])],1),t("a-form-item",{attrs:{label:"联系人电话"}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["secrataryphone",{validateFirst:!0,rules:[{required:!0,message:"请输入联系人电话"},{max:50,message:"电话最多50个字"}]}],expression:"[\n 'secrataryphone',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入联系人电话' },\n { max: 50, message: '电话最多50个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入联系人电话"}})],1),t("a-form-item",{attrs:{label:"沪抖团介绍"}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["appdesc"],expression:"['appdesc']"}],staticStyle:{display:"none"},attrs:{rows:4,placeholder:"请输入沪抖团介绍"}}),t("WangEditor",{ref:"contentRef",attrs:{value:e.html,uploadConfig:e.uploadConfig}})],1),t("a-form-item",{attrs:{label:"隐私协议"}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["privacydesc"],expression:"['privacydesc']"}],staticStyle:{display:"none"},attrs:{rows:4,placeholder:"请输入隐私协议"}}),t("WangEditor",{ref:"contentRefP",attrs:{value:e.htmlP,uploadConfig:e.uploadConfig}})],1),t("a-form-item",[t("a-button",{attrs:{type:"primary"},on:{click:e.submitUserInfo}},[e._v("更新基本信息")])],1)],1)],1)],1):e._e()],1)],1)])])]),t("previewimg",{ref:"PreImg"})],1)},n=[],a=(i("d3b7"),i("ac0d")),o=i("e338"),l=i("b775");function u(e){return Object(l["b"])({url:"/platform/detail",method:"post",data:e})}function s(e){return Object(l["b"])({url:"/platform/submit",method:"post",data:e})}var d=i("00ea"),c=i("081d"),p={mixins:[a["c"]],components:{WangEditor:o["a"],previewimg:c["default"]},data:function(){return{loading:!1,uploading:!1,uploading1:!1,imageUrl:"",headimg:"",html:"",htmlP:"",htmls:"",uploadConfig:{method:"http",url:"common/uploadimg"},confirmLoading:!1,selectedKey:["1"],userid:0,currentInfo:{},form:this.$form.createForm(this)}},mounted:function(){this.GetDetail()},methods:{GetDetail:function(){var e=this;u({}).then((function(t){0===t.code&&t.data?(e.currentInfo=t.data,e.headimg=t.data.appimg,e.imageUrl=t.data.appimgurl,e.form.setFieldsValue({appname:t.data.appname,secrataryphone:t.data.secrataryphone,officialqrcode:t.data.officialqrcode,secrataryqrcode:t.data.secrataryqrcode,qyappid:t.data.qyappid,qyserviceurl:t.data.qyserviceurl,viewercnt:t.data.viewercnt,viewercntmin:t.data.viewercntmin,viewercntmax:t.data.viewercntmax}),e.html=t.data.appdesc,e.htmlP=t.data.privacydesc,e.htmls=""):e.form.resetFields()}))},changemenu:function(e){this.selectedKey=[e.key],"2"===e.key||this.GetDetail()},handleUpload:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(d["a"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path):t.$myerror(e.message),t.uploading=!1}))},handleUploadOfficial:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(d["a"])(i).then((function(e){0===e.code?(t.currentInfo.officialqrcodeurl=e.data.url,t.form.setFieldsValue({officialqrcode:e.data.path})):t.$myerror(e.message),t.uploading=!1}))},handleUploadSecratary:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading1=!0,Object(d["a"])(i).then((function(e){0===e.code?(t.currentInfo.secrataryqrcodeurl=e.data.url,t.form.setFieldsValue({secrataryqrcode:e.data.path})):t.$myerror(e.message),t.uploading1=!1}))},submitUserInfo:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!1,t((function(t,i){t?e.confirmLoading=!1:(i["appdesc"]=e.$refs.contentRef.gethtml(),i["appimg"]=e.headimg,i["privacydesc"]=e.$refs.contentRefP.gethtml(),s(i).then((function(t){0===t.code?e.$message.success("更新成功"):e.$message.error(t.message),e.confirmLoading=!1})).finally((function(t){e.confirmLoading=!1})))}))}}},f=p,v=(i("2fae"),i("2877")),h=Object(v["a"])(f,r,n,!1,null,"67279d5d",null);t["default"]=h.exports},"2b24":function(e,t,i){"use strict";i("2f7c")},"2bf8":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"小程序名称",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["name",{validateFirst:!0,rules:[{required:!0,message:"请输入小程序名称"},{max:50,message:"小程序名称最多50个字"}]}],expression:"[\n 'name',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入小程序名称' },\n { max: 50, message: '小程序名称最多50个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入小程序名称"}})],1),t("a-form-item",{attrs:{label:"appid",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appid",{validateFirst:!0,rules:[{required:!0,message:"请输入小程序appid"},{max:50,message:"小程序appid最多50个字"}]}],expression:"[\n 'appid',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入小程序appid' },\n { max: 50, message: '小程序appid最多50个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入小程序appid"}})],1),t("a-form-item",{attrs:{label:"小程序密钥",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appsecret",{validateFirst:!0,rules:[{required:!0,message:"请输入小程序密钥"},{max:50,message:"小程序密钥最多100个字"}]}],expression:"[\n 'appsecret',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入小程序密钥' },\n { max: 50, message: '小程序密钥最多100个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入小程序密钥"}})],1),t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{validateFirst:!0,rules:[{required:!0,message:"请输入小程序标题"},{max:10,message:"小程序标题最多10个字"}]}],expression:"[\n 'title',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入小程序标题' },\n { max: 10, message: '小程序标题最多10个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入小程序标题"}})],1),t("a-form-item",{attrs:{label:"主题色",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["themecolor",{validateFirst:!0,rules:[{required:!0,message:"请输入小程序主题色"},{max:20,message:"小程序主题色最多20个字"}]}],expression:"[\n 'themecolor',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入小程序主题色' },\n { max: 20, message: '小程序主题色最多20个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入小程序主题色"}})],1),t("a-form-item",{attrs:{label:"说明",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["desc",{rules:[{max:200,message:"说明最多200个字"}]}],expression:"['desc', { rules: [{ max: 200, message: '说明最多200个字' }] }]"}],attrs:{rows:4,placeholder:"请输入小程序说明"}})],1)],1)],1)],1)},n=[],a=(i("b0c0"),i("d3b7"),i("48b4")),o={props:{title:{type:String,required:!0}},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},loading:!1,wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this)}},methods:{init:function(e){var t=this;this.visible=!0,this.currentInfo=e,e&&e.id&&setTimeout((function(){t.form.setFieldsValue({name:e.name,appid:e.appid,appsecret:e.appsecret,desc:e.desc,title:e.title,themecolor:e.themecolor})}),100)},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:(i["id"]=e.currentInfo.id?e.currentInfo.id:null,Object(a["b"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1})))}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},l=o,u=i("2877"),s=Object(u["a"])(l,r,n,!1,null,null,null);t["default"]=s.exports},"2c32":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入标题"},model:{value:e.queryParam.title,callback:function(t){e.$set(e.queryParam,"title",t)},expression:"queryParam.title"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择上架状态","allow-clear":""},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("goodsstatus"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择类型","allow-clear":""},model:{value:e.queryParam.ptype,callback:function(t){e.$set(e.queryParam,"ptype",t)},expression:"queryParam.ptype"}},e._l(e.GetClientDataList("conenttypeenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.title,src:r.imageurl,srcSet:r.imageurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.title,img:r.imageurl})}}})],1)}},{key:"page",fn:function(i,r){return t("span",{},[4===r.ptype?t("a",{on:{click:function(t){return e.copyTextByContentType(i,1)}}},[e._v("复制")]):t("span",[e._v("不支持")])])}},{key:"status",fn:function(i,r){return t("span",{},[1===r.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))]):2===r.status?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))])],1)}},{key:"ptype",fn:function(i){return t("span",{},[e._v(" "+e._s(e.getenumval("conenttypeenum",i))+" ")])}},{key:"istop",fn:function(i){return t("span",{},[t("span",i?[e._v("是")]:[e._v("否")])])}},{key:"content",fn:function(i,r){return t("div",{},[1===r.ptype?t("div",[t("div",[e._v("AppId:"+e._s(r.appid))]),""!==i?t("div",[e._v(" 路径:"),t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1):e._e()]):e._e(),2===r.ptype||3===r.ptype?t("div",[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1):e._e(),4===r.ptype?t("div",[t("div",[e._v(e._s(e.textcontent(i,10)))])]):e._e()])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("gongyixinxi:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e(),!e.hasPerm("gongyixinxi:status")||1!==r.status&&3!==r.status?e._e():t("a-divider",{attrs:{type:"vertical"}}),!e.hasPerm("gongyixinxi:status")||1!==r.status&&3!==r.status?e._e():t("a-popconfirm",{attrs:{placement:"topRight",title:"确认上架?"},on:{confirm:function(){return e.setstatus(r,2)}}},[t("a",[e._v("上架")])]),e.hasPerm("gongyixinxi:status")&&2==r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("gongyixinxi:status")&&2==r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认下架?"},on:{confirm:function(){return e.setstatus(r,1)}}},[t("a",[e._v("下架")])]):e._e()],1)}}])},[e.hasPerm("gongyixinxi:add")?t("template",{slot:"operator"},[e.hasPerm("gongyixinxi:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.AddorEdit({},0)}}},[e._v("新增公益信息")]):e._e()],1):e._e()],2),t("editForm",{ref:"editForm",attrs:{title:e.title},on:{ok:e.handleOk}})],1),t("previewimg",{ref:"PreImg"})],1)},n=[],a=i("2af9"),o=i("cd3f3"),l=i("310b"),u=i("081d"),s=i("c09e"),d=i("ca00"),c={components:{XCard:a["k"],STable:a["h"],editForm:s["default"],previewimg:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"",columns:[{title:"封面图",dataIndex:"headimg",scopedSlots:{customRender:"headimg"}},{title:"标题",dataIndex:"title"},{title:"类型",dataIndex:"ptype",scopedSlots:{customRender:"ptype"}},{title:"是否置顶",dataIndex:"istop",scopedSlots:{customRender:"istop"}},{title:"浏览量",dataIndex:"browsecnt"},{title:"点赞量",dataIndex:"likecnt"},{title:"内容",dataIndex:"content",scopedSlots:{customRender:"content"}},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{dataIndex:"createdtime",title:"创建时间"},{title:"内链",dataIndex:"id",scopedSlots:{customRender:"page"}}],loadData:function(t){return Object(o["c"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){(this.hasPerm("gongyixinxi:status")||this.hasPerm("gongyixinxi:edit"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:l["b"],copyTextByContentType:d["a"],textcontent:d["c"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},AddorEdit:function(e,t){this.title=1===t?"编辑资讯":"新增资讯",this.$refs.editForm.init(e)},setstatus:function(e,t){var i=this;Object(o["g"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)}))}}},p=c,f=(i("60b5"),i("2877")),v=Object(f["a"])(p,r,n,!1,null,"4a867e18",null);t["default"]=v.exports},"2f5d":function(e){e.exports=JSON.parse('[{"id":"11","pid":0,"value":"北京市","ext_id":"110000000000","label":"北京市","children":[{"id":"1101","pid":11,"value":"北京市","ext_id":"110100000000","label":"北京市","children":[{"id":"110101","pid":1101,"value":"东城区","ext_id":"110101000000","label":"东城区"},{"id":"110102","pid":1101,"value":"西城区","ext_id":"110102000000","label":"西城区"},{"id":"110105","pid":1101,"value":"朝阳区","ext_id":"110105000000","label":"朝阳区"},{"id":"110106","pid":1101,"value":"丰台区","ext_id":"110106000000","label":"丰台区"},{"id":"110107","pid":1101,"value":"石景山区","ext_id":"110107000000","label":"石景山区"},{"id":"110108","pid":1101,"value":"海淀区","ext_id":"110108000000","label":"海淀区"},{"id":"110109","pid":1101,"value":"门头沟区","ext_id":"110109000000","label":"门头沟区"},{"id":"110111","pid":1101,"value":"房山区","ext_id":"110111000000","label":"房山区"},{"id":"110112","pid":1101,"value":"通州区","ext_id":"110112000000","label":"通州区"},{"id":"110113","pid":1101,"value":"顺义区","ext_id":"110113000000","label":"顺义区"},{"id":"110114","pid":1101,"value":"昌平区","ext_id":"110114000000","label":"昌平区"},{"id":"110115","pid":1101,"value":"大兴区","ext_id":"110115000000","label":"大兴区"},{"id":"110116","pid":1101,"value":"怀柔区","ext_id":"110116000000","label":"怀柔区"},{"id":"110117","pid":1101,"value":"平谷区","ext_id":"110117000000","label":"平谷区"},{"id":"110118","pid":1101,"value":"密云区","ext_id":"110118000000","label":"密云区"},{"id":"110119","pid":1101,"value":"延庆区","ext_id":"110119000000","label":"延庆区"}]}]},{"id":"12","pid":0,"value":"天津市","ext_id":"120000000000","label":"天津市","children":[{"id":"1201","pid":12,"value":"天津市","ext_id":"120100000000","label":"天津市","children":[{"id":"120101","pid":1201,"value":"和平区","ext_id":"120101000000","label":"和平区"},{"id":"120102","pid":1201,"value":"河东区","ext_id":"120102000000","label":"河东区"},{"id":"120103","pid":1201,"value":"河西区","ext_id":"120103000000","label":"河西区"},{"id":"120104","pid":1201,"value":"南开区","ext_id":"120104000000","label":"南开区"},{"id":"120105","pid":1201,"value":"河北区","ext_id":"120105000000","label":"河北区"},{"id":"120106","pid":1201,"value":"红桥区","ext_id":"120106000000","label":"红桥区"},{"id":"120110","pid":1201,"value":"东丽区","ext_id":"120110000000","label":"东丽区"},{"id":"120111","pid":1201,"value":"西青区","ext_id":"120111000000","label":"西青区"},{"id":"120112","pid":1201,"value":"津南区","ext_id":"120112000000","label":"津南区"},{"id":"120113","pid":1201,"value":"北辰区","ext_id":"120113000000","label":"北辰区"},{"id":"120114","pid":1201,"value":"武清区","ext_id":"120114000000","label":"武清区"},{"id":"120115","pid":1201,"value":"宝坻区","ext_id":"120115000000","label":"宝坻区"},{"id":"120116","pid":1201,"value":"滨海新区","ext_id":"120116000000","label":"滨海新区"},{"id":"120117","pid":1201,"value":"宁河区","ext_id":"120117000000","label":"宁河区"},{"id":"120118","pid":1201,"value":"静海区","ext_id":"120118000000","label":"静海区"},{"id":"120119","pid":1201,"value":"蓟州区","ext_id":"120119000000","label":"蓟州区"}]}]},{"id":"13","pid":0,"value":"河北省","ext_id":"130000000000","label":"河北省","children":[{"id":"1301","pid":13,"value":"石家庄市","ext_id":"130100000000","label":"石家庄市","children":[{"id":"130102","pid":1301,"value":"长安区","ext_id":"130102000000","label":"长安区"},{"id":"130104","pid":1301,"value":"桥西区","ext_id":"130104000000","label":"桥西区"},{"id":"130105","pid":1301,"value":"新华区","ext_id":"130105000000","label":"新华区"},{"id":"130107","pid":1301,"value":"井陉矿区","ext_id":"130107000000","label":"井陉矿区"},{"id":"130108","pid":1301,"value":"裕华区","ext_id":"130108000000","label":"裕华区"},{"id":"130109","pid":1301,"value":"藁城区","ext_id":"130109000000","label":"藁城区"},{"id":"130110","pid":1301,"value":"鹿泉区","ext_id":"130110000000","label":"鹿泉区"},{"id":"130111","pid":1301,"value":"栾城区","ext_id":"130111000000","label":"栾城区"},{"id":"130121","pid":1301,"value":"井陉县","ext_id":"130121000000","label":"井陉县"},{"id":"130123","pid":1301,"value":"正定县","ext_id":"130123000000","label":"正定县"},{"id":"130125","pid":1301,"value":"行唐县","ext_id":"130125000000","label":"行唐县"},{"id":"130126","pid":1301,"value":"灵寿县","ext_id":"130126000000","label":"灵寿县"},{"id":"130127","pid":1301,"value":"高邑县","ext_id":"130127000000","label":"高邑县"},{"id":"130128","pid":1301,"value":"深泽县","ext_id":"130128000000","label":"深泽县"},{"id":"130129","pid":1301,"value":"赞皇县","ext_id":"130129000000","label":"赞皇县"},{"id":"130130","pid":1301,"value":"无极县","ext_id":"130130000000","label":"无极县"},{"id":"130131","pid":1301,"value":"平山县","ext_id":"130131000000","label":"平山县"},{"id":"130132","pid":1301,"value":"元氏县","ext_id":"130132000000","label":"元氏县"},{"id":"130133","pid":1301,"value":"赵县","ext_id":"130133000000","label":"赵县"},{"id":"130181","pid":1301,"value":"辛集市","ext_id":"130181000000","label":"辛集市"},{"id":"130183","pid":1301,"value":"晋州市","ext_id":"130183000000","label":"晋州市"},{"id":"130184","pid":1301,"value":"新乐市","ext_id":"130184000000","label":"新乐市"}]},{"id":"1302","pid":13,"value":"唐山市","ext_id":"130200000000","label":"唐山市","children":[{"id":"130202","pid":1302,"value":"路南区","ext_id":"130202000000","label":"路南区"},{"id":"130203","pid":1302,"value":"路北区","ext_id":"130203000000","label":"路北区"},{"id":"130204","pid":1302,"value":"古冶区","ext_id":"130204000000","label":"古冶区"},{"id":"130205","pid":1302,"value":"开平区","ext_id":"130205000000","label":"开平区"},{"id":"130207","pid":1302,"value":"丰南区","ext_id":"130207000000","label":"丰南区"},{"id":"130208","pid":1302,"value":"丰润区","ext_id":"130208000000","label":"丰润区"},{"id":"130209","pid":1302,"value":"曹妃甸区","ext_id":"130209000000","label":"曹妃甸区"},{"id":"130224","pid":1302,"value":"滦南县","ext_id":"130224000000","label":"滦南县"},{"id":"130225","pid":1302,"value":"乐亭县","ext_id":"130225000000","label":"乐亭县"},{"id":"130227","pid":1302,"value":"迁西县","ext_id":"130227000000","label":"迁西县"},{"id":"130229","pid":1302,"value":"玉田县","ext_id":"130229000000","label":"玉田县"},{"id":"130281","pid":1302,"value":"遵化市","ext_id":"130281000000","label":"遵化市"},{"id":"130283","pid":1302,"value":"迁安市","ext_id":"130283000000","label":"迁安市"},{"id":"130284","pid":1302,"value":"滦州市","ext_id":"130284000000","label":"滦州市"}]},{"id":"1303","pid":13,"value":"秦皇岛市","ext_id":"130300000000","label":"秦皇岛市","children":[{"id":"130302","pid":1303,"value":"海港区","ext_id":"130302000000","label":"海港区"},{"id":"130303","pid":1303,"value":"山海关区","ext_id":"130303000000","label":"山海关区"},{"id":"130304","pid":1303,"value":"北戴河区","ext_id":"130304000000","label":"北戴河区"},{"id":"130306","pid":1303,"value":"抚宁区","ext_id":"130306000000","label":"抚宁区"},{"id":"130321","pid":1303,"value":"青龙满族自治县","ext_id":"130321000000","label":"青龙满族自治县"},{"id":"130322","pid":1303,"value":"昌黎县","ext_id":"130322000000","label":"昌黎县"},{"id":"130324","pid":1303,"value":"卢龙县","ext_id":"130324000000","label":"卢龙县"}]},{"id":"1304","pid":13,"value":"邯郸市","ext_id":"130400000000","label":"邯郸市","children":[{"id":"130402","pid":1304,"value":"邯山区","ext_id":"130402000000","label":"邯山区"},{"id":"130403","pid":1304,"value":"丛台区","ext_id":"130403000000","label":"丛台区"},{"id":"130404","pid":1304,"value":"复兴区","ext_id":"130404000000","label":"复兴区"},{"id":"130406","pid":1304,"value":"峰峰矿区","ext_id":"130406000000","label":"峰峰矿区"},{"id":"130407","pid":1304,"value":"肥乡区","ext_id":"130407000000","label":"肥乡区"},{"id":"130408","pid":1304,"value":"永年区","ext_id":"130408000000","label":"永年区"},{"id":"130423","pid":1304,"value":"临漳县","ext_id":"130423000000","label":"临漳县"},{"id":"130424","pid":1304,"value":"成安县","ext_id":"130424000000","label":"成安县"},{"id":"130425","pid":1304,"value":"大名县","ext_id":"130425000000","label":"大名县"},{"id":"130426","pid":1304,"value":"涉县","ext_id":"130426000000","label":"涉县"},{"id":"130427","pid":1304,"value":"磁县","ext_id":"130427000000","label":"磁县"},{"id":"130430","pid":1304,"value":"邱县","ext_id":"130430000000","label":"邱县"},{"id":"130431","pid":1304,"value":"鸡泽县","ext_id":"130431000000","label":"鸡泽县"},{"id":"130432","pid":1304,"value":"广平县","ext_id":"130432000000","label":"广平县"},{"id":"130433","pid":1304,"value":"馆陶县","ext_id":"130433000000","label":"馆陶县"},{"id":"130434","pid":1304,"value":"魏县","ext_id":"130434000000","label":"魏县"},{"id":"130435","pid":1304,"value":"曲周县","ext_id":"130435000000","label":"曲周县"},{"id":"130481","pid":1304,"value":"武安市","ext_id":"130481000000","label":"武安市"}]},{"id":"1305","pid":13,"value":"邢台市","ext_id":"130500000000","label":"邢台市","children":[{"id":"130502","pid":1305,"value":"襄都区","ext_id":"130502000000","label":"襄都区"},{"id":"130503","pid":1305,"value":"信都区","ext_id":"130503000000","label":"信都区"},{"id":"130505","pid":1305,"value":"任泽区","ext_id":"130505000000","label":"任泽区"},{"id":"130506","pid":1305,"value":"南和区","ext_id":"130506000000","label":"南和区"},{"id":"130522","pid":1305,"value":"临城县","ext_id":"130522000000","label":"临城县"},{"id":"130523","pid":1305,"value":"内丘县","ext_id":"130523000000","label":"内丘县"},{"id":"130524","pid":1305,"value":"柏乡县","ext_id":"130524000000","label":"柏乡县"},{"id":"130525","pid":1305,"value":"隆尧县","ext_id":"130525000000","label":"隆尧县"},{"id":"130528","pid":1305,"value":"宁晋县","ext_id":"130528000000","label":"宁晋县"},{"id":"130529","pid":1305,"value":"巨鹿县","ext_id":"130529000000","label":"巨鹿县"},{"id":"130530","pid":1305,"value":"新河县","ext_id":"130530000000","label":"新河县"},{"id":"130531","pid":1305,"value":"广宗县","ext_id":"130531000000","label":"广宗县"},{"id":"130532","pid":1305,"value":"平乡县","ext_id":"130532000000","label":"平乡县"},{"id":"130533","pid":1305,"value":"威县","ext_id":"130533000000","label":"威县"},{"id":"130534","pid":1305,"value":"清河县","ext_id":"130534000000","label":"清河县"},{"id":"130535","pid":1305,"value":"临西县","ext_id":"130535000000","label":"临西县"},{"id":"130581","pid":1305,"value":"南宫市","ext_id":"130581000000","label":"南宫市"},{"id":"130582","pid":1305,"value":"沙河市","ext_id":"130582000000","label":"沙河市"}]},{"id":"1306","pid":13,"value":"保定市","ext_id":"130600000000","label":"保定市","children":[{"id":"130602","pid":1306,"value":"竞秀区","ext_id":"130602000000","label":"竞秀区"},{"id":"130606","pid":1306,"value":"莲池区","ext_id":"130606000000","label":"莲池区"},{"id":"130607","pid":1306,"value":"满城区","ext_id":"130607000000","label":"满城区"},{"id":"130608","pid":1306,"value":"清苑区","ext_id":"130608000000","label":"清苑区"},{"id":"130609","pid":1306,"value":"徐水区","ext_id":"130609000000","label":"徐水区"},{"id":"130623","pid":1306,"value":"涞水县","ext_id":"130623000000","label":"涞水县"},{"id":"130624","pid":1306,"value":"阜平县","ext_id":"130624000000","label":"阜平县"},{"id":"130626","pid":1306,"value":"定兴县","ext_id":"130626000000","label":"定兴县"},{"id":"130627","pid":1306,"value":"唐县","ext_id":"130627000000","label":"唐县"},{"id":"130628","pid":1306,"value":"高阳县","ext_id":"130628000000","label":"高阳县"},{"id":"130629","pid":1306,"value":"容城县","ext_id":"130629000000","label":"容城县"},{"id":"130630","pid":1306,"value":"涞源县","ext_id":"130630000000","label":"涞源县"},{"id":"130631","pid":1306,"value":"望都县","ext_id":"130631000000","label":"望都县"},{"id":"130632","pid":1306,"value":"安新县","ext_id":"130632000000","label":"安新县"},{"id":"130633","pid":1306,"value":"易县","ext_id":"130633000000","label":"易县"},{"id":"130634","pid":1306,"value":"曲阳县","ext_id":"130634000000","label":"曲阳县"},{"id":"130635","pid":1306,"value":"蠡县","ext_id":"130635000000","label":"蠡县"},{"id":"130636","pid":1306,"value":"顺平县","ext_id":"130636000000","label":"顺平县"},{"id":"130637","pid":1306,"value":"博野县","ext_id":"130637000000","label":"博野县"},{"id":"130638","pid":1306,"value":"雄县","ext_id":"130638000000","label":"雄县"},{"id":"130681","pid":1306,"value":"涿州市","ext_id":"130681000000","label":"涿州市"},{"id":"130682","pid":1306,"value":"定州市","ext_id":"130682000000","label":"定州市"},{"id":"130683","pid":1306,"value":"安国市","ext_id":"130683000000","label":"安国市"},{"id":"130684","pid":1306,"value":"高碑店市","ext_id":"130684000000","label":"高碑店市"}]},{"id":"1307","pid":13,"value":"张家口市","ext_id":"130700000000","label":"张家口市","children":[{"id":"130702","pid":1307,"value":"桥东区","ext_id":"130702000000","label":"桥东区"},{"id":"130703","pid":1307,"value":"桥西区","ext_id":"130703000000","label":"桥西区"},{"id":"130705","pid":1307,"value":"宣化区","ext_id":"130705000000","label":"宣化区"},{"id":"130706","pid":1307,"value":"下花园区","ext_id":"130706000000","label":"下花园区"},{"id":"130708","pid":1307,"value":"万全区","ext_id":"130708000000","label":"万全区"},{"id":"130709","pid":1307,"value":"崇礼区","ext_id":"130709000000","label":"崇礼区"},{"id":"130722","pid":1307,"value":"张北县","ext_id":"130722000000","label":"张北县"},{"id":"130723","pid":1307,"value":"康保县","ext_id":"130723000000","label":"康保县"},{"id":"130724","pid":1307,"value":"沽源县","ext_id":"130724000000","label":"沽源县"},{"id":"130725","pid":1307,"value":"尚义县","ext_id":"130725000000","label":"尚义县"},{"id":"130726","pid":1307,"value":"蔚县","ext_id":"130726000000","label":"蔚县"},{"id":"130727","pid":1307,"value":"阳原县","ext_id":"130727000000","label":"阳原县"},{"id":"130728","pid":1307,"value":"怀安县","ext_id":"130728000000","label":"怀安县"},{"id":"130730","pid":1307,"value":"怀来县","ext_id":"130730000000","label":"怀来县"},{"id":"130731","pid":1307,"value":"涿鹿县","ext_id":"130731000000","label":"涿鹿县"},{"id":"130732","pid":1307,"value":"赤城县","ext_id":"130732000000","label":"赤城县"}]},{"id":"1308","pid":13,"value":"承德市","ext_id":"130800000000","label":"承德市","children":[{"id":"130802","pid":1308,"value":"双桥区","ext_id":"130802000000","label":"双桥区"},{"id":"130803","pid":1308,"value":"双滦区","ext_id":"130803000000","label":"双滦区"},{"id":"130804","pid":1308,"value":"鹰手营子矿区","ext_id":"130804000000","label":"鹰手营子矿区"},{"id":"130821","pid":1308,"value":"承德县","ext_id":"130821000000","label":"承德县"},{"id":"130822","pid":1308,"value":"兴隆县","ext_id":"130822000000","label":"兴隆县"},{"id":"130824","pid":1308,"value":"滦平县","ext_id":"130824000000","label":"滦平县"},{"id":"130825","pid":1308,"value":"隆化县","ext_id":"130825000000","label":"隆化县"},{"id":"130826","pid":1308,"value":"丰宁满族自治县","ext_id":"130826000000","label":"丰宁满族自治县"},{"id":"130827","pid":1308,"value":"宽城满族自治县","ext_id":"130827000000","label":"宽城满族自治县"},{"id":"130828","pid":1308,"value":"围场满族蒙古族自治县","ext_id":"130828000000","label":"围场满族蒙古族自治县"},{"id":"130881","pid":1308,"value":"平泉市","ext_id":"130881000000","label":"平泉市"}]},{"id":"1309","pid":13,"value":"沧州市","ext_id":"130900000000","label":"沧州市","children":[{"id":"130902","pid":1309,"value":"新华区","ext_id":"130902000000","label":"新华区"},{"id":"130903","pid":1309,"value":"运河区","ext_id":"130903000000","label":"运河区"},{"id":"130921","pid":1309,"value":"沧县","ext_id":"130921000000","label":"沧县"},{"id":"130922","pid":1309,"value":"青县","ext_id":"130922000000","label":"青县"},{"id":"130923","pid":1309,"value":"东光县","ext_id":"130923000000","label":"东光县"},{"id":"130924","pid":1309,"value":"海兴县","ext_id":"130924000000","label":"海兴县"},{"id":"130925","pid":1309,"value":"盐山县","ext_id":"130925000000","label":"盐山县"},{"id":"130926","pid":1309,"value":"肃宁县","ext_id":"130926000000","label":"肃宁县"},{"id":"130927","pid":1309,"value":"南皮县","ext_id":"130927000000","label":"南皮县"},{"id":"130928","pid":1309,"value":"吴桥县","ext_id":"130928000000","label":"吴桥县"},{"id":"130929","pid":1309,"value":"献县","ext_id":"130929000000","label":"献县"},{"id":"130930","pid":1309,"value":"孟村回族自治县","ext_id":"130930000000","label":"孟村回族自治县"},{"id":"130981","pid":1309,"value":"泊头市","ext_id":"130981000000","label":"泊头市"},{"id":"130982","pid":1309,"value":"任丘市","ext_id":"130982000000","label":"任丘市"},{"id":"130983","pid":1309,"value":"黄骅市","ext_id":"130983000000","label":"黄骅市"},{"id":"130984","pid":1309,"value":"河间市","ext_id":"130984000000","label":"河间市"}]},{"id":"1310","pid":13,"value":"廊坊市","ext_id":"131000000000","label":"廊坊市","children":[{"id":"131002","pid":1310,"value":"安次区","ext_id":"131002000000","label":"安次区"},{"id":"131003","pid":1310,"value":"广阳区","ext_id":"131003000000","label":"广阳区"},{"id":"131022","pid":1310,"value":"固安县","ext_id":"131022000000","label":"固安县"},{"id":"131023","pid":1310,"value":"永清县","ext_id":"131023000000","label":"永清县"},{"id":"131024","pid":1310,"value":"香河县","ext_id":"131024000000","label":"香河县"},{"id":"131025","pid":1310,"value":"大城县","ext_id":"131025000000","label":"大城县"},{"id":"131026","pid":1310,"value":"文安县","ext_id":"131026000000","label":"文安县"},{"id":"131028","pid":1310,"value":"大厂回族自治县","ext_id":"131028000000","label":"大厂回族自治县"},{"id":"131081","pid":1310,"value":"霸州市","ext_id":"131081000000","label":"霸州市"},{"id":"131082","pid":1310,"value":"三河市","ext_id":"131082000000","label":"三河市"}]},{"id":"1311","pid":13,"value":"衡水市","ext_id":"131100000000","label":"衡水市","children":[{"id":"131102","pid":1311,"value":"桃城区","ext_id":"131102000000","label":"桃城区"},{"id":"131103","pid":1311,"value":"冀州区","ext_id":"131103000000","label":"冀州区"},{"id":"131121","pid":1311,"value":"枣强县","ext_id":"131121000000","label":"枣强县"},{"id":"131122","pid":1311,"value":"武邑县","ext_id":"131122000000","label":"武邑县"},{"id":"131123","pid":1311,"value":"武强县","ext_id":"131123000000","label":"武强县"},{"id":"131124","pid":1311,"value":"饶阳县","ext_id":"131124000000","label":"饶阳县"},{"id":"131125","pid":1311,"value":"安平县","ext_id":"131125000000","label":"安平县"},{"id":"131126","pid":1311,"value":"故城县","ext_id":"131126000000","label":"故城县"},{"id":"131127","pid":1311,"value":"景县","ext_id":"131127000000","label":"景县"},{"id":"131128","pid":1311,"value":"阜城县","ext_id":"131128000000","label":"阜城县"},{"id":"131182","pid":1311,"value":"深州市","ext_id":"131182000000","label":"深州市"}]}]},{"id":"14","pid":0,"value":"山西省","ext_id":"140000000000","label":"山西省","children":[{"id":"1401","pid":14,"value":"太原市","ext_id":"140100000000","label":"太原市","children":[{"id":"140105","pid":1401,"value":"小店区","ext_id":"140105000000","label":"小店区"},{"id":"140106","pid":1401,"value":"迎泽区","ext_id":"140106000000","label":"迎泽区"},{"id":"140107","pid":1401,"value":"杏花岭区","ext_id":"140107000000","label":"杏花岭区"},{"id":"140108","pid":1401,"value":"尖草坪区","ext_id":"140108000000","label":"尖草坪区"},{"id":"140109","pid":1401,"value":"万柏林区","ext_id":"140109000000","label":"万柏林区"},{"id":"140110","pid":1401,"value":"晋源区","ext_id":"140110000000","label":"晋源区"},{"id":"140121","pid":1401,"value":"清徐县","ext_id":"140121000000","label":"清徐县"},{"id":"140122","pid":1401,"value":"阳曲县","ext_id":"140122000000","label":"阳曲县"},{"id":"140123","pid":1401,"value":"娄烦县","ext_id":"140123000000","label":"娄烦县"},{"id":"140181","pid":1401,"value":"古交市","ext_id":"140181000000","label":"古交市"}]},{"id":"1402","pid":14,"value":"大同市","ext_id":"140200000000","label":"大同市","children":[{"id":"140212","pid":1402,"value":"新荣区","ext_id":"140212000000","label":"新荣区"},{"id":"140213","pid":1402,"value":"平城区","ext_id":"140213000000","label":"平城区"},{"id":"140214","pid":1402,"value":"云冈区","ext_id":"140214000000","label":"云冈区"},{"id":"140215","pid":1402,"value":"云州区","ext_id":"140215000000","label":"云州区"},{"id":"140221","pid":1402,"value":"阳高县","ext_id":"140221000000","label":"阳高县"},{"id":"140222","pid":1402,"value":"天镇县","ext_id":"140222000000","label":"天镇县"},{"id":"140223","pid":1402,"value":"广灵县","ext_id":"140223000000","label":"广灵县"},{"id":"140224","pid":1402,"value":"灵丘县","ext_id":"140224000000","label":"灵丘县"},{"id":"140225","pid":1402,"value":"浑源县","ext_id":"140225000000","label":"浑源县"},{"id":"140226","pid":1402,"value":"左云县","ext_id":"140226000000","label":"左云县"}]},{"id":"1403","pid":14,"value":"阳泉市","ext_id":"140300000000","label":"阳泉市","children":[{"id":"140302","pid":1403,"value":"城区","ext_id":"140302000000","label":"城区"},{"id":"140303","pid":1403,"value":"矿区","ext_id":"140303000000","label":"矿区"},{"id":"140311","pid":1403,"value":"郊区","ext_id":"140311000000","label":"郊区"},{"id":"140321","pid":1403,"value":"平定县","ext_id":"140321000000","label":"平定县"},{"id":"140322","pid":1403,"value":"盂县","ext_id":"140322000000","label":"盂县"}]},{"id":"1404","pid":14,"value":"长治市","ext_id":"140400000000","label":"长治市","children":[{"id":"140403","pid":1404,"value":"潞州区","ext_id":"140403000000","label":"潞州区"},{"id":"140404","pid":1404,"value":"上党区","ext_id":"140404000000","label":"上党区"},{"id":"140405","pid":1404,"value":"屯留区","ext_id":"140405000000","label":"屯留区"},{"id":"140406","pid":1404,"value":"潞城区","ext_id":"140406000000","label":"潞城区"},{"id":"140423","pid":1404,"value":"襄垣县","ext_id":"140423000000","label":"襄垣县"},{"id":"140425","pid":1404,"value":"平顺县","ext_id":"140425000000","label":"平顺县"},{"id":"140426","pid":1404,"value":"黎城县","ext_id":"140426000000","label":"黎城县"},{"id":"140427","pid":1404,"value":"壶关县","ext_id":"140427000000","label":"壶关县"},{"id":"140428","pid":1404,"value":"长子县","ext_id":"140428000000","label":"长子县"},{"id":"140429","pid":1404,"value":"武乡县","ext_id":"140429000000","label":"武乡县"},{"id":"140430","pid":1404,"value":"沁县","ext_id":"140430000000","label":"沁县"},{"id":"140431","pid":1404,"value":"沁源县","ext_id":"140431000000","label":"沁源县"}]},{"id":"1405","pid":14,"value":"晋城市","ext_id":"140500000000","label":"晋城市","children":[{"id":"140502","pid":1405,"value":"城区","ext_id":"140502000000","label":"城区"},{"id":"140521","pid":1405,"value":"沁水县","ext_id":"140521000000","label":"沁水县"},{"id":"140522","pid":1405,"value":"阳城县","ext_id":"140522000000","label":"阳城县"},{"id":"140524","pid":1405,"value":"陵川县","ext_id":"140524000000","label":"陵川县"},{"id":"140525","pid":1405,"value":"泽州县","ext_id":"140525000000","label":"泽州县"},{"id":"140581","pid":1405,"value":"高平市","ext_id":"140581000000","label":"高平市"}]},{"id":"1406","pid":14,"value":"朔州市","ext_id":"140600000000","label":"朔州市","children":[{"id":"140602","pid":1406,"value":"朔城区","ext_id":"140602000000","label":"朔城区"},{"id":"140603","pid":1406,"value":"平鲁区","ext_id":"140603000000","label":"平鲁区"},{"id":"140621","pid":1406,"value":"山阴县","ext_id":"140621000000","label":"山阴县"},{"id":"140622","pid":1406,"value":"应县","ext_id":"140622000000","label":"应县"},{"id":"140623","pid":1406,"value":"右玉县","ext_id":"140623000000","label":"右玉县"},{"id":"140681","pid":1406,"value":"怀仁市","ext_id":"140681000000","label":"怀仁市"}]},{"id":"1407","pid":14,"value":"晋中市","ext_id":"140700000000","label":"晋中市","children":[{"id":"140702","pid":1407,"value":"榆次区","ext_id":"140702000000","label":"榆次区"},{"id":"140703","pid":1407,"value":"太谷区","ext_id":"140703000000","label":"太谷区"},{"id":"140721","pid":1407,"value":"榆社县","ext_id":"140721000000","label":"榆社县"},{"id":"140722","pid":1407,"value":"左权县","ext_id":"140722000000","label":"左权县"},{"id":"140723","pid":1407,"value":"和顺县","ext_id":"140723000000","label":"和顺县"},{"id":"140724","pid":1407,"value":"昔阳县","ext_id":"140724000000","label":"昔阳县"},{"id":"140725","pid":1407,"value":"寿阳县","ext_id":"140725000000","label":"寿阳县"},{"id":"140727","pid":1407,"value":"祁县","ext_id":"140727000000","label":"祁县"},{"id":"140728","pid":1407,"value":"平遥县","ext_id":"140728000000","label":"平遥县"},{"id":"140729","pid":1407,"value":"灵石县","ext_id":"140729000000","label":"灵石县"},{"id":"140781","pid":1407,"value":"介休市","ext_id":"140781000000","label":"介休市"}]},{"id":"1408","pid":14,"value":"运城市","ext_id":"140800000000","label":"运城市","children":[{"id":"140802","pid":1408,"value":"盐湖区","ext_id":"140802000000","label":"盐湖区"},{"id":"140821","pid":1408,"value":"临猗县","ext_id":"140821000000","label":"临猗县"},{"id":"140822","pid":1408,"value":"万荣县","ext_id":"140822000000","label":"万荣县"},{"id":"140823","pid":1408,"value":"闻喜县","ext_id":"140823000000","label":"闻喜县"},{"id":"140824","pid":1408,"value":"稷山县","ext_id":"140824000000","label":"稷山县"},{"id":"140825","pid":1408,"value":"新绛县","ext_id":"140825000000","label":"新绛县"},{"id":"140826","pid":1408,"value":"绛县","ext_id":"140826000000","label":"绛县"},{"id":"140827","pid":1408,"value":"垣曲县","ext_id":"140827000000","label":"垣曲县"},{"id":"140828","pid":1408,"value":"夏县","ext_id":"140828000000","label":"夏县"},{"id":"140829","pid":1408,"value":"平陆县","ext_id":"140829000000","label":"平陆县"},{"id":"140830","pid":1408,"value":"芮城县","ext_id":"140830000000","label":"芮城县"},{"id":"140881","pid":1408,"value":"永济市","ext_id":"140881000000","label":"永济市"},{"id":"140882","pid":1408,"value":"河津市","ext_id":"140882000000","label":"河津市"}]},{"id":"1409","pid":14,"value":"忻州市","ext_id":"140900000000","label":"忻州市","children":[{"id":"140902","pid":1409,"value":"忻府区","ext_id":"140902000000","label":"忻府区"},{"id":"140921","pid":1409,"value":"定襄县","ext_id":"140921000000","label":"定襄县"},{"id":"140922","pid":1409,"value":"五台县","ext_id":"140922000000","label":"五台县"},{"id":"140923","pid":1409,"value":"代县","ext_id":"140923000000","label":"代县"},{"id":"140924","pid":1409,"value":"繁峙县","ext_id":"140924000000","label":"繁峙县"},{"id":"140925","pid":1409,"value":"宁武县","ext_id":"140925000000","label":"宁武县"},{"id":"140926","pid":1409,"value":"静乐县","ext_id":"140926000000","label":"静乐县"},{"id":"140927","pid":1409,"value":"神池县","ext_id":"140927000000","label":"神池县"},{"id":"140928","pid":1409,"value":"五寨县","ext_id":"140928000000","label":"五寨县"},{"id":"140929","pid":1409,"value":"岢岚县","ext_id":"140929000000","label":"岢岚县"},{"id":"140930","pid":1409,"value":"河曲县","ext_id":"140930000000","label":"河曲县"},{"id":"140931","pid":1409,"value":"保德县","ext_id":"140931000000","label":"保德县"},{"id":"140932","pid":1409,"value":"偏关县","ext_id":"140932000000","label":"偏关县"},{"id":"140981","pid":1409,"value":"原平市","ext_id":"140981000000","label":"原平市"}]},{"id":"1410","pid":14,"value":"临汾市","ext_id":"141000000000","label":"临汾市","children":[{"id":"141002","pid":1410,"value":"尧都区","ext_id":"141002000000","label":"尧都区"},{"id":"141021","pid":1410,"value":"曲沃县","ext_id":"141021000000","label":"曲沃县"},{"id":"141022","pid":1410,"value":"翼城县","ext_id":"141022000000","label":"翼城县"},{"id":"141023","pid":1410,"value":"襄汾县","ext_id":"141023000000","label":"襄汾县"},{"id":"141024","pid":1410,"value":"洪洞县","ext_id":"141024000000","label":"洪洞县"},{"id":"141025","pid":1410,"value":"古县","ext_id":"141025000000","label":"古县"},{"id":"141026","pid":1410,"value":"安泽县","ext_id":"141026000000","label":"安泽县"},{"id":"141027","pid":1410,"value":"浮山县","ext_id":"141027000000","label":"浮山县"},{"id":"141028","pid":1410,"value":"吉县","ext_id":"141028000000","label":"吉县"},{"id":"141029","pid":1410,"value":"乡宁县","ext_id":"141029000000","label":"乡宁县"},{"id":"141030","pid":1410,"value":"大宁县","ext_id":"141030000000","label":"大宁县"},{"id":"141031","pid":1410,"value":"隰县","ext_id":"141031000000","label":"隰县"},{"id":"141032","pid":1410,"value":"永和县","ext_id":"141032000000","label":"永和县"},{"id":"141033","pid":1410,"value":"蒲县","ext_id":"141033000000","label":"蒲县"},{"id":"141034","pid":1410,"value":"汾西县","ext_id":"141034000000","label":"汾西县"},{"id":"141081","pid":1410,"value":"侯马市","ext_id":"141081000000","label":"侯马市"},{"id":"141082","pid":1410,"value":"霍州市","ext_id":"141082000000","label":"霍州市"}]},{"id":"1411","pid":14,"value":"吕梁市","ext_id":"141100000000","label":"吕梁市","children":[{"id":"141102","pid":1411,"value":"离石区","ext_id":"141102000000","label":"离石区"},{"id":"141121","pid":1411,"value":"文水县","ext_id":"141121000000","label":"文水县"},{"id":"141122","pid":1411,"value":"交城县","ext_id":"141122000000","label":"交城县"},{"id":"141123","pid":1411,"value":"兴县","ext_id":"141123000000","label":"兴县"},{"id":"141124","pid":1411,"value":"临县","ext_id":"141124000000","label":"临县"},{"id":"141125","pid":1411,"value":"柳林县","ext_id":"141125000000","label":"柳林县"},{"id":"141126","pid":1411,"value":"石楼县","ext_id":"141126000000","label":"石楼县"},{"id":"141127","pid":1411,"value":"岚县","ext_id":"141127000000","label":"岚县"},{"id":"141128","pid":1411,"value":"方山县","ext_id":"141128000000","label":"方山县"},{"id":"141129","pid":1411,"value":"中阳县","ext_id":"141129000000","label":"中阳县"},{"id":"141130","pid":1411,"value":"交口县","ext_id":"141130000000","label":"交口县"},{"id":"141181","pid":1411,"value":"孝义市","ext_id":"141181000000","label":"孝义市"},{"id":"141182","pid":1411,"value":"汾阳市","ext_id":"141182000000","label":"汾阳市"}]}]},{"id":"15","pid":0,"value":"内蒙古自治区","ext_id":"150000000000","label":"内蒙古自治区","children":[{"id":"1501","pid":15,"value":"呼和浩特市","ext_id":"150100000000","label":"呼和浩特市","children":[{"id":"150102","pid":1501,"value":"新城区","ext_id":"150102000000","label":"新城区"},{"id":"150103","pid":1501,"value":"回民区","ext_id":"150103000000","label":"回民区"},{"id":"150104","pid":1501,"value":"玉泉区","ext_id":"150104000000","label":"玉泉区"},{"id":"150105","pid":1501,"value":"赛罕区","ext_id":"150105000000","label":"赛罕区"},{"id":"150121","pid":1501,"value":"土默特左旗","ext_id":"150121000000","label":"土默特左旗"},{"id":"150122","pid":1501,"value":"托克托县","ext_id":"150122000000","label":"托克托县"},{"id":"150123","pid":1501,"value":"和林格尔县","ext_id":"150123000000","label":"和林格尔县"},{"id":"150124","pid":1501,"value":"清水河县","ext_id":"150124000000","label":"清水河县"},{"id":"150125","pid":1501,"value":"武川县","ext_id":"150125000000","label":"武川县"}]},{"id":"1502","pid":15,"value":"包头市","ext_id":"150200000000","label":"包头市","children":[{"id":"150202","pid":1502,"value":"东河区","ext_id":"150202000000","label":"东河区"},{"id":"150203","pid":1502,"value":"昆都仑区","ext_id":"150203000000","label":"昆都仑区"},{"id":"150204","pid":1502,"value":"青山区","ext_id":"150204000000","label":"青山区"},{"id":"150205","pid":1502,"value":"石拐区","ext_id":"150205000000","label":"石拐区"},{"id":"150206","pid":1502,"value":"白云鄂博矿区","ext_id":"150206000000","label":"白云鄂博矿区"},{"id":"150207","pid":1502,"value":"九原区","ext_id":"150207000000","label":"九原区"},{"id":"150221","pid":1502,"value":"土默特右旗","ext_id":"150221000000","label":"土默特右旗"},{"id":"150222","pid":1502,"value":"固阳县","ext_id":"150222000000","label":"固阳县"},{"id":"150223","pid":1502,"value":"达尔罕茂明安联合旗","ext_id":"150223000000","label":"达尔罕茂明安联合旗"}]},{"id":"1503","pid":15,"value":"乌海市","ext_id":"150300000000","label":"乌海市","children":[{"id":"150302","pid":1503,"value":"海勃湾区","ext_id":"150302000000","label":"海勃湾区"},{"id":"150303","pid":1503,"value":"海南区","ext_id":"150303000000","label":"海南区"},{"id":"150304","pid":1503,"value":"乌达区","ext_id":"150304000000","label":"乌达区"}]},{"id":"1504","pid":15,"value":"赤峰市","ext_id":"150400000000","label":"赤峰市","children":[{"id":"150402","pid":1504,"value":"红山区","ext_id":"150402000000","label":"红山区"},{"id":"150403","pid":1504,"value":"元宝山区","ext_id":"150403000000","label":"元宝山区"},{"id":"150404","pid":1504,"value":"松山区","ext_id":"150404000000","label":"松山区"},{"id":"150421","pid":1504,"value":"阿鲁科尔沁旗","ext_id":"150421000000","label":"阿鲁科尔沁旗"},{"id":"150422","pid":1504,"value":"巴林左旗","ext_id":"150422000000","label":"巴林左旗"},{"id":"150423","pid":1504,"value":"巴林右旗","ext_id":"150423000000","label":"巴林右旗"},{"id":"150424","pid":1504,"value":"林西县","ext_id":"150424000000","label":"林西县"},{"id":"150425","pid":1504,"value":"克什克腾旗","ext_id":"150425000000","label":"克什克腾旗"},{"id":"150426","pid":1504,"value":"翁牛特旗","ext_id":"150426000000","label":"翁牛特旗"},{"id":"150428","pid":1504,"value":"喀喇沁旗","ext_id":"150428000000","label":"喀喇沁旗"},{"id":"150429","pid":1504,"value":"宁城县","ext_id":"150429000000","label":"宁城县"},{"id":"150430","pid":1504,"value":"敖汉旗","ext_id":"150430000000","label":"敖汉旗"}]},{"id":"1505","pid":15,"value":"通辽市","ext_id":"150500000000","label":"通辽市","children":[{"id":"150502","pid":1505,"value":"科尔沁区","ext_id":"150502000000","label":"科尔沁区"},{"id":"150521","pid":1505,"value":"科尔沁左翼中旗","ext_id":"150521000000","label":"科尔沁左翼中旗"},{"id":"150522","pid":1505,"value":"科尔沁左翼后旗","ext_id":"150522000000","label":"科尔沁左翼后旗"},{"id":"150523","pid":1505,"value":"开鲁县","ext_id":"150523000000","label":"开鲁县"},{"id":"150524","pid":1505,"value":"库伦旗","ext_id":"150524000000","label":"库伦旗"},{"id":"150525","pid":1505,"value":"奈曼旗","ext_id":"150525000000","label":"奈曼旗"},{"id":"150526","pid":1505,"value":"扎鲁特旗","ext_id":"150526000000","label":"扎鲁特旗"},{"id":"150581","pid":1505,"value":"霍林郭勒市","ext_id":"150581000000","label":"霍林郭勒市"}]},{"id":"1506","pid":15,"value":"鄂尔多斯市","ext_id":"150600000000","label":"鄂尔多斯市","children":[{"id":"150602","pid":1506,"value":"东胜区","ext_id":"150602000000","label":"东胜区"},{"id":"150603","pid":1506,"value":"康巴什区","ext_id":"150603000000","label":"康巴什区"},{"id":"150621","pid":1506,"value":"达拉特旗","ext_id":"150621000000","label":"达拉特旗"},{"id":"150622","pid":1506,"value":"准格尔旗","ext_id":"150622000000","label":"准格尔旗"},{"id":"150623","pid":1506,"value":"鄂托克前旗","ext_id":"150623000000","label":"鄂托克前旗"},{"id":"150624","pid":1506,"value":"鄂托克旗","ext_id":"150624000000","label":"鄂托克旗"},{"id":"150625","pid":1506,"value":"杭锦旗","ext_id":"150625000000","label":"杭锦旗"},{"id":"150626","pid":1506,"value":"乌审旗","ext_id":"150626000000","label":"乌审旗"},{"id":"150627","pid":1506,"value":"伊金霍洛旗","ext_id":"150627000000","label":"伊金霍洛旗"}]},{"id":"1507","pid":15,"value":"呼伦贝尔市","ext_id":"150700000000","label":"呼伦贝尔市","children":[{"id":"150702","pid":1507,"value":"海拉尔区","ext_id":"150702000000","label":"海拉尔区"},{"id":"150703","pid":1507,"value":"扎赉诺尔区","ext_id":"150703000000","label":"扎赉诺尔区"},{"id":"150721","pid":1507,"value":"阿荣旗","ext_id":"150721000000","label":"阿荣旗"},{"id":"150722","pid":1507,"value":"莫力达瓦达斡尔族自治旗","ext_id":"150722000000","label":"莫力达瓦达斡尔族自治旗"},{"id":"150723","pid":1507,"value":"鄂伦春自治旗","ext_id":"150723000000","label":"鄂伦春自治旗"},{"id":"150724","pid":1507,"value":"鄂温克族自治旗","ext_id":"150724000000","label":"鄂温克族自治旗"},{"id":"150725","pid":1507,"value":"陈巴尔虎旗","ext_id":"150725000000","label":"陈巴尔虎旗"},{"id":"150726","pid":1507,"value":"新巴尔虎左旗","ext_id":"150726000000","label":"新巴尔虎左旗"},{"id":"150727","pid":1507,"value":"新巴尔虎右旗","ext_id":"150727000000","label":"新巴尔虎右旗"},{"id":"150781","pid":1507,"value":"满洲里市","ext_id":"150781000000","label":"满洲里市"},{"id":"150782","pid":1507,"value":"牙克石市","ext_id":"150782000000","label":"牙克石市"},{"id":"150783","pid":1507,"value":"扎兰屯市","ext_id":"150783000000","label":"扎兰屯市"},{"id":"150784","pid":1507,"value":"额尔古纳市","ext_id":"150784000000","label":"额尔古纳市"},{"id":"150785","pid":1507,"value":"根河市","ext_id":"150785000000","label":"根河市"}]},{"id":"1508","pid":15,"value":"巴彦淖尔市","ext_id":"150800000000","label":"巴彦淖尔市","children":[{"id":"150802","pid":1508,"value":"临河区","ext_id":"150802000000","label":"临河区"},{"id":"150821","pid":1508,"value":"五原县","ext_id":"150821000000","label":"五原县"},{"id":"150822","pid":1508,"value":"磴口县","ext_id":"150822000000","label":"磴口县"},{"id":"150823","pid":1508,"value":"乌拉特前旗","ext_id":"150823000000","label":"乌拉特前旗"},{"id":"150824","pid":1508,"value":"乌拉特中旗","ext_id":"150824000000","label":"乌拉特中旗"},{"id":"150825","pid":1508,"value":"乌拉特后旗","ext_id":"150825000000","label":"乌拉特后旗"},{"id":"150826","pid":1508,"value":"杭锦后旗","ext_id":"150826000000","label":"杭锦后旗"}]},{"id":"1509","pid":15,"value":"乌兰察布市","ext_id":"150900000000","label":"乌兰察布市","children":[{"id":"150902","pid":1509,"value":"集宁区","ext_id":"150902000000","label":"集宁区"},{"id":"150921","pid":1509,"value":"卓资县","ext_id":"150921000000","label":"卓资县"},{"id":"150922","pid":1509,"value":"化德县","ext_id":"150922000000","label":"化德县"},{"id":"150923","pid":1509,"value":"商都县","ext_id":"150923000000","label":"商都县"},{"id":"150924","pid":1509,"value":"兴和县","ext_id":"150924000000","label":"兴和县"},{"id":"150925","pid":1509,"value":"凉城县","ext_id":"150925000000","label":"凉城县"},{"id":"150926","pid":1509,"value":"察哈尔右翼前旗","ext_id":"150926000000","label":"察哈尔右翼前旗"},{"id":"150927","pid":1509,"value":"察哈尔右翼中旗","ext_id":"150927000000","label":"察哈尔右翼中旗"},{"id":"150928","pid":1509,"value":"察哈尔右翼后旗","ext_id":"150928000000","label":"察哈尔右翼后旗"},{"id":"150929","pid":1509,"value":"四子王旗","ext_id":"150929000000","label":"四子王旗"},{"id":"150981","pid":1509,"value":"丰镇市","ext_id":"150981000000","label":"丰镇市"}]},{"id":"1522","pid":15,"value":"兴安盟","ext_id":"152200000000","label":"兴安盟","children":[{"id":"152201","pid":1522,"value":"乌兰浩特市","ext_id":"152201000000","label":"乌兰浩特市"},{"id":"152202","pid":1522,"value":"阿尔山市","ext_id":"152202000000","label":"阿尔山市"},{"id":"152221","pid":1522,"value":"科尔沁右翼前旗","ext_id":"152221000000","label":"科尔沁右翼前旗"},{"id":"152222","pid":1522,"value":"科尔沁右翼中旗","ext_id":"152222000000","label":"科尔沁右翼中旗"},{"id":"152223","pid":1522,"value":"扎赉特旗","ext_id":"152223000000","label":"扎赉特旗"},{"id":"152224","pid":1522,"value":"突泉县","ext_id":"152224000000","label":"突泉县"}]},{"id":"1525","pid":15,"value":"锡林郭勒盟","ext_id":"152500000000","label":"锡林郭勒盟","children":[{"id":"152501","pid":1525,"value":"二连浩特市","ext_id":"152501000000","label":"二连浩特市"},{"id":"152502","pid":1525,"value":"锡林浩特市","ext_id":"152502000000","label":"锡林浩特市"},{"id":"152522","pid":1525,"value":"阿巴嘎旗","ext_id":"152522000000","label":"阿巴嘎旗"},{"id":"152523","pid":1525,"value":"苏尼特左旗","ext_id":"152523000000","label":"苏尼特左旗"},{"id":"152524","pid":1525,"value":"苏尼特右旗","ext_id":"152524000000","label":"苏尼特右旗"},{"id":"152525","pid":1525,"value":"东乌珠穆沁旗","ext_id":"152525000000","label":"东乌珠穆沁旗"},{"id":"152526","pid":1525,"value":"西乌珠穆沁旗","ext_id":"152526000000","label":"西乌珠穆沁旗"},{"id":"152527","pid":1525,"value":"太仆寺旗","ext_id":"152527000000","label":"太仆寺旗"},{"id":"152528","pid":1525,"value":"镶黄旗","ext_id":"152528000000","label":"镶黄旗"},{"id":"152529","pid":1525,"value":"正镶白旗","ext_id":"152529000000","label":"正镶白旗"},{"id":"152530","pid":1525,"value":"正蓝旗","ext_id":"152530000000","label":"正蓝旗"},{"id":"152531","pid":1525,"value":"多伦县","ext_id":"152531000000","label":"多伦县"}]},{"id":"1529","pid":15,"value":"阿拉善盟","ext_id":"152900000000","label":"阿拉善盟","children":[{"id":"152921","pid":1529,"value":"阿拉善左旗","ext_id":"152921000000","label":"阿拉善左旗"},{"id":"152922","pid":1529,"value":"阿拉善右旗","ext_id":"152922000000","label":"阿拉善右旗"},{"id":"152923","pid":1529,"value":"额济纳旗","ext_id":"152923000000","label":"额济纳旗"}]}]},{"id":"21","pid":0,"value":"辽宁省","ext_id":"210000000000","label":"辽宁省","children":[{"id":"2101","pid":21,"value":"沈阳市","ext_id":"210100000000","label":"沈阳市","children":[{"id":"210102","pid":2101,"value":"和平区","ext_id":"210102000000","label":"和平区"},{"id":"210103","pid":2101,"value":"沈河区","ext_id":"210103000000","label":"沈河区"},{"id":"210104","pid":2101,"value":"大东区","ext_id":"210104000000","label":"大东区"},{"id":"210105","pid":2101,"value":"皇姑区","ext_id":"210105000000","label":"皇姑区"},{"id":"210106","pid":2101,"value":"铁西区","ext_id":"210106000000","label":"铁西区"},{"id":"210111","pid":2101,"value":"苏家屯区","ext_id":"210111000000","label":"苏家屯区"},{"id":"210112","pid":2101,"value":"浑南区","ext_id":"210112000000","label":"浑南区"},{"id":"210113","pid":2101,"value":"沈北新区","ext_id":"210113000000","label":"沈北新区"},{"id":"210114","pid":2101,"value":"于洪区","ext_id":"210114000000","label":"于洪区"},{"id":"210115","pid":2101,"value":"辽中区","ext_id":"210115000000","label":"辽中区"},{"id":"210123","pid":2101,"value":"康平县","ext_id":"210123000000","label":"康平县"},{"id":"210124","pid":2101,"value":"法库县","ext_id":"210124000000","label":"法库县"},{"id":"210181","pid":2101,"value":"新民市","ext_id":"210181000000","label":"新民市"}]},{"id":"2102","pid":21,"value":"大连市","ext_id":"210200000000","label":"大连市","children":[{"id":"210202","pid":2102,"value":"中山区","ext_id":"210202000000","label":"中山区"},{"id":"210203","pid":2102,"value":"西岗区","ext_id":"210203000000","label":"西岗区"},{"id":"210204","pid":2102,"value":"沙河口区","ext_id":"210204000000","label":"沙河口区"},{"id":"210211","pid":2102,"value":"甘井子区","ext_id":"210211000000","label":"甘井子区"},{"id":"210212","pid":2102,"value":"旅顺口区","ext_id":"210212000000","label":"旅顺口区"},{"id":"210213","pid":2102,"value":"金州区","ext_id":"210213000000","label":"金州区"},{"id":"210214","pid":2102,"value":"普兰店区","ext_id":"210214000000","label":"普兰店区"},{"id":"210224","pid":2102,"value":"长海县","ext_id":"210224000000","label":"长海县"},{"id":"210281","pid":2102,"value":"瓦房店市","ext_id":"210281000000","label":"瓦房店市"},{"id":"210283","pid":2102,"value":"庄河市","ext_id":"210283000000","label":"庄河市"}]},{"id":"2103","pid":21,"value":"鞍山市","ext_id":"210300000000","label":"鞍山市","children":[{"id":"210302","pid":2103,"value":"铁东区","ext_id":"210302000000","label":"铁东区"},{"id":"210303","pid":2103,"value":"铁西区","ext_id":"210303000000","label":"铁西区"},{"id":"210304","pid":2103,"value":"立山区","ext_id":"210304000000","label":"立山区"},{"id":"210311","pid":2103,"value":"千山区","ext_id":"210311000000","label":"千山区"},{"id":"210321","pid":2103,"value":"台安县","ext_id":"210321000000","label":"台安县"},{"id":"210323","pid":2103,"value":"岫岩满族自治县","ext_id":"210323000000","label":"岫岩满族自治县"},{"id":"210381","pid":2103,"value":"海城市","ext_id":"210381000000","label":"海城市"}]},{"id":"2104","pid":21,"value":"抚顺市","ext_id":"210400000000","label":"抚顺市","children":[{"id":"210402","pid":2104,"value":"新抚区","ext_id":"210402000000","label":"新抚区"},{"id":"210403","pid":2104,"value":"东洲区","ext_id":"210403000000","label":"东洲区"},{"id":"210404","pid":2104,"value":"望花区","ext_id":"210404000000","label":"望花区"},{"id":"210411","pid":2104,"value":"顺城区","ext_id":"210411000000","label":"顺城区"},{"id":"210421","pid":2104,"value":"抚顺县","ext_id":"210421000000","label":"抚顺县"},{"id":"210422","pid":2104,"value":"新宾满族自治县","ext_id":"210422000000","label":"新宾满族自治县"},{"id":"210423","pid":2104,"value":"清原满族自治县","ext_id":"210423000000","label":"清原满族自治县"}]},{"id":"2105","pid":21,"value":"本溪市","ext_id":"210500000000","label":"本溪市","children":[{"id":"210502","pid":2105,"value":"平山区","ext_id":"210502000000","label":"平山区"},{"id":"210503","pid":2105,"value":"溪湖区","ext_id":"210503000000","label":"溪湖区"},{"id":"210504","pid":2105,"value":"明山区","ext_id":"210504000000","label":"明山区"},{"id":"210505","pid":2105,"value":"南芬区","ext_id":"210505000000","label":"南芬区"},{"id":"210521","pid":2105,"value":"本溪满族自治县","ext_id":"210521000000","label":"本溪满族自治县"},{"id":"210522","pid":2105,"value":"桓仁满族自治县","ext_id":"210522000000","label":"桓仁满族自治县"}]},{"id":"2106","pid":21,"value":"丹东市","ext_id":"210600000000","label":"丹东市","children":[{"id":"210602","pid":2106,"value":"元宝区","ext_id":"210602000000","label":"元宝区"},{"id":"210603","pid":2106,"value":"振兴区","ext_id":"210603000000","label":"振兴区"},{"id":"210604","pid":2106,"value":"振安区","ext_id":"210604000000","label":"振安区"},{"id":"210624","pid":2106,"value":"宽甸满族自治县","ext_id":"210624000000","label":"宽甸满族自治县"},{"id":"210681","pid":2106,"value":"东港市","ext_id":"210681000000","label":"东港市"},{"id":"210682","pid":2106,"value":"凤城市","ext_id":"210682000000","label":"凤城市"}]},{"id":"2107","pid":21,"value":"锦州市","ext_id":"210700000000","label":"锦州市","children":[{"id":"210702","pid":2107,"value":"古塔区","ext_id":"210702000000","label":"古塔区"},{"id":"210703","pid":2107,"value":"凌河区","ext_id":"210703000000","label":"凌河区"},{"id":"210711","pid":2107,"value":"太和区","ext_id":"210711000000","label":"太和区"},{"id":"210726","pid":2107,"value":"黑山县","ext_id":"210726000000","label":"黑山县"},{"id":"210727","pid":2107,"value":"义县","ext_id":"210727000000","label":"义县"},{"id":"210781","pid":2107,"value":"凌海市","ext_id":"210781000000","label":"凌海市"},{"id":"210782","pid":2107,"value":"北镇市","ext_id":"210782000000","label":"北镇市"}]},{"id":"2108","pid":21,"value":"营口市","ext_id":"210800000000","label":"营口市","children":[{"id":"210802","pid":2108,"value":"站前区","ext_id":"210802000000","label":"站前区"},{"id":"210803","pid":2108,"value":"西市区","ext_id":"210803000000","label":"西市区"},{"id":"210804","pid":2108,"value":"鲅鱼圈区","ext_id":"210804000000","label":"鲅鱼圈区"},{"id":"210811","pid":2108,"value":"老边区","ext_id":"210811000000","label":"老边区"},{"id":"210881","pid":2108,"value":"盖州市","ext_id":"210881000000","label":"盖州市"},{"id":"210882","pid":2108,"value":"大石桥市","ext_id":"210882000000","label":"大石桥市"}]},{"id":"2109","pid":21,"value":"阜新市","ext_id":"210900000000","label":"阜新市","children":[{"id":"210902","pid":2109,"value":"海州区","ext_id":"210902000000","label":"海州区"},{"id":"210903","pid":2109,"value":"新邱区","ext_id":"210903000000","label":"新邱区"},{"id":"210904","pid":2109,"value":"太平区","ext_id":"210904000000","label":"太平区"},{"id":"210905","pid":2109,"value":"清河门区","ext_id":"210905000000","label":"清河门区"},{"id":"210911","pid":2109,"value":"细河区","ext_id":"210911000000","label":"细河区"},{"id":"210921","pid":2109,"value":"阜新蒙古族自治县","ext_id":"210921000000","label":"阜新蒙古族自治县"},{"id":"210922","pid":2109,"value":"彰武县","ext_id":"210922000000","label":"彰武县"}]},{"id":"2110","pid":21,"value":"辽阳市","ext_id":"211000000000","label":"辽阳市","children":[{"id":"211002","pid":2110,"value":"白塔区","ext_id":"211002000000","label":"白塔区"},{"id":"211003","pid":2110,"value":"文圣区","ext_id":"211003000000","label":"文圣区"},{"id":"211004","pid":2110,"value":"宏伟区","ext_id":"211004000000","label":"宏伟区"},{"id":"211005","pid":2110,"value":"弓长岭区","ext_id":"211005000000","label":"弓长岭区"},{"id":"211011","pid":2110,"value":"太子河区","ext_id":"211011000000","label":"太子河区"},{"id":"211021","pid":2110,"value":"辽阳县","ext_id":"211021000000","label":"辽阳县"},{"id":"211081","pid":2110,"value":"灯塔市","ext_id":"211081000000","label":"灯塔市"}]},{"id":"2111","pid":21,"value":"盘锦市","ext_id":"211100000000","label":"盘锦市","children":[{"id":"211102","pid":2111,"value":"双台子区","ext_id":"211102000000","label":"双台子区"},{"id":"211103","pid":2111,"value":"兴隆台区","ext_id":"211103000000","label":"兴隆台区"},{"id":"211104","pid":2111,"value":"大洼区","ext_id":"211104000000","label":"大洼区"},{"id":"211122","pid":2111,"value":"盘山县","ext_id":"211122000000","label":"盘山县"}]},{"id":"2112","pid":21,"value":"铁岭市","ext_id":"211200000000","label":"铁岭市","children":[{"id":"211202","pid":2112,"value":"银州区","ext_id":"211202000000","label":"银州区"},{"id":"211204","pid":2112,"value":"清河区","ext_id":"211204000000","label":"清河区"},{"id":"211221","pid":2112,"value":"铁岭县","ext_id":"211221000000","label":"铁岭县"},{"id":"211223","pid":2112,"value":"西丰县","ext_id":"211223000000","label":"西丰县"},{"id":"211224","pid":2112,"value":"昌图县","ext_id":"211224000000","label":"昌图县"},{"id":"211281","pid":2112,"value":"调兵山市","ext_id":"211281000000","label":"调兵山市"},{"id":"211282","pid":2112,"value":"开原市","ext_id":"211282000000","label":"开原市"}]},{"id":"2113","pid":21,"value":"朝阳市","ext_id":"211300000000","label":"朝阳市","children":[{"id":"211302","pid":2113,"value":"双塔区","ext_id":"211302000000","label":"双塔区"},{"id":"211303","pid":2113,"value":"龙城区","ext_id":"211303000000","label":"龙城区"},{"id":"211321","pid":2113,"value":"朝阳县","ext_id":"211321000000","label":"朝阳县"},{"id":"211322","pid":2113,"value":"建平县","ext_id":"211322000000","label":"建平县"},{"id":"211324","pid":2113,"value":"喀喇沁左翼蒙古族自治县","ext_id":"211324000000","label":"喀喇沁左翼蒙古族自治县"},{"id":"211381","pid":2113,"value":"北票市","ext_id":"211381000000","label":"北票市"},{"id":"211382","pid":2113,"value":"凌源市","ext_id":"211382000000","label":"凌源市"}]},{"id":"2114","pid":21,"value":"葫芦岛市","ext_id":"211400000000","label":"葫芦岛市","children":[{"id":"211402","pid":2114,"value":"连山区","ext_id":"211402000000","label":"连山区"},{"id":"211403","pid":2114,"value":"龙港区","ext_id":"211403000000","label":"龙港区"},{"id":"211404","pid":2114,"value":"南票区","ext_id":"211404000000","label":"南票区"},{"id":"211421","pid":2114,"value":"绥中县","ext_id":"211421000000","label":"绥中县"},{"id":"211422","pid":2114,"value":"建昌县","ext_id":"211422000000","label":"建昌县"},{"id":"211481","pid":2114,"value":"兴城市","ext_id":"211481000000","label":"兴城市"}]}]},{"id":"22","pid":0,"value":"吉林省","ext_id":"220000000000","label":"吉林省","children":[{"id":"2201","pid":22,"value":"长春市","ext_id":"220100000000","label":"长春市","children":[{"id":"220102","pid":2201,"value":"南关区","ext_id":"220102000000","label":"南关区"},{"id":"220103","pid":2201,"value":"宽城区","ext_id":"220103000000","label":"宽城区"},{"id":"220104","pid":2201,"value":"朝阳区","ext_id":"220104000000","label":"朝阳区"},{"id":"220105","pid":2201,"value":"二道区","ext_id":"220105000000","label":"二道区"},{"id":"220106","pid":2201,"value":"绿园区","ext_id":"220106000000","label":"绿园区"},{"id":"220112","pid":2201,"value":"双阳区","ext_id":"220112000000","label":"双阳区"},{"id":"220113","pid":2201,"value":"九台区","ext_id":"220113000000","label":"九台区"},{"id":"220122","pid":2201,"value":"农安县","ext_id":"220122000000","label":"农安县"},{"id":"220182","pid":2201,"value":"榆树市","ext_id":"220182000000","label":"榆树市"},{"id":"220183","pid":2201,"value":"德惠市","ext_id":"220183000000","label":"德惠市"},{"id":"220184","pid":2201,"value":"公主岭市","ext_id":"220184000000","label":"公主岭市"}]},{"id":"2202","pid":22,"value":"吉林市","ext_id":"220200000000","label":"吉林市","children":[{"id":"220202","pid":2202,"value":"昌邑区","ext_id":"220202000000","label":"昌邑区"},{"id":"220203","pid":2202,"value":"龙潭区","ext_id":"220203000000","label":"龙潭区"},{"id":"220204","pid":2202,"value":"船营区","ext_id":"220204000000","label":"船营区"},{"id":"220211","pid":2202,"value":"丰满区","ext_id":"220211000000","label":"丰满区"},{"id":"220221","pid":2202,"value":"永吉县","ext_id":"220221000000","label":"永吉县"},{"id":"220281","pid":2202,"value":"蛟河市","ext_id":"220281000000","label":"蛟河市"},{"id":"220282","pid":2202,"value":"桦甸市","ext_id":"220282000000","label":"桦甸市"},{"id":"220283","pid":2202,"value":"舒兰市","ext_id":"220283000000","label":"舒兰市"},{"id":"220284","pid":2202,"value":"磐石市","ext_id":"220284000000","label":"磐石市"}]},{"id":"2203","pid":22,"value":"四平市","ext_id":"220300000000","label":"四平市","children":[{"id":"220302","pid":2203,"value":"铁西区","ext_id":"220302000000","label":"铁西区"},{"id":"220303","pid":2203,"value":"铁东区","ext_id":"220303000000","label":"铁东区"},{"id":"220322","pid":2203,"value":"梨树县","ext_id":"220322000000","label":"梨树县"},{"id":"220323","pid":2203,"value":"伊通满族自治县","ext_id":"220323000000","label":"伊通满族自治县"},{"id":"220382","pid":2203,"value":"双辽市","ext_id":"220382000000","label":"双辽市"}]},{"id":"2204","pid":22,"value":"辽源市","ext_id":"220400000000","label":"辽源市","children":[{"id":"220402","pid":2204,"value":"龙山区","ext_id":"220402000000","label":"龙山区"},{"id":"220403","pid":2204,"value":"西安区","ext_id":"220403000000","label":"西安区"},{"id":"220421","pid":2204,"value":"东丰县","ext_id":"220421000000","label":"东丰县"},{"id":"220422","pid":2204,"value":"东辽县","ext_id":"220422000000","label":"东辽县"}]},{"id":"2205","pid":22,"value":"通化市","ext_id":"220500000000","label":"通化市","children":[{"id":"220502","pid":2205,"value":"东昌区","ext_id":"220502000000","label":"东昌区"},{"id":"220503","pid":2205,"value":"二道江区","ext_id":"220503000000","label":"二道江区"},{"id":"220521","pid":2205,"value":"通化县","ext_id":"220521000000","label":"通化县"},{"id":"220523","pid":2205,"value":"辉南县","ext_id":"220523000000","label":"辉南县"},{"id":"220524","pid":2205,"value":"柳河县","ext_id":"220524000000","label":"柳河县"},{"id":"220581","pid":2205,"value":"梅河口市","ext_id":"220581000000","label":"梅河口市"},{"id":"220582","pid":2205,"value":"集安市","ext_id":"220582000000","label":"集安市"}]},{"id":"2206","pid":22,"value":"白山市","ext_id":"220600000000","label":"白山市","children":[{"id":"220602","pid":2206,"value":"浑江区","ext_id":"220602000000","label":"浑江区"},{"id":"220605","pid":2206,"value":"江源区","ext_id":"220605000000","label":"江源区"},{"id":"220621","pid":2206,"value":"抚松县","ext_id":"220621000000","label":"抚松县"},{"id":"220622","pid":2206,"value":"靖宇县","ext_id":"220622000000","label":"靖宇县"},{"id":"220623","pid":2206,"value":"长白朝鲜族自治县","ext_id":"220623000000","label":"长白朝鲜族自治县"},{"id":"220681","pid":2206,"value":"临江市","ext_id":"220681000000","label":"临江市"}]},{"id":"2207","pid":22,"value":"松原市","ext_id":"220700000000","label":"松原市","children":[{"id":"220702","pid":2207,"value":"宁江区","ext_id":"220702000000","label":"宁江区"},{"id":"220721","pid":2207,"value":"前郭尔罗斯蒙古族自治县","ext_id":"220721000000","label":"前郭尔罗斯蒙古族自治县"},{"id":"220722","pid":2207,"value":"长岭县","ext_id":"220722000000","label":"长岭县"},{"id":"220723","pid":2207,"value":"乾安县","ext_id":"220723000000","label":"乾安县"},{"id":"220781","pid":2207,"value":"扶余市","ext_id":"220781000000","label":"扶余市"}]},{"id":"2208","pid":22,"value":"白城市","ext_id":"220800000000","label":"白城市","children":[{"id":"220802","pid":2208,"value":"洮北区","ext_id":"220802000000","label":"洮北区"},{"id":"220821","pid":2208,"value":"镇赉县","ext_id":"220821000000","label":"镇赉县"},{"id":"220822","pid":2208,"value":"通榆县","ext_id":"220822000000","label":"通榆县"},{"id":"220881","pid":2208,"value":"洮南市","ext_id":"220881000000","label":"洮南市"},{"id":"220882","pid":2208,"value":"大安市","ext_id":"220882000000","label":"大安市"}]},{"id":"2224","pid":22,"value":"延边朝鲜族自治州","ext_id":"222400000000","label":"延边朝鲜族自治州","children":[{"id":"222401","pid":2224,"value":"延吉市","ext_id":"222401000000","label":"延吉市"},{"id":"222402","pid":2224,"value":"图们市","ext_id":"222402000000","label":"图们市"},{"id":"222403","pid":2224,"value":"敦化市","ext_id":"222403000000","label":"敦化市"},{"id":"222404","pid":2224,"value":"珲春市","ext_id":"222404000000","label":"珲春市"},{"id":"222405","pid":2224,"value":"龙井市","ext_id":"222405000000","label":"龙井市"},{"id":"222406","pid":2224,"value":"和龙市","ext_id":"222406000000","label":"和龙市"},{"id":"222424","pid":2224,"value":"汪清县","ext_id":"222424000000","label":"汪清县"},{"id":"222426","pid":2224,"value":"安图县","ext_id":"222426000000","label":"安图县"}]}]},{"id":"23","pid":0,"value":"黑龙江省","ext_id":"230000000000","label":"黑龙江省","children":[{"id":"2301","pid":23,"value":"哈尔滨市","ext_id":"230100000000","label":"哈尔滨市","children":[{"id":"230102","pid":2301,"value":"道里区","ext_id":"230102000000","label":"道里区"},{"id":"230103","pid":2301,"value":"南岗区","ext_id":"230103000000","label":"南岗区"},{"id":"230104","pid":2301,"value":"道外区","ext_id":"230104000000","label":"道外区"},{"id":"230108","pid":2301,"value":"平房区","ext_id":"230108000000","label":"平房区"},{"id":"230109","pid":2301,"value":"松北区","ext_id":"230109000000","label":"松北区"},{"id":"230110","pid":2301,"value":"香坊区","ext_id":"230110000000","label":"香坊区"},{"id":"230111","pid":2301,"value":"呼兰区","ext_id":"230111000000","label":"呼兰区"},{"id":"230112","pid":2301,"value":"阿城区","ext_id":"230112000000","label":"阿城区"},{"id":"230113","pid":2301,"value":"双城区","ext_id":"230113000000","label":"双城区"},{"id":"230123","pid":2301,"value":"依兰县","ext_id":"230123000000","label":"依兰县"},{"id":"230124","pid":2301,"value":"方正县","ext_id":"230124000000","label":"方正县"},{"id":"230125","pid":2301,"value":"宾县","ext_id":"230125000000","label":"宾县"},{"id":"230126","pid":2301,"value":"巴彦县","ext_id":"230126000000","label":"巴彦县"},{"id":"230127","pid":2301,"value":"木兰县","ext_id":"230127000000","label":"木兰县"},{"id":"230128","pid":2301,"value":"通河县","ext_id":"230128000000","label":"通河县"},{"id":"230129","pid":2301,"value":"延寿县","ext_id":"230129000000","label":"延寿县"},{"id":"230183","pid":2301,"value":"尚志市","ext_id":"230183000000","label":"尚志市"},{"id":"230184","pid":2301,"value":"五常市","ext_id":"230184000000","label":"五常市"}]},{"id":"2302","pid":23,"value":"齐齐哈尔市","ext_id":"230200000000","label":"齐齐哈尔市","children":[{"id":"230202","pid":2302,"value":"龙沙区","ext_id":"230202000000","label":"龙沙区"},{"id":"230203","pid":2302,"value":"建华区","ext_id":"230203000000","label":"建华区"},{"id":"230204","pid":2302,"value":"铁锋区","ext_id":"230204000000","label":"铁锋区"},{"id":"230205","pid":2302,"value":"昂昂溪区","ext_id":"230205000000","label":"昂昂溪区"},{"id":"230206","pid":2302,"value":"富拉尔基区","ext_id":"230206000000","label":"富拉尔基区"},{"id":"230207","pid":2302,"value":"碾子山区","ext_id":"230207000000","label":"碾子山区"},{"id":"230208","pid":2302,"value":"梅里斯达斡尔族区","ext_id":"230208000000","label":"梅里斯达斡尔族区"},{"id":"230221","pid":2302,"value":"龙江县","ext_id":"230221000000","label":"龙江县"},{"id":"230223","pid":2302,"value":"依安县","ext_id":"230223000000","label":"依安县"},{"id":"230224","pid":2302,"value":"泰来县","ext_id":"230224000000","label":"泰来县"},{"id":"230225","pid":2302,"value":"甘南县","ext_id":"230225000000","label":"甘南县"},{"id":"230227","pid":2302,"value":"富裕县","ext_id":"230227000000","label":"富裕县"},{"id":"230229","pid":2302,"value":"克山县","ext_id":"230229000000","label":"克山县"},{"id":"230230","pid":2302,"value":"克东县","ext_id":"230230000000","label":"克东县"},{"id":"230231","pid":2302,"value":"拜泉县","ext_id":"230231000000","label":"拜泉县"},{"id":"230281","pid":2302,"value":"讷河市","ext_id":"230281000000","label":"讷河市"}]},{"id":"2303","pid":23,"value":"鸡西市","ext_id":"230300000000","label":"鸡西市","children":[{"id":"230302","pid":2303,"value":"鸡冠区","ext_id":"230302000000","label":"鸡冠区"},{"id":"230303","pid":2303,"value":"恒山区","ext_id":"230303000000","label":"恒山区"},{"id":"230304","pid":2303,"value":"滴道区","ext_id":"230304000000","label":"滴道区"},{"id":"230305","pid":2303,"value":"梨树区","ext_id":"230305000000","label":"梨树区"},{"id":"230306","pid":2303,"value":"城子河区","ext_id":"230306000000","label":"城子河区"},{"id":"230307","pid":2303,"value":"麻山区","ext_id":"230307000000","label":"麻山区"},{"id":"230321","pid":2303,"value":"鸡东县","ext_id":"230321000000","label":"鸡东县"},{"id":"230381","pid":2303,"value":"虎林市","ext_id":"230381000000","label":"虎林市"},{"id":"230382","pid":2303,"value":"密山市","ext_id":"230382000000","label":"密山市"}]},{"id":"2304","pid":23,"value":"鹤岗市","ext_id":"230400000000","label":"鹤岗市","children":[{"id":"230402","pid":2304,"value":"向阳区","ext_id":"230402000000","label":"向阳区"},{"id":"230403","pid":2304,"value":"工农区","ext_id":"230403000000","label":"工农区"},{"id":"230404","pid":2304,"value":"南山区","ext_id":"230404000000","label":"南山区"},{"id":"230405","pid":2304,"value":"兴安区","ext_id":"230405000000","label":"兴安区"},{"id":"230406","pid":2304,"value":"东山区","ext_id":"230406000000","label":"东山区"},{"id":"230407","pid":2304,"value":"兴山区","ext_id":"230407000000","label":"兴山区"},{"id":"230421","pid":2304,"value":"萝北县","ext_id":"230421000000","label":"萝北县"},{"id":"230422","pid":2304,"value":"绥滨县","ext_id":"230422000000","label":"绥滨县"}]},{"id":"2305","pid":23,"value":"双鸭山市","ext_id":"230500000000","label":"双鸭山市","children":[{"id":"230502","pid":2305,"value":"尖山区","ext_id":"230502000000","label":"尖山区"},{"id":"230503","pid":2305,"value":"岭东区","ext_id":"230503000000","label":"岭东区"},{"id":"230505","pid":2305,"value":"四方台区","ext_id":"230505000000","label":"四方台区"},{"id":"230506","pid":2305,"value":"宝山区","ext_id":"230506000000","label":"宝山区"},{"id":"230521","pid":2305,"value":"集贤县","ext_id":"230521000000","label":"集贤县"},{"id":"230522","pid":2305,"value":"友谊县","ext_id":"230522000000","label":"友谊县"},{"id":"230523","pid":2305,"value":"宝清县","ext_id":"230523000000","label":"宝清县"},{"id":"230524","pid":2305,"value":"饶河县","ext_id":"230524000000","label":"饶河县"}]},{"id":"2306","pid":23,"value":"大庆市","ext_id":"230600000000","label":"大庆市","children":[{"id":"230602","pid":2306,"value":"萨尔图区","ext_id":"230602000000","label":"萨尔图区"},{"id":"230603","pid":2306,"value":"龙凤区","ext_id":"230603000000","label":"龙凤区"},{"id":"230604","pid":2306,"value":"让胡路区","ext_id":"230604000000","label":"让胡路区"},{"id":"230605","pid":2306,"value":"红岗区","ext_id":"230605000000","label":"红岗区"},{"id":"230606","pid":2306,"value":"大同区","ext_id":"230606000000","label":"大同区"},{"id":"230621","pid":2306,"value":"肇州县","ext_id":"230621000000","label":"肇州县"},{"id":"230622","pid":2306,"value":"肇源县","ext_id":"230622000000","label":"肇源县"},{"id":"230623","pid":2306,"value":"林甸县","ext_id":"230623000000","label":"林甸县"},{"id":"230624","pid":2306,"value":"杜尔伯特蒙古族自治县","ext_id":"230624000000","label":"杜尔伯特蒙古族自治县"}]},{"id":"2307","pid":23,"value":"伊春市","ext_id":"230700000000","label":"伊春市","children":[{"id":"230717","pid":2307,"value":"伊美区","ext_id":"230717000000","label":"伊美区"},{"id":"230718","pid":2307,"value":"乌翠区","ext_id":"230718000000","label":"乌翠区"},{"id":"230719","pid":2307,"value":"友好区","ext_id":"230719000000","label":"友好区"},{"id":"230722","pid":2307,"value":"嘉荫县","ext_id":"230722000000","label":"嘉荫县"},{"id":"230723","pid":2307,"value":"汤旺县","ext_id":"230723000000","label":"汤旺县"},{"id":"230724","pid":2307,"value":"丰林县","ext_id":"230724000000","label":"丰林县"},{"id":"230725","pid":2307,"value":"大箐山县","ext_id":"230725000000","label":"大箐山县"},{"id":"230726","pid":2307,"value":"南岔县","ext_id":"230726000000","label":"南岔县"},{"id":"230751","pid":2307,"value":"金林区","ext_id":"230751000000","label":"金林区"},{"id":"230781","pid":2307,"value":"铁力市","ext_id":"230781000000","label":"铁力市"}]},{"id":"2308","pid":23,"value":"佳木斯市","ext_id":"230800000000","label":"佳木斯市","children":[{"id":"230803","pid":2308,"value":"向阳区","ext_id":"230803000000","label":"向阳区"},{"id":"230804","pid":2308,"value":"前进区","ext_id":"230804000000","label":"前进区"},{"id":"230805","pid":2308,"value":"东风区","ext_id":"230805000000","label":"东风区"},{"id":"230811","pid":2308,"value":"郊区","ext_id":"230811000000","label":"郊区"},{"id":"230822","pid":2308,"value":"桦南县","ext_id":"230822000000","label":"桦南县"},{"id":"230826","pid":2308,"value":"桦川县","ext_id":"230826000000","label":"桦川县"},{"id":"230828","pid":2308,"value":"汤原县","ext_id":"230828000000","label":"汤原县"},{"id":"230881","pid":2308,"value":"同江市","ext_id":"230881000000","label":"同江市"},{"id":"230882","pid":2308,"value":"富锦市","ext_id":"230882000000","label":"富锦市"},{"id":"230883","pid":2308,"value":"抚远市","ext_id":"230883000000","label":"抚远市"}]},{"id":"2309","pid":23,"value":"七台河市","ext_id":"230900000000","label":"七台河市","children":[{"id":"230902","pid":2309,"value":"新兴区","ext_id":"230902000000","label":"新兴区"},{"id":"230903","pid":2309,"value":"桃山区","ext_id":"230903000000","label":"桃山区"},{"id":"230904","pid":2309,"value":"茄子河区","ext_id":"230904000000","label":"茄子河区"},{"id":"230921","pid":2309,"value":"勃利县","ext_id":"230921000000","label":"勃利县"}]},{"id":"2310","pid":23,"value":"牡丹江市","ext_id":"231000000000","label":"牡丹江市","children":[{"id":"231002","pid":2310,"value":"东安区","ext_id":"231002000000","label":"东安区"},{"id":"231003","pid":2310,"value":"阳明区","ext_id":"231003000000","label":"阳明区"},{"id":"231004","pid":2310,"value":"爱民区","ext_id":"231004000000","label":"爱民区"},{"id":"231005","pid":2310,"value":"西安区","ext_id":"231005000000","label":"西安区"},{"id":"231025","pid":2310,"value":"林口县","ext_id":"231025000000","label":"林口县"},{"id":"231081","pid":2310,"value":"绥芬河市","ext_id":"231081000000","label":"绥芬河市"},{"id":"231083","pid":2310,"value":"海林市","ext_id":"231083000000","label":"海林市"},{"id":"231084","pid":2310,"value":"宁安市","ext_id":"231084000000","label":"宁安市"},{"id":"231085","pid":2310,"value":"穆棱市","ext_id":"231085000000","label":"穆棱市"},{"id":"231086","pid":2310,"value":"东宁市","ext_id":"231086000000","label":"东宁市"}]},{"id":"2311","pid":23,"value":"黑河市","ext_id":"231100000000","label":"黑河市","children":[{"id":"231102","pid":2311,"value":"爱辉区","ext_id":"231102000000","label":"爱辉区"},{"id":"231123","pid":2311,"value":"逊克县","ext_id":"231123000000","label":"逊克县"},{"id":"231124","pid":2311,"value":"孙吴县","ext_id":"231124000000","label":"孙吴县"},{"id":"231181","pid":2311,"value":"北安市","ext_id":"231181000000","label":"北安市"},{"id":"231182","pid":2311,"value":"五大连池市","ext_id":"231182000000","label":"五大连池市"},{"id":"231183","pid":2311,"value":"嫩江市","ext_id":"231183000000","label":"嫩江市"}]},{"id":"2312","pid":23,"value":"绥化市","ext_id":"231200000000","label":"绥化市","children":[{"id":"231202","pid":2312,"value":"北林区","ext_id":"231202000000","label":"北林区"},{"id":"231221","pid":2312,"value":"望奎县","ext_id":"231221000000","label":"望奎县"},{"id":"231222","pid":2312,"value":"兰西县","ext_id":"231222000000","label":"兰西县"},{"id":"231223","pid":2312,"value":"青冈县","ext_id":"231223000000","label":"青冈县"},{"id":"231224","pid":2312,"value":"庆安县","ext_id":"231224000000","label":"庆安县"},{"id":"231225","pid":2312,"value":"明水县","ext_id":"231225000000","label":"明水县"},{"id":"231226","pid":2312,"value":"绥棱县","ext_id":"231226000000","label":"绥棱县"},{"id":"231281","pid":2312,"value":"安达市","ext_id":"231281000000","label":"安达市"},{"id":"231282","pid":2312,"value":"肇东市","ext_id":"231282000000","label":"肇东市"},{"id":"231283","pid":2312,"value":"海伦市","ext_id":"231283000000","label":"海伦市"}]},{"id":"2327","pid":23,"value":"大兴安岭地区","ext_id":"232700000000","label":"大兴安岭地区","children":[{"id":"232701","pid":2327,"value":"漠河市","ext_id":"232701000000","label":"漠河市"},{"id":"232718","pid":2327,"value":"加格达奇区","ext_id":"232718000000","label":"加格达奇区"},{"id":"232721","pid":2327,"value":"呼玛县","ext_id":"232721000000","label":"呼玛县"},{"id":"232722","pid":2327,"value":"塔河县","ext_id":"232722000000","label":"塔河县"}]}]},{"id":"31","pid":0,"value":"上海市","ext_id":"310000000000","label":"上海市","children":[{"id":"3101","pid":31,"value":"上海市","ext_id":"310100000000","label":"上海市","children":[{"id":"310101","pid":3101,"value":"黄浦区","ext_id":"310101000000","label":"黄浦区"},{"id":"310104","pid":3101,"value":"徐汇区","ext_id":"310104000000","label":"徐汇区"},{"id":"310105","pid":3101,"value":"长宁区","ext_id":"310105000000","label":"长宁区"},{"id":"310106","pid":3101,"value":"静安区","ext_id":"310106000000","label":"静安区"},{"id":"310107","pid":3101,"value":"普陀区","ext_id":"310107000000","label":"普陀区"},{"id":"310109","pid":3101,"value":"虹口区","ext_id":"310109000000","label":"虹口区"},{"id":"310110","pid":3101,"value":"杨浦区","ext_id":"310110000000","label":"杨浦区"},{"id":"310112","pid":3101,"value":"闵行区","ext_id":"310112000000","label":"闵行区"},{"id":"310113","pid":3101,"value":"宝山区","ext_id":"310113000000","label":"宝山区"},{"id":"310114","pid":3101,"value":"嘉定区","ext_id":"310114000000","label":"嘉定区"},{"id":"310115","pid":3101,"value":"浦东新区","ext_id":"310115000000","label":"浦东新区"},{"id":"310116","pid":3101,"value":"金山区","ext_id":"310116000000","label":"金山区"},{"id":"310117","pid":3101,"value":"松江区","ext_id":"310117000000","label":"松江区"},{"id":"310118","pid":3101,"value":"青浦区","ext_id":"310118000000","label":"青浦区"},{"id":"310120","pid":3101,"value":"奉贤区","ext_id":"310120000000","label":"奉贤区"},{"id":"310151","pid":3101,"value":"崇明区","ext_id":"310151000000","label":"崇明区"}]}]},{"id":"32","pid":0,"value":"江苏省","ext_id":"320000000000","label":"江苏省","children":[{"id":"3201","pid":32,"value":"南京市","ext_id":"320100000000","label":"南京市","children":[{"id":"320102","pid":3201,"value":"玄武区","ext_id":"320102000000","label":"玄武区"},{"id":"320104","pid":3201,"value":"秦淮区","ext_id":"320104000000","label":"秦淮区"},{"id":"320105","pid":3201,"value":"建邺区","ext_id":"320105000000","label":"建邺区"},{"id":"320106","pid":3201,"value":"鼓楼区","ext_id":"320106000000","label":"鼓楼区"},{"id":"320111","pid":3201,"value":"浦口区","ext_id":"320111000000","label":"浦口区"},{"id":"320113","pid":3201,"value":"栖霞区","ext_id":"320113000000","label":"栖霞区"},{"id":"320114","pid":3201,"value":"雨花台区","ext_id":"320114000000","label":"雨花台区"},{"id":"320115","pid":3201,"value":"江宁区","ext_id":"320115000000","label":"江宁区"},{"id":"320116","pid":3201,"value":"六合区","ext_id":"320116000000","label":"六合区"},{"id":"320117","pid":3201,"value":"溧水区","ext_id":"320117000000","label":"溧水区"},{"id":"320118","pid":3201,"value":"高淳区","ext_id":"320118000000","label":"高淳区"}]},{"id":"3202","pid":32,"value":"无锡市","ext_id":"320200000000","label":"无锡市","children":[{"id":"320205","pid":3202,"value":"锡山区","ext_id":"320205000000","label":"锡山区"},{"id":"320206","pid":3202,"value":"惠山区","ext_id":"320206000000","label":"惠山区"},{"id":"320211","pid":3202,"value":"滨湖区","ext_id":"320211000000","label":"滨湖区"},{"id":"320213","pid":3202,"value":"梁溪区","ext_id":"320213000000","label":"梁溪区"},{"id":"320214","pid":3202,"value":"新吴区","ext_id":"320214000000","label":"新吴区"},{"id":"320281","pid":3202,"value":"江阴市","ext_id":"320281000000","label":"江阴市"},{"id":"320282","pid":3202,"value":"宜兴市","ext_id":"320282000000","label":"宜兴市"}]},{"id":"3203","pid":32,"value":"徐州市","ext_id":"320300000000","label":"徐州市","children":[{"id":"320302","pid":3203,"value":"鼓楼区","ext_id":"320302000000","label":"鼓楼区"},{"id":"320303","pid":3203,"value":"云龙区","ext_id":"320303000000","label":"云龙区"},{"id":"320305","pid":3203,"value":"贾汪区","ext_id":"320305000000","label":"贾汪区"},{"id":"320311","pid":3203,"value":"泉山区","ext_id":"320311000000","label":"泉山区"},{"id":"320312","pid":3203,"value":"铜山区","ext_id":"320312000000","label":"铜山区"},{"id":"320321","pid":3203,"value":"丰县","ext_id":"320321000000","label":"丰县"},{"id":"320322","pid":3203,"value":"沛县","ext_id":"320322000000","label":"沛县"},{"id":"320324","pid":3203,"value":"睢宁县","ext_id":"320324000000","label":"睢宁县"},{"id":"320381","pid":3203,"value":"新沂市","ext_id":"320381000000","label":"新沂市"},{"id":"320382","pid":3203,"value":"邳州市","ext_id":"320382000000","label":"邳州市"}]},{"id":"3204","pid":32,"value":"常州市","ext_id":"320400000000","label":"常州市","children":[{"id":"320402","pid":3204,"value":"天宁区","ext_id":"320402000000","label":"天宁区"},{"id":"320404","pid":3204,"value":"钟楼区","ext_id":"320404000000","label":"钟楼区"},{"id":"320411","pid":3204,"value":"新北区","ext_id":"320411000000","label":"新北区"},{"id":"320412","pid":3204,"value":"武进区","ext_id":"320412000000","label":"武进区"},{"id":"320413","pid":3204,"value":"金坛区","ext_id":"320413000000","label":"金坛区"},{"id":"320481","pid":3204,"value":"溧阳市","ext_id":"320481000000","label":"溧阳市"}]},{"id":"3205","pid":32,"value":"苏州市","ext_id":"320500000000","label":"苏州市","children":[{"id":"320505","pid":3205,"value":"虎丘区","ext_id":"320505000000","label":"虎丘区"},{"id":"320506","pid":3205,"value":"吴中区","ext_id":"320506000000","label":"吴中区"},{"id":"320507","pid":3205,"value":"相城区","ext_id":"320507000000","label":"相城区"},{"id":"320508","pid":3205,"value":"姑苏区","ext_id":"320508000000","label":"姑苏区"},{"id":"320509","pid":3205,"value":"吴江区","ext_id":"320509000000","label":"吴江区"},{"id":"320581","pid":3205,"value":"常熟市","ext_id":"320581000000","label":"常熟市"},{"id":"320582","pid":3205,"value":"张家港市","ext_id":"320582000000","label":"张家港市"},{"id":"320583","pid":3205,"value":"昆山市","ext_id":"320583000000","label":"昆山市"},{"id":"320585","pid":3205,"value":"太仓市","ext_id":"320585000000","label":"太仓市"}]},{"id":"3206","pid":32,"value":"南通市","ext_id":"320600000000","label":"南通市","children":[{"id":"320612","pid":3206,"value":"通州区","ext_id":"320612000000","label":"通州区"},{"id":"320613","pid":3206,"value":"崇川区","ext_id":"320613000000","label":"崇川区"},{"id":"320614","pid":3206,"value":"海门区","ext_id":"320614000000","label":"海门区"},{"id":"320623","pid":3206,"value":"如东县","ext_id":"320623000000","label":"如东县"},{"id":"320681","pid":3206,"value":"启东市","ext_id":"320681000000","label":"启东市"},{"id":"320682","pid":3206,"value":"如皋市","ext_id":"320682000000","label":"如皋市"},{"id":"320685","pid":3206,"value":"海安市","ext_id":"320685000000","label":"海安市"}]},{"id":"3207","pid":32,"value":"连云港市","ext_id":"320700000000","label":"连云港市","children":[{"id":"320703","pid":3207,"value":"连云区","ext_id":"320703000000","label":"连云区"},{"id":"320706","pid":3207,"value":"海州区","ext_id":"320706000000","label":"海州区"},{"id":"320707","pid":3207,"value":"赣榆区","ext_id":"320707000000","label":"赣榆区"},{"id":"320722","pid":3207,"value":"东海县","ext_id":"320722000000","label":"东海县"},{"id":"320723","pid":3207,"value":"灌云县","ext_id":"320723000000","label":"灌云县"},{"id":"320724","pid":3207,"value":"灌南县","ext_id":"320724000000","label":"灌南县"}]},{"id":"3208","pid":32,"value":"淮安市","ext_id":"320800000000","label":"淮安市","children":[{"id":"320803","pid":3208,"value":"淮安区","ext_id":"320803000000","label":"淮安区"},{"id":"320804","pid":3208,"value":"淮阴区","ext_id":"320804000000","label":"淮阴区"},{"id":"320812","pid":3208,"value":"清江浦区","ext_id":"320812000000","label":"清江浦区"},{"id":"320813","pid":3208,"value":"洪泽区","ext_id":"320813000000","label":"洪泽区"},{"id":"320826","pid":3208,"value":"涟水县","ext_id":"320826000000","label":"涟水县"},{"id":"320830","pid":3208,"value":"盱眙县","ext_id":"320830000000","label":"盱眙县"},{"id":"320831","pid":3208,"value":"金湖县","ext_id":"320831000000","label":"金湖县"}]},{"id":"3209","pid":32,"value":"盐城市","ext_id":"320900000000","label":"盐城市","children":[{"id":"320902","pid":3209,"value":"亭湖区","ext_id":"320902000000","label":"亭湖区"},{"id":"320903","pid":3209,"value":"盐都区","ext_id":"320903000000","label":"盐都区"},{"id":"320904","pid":3209,"value":"大丰区","ext_id":"320904000000","label":"大丰区"},{"id":"320921","pid":3209,"value":"响水县","ext_id":"320921000000","label":"响水县"},{"id":"320922","pid":3209,"value":"滨海县","ext_id":"320922000000","label":"滨海县"},{"id":"320923","pid":3209,"value":"阜宁县","ext_id":"320923000000","label":"阜宁县"},{"id":"320924","pid":3209,"value":"射阳县","ext_id":"320924000000","label":"射阳县"},{"id":"320925","pid":3209,"value":"建湖县","ext_id":"320925000000","label":"建湖县"},{"id":"320981","pid":3209,"value":"东台市","ext_id":"320981000000","label":"东台市"}]},{"id":"3210","pid":32,"value":"扬州市","ext_id":"321000000000","label":"扬州市","children":[{"id":"321002","pid":3210,"value":"广陵区","ext_id":"321002000000","label":"广陵区"},{"id":"321003","pid":3210,"value":"邗江区","ext_id":"321003000000","label":"邗江区"},{"id":"321012","pid":3210,"value":"江都区","ext_id":"321012000000","label":"江都区"},{"id":"321023","pid":3210,"value":"宝应县","ext_id":"321023000000","label":"宝应县"},{"id":"321081","pid":3210,"value":"仪征市","ext_id":"321081000000","label":"仪征市"},{"id":"321084","pid":3210,"value":"高邮市","ext_id":"321084000000","label":"高邮市"}]},{"id":"3211","pid":32,"value":"镇江市","ext_id":"321100000000","label":"镇江市","children":[{"id":"321102","pid":3211,"value":"京口区","ext_id":"321102000000","label":"京口区"},{"id":"321111","pid":3211,"value":"润州区","ext_id":"321111000000","label":"润州区"},{"id":"321112","pid":3211,"value":"丹徒区","ext_id":"321112000000","label":"丹徒区"},{"id":"321181","pid":3211,"value":"丹阳市","ext_id":"321181000000","label":"丹阳市"},{"id":"321182","pid":3211,"value":"扬中市","ext_id":"321182000000","label":"扬中市"},{"id":"321183","pid":3211,"value":"句容市","ext_id":"321183000000","label":"句容市"}]},{"id":"3212","pid":32,"value":"泰州市","ext_id":"321200000000","label":"泰州市","children":[{"id":"321202","pid":3212,"value":"海陵区","ext_id":"321202000000","label":"海陵区"},{"id":"321203","pid":3212,"value":"高港区","ext_id":"321203000000","label":"高港区"},{"id":"321204","pid":3212,"value":"姜堰区","ext_id":"321204000000","label":"姜堰区"},{"id":"321281","pid":3212,"value":"兴化市","ext_id":"321281000000","label":"兴化市"},{"id":"321282","pid":3212,"value":"靖江市","ext_id":"321282000000","label":"靖江市"},{"id":"321283","pid":3212,"value":"泰兴市","ext_id":"321283000000","label":"泰兴市"}]},{"id":"3213","pid":32,"value":"宿迁市","ext_id":"321300000000","label":"宿迁市","children":[{"id":"321302","pid":3213,"value":"宿城区","ext_id":"321302000000","label":"宿城区"},{"id":"321311","pid":3213,"value":"宿豫区","ext_id":"321311000000","label":"宿豫区"},{"id":"321322","pid":3213,"value":"沭阳县","ext_id":"321322000000","label":"沭阳县"},{"id":"321323","pid":3213,"value":"泗阳县","ext_id":"321323000000","label":"泗阳县"},{"id":"321324","pid":3213,"value":"泗洪县","ext_id":"321324000000","label":"泗洪县"}]}]},{"id":"33","pid":0,"value":"浙江省","ext_id":"330000000000","label":"浙江省","children":[{"id":"3301","pid":33,"value":"杭州市","ext_id":"330100000000","label":"杭州市","children":[{"id":"330102","pid":3301,"value":"上城区","ext_id":"330102000000","label":"上城区"},{"id":"330105","pid":3301,"value":"拱墅区","ext_id":"330105000000","label":"拱墅区"},{"id":"330106","pid":3301,"value":"西湖区","ext_id":"330106000000","label":"西湖区"},{"id":"330108","pid":3301,"value":"滨江区","ext_id":"330108000000","label":"滨江区"},{"id":"330109","pid":3301,"value":"萧山区","ext_id":"330109000000","label":"萧山区"},{"id":"330110","pid":3301,"value":"余杭区","ext_id":"330110000000","label":"余杭区"},{"id":"330111","pid":3301,"value":"富阳区","ext_id":"330111000000","label":"富阳区"},{"id":"330112","pid":3301,"value":"临安区","ext_id":"330112000000","label":"临安区"},{"id":"330113","pid":3301,"value":"临平区","ext_id":"330113000000","label":"临平区"},{"id":"330114","pid":3301,"value":"钱塘区","ext_id":"330114000000","label":"钱塘区"},{"id":"330122","pid":3301,"value":"桐庐县","ext_id":"330122000000","label":"桐庐县"},{"id":"330127","pid":3301,"value":"淳安县","ext_id":"330127000000","label":"淳安县"},{"id":"330182","pid":3301,"value":"建德市","ext_id":"330182000000","label":"建德市"}]},{"id":"3302","pid":33,"value":"宁波市","ext_id":"330200000000","label":"宁波市","children":[{"id":"330203","pid":3302,"value":"海曙区","ext_id":"330203000000","label":"海曙区"},{"id":"330205","pid":3302,"value":"江北区","ext_id":"330205000000","label":"江北区"},{"id":"330206","pid":3302,"value":"北仑区","ext_id":"330206000000","label":"北仑区"},{"id":"330211","pid":3302,"value":"镇海区","ext_id":"330211000000","label":"镇海区"},{"id":"330212","pid":3302,"value":"鄞州区","ext_id":"330212000000","label":"鄞州区"},{"id":"330213","pid":3302,"value":"奉化区","ext_id":"330213000000","label":"奉化区"},{"id":"330225","pid":3302,"value":"象山县","ext_id":"330225000000","label":"象山县"},{"id":"330226","pid":3302,"value":"宁海县","ext_id":"330226000000","label":"宁海县"},{"id":"330281","pid":3302,"value":"余姚市","ext_id":"330281000000","label":"余姚市"},{"id":"330282","pid":3302,"value":"慈溪市","ext_id":"330282000000","label":"慈溪市"}]},{"id":"3303","pid":33,"value":"温州市","ext_id":"330300000000","label":"温州市","children":[{"id":"330302","pid":3303,"value":"鹿城区","ext_id":"330302000000","label":"鹿城区"},{"id":"330303","pid":3303,"value":"龙湾区","ext_id":"330303000000","label":"龙湾区"},{"id":"330304","pid":3303,"value":"瓯海区","ext_id":"330304000000","label":"瓯海区"},{"id":"330305","pid":3303,"value":"洞头区","ext_id":"330305000000","label":"洞头区"},{"id":"330324","pid":3303,"value":"永嘉县","ext_id":"330324000000","label":"永嘉县"},{"id":"330326","pid":3303,"value":"平阳县","ext_id":"330326000000","label":"平阳县"},{"id":"330327","pid":3303,"value":"苍南县","ext_id":"330327000000","label":"苍南县"},{"id":"330328","pid":3303,"value":"文成县","ext_id":"330328000000","label":"文成县"},{"id":"330329","pid":3303,"value":"泰顺县","ext_id":"330329000000","label":"泰顺县"},{"id":"330381","pid":3303,"value":"瑞安市","ext_id":"330381000000","label":"瑞安市"},{"id":"330382","pid":3303,"value":"乐清市","ext_id":"330382000000","label":"乐清市"},{"id":"330383","pid":3303,"value":"龙港市","ext_id":"330383000000","label":"龙港市"}]},{"id":"3304","pid":33,"value":"嘉兴市","ext_id":"330400000000","label":"嘉兴市","children":[{"id":"330402","pid":3304,"value":"南湖区","ext_id":"330402000000","label":"南湖区"},{"id":"330411","pid":3304,"value":"秀洲区","ext_id":"330411000000","label":"秀洲区"},{"id":"330421","pid":3304,"value":"嘉善县","ext_id":"330421000000","label":"嘉善县"},{"id":"330424","pid":3304,"value":"海盐县","ext_id":"330424000000","label":"海盐县"},{"id":"330481","pid":3304,"value":"海宁市","ext_id":"330481000000","label":"海宁市"},{"id":"330482","pid":3304,"value":"平湖市","ext_id":"330482000000","label":"平湖市"},{"id":"330483","pid":3304,"value":"桐乡市","ext_id":"330483000000","label":"桐乡市"}]},{"id":"3305","pid":33,"value":"湖州市","ext_id":"330500000000","label":"湖州市","children":[{"id":"330502","pid":3305,"value":"吴兴区","ext_id":"330502000000","label":"吴兴区"},{"id":"330503","pid":3305,"value":"南浔区","ext_id":"330503000000","label":"南浔区"},{"id":"330521","pid":3305,"value":"德清县","ext_id":"330521000000","label":"德清县"},{"id":"330522","pid":3305,"value":"长兴县","ext_id":"330522000000","label":"长兴县"},{"id":"330523","pid":3305,"value":"安吉县","ext_id":"330523000000","label":"安吉县"}]},{"id":"3306","pid":33,"value":"绍兴市","ext_id":"330600000000","label":"绍兴市","children":[{"id":"330602","pid":3306,"value":"越城区","ext_id":"330602000000","label":"越城区"},{"id":"330603","pid":3306,"value":"柯桥区","ext_id":"330603000000","label":"柯桥区"},{"id":"330604","pid":3306,"value":"上虞区","ext_id":"330604000000","label":"上虞区"},{"id":"330624","pid":3306,"value":"新昌县","ext_id":"330624000000","label":"新昌县"},{"id":"330681","pid":3306,"value":"诸暨市","ext_id":"330681000000","label":"诸暨市"},{"id":"330683","pid":3306,"value":"嵊州市","ext_id":"330683000000","label":"嵊州市"}]},{"id":"3307","pid":33,"value":"金华市","ext_id":"330700000000","label":"金华市","children":[{"id":"330702","pid":3307,"value":"婺城区","ext_id":"330702000000","label":"婺城区"},{"id":"330703","pid":3307,"value":"金东区","ext_id":"330703000000","label":"金东区"},{"id":"330723","pid":3307,"value":"武义县","ext_id":"330723000000","label":"武义县"},{"id":"330726","pid":3307,"value":"浦江县","ext_id":"330726000000","label":"浦江县"},{"id":"330727","pid":3307,"value":"磐安县","ext_id":"330727000000","label":"磐安县"},{"id":"330781","pid":3307,"value":"兰溪市","ext_id":"330781000000","label":"兰溪市"},{"id":"330782","pid":3307,"value":"义乌市","ext_id":"330782000000","label":"义乌市"},{"id":"330783","pid":3307,"value":"东阳市","ext_id":"330783000000","label":"东阳市"},{"id":"330784","pid":3307,"value":"永康市","ext_id":"330784000000","label":"永康市"}]},{"id":"3308","pid":33,"value":"衢州市","ext_id":"330800000000","label":"衢州市","children":[{"id":"330802","pid":3308,"value":"柯城区","ext_id":"330802000000","label":"柯城区"},{"id":"330803","pid":3308,"value":"衢江区","ext_id":"330803000000","label":"衢江区"},{"id":"330822","pid":3308,"value":"常山县","ext_id":"330822000000","label":"常山县"},{"id":"330824","pid":3308,"value":"开化县","ext_id":"330824000000","label":"开化县"},{"id":"330825","pid":3308,"value":"龙游县","ext_id":"330825000000","label":"龙游县"},{"id":"330881","pid":3308,"value":"江山市","ext_id":"330881000000","label":"江山市"}]},{"id":"3309","pid":33,"value":"舟山市","ext_id":"330900000000","label":"舟山市","children":[{"id":"330902","pid":3309,"value":"定海区","ext_id":"330902000000","label":"定海区"},{"id":"330903","pid":3309,"value":"普陀区","ext_id":"330903000000","label":"普陀区"},{"id":"330921","pid":3309,"value":"岱山县","ext_id":"330921000000","label":"岱山县"},{"id":"330922","pid":3309,"value":"嵊泗县","ext_id":"330922000000","label":"嵊泗县"}]},{"id":"3310","pid":33,"value":"台州市","ext_id":"331000000000","label":"台州市","children":[{"id":"331002","pid":3310,"value":"椒江区","ext_id":"331002000000","label":"椒江区"},{"id":"331003","pid":3310,"value":"黄岩区","ext_id":"331003000000","label":"黄岩区"},{"id":"331004","pid":3310,"value":"路桥区","ext_id":"331004000000","label":"路桥区"},{"id":"331022","pid":3310,"value":"三门县","ext_id":"331022000000","label":"三门县"},{"id":"331023","pid":3310,"value":"天台县","ext_id":"331023000000","label":"天台县"},{"id":"331024","pid":3310,"value":"仙居县","ext_id":"331024000000","label":"仙居县"},{"id":"331081","pid":3310,"value":"温岭市","ext_id":"331081000000","label":"温岭市"},{"id":"331082","pid":3310,"value":"临海市","ext_id":"331082000000","label":"临海市"},{"id":"331083","pid":3310,"value":"玉环市","ext_id":"331083000000","label":"玉环市"}]},{"id":"3311","pid":33,"value":"丽水市","ext_id":"331100000000","label":"丽水市","children":[{"id":"331102","pid":3311,"value":"莲都区","ext_id":"331102000000","label":"莲都区"},{"id":"331121","pid":3311,"value":"青田县","ext_id":"331121000000","label":"青田县"},{"id":"331122","pid":3311,"value":"缙云县","ext_id":"331122000000","label":"缙云县"},{"id":"331123","pid":3311,"value":"遂昌县","ext_id":"331123000000","label":"遂昌县"},{"id":"331124","pid":3311,"value":"松阳县","ext_id":"331124000000","label":"松阳县"},{"id":"331125","pid":3311,"value":"云和县","ext_id":"331125000000","label":"云和县"},{"id":"331126","pid":3311,"value":"庆元县","ext_id":"331126000000","label":"庆元县"},{"id":"331127","pid":3311,"value":"景宁畲族自治县","ext_id":"331127000000","label":"景宁畲族自治县"},{"id":"331181","pid":3311,"value":"龙泉市","ext_id":"331181000000","label":"龙泉市"}]}]},{"id":"34","pid":0,"value":"安徽省","ext_id":"340000000000","label":"安徽省","children":[{"id":"3401","pid":34,"value":"合肥市","ext_id":"340100000000","label":"合肥市","children":[{"id":"340102","pid":3401,"value":"瑶海区","ext_id":"340102000000","label":"瑶海区"},{"id":"340103","pid":3401,"value":"庐阳区","ext_id":"340103000000","label":"庐阳区"},{"id":"340104","pid":3401,"value":"蜀山区","ext_id":"340104000000","label":"蜀山区"},{"id":"340111","pid":3401,"value":"包河区","ext_id":"340111000000","label":"包河区"},{"id":"340121","pid":3401,"value":"长丰县","ext_id":"340121000000","label":"长丰县"},{"id":"340122","pid":3401,"value":"肥东县","ext_id":"340122000000","label":"肥东县"},{"id":"340123","pid":3401,"value":"肥西县","ext_id":"340123000000","label":"肥西县"},{"id":"340124","pid":3401,"value":"庐江县","ext_id":"340124000000","label":"庐江县"},{"id":"340181","pid":3401,"value":"巢湖市","ext_id":"340181000000","label":"巢湖市"}]},{"id":"3402","pid":34,"value":"芜湖市","ext_id":"340200000000","label":"芜湖市","children":[{"id":"340202","pid":3402,"value":"镜湖区","ext_id":"340202000000","label":"镜湖区"},{"id":"340207","pid":3402,"value":"鸠江区","ext_id":"340207000000","label":"鸠江区"},{"id":"340209","pid":3402,"value":"弋江区","ext_id":"340209000000","label":"弋江区"},{"id":"340210","pid":3402,"value":"湾沚区","ext_id":"340210000000","label":"湾沚区"},{"id":"340212","pid":3402,"value":"繁昌区","ext_id":"340212000000","label":"繁昌区"},{"id":"340223","pid":3402,"value":"南陵县","ext_id":"340223000000","label":"南陵县"},{"id":"340281","pid":3402,"value":"无为市","ext_id":"340281000000","label":"无为市"}]},{"id":"3403","pid":34,"value":"蚌埠市","ext_id":"340300000000","label":"蚌埠市","children":[{"id":"340302","pid":3403,"value":"龙子湖区","ext_id":"340302000000","label":"龙子湖区"},{"id":"340303","pid":3403,"value":"蚌山区","ext_id":"340303000000","label":"蚌山区"},{"id":"340304","pid":3403,"value":"禹会区","ext_id":"340304000000","label":"禹会区"},{"id":"340311","pid":3403,"value":"淮上区","ext_id":"340311000000","label":"淮上区"},{"id":"340321","pid":3403,"value":"怀远县","ext_id":"340321000000","label":"怀远县"},{"id":"340322","pid":3403,"value":"五河县","ext_id":"340322000000","label":"五河县"},{"id":"340323","pid":3403,"value":"固镇县","ext_id":"340323000000","label":"固镇县"}]},{"id":"3404","pid":34,"value":"淮南市","ext_id":"340400000000","label":"淮南市","children":[{"id":"340402","pid":3404,"value":"大通区","ext_id":"340402000000","label":"大通区"},{"id":"340403","pid":3404,"value":"田家庵区","ext_id":"340403000000","label":"田家庵区"},{"id":"340404","pid":3404,"value":"谢家集区","ext_id":"340404000000","label":"谢家集区"},{"id":"340405","pid":3404,"value":"八公山区","ext_id":"340405000000","label":"八公山区"},{"id":"340406","pid":3404,"value":"潘集区","ext_id":"340406000000","label":"潘集区"},{"id":"340421","pid":3404,"value":"凤台县","ext_id":"340421000000","label":"凤台县"},{"id":"340422","pid":3404,"value":"寿县","ext_id":"340422000000","label":"寿县"}]},{"id":"3405","pid":34,"value":"马鞍山市","ext_id":"340500000000","label":"马鞍山市","children":[{"id":"340503","pid":3405,"value":"花山区","ext_id":"340503000000","label":"花山区"},{"id":"340504","pid":3405,"value":"雨山区","ext_id":"340504000000","label":"雨山区"},{"id":"340506","pid":3405,"value":"博望区","ext_id":"340506000000","label":"博望区"},{"id":"340521","pid":3405,"value":"当涂县","ext_id":"340521000000","label":"当涂县"},{"id":"340522","pid":3405,"value":"含山县","ext_id":"340522000000","label":"含山县"},{"id":"340523","pid":3405,"value":"和县","ext_id":"340523000000","label":"和县"}]},{"id":"3406","pid":34,"value":"淮北市","ext_id":"340600000000","label":"淮北市","children":[{"id":"340602","pid":3406,"value":"杜集区","ext_id":"340602000000","label":"杜集区"},{"id":"340603","pid":3406,"value":"相山区","ext_id":"340603000000","label":"相山区"},{"id":"340604","pid":3406,"value":"烈山区","ext_id":"340604000000","label":"烈山区"},{"id":"340621","pid":3406,"value":"濉溪县","ext_id":"340621000000","label":"濉溪县"}]},{"id":"3407","pid":34,"value":"铜陵市","ext_id":"340700000000","label":"铜陵市","children":[{"id":"340705","pid":3407,"value":"铜官区","ext_id":"340705000000","label":"铜官区"},{"id":"340706","pid":3407,"value":"义安区","ext_id":"340706000000","label":"义安区"},{"id":"340711","pid":3407,"value":"郊区","ext_id":"340711000000","label":"郊区"},{"id":"340722","pid":3407,"value":"枞阳县","ext_id":"340722000000","label":"枞阳县"}]},{"id":"3408","pid":34,"value":"安庆市","ext_id":"340800000000","label":"安庆市","children":[{"id":"340802","pid":3408,"value":"迎江区","ext_id":"340802000000","label":"迎江区"},{"id":"340803","pid":3408,"value":"大观区","ext_id":"340803000000","label":"大观区"},{"id":"340811","pid":3408,"value":"宜秀区","ext_id":"340811000000","label":"宜秀区"},{"id":"340822","pid":3408,"value":"怀宁县","ext_id":"340822000000","label":"怀宁县"},{"id":"340825","pid":3408,"value":"太湖县","ext_id":"340825000000","label":"太湖县"},{"id":"340826","pid":3408,"value":"宿松县","ext_id":"340826000000","label":"宿松县"},{"id":"340827","pid":3408,"value":"望江县","ext_id":"340827000000","label":"望江县"},{"id":"340828","pid":3408,"value":"岳西县","ext_id":"340828000000","label":"岳西县"},{"id":"340881","pid":3408,"value":"桐城市","ext_id":"340881000000","label":"桐城市"},{"id":"340882","pid":3408,"value":"潜山市","ext_id":"340882000000","label":"潜山市"}]},{"id":"3410","pid":34,"value":"黄山市","ext_id":"341000000000","label":"黄山市","children":[{"id":"341002","pid":3410,"value":"屯溪区","ext_id":"341002000000","label":"屯溪区"},{"id":"341003","pid":3410,"value":"黄山区","ext_id":"341003000000","label":"黄山区"},{"id":"341004","pid":3410,"value":"徽州区","ext_id":"341004000000","label":"徽州区"},{"id":"341021","pid":3410,"value":"歙县","ext_id":"341021000000","label":"歙县"},{"id":"341022","pid":3410,"value":"休宁县","ext_id":"341022000000","label":"休宁县"},{"id":"341023","pid":3410,"value":"黟县","ext_id":"341023000000","label":"黟县"},{"id":"341024","pid":3410,"value":"祁门县","ext_id":"341024000000","label":"祁门县"}]},{"id":"3411","pid":34,"value":"滁州市","ext_id":"341100000000","label":"滁州市","children":[{"id":"341102","pid":3411,"value":"琅琊区","ext_id":"341102000000","label":"琅琊区"},{"id":"341103","pid":3411,"value":"南谯区","ext_id":"341103000000","label":"南谯区"},{"id":"341122","pid":3411,"value":"来安县","ext_id":"341122000000","label":"来安县"},{"id":"341124","pid":3411,"value":"全椒县","ext_id":"341124000000","label":"全椒县"},{"id":"341125","pid":3411,"value":"定远县","ext_id":"341125000000","label":"定远县"},{"id":"341126","pid":3411,"value":"凤阳县","ext_id":"341126000000","label":"凤阳县"},{"id":"341181","pid":3411,"value":"天长市","ext_id":"341181000000","label":"天长市"},{"id":"341182","pid":3411,"value":"明光市","ext_id":"341182000000","label":"明光市"}]},{"id":"3412","pid":34,"value":"阜阳市","ext_id":"341200000000","label":"阜阳市","children":[{"id":"341202","pid":3412,"value":"颍州区","ext_id":"341202000000","label":"颍州区"},{"id":"341203","pid":3412,"value":"颍东区","ext_id":"341203000000","label":"颍东区"},{"id":"341204","pid":3412,"value":"颍泉区","ext_id":"341204000000","label":"颍泉区"},{"id":"341221","pid":3412,"value":"临泉县","ext_id":"341221000000","label":"临泉县"},{"id":"341222","pid":3412,"value":"太和县","ext_id":"341222000000","label":"太和县"},{"id":"341225","pid":3412,"value":"阜南县","ext_id":"341225000000","label":"阜南县"},{"id":"341226","pid":3412,"value":"颍上县","ext_id":"341226000000","label":"颍上县"},{"id":"341282","pid":3412,"value":"界首市","ext_id":"341282000000","label":"界首市"}]},{"id":"3413","pid":34,"value":"宿州市","ext_id":"341300000000","label":"宿州市","children":[{"id":"341302","pid":3413,"value":"埇桥区","ext_id":"341302000000","label":"埇桥区"},{"id":"341321","pid":3413,"value":"砀山县","ext_id":"341321000000","label":"砀山县"},{"id":"341322","pid":3413,"value":"萧县","ext_id":"341322000000","label":"萧县"},{"id":"341323","pid":3413,"value":"灵璧县","ext_id":"341323000000","label":"灵璧县"},{"id":"341324","pid":3413,"value":"泗县","ext_id":"341324000000","label":"泗县"}]},{"id":"3415","pid":34,"value":"六安市","ext_id":"341500000000","label":"六安市","children":[{"id":"341502","pid":3415,"value":"金安区","ext_id":"341502000000","label":"金安区"},{"id":"341503","pid":3415,"value":"裕安区","ext_id":"341503000000","label":"裕安区"},{"id":"341504","pid":3415,"value":"叶集区","ext_id":"341504000000","label":"叶集区"},{"id":"341522","pid":3415,"value":"霍邱县","ext_id":"341522000000","label":"霍邱县"},{"id":"341523","pid":3415,"value":"舒城县","ext_id":"341523000000","label":"舒城县"},{"id":"341524","pid":3415,"value":"金寨县","ext_id":"341524000000","label":"金寨县"},{"id":"341525","pid":3415,"value":"霍山县","ext_id":"341525000000","label":"霍山县"}]},{"id":"3416","pid":34,"value":"亳州市","ext_id":"341600000000","label":"亳州市","children":[{"id":"341602","pid":3416,"value":"谯城区","ext_id":"341602000000","label":"谯城区"},{"id":"341621","pid":3416,"value":"涡阳县","ext_id":"341621000000","label":"涡阳县"},{"id":"341622","pid":3416,"value":"蒙城县","ext_id":"341622000000","label":"蒙城县"},{"id":"341623","pid":3416,"value":"利辛县","ext_id":"341623000000","label":"利辛县"}]},{"id":"3417","pid":34,"value":"池州市","ext_id":"341700000000","label":"池州市","children":[{"id":"341702","pid":3417,"value":"贵池区","ext_id":"341702000000","label":"贵池区"},{"id":"341721","pid":3417,"value":"东至县","ext_id":"341721000000","label":"东至县"},{"id":"341722","pid":3417,"value":"石台县","ext_id":"341722000000","label":"石台县"},{"id":"341723","pid":3417,"value":"青阳县","ext_id":"341723000000","label":"青阳县"}]},{"id":"3418","pid":34,"value":"宣城市","ext_id":"341800000000","label":"宣城市","children":[{"id":"341802","pid":3418,"value":"宣州区","ext_id":"341802000000","label":"宣州区"},{"id":"341821","pid":3418,"value":"郎溪县","ext_id":"341821000000","label":"郎溪县"},{"id":"341823","pid":3418,"value":"泾县","ext_id":"341823000000","label":"泾县"},{"id":"341824","pid":3418,"value":"绩溪县","ext_id":"341824000000","label":"绩溪县"},{"id":"341825","pid":3418,"value":"旌德县","ext_id":"341825000000","label":"旌德县"},{"id":"341881","pid":3418,"value":"宁国市","ext_id":"341881000000","label":"宁国市"},{"id":"341882","pid":3418,"value":"广德市","ext_id":"341882000000","label":"广德市"}]}]},{"id":"35","pid":0,"value":"福建省","ext_id":"350000000000","label":"福建省","children":[{"id":"3501","pid":35,"value":"福州市","ext_id":"350100000000","label":"福州市","children":[{"id":"350102","pid":3501,"value":"鼓楼区","ext_id":"350102000000","label":"鼓楼区"},{"id":"350103","pid":3501,"value":"台江区","ext_id":"350103000000","label":"台江区"},{"id":"350104","pid":3501,"value":"仓山区","ext_id":"350104000000","label":"仓山区"},{"id":"350105","pid":3501,"value":"马尾区","ext_id":"350105000000","label":"马尾区"},{"id":"350111","pid":3501,"value":"晋安区","ext_id":"350111000000","label":"晋安区"},{"id":"350112","pid":3501,"value":"长乐区","ext_id":"350112000000","label":"长乐区"},{"id":"350121","pid":3501,"value":"闽侯县","ext_id":"350121000000","label":"闽侯县"},{"id":"350122","pid":3501,"value":"连江县","ext_id":"350122000000","label":"连江县"},{"id":"350123","pid":3501,"value":"罗源县","ext_id":"350123000000","label":"罗源县"},{"id":"350124","pid":3501,"value":"闽清县","ext_id":"350124000000","label":"闽清县"},{"id":"350125","pid":3501,"value":"永泰县","ext_id":"350125000000","label":"永泰县"},{"id":"350128","pid":3501,"value":"平潭县","ext_id":"350128000000","label":"平潭县"},{"id":"350181","pid":3501,"value":"福清市","ext_id":"350181000000","label":"福清市"}]},{"id":"3502","pid":35,"value":"厦门市","ext_id":"350200000000","label":"厦门市","children":[{"id":"350203","pid":3502,"value":"思明区","ext_id":"350203000000","label":"思明区"},{"id":"350205","pid":3502,"value":"海沧区","ext_id":"350205000000","label":"海沧区"},{"id":"350206","pid":3502,"value":"湖里区","ext_id":"350206000000","label":"湖里区"},{"id":"350211","pid":3502,"value":"集美区","ext_id":"350211000000","label":"集美区"},{"id":"350212","pid":3502,"value":"同安区","ext_id":"350212000000","label":"同安区"},{"id":"350213","pid":3502,"value":"翔安区","ext_id":"350213000000","label":"翔安区"}]},{"id":"3503","pid":35,"value":"莆田市","ext_id":"350300000000","label":"莆田市","children":[{"id":"350302","pid":3503,"value":"城厢区","ext_id":"350302000000","label":"城厢区"},{"id":"350303","pid":3503,"value":"涵江区","ext_id":"350303000000","label":"涵江区"},{"id":"350304","pid":3503,"value":"荔城区","ext_id":"350304000000","label":"荔城区"},{"id":"350305","pid":3503,"value":"秀屿区","ext_id":"350305000000","label":"秀屿区"},{"id":"350322","pid":3503,"value":"仙游县","ext_id":"350322000000","label":"仙游县"}]},{"id":"3504","pid":35,"value":"三明市","ext_id":"350400000000","label":"三明市","children":[{"id":"350404","pid":3504,"value":"三元区","ext_id":"350404000000","label":"三元区"},{"id":"350405","pid":3504,"value":"沙县区","ext_id":"350405000000","label":"沙县区"},{"id":"350421","pid":3504,"value":"明溪县","ext_id":"350421000000","label":"明溪县"},{"id":"350423","pid":3504,"value":"清流县","ext_id":"350423000000","label":"清流县"},{"id":"350424","pid":3504,"value":"宁化县","ext_id":"350424000000","label":"宁化县"},{"id":"350425","pid":3504,"value":"大田县","ext_id":"350425000000","label":"大田县"},{"id":"350426","pid":3504,"value":"尤溪县","ext_id":"350426000000","label":"尤溪县"},{"id":"350428","pid":3504,"value":"将乐县","ext_id":"350428000000","label":"将乐县"},{"id":"350429","pid":3504,"value":"泰宁县","ext_id":"350429000000","label":"泰宁县"},{"id":"350430","pid":3504,"value":"建宁县","ext_id":"350430000000","label":"建宁县"},{"id":"350481","pid":3504,"value":"永安市","ext_id":"350481000000","label":"永安市"}]},{"id":"3505","pid":35,"value":"泉州市","ext_id":"350500000000","label":"泉州市","children":[{"id":"350502","pid":3505,"value":"鲤城区","ext_id":"350502000000","label":"鲤城区"},{"id":"350503","pid":3505,"value":"丰泽区","ext_id":"350503000000","label":"丰泽区"},{"id":"350504","pid":3505,"value":"洛江区","ext_id":"350504000000","label":"洛江区"},{"id":"350505","pid":3505,"value":"泉港区","ext_id":"350505000000","label":"泉港区"},{"id":"350521","pid":3505,"value":"惠安县","ext_id":"350521000000","label":"惠安县"},{"id":"350524","pid":3505,"value":"安溪县","ext_id":"350524000000","label":"安溪县"},{"id":"350525","pid":3505,"value":"永春县","ext_id":"350525000000","label":"永春县"},{"id":"350526","pid":3505,"value":"德化县","ext_id":"350526000000","label":"德化县"},{"id":"350527","pid":3505,"value":"金门县","ext_id":"350527000000","label":"金门县"},{"id":"350581","pid":3505,"value":"石狮市","ext_id":"350581000000","label":"石狮市"},{"id":"350582","pid":3505,"value":"晋江市","ext_id":"350582000000","label":"晋江市"},{"id":"350583","pid":3505,"value":"南安市","ext_id":"350583000000","label":"南安市"}]},{"id":"3506","pid":35,"value":"漳州市","ext_id":"350600000000","label":"漳州市","children":[{"id":"350602","pid":3506,"value":"芗城区","ext_id":"350602000000","label":"芗城区"},{"id":"350603","pid":3506,"value":"龙文区","ext_id":"350603000000","label":"龙文区"},{"id":"350604","pid":3506,"value":"龙海区","ext_id":"350604000000","label":"龙海区"},{"id":"350605","pid":3506,"value":"长泰区","ext_id":"350605000000","label":"长泰区"},{"id":"350622","pid":3506,"value":"云霄县","ext_id":"350622000000","label":"云霄县"},{"id":"350623","pid":3506,"value":"漳浦县","ext_id":"350623000000","label":"漳浦县"},{"id":"350624","pid":3506,"value":"诏安县","ext_id":"350624000000","label":"诏安县"},{"id":"350626","pid":3506,"value":"东山县","ext_id":"350626000000","label":"东山县"},{"id":"350627","pid":3506,"value":"南靖县","ext_id":"350627000000","label":"南靖县"},{"id":"350628","pid":3506,"value":"平和县","ext_id":"350628000000","label":"平和县"},{"id":"350629","pid":3506,"value":"华安县","ext_id":"350629000000","label":"华安县"}]},{"id":"3507","pid":35,"value":"南平市","ext_id":"350700000000","label":"南平市","children":[{"id":"350702","pid":3507,"value":"延平区","ext_id":"350702000000","label":"延平区"},{"id":"350703","pid":3507,"value":"建阳区","ext_id":"350703000000","label":"建阳区"},{"id":"350721","pid":3507,"value":"顺昌县","ext_id":"350721000000","label":"顺昌县"},{"id":"350722","pid":3507,"value":"浦城县","ext_id":"350722000000","label":"浦城县"},{"id":"350723","pid":3507,"value":"光泽县","ext_id":"350723000000","label":"光泽县"},{"id":"350724","pid":3507,"value":"松溪县","ext_id":"350724000000","label":"松溪县"},{"id":"350725","pid":3507,"value":"政和县","ext_id":"350725000000","label":"政和县"},{"id":"350781","pid":3507,"value":"邵武市","ext_id":"350781000000","label":"邵武市"},{"id":"350782","pid":3507,"value":"武夷山市","ext_id":"350782000000","label":"武夷山市"},{"id":"350783","pid":3507,"value":"建瓯市","ext_id":"350783000000","label":"建瓯市"}]},{"id":"3508","pid":35,"value":"龙岩市","ext_id":"350800000000","label":"龙岩市","children":[{"id":"350802","pid":3508,"value":"新罗区","ext_id":"350802000000","label":"新罗区"},{"id":"350803","pid":3508,"value":"永定区","ext_id":"350803000000","label":"永定区"},{"id":"350821","pid":3508,"value":"长汀县","ext_id":"350821000000","label":"长汀县"},{"id":"350823","pid":3508,"value":"上杭县","ext_id":"350823000000","label":"上杭县"},{"id":"350824","pid":3508,"value":"武平县","ext_id":"350824000000","label":"武平县"},{"id":"350825","pid":3508,"value":"连城县","ext_id":"350825000000","label":"连城县"},{"id":"350881","pid":3508,"value":"漳平市","ext_id":"350881000000","label":"漳平市"}]},{"id":"3509","pid":35,"value":"宁德市","ext_id":"350900000000","label":"宁德市","children":[{"id":"350902","pid":3509,"value":"蕉城区","ext_id":"350902000000","label":"蕉城区"},{"id":"350921","pid":3509,"value":"霞浦县","ext_id":"350921000000","label":"霞浦县"},{"id":"350922","pid":3509,"value":"古田县","ext_id":"350922000000","label":"古田县"},{"id":"350923","pid":3509,"value":"屏南县","ext_id":"350923000000","label":"屏南县"},{"id":"350924","pid":3509,"value":"寿宁县","ext_id":"350924000000","label":"寿宁县"},{"id":"350925","pid":3509,"value":"周宁县","ext_id":"350925000000","label":"周宁县"},{"id":"350926","pid":3509,"value":"柘荣县","ext_id":"350926000000","label":"柘荣县"},{"id":"350981","pid":3509,"value":"福安市","ext_id":"350981000000","label":"福安市"},{"id":"350982","pid":3509,"value":"福鼎市","ext_id":"350982000000","label":"福鼎市"}]}]},{"id":"36","pid":0,"value":"江西省","ext_id":"360000000000","label":"江西省","children":[{"id":"3601","pid":36,"value":"南昌市","ext_id":"360100000000","label":"南昌市","children":[{"id":"360102","pid":3601,"value":"东湖区","ext_id":"360102000000","label":"东湖区"},{"id":"360103","pid":3601,"value":"西湖区","ext_id":"360103000000","label":"西湖区"},{"id":"360104","pid":3601,"value":"青云谱区","ext_id":"360104000000","label":"青云谱区"},{"id":"360111","pid":3601,"value":"青山湖区","ext_id":"360111000000","label":"青山湖区"},{"id":"360112","pid":3601,"value":"新建区","ext_id":"360112000000","label":"新建区"},{"id":"360113","pid":3601,"value":"红谷滩区","ext_id":"360113000000","label":"红谷滩区"},{"id":"360121","pid":3601,"value":"南昌县","ext_id":"360121000000","label":"南昌县"},{"id":"360123","pid":3601,"value":"安义县","ext_id":"360123000000","label":"安义县"},{"id":"360124","pid":3601,"value":"进贤县","ext_id":"360124000000","label":"进贤县"}]},{"id":"3602","pid":36,"value":"景德镇市","ext_id":"360200000000","label":"景德镇市","children":[{"id":"360202","pid":3602,"value":"昌江区","ext_id":"360202000000","label":"昌江区"},{"id":"360203","pid":3602,"value":"珠山区","ext_id":"360203000000","label":"珠山区"},{"id":"360222","pid":3602,"value":"浮梁县","ext_id":"360222000000","label":"浮梁县"},{"id":"360281","pid":3602,"value":"乐平市","ext_id":"360281000000","label":"乐平市"}]},{"id":"3603","pid":36,"value":"萍乡市","ext_id":"360300000000","label":"萍乡市","children":[{"id":"360302","pid":3603,"value":"安源区","ext_id":"360302000000","label":"安源区"},{"id":"360313","pid":3603,"value":"湘东区","ext_id":"360313000000","label":"湘东区"},{"id":"360321","pid":3603,"value":"莲花县","ext_id":"360321000000","label":"莲花县"},{"id":"360322","pid":3603,"value":"上栗县","ext_id":"360322000000","label":"上栗县"},{"id":"360323","pid":3603,"value":"芦溪县","ext_id":"360323000000","label":"芦溪县"}]},{"id":"3604","pid":36,"value":"九江市","ext_id":"360400000000","label":"九江市","children":[{"id":"360402","pid":3604,"value":"濂溪区","ext_id":"360402000000","label":"濂溪区"},{"id":"360403","pid":3604,"value":"浔阳区","ext_id":"360403000000","label":"浔阳区"},{"id":"360404","pid":3604,"value":"柴桑区","ext_id":"360404000000","label":"柴桑区"},{"id":"360423","pid":3604,"value":"武宁县","ext_id":"360423000000","label":"武宁县"},{"id":"360424","pid":3604,"value":"修水县","ext_id":"360424000000","label":"修水县"},{"id":"360425","pid":3604,"value":"永修县","ext_id":"360425000000","label":"永修县"},{"id":"360426","pid":3604,"value":"德安县","ext_id":"360426000000","label":"德安县"},{"id":"360428","pid":3604,"value":"都昌县","ext_id":"360428000000","label":"都昌县"},{"id":"360429","pid":3604,"value":"湖口县","ext_id":"360429000000","label":"湖口县"},{"id":"360430","pid":3604,"value":"彭泽县","ext_id":"360430000000","label":"彭泽县"},{"id":"360481","pid":3604,"value":"瑞昌市","ext_id":"360481000000","label":"瑞昌市"},{"id":"360482","pid":3604,"value":"共青城市","ext_id":"360482000000","label":"共青城市"},{"id":"360483","pid":3604,"value":"庐山市","ext_id":"360483000000","label":"庐山市"}]},{"id":"3605","pid":36,"value":"新余市","ext_id":"360500000000","label":"新余市","children":[{"id":"360502","pid":3605,"value":"渝水区","ext_id":"360502000000","label":"渝水区"},{"id":"360521","pid":3605,"value":"分宜县","ext_id":"360521000000","label":"分宜县"}]},{"id":"3606","pid":36,"value":"鹰潭市","ext_id":"360600000000","label":"鹰潭市","children":[{"id":"360602","pid":3606,"value":"月湖区","ext_id":"360602000000","label":"月湖区"},{"id":"360603","pid":3606,"value":"余江区","ext_id":"360603000000","label":"余江区"},{"id":"360681","pid":3606,"value":"贵溪市","ext_id":"360681000000","label":"贵溪市"}]},{"id":"3607","pid":36,"value":"赣州市","ext_id":"360700000000","label":"赣州市","children":[{"id":"360702","pid":3607,"value":"章贡区","ext_id":"360702000000","label":"章贡区"},{"id":"360703","pid":3607,"value":"南康区","ext_id":"360703000000","label":"南康区"},{"id":"360704","pid":3607,"value":"赣县区","ext_id":"360704000000","label":"赣县区"},{"id":"360722","pid":3607,"value":"信丰县","ext_id":"360722000000","label":"信丰县"},{"id":"360723","pid":3607,"value":"大余县","ext_id":"360723000000","label":"大余县"},{"id":"360724","pid":3607,"value":"上犹县","ext_id":"360724000000","label":"上犹县"},{"id":"360725","pid":3607,"value":"崇义县","ext_id":"360725000000","label":"崇义县"},{"id":"360726","pid":3607,"value":"安远县","ext_id":"360726000000","label":"安远县"},{"id":"360728","pid":3607,"value":"定南县","ext_id":"360728000000","label":"定南县"},{"id":"360729","pid":3607,"value":"全南县","ext_id":"360729000000","label":"全南县"},{"id":"360730","pid":3607,"value":"宁都县","ext_id":"360730000000","label":"宁都县"},{"id":"360731","pid":3607,"value":"于都县","ext_id":"360731000000","label":"于都县"},{"id":"360732","pid":3607,"value":"兴国县","ext_id":"360732000000","label":"兴国县"},{"id":"360733","pid":3607,"value":"会昌县","ext_id":"360733000000","label":"会昌县"},{"id":"360734","pid":3607,"value":"寻乌县","ext_id":"360734000000","label":"寻乌县"},{"id":"360735","pid":3607,"value":"石城县","ext_id":"360735000000","label":"石城县"},{"id":"360781","pid":3607,"value":"瑞金市","ext_id":"360781000000","label":"瑞金市"},{"id":"360783","pid":3607,"value":"龙南市","ext_id":"360783000000","label":"龙南市"}]},{"id":"3608","pid":36,"value":"吉安市","ext_id":"360800000000","label":"吉安市","children":[{"id":"360802","pid":3608,"value":"吉州区","ext_id":"360802000000","label":"吉州区"},{"id":"360803","pid":3608,"value":"青原区","ext_id":"360803000000","label":"青原区"},{"id":"360821","pid":3608,"value":"吉安县","ext_id":"360821000000","label":"吉安县"},{"id":"360822","pid":3608,"value":"吉水县","ext_id":"360822000000","label":"吉水县"},{"id":"360823","pid":3608,"value":"峡江县","ext_id":"360823000000","label":"峡江县"},{"id":"360824","pid":3608,"value":"新干县","ext_id":"360824000000","label":"新干县"},{"id":"360825","pid":3608,"value":"永丰县","ext_id":"360825000000","label":"永丰县"},{"id":"360826","pid":3608,"value":"泰和县","ext_id":"360826000000","label":"泰和县"},{"id":"360827","pid":3608,"value":"遂川县","ext_id":"360827000000","label":"遂川县"},{"id":"360828","pid":3608,"value":"万安县","ext_id":"360828000000","label":"万安县"},{"id":"360829","pid":3608,"value":"安福县","ext_id":"360829000000","label":"安福县"},{"id":"360830","pid":3608,"value":"永新县","ext_id":"360830000000","label":"永新县"},{"id":"360881","pid":3608,"value":"井冈山市","ext_id":"360881000000","label":"井冈山市"}]},{"id":"3609","pid":36,"value":"宜春市","ext_id":"360900000000","label":"宜春市","children":[{"id":"360902","pid":3609,"value":"袁州区","ext_id":"360902000000","label":"袁州区"},{"id":"360921","pid":3609,"value":"奉新县","ext_id":"360921000000","label":"奉新县"},{"id":"360922","pid":3609,"value":"万载县","ext_id":"360922000000","label":"万载县"},{"id":"360923","pid":3609,"value":"上高县","ext_id":"360923000000","label":"上高县"},{"id":"360924","pid":3609,"value":"宜丰县","ext_id":"360924000000","label":"宜丰县"},{"id":"360925","pid":3609,"value":"靖安县","ext_id":"360925000000","label":"靖安县"},{"id":"360926","pid":3609,"value":"铜鼓县","ext_id":"360926000000","label":"铜鼓县"},{"id":"360981","pid":3609,"value":"丰城市","ext_id":"360981000000","label":"丰城市"},{"id":"360982","pid":3609,"value":"樟树市","ext_id":"360982000000","label":"樟树市"},{"id":"360983","pid":3609,"value":"高安市","ext_id":"360983000000","label":"高安市"}]},{"id":"3610","pid":36,"value":"抚州市","ext_id":"361000000000","label":"抚州市","children":[{"id":"361002","pid":3610,"value":"临川区","ext_id":"361002000000","label":"临川区"},{"id":"361003","pid":3610,"value":"东乡区","ext_id":"361003000000","label":"东乡区"},{"id":"361021","pid":3610,"value":"南城县","ext_id":"361021000000","label":"南城县"},{"id":"361022","pid":3610,"value":"黎川县","ext_id":"361022000000","label":"黎川县"},{"id":"361023","pid":3610,"value":"南丰县","ext_id":"361023000000","label":"南丰县"},{"id":"361024","pid":3610,"value":"崇仁县","ext_id":"361024000000","label":"崇仁县"},{"id":"361025","pid":3610,"value":"乐安县","ext_id":"361025000000","label":"乐安县"},{"id":"361026","pid":3610,"value":"宜黄县","ext_id":"361026000000","label":"宜黄县"},{"id":"361027","pid":3610,"value":"金溪县","ext_id":"361027000000","label":"金溪县"},{"id":"361028","pid":3610,"value":"资溪县","ext_id":"361028000000","label":"资溪县"},{"id":"361030","pid":3610,"value":"广昌县","ext_id":"361030000000","label":"广昌县"}]},{"id":"3611","pid":36,"value":"上饶市","ext_id":"361100000000","label":"上饶市","children":[{"id":"361102","pid":3611,"value":"信州区","ext_id":"361102000000","label":"信州区"},{"id":"361103","pid":3611,"value":"广丰区","ext_id":"361103000000","label":"广丰区"},{"id":"361104","pid":3611,"value":"广信区","ext_id":"361104000000","label":"广信区"},{"id":"361123","pid":3611,"value":"玉山县","ext_id":"361123000000","label":"玉山县"},{"id":"361124","pid":3611,"value":"铅山县","ext_id":"361124000000","label":"铅山县"},{"id":"361125","pid":3611,"value":"横峰县","ext_id":"361125000000","label":"横峰县"},{"id":"361126","pid":3611,"value":"弋阳县","ext_id":"361126000000","label":"弋阳县"},{"id":"361127","pid":3611,"value":"余干县","ext_id":"361127000000","label":"余干县"},{"id":"361128","pid":3611,"value":"鄱阳县","ext_id":"361128000000","label":"鄱阳县"},{"id":"361129","pid":3611,"value":"万年县","ext_id":"361129000000","label":"万年县"},{"id":"361130","pid":3611,"value":"婺源县","ext_id":"361130000000","label":"婺源县"},{"id":"361181","pid":3611,"value":"德兴市","ext_id":"361181000000","label":"德兴市"}]}]},{"id":"37","pid":0,"value":"山东省","ext_id":"370000000000","label":"山东省","children":[{"id":"3701","pid":37,"value":"济南市","ext_id":"370100000000","label":"济南市","children":[{"id":"370102","pid":3701,"value":"历下区","ext_id":"370102000000","label":"历下区"},{"id":"370103","pid":3701,"value":"市中区","ext_id":"370103000000","label":"市中区"},{"id":"370104","pid":3701,"value":"槐荫区","ext_id":"370104000000","label":"槐荫区"},{"id":"370105","pid":3701,"value":"天桥区","ext_id":"370105000000","label":"天桥区"},{"id":"370112","pid":3701,"value":"历城区","ext_id":"370112000000","label":"历城区"},{"id":"370113","pid":3701,"value":"长清区","ext_id":"370113000000","label":"长清区"},{"id":"370114","pid":3701,"value":"章丘区","ext_id":"370114000000","label":"章丘区"},{"id":"370115","pid":3701,"value":"济阳区","ext_id":"370115000000","label":"济阳区"},{"id":"370116","pid":3701,"value":"莱芜区","ext_id":"370116000000","label":"莱芜区"},{"id":"370117","pid":3701,"value":"钢城区","ext_id":"370117000000","label":"钢城区"},{"id":"370124","pid":3701,"value":"平阴县","ext_id":"370124000000","label":"平阴县"},{"id":"370126","pid":3701,"value":"商河县","ext_id":"370126000000","label":"商河县"}]},{"id":"3702","pid":37,"value":"青岛市","ext_id":"370200000000","label":"青岛市","children":[{"id":"370202","pid":3702,"value":"市南区","ext_id":"370202000000","label":"市南区"},{"id":"370203","pid":3702,"value":"市北区","ext_id":"370203000000","label":"市北区"},{"id":"370211","pid":3702,"value":"黄岛区","ext_id":"370211000000","label":"黄岛区"},{"id":"370212","pid":3702,"value":"崂山区","ext_id":"370212000000","label":"崂山区"},{"id":"370213","pid":3702,"value":"李沧区","ext_id":"370213000000","label":"李沧区"},{"id":"370214","pid":3702,"value":"城阳区","ext_id":"370214000000","label":"城阳区"},{"id":"370215","pid":3702,"value":"即墨区","ext_id":"370215000000","label":"即墨区"},{"id":"370281","pid":3702,"value":"胶州市","ext_id":"370281000000","label":"胶州市"},{"id":"370283","pid":3702,"value":"平度市","ext_id":"370283000000","label":"平度市"},{"id":"370285","pid":3702,"value":"莱西市","ext_id":"370285000000","label":"莱西市"}]},{"id":"3703","pid":37,"value":"淄博市","ext_id":"370300000000","label":"淄博市","children":[{"id":"370302","pid":3703,"value":"淄川区","ext_id":"370302000000","label":"淄川区"},{"id":"370303","pid":3703,"value":"张店区","ext_id":"370303000000","label":"张店区"},{"id":"370304","pid":3703,"value":"博山区","ext_id":"370304000000","label":"博山区"},{"id":"370305","pid":3703,"value":"临淄区","ext_id":"370305000000","label":"临淄区"},{"id":"370306","pid":3703,"value":"周村区","ext_id":"370306000000","label":"周村区"},{"id":"370321","pid":3703,"value":"桓台县","ext_id":"370321000000","label":"桓台县"},{"id":"370322","pid":3703,"value":"高青县","ext_id":"370322000000","label":"高青县"},{"id":"370323","pid":3703,"value":"沂源县","ext_id":"370323000000","label":"沂源县"}]},{"id":"3704","pid":37,"value":"枣庄市","ext_id":"370400000000","label":"枣庄市","children":[{"id":"370402","pid":3704,"value":"市中区","ext_id":"370402000000","label":"市中区"},{"id":"370403","pid":3704,"value":"薛城区","ext_id":"370403000000","label":"薛城区"},{"id":"370404","pid":3704,"value":"峄城区","ext_id":"370404000000","label":"峄城区"},{"id":"370405","pid":3704,"value":"台儿庄区","ext_id":"370405000000","label":"台儿庄区"},{"id":"370406","pid":3704,"value":"山亭区","ext_id":"370406000000","label":"山亭区"},{"id":"370481","pid":3704,"value":"滕州市","ext_id":"370481000000","label":"滕州市"}]},{"id":"3705","pid":37,"value":"东营市","ext_id":"370500000000","label":"东营市","children":[{"id":"370502","pid":3705,"value":"东营区","ext_id":"370502000000","label":"东营区"},{"id":"370503","pid":3705,"value":"河口区","ext_id":"370503000000","label":"河口区"},{"id":"370505","pid":3705,"value":"垦利区","ext_id":"370505000000","label":"垦利区"},{"id":"370522","pid":3705,"value":"利津县","ext_id":"370522000000","label":"利津县"},{"id":"370523","pid":3705,"value":"广饶县","ext_id":"370523000000","label":"广饶县"}]},{"id":"3706","pid":37,"value":"烟台市","ext_id":"370600000000","label":"烟台市","children":[{"id":"370602","pid":3706,"value":"芝罘区","ext_id":"370602000000","label":"芝罘区"},{"id":"370611","pid":3706,"value":"福山区","ext_id":"370611000000","label":"福山区"},{"id":"370612","pid":3706,"value":"牟平区","ext_id":"370612000000","label":"牟平区"},{"id":"370613","pid":3706,"value":"莱山区","ext_id":"370613000000","label":"莱山区"},{"id":"370614","pid":3706,"value":"蓬莱区","ext_id":"370614000000","label":"蓬莱区"},{"id":"370681","pid":3706,"value":"龙口市","ext_id":"370681000000","label":"龙口市"},{"id":"370682","pid":3706,"value":"莱阳市","ext_id":"370682000000","label":"莱阳市"},{"id":"370683","pid":3706,"value":"莱州市","ext_id":"370683000000","label":"莱州市"},{"id":"370685","pid":3706,"value":"招远市","ext_id":"370685000000","label":"招远市"},{"id":"370686","pid":3706,"value":"栖霞市","ext_id":"370686000000","label":"栖霞市"},{"id":"370687","pid":3706,"value":"海阳市","ext_id":"370687000000","label":"海阳市"}]},{"id":"3707","pid":37,"value":"潍坊市","ext_id":"370700000000","label":"潍坊市","children":[{"id":"370702","pid":3707,"value":"潍城区","ext_id":"370702000000","label":"潍城区"},{"id":"370703","pid":3707,"value":"寒亭区","ext_id":"370703000000","label":"寒亭区"},{"id":"370704","pid":3707,"value":"坊子区","ext_id":"370704000000","label":"坊子区"},{"id":"370705","pid":3707,"value":"奎文区","ext_id":"370705000000","label":"奎文区"},{"id":"370724","pid":3707,"value":"临朐县","ext_id":"370724000000","label":"临朐县"},{"id":"370725","pid":3707,"value":"昌乐县","ext_id":"370725000000","label":"昌乐县"},{"id":"370781","pid":3707,"value":"青州市","ext_id":"370781000000","label":"青州市"},{"id":"370782","pid":3707,"value":"诸城市","ext_id":"370782000000","label":"诸城市"},{"id":"370783","pid":3707,"value":"寿光市","ext_id":"370783000000","label":"寿光市"},{"id":"370784","pid":3707,"value":"安丘市","ext_id":"370784000000","label":"安丘市"},{"id":"370785","pid":3707,"value":"高密市","ext_id":"370785000000","label":"高密市"},{"id":"370786","pid":3707,"value":"昌邑市","ext_id":"370786000000","label":"昌邑市"}]},{"id":"3708","pid":37,"value":"济宁市","ext_id":"370800000000","label":"济宁市","children":[{"id":"370811","pid":3708,"value":"任城区","ext_id":"370811000000","label":"任城区"},{"id":"370812","pid":3708,"value":"兖州区","ext_id":"370812000000","label":"兖州区"},{"id":"370826","pid":3708,"value":"微山县","ext_id":"370826000000","label":"微山县"},{"id":"370827","pid":3708,"value":"鱼台县","ext_id":"370827000000","label":"鱼台县"},{"id":"370828","pid":3708,"value":"金乡县","ext_id":"370828000000","label":"金乡县"},{"id":"370829","pid":3708,"value":"嘉祥县","ext_id":"370829000000","label":"嘉祥县"},{"id":"370830","pid":3708,"value":"汶上县","ext_id":"370830000000","label":"汶上县"},{"id":"370831","pid":3708,"value":"泗水县","ext_id":"370831000000","label":"泗水县"},{"id":"370832","pid":3708,"value":"梁山县","ext_id":"370832000000","label":"梁山县"},{"id":"370881","pid":3708,"value":"曲阜市","ext_id":"370881000000","label":"曲阜市"},{"id":"370883","pid":3708,"value":"邹城市","ext_id":"370883000000","label":"邹城市"}]},{"id":"3709","pid":37,"value":"泰安市","ext_id":"370900000000","label":"泰安市","children":[{"id":"370902","pid":3709,"value":"泰山区","ext_id":"370902000000","label":"泰山区"},{"id":"370911","pid":3709,"value":"岱岳区","ext_id":"370911000000","label":"岱岳区"},{"id":"370921","pid":3709,"value":"宁阳县","ext_id":"370921000000","label":"宁阳县"},{"id":"370923","pid":3709,"value":"东平县","ext_id":"370923000000","label":"东平县"},{"id":"370982","pid":3709,"value":"新泰市","ext_id":"370982000000","label":"新泰市"},{"id":"370983","pid":3709,"value":"肥城市","ext_id":"370983000000","label":"肥城市"}]},{"id":"3710","pid":37,"value":"威海市","ext_id":"371000000000","label":"威海市","children":[{"id":"371002","pid":3710,"value":"环翠区","ext_id":"371002000000","label":"环翠区"},{"id":"371003","pid":3710,"value":"文登区","ext_id":"371003000000","label":"文登区"},{"id":"371082","pid":3710,"value":"荣成市","ext_id":"371082000000","label":"荣成市"},{"id":"371083","pid":3710,"value":"乳山市","ext_id":"371083000000","label":"乳山市"}]},{"id":"3711","pid":37,"value":"日照市","ext_id":"371100000000","label":"日照市","children":[{"id":"371102","pid":3711,"value":"东港区","ext_id":"371102000000","label":"东港区"},{"id":"371103","pid":3711,"value":"岚山区","ext_id":"371103000000","label":"岚山区"},{"id":"371121","pid":3711,"value":"五莲县","ext_id":"371121000000","label":"五莲县"},{"id":"371122","pid":3711,"value":"莒县","ext_id":"371122000000","label":"莒县"}]},{"id":"3713","pid":37,"value":"临沂市","ext_id":"371300000000","label":"临沂市","children":[{"id":"371302","pid":3713,"value":"兰山区","ext_id":"371302000000","label":"兰山区"},{"id":"371311","pid":3713,"value":"罗庄区","ext_id":"371311000000","label":"罗庄区"},{"id":"371312","pid":3713,"value":"河东区","ext_id":"371312000000","label":"河东区"},{"id":"371321","pid":3713,"value":"沂南县","ext_id":"371321000000","label":"沂南县"},{"id":"371322","pid":3713,"value":"郯城县","ext_id":"371322000000","label":"郯城县"},{"id":"371323","pid":3713,"value":"沂水县","ext_id":"371323000000","label":"沂水县"},{"id":"371324","pid":3713,"value":"兰陵县","ext_id":"371324000000","label":"兰陵县"},{"id":"371325","pid":3713,"value":"费县","ext_id":"371325000000","label":"费县"},{"id":"371326","pid":3713,"value":"平邑县","ext_id":"371326000000","label":"平邑县"},{"id":"371327","pid":3713,"value":"莒南县","ext_id":"371327000000","label":"莒南县"},{"id":"371328","pid":3713,"value":"蒙阴县","ext_id":"371328000000","label":"蒙阴县"},{"id":"371329","pid":3713,"value":"临沭县","ext_id":"371329000000","label":"临沭县"}]},{"id":"3714","pid":37,"value":"德州市","ext_id":"371400000000","label":"德州市","children":[{"id":"371402","pid":3714,"value":"德城区","ext_id":"371402000000","label":"德城区"},{"id":"371403","pid":3714,"value":"陵城区","ext_id":"371403000000","label":"陵城区"},{"id":"371422","pid":3714,"value":"宁津县","ext_id":"371422000000","label":"宁津县"},{"id":"371423","pid":3714,"value":"庆云县","ext_id":"371423000000","label":"庆云县"},{"id":"371424","pid":3714,"value":"临邑县","ext_id":"371424000000","label":"临邑县"},{"id":"371425","pid":3714,"value":"齐河县","ext_id":"371425000000","label":"齐河县"},{"id":"371426","pid":3714,"value":"平原县","ext_id":"371426000000","label":"平原县"},{"id":"371427","pid":3714,"value":"夏津县","ext_id":"371427000000","label":"夏津县"},{"id":"371428","pid":3714,"value":"武城县","ext_id":"371428000000","label":"武城县"},{"id":"371481","pid":3714,"value":"乐陵市","ext_id":"371481000000","label":"乐陵市"},{"id":"371482","pid":3714,"value":"禹城市","ext_id":"371482000000","label":"禹城市"}]},{"id":"3715","pid":37,"value":"聊城市","ext_id":"371500000000","label":"聊城市","children":[{"id":"371502","pid":3715,"value":"东昌府区","ext_id":"371502000000","label":"东昌府区"},{"id":"371503","pid":3715,"value":"茌平区","ext_id":"371503000000","label":"茌平区"},{"id":"371521","pid":3715,"value":"阳谷县","ext_id":"371521000000","label":"阳谷县"},{"id":"371522","pid":3715,"value":"莘县","ext_id":"371522000000","label":"莘县"},{"id":"371524","pid":3715,"value":"东阿县","ext_id":"371524000000","label":"东阿县"},{"id":"371525","pid":3715,"value":"冠县","ext_id":"371525000000","label":"冠县"},{"id":"371526","pid":3715,"value":"高唐县","ext_id":"371526000000","label":"高唐县"},{"id":"371581","pid":3715,"value":"临清市","ext_id":"371581000000","label":"临清市"}]},{"id":"3716","pid":37,"value":"滨州市","ext_id":"371600000000","label":"滨州市","children":[{"id":"371602","pid":3716,"value":"滨城区","ext_id":"371602000000","label":"滨城区"},{"id":"371603","pid":3716,"value":"沾化区","ext_id":"371603000000","label":"沾化区"},{"id":"371621","pid":3716,"value":"惠民县","ext_id":"371621000000","label":"惠民县"},{"id":"371622","pid":3716,"value":"阳信县","ext_id":"371622000000","label":"阳信县"},{"id":"371623","pid":3716,"value":"无棣县","ext_id":"371623000000","label":"无棣县"},{"id":"371625","pid":3716,"value":"博兴县","ext_id":"371625000000","label":"博兴县"},{"id":"371681","pid":3716,"value":"邹平市","ext_id":"371681000000","label":"邹平市"}]},{"id":"3717","pid":37,"value":"菏泽市","ext_id":"371700000000","label":"菏泽市","children":[{"id":"371702","pid":3717,"value":"牡丹区","ext_id":"371702000000","label":"牡丹区"},{"id":"371703","pid":3717,"value":"定陶区","ext_id":"371703000000","label":"定陶区"},{"id":"371721","pid":3717,"value":"曹县","ext_id":"371721000000","label":"曹县"},{"id":"371722","pid":3717,"value":"单县","ext_id":"371722000000","label":"单县"},{"id":"371723","pid":3717,"value":"成武县","ext_id":"371723000000","label":"成武县"},{"id":"371724","pid":3717,"value":"巨野县","ext_id":"371724000000","label":"巨野县"},{"id":"371725","pid":3717,"value":"郓城县","ext_id":"371725000000","label":"郓城县"},{"id":"371726","pid":3717,"value":"鄄城县","ext_id":"371726000000","label":"鄄城县"},{"id":"371728","pid":3717,"value":"东明县","ext_id":"371728000000","label":"东明县"}]}]},{"id":"41","pid":0,"value":"河南省","ext_id":"410000000000","label":"河南省","children":[{"id":"4101","pid":41,"value":"郑州市","ext_id":"410100000000","label":"郑州市","children":[{"id":"410102","pid":4101,"value":"中原区","ext_id":"410102000000","label":"中原区"},{"id":"410103","pid":4101,"value":"二七区","ext_id":"410103000000","label":"二七区"},{"id":"410104","pid":4101,"value":"管城回族区","ext_id":"410104000000","label":"管城回族区"},{"id":"410105","pid":4101,"value":"金水区","ext_id":"410105000000","label":"金水区"},{"id":"410106","pid":4101,"value":"上街区","ext_id":"410106000000","label":"上街区"},{"id":"410108","pid":4101,"value":"惠济区","ext_id":"410108000000","label":"惠济区"},{"id":"410122","pid":4101,"value":"中牟县","ext_id":"410122000000","label":"中牟县"},{"id":"410181","pid":4101,"value":"巩义市","ext_id":"410181000000","label":"巩义市"},{"id":"410182","pid":4101,"value":"荥阳市","ext_id":"410182000000","label":"荥阳市"},{"id":"410183","pid":4101,"value":"新密市","ext_id":"410183000000","label":"新密市"},{"id":"410184","pid":4101,"value":"新郑市","ext_id":"410184000000","label":"新郑市"},{"id":"410185","pid":4101,"value":"登封市","ext_id":"410185000000","label":"登封市"}]},{"id":"4102","pid":41,"value":"开封市","ext_id":"410200000000","label":"开封市","children":[{"id":"410202","pid":4102,"value":"龙亭区","ext_id":"410202000000","label":"龙亭区"},{"id":"410203","pid":4102,"value":"顺河回族区","ext_id":"410203000000","label":"顺河回族区"},{"id":"410204","pid":4102,"value":"鼓楼区","ext_id":"410204000000","label":"鼓楼区"},{"id":"410205","pid":4102,"value":"禹王台区","ext_id":"410205000000","label":"禹王台区"},{"id":"410212","pid":4102,"value":"祥符区","ext_id":"410212000000","label":"祥符区"},{"id":"410221","pid":4102,"value":"杞县","ext_id":"410221000000","label":"杞县"},{"id":"410222","pid":4102,"value":"通许县","ext_id":"410222000000","label":"通许县"},{"id":"410223","pid":4102,"value":"尉氏县","ext_id":"410223000000","label":"尉氏县"},{"id":"410225","pid":4102,"value":"兰考县","ext_id":"410225000000","label":"兰考县"}]},{"id":"4103","pid":41,"value":"洛阳市","ext_id":"410300000000","label":"洛阳市","children":[{"id":"410302","pid":4103,"value":"老城区","ext_id":"410302000000","label":"老城区"},{"id":"410303","pid":4103,"value":"西工区","ext_id":"410303000000","label":"西工区"},{"id":"410304","pid":4103,"value":"瀍河回族区","ext_id":"410304000000","label":"瀍河回族区"},{"id":"410305","pid":4103,"value":"涧西区","ext_id":"410305000000","label":"涧西区"},{"id":"410307","pid":4103,"value":"偃师区","ext_id":"410307000000","label":"偃师区"},{"id":"410308","pid":4103,"value":"孟津区","ext_id":"410308000000","label":"孟津区"},{"id":"410311","pid":4103,"value":"洛龙区","ext_id":"410311000000","label":"洛龙区"},{"id":"410323","pid":4103,"value":"新安县","ext_id":"410323000000","label":"新安县"},{"id":"410324","pid":4103,"value":"栾川县","ext_id":"410324000000","label":"栾川县"},{"id":"410325","pid":4103,"value":"嵩县","ext_id":"410325000000","label":"嵩县"},{"id":"410326","pid":4103,"value":"汝阳县","ext_id":"410326000000","label":"汝阳县"},{"id":"410327","pid":4103,"value":"宜阳县","ext_id":"410327000000","label":"宜阳县"},{"id":"410328","pid":4103,"value":"洛宁县","ext_id":"410328000000","label":"洛宁县"},{"id":"410329","pid":4103,"value":"伊川县","ext_id":"410329000000","label":"伊川县"}]},{"id":"4104","pid":41,"value":"平顶山市","ext_id":"410400000000","label":"平顶山市","children":[{"id":"410402","pid":4104,"value":"新华区","ext_id":"410402000000","label":"新华区"},{"id":"410403","pid":4104,"value":"卫东区","ext_id":"410403000000","label":"卫东区"},{"id":"410404","pid":4104,"value":"石龙区","ext_id":"410404000000","label":"石龙区"},{"id":"410411","pid":4104,"value":"湛河区","ext_id":"410411000000","label":"湛河区"},{"id":"410421","pid":4104,"value":"宝丰县","ext_id":"410421000000","label":"宝丰县"},{"id":"410422","pid":4104,"value":"叶县","ext_id":"410422000000","label":"叶县"},{"id":"410423","pid":4104,"value":"鲁山县","ext_id":"410423000000","label":"鲁山县"},{"id":"410425","pid":4104,"value":"郏县","ext_id":"410425000000","label":"郏县"},{"id":"410481","pid":4104,"value":"舞钢市","ext_id":"410481000000","label":"舞钢市"},{"id":"410482","pid":4104,"value":"汝州市","ext_id":"410482000000","label":"汝州市"}]},{"id":"4105","pid":41,"value":"安阳市","ext_id":"410500000000","label":"安阳市","children":[{"id":"410502","pid":4105,"value":"文峰区","ext_id":"410502000000","label":"文峰区"},{"id":"410503","pid":4105,"value":"北关区","ext_id":"410503000000","label":"北关区"},{"id":"410505","pid":4105,"value":"殷都区","ext_id":"410505000000","label":"殷都区"},{"id":"410506","pid":4105,"value":"龙安区","ext_id":"410506000000","label":"龙安区"},{"id":"410522","pid":4105,"value":"安阳县","ext_id":"410522000000","label":"安阳县"},{"id":"410523","pid":4105,"value":"汤阴县","ext_id":"410523000000","label":"汤阴县"},{"id":"410526","pid":4105,"value":"滑县","ext_id":"410526000000","label":"滑县"},{"id":"410527","pid":4105,"value":"内黄县","ext_id":"410527000000","label":"内黄县"},{"id":"410581","pid":4105,"value":"林州市","ext_id":"410581000000","label":"林州市"}]},{"id":"4106","pid":41,"value":"鹤壁市","ext_id":"410600000000","label":"鹤壁市","children":[{"id":"410602","pid":4106,"value":"鹤山区","ext_id":"410602000000","label":"鹤山区"},{"id":"410603","pid":4106,"value":"山城区","ext_id":"410603000000","label":"山城区"},{"id":"410611","pid":4106,"value":"淇滨区","ext_id":"410611000000","label":"淇滨区"},{"id":"410621","pid":4106,"value":"浚县","ext_id":"410621000000","label":"浚县"},{"id":"410622","pid":4106,"value":"淇县","ext_id":"410622000000","label":"淇县"}]},{"id":"4107","pid":41,"value":"新乡市","ext_id":"410700000000","label":"新乡市","children":[{"id":"410702","pid":4107,"value":"红旗区","ext_id":"410702000000","label":"红旗区"},{"id":"410703","pid":4107,"value":"卫滨区","ext_id":"410703000000","label":"卫滨区"},{"id":"410704","pid":4107,"value":"凤泉区","ext_id":"410704000000","label":"凤泉区"},{"id":"410711","pid":4107,"value":"牧野区","ext_id":"410711000000","label":"牧野区"},{"id":"410721","pid":4107,"value":"新乡县","ext_id":"410721000000","label":"新乡县"},{"id":"410724","pid":4107,"value":"获嘉县","ext_id":"410724000000","label":"获嘉县"},{"id":"410725","pid":4107,"value":"原阳县","ext_id":"410725000000","label":"原阳县"},{"id":"410726","pid":4107,"value":"延津县","ext_id":"410726000000","label":"延津县"},{"id":"410727","pid":4107,"value":"封丘县","ext_id":"410727000000","label":"封丘县"},{"id":"410781","pid":4107,"value":"卫辉市","ext_id":"410781000000","label":"卫辉市"},{"id":"410782","pid":4107,"value":"辉县市","ext_id":"410782000000","label":"辉县市"},{"id":"410783","pid":4107,"value":"长垣市","ext_id":"410783000000","label":"长垣市"}]},{"id":"4108","pid":41,"value":"焦作市","ext_id":"410800000000","label":"焦作市","children":[{"id":"410802","pid":4108,"value":"解放区","ext_id":"410802000000","label":"解放区"},{"id":"410803","pid":4108,"value":"中站区","ext_id":"410803000000","label":"中站区"},{"id":"410804","pid":4108,"value":"马村区","ext_id":"410804000000","label":"马村区"},{"id":"410811","pid":4108,"value":"山阳区","ext_id":"410811000000","label":"山阳区"},{"id":"410821","pid":4108,"value":"修武县","ext_id":"410821000000","label":"修武县"},{"id":"410822","pid":4108,"value":"博爱县","ext_id":"410822000000","label":"博爱县"},{"id":"410823","pid":4108,"value":"武陟县","ext_id":"410823000000","label":"武陟县"},{"id":"410825","pid":4108,"value":"温县","ext_id":"410825000000","label":"温县"},{"id":"410882","pid":4108,"value":"沁阳市","ext_id":"410882000000","label":"沁阳市"},{"id":"410883","pid":4108,"value":"孟州市","ext_id":"410883000000","label":"孟州市"}]},{"id":"4109","pid":41,"value":"濮阳市","ext_id":"410900000000","label":"濮阳市","children":[{"id":"410902","pid":4109,"value":"华龙区","ext_id":"410902000000","label":"华龙区"},{"id":"410922","pid":4109,"value":"清丰县","ext_id":"410922000000","label":"清丰县"},{"id":"410923","pid":4109,"value":"南乐县","ext_id":"410923000000","label":"南乐县"},{"id":"410926","pid":4109,"value":"范县","ext_id":"410926000000","label":"范县"},{"id":"410927","pid":4109,"value":"台前县","ext_id":"410927000000","label":"台前县"},{"id":"410928","pid":4109,"value":"濮阳县","ext_id":"410928000000","label":"濮阳县"}]},{"id":"4110","pid":41,"value":"许昌市","ext_id":"411000000000","label":"许昌市","children":[{"id":"411002","pid":4110,"value":"魏都区","ext_id":"411002000000","label":"魏都区"},{"id":"411003","pid":4110,"value":"建安区","ext_id":"411003000000","label":"建安区"},{"id":"411024","pid":4110,"value":"鄢陵县","ext_id":"411024000000","label":"鄢陵县"},{"id":"411025","pid":4110,"value":"襄城县","ext_id":"411025000000","label":"襄城县"},{"id":"411081","pid":4110,"value":"禹州市","ext_id":"411081000000","label":"禹州市"},{"id":"411082","pid":4110,"value":"长葛市","ext_id":"411082000000","label":"长葛市"}]},{"id":"4111","pid":41,"value":"漯河市","ext_id":"411100000000","label":"漯河市","children":[{"id":"411102","pid":4111,"value":"源汇区","ext_id":"411102000000","label":"源汇区"},{"id":"411103","pid":4111,"value":"郾城区","ext_id":"411103000000","label":"郾城区"},{"id":"411104","pid":4111,"value":"召陵区","ext_id":"411104000000","label":"召陵区"},{"id":"411121","pid":4111,"value":"舞阳县","ext_id":"411121000000","label":"舞阳县"},{"id":"411122","pid":4111,"value":"临颍县","ext_id":"411122000000","label":"临颍县"}]},{"id":"4112","pid":41,"value":"三门峡市","ext_id":"411200000000","label":"三门峡市","children":[{"id":"411202","pid":4112,"value":"湖滨区","ext_id":"411202000000","label":"湖滨区"},{"id":"411203","pid":4112,"value":"陕州区","ext_id":"411203000000","label":"陕州区"},{"id":"411221","pid":4112,"value":"渑池县","ext_id":"411221000000","label":"渑池县"},{"id":"411224","pid":4112,"value":"卢氏县","ext_id":"411224000000","label":"卢氏县"},{"id":"411281","pid":4112,"value":"义马市","ext_id":"411281000000","label":"义马市"},{"id":"411282","pid":4112,"value":"灵宝市","ext_id":"411282000000","label":"灵宝市"}]},{"id":"4113","pid":41,"value":"南阳市","ext_id":"411300000000","label":"南阳市","children":[{"id":"411302","pid":4113,"value":"宛城区","ext_id":"411302000000","label":"宛城区"},{"id":"411303","pid":4113,"value":"卧龙区","ext_id":"411303000000","label":"卧龙区"},{"id":"411321","pid":4113,"value":"南召县","ext_id":"411321000000","label":"南召县"},{"id":"411322","pid":4113,"value":"方城县","ext_id":"411322000000","label":"方城县"},{"id":"411323","pid":4113,"value":"西峡县","ext_id":"411323000000","label":"西峡县"},{"id":"411324","pid":4113,"value":"镇平县","ext_id":"411324000000","label":"镇平县"},{"id":"411325","pid":4113,"value":"内乡县","ext_id":"411325000000","label":"内乡县"},{"id":"411326","pid":4113,"value":"淅川县","ext_id":"411326000000","label":"淅川县"},{"id":"411327","pid":4113,"value":"社旗县","ext_id":"411327000000","label":"社旗县"},{"id":"411328","pid":4113,"value":"唐河县","ext_id":"411328000000","label":"唐河县"},{"id":"411329","pid":4113,"value":"新野县","ext_id":"411329000000","label":"新野县"},{"id":"411330","pid":4113,"value":"桐柏县","ext_id":"411330000000","label":"桐柏县"},{"id":"411381","pid":4113,"value":"邓州市","ext_id":"411381000000","label":"邓州市"}]},{"id":"4114","pid":41,"value":"商丘市","ext_id":"411400000000","label":"商丘市","children":[{"id":"411402","pid":4114,"value":"梁园区","ext_id":"411402000000","label":"梁园区"},{"id":"411403","pid":4114,"value":"睢阳区","ext_id":"411403000000","label":"睢阳区"},{"id":"411421","pid":4114,"value":"民权县","ext_id":"411421000000","label":"民权县"},{"id":"411422","pid":4114,"value":"睢县","ext_id":"411422000000","label":"睢县"},{"id":"411423","pid":4114,"value":"宁陵县","ext_id":"411423000000","label":"宁陵县"},{"id":"411424","pid":4114,"value":"柘城县","ext_id":"411424000000","label":"柘城县"},{"id":"411425","pid":4114,"value":"虞城县","ext_id":"411425000000","label":"虞城县"},{"id":"411426","pid":4114,"value":"夏邑县","ext_id":"411426000000","label":"夏邑县"},{"id":"411481","pid":4114,"value":"永城市","ext_id":"411481000000","label":"永城市"}]},{"id":"4115","pid":41,"value":"信阳市","ext_id":"411500000000","label":"信阳市","children":[{"id":"411502","pid":4115,"value":"浉河区","ext_id":"411502000000","label":"浉河区"},{"id":"411503","pid":4115,"value":"平桥区","ext_id":"411503000000","label":"平桥区"},{"id":"411521","pid":4115,"value":"罗山县","ext_id":"411521000000","label":"罗山县"},{"id":"411522","pid":4115,"value":"光山县","ext_id":"411522000000","label":"光山县"},{"id":"411523","pid":4115,"value":"新县","ext_id":"411523000000","label":"新县"},{"id":"411524","pid":4115,"value":"商城县","ext_id":"411524000000","label":"商城县"},{"id":"411525","pid":4115,"value":"固始县","ext_id":"411525000000","label":"固始县"},{"id":"411526","pid":4115,"value":"潢川县","ext_id":"411526000000","label":"潢川县"},{"id":"411527","pid":4115,"value":"淮滨县","ext_id":"411527000000","label":"淮滨县"},{"id":"411528","pid":4115,"value":"息县","ext_id":"411528000000","label":"息县"}]},{"id":"4116","pid":41,"value":"周口市","ext_id":"411600000000","label":"周口市","children":[{"id":"411602","pid":4116,"value":"川汇区","ext_id":"411602000000","label":"川汇区"},{"id":"411603","pid":4116,"value":"淮阳区","ext_id":"411603000000","label":"淮阳区"},{"id":"411621","pid":4116,"value":"扶沟县","ext_id":"411621000000","label":"扶沟县"},{"id":"411622","pid":4116,"value":"西华县","ext_id":"411622000000","label":"西华县"},{"id":"411623","pid":4116,"value":"商水县","ext_id":"411623000000","label":"商水县"},{"id":"411624","pid":4116,"value":"沈丘县","ext_id":"411624000000","label":"沈丘县"},{"id":"411625","pid":4116,"value":"郸城县","ext_id":"411625000000","label":"郸城县"},{"id":"411627","pid":4116,"value":"太康县","ext_id":"411627000000","label":"太康县"},{"id":"411628","pid":4116,"value":"鹿邑县","ext_id":"411628000000","label":"鹿邑县"},{"id":"411681","pid":4116,"value":"项城市","ext_id":"411681000000","label":"项城市"}]},{"id":"4117","pid":41,"value":"驻马店市","ext_id":"411700000000","label":"驻马店市","children":[{"id":"411702","pid":4117,"value":"驿城区","ext_id":"411702000000","label":"驿城区"},{"id":"411721","pid":4117,"value":"西平县","ext_id":"411721000000","label":"西平县"},{"id":"411722","pid":4117,"value":"上蔡县","ext_id":"411722000000","label":"上蔡县"},{"id":"411723","pid":4117,"value":"平舆县","ext_id":"411723000000","label":"平舆县"},{"id":"411724","pid":4117,"value":"正阳县","ext_id":"411724000000","label":"正阳县"},{"id":"411725","pid":4117,"value":"确山县","ext_id":"411725000000","label":"确山县"},{"id":"411726","pid":4117,"value":"泌阳县","ext_id":"411726000000","label":"泌阳县"},{"id":"411727","pid":4117,"value":"汝南县","ext_id":"411727000000","label":"汝南县"},{"id":"411728","pid":4117,"value":"遂平县","ext_id":"411728000000","label":"遂平县"},{"id":"411729","pid":4117,"value":"新蔡县","ext_id":"411729000000","label":"新蔡县"}]},{"id":"419001","pid":41,"value":"济源市","ext_id":"419001000000","label":"济源市","children":[{"id":"419001000","pid":419001,"value":"济源市","ext_id":"419001000000","label":"济源市"}]}]},{"id":"42","pid":0,"value":"湖北省","ext_id":"420000000000","label":"湖北省","children":[{"id":"4201","pid":42,"value":"武汉市","ext_id":"420100000000","label":"武汉市","children":[{"id":"420102","pid":4201,"value":"江岸区","ext_id":"420102000000","label":"江岸区"},{"id":"420103","pid":4201,"value":"江汉区","ext_id":"420103000000","label":"江汉区"},{"id":"420104","pid":4201,"value":"硚口区","ext_id":"420104000000","label":"硚口区"},{"id":"420105","pid":4201,"value":"汉阳区","ext_id":"420105000000","label":"汉阳区"},{"id":"420106","pid":4201,"value":"武昌区","ext_id":"420106000000","label":"武昌区"},{"id":"420107","pid":4201,"value":"青山区","ext_id":"420107000000","label":"青山区"},{"id":"420111","pid":4201,"value":"洪山区","ext_id":"420111000000","label":"洪山区"},{"id":"420112","pid":4201,"value":"东西湖区","ext_id":"420112000000","label":"东西湖区"},{"id":"420113","pid":4201,"value":"汉南区","ext_id":"420113000000","label":"汉南区"},{"id":"420114","pid":4201,"value":"蔡甸区","ext_id":"420114000000","label":"蔡甸区"},{"id":"420115","pid":4201,"value":"江夏区","ext_id":"420115000000","label":"江夏区"},{"id":"420116","pid":4201,"value":"黄陂区","ext_id":"420116000000","label":"黄陂区"},{"id":"420117","pid":4201,"value":"新洲区","ext_id":"420117000000","label":"新洲区"}]},{"id":"4202","pid":42,"value":"黄石市","ext_id":"420200000000","label":"黄石市","children":[{"id":"420202","pid":4202,"value":"黄石港区","ext_id":"420202000000","label":"黄石港区"},{"id":"420203","pid":4202,"value":"西塞山区","ext_id":"420203000000","label":"西塞山区"},{"id":"420204","pid":4202,"value":"下陆区","ext_id":"420204000000","label":"下陆区"},{"id":"420205","pid":4202,"value":"铁山区","ext_id":"420205000000","label":"铁山区"},{"id":"420222","pid":4202,"value":"阳新县","ext_id":"420222000000","label":"阳新县"},{"id":"420281","pid":4202,"value":"大冶市","ext_id":"420281000000","label":"大冶市"}]},{"id":"4203","pid":42,"value":"十堰市","ext_id":"420300000000","label":"十堰市","children":[{"id":"420302","pid":4203,"value":"茅箭区","ext_id":"420302000000","label":"茅箭区"},{"id":"420303","pid":4203,"value":"张湾区","ext_id":"420303000000","label":"张湾区"},{"id":"420304","pid":4203,"value":"郧阳区","ext_id":"420304000000","label":"郧阳区"},{"id":"420322","pid":4203,"value":"郧西县","ext_id":"420322000000","label":"郧西县"},{"id":"420323","pid":4203,"value":"竹山县","ext_id":"420323000000","label":"竹山县"},{"id":"420324","pid":4203,"value":"竹溪县","ext_id":"420324000000","label":"竹溪县"},{"id":"420325","pid":4203,"value":"房县","ext_id":"420325000000","label":"房县"},{"id":"420381","pid":4203,"value":"丹江口市","ext_id":"420381000000","label":"丹江口市"}]},{"id":"4205","pid":42,"value":"宜昌市","ext_id":"420500000000","label":"宜昌市","children":[{"id":"420502","pid":4205,"value":"西陵区","ext_id":"420502000000","label":"西陵区"},{"id":"420503","pid":4205,"value":"伍家岗区","ext_id":"420503000000","label":"伍家岗区"},{"id":"420504","pid":4205,"value":"点军区","ext_id":"420504000000","label":"点军区"},{"id":"420505","pid":4205,"value":"猇亭区","ext_id":"420505000000","label":"猇亭区"},{"id":"420506","pid":4205,"value":"夷陵区","ext_id":"420506000000","label":"夷陵区"},{"id":"420525","pid":4205,"value":"远安县","ext_id":"420525000000","label":"远安县"},{"id":"420526","pid":4205,"value":"兴山县","ext_id":"420526000000","label":"兴山县"},{"id":"420527","pid":4205,"value":"秭归县","ext_id":"420527000000","label":"秭归县"},{"id":"420528","pid":4205,"value":"长阳土家族自治县","ext_id":"420528000000","label":"长阳土家族自治县"},{"id":"420529","pid":4205,"value":"五峰土家族自治县","ext_id":"420529000000","label":"五峰土家族自治县"},{"id":"420581","pid":4205,"value":"宜都市","ext_id":"420581000000","label":"宜都市"},{"id":"420582","pid":4205,"value":"当阳市","ext_id":"420582000000","label":"当阳市"},{"id":"420583","pid":4205,"value":"枝江市","ext_id":"420583000000","label":"枝江市"}]},{"id":"4206","pid":42,"value":"襄阳市","ext_id":"420600000000","label":"襄阳市","children":[{"id":"420602","pid":4206,"value":"襄城区","ext_id":"420602000000","label":"襄城区"},{"id":"420606","pid":4206,"value":"樊城区","ext_id":"420606000000","label":"樊城区"},{"id":"420607","pid":4206,"value":"襄州区","ext_id":"420607000000","label":"襄州区"},{"id":"420624","pid":4206,"value":"南漳县","ext_id":"420624000000","label":"南漳县"},{"id":"420625","pid":4206,"value":"谷城县","ext_id":"420625000000","label":"谷城县"},{"id":"420626","pid":4206,"value":"保康县","ext_id":"420626000000","label":"保康县"},{"id":"420682","pid":4206,"value":"老河口市","ext_id":"420682000000","label":"老河口市"},{"id":"420683","pid":4206,"value":"枣阳市","ext_id":"420683000000","label":"枣阳市"},{"id":"420684","pid":4206,"value":"宜城市","ext_id":"420684000000","label":"宜城市"}]},{"id":"4207","pid":42,"value":"鄂州市","ext_id":"420700000000","label":"鄂州市","children":[{"id":"420702","pid":4207,"value":"梁子湖区","ext_id":"420702000000","label":"梁子湖区"},{"id":"420703","pid":4207,"value":"华容区","ext_id":"420703000000","label":"华容区"},{"id":"420704","pid":4207,"value":"鄂城区","ext_id":"420704000000","label":"鄂城区"}]},{"id":"4208","pid":42,"value":"荆门市","ext_id":"420800000000","label":"荆门市","children":[{"id":"420802","pid":4208,"value":"东宝区","ext_id":"420802000000","label":"东宝区"},{"id":"420804","pid":4208,"value":"掇刀区","ext_id":"420804000000","label":"掇刀区"},{"id":"420822","pid":4208,"value":"沙洋县","ext_id":"420822000000","label":"沙洋县"},{"id":"420881","pid":4208,"value":"钟祥市","ext_id":"420881000000","label":"钟祥市"},{"id":"420882","pid":4208,"value":"京山市","ext_id":"420882000000","label":"京山市"}]},{"id":"4209","pid":42,"value":"孝感市","ext_id":"420900000000","label":"孝感市","children":[{"id":"420902","pid":4209,"value":"孝南区","ext_id":"420902000000","label":"孝南区"},{"id":"420921","pid":4209,"value":"孝昌县","ext_id":"420921000000","label":"孝昌县"},{"id":"420922","pid":4209,"value":"大悟县","ext_id":"420922000000","label":"大悟县"},{"id":"420923","pid":4209,"value":"云梦县","ext_id":"420923000000","label":"云梦县"},{"id":"420981","pid":4209,"value":"应城市","ext_id":"420981000000","label":"应城市"},{"id":"420982","pid":4209,"value":"安陆市","ext_id":"420982000000","label":"安陆市"},{"id":"420984","pid":4209,"value":"汉川市","ext_id":"420984000000","label":"汉川市"}]},{"id":"4210","pid":42,"value":"荆州市","ext_id":"421000000000","label":"荆州市","children":[{"id":"421002","pid":4210,"value":"沙市区","ext_id":"421002000000","label":"沙市区"},{"id":"421003","pid":4210,"value":"荆州区","ext_id":"421003000000","label":"荆州区"},{"id":"421022","pid":4210,"value":"公安县","ext_id":"421022000000","label":"公安县"},{"id":"421024","pid":4210,"value":"江陵县","ext_id":"421024000000","label":"江陵县"},{"id":"421081","pid":4210,"value":"石首市","ext_id":"421081000000","label":"石首市"},{"id":"421083","pid":4210,"value":"洪湖市","ext_id":"421083000000","label":"洪湖市"},{"id":"421087","pid":4210,"value":"松滋市","ext_id":"421087000000","label":"松滋市"},{"id":"421088","pid":4210,"value":"监利市","ext_id":"421088000000","label":"监利市"}]},{"id":"4211","pid":42,"value":"黄冈市","ext_id":"421100000000","label":"黄冈市","children":[{"id":"421102","pid":4211,"value":"黄州区","ext_id":"421102000000","label":"黄州区"},{"id":"421121","pid":4211,"value":"团风县","ext_id":"421121000000","label":"团风县"},{"id":"421122","pid":4211,"value":"红安县","ext_id":"421122000000","label":"红安县"},{"id":"421123","pid":4211,"value":"罗田县","ext_id":"421123000000","label":"罗田县"},{"id":"421124","pid":4211,"value":"英山县","ext_id":"421124000000","label":"英山县"},{"id":"421125","pid":4211,"value":"浠水县","ext_id":"421125000000","label":"浠水县"},{"id":"421126","pid":4211,"value":"蕲春县","ext_id":"421126000000","label":"蕲春县"},{"id":"421127","pid":4211,"value":"黄梅县","ext_id":"421127000000","label":"黄梅县"},{"id":"421181","pid":4211,"value":"麻城市","ext_id":"421181000000","label":"麻城市"},{"id":"421182","pid":4211,"value":"武穴市","ext_id":"421182000000","label":"武穴市"}]},{"id":"4212","pid":42,"value":"咸宁市","ext_id":"421200000000","label":"咸宁市","children":[{"id":"421202","pid":4212,"value":"咸安区","ext_id":"421202000000","label":"咸安区"},{"id":"421221","pid":4212,"value":"嘉鱼县","ext_id":"421221000000","label":"嘉鱼县"},{"id":"421222","pid":4212,"value":"通城县","ext_id":"421222000000","label":"通城县"},{"id":"421223","pid":4212,"value":"崇阳县","ext_id":"421223000000","label":"崇阳县"},{"id":"421224","pid":4212,"value":"通山县","ext_id":"421224000000","label":"通山县"},{"id":"421281","pid":4212,"value":"赤壁市","ext_id":"421281000000","label":"赤壁市"}]},{"id":"4213","pid":42,"value":"随州市","ext_id":"421300000000","label":"随州市","children":[{"id":"421303","pid":4213,"value":"曾都区","ext_id":"421303000000","label":"曾都区"},{"id":"421321","pid":4213,"value":"随县","ext_id":"421321000000","label":"随县"},{"id":"421381","pid":4213,"value":"广水市","ext_id":"421381000000","label":"广水市"}]},{"id":"4228","pid":42,"value":"恩施土家族苗族自治州","ext_id":"422800000000","label":"恩施土家族苗族自治州","children":[{"id":"422801","pid":4228,"value":"恩施市","ext_id":"422801000000","label":"恩施市"},{"id":"422802","pid":4228,"value":"利川市","ext_id":"422802000000","label":"利川市"},{"id":"422822","pid":4228,"value":"建始县","ext_id":"422822000000","label":"建始县"},{"id":"422823","pid":4228,"value":"巴东县","ext_id":"422823000000","label":"巴东县"},{"id":"422825","pid":4228,"value":"宣恩县","ext_id":"422825000000","label":"宣恩县"},{"id":"422826","pid":4228,"value":"咸丰县","ext_id":"422826000000","label":"咸丰县"},{"id":"422827","pid":4228,"value":"来凤县","ext_id":"422827000000","label":"来凤县"},{"id":"422828","pid":4228,"value":"鹤峰县","ext_id":"422828000000","label":"鹤峰县"}]},{"id":"429004","pid":42,"value":"仙桃市","ext_id":"429004000000","label":"仙桃市","children":[{"id":"429004000","pid":429004,"value":"仙桃市","ext_id":"429004000000","label":"仙桃市"}]},{"id":"429005","pid":42,"value":"潜江市","ext_id":"429005000000","label":"潜江市","children":[{"id":"429005000","pid":429005,"value":"潜江市","ext_id":"429005000000","label":"潜江市"}]},{"id":"429006","pid":42,"value":"天门市","ext_id":"429006000000","label":"天门市","children":[{"id":"429006000","pid":429006,"value":"天门市","ext_id":"429006000000","label":"天门市"}]},{"id":"429021","pid":42,"value":"神农架林区","ext_id":"429021000000","label":"神农架林区","children":[{"id":"429021000","pid":429021,"value":"神农架林区","ext_id":"429021000000","label":"神农架林区"}]}]},{"id":"43","pid":0,"value":"湖南省","ext_id":"430000000000","label":"湖南省","children":[{"id":"4301","pid":43,"value":"长沙市","ext_id":"430100000000","label":"长沙市","children":[{"id":"430102","pid":4301,"value":"芙蓉区","ext_id":"430102000000","label":"芙蓉区"},{"id":"430103","pid":4301,"value":"天心区","ext_id":"430103000000","label":"天心区"},{"id":"430104","pid":4301,"value":"岳麓区","ext_id":"430104000000","label":"岳麓区"},{"id":"430105","pid":4301,"value":"开福区","ext_id":"430105000000","label":"开福区"},{"id":"430111","pid":4301,"value":"雨花区","ext_id":"430111000000","label":"雨花区"},{"id":"430112","pid":4301,"value":"望城区","ext_id":"430112000000","label":"望城区"},{"id":"430121","pid":4301,"value":"长沙县","ext_id":"430121000000","label":"长沙县"},{"id":"430181","pid":4301,"value":"浏阳市","ext_id":"430181000000","label":"浏阳市"},{"id":"430182","pid":4301,"value":"宁乡市","ext_id":"430182000000","label":"宁乡市"}]},{"id":"4302","pid":43,"value":"株洲市","ext_id":"430200000000","label":"株洲市","children":[{"id":"430202","pid":4302,"value":"荷塘区","ext_id":"430202000000","label":"荷塘区"},{"id":"430203","pid":4302,"value":"芦淞区","ext_id":"430203000000","label":"芦淞区"},{"id":"430204","pid":4302,"value":"石峰区","ext_id":"430204000000","label":"石峰区"},{"id":"430211","pid":4302,"value":"天元区","ext_id":"430211000000","label":"天元区"},{"id":"430212","pid":4302,"value":"渌口区","ext_id":"430212000000","label":"渌口区"},{"id":"430223","pid":4302,"value":"攸县","ext_id":"430223000000","label":"攸县"},{"id":"430224","pid":4302,"value":"茶陵县","ext_id":"430224000000","label":"茶陵县"},{"id":"430225","pid":4302,"value":"炎陵县","ext_id":"430225000000","label":"炎陵县"},{"id":"430281","pid":4302,"value":"醴陵市","ext_id":"430281000000","label":"醴陵市"}]},{"id":"4303","pid":43,"value":"湘潭市","ext_id":"430300000000","label":"湘潭市","children":[{"id":"430302","pid":4303,"value":"雨湖区","ext_id":"430302000000","label":"雨湖区"},{"id":"430304","pid":4303,"value":"岳塘区","ext_id":"430304000000","label":"岳塘区"},{"id":"430321","pid":4303,"value":"湘潭县","ext_id":"430321000000","label":"湘潭县"},{"id":"430381","pid":4303,"value":"湘乡市","ext_id":"430381000000","label":"湘乡市"},{"id":"430382","pid":4303,"value":"韶山市","ext_id":"430382000000","label":"韶山市"}]},{"id":"4304","pid":43,"value":"衡阳市","ext_id":"430400000000","label":"衡阳市","children":[{"id":"430405","pid":4304,"value":"珠晖区","ext_id":"430405000000","label":"珠晖区"},{"id":"430406","pid":4304,"value":"雁峰区","ext_id":"430406000000","label":"雁峰区"},{"id":"430407","pid":4304,"value":"石鼓区","ext_id":"430407000000","label":"石鼓区"},{"id":"430408","pid":4304,"value":"蒸湘区","ext_id":"430408000000","label":"蒸湘区"},{"id":"430412","pid":4304,"value":"南岳区","ext_id":"430412000000","label":"南岳区"},{"id":"430421","pid":4304,"value":"衡阳县","ext_id":"430421000000","label":"衡阳县"},{"id":"430422","pid":4304,"value":"衡南县","ext_id":"430422000000","label":"衡南县"},{"id":"430423","pid":4304,"value":"衡山县","ext_id":"430423000000","label":"衡山县"},{"id":"430424","pid":4304,"value":"衡东县","ext_id":"430424000000","label":"衡东县"},{"id":"430426","pid":4304,"value":"祁东县","ext_id":"430426000000","label":"祁东县"},{"id":"430481","pid":4304,"value":"耒阳市","ext_id":"430481000000","label":"耒阳市"},{"id":"430482","pid":4304,"value":"常宁市","ext_id":"430482000000","label":"常宁市"}]},{"id":"4305","pid":43,"value":"邵阳市","ext_id":"430500000000","label":"邵阳市","children":[{"id":"430502","pid":4305,"value":"双清区","ext_id":"430502000000","label":"双清区"},{"id":"430503","pid":4305,"value":"大祥区","ext_id":"430503000000","label":"大祥区"},{"id":"430511","pid":4305,"value":"北塔区","ext_id":"430511000000","label":"北塔区"},{"id":"430522","pid":4305,"value":"新邵县","ext_id":"430522000000","label":"新邵县"},{"id":"430523","pid":4305,"value":"邵阳县","ext_id":"430523000000","label":"邵阳县"},{"id":"430524","pid":4305,"value":"隆回县","ext_id":"430524000000","label":"隆回县"},{"id":"430525","pid":4305,"value":"洞口县","ext_id":"430525000000","label":"洞口县"},{"id":"430527","pid":4305,"value":"绥宁县","ext_id":"430527000000","label":"绥宁县"},{"id":"430528","pid":4305,"value":"新宁县","ext_id":"430528000000","label":"新宁县"},{"id":"430529","pid":4305,"value":"城步苗族自治县","ext_id":"430529000000","label":"城步苗族自治县"},{"id":"430581","pid":4305,"value":"武冈市","ext_id":"430581000000","label":"武冈市"},{"id":"430582","pid":4305,"value":"邵东市","ext_id":"430582000000","label":"邵东市"}]},{"id":"4306","pid":43,"value":"岳阳市","ext_id":"430600000000","label":"岳阳市","children":[{"id":"430602","pid":4306,"value":"岳阳楼区","ext_id":"430602000000","label":"岳阳楼区"},{"id":"430603","pid":4306,"value":"云溪区","ext_id":"430603000000","label":"云溪区"},{"id":"430611","pid":4306,"value":"君山区","ext_id":"430611000000","label":"君山区"},{"id":"430621","pid":4306,"value":"岳阳县","ext_id":"430621000000","label":"岳阳县"},{"id":"430623","pid":4306,"value":"华容县","ext_id":"430623000000","label":"华容县"},{"id":"430624","pid":4306,"value":"湘阴县","ext_id":"430624000000","label":"湘阴县"},{"id":"430626","pid":4306,"value":"平江县","ext_id":"430626000000","label":"平江县"},{"id":"430681","pid":4306,"value":"汨罗市","ext_id":"430681000000","label":"汨罗市"},{"id":"430682","pid":4306,"value":"临湘市","ext_id":"430682000000","label":"临湘市"}]},{"id":"4307","pid":43,"value":"常德市","ext_id":"430700000000","label":"常德市","children":[{"id":"430702","pid":4307,"value":"武陵区","ext_id":"430702000000","label":"武陵区"},{"id":"430703","pid":4307,"value":"鼎城区","ext_id":"430703000000","label":"鼎城区"},{"id":"430721","pid":4307,"value":"安乡县","ext_id":"430721000000","label":"安乡县"},{"id":"430722","pid":4307,"value":"汉寿县","ext_id":"430722000000","label":"汉寿县"},{"id":"430723","pid":4307,"value":"澧县","ext_id":"430723000000","label":"澧县"},{"id":"430724","pid":4307,"value":"临澧县","ext_id":"430724000000","label":"临澧县"},{"id":"430725","pid":4307,"value":"桃源县","ext_id":"430725000000","label":"桃源县"},{"id":"430726","pid":4307,"value":"石门县","ext_id":"430726000000","label":"石门县"},{"id":"430781","pid":4307,"value":"津市市","ext_id":"430781000000","label":"津市市"}]},{"id":"4308","pid":43,"value":"张家界市","ext_id":"430800000000","label":"张家界市","children":[{"id":"430802","pid":4308,"value":"永定区","ext_id":"430802000000","label":"永定区"},{"id":"430811","pid":4308,"value":"武陵源区","ext_id":"430811000000","label":"武陵源区"},{"id":"430821","pid":4308,"value":"慈利县","ext_id":"430821000000","label":"慈利县"},{"id":"430822","pid":4308,"value":"桑植县","ext_id":"430822000000","label":"桑植县"}]},{"id":"4309","pid":43,"value":"益阳市","ext_id":"430900000000","label":"益阳市","children":[{"id":"430902","pid":4309,"value":"资阳区","ext_id":"430902000000","label":"资阳区"},{"id":"430903","pid":4309,"value":"赫山区","ext_id":"430903000000","label":"赫山区"},{"id":"430921","pid":4309,"value":"南县","ext_id":"430921000000","label":"南县"},{"id":"430922","pid":4309,"value":"桃江县","ext_id":"430922000000","label":"桃江县"},{"id":"430923","pid":4309,"value":"安化县","ext_id":"430923000000","label":"安化县"},{"id":"430981","pid":4309,"value":"沅江市","ext_id":"430981000000","label":"沅江市"}]},{"id":"4310","pid":43,"value":"郴州市","ext_id":"431000000000","label":"郴州市","children":[{"id":"431002","pid":4310,"value":"北湖区","ext_id":"431002000000","label":"北湖区"},{"id":"431003","pid":4310,"value":"苏仙区","ext_id":"431003000000","label":"苏仙区"},{"id":"431021","pid":4310,"value":"桂阳县","ext_id":"431021000000","label":"桂阳县"},{"id":"431022","pid":4310,"value":"宜章县","ext_id":"431022000000","label":"宜章县"},{"id":"431023","pid":4310,"value":"永兴县","ext_id":"431023000000","label":"永兴县"},{"id":"431024","pid":4310,"value":"嘉禾县","ext_id":"431024000000","label":"嘉禾县"},{"id":"431025","pid":4310,"value":"临武县","ext_id":"431025000000","label":"临武县"},{"id":"431026","pid":4310,"value":"汝城县","ext_id":"431026000000","label":"汝城县"},{"id":"431027","pid":4310,"value":"桂东县","ext_id":"431027000000","label":"桂东县"},{"id":"431028","pid":4310,"value":"安仁县","ext_id":"431028000000","label":"安仁县"},{"id":"431081","pid":4310,"value":"资兴市","ext_id":"431081000000","label":"资兴市"}]},{"id":"4311","pid":43,"value":"永州市","ext_id":"431100000000","label":"永州市","children":[{"id":"431102","pid":4311,"value":"零陵区","ext_id":"431102000000","label":"零陵区"},{"id":"431103","pid":4311,"value":"冷水滩区","ext_id":"431103000000","label":"冷水滩区"},{"id":"431122","pid":4311,"value":"东安县","ext_id":"431122000000","label":"东安县"},{"id":"431123","pid":4311,"value":"双牌县","ext_id":"431123000000","label":"双牌县"},{"id":"431124","pid":4311,"value":"道县","ext_id":"431124000000","label":"道县"},{"id":"431125","pid":4311,"value":"江永县","ext_id":"431125000000","label":"江永县"},{"id":"431126","pid":4311,"value":"宁远县","ext_id":"431126000000","label":"宁远县"},{"id":"431127","pid":4311,"value":"蓝山县","ext_id":"431127000000","label":"蓝山县"},{"id":"431128","pid":4311,"value":"新田县","ext_id":"431128000000","label":"新田县"},{"id":"431129","pid":4311,"value":"江华瑶族自治县","ext_id":"431129000000","label":"江华瑶族自治县"},{"id":"431181","pid":4311,"value":"祁阳市","ext_id":"431181000000","label":"祁阳市"}]},{"id":"4312","pid":43,"value":"怀化市","ext_id":"431200000000","label":"怀化市","children":[{"id":"431202","pid":4312,"value":"鹤城区","ext_id":"431202000000","label":"鹤城区"},{"id":"431221","pid":4312,"value":"中方县","ext_id":"431221000000","label":"中方县"},{"id":"431222","pid":4312,"value":"沅陵县","ext_id":"431222000000","label":"沅陵县"},{"id":"431223","pid":4312,"value":"辰溪县","ext_id":"431223000000","label":"辰溪县"},{"id":"431224","pid":4312,"value":"溆浦县","ext_id":"431224000000","label":"溆浦县"},{"id":"431225","pid":4312,"value":"会同县","ext_id":"431225000000","label":"会同县"},{"id":"431226","pid":4312,"value":"麻阳苗族自治县","ext_id":"431226000000","label":"麻阳苗族自治县"},{"id":"431227","pid":4312,"value":"新晃侗族自治县","ext_id":"431227000000","label":"新晃侗族自治县"},{"id":"431228","pid":4312,"value":"芷江侗族自治县","ext_id":"431228000000","label":"芷江侗族自治县"},{"id":"431229","pid":4312,"value":"靖州苗族侗族自治县","ext_id":"431229000000","label":"靖州苗族侗族自治县"},{"id":"431230","pid":4312,"value":"通道侗族自治县","ext_id":"431230000000","label":"通道侗族自治县"},{"id":"431281","pid":4312,"value":"洪江市","ext_id":"431281000000","label":"洪江市"}]},{"id":"4313","pid":43,"value":"娄底市","ext_id":"431300000000","label":"娄底市","children":[{"id":"431302","pid":4313,"value":"娄星区","ext_id":"431302000000","label":"娄星区"},{"id":"431321","pid":4313,"value":"双峰县","ext_id":"431321000000","label":"双峰县"},{"id":"431322","pid":4313,"value":"新化县","ext_id":"431322000000","label":"新化县"},{"id":"431381","pid":4313,"value":"冷水江市","ext_id":"431381000000","label":"冷水江市"},{"id":"431382","pid":4313,"value":"涟源市","ext_id":"431382000000","label":"涟源市"}]},{"id":"4331","pid":43,"value":"湘西土家族苗族自治州","ext_id":"433100000000","label":"湘西土家族苗族自治州","children":[{"id":"433101","pid":4331,"value":"吉首市","ext_id":"433101000000","label":"吉首市"},{"id":"433122","pid":4331,"value":"泸溪县","ext_id":"433122000000","label":"泸溪县"},{"id":"433123","pid":4331,"value":"凤凰县","ext_id":"433123000000","label":"凤凰县"},{"id":"433124","pid":4331,"value":"花垣县","ext_id":"433124000000","label":"花垣县"},{"id":"433125","pid":4331,"value":"保靖县","ext_id":"433125000000","label":"保靖县"},{"id":"433126","pid":4331,"value":"古丈县","ext_id":"433126000000","label":"古丈县"},{"id":"433127","pid":4331,"value":"永顺县","ext_id":"433127000000","label":"永顺县"},{"id":"433130","pid":4331,"value":"龙山县","ext_id":"433130000000","label":"龙山县"}]}]},{"id":"44","pid":0,"value":"广东省","ext_id":"440000000000","label":"广东省","children":[{"id":"4401","pid":44,"value":"广州市","ext_id":"440100000000","label":"广州市","children":[{"id":"440103","pid":4401,"value":"荔湾区","ext_id":"440103000000","label":"荔湾区"},{"id":"440104","pid":4401,"value":"越秀区","ext_id":"440104000000","label":"越秀区"},{"id":"440105","pid":4401,"value":"海珠区","ext_id":"440105000000","label":"海珠区"},{"id":"440106","pid":4401,"value":"天河区","ext_id":"440106000000","label":"天河区"},{"id":"440111","pid":4401,"value":"白云区","ext_id":"440111000000","label":"白云区"},{"id":"440112","pid":4401,"value":"黄埔区","ext_id":"440112000000","label":"黄埔区"},{"id":"440113","pid":4401,"value":"番禺区","ext_id":"440113000000","label":"番禺区"},{"id":"440114","pid":4401,"value":"花都区","ext_id":"440114000000","label":"花都区"},{"id":"440115","pid":4401,"value":"南沙区","ext_id":"440115000000","label":"南沙区"},{"id":"440117","pid":4401,"value":"从化区","ext_id":"440117000000","label":"从化区"},{"id":"440118","pid":4401,"value":"增城区","ext_id":"440118000000","label":"增城区"}]},{"id":"4402","pid":44,"value":"韶关市","ext_id":"440200000000","label":"韶关市","children":[{"id":"440203","pid":4402,"value":"武江区","ext_id":"440203000000","label":"武江区"},{"id":"440204","pid":4402,"value":"浈江区","ext_id":"440204000000","label":"浈江区"},{"id":"440205","pid":4402,"value":"曲江区","ext_id":"440205000000","label":"曲江区"},{"id":"440222","pid":4402,"value":"始兴县","ext_id":"440222000000","label":"始兴县"},{"id":"440224","pid":4402,"value":"仁化县","ext_id":"440224000000","label":"仁化县"},{"id":"440229","pid":4402,"value":"翁源县","ext_id":"440229000000","label":"翁源县"},{"id":"440232","pid":4402,"value":"乳源瑶族自治县","ext_id":"440232000000","label":"乳源瑶族自治县"},{"id":"440233","pid":4402,"value":"新丰县","ext_id":"440233000000","label":"新丰县"},{"id":"440281","pid":4402,"value":"乐昌市","ext_id":"440281000000","label":"乐昌市"},{"id":"440282","pid":4402,"value":"南雄市","ext_id":"440282000000","label":"南雄市"}]},{"id":"4403","pid":44,"value":"深圳市","ext_id":"440300000000","label":"深圳市","children":[{"id":"440303","pid":4403,"value":"罗湖区","ext_id":"440303000000","label":"罗湖区"},{"id":"440304","pid":4403,"value":"福田区","ext_id":"440304000000","label":"福田区"},{"id":"440305","pid":4403,"value":"南山区","ext_id":"440305000000","label":"南山区"},{"id":"440306","pid":4403,"value":"宝安区","ext_id":"440306000000","label":"宝安区"},{"id":"440307","pid":4403,"value":"龙岗区","ext_id":"440307000000","label":"龙岗区"},{"id":"440308","pid":4403,"value":"盐田区","ext_id":"440308000000","label":"盐田区"},{"id":"440309","pid":4403,"value":"龙华区","ext_id":"440309000000","label":"龙华区"},{"id":"440310","pid":4403,"value":"坪山区","ext_id":"440310000000","label":"坪山区"},{"id":"440311","pid":4403,"value":"光明区","ext_id":"440311000000","label":"光明区"}]},{"id":"4404","pid":44,"value":"珠海市","ext_id":"440400000000","label":"珠海市","children":[{"id":"440402","pid":4404,"value":"香洲区","ext_id":"440402000000","label":"香洲区"},{"id":"440403","pid":4404,"value":"斗门区","ext_id":"440403000000","label":"斗门区"},{"id":"440404","pid":4404,"value":"金湾区","ext_id":"440404000000","label":"金湾区"}]},{"id":"4405","pid":44,"value":"汕头市","ext_id":"440500000000","label":"汕头市","children":[{"id":"440507","pid":4405,"value":"龙湖区","ext_id":"440507000000","label":"龙湖区"},{"id":"440511","pid":4405,"value":"金平区","ext_id":"440511000000","label":"金平区"},{"id":"440512","pid":4405,"value":"濠江区","ext_id":"440512000000","label":"濠江区"},{"id":"440513","pid":4405,"value":"潮阳区","ext_id":"440513000000","label":"潮阳区"},{"id":"440514","pid":4405,"value":"潮南区","ext_id":"440514000000","label":"潮南区"},{"id":"440515","pid":4405,"value":"澄海区","ext_id":"440515000000","label":"澄海区"},{"id":"440523","pid":4405,"value":"南澳县","ext_id":"440523000000","label":"南澳县"}]},{"id":"4406","pid":44,"value":"佛山市","ext_id":"440600000000","label":"佛山市","children":[{"id":"440604","pid":4406,"value":"禅城区","ext_id":"440604000000","label":"禅城区"},{"id":"440605","pid":4406,"value":"南海区","ext_id":"440605000000","label":"南海区"},{"id":"440606","pid":4406,"value":"顺德区","ext_id":"440606000000","label":"顺德区"},{"id":"440607","pid":4406,"value":"三水区","ext_id":"440607000000","label":"三水区"},{"id":"440608","pid":4406,"value":"高明区","ext_id":"440608000000","label":"高明区"}]},{"id":"4407","pid":44,"value":"江门市","ext_id":"440700000000","label":"江门市","children":[{"id":"440703","pid":4407,"value":"蓬江区","ext_id":"440703000000","label":"蓬江区"},{"id":"440704","pid":4407,"value":"江海区","ext_id":"440704000000","label":"江海区"},{"id":"440705","pid":4407,"value":"新会区","ext_id":"440705000000","label":"新会区"},{"id":"440781","pid":4407,"value":"台山市","ext_id":"440781000000","label":"台山市"},{"id":"440783","pid":4407,"value":"开平市","ext_id":"440783000000","label":"开平市"},{"id":"440784","pid":4407,"value":"鹤山市","ext_id":"440784000000","label":"鹤山市"},{"id":"440785","pid":4407,"value":"恩平市","ext_id":"440785000000","label":"恩平市"}]},{"id":"4408","pid":44,"value":"湛江市","ext_id":"440800000000","label":"湛江市","children":[{"id":"440802","pid":4408,"value":"赤坎区","ext_id":"440802000000","label":"赤坎区"},{"id":"440803","pid":4408,"value":"霞山区","ext_id":"440803000000","label":"霞山区"},{"id":"440804","pid":4408,"value":"坡头区","ext_id":"440804000000","label":"坡头区"},{"id":"440811","pid":4408,"value":"麻章区","ext_id":"440811000000","label":"麻章区"},{"id":"440823","pid":4408,"value":"遂溪县","ext_id":"440823000000","label":"遂溪县"},{"id":"440825","pid":4408,"value":"徐闻县","ext_id":"440825000000","label":"徐闻县"},{"id":"440881","pid":4408,"value":"廉江市","ext_id":"440881000000","label":"廉江市"},{"id":"440882","pid":4408,"value":"雷州市","ext_id":"440882000000","label":"雷州市"},{"id":"440883","pid":4408,"value":"吴川市","ext_id":"440883000000","label":"吴川市"}]},{"id":"4409","pid":44,"value":"茂名市","ext_id":"440900000000","label":"茂名市","children":[{"id":"440902","pid":4409,"value":"茂南区","ext_id":"440902000000","label":"茂南区"},{"id":"440904","pid":4409,"value":"电白区","ext_id":"440904000000","label":"电白区"},{"id":"440981","pid":4409,"value":"高州市","ext_id":"440981000000","label":"高州市"},{"id":"440982","pid":4409,"value":"化州市","ext_id":"440982000000","label":"化州市"},{"id":"440983","pid":4409,"value":"信宜市","ext_id":"440983000000","label":"信宜市"}]},{"id":"4412","pid":44,"value":"肇庆市","ext_id":"441200000000","label":"肇庆市","children":[{"id":"441202","pid":4412,"value":"端州区","ext_id":"441202000000","label":"端州区"},{"id":"441203","pid":4412,"value":"鼎湖区","ext_id":"441203000000","label":"鼎湖区"},{"id":"441204","pid":4412,"value":"高要区","ext_id":"441204000000","label":"高要区"},{"id":"441223","pid":4412,"value":"广宁县","ext_id":"441223000000","label":"广宁县"},{"id":"441224","pid":4412,"value":"怀集县","ext_id":"441224000000","label":"怀集县"},{"id":"441225","pid":4412,"value":"封开县","ext_id":"441225000000","label":"封开县"},{"id":"441226","pid":4412,"value":"德庆县","ext_id":"441226000000","label":"德庆县"},{"id":"441284","pid":4412,"value":"四会市","ext_id":"441284000000","label":"四会市"}]},{"id":"4413","pid":44,"value":"惠州市","ext_id":"441300000000","label":"惠州市","children":[{"id":"441302","pid":4413,"value":"惠城区","ext_id":"441302000000","label":"惠城区"},{"id":"441303","pid":4413,"value":"惠阳区","ext_id":"441303000000","label":"惠阳区"},{"id":"441322","pid":4413,"value":"博罗县","ext_id":"441322000000","label":"博罗县"},{"id":"441323","pid":4413,"value":"惠东县","ext_id":"441323000000","label":"惠东县"},{"id":"441324","pid":4413,"value":"龙门县","ext_id":"441324000000","label":"龙门县"}]},{"id":"4414","pid":44,"value":"梅州市","ext_id":"441400000000","label":"梅州市","children":[{"id":"441402","pid":4414,"value":"梅江区","ext_id":"441402000000","label":"梅江区"},{"id":"441403","pid":4414,"value":"梅县区","ext_id":"441403000000","label":"梅县区"},{"id":"441422","pid":4414,"value":"大埔县","ext_id":"441422000000","label":"大埔县"},{"id":"441423","pid":4414,"value":"丰顺县","ext_id":"441423000000","label":"丰顺县"},{"id":"441424","pid":4414,"value":"五华县","ext_id":"441424000000","label":"五华县"},{"id":"441426","pid":4414,"value":"平远县","ext_id":"441426000000","label":"平远县"},{"id":"441427","pid":4414,"value":"蕉岭县","ext_id":"441427000000","label":"蕉岭县"},{"id":"441481","pid":4414,"value":"兴宁市","ext_id":"441481000000","label":"兴宁市"}]},{"id":"4415","pid":44,"value":"汕尾市","ext_id":"441500000000","label":"汕尾市","children":[{"id":"441502","pid":4415,"value":"城区","ext_id":"441502000000","label":"城区"},{"id":"441521","pid":4415,"value":"海丰县","ext_id":"441521000000","label":"海丰县"},{"id":"441523","pid":4415,"value":"陆河县","ext_id":"441523000000","label":"陆河县"},{"id":"441581","pid":4415,"value":"陆丰市","ext_id":"441581000000","label":"陆丰市"}]},{"id":"4416","pid":44,"value":"河源市","ext_id":"441600000000","label":"河源市","children":[{"id":"441602","pid":4416,"value":"源城区","ext_id":"441602000000","label":"源城区"},{"id":"441621","pid":4416,"value":"紫金县","ext_id":"441621000000","label":"紫金县"},{"id":"441622","pid":4416,"value":"龙川县","ext_id":"441622000000","label":"龙川县"},{"id":"441623","pid":4416,"value":"连平县","ext_id":"441623000000","label":"连平县"},{"id":"441624","pid":4416,"value":"和平县","ext_id":"441624000000","label":"和平县"},{"id":"441625","pid":4416,"value":"东源县","ext_id":"441625000000","label":"东源县"}]},{"id":"4417","pid":44,"value":"阳江市","ext_id":"441700000000","label":"阳江市","children":[{"id":"441702","pid":4417,"value":"江城区","ext_id":"441702000000","label":"江城区"},{"id":"441704","pid":4417,"value":"阳东区","ext_id":"441704000000","label":"阳东区"},{"id":"441721","pid":4417,"value":"阳西县","ext_id":"441721000000","label":"阳西县"},{"id":"441781","pid":4417,"value":"阳春市","ext_id":"441781000000","label":"阳春市"}]},{"id":"4418","pid":44,"value":"清远市","ext_id":"441800000000","label":"清远市","children":[{"id":"441802","pid":4418,"value":"清城区","ext_id":"441802000000","label":"清城区"},{"id":"441803","pid":4418,"value":"清新区","ext_id":"441803000000","label":"清新区"},{"id":"441821","pid":4418,"value":"佛冈县","ext_id":"441821000000","label":"佛冈县"},{"id":"441823","pid":4418,"value":"阳山县","ext_id":"441823000000","label":"阳山县"},{"id":"441825","pid":4418,"value":"连山壮族瑶族自治县","ext_id":"441825000000","label":"连山壮族瑶族自治县"},{"id":"441826","pid":4418,"value":"连南瑶族自治县","ext_id":"441826000000","label":"连南瑶族自治县"},{"id":"441881","pid":4418,"value":"英德市","ext_id":"441881000000","label":"英德市"},{"id":"441882","pid":4418,"value":"连州市","ext_id":"441882000000","label":"连州市"}]},{"id":"4419","pid":44,"value":"东莞市","ext_id":"441900000000","label":"东莞市","children":[{"id":"441900","pid":4419,"value":"东莞市","ext_id":"441900000000","label":"东莞市"}]},{"id":"4420","pid":44,"value":"中山市","ext_id":"442000000000","label":"中山市","children":[{"id":"442000","pid":4420,"value":"中山市","ext_id":"442000000000","label":"中山市"}]},{"id":"4451","pid":44,"value":"潮州市","ext_id":"445100000000","label":"潮州市","children":[{"id":"445102","pid":4451,"value":"湘桥区","ext_id":"445102000000","label":"湘桥区"},{"id":"445103","pid":4451,"value":"潮安区","ext_id":"445103000000","label":"潮安区"},{"id":"445122","pid":4451,"value":"饶平县","ext_id":"445122000000","label":"饶平县"}]},{"id":"4452","pid":44,"value":"揭阳市","ext_id":"445200000000","label":"揭阳市","children":[{"id":"445202","pid":4452,"value":"榕城区","ext_id":"445202000000","label":"榕城区"},{"id":"445203","pid":4452,"value":"揭东区","ext_id":"445203000000","label":"揭东区"},{"id":"445222","pid":4452,"value":"揭西县","ext_id":"445222000000","label":"揭西县"},{"id":"445224","pid":4452,"value":"惠来县","ext_id":"445224000000","label":"惠来县"},{"id":"445281","pid":4452,"value":"普宁市","ext_id":"445281000000","label":"普宁市"}]},{"id":"4453","pid":44,"value":"云浮市","ext_id":"445300000000","label":"云浮市","children":[{"id":"445302","pid":4453,"value":"云城区","ext_id":"445302000000","label":"云城区"},{"id":"445303","pid":4453,"value":"云安区","ext_id":"445303000000","label":"云安区"},{"id":"445321","pid":4453,"value":"新兴县","ext_id":"445321000000","label":"新兴县"},{"id":"445322","pid":4453,"value":"郁南县","ext_id":"445322000000","label":"郁南县"},{"id":"445381","pid":4453,"value":"罗定市","ext_id":"445381000000","label":"罗定市"}]}]},{"id":"45","pid":0,"value":"广西壮族自治区","ext_id":"450000000000","label":"广西壮族自治区","children":[{"id":"4501","pid":45,"value":"南宁市","ext_id":"450100000000","label":"南宁市","children":[{"id":"450102","pid":4501,"value":"兴宁区","ext_id":"450102000000","label":"兴宁区"},{"id":"450103","pid":4501,"value":"青秀区","ext_id":"450103000000","label":"青秀区"},{"id":"450105","pid":4501,"value":"江南区","ext_id":"450105000000","label":"江南区"},{"id":"450107","pid":4501,"value":"西乡塘区","ext_id":"450107000000","label":"西乡塘区"},{"id":"450108","pid":4501,"value":"良庆区","ext_id":"450108000000","label":"良庆区"},{"id":"450109","pid":4501,"value":"邕宁区","ext_id":"450109000000","label":"邕宁区"},{"id":"450110","pid":4501,"value":"武鸣区","ext_id":"450110000000","label":"武鸣区"},{"id":"450123","pid":4501,"value":"隆安县","ext_id":"450123000000","label":"隆安县"},{"id":"450124","pid":4501,"value":"马山县","ext_id":"450124000000","label":"马山县"},{"id":"450125","pid":4501,"value":"上林县","ext_id":"450125000000","label":"上林县"},{"id":"450126","pid":4501,"value":"宾阳县","ext_id":"450126000000","label":"宾阳县"},{"id":"450181","pid":4501,"value":"横州市","ext_id":"450181000000","label":"横州市"}]},{"id":"4502","pid":45,"value":"柳州市","ext_id":"450200000000","label":"柳州市","children":[{"id":"450202","pid":4502,"value":"城中区","ext_id":"450202000000","label":"城中区"},{"id":"450203","pid":4502,"value":"鱼峰区","ext_id":"450203000000","label":"鱼峰区"},{"id":"450204","pid":4502,"value":"柳南区","ext_id":"450204000000","label":"柳南区"},{"id":"450205","pid":4502,"value":"柳北区","ext_id":"450205000000","label":"柳北区"},{"id":"450206","pid":4502,"value":"柳江区","ext_id":"450206000000","label":"柳江区"},{"id":"450222","pid":4502,"value":"柳城县","ext_id":"450222000000","label":"柳城县"},{"id":"450223","pid":4502,"value":"鹿寨县","ext_id":"450223000000","label":"鹿寨县"},{"id":"450224","pid":4502,"value":"融安县","ext_id":"450224000000","label":"融安县"},{"id":"450225","pid":4502,"value":"融水苗族自治县","ext_id":"450225000000","label":"融水苗族自治县"},{"id":"450226","pid":4502,"value":"三江侗族自治县","ext_id":"450226000000","label":"三江侗族自治县"}]},{"id":"4503","pid":45,"value":"桂林市","ext_id":"450300000000","label":"桂林市","children":[{"id":"450302","pid":4503,"value":"秀峰区","ext_id":"450302000000","label":"秀峰区"},{"id":"450303","pid":4503,"value":"叠彩区","ext_id":"450303000000","label":"叠彩区"},{"id":"450304","pid":4503,"value":"象山区","ext_id":"450304000000","label":"象山区"},{"id":"450305","pid":4503,"value":"七星区","ext_id":"450305000000","label":"七星区"},{"id":"450311","pid":4503,"value":"雁山区","ext_id":"450311000000","label":"雁山区"},{"id":"450312","pid":4503,"value":"临桂区","ext_id":"450312000000","label":"临桂区"},{"id":"450321","pid":4503,"value":"阳朔县","ext_id":"450321000000","label":"阳朔县"},{"id":"450323","pid":4503,"value":"灵川县","ext_id":"450323000000","label":"灵川县"},{"id":"450324","pid":4503,"value":"全州县","ext_id":"450324000000","label":"全州县"},{"id":"450325","pid":4503,"value":"兴安县","ext_id":"450325000000","label":"兴安县"},{"id":"450326","pid":4503,"value":"永福县","ext_id":"450326000000","label":"永福县"},{"id":"450327","pid":4503,"value":"灌阳县","ext_id":"450327000000","label":"灌阳县"},{"id":"450328","pid":4503,"value":"龙胜各族自治县","ext_id":"450328000000","label":"龙胜各族自治县"},{"id":"450329","pid":4503,"value":"资源县","ext_id":"450329000000","label":"资源县"},{"id":"450330","pid":4503,"value":"平乐县","ext_id":"450330000000","label":"平乐县"},{"id":"450332","pid":4503,"value":"恭城瑶族自治县","ext_id":"450332000000","label":"恭城瑶族自治县"},{"id":"450381","pid":4503,"value":"荔浦市","ext_id":"450381000000","label":"荔浦市"}]},{"id":"4504","pid":45,"value":"梧州市","ext_id":"450400000000","label":"梧州市","children":[{"id":"450403","pid":4504,"value":"万秀区","ext_id":"450403000000","label":"万秀区"},{"id":"450405","pid":4504,"value":"长洲区","ext_id":"450405000000","label":"长洲区"},{"id":"450406","pid":4504,"value":"龙圩区","ext_id":"450406000000","label":"龙圩区"},{"id":"450421","pid":4504,"value":"苍梧县","ext_id":"450421000000","label":"苍梧县"},{"id":"450422","pid":4504,"value":"藤县","ext_id":"450422000000","label":"藤县"},{"id":"450423","pid":4504,"value":"蒙山县","ext_id":"450423000000","label":"蒙山县"},{"id":"450481","pid":4504,"value":"岑溪市","ext_id":"450481000000","label":"岑溪市"}]},{"id":"4505","pid":45,"value":"北海市","ext_id":"450500000000","label":"北海市","children":[{"id":"450502","pid":4505,"value":"海城区","ext_id":"450502000000","label":"海城区"},{"id":"450503","pid":4505,"value":"银海区","ext_id":"450503000000","label":"银海区"},{"id":"450512","pid":4505,"value":"铁山港区","ext_id":"450512000000","label":"铁山港区"},{"id":"450521","pid":4505,"value":"合浦县","ext_id":"450521000000","label":"合浦县"}]},{"id":"4506","pid":45,"value":"防城港市","ext_id":"450600000000","label":"防城港市","children":[{"id":"450602","pid":4506,"value":"港口区","ext_id":"450602000000","label":"港口区"},{"id":"450603","pid":4506,"value":"防城区","ext_id":"450603000000","label":"防城区"},{"id":"450621","pid":4506,"value":"上思县","ext_id":"450621000000","label":"上思县"},{"id":"450681","pid":4506,"value":"东兴市","ext_id":"450681000000","label":"东兴市"}]},{"id":"4507","pid":45,"value":"钦州市","ext_id":"450700000000","label":"钦州市","children":[{"id":"450702","pid":4507,"value":"钦南区","ext_id":"450702000000","label":"钦南区"},{"id":"450703","pid":4507,"value":"钦北区","ext_id":"450703000000","label":"钦北区"},{"id":"450721","pid":4507,"value":"灵山县","ext_id":"450721000000","label":"灵山县"},{"id":"450722","pid":4507,"value":"浦北县","ext_id":"450722000000","label":"浦北县"}]},{"id":"4508","pid":45,"value":"贵港市","ext_id":"450800000000","label":"贵港市","children":[{"id":"450802","pid":4508,"value":"港北区","ext_id":"450802000000","label":"港北区"},{"id":"450803","pid":4508,"value":"港南区","ext_id":"450803000000","label":"港南区"},{"id":"450804","pid":4508,"value":"覃塘区","ext_id":"450804000000","label":"覃塘区"},{"id":"450821","pid":4508,"value":"平南县","ext_id":"450821000000","label":"平南县"},{"id":"450881","pid":4508,"value":"桂平市","ext_id":"450881000000","label":"桂平市"}]},{"id":"4509","pid":45,"value":"玉林市","ext_id":"450900000000","label":"玉林市","children":[{"id":"450902","pid":4509,"value":"玉州区","ext_id":"450902000000","label":"玉州区"},{"id":"450903","pid":4509,"value":"福绵区","ext_id":"450903000000","label":"福绵区"},{"id":"450921","pid":4509,"value":"容县","ext_id":"450921000000","label":"容县"},{"id":"450922","pid":4509,"value":"陆川县","ext_id":"450922000000","label":"陆川县"},{"id":"450923","pid":4509,"value":"博白县","ext_id":"450923000000","label":"博白县"},{"id":"450924","pid":4509,"value":"兴业县","ext_id":"450924000000","label":"兴业县"},{"id":"450981","pid":4509,"value":"北流市","ext_id":"450981000000","label":"北流市"}]},{"id":"4510","pid":45,"value":"百色市","ext_id":"451000000000","label":"百色市","children":[{"id":"451002","pid":4510,"value":"右江区","ext_id":"451002000000","label":"右江区"},{"id":"451003","pid":4510,"value":"田阳区","ext_id":"451003000000","label":"田阳区"},{"id":"451022","pid":4510,"value":"田东县","ext_id":"451022000000","label":"田东县"},{"id":"451024","pid":4510,"value":"德保县","ext_id":"451024000000","label":"德保县"},{"id":"451026","pid":4510,"value":"那坡县","ext_id":"451026000000","label":"那坡县"},{"id":"451027","pid":4510,"value":"凌云县","ext_id":"451027000000","label":"凌云县"},{"id":"451028","pid":4510,"value":"乐业县","ext_id":"451028000000","label":"乐业县"},{"id":"451029","pid":4510,"value":"田林县","ext_id":"451029000000","label":"田林县"},{"id":"451030","pid":4510,"value":"西林县","ext_id":"451030000000","label":"西林县"},{"id":"451031","pid":4510,"value":"隆林各族自治县","ext_id":"451031000000","label":"隆林各族自治县"},{"id":"451081","pid":4510,"value":"靖西市","ext_id":"451081000000","label":"靖西市"},{"id":"451082","pid":4510,"value":"平果市","ext_id":"451082000000","label":"平果市"}]},{"id":"4511","pid":45,"value":"贺州市","ext_id":"451100000000","label":"贺州市","children":[{"id":"451102","pid":4511,"value":"八步区","ext_id":"451102000000","label":"八步区"},{"id":"451103","pid":4511,"value":"平桂区","ext_id":"451103000000","label":"平桂区"},{"id":"451121","pid":4511,"value":"昭平县","ext_id":"451121000000","label":"昭平县"},{"id":"451122","pid":4511,"value":"钟山县","ext_id":"451122000000","label":"钟山县"},{"id":"451123","pid":4511,"value":"富川瑶族自治县","ext_id":"451123000000","label":"富川瑶族自治县"}]},{"id":"4512","pid":45,"value":"河池市","ext_id":"451200000000","label":"河池市","children":[{"id":"451202","pid":4512,"value":"金城江区","ext_id":"451202000000","label":"金城江区"},{"id":"451203","pid":4512,"value":"宜州区","ext_id":"451203000000","label":"宜州区"},{"id":"451221","pid":4512,"value":"南丹县","ext_id":"451221000000","label":"南丹县"},{"id":"451222","pid":4512,"value":"天峨县","ext_id":"451222000000","label":"天峨县"},{"id":"451223","pid":4512,"value":"凤山县","ext_id":"451223000000","label":"凤山县"},{"id":"451224","pid":4512,"value":"东兰县","ext_id":"451224000000","label":"东兰县"},{"id":"451225","pid":4512,"value":"罗城仫佬族自治县","ext_id":"451225000000","label":"罗城仫佬族自治县"},{"id":"451226","pid":4512,"value":"环江毛南族自治县","ext_id":"451226000000","label":"环江毛南族自治县"},{"id":"451227","pid":4512,"value":"巴马瑶族自治县","ext_id":"451227000000","label":"巴马瑶族自治县"},{"id":"451228","pid":4512,"value":"都安瑶族自治县","ext_id":"451228000000","label":"都安瑶族自治县"},{"id":"451229","pid":4512,"value":"大化瑶族自治县","ext_id":"451229000000","label":"大化瑶族自治县"}]},{"id":"4513","pid":45,"value":"来宾市","ext_id":"451300000000","label":"来宾市","children":[{"id":"451302","pid":4513,"value":"兴宾区","ext_id":"451302000000","label":"兴宾区"},{"id":"451321","pid":4513,"value":"忻城县","ext_id":"451321000000","label":"忻城县"},{"id":"451322","pid":4513,"value":"象州县","ext_id":"451322000000","label":"象州县"},{"id":"451323","pid":4513,"value":"武宣县","ext_id":"451323000000","label":"武宣县"},{"id":"451324","pid":4513,"value":"金秀瑶族自治县","ext_id":"451324000000","label":"金秀瑶族自治县"},{"id":"451381","pid":4513,"value":"合山市","ext_id":"451381000000","label":"合山市"}]},{"id":"4514","pid":45,"value":"崇左市","ext_id":"451400000000","label":"崇左市","children":[{"id":"451402","pid":4514,"value":"江州区","ext_id":"451402000000","label":"江州区"},{"id":"451421","pid":4514,"value":"扶绥县","ext_id":"451421000000","label":"扶绥县"},{"id":"451422","pid":4514,"value":"宁明县","ext_id":"451422000000","label":"宁明县"},{"id":"451423","pid":4514,"value":"龙州县","ext_id":"451423000000","label":"龙州县"},{"id":"451424","pid":4514,"value":"大新县","ext_id":"451424000000","label":"大新县"},{"id":"451425","pid":4514,"value":"天等县","ext_id":"451425000000","label":"天等县"},{"id":"451481","pid":4514,"value":"凭祥市","ext_id":"451481000000","label":"凭祥市"}]}]},{"id":"46","pid":0,"value":"海南省","ext_id":"460000000000","label":"海南省","children":[{"id":"4601","pid":46,"value":"海口市","ext_id":"460100000000","label":"海口市","children":[{"id":"460105","pid":4601,"value":"秀英区","ext_id":"460105000000","label":"秀英区"},{"id":"460106","pid":4601,"value":"龙华区","ext_id":"460106000000","label":"龙华区"},{"id":"460107","pid":4601,"value":"琼山区","ext_id":"460107000000","label":"琼山区"},{"id":"460108","pid":4601,"value":"美兰区","ext_id":"460108000000","label":"美兰区"}]},{"id":"4602","pid":46,"value":"三亚市","ext_id":"460200000000","label":"三亚市","children":[{"id":"460202","pid":4602,"value":"海棠区","ext_id":"460202000000","label":"海棠区"},{"id":"460203","pid":4602,"value":"吉阳区","ext_id":"460203000000","label":"吉阳区"},{"id":"460204","pid":4602,"value":"天涯区","ext_id":"460204000000","label":"天涯区"},{"id":"460205","pid":4602,"value":"崖州区","ext_id":"460205000000","label":"崖州区"}]},{"id":"4603","pid":46,"value":"三沙市","ext_id":"460300000000","label":"三沙市","children":[{"id":"460301","pid":4603,"value":"西沙区","ext_id":"460301000000","label":"西沙区"},{"id":"460302","pid":4603,"value":"南沙区","ext_id":"460302000000","label":"南沙区"}]},{"id":"4604","pid":46,"value":"儋州市","ext_id":"460400000000","label":"儋州市","children":[{"id":"460400","pid":4604,"value":"儋州市","ext_id":"460400000000","label":"儋州市"}]},{"id":"469001","pid":46,"value":"五指山市","ext_id":"469001000000","label":"五指山市","children":[{"id":"469001000","pid":469001,"value":"五指山市","ext_id":"469001000000","label":"五指山市"}]},{"id":"469002","pid":46,"value":"琼海市","ext_id":"469002000000","label":"琼海市","children":[{"id":"469002000","pid":469002,"value":"琼海市","ext_id":"469002000000","label":"琼海市"}]},{"id":"469005","pid":46,"value":"文昌市","ext_id":"469005000000","label":"文昌市","children":[{"id":"469005000","pid":469005,"value":"文昌市","ext_id":"469005000000","label":"文昌市"}]},{"id":"469006","pid":46,"value":"万宁市","ext_id":"469006000000","label":"万宁市","children":[{"id":"469006000","pid":469006,"value":"万宁市","ext_id":"469006000000","label":"万宁市"}]},{"id":"469007","pid":46,"value":"东方市","ext_id":"469007000000","label":"东方市","children":[{"id":"469007000","pid":469007,"value":"东方市","ext_id":"469007000000","label":"东方市"}]},{"id":"469021","pid":46,"value":"定安县","ext_id":"469021000000","label":"定安县","children":[{"id":"469021000","pid":469021,"value":"定安县","ext_id":"469021000000","label":"定安县"}]},{"id":"469022","pid":46,"value":"屯昌县","ext_id":"469022000000","label":"屯昌县","children":[{"id":"469022000","pid":469022,"value":"屯昌县","ext_id":"469022000000","label":"屯昌县"}]},{"id":"469023","pid":46,"value":"澄迈县","ext_id":"469023000000","label":"澄迈县","children":[{"id":"469023000","pid":469023,"value":"澄迈县","ext_id":"469023000000","label":"澄迈县"}]},{"id":"469024","pid":46,"value":"临高县","ext_id":"469024000000","label":"临高县","children":[{"id":"469024000","pid":469024,"value":"临高县","ext_id":"469024000000","label":"临高县"}]},{"id":"469025","pid":46,"value":"白沙黎族自治县","ext_id":"469025000000","label":"白沙黎族自治县","children":[{"id":"469025000","pid":469025,"value":"白沙黎族自治县","ext_id":"469025000000","label":"白沙黎族自治县"}]},{"id":"469026","pid":46,"value":"昌江黎族自治县","ext_id":"469026000000","label":"昌江黎族自治县","children":[{"id":"469026000","pid":469026,"value":"昌江黎族自治县","ext_id":"469026000000","label":"昌江黎族自治县"}]},{"id":"469027","pid":46,"value":"乐东黎族自治县","ext_id":"469027000000","label":"乐东黎族自治县","children":[{"id":"469027000","pid":469027,"value":"乐东黎族自治县","ext_id":"469027000000","label":"乐东黎族自治县"}]},{"id":"469028","pid":46,"value":"陵水黎族自治县","ext_id":"469028000000","label":"陵水黎族自治县","children":[{"id":"469028000","pid":469028,"value":"陵水黎族自治县","ext_id":"469028000000","label":"陵水黎族自治县"}]},{"id":"469029","pid":46,"value":"保亭黎族苗族自治县","ext_id":"469029000000","label":"保亭黎族苗族自治县","children":[{"id":"469029000","pid":469029,"value":"保亭黎族苗族自治县","ext_id":"469029000000","label":"保亭黎族苗族自治县"}]},{"id":"469030","pid":46,"value":"琼中黎族苗族自治县","ext_id":"469030000000","label":"琼中黎族苗族自治县","children":[{"id":"469030000","pid":469030,"value":"琼中黎族苗族自治县","ext_id":"469030000000","label":"琼中黎族苗族自治县"}]}]},{"id":"50","pid":0,"value":"重庆市","ext_id":"500000000000","label":"重庆市","children":[{"id":"5001","pid":50,"value":"重庆城区","ext_id":"500100000000","label":"重庆城区","children":[{"id":"500101","pid":5001,"value":"万州区","ext_id":"500101000000","label":"万州区"},{"id":"500102","pid":5001,"value":"涪陵区","ext_id":"500102000000","label":"涪陵区"},{"id":"500103","pid":5001,"value":"渝中区","ext_id":"500103000000","label":"渝中区"},{"id":"500104","pid":5001,"value":"大渡口区","ext_id":"500104000000","label":"大渡口区"},{"id":"500105","pid":5001,"value":"江北区","ext_id":"500105000000","label":"江北区"},{"id":"500106","pid":5001,"value":"沙坪坝区","ext_id":"500106000000","label":"沙坪坝区"},{"id":"500107","pid":5001,"value":"九龙坡区","ext_id":"500107000000","label":"九龙坡区"},{"id":"500108","pid":5001,"value":"南岸区","ext_id":"500108000000","label":"南岸区"},{"id":"500109","pid":5001,"value":"北碚区","ext_id":"500109000000","label":"北碚区"},{"id":"500110","pid":5001,"value":"綦江区","ext_id":"500110000000","label":"綦江区"},{"id":"500111","pid":5001,"value":"大足区","ext_id":"500111000000","label":"大足区"},{"id":"500112","pid":5001,"value":"渝北区","ext_id":"500112000000","label":"渝北区"},{"id":"500113","pid":5001,"value":"巴南区","ext_id":"500113000000","label":"巴南区"},{"id":"500114","pid":5001,"value":"黔江区","ext_id":"500114000000","label":"黔江区"},{"id":"500115","pid":5001,"value":"长寿区","ext_id":"500115000000","label":"长寿区"},{"id":"500116","pid":5001,"value":"江津区","ext_id":"500116000000","label":"江津区"},{"id":"500117","pid":5001,"value":"合川区","ext_id":"500117000000","label":"合川区"},{"id":"500118","pid":5001,"value":"永川区","ext_id":"500118000000","label":"永川区"},{"id":"500119","pid":5001,"value":"南川区","ext_id":"500119000000","label":"南川区"},{"id":"500120","pid":5001,"value":"璧山区","ext_id":"500120000000","label":"璧山区"},{"id":"500151","pid":5001,"value":"铜梁区","ext_id":"500151000000","label":"铜梁区"},{"id":"500152","pid":5001,"value":"潼南区","ext_id":"500152000000","label":"潼南区"},{"id":"500153","pid":5001,"value":"荣昌区","ext_id":"500153000000","label":"荣昌区"},{"id":"500154","pid":5001,"value":"开州区","ext_id":"500154000000","label":"开州区"},{"id":"500155","pid":5001,"value":"梁平区","ext_id":"500155000000","label":"梁平区"},{"id":"500156","pid":5001,"value":"武隆区","ext_id":"500156000000","label":"武隆区"}]},{"id":"5002","pid":50,"value":"重庆郊县","ext_id":"500200000000","label":"重庆郊县","children":[{"id":"500229","pid":5002,"value":"城口县","ext_id":"500229000000","label":"城口县"},{"id":"500230","pid":5002,"value":"丰都县","ext_id":"500230000000","label":"丰都县"},{"id":"500231","pid":5002,"value":"垫江县","ext_id":"500231000000","label":"垫江县"},{"id":"500233","pid":5002,"value":"忠县","ext_id":"500233000000","label":"忠县"},{"id":"500235","pid":5002,"value":"云阳县","ext_id":"500235000000","label":"云阳县"},{"id":"500236","pid":5002,"value":"奉节县","ext_id":"500236000000","label":"奉节县"},{"id":"500237","pid":5002,"value":"巫山县","ext_id":"500237000000","label":"巫山县"},{"id":"500238","pid":5002,"value":"巫溪县","ext_id":"500238000000","label":"巫溪县"},{"id":"500240","pid":5002,"value":"石柱土家族自治县","ext_id":"500240000000","label":"石柱土家族自治县"},{"id":"500241","pid":5002,"value":"秀山土家族苗族自治县","ext_id":"500241000000","label":"秀山土家族苗族自治县"},{"id":"500242","pid":5002,"value":"酉阳土家族苗族自治县","ext_id":"500242000000","label":"酉阳土家族苗族自治县"},{"id":"500243","pid":5002,"value":"彭水苗族土家族自治县","ext_id":"500243000000","label":"彭水苗族土家族自治县"}]}]},{"id":"51","pid":0,"value":"四川省","ext_id":"510000000000","label":"四川省","children":[{"id":"5101","pid":51,"value":"成都市","ext_id":"510100000000","label":"成都市","children":[{"id":"510104","pid":5101,"value":"锦江区","ext_id":"510104000000","label":"锦江区"},{"id":"510105","pid":5101,"value":"青羊区","ext_id":"510105000000","label":"青羊区"},{"id":"510106","pid":5101,"value":"金牛区","ext_id":"510106000000","label":"金牛区"},{"id":"510107","pid":5101,"value":"武侯区","ext_id":"510107000000","label":"武侯区"},{"id":"510108","pid":5101,"value":"成华区","ext_id":"510108000000","label":"成华区"},{"id":"510112","pid":5101,"value":"龙泉驿区","ext_id":"510112000000","label":"龙泉驿区"},{"id":"510113","pid":5101,"value":"青白江区","ext_id":"510113000000","label":"青白江区"},{"id":"510114","pid":5101,"value":"新都区","ext_id":"510114000000","label":"新都区"},{"id":"510115","pid":5101,"value":"温江区","ext_id":"510115000000","label":"温江区"},{"id":"510116","pid":5101,"value":"双流区","ext_id":"510116000000","label":"双流区"},{"id":"510117","pid":5101,"value":"郫都区","ext_id":"510117000000","label":"郫都区"},{"id":"510118","pid":5101,"value":"新津区","ext_id":"510118000000","label":"新津区"},{"id":"510121","pid":5101,"value":"金堂县","ext_id":"510121000000","label":"金堂县"},{"id":"510129","pid":5101,"value":"大邑县","ext_id":"510129000000","label":"大邑县"},{"id":"510131","pid":5101,"value":"蒲江县","ext_id":"510131000000","label":"蒲江县"},{"id":"510181","pid":5101,"value":"都江堰市","ext_id":"510181000000","label":"都江堰市"},{"id":"510182","pid":5101,"value":"彭州市","ext_id":"510182000000","label":"彭州市"},{"id":"510183","pid":5101,"value":"邛崃市","ext_id":"510183000000","label":"邛崃市"},{"id":"510184","pid":5101,"value":"崇州市","ext_id":"510184000000","label":"崇州市"},{"id":"510185","pid":5101,"value":"简阳市","ext_id":"510185000000","label":"简阳市"}]},{"id":"5103","pid":51,"value":"自贡市","ext_id":"510300000000","label":"自贡市","children":[{"id":"510302","pid":5103,"value":"自流井区","ext_id":"510302000000","label":"自流井区"},{"id":"510303","pid":5103,"value":"贡井区","ext_id":"510303000000","label":"贡井区"},{"id":"510304","pid":5103,"value":"大安区","ext_id":"510304000000","label":"大安区"},{"id":"510311","pid":5103,"value":"沿滩区","ext_id":"510311000000","label":"沿滩区"},{"id":"510321","pid":5103,"value":"荣县","ext_id":"510321000000","label":"荣县"},{"id":"510322","pid":5103,"value":"富顺县","ext_id":"510322000000","label":"富顺县"}]},{"id":"5104","pid":51,"value":"攀枝花市","ext_id":"510400000000","label":"攀枝花市","children":[{"id":"510402","pid":5104,"value":"东区","ext_id":"510402000000","label":"东区"},{"id":"510403","pid":5104,"value":"西区","ext_id":"510403000000","label":"西区"},{"id":"510411","pid":5104,"value":"仁和区","ext_id":"510411000000","label":"仁和区"},{"id":"510421","pid":5104,"value":"米易县","ext_id":"510421000000","label":"米易县"},{"id":"510422","pid":5104,"value":"盐边县","ext_id":"510422000000","label":"盐边县"}]},{"id":"5105","pid":51,"value":"泸州市","ext_id":"510500000000","label":"泸州市","children":[{"id":"510502","pid":5105,"value":"江阳区","ext_id":"510502000000","label":"江阳区"},{"id":"510503","pid":5105,"value":"纳溪区","ext_id":"510503000000","label":"纳溪区"},{"id":"510504","pid":5105,"value":"龙马潭区","ext_id":"510504000000","label":"龙马潭区"},{"id":"510521","pid":5105,"value":"泸县","ext_id":"510521000000","label":"泸县"},{"id":"510522","pid":5105,"value":"合江县","ext_id":"510522000000","label":"合江县"},{"id":"510524","pid":5105,"value":"叙永县","ext_id":"510524000000","label":"叙永县"},{"id":"510525","pid":5105,"value":"古蔺县","ext_id":"510525000000","label":"古蔺县"}]},{"id":"5106","pid":51,"value":"德阳市","ext_id":"510600000000","label":"德阳市","children":[{"id":"510603","pid":5106,"value":"旌阳区","ext_id":"510603000000","label":"旌阳区"},{"id":"510604","pid":5106,"value":"罗江区","ext_id":"510604000000","label":"罗江区"},{"id":"510623","pid":5106,"value":"中江县","ext_id":"510623000000","label":"中江县"},{"id":"510681","pid":5106,"value":"广汉市","ext_id":"510681000000","label":"广汉市"},{"id":"510682","pid":5106,"value":"什邡市","ext_id":"510682000000","label":"什邡市"},{"id":"510683","pid":5106,"value":"绵竹市","ext_id":"510683000000","label":"绵竹市"}]},{"id":"5107","pid":51,"value":"绵阳市","ext_id":"510700000000","label":"绵阳市","children":[{"id":"510703","pid":5107,"value":"涪城区","ext_id":"510703000000","label":"涪城区"},{"id":"510704","pid":5107,"value":"游仙区","ext_id":"510704000000","label":"游仙区"},{"id":"510705","pid":5107,"value":"安州区","ext_id":"510705000000","label":"安州区"},{"id":"510722","pid":5107,"value":"三台县","ext_id":"510722000000","label":"三台县"},{"id":"510723","pid":5107,"value":"盐亭县","ext_id":"510723000000","label":"盐亭县"},{"id":"510725","pid":5107,"value":"梓潼县","ext_id":"510725000000","label":"梓潼县"},{"id":"510726","pid":5107,"value":"北川羌族自治县","ext_id":"510726000000","label":"北川羌族自治县"},{"id":"510727","pid":5107,"value":"平武县","ext_id":"510727000000","label":"平武县"},{"id":"510781","pid":5107,"value":"江油市","ext_id":"510781000000","label":"江油市"}]},{"id":"5108","pid":51,"value":"广元市","ext_id":"510800000000","label":"广元市","children":[{"id":"510802","pid":5108,"value":"利州区","ext_id":"510802000000","label":"利州区"},{"id":"510811","pid":5108,"value":"昭化区","ext_id":"510811000000","label":"昭化区"},{"id":"510812","pid":5108,"value":"朝天区","ext_id":"510812000000","label":"朝天区"},{"id":"510821","pid":5108,"value":"旺苍县","ext_id":"510821000000","label":"旺苍县"},{"id":"510822","pid":5108,"value":"青川县","ext_id":"510822000000","label":"青川县"},{"id":"510823","pid":5108,"value":"剑阁县","ext_id":"510823000000","label":"剑阁县"},{"id":"510824","pid":5108,"value":"苍溪县","ext_id":"510824000000","label":"苍溪县"}]},{"id":"5109","pid":51,"value":"遂宁市","ext_id":"510900000000","label":"遂宁市","children":[{"id":"510903","pid":5109,"value":"船山区","ext_id":"510903000000","label":"船山区"},{"id":"510904","pid":5109,"value":"安居区","ext_id":"510904000000","label":"安居区"},{"id":"510921","pid":5109,"value":"蓬溪县","ext_id":"510921000000","label":"蓬溪县"},{"id":"510923","pid":5109,"value":"大英县","ext_id":"510923000000","label":"大英县"},{"id":"510981","pid":5109,"value":"射洪市","ext_id":"510981000000","label":"射洪市"}]},{"id":"5110","pid":51,"value":"内江市","ext_id":"511000000000","label":"内江市","children":[{"id":"511002","pid":5110,"value":"市中区","ext_id":"511002000000","label":"市中区"},{"id":"511011","pid":5110,"value":"东兴区","ext_id":"511011000000","label":"东兴区"},{"id":"511024","pid":5110,"value":"威远县","ext_id":"511024000000","label":"威远县"},{"id":"511025","pid":5110,"value":"资中县","ext_id":"511025000000","label":"资中县"},{"id":"511083","pid":5110,"value":"隆昌市","ext_id":"511083000000","label":"隆昌市"}]},{"id":"5111","pid":51,"value":"乐山市","ext_id":"511100000000","label":"乐山市","children":[{"id":"511102","pid":5111,"value":"市中区","ext_id":"511102000000","label":"市中区"},{"id":"511111","pid":5111,"value":"沙湾区","ext_id":"511111000000","label":"沙湾区"},{"id":"511112","pid":5111,"value":"五通桥区","ext_id":"511112000000","label":"五通桥区"},{"id":"511113","pid":5111,"value":"金口河区","ext_id":"511113000000","label":"金口河区"},{"id":"511123","pid":5111,"value":"犍为县","ext_id":"511123000000","label":"犍为县"},{"id":"511124","pid":5111,"value":"井研县","ext_id":"511124000000","label":"井研县"},{"id":"511126","pid":5111,"value":"夹江县","ext_id":"511126000000","label":"夹江县"},{"id":"511129","pid":5111,"value":"沐川县","ext_id":"511129000000","label":"沐川县"},{"id":"511132","pid":5111,"value":"峨边彝族自治县","ext_id":"511132000000","label":"峨边彝族自治县"},{"id":"511133","pid":5111,"value":"马边彝族自治县","ext_id":"511133000000","label":"马边彝族自治县"},{"id":"511181","pid":5111,"value":"峨眉山市","ext_id":"511181000000","label":"峨眉山市"}]},{"id":"5113","pid":51,"value":"南充市","ext_id":"511300000000","label":"南充市","children":[{"id":"511302","pid":5113,"value":"顺庆区","ext_id":"511302000000","label":"顺庆区"},{"id":"511303","pid":5113,"value":"高坪区","ext_id":"511303000000","label":"高坪区"},{"id":"511304","pid":5113,"value":"嘉陵区","ext_id":"511304000000","label":"嘉陵区"},{"id":"511321","pid":5113,"value":"南部县","ext_id":"511321000000","label":"南部县"},{"id":"511322","pid":5113,"value":"营山县","ext_id":"511322000000","label":"营山县"},{"id":"511323","pid":5113,"value":"蓬安县","ext_id":"511323000000","label":"蓬安县"},{"id":"511324","pid":5113,"value":"仪陇县","ext_id":"511324000000","label":"仪陇县"},{"id":"511325","pid":5113,"value":"西充县","ext_id":"511325000000","label":"西充县"},{"id":"511381","pid":5113,"value":"阆中市","ext_id":"511381000000","label":"阆中市"}]},{"id":"5114","pid":51,"value":"眉山市","ext_id":"511400000000","label":"眉山市","children":[{"id":"511402","pid":5114,"value":"东坡区","ext_id":"511402000000","label":"东坡区"},{"id":"511403","pid":5114,"value":"彭山区","ext_id":"511403000000","label":"彭山区"},{"id":"511421","pid":5114,"value":"仁寿县","ext_id":"511421000000","label":"仁寿县"},{"id":"511423","pid":5114,"value":"洪雅县","ext_id":"511423000000","label":"洪雅县"},{"id":"511424","pid":5114,"value":"丹棱县","ext_id":"511424000000","label":"丹棱县"},{"id":"511425","pid":5114,"value":"青神县","ext_id":"511425000000","label":"青神县"}]},{"id":"5115","pid":51,"value":"宜宾市","ext_id":"511500000000","label":"宜宾市","children":[{"id":"511502","pid":5115,"value":"翠屏区","ext_id":"511502000000","label":"翠屏区"},{"id":"511503","pid":5115,"value":"南溪区","ext_id":"511503000000","label":"南溪区"},{"id":"511504","pid":5115,"value":"叙州区","ext_id":"511504000000","label":"叙州区"},{"id":"511523","pid":5115,"value":"江安县","ext_id":"511523000000","label":"江安县"},{"id":"511524","pid":5115,"value":"长宁县","ext_id":"511524000000","label":"长宁县"},{"id":"511525","pid":5115,"value":"高县","ext_id":"511525000000","label":"高县"},{"id":"511526","pid":5115,"value":"珙县","ext_id":"511526000000","label":"珙县"},{"id":"511527","pid":5115,"value":"筠连县","ext_id":"511527000000","label":"筠连县"},{"id":"511528","pid":5115,"value":"兴文县","ext_id":"511528000000","label":"兴文县"},{"id":"511529","pid":5115,"value":"屏山县","ext_id":"511529000000","label":"屏山县"}]},{"id":"5116","pid":51,"value":"广安市","ext_id":"511600000000","label":"广安市","children":[{"id":"511602","pid":5116,"value":"广安区","ext_id":"511602000000","label":"广安区"},{"id":"511603","pid":5116,"value":"前锋区","ext_id":"511603000000","label":"前锋区"},{"id":"511621","pid":5116,"value":"岳池县","ext_id":"511621000000","label":"岳池县"},{"id":"511622","pid":5116,"value":"武胜县","ext_id":"511622000000","label":"武胜县"},{"id":"511623","pid":5116,"value":"邻水县","ext_id":"511623000000","label":"邻水县"},{"id":"511681","pid":5116,"value":"华蓥市","ext_id":"511681000000","label":"华蓥市"}]},{"id":"5117","pid":51,"value":"达州市","ext_id":"511700000000","label":"达州市","children":[{"id":"511702","pid":5117,"value":"通川区","ext_id":"511702000000","label":"通川区"},{"id":"511703","pid":5117,"value":"达川区","ext_id":"511703000000","label":"达川区"},{"id":"511722","pid":5117,"value":"宣汉县","ext_id":"511722000000","label":"宣汉县"},{"id":"511723","pid":5117,"value":"开江县","ext_id":"511723000000","label":"开江县"},{"id":"511724","pid":5117,"value":"大竹县","ext_id":"511724000000","label":"大竹县"},{"id":"511725","pid":5117,"value":"渠县","ext_id":"511725000000","label":"渠县"},{"id":"511781","pid":5117,"value":"万源市","ext_id":"511781000000","label":"万源市"}]},{"id":"5118","pid":51,"value":"雅安市","ext_id":"511800000000","label":"雅安市","children":[{"id":"511802","pid":5118,"value":"雨城区","ext_id":"511802000000","label":"雨城区"},{"id":"511803","pid":5118,"value":"名山区","ext_id":"511803000000","label":"名山区"},{"id":"511822","pid":5118,"value":"荥经县","ext_id":"511822000000","label":"荥经县"},{"id":"511823","pid":5118,"value":"汉源县","ext_id":"511823000000","label":"汉源县"},{"id":"511824","pid":5118,"value":"石棉县","ext_id":"511824000000","label":"石棉县"},{"id":"511825","pid":5118,"value":"天全县","ext_id":"511825000000","label":"天全县"},{"id":"511826","pid":5118,"value":"芦山县","ext_id":"511826000000","label":"芦山县"},{"id":"511827","pid":5118,"value":"宝兴县","ext_id":"511827000000","label":"宝兴县"}]},{"id":"5119","pid":51,"value":"巴中市","ext_id":"511900000000","label":"巴中市","children":[{"id":"511902","pid":5119,"value":"巴州区","ext_id":"511902000000","label":"巴州区"},{"id":"511903","pid":5119,"value":"恩阳区","ext_id":"511903000000","label":"恩阳区"},{"id":"511921","pid":5119,"value":"通江县","ext_id":"511921000000","label":"通江县"},{"id":"511922","pid":5119,"value":"南江县","ext_id":"511922000000","label":"南江县"},{"id":"511923","pid":5119,"value":"平昌县","ext_id":"511923000000","label":"平昌县"}]},{"id":"5120","pid":51,"value":"资阳市","ext_id":"512000000000","label":"资阳市","children":[{"id":"512002","pid":5120,"value":"雁江区","ext_id":"512002000000","label":"雁江区"},{"id":"512021","pid":5120,"value":"安岳县","ext_id":"512021000000","label":"安岳县"},{"id":"512022","pid":5120,"value":"乐至县","ext_id":"512022000000","label":"乐至县"}]},{"id":"5132","pid":51,"value":"阿坝藏族羌族自治州","ext_id":"513200000000","label":"阿坝藏族羌族自治州","children":[{"id":"513201","pid":5132,"value":"马尔康市","ext_id":"513201000000","label":"马尔康市"},{"id":"513221","pid":5132,"value":"汶川县","ext_id":"513221000000","label":"汶川县"},{"id":"513222","pid":5132,"value":"理县","ext_id":"513222000000","label":"理县"},{"id":"513223","pid":5132,"value":"茂县","ext_id":"513223000000","label":"茂县"},{"id":"513224","pid":5132,"value":"松潘县","ext_id":"513224000000","label":"松潘县"},{"id":"513225","pid":5132,"value":"九寨沟县","ext_id":"513225000000","label":"九寨沟县"},{"id":"513226","pid":5132,"value":"金川县","ext_id":"513226000000","label":"金川县"},{"id":"513227","pid":5132,"value":"小金县","ext_id":"513227000000","label":"小金县"},{"id":"513228","pid":5132,"value":"黑水县","ext_id":"513228000000","label":"黑水县"},{"id":"513230","pid":5132,"value":"壤塘县","ext_id":"513230000000","label":"壤塘县"},{"id":"513231","pid":5132,"value":"阿坝县","ext_id":"513231000000","label":"阿坝县"},{"id":"513232","pid":5132,"value":"若尔盖县","ext_id":"513232000000","label":"若尔盖县"},{"id":"513233","pid":5132,"value":"红原县","ext_id":"513233000000","label":"红原县"}]},{"id":"5133","pid":51,"value":"甘孜藏族自治州","ext_id":"513300000000","label":"甘孜藏族自治州","children":[{"id":"513301","pid":5133,"value":"康定市","ext_id":"513301000000","label":"康定市"},{"id":"513322","pid":5133,"value":"泸定县","ext_id":"513322000000","label":"泸定县"},{"id":"513323","pid":5133,"value":"丹巴县","ext_id":"513323000000","label":"丹巴县"},{"id":"513324","pid":5133,"value":"九龙县","ext_id":"513324000000","label":"九龙县"},{"id":"513325","pid":5133,"value":"雅江县","ext_id":"513325000000","label":"雅江县"},{"id":"513326","pid":5133,"value":"道孚县","ext_id":"513326000000","label":"道孚县"},{"id":"513327","pid":5133,"value":"炉霍县","ext_id":"513327000000","label":"炉霍县"},{"id":"513328","pid":5133,"value":"甘孜县","ext_id":"513328000000","label":"甘孜县"},{"id":"513329","pid":5133,"value":"新龙县","ext_id":"513329000000","label":"新龙县"},{"id":"513330","pid":5133,"value":"德格县","ext_id":"513330000000","label":"德格县"},{"id":"513331","pid":5133,"value":"白玉县","ext_id":"513331000000","label":"白玉县"},{"id":"513332","pid":5133,"value":"石渠县","ext_id":"513332000000","label":"石渠县"},{"id":"513333","pid":5133,"value":"色达县","ext_id":"513333000000","label":"色达县"},{"id":"513334","pid":5133,"value":"理塘县","ext_id":"513334000000","label":"理塘县"},{"id":"513335","pid":5133,"value":"巴塘县","ext_id":"513335000000","label":"巴塘县"},{"id":"513336","pid":5133,"value":"乡城县","ext_id":"513336000000","label":"乡城县"},{"id":"513337","pid":5133,"value":"稻城县","ext_id":"513337000000","label":"稻城县"},{"id":"513338","pid":5133,"value":"得荣县","ext_id":"513338000000","label":"得荣县"}]},{"id":"5134","pid":51,"value":"凉山彝族自治州","ext_id":"513400000000","label":"凉山彝族自治州","children":[{"id":"513401","pid":5134,"value":"西昌市","ext_id":"513401000000","label":"西昌市"},{"id":"513402","pid":5134,"value":"会理市","ext_id":"513402000000","label":"会理市"},{"id":"513422","pid":5134,"value":"木里藏族自治县","ext_id":"513422000000","label":"木里藏族自治县"},{"id":"513423","pid":5134,"value":"盐源县","ext_id":"513423000000","label":"盐源县"},{"id":"513424","pid":5134,"value":"德昌县","ext_id":"513424000000","label":"德昌县"},{"id":"513426","pid":5134,"value":"会东县","ext_id":"513426000000","label":"会东县"},{"id":"513427","pid":5134,"value":"宁南县","ext_id":"513427000000","label":"宁南县"},{"id":"513428","pid":5134,"value":"普格县","ext_id":"513428000000","label":"普格县"},{"id":"513429","pid":5134,"value":"布拖县","ext_id":"513429000000","label":"布拖县"},{"id":"513430","pid":5134,"value":"金阳县","ext_id":"513430000000","label":"金阳县"},{"id":"513431","pid":5134,"value":"昭觉县","ext_id":"513431000000","label":"昭觉县"},{"id":"513432","pid":5134,"value":"喜德县","ext_id":"513432000000","label":"喜德县"},{"id":"513433","pid":5134,"value":"冕宁县","ext_id":"513433000000","label":"冕宁县"},{"id":"513434","pid":5134,"value":"越西县","ext_id":"513434000000","label":"越西县"},{"id":"513435","pid":5134,"value":"甘洛县","ext_id":"513435000000","label":"甘洛县"},{"id":"513436","pid":5134,"value":"美姑县","ext_id":"513436000000","label":"美姑县"},{"id":"513437","pid":5134,"value":"雷波县","ext_id":"513437000000","label":"雷波县"}]}]},{"id":"52","pid":0,"value":"贵州省","ext_id":"520000000000","label":"贵州省","children":[{"id":"5201","pid":52,"value":"贵阳市","ext_id":"520100000000","label":"贵阳市","children":[{"id":"520102","pid":5201,"value":"南明区","ext_id":"520102000000","label":"南明区"},{"id":"520103","pid":5201,"value":"云岩区","ext_id":"520103000000","label":"云岩区"},{"id":"520111","pid":5201,"value":"花溪区","ext_id":"520111000000","label":"花溪区"},{"id":"520112","pid":5201,"value":"乌当区","ext_id":"520112000000","label":"乌当区"},{"id":"520113","pid":5201,"value":"白云区","ext_id":"520113000000","label":"白云区"},{"id":"520115","pid":5201,"value":"观山湖区","ext_id":"520115000000","label":"观山湖区"},{"id":"520121","pid":5201,"value":"开阳县","ext_id":"520121000000","label":"开阳县"},{"id":"520122","pid":5201,"value":"息烽县","ext_id":"520122000000","label":"息烽县"},{"id":"520123","pid":5201,"value":"修文县","ext_id":"520123000000","label":"修文县"},{"id":"520181","pid":5201,"value":"清镇市","ext_id":"520181000000","label":"清镇市"}]},{"id":"5202","pid":52,"value":"六盘水市","ext_id":"520200000000","label":"六盘水市","children":[{"id":"520201","pid":5202,"value":"钟山区","ext_id":"520201000000","label":"钟山区"},{"id":"520203","pid":5202,"value":"六枝特区","ext_id":"520203000000","label":"六枝特区"},{"id":"520204","pid":5202,"value":"水城区","ext_id":"520204000000","label":"水城区"},{"id":"520281","pid":5202,"value":"盘州市","ext_id":"520281000000","label":"盘州市"}]},{"id":"5203","pid":52,"value":"遵义市","ext_id":"520300000000","label":"遵义市","children":[{"id":"520302","pid":5203,"value":"红花岗区","ext_id":"520302000000","label":"红花岗区"},{"id":"520303","pid":5203,"value":"汇川区","ext_id":"520303000000","label":"汇川区"},{"id":"520304","pid":5203,"value":"播州区","ext_id":"520304000000","label":"播州区"},{"id":"520322","pid":5203,"value":"桐梓县","ext_id":"520322000000","label":"桐梓县"},{"id":"520323","pid":5203,"value":"绥阳县","ext_id":"520323000000","label":"绥阳县"},{"id":"520324","pid":5203,"value":"正安县","ext_id":"520324000000","label":"正安县"},{"id":"520325","pid":5203,"value":"道真仡佬族苗族自治县","ext_id":"520325000000","label":"道真仡佬族苗族自治县"},{"id":"520326","pid":5203,"value":"务川仡佬族苗族自治县","ext_id":"520326000000","label":"务川仡佬族苗族自治县"},{"id":"520327","pid":5203,"value":"凤冈县","ext_id":"520327000000","label":"凤冈县"},{"id":"520328","pid":5203,"value":"湄潭县","ext_id":"520328000000","label":"湄潭县"},{"id":"520329","pid":5203,"value":"余庆县","ext_id":"520329000000","label":"余庆县"},{"id":"520330","pid":5203,"value":"习水县","ext_id":"520330000000","label":"习水县"},{"id":"520381","pid":5203,"value":"赤水市","ext_id":"520381000000","label":"赤水市"},{"id":"520382","pid":5203,"value":"仁怀市","ext_id":"520382000000","label":"仁怀市"}]},{"id":"5204","pid":52,"value":"安顺市","ext_id":"520400000000","label":"安顺市","children":[{"id":"520402","pid":5204,"value":"西秀区","ext_id":"520402000000","label":"西秀区"},{"id":"520403","pid":5204,"value":"平坝区","ext_id":"520403000000","label":"平坝区"},{"id":"520422","pid":5204,"value":"普定县","ext_id":"520422000000","label":"普定县"},{"id":"520423","pid":5204,"value":"镇宁布依族苗族自治县","ext_id":"520423000000","label":"镇宁布依族苗族自治县"},{"id":"520424","pid":5204,"value":"关岭布依族苗族自治县","ext_id":"520424000000","label":"关岭布依族苗族自治县"},{"id":"520425","pid":5204,"value":"紫云苗族布依族自治县","ext_id":"520425000000","label":"紫云苗族布依族自治县"}]},{"id":"5205","pid":52,"value":"毕节市","ext_id":"520500000000","label":"毕节市","children":[{"id":"520502","pid":5205,"value":"七星关区","ext_id":"520502000000","label":"七星关区"},{"id":"520521","pid":5205,"value":"大方县","ext_id":"520521000000","label":"大方县"},{"id":"520523","pid":5205,"value":"金沙县","ext_id":"520523000000","label":"金沙县"},{"id":"520524","pid":5205,"value":"织金县","ext_id":"520524000000","label":"织金县"},{"id":"520525","pid":5205,"value":"纳雍县","ext_id":"520525000000","label":"纳雍县"},{"id":"520526","pid":5205,"value":"威宁彝族回族苗族自治县","ext_id":"520526000000","label":"威宁彝族回族苗族自治县"},{"id":"520527","pid":5205,"value":"赫章县","ext_id":"520527000000","label":"赫章县"},{"id":"520581","pid":5205,"value":"黔西市","ext_id":"520581000000","label":"黔西市"}]},{"id":"5206","pid":52,"value":"铜仁市","ext_id":"520600000000","label":"铜仁市","children":[{"id":"520602","pid":5206,"value":"碧江区","ext_id":"520602000000","label":"碧江区"},{"id":"520603","pid":5206,"value":"万山区","ext_id":"520603000000","label":"万山区"},{"id":"520621","pid":5206,"value":"江口县","ext_id":"520621000000","label":"江口县"},{"id":"520622","pid":5206,"value":"玉屏侗族自治县","ext_id":"520622000000","label":"玉屏侗族自治县"},{"id":"520623","pid":5206,"value":"石阡县","ext_id":"520623000000","label":"石阡县"},{"id":"520624","pid":5206,"value":"思南县","ext_id":"520624000000","label":"思南县"},{"id":"520625","pid":5206,"value":"印江土家族苗族自治县","ext_id":"520625000000","label":"印江土家族苗族自治县"},{"id":"520626","pid":5206,"value":"德江县","ext_id":"520626000000","label":"德江县"},{"id":"520627","pid":5206,"value":"沿河土家族自治县","ext_id":"520627000000","label":"沿河土家族自治县"},{"id":"520628","pid":5206,"value":"松桃苗族自治县","ext_id":"520628000000","label":"松桃苗族自治县"}]},{"id":"5223","pid":52,"value":"黔西南布依族苗族自治州","ext_id":"522300000000","label":"黔西南布依族苗族自治州","children":[{"id":"522301","pid":5223,"value":"兴义市","ext_id":"522301000000","label":"兴义市"},{"id":"522302","pid":5223,"value":"兴仁市","ext_id":"522302000000","label":"兴仁市"},{"id":"522323","pid":5223,"value":"普安县","ext_id":"522323000000","label":"普安县"},{"id":"522324","pid":5223,"value":"晴隆县","ext_id":"522324000000","label":"晴隆县"},{"id":"522325","pid":5223,"value":"贞丰县","ext_id":"522325000000","label":"贞丰县"},{"id":"522326","pid":5223,"value":"望谟县","ext_id":"522326000000","label":"望谟县"},{"id":"522327","pid":5223,"value":"册亨县","ext_id":"522327000000","label":"册亨县"},{"id":"522328","pid":5223,"value":"安龙县","ext_id":"522328000000","label":"安龙县"}]},{"id":"5226","pid":52,"value":"黔东南苗族侗族自治州","ext_id":"522600000000","label":"黔东南苗族侗族自治州","children":[{"id":"522601","pid":5226,"value":"凯里市","ext_id":"522601000000","label":"凯里市"},{"id":"522622","pid":5226,"value":"黄平县","ext_id":"522622000000","label":"黄平县"},{"id":"522623","pid":5226,"value":"施秉县","ext_id":"522623000000","label":"施秉县"},{"id":"522624","pid":5226,"value":"三穗县","ext_id":"522624000000","label":"三穗县"},{"id":"522625","pid":5226,"value":"镇远县","ext_id":"522625000000","label":"镇远县"},{"id":"522626","pid":5226,"value":"岑巩县","ext_id":"522626000000","label":"岑巩县"},{"id":"522627","pid":5226,"value":"天柱县","ext_id":"522627000000","label":"天柱县"},{"id":"522628","pid":5226,"value":"锦屏县","ext_id":"522628000000","label":"锦屏县"},{"id":"522629","pid":5226,"value":"剑河县","ext_id":"522629000000","label":"剑河县"},{"id":"522630","pid":5226,"value":"台江县","ext_id":"522630000000","label":"台江县"},{"id":"522631","pid":5226,"value":"黎平县","ext_id":"522631000000","label":"黎平县"},{"id":"522632","pid":5226,"value":"榕江县","ext_id":"522632000000","label":"榕江县"},{"id":"522633","pid":5226,"value":"从江县","ext_id":"522633000000","label":"从江县"},{"id":"522634","pid":5226,"value":"雷山县","ext_id":"522634000000","label":"雷山县"},{"id":"522635","pid":5226,"value":"麻江县","ext_id":"522635000000","label":"麻江县"},{"id":"522636","pid":5226,"value":"丹寨县","ext_id":"522636000000","label":"丹寨县"}]},{"id":"5227","pid":52,"value":"黔南布依族苗族自治州","ext_id":"522700000000","label":"黔南布依族苗族自治州","children":[{"id":"522701","pid":5227,"value":"都匀市","ext_id":"522701000000","label":"都匀市"},{"id":"522702","pid":5227,"value":"福泉市","ext_id":"522702000000","label":"福泉市"},{"id":"522722","pid":5227,"value":"荔波县","ext_id":"522722000000","label":"荔波县"},{"id":"522723","pid":5227,"value":"贵定县","ext_id":"522723000000","label":"贵定县"},{"id":"522725","pid":5227,"value":"瓮安县","ext_id":"522725000000","label":"瓮安县"},{"id":"522726","pid":5227,"value":"独山县","ext_id":"522726000000","label":"独山县"},{"id":"522727","pid":5227,"value":"平塘县","ext_id":"522727000000","label":"平塘县"},{"id":"522728","pid":5227,"value":"罗甸县","ext_id":"522728000000","label":"罗甸县"},{"id":"522729","pid":5227,"value":"长顺县","ext_id":"522729000000","label":"长顺县"},{"id":"522730","pid":5227,"value":"龙里县","ext_id":"522730000000","label":"龙里县"},{"id":"522731","pid":5227,"value":"惠水县","ext_id":"522731000000","label":"惠水县"},{"id":"522732","pid":5227,"value":"三都水族自治县","ext_id":"522732000000","label":"三都水族自治县"}]}]},{"id":"53","pid":0,"value":"云南省","ext_id":"530000000000","label":"云南省","children":[{"id":"5301","pid":53,"value":"昆明市","ext_id":"530100000000","label":"昆明市","children":[{"id":"530102","pid":5301,"value":"五华区","ext_id":"530102000000","label":"五华区"},{"id":"530103","pid":5301,"value":"盘龙区","ext_id":"530103000000","label":"盘龙区"},{"id":"530111","pid":5301,"value":"官渡区","ext_id":"530111000000","label":"官渡区"},{"id":"530112","pid":5301,"value":"西山区","ext_id":"530112000000","label":"西山区"},{"id":"530113","pid":5301,"value":"东川区","ext_id":"530113000000","label":"东川区"},{"id":"530114","pid":5301,"value":"呈贡区","ext_id":"530114000000","label":"呈贡区"},{"id":"530115","pid":5301,"value":"晋宁区","ext_id":"530115000000","label":"晋宁区"},{"id":"530124","pid":5301,"value":"富民县","ext_id":"530124000000","label":"富民县"},{"id":"530125","pid":5301,"value":"宜良县","ext_id":"530125000000","label":"宜良县"},{"id":"530126","pid":5301,"value":"石林彝族自治县","ext_id":"530126000000","label":"石林彝族自治县"},{"id":"530127","pid":5301,"value":"嵩明县","ext_id":"530127000000","label":"嵩明县"},{"id":"530128","pid":5301,"value":"禄劝彝族苗族自治县","ext_id":"530128000000","label":"禄劝彝族苗族自治县"},{"id":"530129","pid":5301,"value":"寻甸回族彝族自治县","ext_id":"530129000000","label":"寻甸回族彝族自治县"},{"id":"530181","pid":5301,"value":"安宁市","ext_id":"530181000000","label":"安宁市"}]},{"id":"5303","pid":53,"value":"曲靖市","ext_id":"530300000000","label":"曲靖市","children":[{"id":"530302","pid":5303,"value":"麒麟区","ext_id":"530302000000","label":"麒麟区"},{"id":"530303","pid":5303,"value":"沾益区","ext_id":"530303000000","label":"沾益区"},{"id":"530304","pid":5303,"value":"马龙区","ext_id":"530304000000","label":"马龙区"},{"id":"530322","pid":5303,"value":"陆良县","ext_id":"530322000000","label":"陆良县"},{"id":"530323","pid":5303,"value":"师宗县","ext_id":"530323000000","label":"师宗县"},{"id":"530324","pid":5303,"value":"罗平县","ext_id":"530324000000","label":"罗平县"},{"id":"530325","pid":5303,"value":"富源县","ext_id":"530325000000","label":"富源县"},{"id":"530326","pid":5303,"value":"会泽县","ext_id":"530326000000","label":"会泽县"},{"id":"530381","pid":5303,"value":"宣威市","ext_id":"530381000000","label":"宣威市"}]},{"id":"5304","pid":53,"value":"玉溪市","ext_id":"530400000000","label":"玉溪市","children":[{"id":"530402","pid":5304,"value":"红塔区","ext_id":"530402000000","label":"红塔区"},{"id":"530403","pid":5304,"value":"江川区","ext_id":"530403000000","label":"江川区"},{"id":"530423","pid":5304,"value":"通海县","ext_id":"530423000000","label":"通海县"},{"id":"530424","pid":5304,"value":"华宁县","ext_id":"530424000000","label":"华宁县"},{"id":"530425","pid":5304,"value":"易门县","ext_id":"530425000000","label":"易门县"},{"id":"530426","pid":5304,"value":"峨山彝族自治县","ext_id":"530426000000","label":"峨山彝族自治县"},{"id":"530427","pid":5304,"value":"新平彝族傣族自治县","ext_id":"530427000000","label":"新平彝族傣族自治县"},{"id":"530428","pid":5304,"value":"元江哈尼族彝族傣族自治县","ext_id":"530428000000","label":"元江哈尼族彝族傣族自治县"},{"id":"530481","pid":5304,"value":"澄江市","ext_id":"530481000000","label":"澄江市"}]},{"id":"5305","pid":53,"value":"保山市","ext_id":"530500000000","label":"保山市","children":[{"id":"530502","pid":5305,"value":"隆阳区","ext_id":"530502000000","label":"隆阳区"},{"id":"530521","pid":5305,"value":"施甸县","ext_id":"530521000000","label":"施甸县"},{"id":"530523","pid":5305,"value":"龙陵县","ext_id":"530523000000","label":"龙陵县"},{"id":"530524","pid":5305,"value":"昌宁县","ext_id":"530524000000","label":"昌宁县"},{"id":"530581","pid":5305,"value":"腾冲市","ext_id":"530581000000","label":"腾冲市"}]},{"id":"5306","pid":53,"value":"昭通市","ext_id":"530600000000","label":"昭通市","children":[{"id":"530602","pid":5306,"value":"昭阳区","ext_id":"530602000000","label":"昭阳区"},{"id":"530621","pid":5306,"value":"鲁甸县","ext_id":"530621000000","label":"鲁甸县"},{"id":"530622","pid":5306,"value":"巧家县","ext_id":"530622000000","label":"巧家县"},{"id":"530623","pid":5306,"value":"盐津县","ext_id":"530623000000","label":"盐津县"},{"id":"530624","pid":5306,"value":"大关县","ext_id":"530624000000","label":"大关县"},{"id":"530625","pid":5306,"value":"永善县","ext_id":"530625000000","label":"永善县"},{"id":"530626","pid":5306,"value":"绥江县","ext_id":"530626000000","label":"绥江县"},{"id":"530627","pid":5306,"value":"镇雄县","ext_id":"530627000000","label":"镇雄县"},{"id":"530628","pid":5306,"value":"彝良县","ext_id":"530628000000","label":"彝良县"},{"id":"530629","pid":5306,"value":"威信县","ext_id":"530629000000","label":"威信县"},{"id":"530681","pid":5306,"value":"水富市","ext_id":"530681000000","label":"水富市"}]},{"id":"5307","pid":53,"value":"丽江市","ext_id":"530700000000","label":"丽江市","children":[{"id":"530702","pid":5307,"value":"古城区","ext_id":"530702000000","label":"古城区"},{"id":"530721","pid":5307,"value":"玉龙纳西族自治县","ext_id":"530721000000","label":"玉龙纳西族自治县"},{"id":"530722","pid":5307,"value":"永胜县","ext_id":"530722000000","label":"永胜县"},{"id":"530723","pid":5307,"value":"华坪县","ext_id":"530723000000","label":"华坪县"},{"id":"530724","pid":5307,"value":"宁蒗彝族自治县","ext_id":"530724000000","label":"宁蒗彝族自治县"}]},{"id":"5308","pid":53,"value":"普洱市","ext_id":"530800000000","label":"普洱市","children":[{"id":"530802","pid":5308,"value":"思茅区","ext_id":"530802000000","label":"思茅区"},{"id":"530821","pid":5308,"value":"宁洱哈尼族彝族自治县","ext_id":"530821000000","label":"宁洱哈尼族彝族自治县"},{"id":"530822","pid":5308,"value":"墨江哈尼族自治县","ext_id":"530822000000","label":"墨江哈尼族自治县"},{"id":"530823","pid":5308,"value":"景东彝族自治县","ext_id":"530823000000","label":"景东彝族自治县"},{"id":"530824","pid":5308,"value":"景谷傣族彝族自治县","ext_id":"530824000000","label":"景谷傣族彝族自治县"},{"id":"530825","pid":5308,"value":"镇沅彝族哈尼族拉祜族自治县","ext_id":"530825000000","label":"镇沅彝族哈尼族拉祜族自治县"},{"id":"530826","pid":5308,"value":"江城哈尼族彝族自治县","ext_id":"530826000000","label":"江城哈尼族彝族自治县"},{"id":"530827","pid":5308,"value":"孟连傣族拉祜族佤族自治县","ext_id":"530827000000","label":"孟连傣族拉祜族佤族自治县"},{"id":"530828","pid":5308,"value":"澜沧拉祜族自治县","ext_id":"530828000000","label":"澜沧拉祜族自治县"},{"id":"530829","pid":5308,"value":"西盟佤族自治县","ext_id":"530829000000","label":"西盟佤族自治县"}]},{"id":"5309","pid":53,"value":"临沧市","ext_id":"530900000000","label":"临沧市","children":[{"id":"530902","pid":5309,"value":"临翔区","ext_id":"530902000000","label":"临翔区"},{"id":"530921","pid":5309,"value":"凤庆县","ext_id":"530921000000","label":"凤庆县"},{"id":"530922","pid":5309,"value":"云县","ext_id":"530922000000","label":"云县"},{"id":"530923","pid":5309,"value":"永德县","ext_id":"530923000000","label":"永德县"},{"id":"530924","pid":5309,"value":"镇康县","ext_id":"530924000000","label":"镇康县"},{"id":"530925","pid":5309,"value":"双江拉祜族佤族布朗族傣族自治县","ext_id":"530925000000","label":"双江拉祜族佤族布朗族傣族自治县"},{"id":"530926","pid":5309,"value":"耿马傣族佤族自治县","ext_id":"530926000000","label":"耿马傣族佤族自治县"},{"id":"530927","pid":5309,"value":"沧源佤族自治县","ext_id":"530927000000","label":"沧源佤族自治县"}]},{"id":"5323","pid":53,"value":"楚雄彝族自治州","ext_id":"532300000000","label":"楚雄彝族自治州","children":[{"id":"532301","pid":5323,"value":"楚雄市","ext_id":"532301000000","label":"楚雄市"},{"id":"532302","pid":5323,"value":"禄丰市","ext_id":"532302000000","label":"禄丰市"},{"id":"532322","pid":5323,"value":"双柏县","ext_id":"532322000000","label":"双柏县"},{"id":"532323","pid":5323,"value":"牟定县","ext_id":"532323000000","label":"牟定县"},{"id":"532324","pid":5323,"value":"南华县","ext_id":"532324000000","label":"南华县"},{"id":"532325","pid":5323,"value":"姚安县","ext_id":"532325000000","label":"姚安县"},{"id":"532326","pid":5323,"value":"大姚县","ext_id":"532326000000","label":"大姚县"},{"id":"532327","pid":5323,"value":"永仁县","ext_id":"532327000000","label":"永仁县"},{"id":"532328","pid":5323,"value":"元谋县","ext_id":"532328000000","label":"元谋县"},{"id":"532329","pid":5323,"value":"武定县","ext_id":"532329000000","label":"武定县"}]},{"id":"5325","pid":53,"value":"红河哈尼族彝族自治州","ext_id":"532500000000","label":"红河哈尼族彝族自治州","children":[{"id":"532501","pid":5325,"value":"个旧市","ext_id":"532501000000","label":"个旧市"},{"id":"532502","pid":5325,"value":"开远市","ext_id":"532502000000","label":"开远市"},{"id":"532503","pid":5325,"value":"蒙自市","ext_id":"532503000000","label":"蒙自市"},{"id":"532504","pid":5325,"value":"弥勒市","ext_id":"532504000000","label":"弥勒市"},{"id":"532523","pid":5325,"value":"屏边苗族自治县","ext_id":"532523000000","label":"屏边苗族自治县"},{"id":"532524","pid":5325,"value":"建水县","ext_id":"532524000000","label":"建水县"},{"id":"532525","pid":5325,"value":"石屏县","ext_id":"532525000000","label":"石屏县"},{"id":"532527","pid":5325,"value":"泸西县","ext_id":"532527000000","label":"泸西县"},{"id":"532528","pid":5325,"value":"元阳县","ext_id":"532528000000","label":"元阳县"},{"id":"532529","pid":5325,"value":"红河县","ext_id":"532529000000","label":"红河县"},{"id":"532530","pid":5325,"value":"金平苗族瑶族傣族自治县","ext_id":"532530000000","label":"金平苗族瑶族傣族自治县"},{"id":"532531","pid":5325,"value":"绿春县","ext_id":"532531000000","label":"绿春县"},{"id":"532532","pid":5325,"value":"河口瑶族自治县","ext_id":"532532000000","label":"河口瑶族自治县"}]},{"id":"5326","pid":53,"value":"文山壮族苗族自治州","ext_id":"532600000000","label":"文山壮族苗族自治州","children":[{"id":"532601","pid":5326,"value":"文山市","ext_id":"532601000000","label":"文山市"},{"id":"532622","pid":5326,"value":"砚山县","ext_id":"532622000000","label":"砚山县"},{"id":"532623","pid":5326,"value":"西畴县","ext_id":"532623000000","label":"西畴县"},{"id":"532624","pid":5326,"value":"麻栗坡县","ext_id":"532624000000","label":"麻栗坡县"},{"id":"532625","pid":5326,"value":"马关县","ext_id":"532625000000","label":"马关县"},{"id":"532626","pid":5326,"value":"丘北县","ext_id":"532626000000","label":"丘北县"},{"id":"532627","pid":5326,"value":"广南县","ext_id":"532627000000","label":"广南县"},{"id":"532628","pid":5326,"value":"富宁县","ext_id":"532628000000","label":"富宁县"}]},{"id":"5328","pid":53,"value":"西双版纳傣族自治州","ext_id":"532800000000","label":"西双版纳傣族自治州","children":[{"id":"532801","pid":5328,"value":"景洪市","ext_id":"532801000000","label":"景洪市"},{"id":"532822","pid":5328,"value":"勐海县","ext_id":"532822000000","label":"勐海县"},{"id":"532823","pid":5328,"value":"勐腊县","ext_id":"532823000000","label":"勐腊县"}]},{"id":"5329","pid":53,"value":"大理白族自治州","ext_id":"532900000000","label":"大理白族自治州","children":[{"id":"532901","pid":5329,"value":"大理市","ext_id":"532901000000","label":"大理市"},{"id":"532922","pid":5329,"value":"漾濞彝族自治县","ext_id":"532922000000","label":"漾濞彝族自治县"},{"id":"532923","pid":5329,"value":"祥云县","ext_id":"532923000000","label":"祥云县"},{"id":"532924","pid":5329,"value":"宾川县","ext_id":"532924000000","label":"宾川县"},{"id":"532925","pid":5329,"value":"弥渡县","ext_id":"532925000000","label":"弥渡县"},{"id":"532926","pid":5329,"value":"南涧彝族自治县","ext_id":"532926000000","label":"南涧彝族自治县"},{"id":"532927","pid":5329,"value":"巍山彝族回族自治县","ext_id":"532927000000","label":"巍山彝族回族自治县"},{"id":"532928","pid":5329,"value":"永平县","ext_id":"532928000000","label":"永平县"},{"id":"532929","pid":5329,"value":"云龙县","ext_id":"532929000000","label":"云龙县"},{"id":"532930","pid":5329,"value":"洱源县","ext_id":"532930000000","label":"洱源县"},{"id":"532931","pid":5329,"value":"剑川县","ext_id":"532931000000","label":"剑川县"},{"id":"532932","pid":5329,"value":"鹤庆县","ext_id":"532932000000","label":"鹤庆县"}]},{"id":"5331","pid":53,"value":"德宏傣族景颇族自治州","ext_id":"533100000000","label":"德宏傣族景颇族自治州","children":[{"id":"533102","pid":5331,"value":"瑞丽市","ext_id":"533102000000","label":"瑞丽市"},{"id":"533103","pid":5331,"value":"芒市","ext_id":"533103000000","label":"芒市"},{"id":"533122","pid":5331,"value":"梁河县","ext_id":"533122000000","label":"梁河县"},{"id":"533123","pid":5331,"value":"盈江县","ext_id":"533123000000","label":"盈江县"},{"id":"533124","pid":5331,"value":"陇川县","ext_id":"533124000000","label":"陇川县"}]},{"id":"5333","pid":53,"value":"怒江傈僳族自治州","ext_id":"533300000000","label":"怒江傈僳族自治州","children":[{"id":"533301","pid":5333,"value":"泸水市","ext_id":"533301000000","label":"泸水市"},{"id":"533323","pid":5333,"value":"福贡县","ext_id":"533323000000","label":"福贡县"},{"id":"533324","pid":5333,"value":"贡山独龙族怒族自治县","ext_id":"533324000000","label":"贡山独龙族怒族自治县"},{"id":"533325","pid":5333,"value":"兰坪白族普米族自治县","ext_id":"533325000000","label":"兰坪白族普米族自治县"}]},{"id":"5334","pid":53,"value":"迪庆藏族自治州","ext_id":"533400000000","label":"迪庆藏族自治州","children":[{"id":"533401","pid":5334,"value":"香格里拉市","ext_id":"533401000000","label":"香格里拉市"},{"id":"533422","pid":5334,"value":"德钦县","ext_id":"533422000000","label":"德钦县"},{"id":"533423","pid":5334,"value":"维西傈僳族自治县","ext_id":"533423000000","label":"维西傈僳族自治县"}]}]},{"id":"54","pid":0,"value":"西藏自治区","ext_id":"540000000000","label":"西藏自治区","children":[{"id":"5401","pid":54,"value":"拉萨市","ext_id":"540100000000","label":"拉萨市","children":[{"id":"540102","pid":5401,"value":"城关区","ext_id":"540102000000","label":"城关区"},{"id":"540103","pid":5401,"value":"堆龙德庆区","ext_id":"540103000000","label":"堆龙德庆区"},{"id":"540104","pid":5401,"value":"达孜区","ext_id":"540104000000","label":"达孜区"},{"id":"540121","pid":5401,"value":"林周县","ext_id":"540121000000","label":"林周县"},{"id":"540122","pid":5401,"value":"当雄县","ext_id":"540122000000","label":"当雄县"},{"id":"540123","pid":5401,"value":"尼木县","ext_id":"540123000000","label":"尼木县"},{"id":"540124","pid":5401,"value":"曲水县","ext_id":"540124000000","label":"曲水县"},{"id":"540127","pid":5401,"value":"墨竹工卡县","ext_id":"540127000000","label":"墨竹工卡县"}]},{"id":"5402","pid":54,"value":"日喀则市","ext_id":"540200000000","label":"日喀则市","children":[{"id":"540202","pid":5402,"value":"桑珠孜区","ext_id":"540202000000","label":"桑珠孜区"},{"id":"540221","pid":5402,"value":"南木林县","ext_id":"540221000000","label":"南木林县"},{"id":"540222","pid":5402,"value":"江孜县","ext_id":"540222000000","label":"江孜县"},{"id":"540223","pid":5402,"value":"定日县","ext_id":"540223000000","label":"定日县"},{"id":"540224","pid":5402,"value":"萨迦县","ext_id":"540224000000","label":"萨迦县"},{"id":"540225","pid":5402,"value":"拉孜县","ext_id":"540225000000","label":"拉孜县"},{"id":"540226","pid":5402,"value":"昂仁县","ext_id":"540226000000","label":"昂仁县"},{"id":"540227","pid":5402,"value":"谢通门县","ext_id":"540227000000","label":"谢通门县"},{"id":"540228","pid":5402,"value":"白朗县","ext_id":"540228000000","label":"白朗县"},{"id":"540229","pid":5402,"value":"仁布县","ext_id":"540229000000","label":"仁布县"},{"id":"540230","pid":5402,"value":"康马县","ext_id":"540230000000","label":"康马县"},{"id":"540231","pid":5402,"value":"定结县","ext_id":"540231000000","label":"定结县"},{"id":"540232","pid":5402,"value":"仲巴县","ext_id":"540232000000","label":"仲巴县"},{"id":"540233","pid":5402,"value":"亚东县","ext_id":"540233000000","label":"亚东县"},{"id":"540234","pid":5402,"value":"吉隆县","ext_id":"540234000000","label":"吉隆县"},{"id":"540235","pid":5402,"value":"聂拉木县","ext_id":"540235000000","label":"聂拉木县"},{"id":"540236","pid":5402,"value":"萨嘎县","ext_id":"540236000000","label":"萨嘎县"},{"id":"540237","pid":5402,"value":"岗巴县","ext_id":"540237000000","label":"岗巴县"}]},{"id":"5403","pid":54,"value":"昌都市","ext_id":"540300000000","label":"昌都市","children":[{"id":"540302","pid":5403,"value":"卡若区","ext_id":"540302000000","label":"卡若区"},{"id":"540321","pid":5403,"value":"江达县","ext_id":"540321000000","label":"江达县"},{"id":"540322","pid":5403,"value":"贡觉县","ext_id":"540322000000","label":"贡觉县"},{"id":"540323","pid":5403,"value":"类乌齐县","ext_id":"540323000000","label":"类乌齐县"},{"id":"540324","pid":5403,"value":"丁青县","ext_id":"540324000000","label":"丁青县"},{"id":"540325","pid":5403,"value":"察雅县","ext_id":"540325000000","label":"察雅县"},{"id":"540326","pid":5403,"value":"八宿县","ext_id":"540326000000","label":"八宿县"},{"id":"540327","pid":5403,"value":"左贡县","ext_id":"540327000000","label":"左贡县"},{"id":"540328","pid":5403,"value":"芒康县","ext_id":"540328000000","label":"芒康县"},{"id":"540329","pid":5403,"value":"洛隆县","ext_id":"540329000000","label":"洛隆县"},{"id":"540330","pid":5403,"value":"边坝县","ext_id":"540330000000","label":"边坝县"}]},{"id":"5404","pid":54,"value":"林芝市","ext_id":"540400000000","label":"林芝市","children":[{"id":"540402","pid":5404,"value":"巴宜区","ext_id":"540402000000","label":"巴宜区"},{"id":"540421","pid":5404,"value":"工布江达县","ext_id":"540421000000","label":"工布江达县"},{"id":"540422","pid":5404,"value":"米林市","ext_id":"540422000000","label":"米林市"},{"id":"540423","pid":5404,"value":"墨脱县","ext_id":"540423000000","label":"墨脱县"},{"id":"540424","pid":5404,"value":"波密县","ext_id":"540424000000","label":"波密县"},{"id":"540425","pid":5404,"value":"察隅县","ext_id":"540425000000","label":"察隅县"},{"id":"540426","pid":5404,"value":"朗县","ext_id":"540426000000","label":"朗县"}]},{"id":"5405","pid":54,"value":"山南市","ext_id":"540500000000","label":"山南市","children":[{"id":"540502","pid":5405,"value":"乃东区","ext_id":"540502000000","label":"乃东区"},{"id":"540521","pid":5405,"value":"扎囊县","ext_id":"540521000000","label":"扎囊县"},{"id":"540522","pid":5405,"value":"贡嘎县","ext_id":"540522000000","label":"贡嘎县"},{"id":"540523","pid":5405,"value":"桑日县","ext_id":"540523000000","label":"桑日县"},{"id":"540524","pid":5405,"value":"琼结县","ext_id":"540524000000","label":"琼结县"},{"id":"540525","pid":5405,"value":"曲松县","ext_id":"540525000000","label":"曲松县"},{"id":"540526","pid":5405,"value":"措美县","ext_id":"540526000000","label":"措美县"},{"id":"540527","pid":5405,"value":"洛扎县","ext_id":"540527000000","label":"洛扎县"},{"id":"540528","pid":5405,"value":"加查县","ext_id":"540528000000","label":"加查县"},{"id":"540529","pid":5405,"value":"隆子县","ext_id":"540529000000","label":"隆子县"},{"id":"540530","pid":5405,"value":"错那市","ext_id":"540530000000","label":"错那市"},{"id":"540531","pid":5405,"value":"浪卡子县","ext_id":"540531000000","label":"浪卡子县"}]},{"id":"5406","pid":54,"value":"那曲市","ext_id":"540600000000","label":"那曲市","children":[{"id":"540602","pid":5406,"value":"色尼区","ext_id":"540602000000","label":"色尼区"},{"id":"540621","pid":5406,"value":"嘉黎县","ext_id":"540621000000","label":"嘉黎县"},{"id":"540622","pid":5406,"value":"比如县","ext_id":"540622000000","label":"比如县"},{"id":"540623","pid":5406,"value":"聂荣县","ext_id":"540623000000","label":"聂荣县"},{"id":"540624","pid":5406,"value":"安多县","ext_id":"540624000000","label":"安多县"},{"id":"540625","pid":5406,"value":"申扎县","ext_id":"540625000000","label":"申扎县"},{"id":"540626","pid":5406,"value":"索县","ext_id":"540626000000","label":"索县"},{"id":"540627","pid":5406,"value":"班戈县","ext_id":"540627000000","label":"班戈县"},{"id":"540628","pid":5406,"value":"巴青县","ext_id":"540628000000","label":"巴青县"},{"id":"540629","pid":5406,"value":"尼玛县","ext_id":"540629000000","label":"尼玛县"},{"id":"540630","pid":5406,"value":"双湖县","ext_id":"540630000000","label":"双湖县"}]},{"id":"5425","pid":54,"value":"阿里地区","ext_id":"542500000000","label":"阿里地区","children":[{"id":"542521","pid":5425,"value":"普兰县","ext_id":"542521000000","label":"普兰县"},{"id":"542522","pid":5425,"value":"札达县","ext_id":"542522000000","label":"札达县"},{"id":"542523","pid":5425,"value":"噶尔县","ext_id":"542523000000","label":"噶尔县"},{"id":"542524","pid":5425,"value":"日土县","ext_id":"542524000000","label":"日土县"},{"id":"542525","pid":5425,"value":"革吉县","ext_id":"542525000000","label":"革吉县"},{"id":"542526","pid":5425,"value":"改则县","ext_id":"542526000000","label":"改则县"},{"id":"542527","pid":5425,"value":"措勤县","ext_id":"542527000000","label":"措勤县"}]}]},{"id":"61","pid":0,"value":"陕西省","ext_id":"610000000000","label":"陕西省","children":[{"id":"6101","pid":61,"value":"西安市","ext_id":"610100000000","label":"西安市","children":[{"id":"610102","pid":6101,"value":"新城区","ext_id":"610102000000","label":"新城区"},{"id":"610103","pid":6101,"value":"碑林区","ext_id":"610103000000","label":"碑林区"},{"id":"610104","pid":6101,"value":"莲湖区","ext_id":"610104000000","label":"莲湖区"},{"id":"610111","pid":6101,"value":"灞桥区","ext_id":"610111000000","label":"灞桥区"},{"id":"610112","pid":6101,"value":"未央区","ext_id":"610112000000","label":"未央区"},{"id":"610113","pid":6101,"value":"雁塔区","ext_id":"610113000000","label":"雁塔区"},{"id":"610114","pid":6101,"value":"阎良区","ext_id":"610114000000","label":"阎良区"},{"id":"610115","pid":6101,"value":"临潼区","ext_id":"610115000000","label":"临潼区"},{"id":"610116","pid":6101,"value":"长安区","ext_id":"610116000000","label":"长安区"},{"id":"610117","pid":6101,"value":"高陵区","ext_id":"610117000000","label":"高陵区"},{"id":"610118","pid":6101,"value":"鄠邑区","ext_id":"610118000000","label":"鄠邑区"},{"id":"610122","pid":6101,"value":"蓝田县","ext_id":"610122000000","label":"蓝田县"},{"id":"610124","pid":6101,"value":"周至县","ext_id":"610124000000","label":"周至县"}]},{"id":"6102","pid":61,"value":"铜川市","ext_id":"610200000000","label":"铜川市","children":[{"id":"610202","pid":6102,"value":"王益区","ext_id":"610202000000","label":"王益区"},{"id":"610203","pid":6102,"value":"印台区","ext_id":"610203000000","label":"印台区"},{"id":"610204","pid":6102,"value":"耀州区","ext_id":"610204000000","label":"耀州区"},{"id":"610222","pid":6102,"value":"宜君县","ext_id":"610222000000","label":"宜君县"}]},{"id":"6103","pid":61,"value":"宝鸡市","ext_id":"610300000000","label":"宝鸡市","children":[{"id":"610302","pid":6103,"value":"渭滨区","ext_id":"610302000000","label":"渭滨区"},{"id":"610303","pid":6103,"value":"金台区","ext_id":"610303000000","label":"金台区"},{"id":"610304","pid":6103,"value":"陈仓区","ext_id":"610304000000","label":"陈仓区"},{"id":"610305","pid":6103,"value":"凤翔区","ext_id":"610305000000","label":"凤翔区"},{"id":"610323","pid":6103,"value":"岐山县","ext_id":"610323000000","label":"岐山县"},{"id":"610324","pid":6103,"value":"扶风县","ext_id":"610324000000","label":"扶风县"},{"id":"610326","pid":6103,"value":"眉县","ext_id":"610326000000","label":"眉县"},{"id":"610327","pid":6103,"value":"陇县","ext_id":"610327000000","label":"陇县"},{"id":"610328","pid":6103,"value":"千阳县","ext_id":"610328000000","label":"千阳县"},{"id":"610329","pid":6103,"value":"麟游县","ext_id":"610329000000","label":"麟游县"},{"id":"610330","pid":6103,"value":"凤县","ext_id":"610330000000","label":"凤县"},{"id":"610331","pid":6103,"value":"太白县","ext_id":"610331000000","label":"太白县"}]},{"id":"6104","pid":61,"value":"咸阳市","ext_id":"610400000000","label":"咸阳市","children":[{"id":"610402","pid":6104,"value":"秦都区","ext_id":"610402000000","label":"秦都区"},{"id":"610403","pid":6104,"value":"杨陵区","ext_id":"610403000000","label":"杨陵区"},{"id":"610404","pid":6104,"value":"渭城区","ext_id":"610404000000","label":"渭城区"},{"id":"610422","pid":6104,"value":"三原县","ext_id":"610422000000","label":"三原县"},{"id":"610423","pid":6104,"value":"泾阳县","ext_id":"610423000000","label":"泾阳县"},{"id":"610424","pid":6104,"value":"乾县","ext_id":"610424000000","label":"乾县"},{"id":"610425","pid":6104,"value":"礼泉县","ext_id":"610425000000","label":"礼泉县"},{"id":"610426","pid":6104,"value":"永寿县","ext_id":"610426000000","label":"永寿县"},{"id":"610428","pid":6104,"value":"长武县","ext_id":"610428000000","label":"长武县"},{"id":"610429","pid":6104,"value":"旬邑县","ext_id":"610429000000","label":"旬邑县"},{"id":"610430","pid":6104,"value":"淳化县","ext_id":"610430000000","label":"淳化县"},{"id":"610431","pid":6104,"value":"武功县","ext_id":"610431000000","label":"武功县"},{"id":"610481","pid":6104,"value":"兴平市","ext_id":"610481000000","label":"兴平市"},{"id":"610482","pid":6104,"value":"彬州市","ext_id":"610482000000","label":"彬州市"}]},{"id":"6105","pid":61,"value":"渭南市","ext_id":"610500000000","label":"渭南市","children":[{"id":"610502","pid":6105,"value":"临渭区","ext_id":"610502000000","label":"临渭区"},{"id":"610503","pid":6105,"value":"华州区","ext_id":"610503000000","label":"华州区"},{"id":"610522","pid":6105,"value":"潼关县","ext_id":"610522000000","label":"潼关县"},{"id":"610523","pid":6105,"value":"大荔县","ext_id":"610523000000","label":"大荔县"},{"id":"610524","pid":6105,"value":"合阳县","ext_id":"610524000000","label":"合阳县"},{"id":"610525","pid":6105,"value":"澄城县","ext_id":"610525000000","label":"澄城县"},{"id":"610526","pid":6105,"value":"蒲城县","ext_id":"610526000000","label":"蒲城县"},{"id":"610527","pid":6105,"value":"白水县","ext_id":"610527000000","label":"白水县"},{"id":"610528","pid":6105,"value":"富平县","ext_id":"610528000000","label":"富平县"},{"id":"610581","pid":6105,"value":"韩城市","ext_id":"610581000000","label":"韩城市"},{"id":"610582","pid":6105,"value":"华阴市","ext_id":"610582000000","label":"华阴市"}]},{"id":"6106","pid":61,"value":"延安市","ext_id":"610600000000","label":"延安市","children":[{"id":"610602","pid":6106,"value":"宝塔区","ext_id":"610602000000","label":"宝塔区"},{"id":"610603","pid":6106,"value":"安塞区","ext_id":"610603000000","label":"安塞区"},{"id":"610621","pid":6106,"value":"延长县","ext_id":"610621000000","label":"延长县"},{"id":"610622","pid":6106,"value":"延川县","ext_id":"610622000000","label":"延川县"},{"id":"610625","pid":6106,"value":"志丹县","ext_id":"610625000000","label":"志丹县"},{"id":"610626","pid":6106,"value":"吴起县","ext_id":"610626000000","label":"吴起县"},{"id":"610627","pid":6106,"value":"甘泉县","ext_id":"610627000000","label":"甘泉县"},{"id":"610628","pid":6106,"value":"富县","ext_id":"610628000000","label":"富县"},{"id":"610629","pid":6106,"value":"洛川县","ext_id":"610629000000","label":"洛川县"},{"id":"610630","pid":6106,"value":"宜川县","ext_id":"610630000000","label":"宜川县"},{"id":"610631","pid":6106,"value":"黄龙县","ext_id":"610631000000","label":"黄龙县"},{"id":"610632","pid":6106,"value":"黄陵县","ext_id":"610632000000","label":"黄陵县"},{"id":"610681","pid":6106,"value":"子长市","ext_id":"610681000000","label":"子长市"}]},{"id":"6107","pid":61,"value":"汉中市","ext_id":"610700000000","label":"汉中市","children":[{"id":"610702","pid":6107,"value":"汉台区","ext_id":"610702000000","label":"汉台区"},{"id":"610703","pid":6107,"value":"南郑区","ext_id":"610703000000","label":"南郑区"},{"id":"610722","pid":6107,"value":"城固县","ext_id":"610722000000","label":"城固县"},{"id":"610723","pid":6107,"value":"洋县","ext_id":"610723000000","label":"洋县"},{"id":"610724","pid":6107,"value":"西乡县","ext_id":"610724000000","label":"西乡县"},{"id":"610725","pid":6107,"value":"勉县","ext_id":"610725000000","label":"勉县"},{"id":"610726","pid":6107,"value":"宁强县","ext_id":"610726000000","label":"宁强县"},{"id":"610727","pid":6107,"value":"略阳县","ext_id":"610727000000","label":"略阳县"},{"id":"610728","pid":6107,"value":"镇巴县","ext_id":"610728000000","label":"镇巴县"},{"id":"610729","pid":6107,"value":"留坝县","ext_id":"610729000000","label":"留坝县"},{"id":"610730","pid":6107,"value":"佛坪县","ext_id":"610730000000","label":"佛坪县"}]},{"id":"6108","pid":61,"value":"榆林市","ext_id":"610800000000","label":"榆林市","children":[{"id":"610802","pid":6108,"value":"榆阳区","ext_id":"610802000000","label":"榆阳区"},{"id":"610803","pid":6108,"value":"横山区","ext_id":"610803000000","label":"横山区"},{"id":"610822","pid":6108,"value":"府谷县","ext_id":"610822000000","label":"府谷县"},{"id":"610824","pid":6108,"value":"靖边县","ext_id":"610824000000","label":"靖边县"},{"id":"610825","pid":6108,"value":"定边县","ext_id":"610825000000","label":"定边县"},{"id":"610826","pid":6108,"value":"绥德县","ext_id":"610826000000","label":"绥德县"},{"id":"610827","pid":6108,"value":"米脂县","ext_id":"610827000000","label":"米脂县"},{"id":"610828","pid":6108,"value":"佳县","ext_id":"610828000000","label":"佳县"},{"id":"610829","pid":6108,"value":"吴堡县","ext_id":"610829000000","label":"吴堡县"},{"id":"610830","pid":6108,"value":"清涧县","ext_id":"610830000000","label":"清涧县"},{"id":"610831","pid":6108,"value":"子洲县","ext_id":"610831000000","label":"子洲县"},{"id":"610881","pid":6108,"value":"神木市","ext_id":"610881000000","label":"神木市"}]},{"id":"6109","pid":61,"value":"安康市","ext_id":"610900000000","label":"安康市","children":[{"id":"610902","pid":6109,"value":"汉滨区","ext_id":"610902000000","label":"汉滨区"},{"id":"610921","pid":6109,"value":"汉阴县","ext_id":"610921000000","label":"汉阴县"},{"id":"610922","pid":6109,"value":"石泉县","ext_id":"610922000000","label":"石泉县"},{"id":"610923","pid":6109,"value":"宁陕县","ext_id":"610923000000","label":"宁陕县"},{"id":"610924","pid":6109,"value":"紫阳县","ext_id":"610924000000","label":"紫阳县"},{"id":"610925","pid":6109,"value":"岚皋县","ext_id":"610925000000","label":"岚皋县"},{"id":"610926","pid":6109,"value":"平利县","ext_id":"610926000000","label":"平利县"},{"id":"610927","pid":6109,"value":"镇坪县","ext_id":"610927000000","label":"镇坪县"},{"id":"610929","pid":6109,"value":"白河县","ext_id":"610929000000","label":"白河县"},{"id":"610981","pid":6109,"value":"旬阳市","ext_id":"610981000000","label":"旬阳市"}]},{"id":"6110","pid":61,"value":"商洛市","ext_id":"611000000000","label":"商洛市","children":[{"id":"611002","pid":6110,"value":"商州区","ext_id":"611002000000","label":"商州区"},{"id":"611021","pid":6110,"value":"洛南县","ext_id":"611021000000","label":"洛南县"},{"id":"611022","pid":6110,"value":"丹凤县","ext_id":"611022000000","label":"丹凤县"},{"id":"611023","pid":6110,"value":"商南县","ext_id":"611023000000","label":"商南县"},{"id":"611024","pid":6110,"value":"山阳县","ext_id":"611024000000","label":"山阳县"},{"id":"611025","pid":6110,"value":"镇安县","ext_id":"611025000000","label":"镇安县"},{"id":"611026","pid":6110,"value":"柞水县","ext_id":"611026000000","label":"柞水县"}]}]},{"id":"62","pid":0,"value":"甘肃省","ext_id":"620000000000","label":"甘肃省","children":[{"id":"6201","pid":62,"value":"兰州市","ext_id":"620100000000","label":"兰州市","children":[{"id":"620102","pid":6201,"value":"城关区","ext_id":"620102000000","label":"城关区"},{"id":"620103","pid":6201,"value":"七里河区","ext_id":"620103000000","label":"七里河区"},{"id":"620104","pid":6201,"value":"西固区","ext_id":"620104000000","label":"西固区"},{"id":"620105","pid":6201,"value":"安宁区","ext_id":"620105000000","label":"安宁区"},{"id":"620111","pid":6201,"value":"红古区","ext_id":"620111000000","label":"红古区"},{"id":"620121","pid":6201,"value":"永登县","ext_id":"620121000000","label":"永登县"},{"id":"620122","pid":6201,"value":"皋兰县","ext_id":"620122000000","label":"皋兰县"},{"id":"620123","pid":6201,"value":"榆中县","ext_id":"620123000000","label":"榆中县"}]},{"id":"6202","pid":62,"value":"嘉峪关市","ext_id":"620200000000","label":"嘉峪关市","children":[{"id":"620200","pid":6202,"value":"嘉峪关市","ext_id":"620200000000","label":"嘉峪关市"}]},{"id":"6203","pid":62,"value":"金昌市","ext_id":"620300000000","label":"金昌市","children":[{"id":"620302","pid":6203,"value":"金川区","ext_id":"620302000000","label":"金川区"},{"id":"620321","pid":6203,"value":"永昌县","ext_id":"620321000000","label":"永昌县"}]},{"id":"6204","pid":62,"value":"白银市","ext_id":"620400000000","label":"白银市","children":[{"id":"620402","pid":6204,"value":"白银区","ext_id":"620402000000","label":"白银区"},{"id":"620403","pid":6204,"value":"平川区","ext_id":"620403000000","label":"平川区"},{"id":"620421","pid":6204,"value":"靖远县","ext_id":"620421000000","label":"靖远县"},{"id":"620422","pid":6204,"value":"会宁县","ext_id":"620422000000","label":"会宁县"},{"id":"620423","pid":6204,"value":"景泰县","ext_id":"620423000000","label":"景泰县"}]},{"id":"6205","pid":62,"value":"天水市","ext_id":"620500000000","label":"天水市","children":[{"id":"620502","pid":6205,"value":"秦州区","ext_id":"620502000000","label":"秦州区"},{"id":"620503","pid":6205,"value":"麦积区","ext_id":"620503000000","label":"麦积区"},{"id":"620521","pid":6205,"value":"清水县","ext_id":"620521000000","label":"清水县"},{"id":"620522","pid":6205,"value":"秦安县","ext_id":"620522000000","label":"秦安县"},{"id":"620523","pid":6205,"value":"甘谷县","ext_id":"620523000000","label":"甘谷县"},{"id":"620524","pid":6205,"value":"武山县","ext_id":"620524000000","label":"武山县"},{"id":"620525","pid":6205,"value":"张家川回族自治县","ext_id":"620525000000","label":"张家川回族自治县"}]},{"id":"6206","pid":62,"value":"武威市","ext_id":"620600000000","label":"武威市","children":[{"id":"620602","pid":6206,"value":"凉州区","ext_id":"620602000000","label":"凉州区"},{"id":"620621","pid":6206,"value":"民勤县","ext_id":"620621000000","label":"民勤县"},{"id":"620622","pid":6206,"value":"古浪县","ext_id":"620622000000","label":"古浪县"},{"id":"620623","pid":6206,"value":"天祝藏族自治县","ext_id":"620623000000","label":"天祝藏族自治县"}]},{"id":"6207","pid":62,"value":"张掖市","ext_id":"620700000000","label":"张掖市","children":[{"id":"620702","pid":6207,"value":"甘州区","ext_id":"620702000000","label":"甘州区"},{"id":"620721","pid":6207,"value":"肃南裕固族自治县","ext_id":"620721000000","label":"肃南裕固族自治县"},{"id":"620722","pid":6207,"value":"民乐县","ext_id":"620722000000","label":"民乐县"},{"id":"620723","pid":6207,"value":"临泽县","ext_id":"620723000000","label":"临泽县"},{"id":"620724","pid":6207,"value":"高台县","ext_id":"620724000000","label":"高台县"},{"id":"620725","pid":6207,"value":"山丹县","ext_id":"620725000000","label":"山丹县"}]},{"id":"6208","pid":62,"value":"平凉市","ext_id":"620800000000","label":"平凉市","children":[{"id":"620802","pid":6208,"value":"崆峒区","ext_id":"620802000000","label":"崆峒区"},{"id":"620821","pid":6208,"value":"泾川县","ext_id":"620821000000","label":"泾川县"},{"id":"620822","pid":6208,"value":"灵台县","ext_id":"620822000000","label":"灵台县"},{"id":"620823","pid":6208,"value":"崇信县","ext_id":"620823000000","label":"崇信县"},{"id":"620825","pid":6208,"value":"庄浪县","ext_id":"620825000000","label":"庄浪县"},{"id":"620826","pid":6208,"value":"静宁县","ext_id":"620826000000","label":"静宁县"},{"id":"620881","pid":6208,"value":"华亭市","ext_id":"620881000000","label":"华亭市"}]},{"id":"6209","pid":62,"value":"酒泉市","ext_id":"620900000000","label":"酒泉市","children":[{"id":"620902","pid":6209,"value":"肃州区","ext_id":"620902000000","label":"肃州区"},{"id":"620921","pid":6209,"value":"金塔县","ext_id":"620921000000","label":"金塔县"},{"id":"620922","pid":6209,"value":"瓜州县","ext_id":"620922000000","label":"瓜州县"},{"id":"620923","pid":6209,"value":"肃北蒙古族自治县","ext_id":"620923000000","label":"肃北蒙古族自治县"},{"id":"620924","pid":6209,"value":"阿克塞哈萨克族自治县","ext_id":"620924000000","label":"阿克塞哈萨克族自治县"},{"id":"620981","pid":6209,"value":"玉门市","ext_id":"620981000000","label":"玉门市"},{"id":"620982","pid":6209,"value":"敦煌市","ext_id":"620982000000","label":"敦煌市"}]},{"id":"6210","pid":62,"value":"庆阳市","ext_id":"621000000000","label":"庆阳市","children":[{"id":"621002","pid":6210,"value":"西峰区","ext_id":"621002000000","label":"西峰区"},{"id":"621021","pid":6210,"value":"庆城县","ext_id":"621021000000","label":"庆城县"},{"id":"621022","pid":6210,"value":"环县","ext_id":"621022000000","label":"环县"},{"id":"621023","pid":6210,"value":"华池县","ext_id":"621023000000","label":"华池县"},{"id":"621024","pid":6210,"value":"合水县","ext_id":"621024000000","label":"合水县"},{"id":"621025","pid":6210,"value":"正宁县","ext_id":"621025000000","label":"正宁县"},{"id":"621026","pid":6210,"value":"宁县","ext_id":"621026000000","label":"宁县"},{"id":"621027","pid":6210,"value":"镇原县","ext_id":"621027000000","label":"镇原县"}]},{"id":"6211","pid":62,"value":"定西市","ext_id":"621100000000","label":"定西市","children":[{"id":"621102","pid":6211,"value":"安定区","ext_id":"621102000000","label":"安定区"},{"id":"621121","pid":6211,"value":"通渭县","ext_id":"621121000000","label":"通渭县"},{"id":"621122","pid":6211,"value":"陇西县","ext_id":"621122000000","label":"陇西县"},{"id":"621123","pid":6211,"value":"渭源县","ext_id":"621123000000","label":"渭源县"},{"id":"621124","pid":6211,"value":"临洮县","ext_id":"621124000000","label":"临洮县"},{"id":"621125","pid":6211,"value":"漳县","ext_id":"621125000000","label":"漳县"},{"id":"621126","pid":6211,"value":"岷县","ext_id":"621126000000","label":"岷县"}]},{"id":"6212","pid":62,"value":"陇南市","ext_id":"621200000000","label":"陇南市","children":[{"id":"621202","pid":6212,"value":"武都区","ext_id":"621202000000","label":"武都区"},{"id":"621221","pid":6212,"value":"成县","ext_id":"621221000000","label":"成县"},{"id":"621222","pid":6212,"value":"文县","ext_id":"621222000000","label":"文县"},{"id":"621223","pid":6212,"value":"宕昌县","ext_id":"621223000000","label":"宕昌县"},{"id":"621224","pid":6212,"value":"康县","ext_id":"621224000000","label":"康县"},{"id":"621225","pid":6212,"value":"西和县","ext_id":"621225000000","label":"西和县"},{"id":"621226","pid":6212,"value":"礼县","ext_id":"621226000000","label":"礼县"},{"id":"621227","pid":6212,"value":"徽县","ext_id":"621227000000","label":"徽县"},{"id":"621228","pid":6212,"value":"两当县","ext_id":"621228000000","label":"两当县"}]},{"id":"6229","pid":62,"value":"临夏回族自治州","ext_id":"622900000000","label":"临夏回族自治州","children":[{"id":"622901","pid":6229,"value":"临夏市","ext_id":"622901000000","label":"临夏市"},{"id":"622921","pid":6229,"value":"临夏县","ext_id":"622921000000","label":"临夏县"},{"id":"622922","pid":6229,"value":"康乐县","ext_id":"622922000000","label":"康乐县"},{"id":"622923","pid":6229,"value":"永靖县","ext_id":"622923000000","label":"永靖县"},{"id":"622924","pid":6229,"value":"广河县","ext_id":"622924000000","label":"广河县"},{"id":"622925","pid":6229,"value":"和政县","ext_id":"622925000000","label":"和政县"},{"id":"622926","pid":6229,"value":"东乡族自治县","ext_id":"622926000000","label":"东乡族自治县"},{"id":"622927","pid":6229,"value":"积石山保安族东乡族撒拉族自治县","ext_id":"622927000000","label":"积石山保安族东乡族撒拉族自治县"}]},{"id":"6230","pid":62,"value":"甘南藏族自治州","ext_id":"623000000000","label":"甘南藏族自治州","children":[{"id":"623001","pid":6230,"value":"合作市","ext_id":"623001000000","label":"合作市"},{"id":"623021","pid":6230,"value":"临潭县","ext_id":"623021000000","label":"临潭县"},{"id":"623022","pid":6230,"value":"卓尼县","ext_id":"623022000000","label":"卓尼县"},{"id":"623023","pid":6230,"value":"舟曲县","ext_id":"623023000000","label":"舟曲县"},{"id":"623024","pid":6230,"value":"迭部县","ext_id":"623024000000","label":"迭部县"},{"id":"623025","pid":6230,"value":"玛曲县","ext_id":"623025000000","label":"玛曲县"},{"id":"623026","pid":6230,"value":"碌曲县","ext_id":"623026000000","label":"碌曲县"},{"id":"623027","pid":6230,"value":"夏河县","ext_id":"623027000000","label":"夏河县"}]}]},{"id":"63","pid":0,"value":"青海省","ext_id":"630000000000","label":"青海省","children":[{"id":"6301","pid":63,"value":"西宁市","ext_id":"630100000000","label":"西宁市","children":[{"id":"630102","pid":6301,"value":"城东区","ext_id":"630102000000","label":"城东区"},{"id":"630103","pid":6301,"value":"城中区","ext_id":"630103000000","label":"城中区"},{"id":"630104","pid":6301,"value":"城西区","ext_id":"630104000000","label":"城西区"},{"id":"630105","pid":6301,"value":"城北区","ext_id":"630105000000","label":"城北区"},{"id":"630106","pid":6301,"value":"湟中区","ext_id":"630106000000","label":"湟中区"},{"id":"630121","pid":6301,"value":"大通回族土族自治县","ext_id":"630121000000","label":"大通回族土族自治县"},{"id":"630123","pid":6301,"value":"湟源县","ext_id":"630123000000","label":"湟源县"}]},{"id":"6302","pid":63,"value":"海东市","ext_id":"630200000000","label":"海东市","children":[{"id":"630202","pid":6302,"value":"乐都区","ext_id":"630202000000","label":"乐都区"},{"id":"630203","pid":6302,"value":"平安区","ext_id":"630203000000","label":"平安区"},{"id":"630222","pid":6302,"value":"民和回族土族自治县","ext_id":"630222000000","label":"民和回族土族自治县"},{"id":"630223","pid":6302,"value":"互助土族自治县","ext_id":"630223000000","label":"互助土族自治县"},{"id":"630224","pid":6302,"value":"化隆回族自治县","ext_id":"630224000000","label":"化隆回族自治县"},{"id":"630225","pid":6302,"value":"循化撒拉族自治县","ext_id":"630225000000","label":"循化撒拉族自治县"}]},{"id":"6322","pid":63,"value":"海北藏族自治州","ext_id":"632200000000","label":"海北藏族自治州","children":[{"id":"632221","pid":6322,"value":"门源回族自治县","ext_id":"632221000000","label":"门源回族自治县"},{"id":"632222","pid":6322,"value":"祁连县","ext_id":"632222000000","label":"祁连县"},{"id":"632223","pid":6322,"value":"海晏县","ext_id":"632223000000","label":"海晏县"},{"id":"632224","pid":6322,"value":"刚察县","ext_id":"632224000000","label":"刚察县"}]},{"id":"6323","pid":63,"value":"黄南藏族自治州","ext_id":"632300000000","label":"黄南藏族自治州","children":[{"id":"632301","pid":6323,"value":"同仁市","ext_id":"632301000000","label":"同仁市"},{"id":"632322","pid":6323,"value":"尖扎县","ext_id":"632322000000","label":"尖扎县"},{"id":"632323","pid":6323,"value":"泽库县","ext_id":"632323000000","label":"泽库县"},{"id":"632324","pid":6323,"value":"河南蒙古族自治县","ext_id":"632324000000","label":"河南蒙古族自治县"}]},{"id":"6325","pid":63,"value":"海南藏族自治州","ext_id":"632500000000","label":"海南藏族自治州","children":[{"id":"632521","pid":6325,"value":"共和县","ext_id":"632521000000","label":"共和县"},{"id":"632522","pid":6325,"value":"同德县","ext_id":"632522000000","label":"同德县"},{"id":"632523","pid":6325,"value":"贵德县","ext_id":"632523000000","label":"贵德县"},{"id":"632524","pid":6325,"value":"兴海县","ext_id":"632524000000","label":"兴海县"},{"id":"632525","pid":6325,"value":"贵南县","ext_id":"632525000000","label":"贵南县"}]},{"id":"6326","pid":63,"value":"果洛藏族自治州","ext_id":"632600000000","label":"果洛藏族自治州","children":[{"id":"632621","pid":6326,"value":"玛沁县","ext_id":"632621000000","label":"玛沁县"},{"id":"632622","pid":6326,"value":"班玛县","ext_id":"632622000000","label":"班玛县"},{"id":"632623","pid":6326,"value":"甘德县","ext_id":"632623000000","label":"甘德县"},{"id":"632624","pid":6326,"value":"达日县","ext_id":"632624000000","label":"达日县"},{"id":"632625","pid":6326,"value":"久治县","ext_id":"632625000000","label":"久治县"},{"id":"632626","pid":6326,"value":"玛多县","ext_id":"632626000000","label":"玛多县"}]},{"id":"6327","pid":63,"value":"玉树藏族自治州","ext_id":"632700000000","label":"玉树藏族自治州","children":[{"id":"632701","pid":6327,"value":"玉树市","ext_id":"632701000000","label":"玉树市"},{"id":"632722","pid":6327,"value":"杂多县","ext_id":"632722000000","label":"杂多县"},{"id":"632723","pid":6327,"value":"称多县","ext_id":"632723000000","label":"称多县"},{"id":"632724","pid":6327,"value":"治多县","ext_id":"632724000000","label":"治多县"},{"id":"632725","pid":6327,"value":"囊谦县","ext_id":"632725000000","label":"囊谦县"},{"id":"632726","pid":6327,"value":"曲麻莱县","ext_id":"632726000000","label":"曲麻莱县"}]},{"id":"6328","pid":63,"value":"海西蒙古族藏族自治州","ext_id":"632800000000","label":"海西蒙古族藏族自治州","children":[{"id":"632801","pid":6328,"value":"格尔木市","ext_id":"632801000000","label":"格尔木市"},{"id":"632802","pid":6328,"value":"德令哈市","ext_id":"632802000000","label":"德令哈市"},{"id":"632803","pid":6328,"value":"茫崖市","ext_id":"632803000000","label":"茫崖市"},{"id":"632821","pid":6328,"value":"乌兰县","ext_id":"632821000000","label":"乌兰县"},{"id":"632822","pid":6328,"value":"都兰县","ext_id":"632822000000","label":"都兰县"},{"id":"632823","pid":6328,"value":"天峻县","ext_id":"632823000000","label":"天峻县"},{"id":"632825","pid":6328,"value":"大柴旦行政委员会","ext_id":"632825000000","label":"大柴旦行政委员会"}]}]},{"id":"64","pid":0,"value":"宁夏回族自治区","ext_id":"640000000000","label":"宁夏回族自治区","children":[{"id":"6401","pid":64,"value":"银川市","ext_id":"640100000000","label":"银川市","children":[{"id":"640104","pid":6401,"value":"兴庆区","ext_id":"640104000000","label":"兴庆区"},{"id":"640105","pid":6401,"value":"西夏区","ext_id":"640105000000","label":"西夏区"},{"id":"640106","pid":6401,"value":"金凤区","ext_id":"640106000000","label":"金凤区"},{"id":"640121","pid":6401,"value":"永宁县","ext_id":"640121000000","label":"永宁县"},{"id":"640122","pid":6401,"value":"贺兰县","ext_id":"640122000000","label":"贺兰县"},{"id":"640181","pid":6401,"value":"灵武市","ext_id":"640181000000","label":"灵武市"}]},{"id":"6402","pid":64,"value":"石嘴山市","ext_id":"640200000000","label":"石嘴山市","children":[{"id":"640202","pid":6402,"value":"大武口区","ext_id":"640202000000","label":"大武口区"},{"id":"640205","pid":6402,"value":"惠农区","ext_id":"640205000000","label":"惠农区"},{"id":"640221","pid":6402,"value":"平罗县","ext_id":"640221000000","label":"平罗县"}]},{"id":"6403","pid":64,"value":"吴忠市","ext_id":"640300000000","label":"吴忠市","children":[{"id":"640302","pid":6403,"value":"利通区","ext_id":"640302000000","label":"利通区"},{"id":"640303","pid":6403,"value":"红寺堡区","ext_id":"640303000000","label":"红寺堡区"},{"id":"640323","pid":6403,"value":"盐池县","ext_id":"640323000000","label":"盐池县"},{"id":"640324","pid":6403,"value":"同心县","ext_id":"640324000000","label":"同心县"},{"id":"640381","pid":6403,"value":"青铜峡市","ext_id":"640381000000","label":"青铜峡市"}]},{"id":"6404","pid":64,"value":"固原市","ext_id":"640400000000","label":"固原市","children":[{"id":"640402","pid":6404,"value":"原州区","ext_id":"640402000000","label":"原州区"},{"id":"640422","pid":6404,"value":"西吉县","ext_id":"640422000000","label":"西吉县"},{"id":"640423","pid":6404,"value":"隆德县","ext_id":"640423000000","label":"隆德县"},{"id":"640424","pid":6404,"value":"泾源县","ext_id":"640424000000","label":"泾源县"},{"id":"640425","pid":6404,"value":"彭阳县","ext_id":"640425000000","label":"彭阳县"}]},{"id":"6405","pid":64,"value":"中卫市","ext_id":"640500000000","label":"中卫市","children":[{"id":"640502","pid":6405,"value":"沙坡头区","ext_id":"640502000000","label":"沙坡头区"},{"id":"640521","pid":6405,"value":"中宁县","ext_id":"640521000000","label":"中宁县"},{"id":"640522","pid":6405,"value":"海原县","ext_id":"640522000000","label":"海原县"}]}]},{"id":"65","pid":0,"value":"新疆维吾尔自治区","ext_id":"650000000000","label":"新疆维吾尔自治区","children":[{"id":"6501","pid":65,"value":"乌鲁木齐市","ext_id":"650100000000","label":"乌鲁木齐市","children":[{"id":"650102","pid":6501,"value":"天山区","ext_id":"650102000000","label":"天山区"},{"id":"650103","pid":6501,"value":"沙依巴克区","ext_id":"650103000000","label":"沙依巴克区"},{"id":"650104","pid":6501,"value":"新市区","ext_id":"650104000000","label":"新市区"},{"id":"650105","pid":6501,"value":"水磨沟区","ext_id":"650105000000","label":"水磨沟区"},{"id":"650106","pid":6501,"value":"头屯河区","ext_id":"650106000000","label":"头屯河区"},{"id":"650107","pid":6501,"value":"达坂城区","ext_id":"650107000000","label":"达坂城区"},{"id":"650109","pid":6501,"value":"米东区","ext_id":"650109000000","label":"米东区"},{"id":"650121","pid":6501,"value":"乌鲁木齐县","ext_id":"650121000000","label":"乌鲁木齐县"}]},{"id":"6502","pid":65,"value":"克拉玛依市","ext_id":"650200000000","label":"克拉玛依市","children":[{"id":"650202","pid":6502,"value":"独山子区","ext_id":"650202000000","label":"独山子区"},{"id":"650203","pid":6502,"value":"克拉玛依区","ext_id":"650203000000","label":"克拉玛依区"},{"id":"650204","pid":6502,"value":"白碱滩区","ext_id":"650204000000","label":"白碱滩区"},{"id":"650205","pid":6502,"value":"乌尔禾区","ext_id":"650205000000","label":"乌尔禾区"}]},{"id":"6504","pid":65,"value":"吐鲁番市","ext_id":"650400000000","label":"吐鲁番市","children":[{"id":"650402","pid":6504,"value":"高昌区","ext_id":"650402000000","label":"高昌区"},{"id":"650421","pid":6504,"value":"鄯善县","ext_id":"650421000000","label":"鄯善县"},{"id":"650422","pid":6504,"value":"托克逊县","ext_id":"650422000000","label":"托克逊县"}]},{"id":"6505","pid":65,"value":"哈密市","ext_id":"650500000000","label":"哈密市","children":[{"id":"650502","pid":6505,"value":"伊州区","ext_id":"650502000000","label":"伊州区"},{"id":"650521","pid":6505,"value":"巴里坤哈萨克自治县","ext_id":"650521000000","label":"巴里坤哈萨克自治县"},{"id":"650522","pid":6505,"value":"伊吾县","ext_id":"650522000000","label":"伊吾县"}]},{"id":"6523","pid":65,"value":"昌吉回族自治州","ext_id":"652300000000","label":"昌吉回族自治州","children":[{"id":"652301","pid":6523,"value":"昌吉市","ext_id":"652301000000","label":"昌吉市"},{"id":"652302","pid":6523,"value":"阜康市","ext_id":"652302000000","label":"阜康市"},{"id":"652323","pid":6523,"value":"呼图壁县","ext_id":"652323000000","label":"呼图壁县"},{"id":"652324","pid":6523,"value":"玛纳斯县","ext_id":"652324000000","label":"玛纳斯县"},{"id":"652325","pid":6523,"value":"奇台县","ext_id":"652325000000","label":"奇台县"},{"id":"652327","pid":6523,"value":"吉木萨尔县","ext_id":"652327000000","label":"吉木萨尔县"},{"id":"652328","pid":6523,"value":"木垒哈萨克自治县","ext_id":"652328000000","label":"木垒哈萨克自治县"}]},{"id":"6527","pid":65,"value":"博尔塔拉蒙古自治州","ext_id":"652700000000","label":"博尔塔拉蒙古自治州","children":[{"id":"652701","pid":6527,"value":"博乐市","ext_id":"652701000000","label":"博乐市"},{"id":"652702","pid":6527,"value":"阿拉山口市","ext_id":"652702000000","label":"阿拉山口市"},{"id":"652722","pid":6527,"value":"精河县","ext_id":"652722000000","label":"精河县"},{"id":"652723","pid":6527,"value":"温泉县","ext_id":"652723000000","label":"温泉县"}]},{"id":"6528","pid":65,"value":"巴音郭楞蒙古自治州","ext_id":"652800000000","label":"巴音郭楞蒙古自治州","children":[{"id":"652801","pid":6528,"value":"库尔勒市","ext_id":"652801000000","label":"库尔勒市"},{"id":"652822","pid":6528,"value":"轮台县","ext_id":"652822000000","label":"轮台县"},{"id":"652823","pid":6528,"value":"尉犁县","ext_id":"652823000000","label":"尉犁县"},{"id":"652824","pid":6528,"value":"若羌县","ext_id":"652824000000","label":"若羌县"},{"id":"652825","pid":6528,"value":"且末县","ext_id":"652825000000","label":"且末县"},{"id":"652826","pid":6528,"value":"焉耆回族自治县","ext_id":"652826000000","label":"焉耆回族自治县"},{"id":"652827","pid":6528,"value":"和静县","ext_id":"652827000000","label":"和静县"},{"id":"652828","pid":6528,"value":"和硕县","ext_id":"652828000000","label":"和硕县"},{"id":"652829","pid":6528,"value":"博湖县","ext_id":"652829000000","label":"博湖县"}]},{"id":"6529","pid":65,"value":"阿克苏地区","ext_id":"652900000000","label":"阿克苏地区","children":[{"id":"652901","pid":6529,"value":"阿克苏市","ext_id":"652901000000","label":"阿克苏市"},{"id":"652902","pid":6529,"value":"库车市","ext_id":"652902000000","label":"库车市"},{"id":"652922","pid":6529,"value":"温宿县","ext_id":"652922000000","label":"温宿县"},{"id":"652924","pid":6529,"value":"沙雅县","ext_id":"652924000000","label":"沙雅县"},{"id":"652925","pid":6529,"value":"新和县","ext_id":"652925000000","label":"新和县"},{"id":"652926","pid":6529,"value":"拜城县","ext_id":"652926000000","label":"拜城县"},{"id":"652927","pid":6529,"value":"乌什县","ext_id":"652927000000","label":"乌什县"},{"id":"652928","pid":6529,"value":"阿瓦提县","ext_id":"652928000000","label":"阿瓦提县"},{"id":"652929","pid":6529,"value":"柯坪县","ext_id":"652929000000","label":"柯坪县"}]},{"id":"6530","pid":65,"value":"克孜勒苏柯尔克孜自治州","ext_id":"653000000000","label":"克孜勒苏柯尔克孜自治州","children":[{"id":"653001","pid":6530,"value":"阿图什市","ext_id":"653001000000","label":"阿图什市"},{"id":"653022","pid":6530,"value":"阿克陶县","ext_id":"653022000000","label":"阿克陶县"},{"id":"653023","pid":6530,"value":"阿合奇县","ext_id":"653023000000","label":"阿合奇县"},{"id":"653024","pid":6530,"value":"乌恰县","ext_id":"653024000000","label":"乌恰县"}]},{"id":"6531","pid":65,"value":"喀什地区","ext_id":"653100000000","label":"喀什地区","children":[{"id":"653101","pid":6531,"value":"喀什市","ext_id":"653101000000","label":"喀什市"},{"id":"653121","pid":6531,"value":"疏附县","ext_id":"653121000000","label":"疏附县"},{"id":"653122","pid":6531,"value":"疏勒县","ext_id":"653122000000","label":"疏勒县"},{"id":"653123","pid":6531,"value":"英吉沙县","ext_id":"653123000000","label":"英吉沙县"},{"id":"653124","pid":6531,"value":"泽普县","ext_id":"653124000000","label":"泽普县"},{"id":"653125","pid":6531,"value":"莎车县","ext_id":"653125000000","label":"莎车县"},{"id":"653126","pid":6531,"value":"叶城县","ext_id":"653126000000","label":"叶城县"},{"id":"653127","pid":6531,"value":"麦盖提县","ext_id":"653127000000","label":"麦盖提县"},{"id":"653128","pid":6531,"value":"岳普湖县","ext_id":"653128000000","label":"岳普湖县"},{"id":"653129","pid":6531,"value":"伽师县","ext_id":"653129000000","label":"伽师县"},{"id":"653130","pid":6531,"value":"巴楚县","ext_id":"653130000000","label":"巴楚县"},{"id":"653131","pid":6531,"value":"塔什库尔干塔吉克自治县","ext_id":"653131000000","label":"塔什库尔干塔吉克自治县"}]},{"id":"6532","pid":65,"value":"和田地区","ext_id":"653200000000","label":"和田地区","children":[{"id":"653201","pid":6532,"value":"和田市","ext_id":"653201000000","label":"和田市"},{"id":"653221","pid":6532,"value":"和田县","ext_id":"653221000000","label":"和田县"},{"id":"653222","pid":6532,"value":"墨玉县","ext_id":"653222000000","label":"墨玉县"},{"id":"653223","pid":6532,"value":"皮山县","ext_id":"653223000000","label":"皮山县"},{"id":"653224","pid":6532,"value":"洛浦县","ext_id":"653224000000","label":"洛浦县"},{"id":"653225","pid":6532,"value":"策勒县","ext_id":"653225000000","label":"策勒县"},{"id":"653226","pid":6532,"value":"于田县","ext_id":"653226000000","label":"于田县"},{"id":"653227","pid":6532,"value":"民丰县","ext_id":"653227000000","label":"民丰县"}]},{"id":"6540","pid":65,"value":"伊犁哈萨克自治州","ext_id":"654000000000","label":"伊犁哈萨克自治州","children":[{"id":"654002","pid":6540,"value":"伊宁市","ext_id":"654002000000","label":"伊宁市"},{"id":"654003","pid":6540,"value":"奎屯市","ext_id":"654003000000","label":"奎屯市"},{"id":"654004","pid":6540,"value":"霍尔果斯市","ext_id":"654004000000","label":"霍尔果斯市"},{"id":"654021","pid":6540,"value":"伊宁县","ext_id":"654021000000","label":"伊宁县"},{"id":"654022","pid":6540,"value":"察布查尔锡伯自治县","ext_id":"654022000000","label":"察布查尔锡伯自治县"},{"id":"654023","pid":6540,"value":"霍城县","ext_id":"654023000000","label":"霍城县"},{"id":"654024","pid":6540,"value":"巩留县","ext_id":"654024000000","label":"巩留县"},{"id":"654025","pid":6540,"value":"新源县","ext_id":"654025000000","label":"新源县"},{"id":"654026","pid":6540,"value":"昭苏县","ext_id":"654026000000","label":"昭苏县"},{"id":"654027","pid":6540,"value":"特克斯县","ext_id":"654027000000","label":"特克斯县"},{"id":"654028","pid":6540,"value":"尼勒克县","ext_id":"654028000000","label":"尼勒克县"}]},{"id":"6542","pid":65,"value":"塔城地区","ext_id":"654200000000","label":"塔城地区","children":[{"id":"654201","pid":6542,"value":"塔城市","ext_id":"654201000000","label":"塔城市"},{"id":"654202","pid":6542,"value":"乌苏市","ext_id":"654202000000","label":"乌苏市"},{"id":"654203","pid":6542,"value":"沙湾市","ext_id":"654203000000","label":"沙湾市"},{"id":"654221","pid":6542,"value":"额敏县","ext_id":"654221000000","label":"额敏县"},{"id":"654224","pid":6542,"value":"托里县","ext_id":"654224000000","label":"托里县"},{"id":"654225","pid":6542,"value":"裕民县","ext_id":"654225000000","label":"裕民县"},{"id":"654226","pid":6542,"value":"和布克赛尔蒙古自治县","ext_id":"654226000000","label":"和布克赛尔蒙古自治县"}]},{"id":"6543","pid":65,"value":"阿勒泰地区","ext_id":"654300000000","label":"阿勒泰地区","children":[{"id":"654301","pid":6543,"value":"阿勒泰市","ext_id":"654301000000","label":"阿勒泰市"},{"id":"654321","pid":6543,"value":"布尔津县","ext_id":"654321000000","label":"布尔津县"},{"id":"654322","pid":6543,"value":"富蕴县","ext_id":"654322000000","label":"富蕴县"},{"id":"654323","pid":6543,"value":"福海县","ext_id":"654323000000","label":"福海县"},{"id":"654324","pid":6543,"value":"哈巴河县","ext_id":"654324000000","label":"哈巴河县"},{"id":"654325","pid":6543,"value":"青河县","ext_id":"654325000000","label":"青河县"},{"id":"654326","pid":6543,"value":"吉木乃县","ext_id":"654326000000","label":"吉木乃县"}]},{"id":"659001","pid":65,"value":"石河子市","ext_id":"659001000000","label":"石河子市","children":[{"id":"659001000","pid":659001,"value":"石河子市","ext_id":"659001000000","label":"石河子市"}]},{"id":"659002","pid":65,"value":"阿拉尔市","ext_id":"659002000000","label":"阿拉尔市","children":[{"id":"659002000","pid":659002,"value":"阿拉尔市","ext_id":"659002000000","label":"阿拉尔市"}]},{"id":"659003","pid":65,"value":"图木舒克市","ext_id":"659003000000","label":"图木舒克市","children":[{"id":"659003000","pid":659003,"value":"图木舒克市","ext_id":"659003000000","label":"图木舒克市"}]},{"id":"659004","pid":65,"value":"五家渠市","ext_id":"659004000000","label":"五家渠市","children":[{"id":"659004000","pid":659004,"value":"五家渠市","ext_id":"659004000000","label":"五家渠市"}]},{"id":"659005","pid":65,"value":"北屯市","ext_id":"659005000000","label":"北屯市","children":[{"id":"659005000","pid":659005,"value":"北屯市","ext_id":"659005000000","label":"北屯市"}]},{"id":"659006","pid":65,"value":"铁门关市","ext_id":"659006000000","label":"铁门关市","children":[{"id":"659006000","pid":659006,"value":"铁门关市","ext_id":"659006000000","label":"铁门关市"}]},{"id":"659007","pid":65,"value":"双河市","ext_id":"659007000000","label":"双河市","children":[{"id":"659007000","pid":659007,"value":"双河市","ext_id":"659007000000","label":"双河市"}]},{"id":"659008","pid":65,"value":"可克达拉市","ext_id":"659008000000","label":"可克达拉市","children":[{"id":"659008000","pid":659008,"value":"可克达拉市","ext_id":"659008000000","label":"可克达拉市"}]},{"id":"659009","pid":65,"value":"昆玉市","ext_id":"659009000000","label":"昆玉市","children":[{"id":"659009000","pid":659009,"value":"昆玉市","ext_id":"659009000000","label":"昆玉市"}]},{"id":"659010","pid":65,"value":"胡杨河市","ext_id":"659010000000","label":"胡杨河市","children":[{"id":"659010000","pid":659010,"value":"胡杨河市","ext_id":"659010000000","label":"胡杨河市"}]},{"id":"659011","pid":65,"value":"新星市","ext_id":"659011000000","label":"新星市","children":[{"id":"659011000","pid":659011,"value":"新星市","ext_id":"659011000000","label":"新星市"}]}]},{"id":"71","pid":0,"value":"台湾省","ext_id":"710000000000","label":"台湾省","children":[{"id":"7101","pid":71,"value":"台北市","ext_id":"710100000000","label":"台北市","children":[{"id":"710101","pid":7101,"value":"中正区","ext_id":"710101000000","label":"中正区"},{"id":"710102","pid":7101,"value":"大同区","ext_id":"710102000000","label":"大同区"},{"id":"710103","pid":7101,"value":"中山区","ext_id":"710103000000","label":"中山区"},{"id":"710104","pid":7101,"value":"松山区","ext_id":"710104000000","label":"松山区"},{"id":"710105","pid":7101,"value":"大安区","ext_id":"710105000000","label":"大安区"},{"id":"710106","pid":7101,"value":"万华区","ext_id":"710106000000","label":"万华区"},{"id":"710107","pid":7101,"value":"信义区","ext_id":"710107000000","label":"信义区"},{"id":"710108","pid":7101,"value":"士林区","ext_id":"710108000000","label":"士林区"},{"id":"710109","pid":7101,"value":"北投区","ext_id":"710109000000","label":"北投区"},{"id":"710110","pid":7101,"value":"内湖区","ext_id":"710110000000","label":"内湖区"},{"id":"710111","pid":7101,"value":"南港区","ext_id":"710111000000","label":"南港区"},{"id":"710112","pid":7101,"value":"文山区","ext_id":"710112000000","label":"文山区"}]},{"id":"7102","pid":71,"value":"高雄市","ext_id":"710200000000","label":"高雄市","children":[{"id":"710201","pid":7102,"value":"新兴区","ext_id":"710201000000","label":"新兴区"},{"id":"710202","pid":7102,"value":"前金区","ext_id":"710202000000","label":"前金区"},{"id":"710203","pid":7102,"value":"苓雅区","ext_id":"710203000000","label":"苓雅区"},{"id":"710204","pid":7102,"value":"盐埕区","ext_id":"710204000000","label":"盐埕区"},{"id":"710205","pid":7102,"value":"鼓山区","ext_id":"710205000000","label":"鼓山区"},{"id":"710206","pid":7102,"value":"旗津区","ext_id":"710206000000","label":"旗津区"},{"id":"710207","pid":7102,"value":"前镇区","ext_id":"710207000000","label":"前镇区"},{"id":"710208","pid":7102,"value":"三民区","ext_id":"710208000000","label":"三民区"},{"id":"710209","pid":7102,"value":"左营区","ext_id":"710209000000","label":"左营区"},{"id":"710210","pid":7102,"value":"楠梓区","ext_id":"710210000000","label":"楠梓区"},{"id":"710211","pid":7102,"value":"小港区","ext_id":"710211000000","label":"小港区"},{"id":"710242","pid":7102,"value":"仁武区","ext_id":"710242000000","label":"仁武区"},{"id":"710243","pid":7102,"value":"大社区","ext_id":"710243000000","label":"大社区"},{"id":"710244","pid":7102,"value":"冈山区","ext_id":"710244000000","label":"冈山区"},{"id":"710245","pid":7102,"value":"路竹区","ext_id":"710245000000","label":"路竹区"},{"id":"710246","pid":7102,"value":"阿莲区","ext_id":"710246000000","label":"阿莲区"},{"id":"710247","pid":7102,"value":"田寮区","ext_id":"710247000000","label":"田寮区"},{"id":"710248","pid":7102,"value":"燕巢区","ext_id":"710248000000","label":"燕巢区"},{"id":"710249","pid":7102,"value":"桥头区","ext_id":"710249000000","label":"桥头区"},{"id":"710250","pid":7102,"value":"梓官区","ext_id":"710250000000","label":"梓官区"},{"id":"710251","pid":7102,"value":"弥陀区","ext_id":"710251000000","label":"弥陀区"},{"id":"710252","pid":7102,"value":"永安区","ext_id":"710252000000","label":"永安区"},{"id":"710253","pid":7102,"value":"湖内区","ext_id":"710253000000","label":"湖内区"},{"id":"710254","pid":7102,"value":"凤山区","ext_id":"710254000000","label":"凤山区"},{"id":"710255","pid":7102,"value":"大寮区","ext_id":"710255000000","label":"大寮区"},{"id":"710256","pid":7102,"value":"林园区","ext_id":"710256000000","label":"林园区"},{"id":"710257","pid":7102,"value":"鸟松区","ext_id":"710257000000","label":"鸟松区"},{"id":"710258","pid":7102,"value":"大树区","ext_id":"710258000000","label":"大树区"},{"id":"710259","pid":7102,"value":"旗山区","ext_id":"710259000000","label":"旗山区"},{"id":"710260","pid":7102,"value":"美浓区","ext_id":"710260000000","label":"美浓区"},{"id":"710261","pid":7102,"value":"六龟区","ext_id":"710261000000","label":"六龟区"},{"id":"710262","pid":7102,"value":"内门区","ext_id":"710262000000","label":"内门区"},{"id":"710263","pid":7102,"value":"杉林区","ext_id":"710263000000","label":"杉林区"},{"id":"710264","pid":7102,"value":"甲仙区","ext_id":"710264000000","label":"甲仙区"},{"id":"710265","pid":7102,"value":"桃源区","ext_id":"710265000000","label":"桃源区"},{"id":"710266","pid":7102,"value":"那玛夏区","ext_id":"710266000000","label":"那玛夏区"},{"id":"710267","pid":7102,"value":"茂林区","ext_id":"710267000000","label":"茂林区"},{"id":"710268","pid":7102,"value":"茄萣区","ext_id":"710268000000","label":"茄萣区"}]},{"id":"7103","pid":71,"value":"台南市","ext_id":"710300000000","label":"台南市","children":[{"id":"710301","pid":7103,"value":"中西区","ext_id":"710301000000","label":"中西区"},{"id":"710302","pid":7103,"value":"东区","ext_id":"710302000000","label":"东区"},{"id":"710303","pid":7103,"value":"南区","ext_id":"710303000000","label":"南区"},{"id":"710304","pid":7103,"value":"北区","ext_id":"710304000000","label":"北区"},{"id":"710305","pid":7103,"value":"安平区","ext_id":"710305000000","label":"安平区"},{"id":"710306","pid":7103,"value":"安南区","ext_id":"710306000000","label":"安南区"},{"id":"710339","pid":7103,"value":"永康区","ext_id":"710339000000","label":"永康区"},{"id":"710340","pid":7103,"value":"归仁区","ext_id":"710340000000","label":"归仁区"},{"id":"710341","pid":7103,"value":"新化区","ext_id":"710341000000","label":"新化区"},{"id":"710342","pid":7103,"value":"左镇区","ext_id":"710342000000","label":"左镇区"},{"id":"710343","pid":7103,"value":"玉井区","ext_id":"710343000000","label":"玉井区"},{"id":"710344","pid":7103,"value":"楠西区","ext_id":"710344000000","label":"楠西区"},{"id":"710345","pid":7103,"value":"南化区","ext_id":"710345000000","label":"南化区"},{"id":"710346","pid":7103,"value":"仁德区","ext_id":"710346000000","label":"仁德区"},{"id":"710347","pid":7103,"value":"关庙区","ext_id":"710347000000","label":"关庙区"},{"id":"710348","pid":7103,"value":"龙崎区","ext_id":"710348000000","label":"龙崎区"},{"id":"710349","pid":7103,"value":"官田区","ext_id":"710349000000","label":"官田区"},{"id":"710350","pid":7103,"value":"麻豆区","ext_id":"710350000000","label":"麻豆区"},{"id":"710351","pid":7103,"value":"佳里区","ext_id":"710351000000","label":"佳里区"},{"id":"710352","pid":7103,"value":"西港区","ext_id":"710352000000","label":"西港区"},{"id":"710353","pid":7103,"value":"七股区","ext_id":"710353000000","label":"七股区"},{"id":"710354","pid":7103,"value":"将军区","ext_id":"710354000000","label":"将军区"},{"id":"710355","pid":7103,"value":"学甲区","ext_id":"710355000000","label":"学甲区"},{"id":"710356","pid":7103,"value":"北门区","ext_id":"710356000000","label":"北门区"},{"id":"710357","pid":7103,"value":"新营区","ext_id":"710357000000","label":"新营区"},{"id":"710358","pid":7103,"value":"后壁区","ext_id":"710358000000","label":"后壁区"},{"id":"710359","pid":7103,"value":"白河区","ext_id":"710359000000","label":"白河区"},{"id":"710360","pid":7103,"value":"东山区","ext_id":"710360000000","label":"东山区"},{"id":"710361","pid":7103,"value":"六甲区","ext_id":"710361000000","label":"六甲区"},{"id":"710362","pid":7103,"value":"下营区","ext_id":"710362000000","label":"下营区"},{"id":"710363","pid":7103,"value":"柳营区","ext_id":"710363000000","label":"柳营区"},{"id":"710364","pid":7103,"value":"盐水区","ext_id":"710364000000","label":"盐水区"},{"id":"710365","pid":7103,"value":"善化区","ext_id":"710365000000","label":"善化区"},{"id":"710366","pid":7103,"value":"大内区","ext_id":"710366000000","label":"大内区"},{"id":"710367","pid":7103,"value":"山上区","ext_id":"710367000000","label":"山上区"},{"id":"710368","pid":7103,"value":"新市区","ext_id":"710368000000","label":"新市区"},{"id":"710369","pid":7103,"value":"安定区","ext_id":"710369000000","label":"安定区"}]},{"id":"7104","pid":71,"value":"台中市","ext_id":"710400000000","label":"台中市","children":[{"id":"710401","pid":7104,"value":"中区","ext_id":"710401000000","label":"中区"},{"id":"710402","pid":7104,"value":"东区","ext_id":"710402000000","label":"东区"},{"id":"710403","pid":7104,"value":"南区","ext_id":"710403000000","label":"南区"},{"id":"710404","pid":7104,"value":"西区","ext_id":"710404000000","label":"西区"},{"id":"710405","pid":7104,"value":"北区","ext_id":"710405000000","label":"北区"},{"id":"710406","pid":7104,"value":"北屯区","ext_id":"710406000000","label":"北屯区"},{"id":"710407","pid":7104,"value":"西屯区","ext_id":"710407000000","label":"西屯区"},{"id":"710408","pid":7104,"value":"南屯区","ext_id":"710408000000","label":"南屯区"},{"id":"710431","pid":7104,"value":"太平区","ext_id":"710431000000","label":"太平区"},{"id":"710432","pid":7104,"value":"大里区","ext_id":"710432000000","label":"大里区"},{"id":"710433","pid":7104,"value":"雾峰区","ext_id":"710433000000","label":"雾峰区"},{"id":"710434","pid":7104,"value":"乌日区","ext_id":"710434000000","label":"乌日区"},{"id":"710435","pid":7104,"value":"丰原区","ext_id":"710435000000","label":"丰原区"},{"id":"710436","pid":7104,"value":"后里区","ext_id":"710436000000","label":"后里区"},{"id":"710437","pid":7104,"value":"石冈区","ext_id":"710437000000","label":"石冈区"},{"id":"710438","pid":7104,"value":"东势区","ext_id":"710438000000","label":"东势区"},{"id":"710439","pid":7104,"value":"和平区","ext_id":"710439000000","label":"和平区"},{"id":"710440","pid":7104,"value":"新社区","ext_id":"710440000000","label":"新社区"},{"id":"710441","pid":7104,"value":"潭子区","ext_id":"710441000000","label":"潭子区"},{"id":"710442","pid":7104,"value":"大雅区","ext_id":"710442000000","label":"大雅区"},{"id":"710443","pid":7104,"value":"神冈区","ext_id":"710443000000","label":"神冈区"},{"id":"710444","pid":7104,"value":"大肚区","ext_id":"710444000000","label":"大肚区"},{"id":"710445","pid":7104,"value":"沙鹿区","ext_id":"710445000000","label":"沙鹿区"},{"id":"710446","pid":7104,"value":"龙井区","ext_id":"710446000000","label":"龙井区"},{"id":"710447","pid":7104,"value":"梧栖区","ext_id":"710447000000","label":"梧栖区"},{"id":"710448","pid":7104,"value":"清水区","ext_id":"710448000000","label":"清水区"},{"id":"710449","pid":7104,"value":"大甲区","ext_id":"710449000000","label":"大甲区"},{"id":"710450","pid":7104,"value":"外埔区","ext_id":"710450000000","label":"外埔区"},{"id":"710451","pid":7104,"value":"大安区","ext_id":"710451000000","label":"大安区"}]},{"id":"7106","pid":71,"value":"南投县","ext_id":"710600000000","label":"南投县","children":[{"id":"710614","pid":7106,"value":"南投市","ext_id":"710614000000","label":"南投市"},{"id":"710615","pid":7106,"value":"中寮乡","ext_id":"710615000000","label":"中寮乡"},{"id":"710616","pid":7106,"value":"草屯镇","ext_id":"710616000000","label":"草屯镇"},{"id":"710617","pid":7106,"value":"国姓乡","ext_id":"710617000000","label":"国姓乡"},{"id":"710618","pid":7106,"value":"埔里镇","ext_id":"710618000000","label":"埔里镇"},{"id":"710619","pid":7106,"value":"仁爱乡","ext_id":"710619000000","label":"仁爱乡"},{"id":"710620","pid":7106,"value":"名间乡","ext_id":"710620000000","label":"名间乡"},{"id":"710621","pid":7106,"value":"集集镇","ext_id":"710621000000","label":"集集镇"},{"id":"710622","pid":7106,"value":"水里乡","ext_id":"710622000000","label":"水里乡"},{"id":"710623","pid":7106,"value":"鱼池乡","ext_id":"710623000000","label":"鱼池乡"},{"id":"710624","pid":7106,"value":"信义乡","ext_id":"710624000000","label":"信义乡"},{"id":"710625","pid":7106,"value":"竹山镇","ext_id":"710625000000","label":"竹山镇"},{"id":"710626","pid":7106,"value":"鹿谷乡","ext_id":"710626000000","label":"鹿谷乡"}]},{"id":"7107","pid":71,"value":"基隆市","ext_id":"710700000000","label":"基隆市","children":[{"id":"710701","pid":7107,"value":"仁爱区","ext_id":"710701000000","label":"仁爱区"},{"id":"710702","pid":7107,"value":"信义区","ext_id":"710702000000","label":"信义区"},{"id":"710703","pid":7107,"value":"中正区","ext_id":"710703000000","label":"中正区"},{"id":"710704","pid":7107,"value":"中山区","ext_id":"710704000000","label":"中山区"},{"id":"710705","pid":7107,"value":"安乐区","ext_id":"710705000000","label":"安乐区"},{"id":"710706","pid":7107,"value":"暖暖区","ext_id":"710706000000","label":"暖暖区"},{"id":"710707","pid":7107,"value":"七堵区","ext_id":"710707000000","label":"七堵区"}]},{"id":"7108","pid":71,"value":"新竹市","ext_id":"710800000000","label":"新竹市","children":[{"id":"710801","pid":7108,"value":"东区","ext_id":"710801000000","label":"东区"},{"id":"710802","pid":7108,"value":"北区","ext_id":"710802000000","label":"北区"},{"id":"710803","pid":7108,"value":"香山区","ext_id":"710803000000","label":"香山区"}]},{"id":"7109","pid":71,"value":"嘉义市","ext_id":"710900000000","label":"嘉义市","children":[{"id":"710901","pid":7109,"value":"东区","ext_id":"710901000000","label":"东区"},{"id":"710902","pid":7109,"value":"西区","ext_id":"710902000000","label":"西区"}]},{"id":"7111","pid":71,"value":"新北市","ext_id":"711100000000","label":"新北市","children":[{"id":"711130","pid":7111,"value":"万里区","ext_id":"711130000000","label":"万里区"},{"id":"711131","pid":7111,"value":"金山区","ext_id":"711131000000","label":"金山区"},{"id":"711132","pid":7111,"value":"板桥区","ext_id":"711132000000","label":"板桥区"},{"id":"711133","pid":7111,"value":"汐止区","ext_id":"711133000000","label":"汐止区"},{"id":"711134","pid":7111,"value":"深坑区","ext_id":"711134000000","label":"深坑区"},{"id":"711135","pid":7111,"value":"石碇区","ext_id":"711135000000","label":"石碇区"},{"id":"711136","pid":7111,"value":"瑞芳区","ext_id":"711136000000","label":"瑞芳区"},{"id":"711137","pid":7111,"value":"平溪区","ext_id":"711137000000","label":"平溪区"},{"id":"711138","pid":7111,"value":"双溪区","ext_id":"711138000000","label":"双溪区"},{"id":"711139","pid":7111,"value":"贡寮区","ext_id":"711139000000","label":"贡寮区"},{"id":"711140","pid":7111,"value":"新店区","ext_id":"711140000000","label":"新店区"},{"id":"711141","pid":7111,"value":"坪林区","ext_id":"711141000000","label":"坪林区"},{"id":"711142","pid":7111,"value":"乌来区","ext_id":"711142000000","label":"乌来区"},{"id":"711143","pid":7111,"value":"永和区","ext_id":"711143000000","label":"永和区"},{"id":"711144","pid":7111,"value":"中和区","ext_id":"711144000000","label":"中和区"},{"id":"711145","pid":7111,"value":"土城区","ext_id":"711145000000","label":"土城区"},{"id":"711146","pid":7111,"value":"三峡区","ext_id":"711146000000","label":"三峡区"},{"id":"711147","pid":7111,"value":"树林区","ext_id":"711147000000","label":"树林区"},{"id":"711148","pid":7111,"value":"莺歌区","ext_id":"711148000000","label":"莺歌区"},{"id":"711149","pid":7111,"value":"三重区","ext_id":"711149000000","label":"三重区"},{"id":"711150","pid":7111,"value":"新庄区","ext_id":"711150000000","label":"新庄区"},{"id":"711151","pid":7111,"value":"泰山区","ext_id":"711151000000","label":"泰山区"},{"id":"711152","pid":7111,"value":"林口区","ext_id":"711152000000","label":"林口区"},{"id":"711153","pid":7111,"value":"芦洲区","ext_id":"711153000000","label":"芦洲区"},{"id":"711154","pid":7111,"value":"五股区","ext_id":"711154000000","label":"五股区"},{"id":"711155","pid":7111,"value":"八里区","ext_id":"711155000000","label":"八里区"},{"id":"711156","pid":7111,"value":"淡水区","ext_id":"711156000000","label":"淡水区"},{"id":"711157","pid":7111,"value":"三芝区","ext_id":"711157000000","label":"三芝区"},{"id":"711158","pid":7111,"value":"石门区","ext_id":"711158000000","label":"石门区"}]},{"id":"7112","pid":71,"value":"宜兰县","ext_id":"711200000000","label":"宜兰县","children":[{"id":"711214","pid":7112,"value":"宜兰市","ext_id":"711214000000","label":"宜兰市"},{"id":"711215","pid":7112,"value":"头城镇","ext_id":"711215000000","label":"头城镇"},{"id":"711216","pid":7112,"value":"礁溪乡","ext_id":"711216000000","label":"礁溪乡"},{"id":"711217","pid":7112,"value":"壮围乡","ext_id":"711217000000","label":"壮围乡"},{"id":"711218","pid":7112,"value":"员山乡","ext_id":"711218000000","label":"员山乡"},{"id":"711219","pid":7112,"value":"罗东镇","ext_id":"711219000000","label":"罗东镇"},{"id":"711220","pid":7112,"value":"三星乡","ext_id":"711220000000","label":"三星乡"},{"id":"711221","pid":7112,"value":"大同乡","ext_id":"711221000000","label":"大同乡"},{"id":"711222","pid":7112,"value":"五结乡","ext_id":"711222000000","label":"五结乡"},{"id":"711223","pid":7112,"value":"冬山乡","ext_id":"711223000000","label":"冬山乡"},{"id":"711224","pid":7112,"value":"苏澳镇","ext_id":"711224000000","label":"苏澳镇"},{"id":"711225","pid":7112,"value":"南澳乡","ext_id":"711225000000","label":"南澳乡"}]},{"id":"7113","pid":71,"value":"新竹县","ext_id":"711300000000","label":"新竹县","children":[{"id":"711314","pid":7113,"value":"竹北市","ext_id":"711314000000","label":"竹北市"},{"id":"711315","pid":7113,"value":"湖口乡","ext_id":"711315000000","label":"湖口乡"},{"id":"711316","pid":7113,"value":"新丰乡","ext_id":"711316000000","label":"新丰乡"},{"id":"711317","pid":7113,"value":"新埔镇","ext_id":"711317000000","label":"新埔镇"},{"id":"711318","pid":7113,"value":"关西镇","ext_id":"711318000000","label":"关西镇"},{"id":"711319","pid":7113,"value":"芎林乡","ext_id":"711319000000","label":"芎林乡"},{"id":"711320","pid":7113,"value":"宝山乡","ext_id":"711320000000","label":"宝山乡"},{"id":"711321","pid":7113,"value":"竹东镇","ext_id":"711321000000","label":"竹东镇"},{"id":"711322","pid":7113,"value":"五峰乡","ext_id":"711322000000","label":"五峰乡"},{"id":"711323","pid":7113,"value":"横山乡","ext_id":"711323000000","label":"横山乡"},{"id":"711324","pid":7113,"value":"尖石乡","ext_id":"711324000000","label":"尖石乡"},{"id":"711325","pid":7113,"value":"北埔乡","ext_id":"711325000000","label":"北埔乡"},{"id":"711326","pid":7113,"value":"峨眉乡","ext_id":"711326000000","label":"峨眉乡"}]},{"id":"7114","pid":71,"value":"桃园市","ext_id":"711400000000","label":"桃园市","children":[{"id":"711414","pid":7114,"value":"中坜区","ext_id":"711414000000","label":"中坜区"},{"id":"711415","pid":7114,"value":"平镇区","ext_id":"711415000000","label":"平镇区"},{"id":"711416","pid":7114,"value":"龙潭区","ext_id":"711416000000","label":"龙潭区"},{"id":"711417","pid":7114,"value":"杨梅区","ext_id":"711417000000","label":"杨梅区"},{"id":"711418","pid":7114,"value":"新屋区","ext_id":"711418000000","label":"新屋区"},{"id":"711419","pid":7114,"value":"观音区","ext_id":"711419000000","label":"观音区"},{"id":"711420","pid":7114,"value":"桃园区","ext_id":"711420000000","label":"桃园区"},{"id":"711421","pid":7114,"value":"龟山区","ext_id":"711421000000","label":"龟山区"},{"id":"711422","pid":7114,"value":"八德区","ext_id":"711422000000","label":"八德区"},{"id":"711423","pid":7114,"value":"大溪区","ext_id":"711423000000","label":"大溪区"},{"id":"711424","pid":7114,"value":"复兴区","ext_id":"711424000000","label":"复兴区"},{"id":"711425","pid":7114,"value":"大园区","ext_id":"711425000000","label":"大园区"},{"id":"711426","pid":7114,"value":"芦竹区","ext_id":"711426000000","label":"芦竹区"}]},{"id":"7115","pid":71,"value":"苗栗县","ext_id":"711500000000","label":"苗栗县","children":[{"id":"711519","pid":7115,"value":"竹南镇","ext_id":"711519000000","label":"竹南镇"},{"id":"711520","pid":7115,"value":"头份市","ext_id":"711520000000","label":"头份市"},{"id":"711521","pid":7115,"value":"三湾乡","ext_id":"711521000000","label":"三湾乡"},{"id":"711522","pid":7115,"value":"南庄乡","ext_id":"711522000000","label":"南庄乡"},{"id":"711523","pid":7115,"value":"狮潭乡","ext_id":"711523000000","label":"狮潭乡"},{"id":"711524","pid":7115,"value":"后龙镇","ext_id":"711524000000","label":"后龙镇"},{"id":"711525","pid":7115,"value":"通霄镇","ext_id":"711525000000","label":"通霄镇"},{"id":"711526","pid":7115,"value":"苑里镇","ext_id":"711526000000","label":"苑里镇"},{"id":"711527","pid":7115,"value":"苗栗市","ext_id":"711527000000","label":"苗栗市"},{"id":"711528","pid":7115,"value":"造桥乡","ext_id":"711528000000","label":"造桥乡"},{"id":"711529","pid":7115,"value":"头屋乡","ext_id":"711529000000","label":"头屋乡"},{"id":"711530","pid":7115,"value":"公馆乡","ext_id":"711530000000","label":"公馆乡"},{"id":"711531","pid":7115,"value":"大湖乡","ext_id":"711531000000","label":"大湖乡"},{"id":"711532","pid":7115,"value":"泰安乡","ext_id":"711532000000","label":"泰安乡"},{"id":"711533","pid":7115,"value":"铜锣乡","ext_id":"711533000000","label":"铜锣乡"},{"id":"711534","pid":7115,"value":"三义乡","ext_id":"711534000000","label":"三义乡"},{"id":"711535","pid":7115,"value":"西湖乡","ext_id":"711535000000","label":"西湖乡"},{"id":"711536","pid":7115,"value":"卓兰镇","ext_id":"711536000000","label":"卓兰镇"}]},{"id":"7117","pid":71,"value":"彰化县","ext_id":"711700000000","label":"彰化县","children":[{"id":"711727","pid":7117,"value":"彰化市","ext_id":"711727000000","label":"彰化市"},{"id":"711728","pid":7117,"value":"芬园乡","ext_id":"711728000000","label":"芬园乡"},{"id":"711729","pid":7117,"value":"花坛乡","ext_id":"711729000000","label":"花坛乡"},{"id":"711730","pid":7117,"value":"秀水乡","ext_id":"711730000000","label":"秀水乡"},{"id":"711731","pid":7117,"value":"鹿港镇","ext_id":"711731000000","label":"鹿港镇"},{"id":"711732","pid":7117,"value":"福兴乡","ext_id":"711732000000","label":"福兴乡"},{"id":"711733","pid":7117,"value":"线西乡","ext_id":"711733000000","label":"线西乡"},{"id":"711734","pid":7117,"value":"和美镇","ext_id":"711734000000","label":"和美镇"},{"id":"711735","pid":7117,"value":"伸港乡","ext_id":"711735000000","label":"伸港乡"},{"id":"711736","pid":7117,"value":"员林市","ext_id":"711736000000","label":"员林市"},{"id":"711737","pid":7117,"value":"社头乡","ext_id":"711737000000","label":"社头乡"},{"id":"711738","pid":7117,"value":"永靖乡","ext_id":"711738000000","label":"永靖乡"},{"id":"711739","pid":7117,"value":"埔心乡","ext_id":"711739000000","label":"埔心乡"},{"id":"711740","pid":7117,"value":"溪湖镇","ext_id":"711740000000","label":"溪湖镇"},{"id":"711741","pid":7117,"value":"大村乡","ext_id":"711741000000","label":"大村乡"},{"id":"711742","pid":7117,"value":"埔盐乡","ext_id":"711742000000","label":"埔盐乡"},{"id":"711743","pid":7117,"value":"田中镇","ext_id":"711743000000","label":"田中镇"},{"id":"711744","pid":7117,"value":"北斗镇","ext_id":"711744000000","label":"北斗镇"},{"id":"711745","pid":7117,"value":"田尾乡","ext_id":"711745000000","label":"田尾乡"},{"id":"711746","pid":7117,"value":"埤头乡","ext_id":"711746000000","label":"埤头乡"},{"id":"711747","pid":7117,"value":"溪州乡","ext_id":"711747000000","label":"溪州乡"},{"id":"711748","pid":7117,"value":"竹塘乡","ext_id":"711748000000","label":"竹塘乡"},{"id":"711749","pid":7117,"value":"二林镇","ext_id":"711749000000","label":"二林镇"},{"id":"711750","pid":7117,"value":"大城乡","ext_id":"711750000000","label":"大城乡"},{"id":"711751","pid":7117,"value":"芳苑乡","ext_id":"711751000000","label":"芳苑乡"},{"id":"711752","pid":7117,"value":"二水乡","ext_id":"711752000000","label":"二水乡"}]},{"id":"7119","pid":71,"value":"嘉义县","ext_id":"711900000000","label":"嘉义县","children":[{"id":"711919","pid":7119,"value":"番路乡","ext_id":"711919000000","label":"番路乡"},{"id":"711920","pid":7119,"value":"梅山乡","ext_id":"711920000000","label":"梅山乡"},{"id":"711921","pid":7119,"value":"竹崎乡","ext_id":"711921000000","label":"竹崎乡"},{"id":"711922","pid":7119,"value":"阿里山乡","ext_id":"711922000000","label":"阿里山乡"},{"id":"711923","pid":7119,"value":"中埔乡","ext_id":"711923000000","label":"中埔乡"},{"id":"711924","pid":7119,"value":"大埔乡","ext_id":"711924000000","label":"大埔乡"},{"id":"711925","pid":7119,"value":"水上乡","ext_id":"711925000000","label":"水上乡"},{"id":"711926","pid":7119,"value":"鹿草乡","ext_id":"711926000000","label":"鹿草乡"},{"id":"711927","pid":7119,"value":"太保市","ext_id":"711927000000","label":"太保市"},{"id":"711928","pid":7119,"value":"朴子市","ext_id":"711928000000","label":"朴子市"},{"id":"711929","pid":7119,"value":"东石乡","ext_id":"711929000000","label":"东石乡"},{"id":"711930","pid":7119,"value":"六脚乡","ext_id":"711930000000","label":"六脚乡"},{"id":"711931","pid":7119,"value":"新港乡","ext_id":"711931000000","label":"新港乡"},{"id":"711932","pid":7119,"value":"民雄乡","ext_id":"711932000000","label":"民雄乡"},{"id":"711933","pid":7119,"value":"大林镇","ext_id":"711933000000","label":"大林镇"},{"id":"711934","pid":7119,"value":"溪口乡","ext_id":"711934000000","label":"溪口乡"},{"id":"711935","pid":7119,"value":"义竹乡","ext_id":"711935000000","label":"义竹乡"},{"id":"711936","pid":7119,"value":"布袋镇","ext_id":"711936000000","label":"布袋镇"}]},{"id":"7121","pid":71,"value":"云林县","ext_id":"712100000000","label":"云林县","children":[{"id":"712121","pid":7121,"value":"斗南镇","ext_id":"712121000000","label":"斗南镇"},{"id":"712122","pid":7121,"value":"大埤乡","ext_id":"712122000000","label":"大埤乡"},{"id":"712123","pid":7121,"value":"虎尾镇","ext_id":"712123000000","label":"虎尾镇"},{"id":"712124","pid":7121,"value":"土库镇","ext_id":"712124000000","label":"土库镇"},{"id":"712125","pid":7121,"value":"褒忠乡","ext_id":"712125000000","label":"褒忠乡"},{"id":"712126","pid":7121,"value":"东势乡","ext_id":"712126000000","label":"东势乡"},{"id":"712127","pid":7121,"value":"台西乡","ext_id":"712127000000","label":"台西乡"},{"id":"712128","pid":7121,"value":"仑背乡","ext_id":"712128000000","label":"仑背乡"},{"id":"712129","pid":7121,"value":"麦寮乡","ext_id":"712129000000","label":"麦寮乡"},{"id":"712130","pid":7121,"value":"斗六市","ext_id":"712130000000","label":"斗六市"},{"id":"712131","pid":7121,"value":"林内乡","ext_id":"712131000000","label":"林内乡"},{"id":"712132","pid":7121,"value":"古坑乡","ext_id":"712132000000","label":"古坑乡"},{"id":"712133","pid":7121,"value":"莿桐乡","ext_id":"712133000000","label":"莿桐乡"},{"id":"712134","pid":7121,"value":"西螺镇","ext_id":"712134000000","label":"西螺镇"},{"id":"712135","pid":7121,"value":"二仑乡","ext_id":"712135000000","label":"二仑乡"},{"id":"712136","pid":7121,"value":"北港镇","ext_id":"712136000000","label":"北港镇"},{"id":"712137","pid":7121,"value":"水林乡","ext_id":"712137000000","label":"水林乡"},{"id":"712138","pid":7121,"value":"口湖乡","ext_id":"712138000000","label":"口湖乡"},{"id":"712139","pid":7121,"value":"四湖乡","ext_id":"712139000000","label":"四湖乡"},{"id":"712140","pid":7121,"value":"元长乡","ext_id":"712140000000","label":"元长乡"}]},{"id":"7124","pid":71,"value":"屏东县","ext_id":"712400000000","label":"屏东县","children":[{"id":"712434","pid":7124,"value":"屏东市","ext_id":"712434000000","label":"屏东市"},{"id":"712435","pid":7124,"value":"三地门乡","ext_id":"712435000000","label":"三地门乡"},{"id":"712436","pid":7124,"value":"雾台乡","ext_id":"712436000000","label":"雾台乡"},{"id":"712437","pid":7124,"value":"玛家乡","ext_id":"712437000000","label":"玛家乡"},{"id":"712438","pid":7124,"value":"九如乡","ext_id":"712438000000","label":"九如乡"},{"id":"712439","pid":7124,"value":"里港乡","ext_id":"712439000000","label":"里港乡"},{"id":"712440","pid":7124,"value":"高树乡","ext_id":"712440000000","label":"高树乡"},{"id":"712441","pid":7124,"value":"盐埔乡","ext_id":"712441000000","label":"盐埔乡"},{"id":"712442","pid":7124,"value":"长治乡","ext_id":"712442000000","label":"长治乡"},{"id":"712443","pid":7124,"value":"麟洛乡","ext_id":"712443000000","label":"麟洛乡"},{"id":"712444","pid":7124,"value":"竹田乡","ext_id":"712444000000","label":"竹田乡"},{"id":"712445","pid":7124,"value":"内埔乡","ext_id":"712445000000","label":"内埔乡"},{"id":"712446","pid":7124,"value":"万丹乡","ext_id":"712446000000","label":"万丹乡"},{"id":"712447","pid":7124,"value":"潮州镇","ext_id":"712447000000","label":"潮州镇"},{"id":"712448","pid":7124,"value":"泰武乡","ext_id":"712448000000","label":"泰武乡"},{"id":"712449","pid":7124,"value":"来义乡","ext_id":"712449000000","label":"来义乡"},{"id":"712450","pid":7124,"value":"万峦乡","ext_id":"712450000000","label":"万峦乡"},{"id":"712451","pid":7124,"value":"崁顶乡","ext_id":"712451000000","label":"崁顶乡"},{"id":"712452","pid":7124,"value":"新埤乡","ext_id":"712452000000","label":"新埤乡"},{"id":"712453","pid":7124,"value":"南州乡","ext_id":"712453000000","label":"南州乡"},{"id":"712454","pid":7124,"value":"林边乡","ext_id":"712454000000","label":"林边乡"},{"id":"712455","pid":7124,"value":"东港镇","ext_id":"712455000000","label":"东港镇"},{"id":"712456","pid":7124,"value":"琉球乡","ext_id":"712456000000","label":"琉球乡"},{"id":"712457","pid":7124,"value":"佳冬乡","ext_id":"712457000000","label":"佳冬乡"},{"id":"712458","pid":7124,"value":"新园乡","ext_id":"712458000000","label":"新园乡"},{"id":"712459","pid":7124,"value":"枋寮乡","ext_id":"712459000000","label":"枋寮乡"},{"id":"712460","pid":7124,"value":"枋山乡","ext_id":"712460000000","label":"枋山乡"},{"id":"712461","pid":7124,"value":"春日乡","ext_id":"712461000000","label":"春日乡"},{"id":"712462","pid":7124,"value":"狮子乡","ext_id":"712462000000","label":"狮子乡"},{"id":"712463","pid":7124,"value":"车城乡","ext_id":"712463000000","label":"车城乡"},{"id":"712464","pid":7124,"value":"牡丹乡","ext_id":"712464000000","label":"牡丹乡"},{"id":"712465","pid":7124,"value":"恒春镇","ext_id":"712465000000","label":"恒春镇"},{"id":"712466","pid":7124,"value":"满州乡","ext_id":"712466000000","label":"满州乡"}]},{"id":"7125","pid":71,"value":"台东县","ext_id":"712500000000","label":"台东县","children":[{"id":"712517","pid":7125,"value":"台东市","ext_id":"712517000000","label":"台东市"},{"id":"712518","pid":7125,"value":"绿岛乡","ext_id":"712518000000","label":"绿岛乡"},{"id":"712519","pid":7125,"value":"兰屿乡","ext_id":"712519000000","label":"兰屿乡"},{"id":"712520","pid":7125,"value":"延平乡","ext_id":"712520000000","label":"延平乡"},{"id":"712521","pid":7125,"value":"卑南乡","ext_id":"712521000000","label":"卑南乡"},{"id":"712522","pid":7125,"value":"鹿野乡","ext_id":"712522000000","label":"鹿野乡"},{"id":"712523","pid":7125,"value":"关山镇","ext_id":"712523000000","label":"关山镇"},{"id":"712524","pid":7125,"value":"海端乡","ext_id":"712524000000","label":"海端乡"},{"id":"712525","pid":7125,"value":"池上乡","ext_id":"712525000000","label":"池上乡"},{"id":"712526","pid":7125,"value":"东河乡","ext_id":"712526000000","label":"东河乡"},{"id":"712527","pid":7125,"value":"成功镇","ext_id":"712527000000","label":"成功镇"},{"id":"712528","pid":7125,"value":"长滨乡","ext_id":"712528000000","label":"长滨乡"},{"id":"712529","pid":7125,"value":"金峰乡","ext_id":"712529000000","label":"金峰乡"},{"id":"712530","pid":7125,"value":"大武乡","ext_id":"712530000000","label":"大武乡"},{"id":"712531","pid":7125,"value":"达仁乡","ext_id":"712531000000","label":"达仁乡"},{"id":"712532","pid":7125,"value":"太麻里乡","ext_id":"712532000000","label":"太麻里乡"}]},{"id":"7126","pid":71,"value":"花莲县","ext_id":"712600000000","label":"花莲县","children":[{"id":"712615","pid":7126,"value":"花莲市","ext_id":"712615000000","label":"花莲市"},{"id":"712616","pid":7126,"value":"新城乡","ext_id":"712616000000","label":"新城乡"},{"id":"712618","pid":7126,"value":"秀林乡","ext_id":"712618000000","label":"秀林乡"},{"id":"712619","pid":7126,"value":"吉安乡","ext_id":"712619000000","label":"吉安乡"},{"id":"712620","pid":7126,"value":"寿丰乡","ext_id":"712620000000","label":"寿丰乡"},{"id":"712621","pid":7126,"value":"凤林镇","ext_id":"712621000000","label":"凤林镇"},{"id":"712622","pid":7126,"value":"光复乡","ext_id":"712622000000","label":"光复乡"},{"id":"712623","pid":7126,"value":"丰滨乡","ext_id":"712623000000","label":"丰滨乡"},{"id":"712624","pid":7126,"value":"瑞穗乡","ext_id":"712624000000","label":"瑞穗乡"},{"id":"712625","pid":7126,"value":"万荣乡","ext_id":"712625000000","label":"万荣乡"},{"id":"712626","pid":7126,"value":"玉里镇","ext_id":"712626000000","label":"玉里镇"},{"id":"712627","pid":7126,"value":"卓溪乡","ext_id":"712627000000","label":"卓溪乡"},{"id":"712628","pid":7126,"value":"富里乡","ext_id":"712628000000","label":"富里乡"}]},{"id":"7127","pid":71,"value":"澎湖县","ext_id":"712700000000","label":"澎湖县","children":[{"id":"712707","pid":7127,"value":"马公市","ext_id":"712707000000","label":"马公市"},{"id":"712708","pid":7127,"value":"西屿乡","ext_id":"712708000000","label":"西屿乡"},{"id":"712709","pid":7127,"value":"望安乡","ext_id":"712709000000","label":"望安乡"},{"id":"712710","pid":7127,"value":"七美乡","ext_id":"712710000000","label":"七美乡"},{"id":"712711","pid":7127,"value":"白沙乡","ext_id":"712711000000","label":"白沙乡"},{"id":"712712","pid":7127,"value":"湖西乡","ext_id":"712712000000","label":"湖西乡"}]}]},{"id":"81","pid":0,"value":"香港特别行政区","ext_id":"810000000000","label":"香港特别行政区","children":[{"id":"8100","pid":81,"value":"香港特别行政区","ext_id":"810000000000","label":"香港特别行政区","children":[{"id":"810000","pid":8100,"value":"香港特别行政区","ext_id":"810000000000","label":"香港特别行政区"}]}]},{"id":"82","pid":0,"value":"澳门特别行政区","ext_id":"820000000000","label":"澳门特别行政区","children":[{"id":"8200","pid":82,"value":"澳门特别行政区","ext_id":"820000000000","label":"澳门特别行政区","children":[{"id":"820000","pid":8200,"value":"澳门特别行政区","ext_id":"820000000000","label":"澳门特别行政区"}]}]},{"id":"91","pid":0,"value":"国外","ext_id":"0","label":"国外","children":[{"id":"9100","pid":91,"value":"国外","ext_id":"0","label":"国外","children":[{"id":"910000","pid":9100,"value":"国外","ext_id":"0","label":"国外"}]}]}]')},"2f7c":function(e,t,i){},"2fae":function(e,t,i){"use strict";i("8a09")},"310b":function(e,t,i){"use strict";i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return a}));i("a9e3");var r=i("4360");function n(e,t){var i=r["a"].getters.clientdata,n=i[e];return void 0===n?"未知":(n=i[e][t],void 0===n?"未知":n)}function a(e){var t=r["a"].getters.clientdata,i=t[e];if(void 0===i)return[];var n=[];for(var a in i)n.push({code:Number(a),val:i[a]});return n}},"31b5":function(e,t,i){"use strict";i("9def")},"31bd":function(e,t,i){"use strict";i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return a})),i.d(t,"c",(function(){return o}));var r=i("b775");function n(e){return Object(r["b"])({url:"/business/Campaign/list",method:"post",data:e})}function a(e){return Object(r["b"])({url:"/business/Campaign/setstatus",method:"post",data:e})}function o(e){return Object(r["b"])({url:"/business/Campaign/submit",method:"post",data:e})}},"3bf5":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入手机号"},model:{value:e.queryParam.phone,callback:function(t){e.$set(e.queryParam,"phone",t)},expression:"queryParam.phone"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入姓名"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择状态","allow-clear":""},on:{change:e.handleStatusChange},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("usermembershipapplicationstatusenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"avatar",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.name,src:r.avatar,srcSet:r.avatar},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.name,img:r.avatar})}}})],1)}},{key:"sex",fn:function(i){return t("span",{},[e._v(" "+e._s(e.GetClientDataItem("gender",i))+" ")])}},{key:"birthday",fn:function(i){return t("span",{},[e._v(" "+e._s(e.moment(i).format("yyyy-MM-DD"))+" ")])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("userApplyfor:audit")?t("a",{on:{click:function(t){return e.detail(r)}}},[e._v("详情")]):e._e()])}},{key:"moreinfo",fn:function(i){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1)}},{key:"memberstatus",fn:function(i,r){return t("span",{},[2===r.memberstatus?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.GetClientDataItem("usermembershipapplicationstatusenum",i)))]):3===r.memberstatus?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.GetClientDataItem("usermembershipapplicationstatusenum",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.GetClientDataItem("usermembershipapplicationstatusenum",i)))])],1)}}])}),t("detail",{ref:"detail",on:{ok:e.handleOk}}),t("previewimg",{ref:"PreImg"})],1)],1)},n=[],a=(i("d81d"),i("2af9")),o=i("0901"),l=i("310b"),u=i("081d"),s=i("a71b"),d=i("c1df"),c=i.n(d),p={components:{XCard:a["k"],STable:a["h"],detail:s["default"],previewimg:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},statusDictTypeDropDown:[],columns:[{title:"头像",dataIndex:"avatar",scopedSlots:{customRender:"avatar"}},{title:"姓名",dataIndex:"name"},{title:"手机号",dataIndex:"phone"},{title:"行业",dataIndex:"industryname"},{title:"企业",dataIndex:"comname",scopedSlots:{customRender:"moreinfo"}},{title:"企业职位",dataIndex:"compos"},{title:"性别",dataIndex:"sex",scopedSlots:{customRender:"sex"}},{title:"申请时间",dataIndex:"createdtime"},{title:"来源",dataIndex:"source"},{title:"提供资讯",dataIndex:"provide",scopedSlots:{customRender:"moreinfo"}},{title:"希望资源",dataIndex:"demand",scopedSlots:{customRender:"moreinfo"}},{title:"状态",dataIndex:"memberstatus",scopedSlots:{customRender:"memberstatus"}}],loadData:function(t){return Object(o["c"])(Object.assign(t,e.queryParam)).then((function(e){if(e.data&&e.data.rows){var t=e.data.rows.map((function(e){return e.avatar="http://irdhdt.com/"+e.avatar,e}));e.data.rows=t}return e.data}))}}},created:function(){this.hasPerm("userApplyfor:audit")&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataItem:l["a"],GetClientDataList:l["b"],moment:c.a,handleOk:function(){this.$refs.table.refresh()},handleStatusChange:function(e){0!=e&&1==e&&2==e&&3==e&&(this.queryParam.status=null)},detail:function(e){this.$refs.detail.init(e)},setstatus:function(e,t){var i=this;sysUserChangeStatus({id:e.id,status:0===t?1:0}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)}))}}},f=p,v=(i("fb9a"),i("2877")),h=Object(v["a"])(f,r,n,!1,null,"00d5c7eb",null);t["default"]=h.exports},"3d8b":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("a-row",{attrs:{gutter:24}},[t("a-col",{staticStyle:{padding:"0 0 0 0"},attrs:{md:5,sm:24}},[t("a-card",{attrs:{bordered:!1,loading:e.treeLoading}},[""!=this.orgTree?t("div",[e.orgTree.length?t("a-tree",{staticStyle:{scroll:"true"},attrs:{treeData:e.orgTree,defaultExpandAll:!0,defaultExpandedKeys:e.defaultExpandedKeys,replaceFields:e.replaceFields},on:{select:e.handleClick}}):e._e()],1):t("div",[t("a-empty",{attrs:{image:e.simpleImage}})],1)])],1),t("a-col",{attrs:{md:19,sm:24}},[e.hasPerm("sysOrg:page")?t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:6,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入机构名称"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:8,sm:24}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1),t("a-col",{attrs:{md:8,sm:24}})],1)],1)],1)]):e._e(),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("sysOrg:edit")?t("a",{on:{click:function(t){return e.$refs.editForm.edit(r)}}},[e._v("编辑")]):e._e(),e.hasPerm("sysOrg:edit")&e.hasPerm("sysOrg:delete")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysOrg:delete")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.sysOrgDelete(r)}}},[t("a",[e._v("删除")])]):e._e()],1)}}])},[e.hasPerm("sysOrg:add")?t("template",{slot:"operator"},[e.hasPerm("sysOrg:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.$refs.addForm.add()}}},[e._v("新增机构")]):e._e()],1):e._e()],2),t("add-form",{ref:"addForm",on:{ok:e.handleOk}}),t("edit-form",{ref:"editForm",on:{ok:e.handleOk}})],1)],1)],1)},n=[],a=i("b85c"),o=(i("06f4"),i("fc25")),l=(i("d3b7"),i("25f0"),i("2af9")),u=i("25fa"),s=i("4f46"),d=i("a09c"),c={components:{XCard:l["k"],STable:l["h"],addForm:s["default"],editForm:d["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},columns:[{title:"机构名称",dataIndex:"name"},{title:"唯一编码",dataIndex:"code"},{title:"排序",dataIndex:"sort"},{title:"备注",dataIndex:"remark"}],loadData:function(t){return Object(u["b"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))},orgTree:[],selectedRowKeys:[],selectedRows:[],defaultExpandedKeys:[],typeDictTypeDropDown:[],expandedKeys:[],searchValue:"",autoExpandParent:!0,treeLoading:!0,simpleImage:o["a"].PRESENTED_IMAGE_SIMPLE,replaceFields:{key:"id"}}},created:function(){this.getOrgTree(),(this.hasPerm("sysOrg:edit")||this.hasPerm("sysOrg:delete"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{getOrgTree:function(){var e=this;Object(u["c"])(Object.assign(this.queryParam)).then((function(t){if(e.treeLoading=!1,0===t.code){e.orgTree=t.data,e.queryParam.parentid=e.orgTree[0].id;var i,r=Object(a["a"])(t.data);try{for(r.s();!(i=r.n()).done;){var n=i.value;0==n.parentid&&e.defaultExpandedKeys.push(n.id)}}catch(o){r.e(o)}finally{r.f()}e.$refs.table.refresh()}}))},sysOrgDelete:function(e){var t=this;Object(u["e"])(e).then((function(e){0===e.code?(t.$message.success("删除成功"),t.getOrgTree(),t.$refs.table.refresh()):t.$myerror("删除失败:"+e.message)})).catch((function(e){t.$myerror("删除错误:"+e.message)}))},handleClick:function(e){this.queryParam={pid:e.toString()},this.$refs.table.refresh(!0)},toggleAdvanced:function(){this.advanced=!this.advanced},handleOk:function(){this.getOrgTree(),this.$refs.table.refresh()},onSelectChange:function(e,t){this.selectedRowKeys=e,this.selectedRows=t}}},p=c,f=(i("24ab"),i("2877")),v=Object(f["a"])(p,r,n,!1,null,null,null);t["default"]=v.exports},"3deb":function(e,t,i){},"3e23":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[e.hasPerm("sysNotice:received")?t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:48}},[t("a-col",{attrs:{md:8,sm:24}},[e.hasPerm("sysNotice:received")?t("a-form-item",{attrs:{label:"关键词"}},[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入标题、内容"},model:{value:e.queryParam.searchValue,callback:function(t){e.$set(e.queryParam,"searchValue",t)},expression:"queryParam.searchValue"}})],1):e._e()],1),t("a-col",{attrs:{md:8,sm:24}},[e.hasPerm("sysNotice:received")?t("a-form-item",{attrs:{label:"类型"}},[t("a-select",{attrs:{placeholder:"请选择类型","allow-clear":""},model:{value:e.queryParam.type,callback:function(t){e.$set(e.queryParam,"type",t)},expression:"queryParam.type"}},e._l(e.typeDictTypeDropDown,(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.value))])})),1)],1):e._e()],1),t("a-col",{attrs:{md:e.advanced?24:8,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons"},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]):e._e(),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id},rowSelection:{selectedRowKeys:e.selectedRowKeys,onChange:e.onSelectChange}},scopedSlots:e._u([{key:"status",fn:function(i){return t("span",{},[e._v(" "+e._s(e.statusFilter(i))+" ")])}},{key:"type",fn:function(i){return t("span",{},[e._v(" "+e._s(e.typeFilter(i))+" ")])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("sysNotice:received")?t("a",{on:{click:function(t){return e.$refs.detailForm.detail(r)}}},[e._v("查看")]):e._e()])}}])}),t("detail-form",{ref:"detailForm",on:{ok:e.handleOk}}),t("div",{ref:"editor"})],1)],1)},n=[],a=(i("4de4"),i("d3b7"),i("2af9")),o=i("f045"),l=i("126f"),u=i("cbd8"),s={components:{XCard:a["k"],STable:a["h"],detailForm:u["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},columns:[{title:"标题",dataIndex:"title"},{title:"类型",dataIndex:"type",scopedSlots:{customRender:"type"}},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))},selectedRowKeys:[],selectedRows:[],statusDictTypeDropDown:[],typeDictTypeDropDown:[]}},created:function(){this.sysDictTypeDropDown(),this.hasPerm("sysNotice:received")&&this.columns.push({title:"操作",width:"200px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{sysDictTypeDropDown:function(){var e=this;Object(l["d"])({code:"notice_status"}).then((function(t){e.statusDictTypeDropDown=t.data})),Object(l["d"])({code:"notice_type"}).then((function(t){e.typeDictTypeDropDown=t.data}))},statusFilter:function(e){var t=this.statusDictTypeDropDown.filter((function(t){return t.code==e}));if(t.length>0)return t[0].value},typeFilter:function(e){var t=this.typeDictTypeDropDown.filter((function(t){return t.code==e}));if(t.length>0)return t[0].value},handleOk:function(){this.$refs.table.refresh()},onSelectChange:function(e,t){this.selectedRowKeys=e,this.selectedRows=t}}},d=s,c=(i("1d1e"),i("2877")),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},"42b0":function(e,t,i){},"43e1":function(e,t,i){"use strict";i.d(t,"e",(function(){return n})),i.d(t,"a",(function(){return a})),i.d(t,"f",(function(){return o})),i.d(t,"b",(function(){return l})),i.d(t,"d",(function(){return u})),i.d(t,"c",(function(){return s})),i.d(t,"g",(function(){return d}));var r=i("b775");function n(e){return Object(r["b"])({url:"/business/vip/list",method:"post",data:e})}function a(e){return Object(r["b"])({url:"/business/vip/alllist",method:"post",data:e})}function o(e){return Object(r["b"])({url:"/business/vip/submit",method:"post",data:e})}function l(e){return Object(r["b"])({url:"/business/vip/auth/list",method:"post",data:e})}function u(e){return Object(r["b"])({url:"/business/vip/auth/submit",method:"post",data:e})}function s(e){return Object(r["b"])({url:"/business/vip/auth/status",method:"post",data:e})}function d(e){return Object(r["b"])({url:"/business/vip/authlist",method:"post",data:e})}},"45c7":function(e,t,i){},"45e0":function(e,t,i){},"48b4":function(e,t,i){"use strict";i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return a}));var r=i("b775");function n(e){return Object(r["b"])({url:"/business/wx/list",method:"post",data:e})}function a(e){return Object(r["b"])({url:"/business/wx/submit",method:"post",data:e})}},"49f5":function(e,t,i){},"4bf4":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入手机号"},model:{value:e.queryParam.phone,callback:function(t){e.$set(e.queryParam,"phone",t)},expression:"queryParam.phone"}})],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("order:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e(),e.hasPerm("order:status")&&2===r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),!e.hasPerm("order:status")||2!==r.status&&3!==r.status?e._e():t("a-popconfirm",{attrs:{placement:"topRight",title:"确认启用?"},on:{confirm:function(){return e.setstatus(r,1)}}},[t("a",[e._v("启用")])]),e.hasPerm("order:status")&&1==r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("order:status")&&1==r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认停用?"},on:{confirm:function(){return e.setstatus(r,2)}}},[t("a",[e._v("停用")])]):e._e()],1)}},{key:"status",fn:function(i,r){return t("span",{},[1===r.status?t("span",{staticStyle:{color:"#1dbb1d"}},[e._v(" "+e._s(e.GetClientDataItem("orderstatus",i)))]):3===r.status?t("span",{staticStyle:{color:"red"}},[e._v(" "+e._s(e.GetClientDataItem("orderstatus",i)))]):t("span",{staticStyle:{color:"#b3b3b3"}},[e._v(" "+e._s(e.GetClientDataItem("orderstatus",i)))])])}}])})],1)],1)},n=[],a=i("2af9"),o=i("b775");function l(e){return Object(o["b"])({url:"/reguser/list",method:"post",data:e})}var u=i("310b"),s={components:{XCard:a["k"],STable:a["h"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"添加配置",columns:[{title:"用户",dataIndex:"name"},{title:"手机号",dataIndex:"phone"},{title:"最近登录时间",dataIndex:"lastlogintime"},{title:"注册时间",dataIndex:"createtime"}],loadData:function(t){return l(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){this.hasPerm("order:edit")&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:u["b"],GetClientDataItem:u["a"],handleOk:function(){this.$refs.table.refresh()},setstatus:function(e,t){var i=this;SetStatus({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)}))}}},d=s,c=(i("0e73"),i("2877")),p=Object(c["a"])(d,r,n,!1,null,"da255892",null);t["default"]=p.exports},"4cab":function(e,t,i){"use strict";i.d(t,"e",(function(){return n})),i.d(t,"d",(function(){return a})),i.d(t,"a",(function(){return o})),i.d(t,"c",(function(){return l})),i.d(t,"b",(function(){return u}));var r=i("b775");function n(e){return Object(r["b"])({url:"/sysPos/page",method:"get",params:e})}function a(e){return Object(r["b"])({url:"/sysPos/list",method:"get",params:e})}function o(e){return Object(r["b"])({url:"/sysPos/add",method:"post",data:e})}function l(e){return Object(r["b"])({url:"/sysPos/edit",method:"post",data:e})}function u(e){return Object(r["b"])({url:"/sysPos/delete",method:"post",data:e})}},"4e4a":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"授权角色",width:800,visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-card",{attrs:{bordered:!1}},[t("div",[t("a-table",{attrs:{size:"middle","row-selection":{selectedRowKeys:e.selectedRowKeys,onChange:e.onSelectChange},columns:e.columns,dataSource:e.loadData,pagination:!1,loading:e.loading,rowKey:function(e){return e.id}}})],1)])],1)},n=[],a=(i("d3b7"),i("a240")),o=i("0901"),l=[{title:"角色名称",dataIndex:"name"},{title:"唯一编码",dataIndex:"code"}],u={name:"UserRoleIndex",data:function(){return{columns:l,loadData:[],selectedRowKeys:[],loading:!0,visible:!1,confirmLoading:!1,recordEntity:[]}},computed:{hasSelected:function(){return this.selectedRowKeys.length>0}},methods:{userRole:function(e){var t=this;this.recordEntity=e,this.visible=!0,this.sysUserOwnRole(),Object(a["a"])().then((function(e){t.loadData=e.data.rows}))},sysUserOwnRole:function(){var e=this;this.loading=!0,Object(o["p"])({id:this.recordEntity.id}).then((function(t){e.selectedRowKeys=t.data,e.loading=!1}))},onSelectChange:function(e){this.selectedRowKeys=e},handleSubmit:function(){var e=this;this.confirmLoading=!1,this.visible=!1,Object(o["k"])({id:this.recordEntity.id,grantRoleIdList:this.selectedRowKeys}).then((function(t){0===t.code?(e.$message.success("授权成功"),e.confirmLoading=!1,e.$emit("ok",e.recordEntity),e.handleCancel()):e.$myerror("授权失败:"+JSON.stringify(t.message))})).finally((function(t){e.confirmLoading=!1}))},handleCancel:function(){this.recordEntity=[],this.selectedRowKeys=[],this.visible=!1}}},s=u,d=i("2877"),c=Object(d["a"])(s,r,n,!1,null,null,null);t["default"]=c.exports},"4f46":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"新增机构",width:900,visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.formLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"机构名称",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["name",{rules:[{required:!0,message:"请输入机构名称!"}]}],expression:"['name', { rules: [{ required: true, message: '请输入机构名称!' }] }]"}],attrs:{placeholder:"请输入机构名称"}})],1),t("a-form-item",{attrs:{label:"唯一编码",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["code",{rules:[{required:!0,message:"请输入唯一编码!"}]}],expression:"['code', { rules: [{ required: true, message: '请输入唯一编码!' }] }]"}],attrs:{placeholder:"请输入唯一编码"}})],1),t("a-form-item",{attrs:{label:"上级机构",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-tree-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["pid",{rules:[{required:!0,message:"请选择上级机构!"}]}],expression:"['pid', { rules: [{ required: true, message: '请选择上级机构!' }] }]"}],staticStyle:{width:"100%"},attrs:{dropdownStyle:{maxHeight:"300px",overflow:"auto"},treeData:e.orgTree,placeholder:"请选择上级机构",treeDefaultExpandAll:""},scopedSlots:e._u([{key:"title",fn:function(i){var r=i.id;return t("span",{},[e._v(e._s(r)+" ")])}}])})],1),t("a-form-item",{attrs:{labelCol:e.labelCol,wrapperCol:e.wrapperCol,label:"排序"}},[t("a-input-number",{directives:[{name:"decorator",rawName:"v-decorator",value:["sort",{initialValue:100}],expression:"['sort', { initialValue: 100 }]"}],staticStyle:{width:"100%"},attrs:{placeholder:"请输入排序",min:1,max:1e3}})],1),t("a-form-item",{attrs:{label:"备注",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["remark"],expression:"['remark']"}],attrs:{rows:4,placeholder:"请输入备注"}})],1)],1)],1)],1)},n=[],a=(i("d3b7"),i("25fa")),o=i("126f"),l={data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},wrapperCol:{xs:{span:24},sm:{span:15}},typeEnumDataDropDown:[],orgTree:[],visible:!1,confirmLoading:!1,formLoading:!0,form:this.$form.createForm(this)}},created:function(){this.sysDictTypeDropDown()},methods:{add:function(){this.visible=!0,this.getOrgTree()},sysDictTypeDropDown:function(e){var t=this;Object(o["d"])({code:"org_type"}).then((function(e){t.typeEnumDataDropDown=e.data}))},getOrgTree:function(){var e=this;Object(a["c"])().then((function(t){e.formLoading=!1,0===t.code?e.orgTree=[{id:"-1",parentId:"0",title:"顶级",value:"0",pid:"0",children:t.data}]:e.orgTree=[]}))},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:Object(a["d"])(i).then((function(t){0===t.code?(e.$message.success("新增成功"),e.visible=!1,e.confirmLoading=!1,e.$emit("ok",i),e.form.resetFields()):e.$myerror("新增失败:"+t.message)})).finally((function(t){e.confirmLoading=!1}))}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},u=l,s=i("2877"),d=Object(s["a"])(u,r,n,!1,null,null,null);t["default"]=d.exports},"51f7":function(e,t,i){"use strict";i("f297")},"537c":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入标题"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.name,src:r.imageurl,srcSet:r.imageurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.name,img:r.imageurl})}}})],1)}},{key:"moreinfo",fn:function(i){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1)}},{key:"status",fn:function(i,r){return t("span",{},[1===r.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.getenumval("commonstatus",i)))]):t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("commonstatus",i)))])],1)}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("appnavbar:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e(),e.hasPerm("appnavbar:status")&&1===r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("appnavbar:status")&&1===r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认启用?"},on:{confirm:function(){return e.setstatus(r,0)}}},[t("a",[e._v("启用")])]):e._e(),e.hasPerm("appnavbar:status")&&0==r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("appnavbar:status")&&0==r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认禁用?"},on:{confirm:function(){return e.setstatus(r,1)}}},[t("a",[e._v("禁用")])]):e._e()],1)}}])},[e.hasPerm("appnavbar:add")?t("template",{slot:"operator"},[e.hasPerm("appnavbar:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.AddorEdit({},0)}}},[e._v("新增导航")]):e._e()],1):e._e()],2),t("editForm",{ref:"editForm",attrs:{title:e.title},on:{ok:e.handleOk}})],1),t("previewimg",{ref:"PreImg"})],1)},n=[],a=i("2af9"),o=i("83bc"),l=i("310b"),u=i("081d"),s=i("d714"),d=i("ca00"),c={components:{XCard:a["k"],STable:a["h"],editForm:s["default"],previewimg:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"",columns:[{title:"排序",dataIndex:"sort"},{title:"封面图",dataIndex:"image",scopedSlots:{customRender:"headimg"}},{title:"标题",dataIndex:"name"},{title:"链接",dataIndex:"link",scopedSlots:{customRender:"moreinfo"}},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){(this.hasPerm("appnavbar:status")||this.hasPerm("appnavbar:edit"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:l["b"],textcontent:d["c"],copyTextByContentType:d["a"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},AddorEdit:function(e,t){this.title=1===t?"编辑导航":"新增导航",this.$refs.editForm.init(e)},setstatus:function(e,t){var i=this;Object(o["b"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)}))}}},p=c,f=(i("9161"),i("2877")),v=Object(f["a"])(p,r,n,!1,null,"0fbfdccf",null);t["default"]=v.exports},5520:function(e,t,i){"use strict";i("87c1")},5621:function(e,t,i){"use strict";i("5b3f")},"58cb":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"编辑通知公告",width:1e3,footer:null,visible:e.visible},on:{cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.formLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}]},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["id"],expression:"['id']"}]})],1),t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{rules:[{required:!0,message:"请输入标题!"}]}],expression:"['title', {rules: [{required: true, message: '请输入标题!'}]}]"}],attrs:{placeholder:"请输入标题"}})],1),t("a-form-item",{attrs:{label:"类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-radio-group",{directives:[{name:"decorator",rawName:"v-decorator",value:["type",{rules:[{required:!0,message:"请选择类型!"}]}],expression:"['type',{rules: [{ required: true, message: '请选择类型!' }]}]"}]},e._l(e.typeDictTypeDropDown,(function(i,r){return t("a-radio-button",{key:r,attrs:{value:i.code}},[e._v(" "+e._s(i.value))])})),1)],1),t("a-form-item",{attrs:{labelCol:e.labelCol,wrapperCol:e.wrapperCol,label:"内容"}},[t("antd-editor",{attrs:{uploadConfig:e.editorUploadConfig},on:{onchange:e.changeEditor,oninit:e.getEditor},model:{value:e.editorContent,callback:function(t){e.editorContent=t},expression:"editorContent"}})],1),t("a-form-item",{attrs:{labelCol:e.labelCol,wrapperCol:e.wrapperCol,label:"通知到的人"}},[t("a-transfer",{attrs:{"data-source":e.mockData,"show-search":"","list-style":{width:"40%",height:"300px"},"filter-option":e.filterOption,"target-keys":e.targetKeys,render:function(e){return e.title}},on:{change:e.handleChange}})],1),t("a-divider"),t("a-form-item",{staticClass:"subForm-item"},[t("a-button",{staticClass:"subButton",attrs:{type:"primary"},on:{click:function(t){return e.handleSubmit(1)}}},[e._v("发布")]),t("a-button",{staticClass:"subButton",attrs:{type:"danger"},on:{click:function(t){return e.handleSubmit(0)}}},[e._v("存为草稿")]),t("a-button",{staticClass:"subButton",on:{click:e.handleCancel}},[e._v("取消")])],1)],1)],1)],1)},n=[],a=(i("d3b7"),i("25f0"),i("159b"),i("3ca3"),i("ddb0"),i("2b3d"),i("9861"),i("b0c0"),i("a4d3"),i("e01a"),i("f0c4")),o=i("126f"),l=i("6597"),u=i("2af9"),s=i("0901"),d={name:"AddForm",components:{AntdEditor:u["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:3}},wrapperCol:{xs:{span:24},sm:{span:18}},visible:!1,form:this.$form.createForm(this),typeDictTypeDropDown:[],editorContent:"",editorContentText:"",editorUploadConfig:{method:"http",uploadImgServer:"/sysFileInfo/upload",callback:this.editorUploadImage},mockData:[],targetKeys:[],noticeDetail:[],formLoading:!0}},methods:{edit:function(e){var t=this;this.visible=!0,this.sysNoticeDetail(e.id),this.sysDictTypeDropDown(),setTimeout((function(){t.form.setFieldsValue({id:e.id,title:e.title,type:e.type.toString()}),t.editor.txt.html(e.content),t.editorContent=e.content}),100)},sysDictTypeDropDown:function(){var e=this;Object(o["d"])({code:"notice_type"}).then((function(t){e.typeDictTypeDropDown=t.data}))},editorUploadImage:function(e,t){var i=this,r=new FormData;e.forEach((function(e){r.append("file",e)})),Object(l["e"])(r).then((function(e){0===e.code?Object(l["d"])({id:e.data}).then((function(e){t(window.URL.createObjectURL(new Blob([e])))})).catch((function(e){i.$myerror("上传预览错误:"+e.message)})):i.$myerror("编辑器上传图片失败:"+e.message)}))},getEditor:function(e){this.editor=e},changeEditor:function(e,t){this.editorContent=e,this.editorContentText=t.text()},sysNoticeDetail:function(e){var t=this;Object(a["d"])({id:e}).then((function(e){t.noticeDetail=e.data,t.getMock(t.noticeDetail)}))},getMock:function(e){var t=this,i=[],r=[];Object(s["s"])().then((function(n){t.formLoading=!1;for(var a=0;a-1},handleChange:function(e,t,i){this.targetKeys=e},handleSubmit:function(e){var t=this,i=this.form.validateFields;""!=this.editorContent?this.targetKeys.length<1?this.$myerror("请选择通知到的人"):i((function(i,r){i||(t.formLoading=!0,r.content=t.editorContent,r.status=e,r.noticeUserIdList=t.targetKeys,Object(a["e"])(r).then((function(e){0===e.code?(t.$message.success("编辑成功"),t.visible=!1,t.$emit("ok",r),t.handleCancel()):t.$myerror("编辑失败:"+e.message)})).finally((function(e){t.formLoading=!1})))})):this.$myerror("请填写内容")},handleCancel:function(){this.editor.txt.clear(),this.targetKeys=[],this.editorContent="",this.form.resetFields(),this.visible=!1,this.formLoading=!0}}},c=d,p=(i("951b"),i("2877")),f=Object(p["a"])(c,r,n,!1,null,null,null);t["default"]=f.exports},"59f6":function(e,t,i){},"5b3f":function(e,t,i){},"5caa":function(e,t,i){},"5db6":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading,destroyOnClose:!0},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{validateFirst:!0,rules:[{required:!0,message:"请输入标题"},{max:100,message:"标题最多100个字"}]}],expression:"[\n 'title',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入标题' },\n { max: 100, message: '标题最多100个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入标题"}})],1),t("a-form-item",{attrs:{label:"是否置顶",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-switch",{directives:[{name:"decorator",rawName:"v-decorator",value:["istop",{valuePropName:"checked"}],expression:"['istop', { valuePropName: 'checked' }]"}]})],1),t("a-form-item",{attrs:{label:"封面",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-upload-dragger",{attrs:{customRequest:e.handleUpload,"show-upload-list":!1}},[e.imageUrl?t("img",{staticStyle:{"max-height":"200px","max-width":"400px"},attrs:{src:e.imageUrl,alt:"封面图"}}):t("div",[t("p",{staticClass:"ant-upload-drag-icon"},[t("a-icon",{attrs:{type:e.loading?"loading":"inbox"}})],1),t("p",{staticClass:"ant-upload-text"},[e._v(" 上传封面 ")])])])],1),t("a-form-item",{attrs:{label:"类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["ptype",{rules:[{required:!0,message:"请选择类型"}],initialValue:1}],expression:"['ptype', { rules: [{ required: true, message: '请选择类型' }], initialValue: 1 }]"}],attrs:{placeholder:"请选择类型"},on:{change:e.typeChange}},e._l(e.GetClientDataList("conenttypeenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1),1==e.type?t("a-form-item",{attrs:{label:"小程序Appid",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appid",{rules:[{required:!0,message:"请输入小程序appid"}]}],expression:"['appid', { rules: [{ required: true, message: '请输入小程序appid' }] }]"}],attrs:{placeholder:"请输入小程序appid"}})],1):e._e(),1==e.type?t("a-form-item",{attrs:{label:"小程序页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],attrs:{placeholder:"请输入小程序页面地址"}})],1):e._e(),2==e.type?t("a-form-item",{attrs:{label:"链接",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入链接地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入链接地址' }] }]"}],attrs:{rows:2,placeholder:"请输入链接地址"}})],1):e._e(),3==e.type?t("a-form-item",{attrs:{label:"页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入小程序内的页面地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入小程序内的页面地址' }] }]"}],attrs:{placeholder:"请输入小程序内的页面地址"}})],1):e._e(),4==e.type?t("a-form-item",{attrs:{label:"内容",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],staticStyle:{display:"none"},attrs:{rows:4,placeholder:"请输入内容"}}),t("WangEditor",{ref:"contentRef",attrs:{value:e.html,uploadConfig:e.uploadConfig}})],1):e._e()],1)],1)],1)},n=[],a=(i("d3b7"),i("310b")),o=i("cd3f3"),l=i("00ea"),u=i("e338"),s={props:{title:{type:String,required:!0}},components:{WangEditor:u["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},loading:!1,imageUrl:"",headimg:"",html:"",uploadConfig:{method:"http",url:"common/uploadimg"},type:1,wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this)}},methods:{GetClientDataList:a["b"],init:function(e){var t=this;this.visible=!0,this.currentInfo=e,this.imageUrl="",this.headimg="",this.html="",e&&e.id&&(this.type=e.ptype,this.headimg=e.headimg,this.imageUrl=e.imageurl,setTimeout((function(){t.form.setFieldsValue({title:e.title,istop:e.istop,ptype:e.ptype,content:e.content}),4===e.ptype?t.html=e.content:1===e.ptype&&t.form.setFieldsValue({appid:e.appid})}),100))},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:(i["id"]=e.currentInfo.id?e.currentInfo.id:null,i["headimg"]=e.headimg,i["content"]=4===i["ptype"]?e.$refs.contentRef.gethtml():i["content"],Object(o["h"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1})))}))},typeChange:function(e){this.type=e},handleUpload:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(l["a"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path):t.$myerror(e.message),t.uploading=!1}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},d=s,c=i("2877"),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},"5e4e":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"修改头像",visible:e.visible,maskClosable:!1,confirmLoading:e.confirmLoading,width:800,footer:null},on:{cancel:e.cancelHandel}},[t("a-row",[t("a-col",{style:{height:"350px"},attrs:{xs:24,md:12}},[t("vue-cropper",{ref:"cropper",attrs:{img:e.options.img,info:!0,autoCrop:e.options.autoCrop,autoCropWidth:e.options.autoCropWidth,autoCropHeight:e.options.autoCropHeight,fixedBox:e.options.fixedBox},on:{realTime:e.realTime}})],1),t("a-col",{style:{height:"350px"},attrs:{xs:24,md:12}},[t("div",{staticClass:"avatar-upload-preview"},[t("img",{style:e.previews.img,attrs:{src:e.previews.url}})])])],1),t("br"),t("a-row",[t("a-col",{attrs:{lg:2,md:2}},[t("a-upload",{attrs:{name:"file",beforeUpload:e.beforeUpload,showUploadList:!1}},[t("a-button",{attrs:{icon:"upload"}},[e._v("选择图片")])],1)],1),t("a-col",{attrs:{lg:{span:1,offset:2},md:2}},[t("a-button",{attrs:{icon:"plus"},on:{click:function(t){return e.changeScale(1)}}})],1),t("a-col",{attrs:{lg:{span:1,offset:1},md:2}},[t("a-button",{attrs:{icon:"minus"},on:{click:function(t){return e.changeScale(-1)}}})],1),t("a-col",{attrs:{lg:{span:1,offset:1},md:2}},[t("a-button",{attrs:{icon:"undo"},on:{click:e.rotateLeft}})],1),t("a-col",{attrs:{lg:{span:1,offset:1},md:2}},[t("a-button",{attrs:{icon:"redo"},on:{click:e.rotateRight}})],1),t("a-col",{attrs:{lg:{span:2,offset:6},md:2}},[t("a-button",{attrs:{type:"primary",loading:e.uploading},on:{click:function(t){return e.finish("blob")}}},[e._v("保存")])],1)],1)],1)},n=[],a=(i("b0c0"),i("6597")),o=i("0901"),l={data:function(){return{visible:!1,id:null,confirmLoading:!1,fileList:[],uploading:!1,options:{img:"",autoCrop:!0,autoCropWidth:200,autoCropHeight:200,fixedBox:!0},previews:{}}},methods:{edit:function(e){this.visible=!0,this.id=e},close:function(){this.id=null,this.visible=!1},cancelHandel:function(){this.close()},changeScale:function(e){e=e||1,this.$refs.cropper.changeScale(e)},rotateLeft:function(){this.$refs.cropper.rotateLeft()},rotateRight:function(){this.$refs.cropper.rotateRight()},beforeUpload:function(e){var t=this;this.fileList=e;var i=new FileReader;return i.readAsDataURL(e),i.onload=function(){t.options.img=i.result},!1},finish:function(e){var t=this;"blob"===e?(this.uploading=!0,this.$refs.cropper.getCropBlob((function(e){var i=new window.File([e],t.fileList.name,{type:t.fileList.type}),r=new FormData;r.append("file",i),Object(a["f"])(r).then((function(e){0===e.code?(t.updateAvatar(e.data),t.$emit("ok",e.data)):(t.uploading=!1,t.$myerror(e.message))}))}))):this.$refs.cropper.getCropData((function(e){}))},updateAvatar:function(e){var t=this,i={id:this.id,avatar:e};Object(o["u"])(i).then((function(e){t.uploading=!1,0===e.code?(t.visible=!1,t.$message.success("头像上传修改成功")):t.$myerror(e.message)}))},realTime:function(e){this.previews=e}}},u=l,s=(i("2b24"),i("2877")),d=Object(s["a"])(u,r,n,!1,null,"51fe0dd0",null);t["default"]=d.exports},"60b5":function(e,t,i){"use strict";i("8ca5")},"67ed":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入名称"},model:{value:e.queryParam.title,callback:function(t){e.$set(e.queryParam,"title",t)},expression:"queryParam.title"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择状态","allow-clear":""},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("shopstatus"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.title,src:r.imageurl,srcSet:r.imageurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.title,img:r.imageurl})}}})],1)}},{key:"page",fn:function(i,r){return t("span",{},[4===r.status||5===r.status?t("span",[e._v("不支持")]):t("a",{on:{click:function(t){return e.copyTextByContentType(i,9)}}},[e._v("复制")])])}},{key:"status",fn:function(i,r){return t("span",{},[1===r.status||5===r.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))]):2===r.status||6===r.status?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))])],1)}},{key:"moreinfo",fn:function(i){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1)}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("demand:view")?t("a",{on:{click:function(t){return e.detail(r)}}},[e._v("详情")]):e._e()])}}])}),t("detail",{ref:"detail",on:{ok:e.handleOk}})],1)],1)},n=[],a=i("2af9"),o=i("a24f"),l=i("310b"),u=i("cbde"),s=i("ca00"),d={components:{XCard:a["k"],STable:a["h"],detail:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},rejectvisible:!1,rejectconfirmloading:!1,form:this.$form.createForm(this),columns:[{title:"需求名称",dataIndex:"title",scopedSlots:{customRender:"moreinfo"}},{title:"浏览数",dataIndex:"browsecnt"},{title:"点赞数",dataIndex:"likecnt"},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{dataIndex:"createtime",title:"创建时间"},{title:"内链",dataIndex:"id",scopedSlots:{customRender:"page"}}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){this.hasPerm("demand:view")&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}}),3!==this.$store.state.admintype&&this.columns.unshift({title:"会员",width:"150px",dataIndex:"businessname"})},methods:{GetClientDataList:l["b"],copyTextByContentType:s["a"],textcontent:s["c"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},detail:function(e){this.$refs.detail.init(e)},setstatus:function(e,t){var i=this;5!==t?Object(o["b"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)})):this.rejectvisible=!0},rejectok:function(e){var t=this,i=this;this.form.validateFields((function(e,r){e||(t.rejectconfirmloading=!0,Object(o["b"])({id:i.record.id,statusremark:r["statusremark"]}).then((function(e){0===e.code?(t.$message.success("驳回成功"),t.handleOk()):t.$myerror(e.message),t.rejectcancel()})).catch((function(e){t.$myerror(e.message),t.rejectcancel()})))}))},rejectcancel:function(){this.rejectvisible=!1,this.rejectconfirmloading=!1}}},c=d,p=(i("ffb5"),i("2877")),f=Object(p["a"])(c,r,n,!1,null,"4a2f543e",null);t["default"]=f.exports},"68b0":function(e,t,i){"use strict";i("d7ab")},"698e":function(e,t,i){"use strict";i("a7d7")},"6e0d":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入名称"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("industry:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e(),e.hasPerm("industry:delete")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("industry:delete")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.Delete(r)}}},[t("a",[e._v("删除")])]):e._e()],1)}}])},[e.hasPerm("industry:add")?t("template",{slot:"operator"},[e.hasPerm("industry:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.AddorEdit({},0)}}},[e._v("新增行业")]):e._e()],1):e._e()],2),t("editForm",{ref:"editForm",attrs:{title:e.title},on:{ok:e.handleOk}})],1)],1)},n=[],a=i("2af9"),o=i("a01d"),l=i("310b"),u=i("a810"),s={components:{XCard:a["k"],STable:a["h"],editForm:u["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"",columns:[{title:"名称",dataIndex:"name"},{title:"备注",dataIndex:"remark"}],loadData:function(t){return Object(o["c"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){(this.hasPerm("industry:status")||this.hasPerm("industry:edit"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:l["b"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},AddorEdit:function(e,t){this.title=1===t?"编辑行业":"新增行业",this.$refs.editForm.init(e)},Delete:function(e){var t=this;Object(o["b"])({id:e.id}).then((function(e){0===e.code?(t.$message.success("删除成功"),t.$refs.table.refresh()):t.$myerror(e.message)})).catch((function(e){t.$myerror(e.message)}))}}},d=s,c=(i("2445"),i("2877")),p=Object(c["a"])(d,r,n,!1,null,"35a6c60d",null);t["default"]=p.exports},"6fc7":function(e,t,i){},"70eb":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[e.hasPerm("sysRole:page")?t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:48}},[t("a-col",{attrs:{md:8,sm:24}},[t("a-form-item",{attrs:{label:"角色名"}},[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入角色名"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:8,sm:24}},[t("a-form-item",{attrs:{label:"唯一编码"}},[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入唯一编码"},model:{value:e.queryParam.code,callback:function(t){e.$set(e.queryParam,"code",t)},expression:"queryParam.code"}})],1)],1),t("a-col",{attrs:{md:8,sm:24}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)],1)],1)],1)]):e._e(),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.code},rowSelection:{selectedRowKeys:e.selectedRowKeys,onChange:e.onSelectChange}},scopedSlots:e._u([{key:"roleType",fn:function(i){return t("span",{},[e._v(" "+e._s(e.typeFilter(i))+" ")])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("sysRole:edit")?t("a",{on:{click:function(t){return e.$refs.editForm.edit(r)}}},[e._v("编辑")]):e._e(),e.hasPerm("sysRole:edit")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysRole:grantMenu")||e.hasPerm("sysRole:grantData")||e.hasPerm("sysRole:delete")?t("a-dropdown",[t("a",{staticClass:"ant-dropdown-link"},[e._v(" 更多 "),t("a-icon",{attrs:{type:"down"}})],1),t("a-menu",{attrs:{slot:"overlay"},slot:"overlay"},[e.hasPerm("sysRole:grantMenu")?t("a-menu-item",[t("a",{on:{click:function(t){return e.$refs.roleMenuForm.roleMenu(r)}}},[e._v("授权菜单")])]):e._e(),e.hasPerm("sysRole:grantData")?t("a-menu-item",[t("a",{on:{click:function(t){return e.$refs.roleOrgForm.roleOrg(r)}}},[e._v("授权数据")])]):e._e(),e.hasPerm("sysRole:delete")?t("a-menu-item",[t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.sysRoleDelete(r)}}},[t("a",[e._v("删除")])])],1):e._e()],1)],1):e._e()],1)}}])},[e.hasPerm("sysRole:add")?t("template",{slot:"operator"},[e.hasPerm("sysRole:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.$refs.addForm.add()}}},[e._v("新增角色 ")]):e._e()],1):e._e()],2),t("add-form",{ref:"addForm",on:{ok:e.handleOk}}),t("edit-form",{ref:"editForm",on:{ok:e.handleOk}}),t("role-menu-form",{ref:"roleMenuForm",on:{ok:e.handleOk}}),t("role-org-form",{ref:"roleOrgForm",on:{ok:e.handleOk}})],1)],1)},n=[],a=(i("4de4"),i("d3b7"),i("2af9")),o=i("a240"),l=i("a49c"),u=i("9888"),s=i("985f"),d=i("e35e"),c=i("126f"),p={components:{XCard:a["k"],STable:a["h"],addForm:l["default"],editForm:u["default"],roleMenuForm:s["default"],roleOrgForm:d["default"]},data:function(){var e=this;return{queryParam:{},columns:[{title:"角色名",dataIndex:"name"},{title:"角色类型",dataIndex:"roletype",scopedSlots:{customRender:"roleType"}},{title:"唯一编码",dataIndex:"code"},{title:"排序",dataIndex:"sort"}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))},selectedRowKeys:[],selectedRows:[],typeDictTypeDropDown:[]}},created:function(){this.sysDictTypeDropDown(),(this.hasPerm("sysRole:edit")||this.hasPerm("sysRole:grantMenu")||this.hasPerm("sysRole:grantData")||this.hasPerm("sysRole:delete"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{typeFilter:function(e){var t=this.typeDictTypeDropDown.filter((function(t){return t.code==e}));if(t.length>0)return t[0].value},sysDictTypeDropDown:function(e){var t=this;Object(c["d"])({code:"role_type"}).then((function(e){t.typeDictTypeDropDown=e.data}))},sysRoleDelete:function(e){var t=this;Object(o["c"])(e).then((function(e){0===e.code?(t.$message.success("删除成功"),t.$refs.table.refresh()):t.$myerror("删除失败:"+e.message)})).catch((function(e){t.$myerror("删除错误:"+e.message)}))},handleOk:function(){this.$refs.table.refresh()},onSelectChange:function(e,t){this.selectedRowKeys=e,this.selectedRows=t}}},f=p,v=(i("1e11"),i("2877")),h=Object(v["a"])(f,r,n,!1,null,null,null);t["default"]=h.exports},7203:function(e,t,i){"use strict";i.r(t);i("a4d3"),i("e01a");var r=function(){var e=this,t=e._self._c;return t("div",[t("a-list",{attrs:{itemLayout:"horizontal",dataSource:e.data},scopedSlots:e._u([{key:"renderItem",fn:function(i,r){return t("a-list-item",{key:r},[t("a-list-item-meta",[t("a",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(i.title))]),t("span",{attrs:{slot:"description"},slot:"description"},[t("span",{staticClass:"security-list-description"},[e._v(e._s(i.description))]),i.value?t("span",[e._v(" : ")]):e._e(),t("span",{staticClass:"security-list-value"},[e._v(e._s(i.value))])])]),i.actions?[t("a",{attrs:{slot:"actions"},on:{click:i.actions.callback},slot:"actions"},[e._v(e._s(i.actions.title))])]:e._e()],2)}}])}),t("upd-pwd",{ref:"updPwd"})],1)},n=[],a=i("5530"),o=i("5880"),l=i("a784"),u={components:{UpdPwd:l["default"]},data:function(){return{data:[]}},created:function(){var e=this,t={title:"账户密码",description:"当前密码强度",value:"强",actions:{title:"修改",callback:function(){e.$refs.updPwd.open(e.userInfo.id)}}};this.data.push(t)},computed:Object(a["a"])({},Object(o["mapGetters"])(["userInfo"])),methods:{}},s=u,d=i("2877"),c=Object(d["a"])(s,r,n,!1,null,"5e26ae18",null);t["default"]=c.exports},7314:function(e,t,i){"use strict";i("6fc7")},"763e":function(e,t,i){},"7d27":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"授权VIP",width:800,visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-card",{attrs:{bordered:!1}},[t("a-alert",{attrs:{message:"每次授权VIP均为自动根据周期进行续期",banner:""}}),t("div",[t("a-table",{attrs:{size:"middle","row-selection":{selectedRowKeys:e.selectedRowKeys,onChange:e.onSelectChange},columns:e.columns,dataSource:e.loadData,pagination:!1,loading:e.loading,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"expirevalue",fn:function(i,r){return t("span",{},[t("span",[e._v(e._s(i)+e._s(e.GetClientDataItem("vipexpiretype",r.etype)))])])}}])})],1)],1)],1)},n=[],a=(i("4de4"),i("d3b7"),i("43e1")),o=i("0901"),l=i("310b"),u=[{title:"VIP名称",dataIndex:"name"},{title:"价格(元)",dataIndex:"price"},{title:"周期",dataIndex:"expirevalue",scopedSlots:{customRender:"expirevalue"}},{title:"备注",dataIndex:"remark"}],s={name:"UserRoleIndex",data:function(){return{columns:u,loadData:[],selectedRowKeys:[],loading:!0,visible:!1,confirmLoading:!1,recordEntity:[]}},computed:{hasSelected:function(){return this.selectedRowKeys.length>0}},methods:{GetClientDataItem:l["a"],userVIP:function(e){var t=this;this.recordEntity=e,this.visible=!0,this.sysUserOwnRole(),Object(a["a"])().then((function(e){t.loadData=e.data}))},sysUserOwnRole:function(){var e=this;this.loading=!0,Object(o["q"])({id:this.recordEntity.id}).then((function(t){e.selectedRowKeys=t.data,e.loading=!1}))},onSelectChange:function(e){this.selectedRowKeys=e},handleSubmit:function(){var e=this;this.confirmLoading=!1,this.selectedRowKeys=this.selectedRowKeys.filter((function(e){return"00000000-0000-0000-0000-000000000001"!==e})),this.selectedRowKeys.length>1?this.$message.error("只能选择一个VIP"):Object(o["l"])({id:this.recordEntity.id,ids:this.selectedRowKeys}).then((function(t){0===t.code?(e.$message.success("授权成功"),e.confirmLoading=!1,e.$emit("ok",e.recordEntity),e.handleCancel()):e.$myerror("授权失败:"+JSON.stringify(t.message))})).finally((function(t){e.confirmLoading=!1}))},handleCancel:function(){this.recordEntity=[],this.selectedRowKeys=[],this.visible=!1}}},d=s,c=i("2877"),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},"7f7b":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入小程序名称"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入小程序appid"},model:{value:e.queryParam.appid,callback:function(t){e.$set(e.queryParam,"appid",t)},expression:"queryParam.appid"}})],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.name,src:r.picurl,srcSet:r.picurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.name,img:r.picurl})}}})],1)}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("mini:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e()])}}])},[e.hasPerm("mini:add")?t("template",{slot:"operator"},[e.hasPerm("mini:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.AddorEdit({},0)}}},[e._v("新增")]):e._e()],1):e._e()],2),t("editform",{ref:"editform",attrs:{title:e.title},on:{ok:e.handleOk}}),t("previewimg",{ref:"PreImg"})],1)],1)},n=[],a=i("2af9"),o=i("48b4"),l=i("310b"),u=i("2bf8"),s=i("081d"),d={components:{XCard:a["k"],STable:a["h"],editform:u["default"],previewimg:s["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"添加小程序",columns:[{title:"小程序",dataIndex:"name"},{title:"appid",dataIndex:"appid"},{title:"密钥",dataIndex:"appsecret"},{title:"标题",dataIndex:"title"},{title:"主题色",dataIndex:"themecolor"},{title:"说明",dataIndex:"desc"},{title:"添加时间",dataIndex:"createdtime"}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){this.hasPerm("mini:edit")&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:l["b"],GetClientDataItem:l["a"],handleOk:function(){this.$refs.table.refresh()},AddorEdit:function(e,t){this.title=1===t?"编辑小程序":"添加小程序",this.$refs.editform.init(e)}}},c=d,p=(i("51f7"),i("2877")),f=Object(p["a"])(c,r,n,!1,null,"30045c3f",null);t["default"]=f.exports},"7f86":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"新增职位",width:"60%",visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"职位名称",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["name",{rules:[{required:!0,message:"请输入职位名称!"}]}],expression:"['name', { rules: [{ required: true, message: '请输入职位名称!' }] }]"}],attrs:{placeholder:"请输入职位名称"}})],1),t("a-form-item",{attrs:{label:"唯一编码",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["code",{rules:[{required:!0,message:"请输入唯一编码!"}]}],expression:"['code', { rules: [{ required: true, message: '请输入唯一编码!' }] }]"}],attrs:{placeholder:"请输入唯一编码"}})],1),t("a-form-item",{attrs:{labelCol:e.labelCol,wrapperCol:e.wrapperCol,label:"排序"}},[t("a-input-number",{directives:[{name:"decorator",rawName:"v-decorator",value:["sort",{initialValue:100}],expression:"['sort', { initialValue: 100 }]"}],staticStyle:{width:"100%"},attrs:{placeholder:"请输入排序",min:1,max:1e3}})],1),t("a-form-item",{attrs:{label:"备注",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["remark"],expression:"['remark']"}],attrs:{rows:4,placeholder:"请输入备注"}})],1)],1)],1)],1)},n=[],a=(i("d3b7"),i("4cab")),o={data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},wrapperCol:{xs:{span:24},sm:{span:15}},visible:!1,confirmLoading:!1,form:this.$form.createForm(this)}},methods:{add:function(e){this.visible=!0},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:Object(a["a"])(i).then((function(t){0===t.code?(e.$message.success("新增成功"),e.visible=!1,e.confirmLoading=!1,e.$emit("ok",i),e.form.resetFields()):e.$myerror("新增失败:"+t.message)})).finally((function(t){e.confirmLoading=!1}))}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},l=o,u=i("2877"),s=Object(u["a"])(l,r,n,!1,null,null,null);t["default"]=s.exports},"80f5":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"详情",width:"60%",visible:e.visible,confirmLoading:e.confirmLoading,footer:null},on:{cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("div",[t("a-descriptions",{attrs:{bordered:"",column:2}},[t("a-descriptions-item",{attrs:{label:"状态",span:2}},[1===e.currentInfo.status||5===e.currentInfo.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.GetClientDataItem("shopstatus",e.currentInfo.status)))]):2===e.currentInfo.status||6===e.currentInfo.status?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.GetClientDataItem("shopstatus",e.currentInfo.status)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.GetClientDataItem("shopstatus",e.currentInfo.status)))]),!e.hasPerm("supply:status")||1!==e.currentInfo.status&&3!==e.currentInfo.status?e._e():t("a-popconfirm",{attrs:{placement:"topRight",title:"确定上架?"},on:{confirm:function(){return e.setstatus(2)}}},[t("a",[e._v("上架")])]),e.hasPerm("supply:status")&&2===e.currentInfo.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确定下架?"},on:{confirm:function(){return e.setstatus(1)}}},[t("a",[e._v("下架")])]):e._e(),e.hasPerm("supply:status")&&4===e.currentInfo.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确定通过?"},on:{confirm:function(){return e.setstatus(6)}}},[t("a",[e._v("通过")])]):e._e(),e.hasPerm("supply:status")&&4===e.currentInfo.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("supply:status")&&4===e.currentInfo.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确定驳回?"},on:{confirm:function(){return e.setstatus(5)}}},[t("a",[e._v("驳回")])]):e._e()],1),t("a-descriptions-item",{attrs:{label:"产品"}},[t("span",[e._v(e._s(e.currentInfo.title))])]),t("a-descriptions-item",{attrs:{label:"行业"}},[t("span",[e._v(e._s(e.currentInfo.industryname))])]),t("a-descriptions-item",{attrs:{label:"地址",span:2}},[t("span",[e._v(e._s(e.currentInfo.province+e.currentInfo.city+e.currentInfo.area+e.currentInfo.address))])]),t("a-descriptions-item",{attrs:{label:"价格"}},[t("span",[e._v("¥"+e._s(e.currentInfo.price))])]),t("a-descriptions-item",{attrs:{label:"会员价"}},[t("span",[e._v("¥"+e._s(e.currentInfo.vipprice))])]),t("a-descriptions-item",{attrs:{label:"浏览数"}},[t("span",[e._v(e._s(e.currentInfo.browsecnt))])]),t("a-descriptions-item",{attrs:{label:"点赞数"}},[t("span",[e._v(e._s(e.currentInfo.likecnt))])]),t("a-descriptions-item",{attrs:{label:"供货图片",span:2}},e._l(e.plist,(function(i,r){return t("a-avatar",{key:r,staticStyle:{"margin-right":"15px"},attrs:{shape:"square",size:64,alt:i.title,src:i,srcSet:i},on:{click:function(t){return e.$refs.PreImg.Show({alt:i.title,img:i})}}})})),1),t("a-descriptions-item",{attrs:{label:"供货描述",span:2}},[t("span",[e._v(e._s(e.currentInfo.desc))])])],1)],1)]),t("previewimg",{ref:"PreImg"}),t("a-modal",{attrs:{title:"供货驳回",visible:e.rejectvisible,"confirm-loading":e.rejectconfirmloading},on:{ok:e.rejectok,cancel:e.rejectcancel}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["statusremark",{rules:[{required:!0,message:"驳回原因不可为空"}]}],expression:"['statusremark', { rules: [{ required: true, message: '驳回原因不可为空' }] }]"}],attrs:{rows:4,placeholder:"请输入驳回原因",type:"number","addon-after":"元"}})],1)],1)],1)],1)},n=[],a=(i("d81d"),i("310b")),o=i("081d"),l=i("0656"),u={components:{previewimg:o["default"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},currentInfo:{},rejectvisible:!1,rejectconfirmloading:!1,visible:!1,confirmLoading:!1,plist:[],form:this.$form.createForm(this)}},methods:{GetClientDataItem:a["a"],init:function(e){this.visible=!0,this.currentInfo=e,this.piclist()},piclist:function(){var e=""!==this.currentInfo.pics?this.currentInfo.pics.split(","):[];this.plist=e.map((function(e){return"http://irdhdt.com/"+e}))},handleCancel:function(){this.visible=!1},setstatus:function(e){var t=this;5!==e?Object(l["b"])({id:this.currentInfo.id,status:e}).then((function(i){0===i.code?(t.$message.success("状态设置成功"),t.currentInfo.status=e):t.$myerror(i.message)})).catch((function(e){t.$myerror(e.message)})):this.rejectvisible=!0},rejectok:function(e){var t=this,i=this;this.form.validateFields((function(e,r){e||(t.rejectconfirmloading=!0,r["id"]=i.currentInfo.id,r["status"]=5,Object(l["b"])(r).then((function(e){0===e.code?(t.$message.success("驳回成功"),t.currentInfo.status=5):t.$myerror(e.message),t.rejectcancel()})).catch((function(e){t.$myerror(e.message),t.rejectcancel()})))}))},rejectcancel:function(){this.rejectvisible=!1,this.rejectconfirmloading=!1}}},s=u,d=i("2877"),c=Object(d["a"])(s,r,n,!1,null,null,null);t["default"]=c.exports},"816c":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading,destroyOnClose:!0},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{validateFirst:!0,rules:[{required:!0,message:"请输入标题"},{max:100,message:"标题最多50个字"}]}],expression:"[\n 'title',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入标题' },\n { max: 100, message: '标题最多50个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入标题"}})],1),t("a-form-item",{attrs:{label:"排序号",help:"数字越小越靠前",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["sortcode"],expression:"['sortcode']"}],attrs:{placeholder:"请输入排序号"}})],1),t("a-form-item",{attrs:{label:"类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["ptype",{rules:[{required:!0,message:"请选择类型"}],initialValue:1}],expression:"['ptype', { rules: [{ required: true, message: '请选择类型' }], initialValue: 1 }]"}],attrs:{placeholder:"请选择类型"},on:{change:e.typeChange}},e._l(e.GetClientDataList("conenttypeenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1),1==e.type?t("a-form-item",{attrs:{label:"小程序Appid",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appid",{rules:[{required:!0,message:"请输入小程序appid"}]}],expression:"['appid', { rules: [{ required: true, message: '请输入小程序appid' }] }]"}],attrs:{placeholder:"请输入小程序appid"}})],1):e._e(),1==e.type?t("a-form-item",{attrs:{label:"小程序页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],attrs:{placeholder:"请输入小程序页面地址"}})],1):e._e(),2==e.type?t("a-form-item",{attrs:{label:"链接",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入链接地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入链接地址' }] }]"}],attrs:{rows:2,placeholder:"请输入链接地址"}})],1):e._e(),3==e.type?t("a-form-item",{attrs:{label:"页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入小程序内的页面地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入小程序内的页面地址' }] }]"}],attrs:{placeholder:"请输入小程序内的页面地址"}})],1):e._e(),4==e.type?t("a-form-item",{attrs:{label:"内容",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],staticStyle:{display:"none"},attrs:{rows:4,placeholder:"请输入内容"}}),t("WangEditor",{ref:"contentRef",attrs:{value:e.html,uploadConfig:e.uploadConfig}})],1):e._e()],1)],1)],1)},n=[],a=(i("d3b7"),i("310b")),o=i("9fe9"),l=i("e338"),u=i("00ea"),s={props:{title:{type:String,required:!0}},components:{WangEditor:l["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},loading:!1,html:"",uploadConfig:{method:"http",url:"common/uploadimg"},type:1,wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this)}},methods:{GetClientDataList:a["b"],init:function(e){var t=this;this.visible=!0,this.currentInfo=e,this.html="",this.type=1,e&&e.id&&(this.type=e.ptype,setTimeout((function(){t.form.setFieldsValue({title:e.title,ptype:e.ptype,content:e.content,sortcode:e.sortcode}),4===e.ptype?t.html=e.content:1===e.ptype&&t.form.setFieldsValue({appid:e.appid})}),100))},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:(i["id"]=e.currentInfo.id?e.currentInfo.id:null,i["content"]=4===i["ptype"]?e.$refs.contentRef.gethtml():i["content"],Object(o["d"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1})))}))},typeChange:function(e){this.type=e},handleUpload:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(u["a"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path):t.$myerror(e.message),t.uploading=!1}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},d=s,c=i("2877"),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},"83b8":function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[e.hasPerm("sysPos:page")?t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入职位名称"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入唯一编码"},model:{value:e.queryParam.code,callback:function(t){e.$set(e.queryParam,"code",t)},expression:"queryParam.code"}})],1)],1),t("a-col",{attrs:{md:e.advanced?24:8,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]):e._e(),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.code}},scopedSlots:e._u([{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("sysPos:edit")?t("a",{on:{click:function(t){return e.$refs.editForm.edit(r)}}},[e._v("编辑")]):e._e(),e.hasPerm("sysPos:edit")&e.hasPerm("sysPos:delete")?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("sysPos:delete")?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认删除?"},on:{confirm:function(){return e.sysPosDelete(r)}}},[t("a",[e._v("删除")])]):e._e()],1)}}])},[e.hasPerm("sysPos:add")?t("template",{slot:"operator"},[e.hasPerm("sysPos:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.$refs.addForm.add()}}},[e._v("新增职位")]):e._e()],1):e._e()],2),t("add-form",{ref:"addForm",on:{ok:e.handleOk}}),t("edit-form",{ref:"editForm",on:{ok:e.handleOk}})],1)],1)},n=[],a=i("2af9"),o=i("4cab"),l=i("7f86"),u=i("a468"),s={components:{XCard:a["k"],STable:a["h"],addForm:l["default"],editForm:u["default"]},data:function(){var e=this;return{advanced:!1,queryParam:{},columns:[{title:"职位名称",dataIndex:"name"},{title:"唯一编码",dataIndex:"code"},{title:"排序",dataIndex:"sort"},{title:"备注",dataIndex:"remark"}],loadData:function(t){return Object(o["e"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))},selectedRowKeys:[],selectedRows:[]}},created:function(){(this.hasPerm("sysPos:edit")||this.hasPerm("sysPos:delete"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{sysPosDelete:function(e){var t=this;Object(o["b"])(e).then((function(e){0===e.code?(t.$message.success("删除成功"),t.$refs.table.refresh()):t.$myerror("删除失败:"+e.message)})).catch((function(e){t.$myerror("删除错误:"+e.message)}))},toggleAdvanced:function(){this.advanced=!this.advanced},handleOk:function(){this.$refs.table.refresh()},onSelectChange:function(e,t){this.selectedRowKeys=e,this.selectedRows=t}}},d=s,c=(i("31b5"),i("2877")),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},"83bc":function(e,t,i){"use strict";i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return a})),i.d(t,"c",(function(){return o}));var r=i("b775");function n(e){return Object(r["b"])({url:"/business/navbar/list",method:"post",data:e})}function a(e){return Object(r["b"])({url:"/business/navbar/setstatus",method:"post",data:e})}function o(e){return Object(r["b"])({url:"/business/navbar/submit",method:"post",data:e})}},"87c1":function(e,t,i){},8955:function(e,t,i){"use strict";i("49f5")},"8a09":function(e,t,i){},"8ca5":function(e,t,i){},"8f03":function(e,t,i){"use strict";i("c293")},"8f07":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading,destroyOnClose:!0},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{validateFirst:!0,rules:[{required:!0,message:"请输入标题"},{max:100,message:"标题最多100个字"}]}],expression:"[\n 'title',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入标题' },\n { max: 100, message: '标题最多100个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入标题"}})],1),t("a-form-item",{attrs:{label:"排序号",help:"数字越小越靠前",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["sortcode"],expression:"['sortcode']"}],attrs:{placeholder:"请输入排序号"}})],1),t("a-form-item",{attrs:{label:"位置",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["pos",{rules:[{required:!0,message:"请选择位置"}],initialValue:""}],expression:"['pos', { rules: [{ required: true, message: '请选择位置' }], initialValue: '' }]"}],attrs:{placeholder:"请选择位置"},on:{change:e.posChange}},e._l(e.GetClientDataList("bannerpostionenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1),t("p",{staticStyle:{"text-align":"left"},attrs:{alt:"位置"}},[e._v("   底部上传视频:选择底部,封面类型选择视频,再上传封面视频。")])],1),t("a-form-item",{attrs:{label:"封面类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["posfmtype",{rules:[{required:!0,message:"请选择封面类型"}],initialValue:""}],expression:"['posfmtype', { rules: [{ required: true, message: '请选择封面类型' }], initialValue: '' }]"}],attrs:{placeholder:"请选择封面类型"},on:{change:e.fmtypeChange}},e._l(e.test_array2,(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1),1!=e.posfmtype||2!=e.pos&&1!=e.pos?e._e():t("a-form-item",{attrs:{label:"封面",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-upload-dragger",{attrs:{customRequest:e.handleUpload,"show-upload-list":!1}},[e.imageUrl?t("img",{staticStyle:{"max-height":"200px","max-width":"400px"},attrs:{src:e.imageUrl,alt:"封面图"}}):t("div",[t("p",{staticClass:"ant-upload-drag-icon"},[t("a-icon",{attrs:{type:e.loading?"loading":"inbox"}})],1),t("p",{staticClass:"ant-upload-text"},[e._v(" 上传封面 ")])])])],1),2!=e.posfmtype||2!=e.pos&&1!=e.pos?e._e():t("a-form-item",{attrs:{label:"封面视频",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-upload-dragger",{attrs:{customRequest:e.handleUploadVideo,"show-upload-list":!1}},[e.imageUrl?t("p",{staticStyle:{"text-align":"left"},attrs:{alt:"封面视频"}},[e._v("   封面视频路径:"+e._s(e.imageUrl))]):t("div",[t("p",{staticClass:"ant-upload-drag-icon"},[t("a-icon",{attrs:{type:e.loading?"loading":"inbox"}})],1),t("p",{staticClass:"ant-upload-text"},[e._v(" 上传封面视频 ")])])]),t("p",{staticStyle:{"text-align":"left"},attrs:{alt:"封面视频"}},[e._v("   注意:视频文件最大20M,MP4格式,视频文件制作建议采用16:9比例,最终显示效果见小程序首页。")])],1),t("a-form-item",{attrs:{label:"类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["ptype",{rules:[{required:!0,message:"请选择类型"}],initialValue:1}],expression:"['ptype', { rules: [{ required: true, message: '请选择类型' }], initialValue: 1 }]"}],attrs:{placeholder:"请选择类型"},on:{change:e.typeChange}},e._l(e.GetClientDataList("conenttypeenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1),1==e.type?t("a-form-item",{attrs:{label:"小程序Appid",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appid",{rules:[{required:!0,message:"请输入小程序appid"}]}],expression:"['appid', { rules: [{ required: true, message: '请输入小程序appid' }] }]"}],attrs:{placeholder:"请输入小程序appid"}})],1):e._e(),1==e.type?t("a-form-item",{attrs:{label:"小程序页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],attrs:{placeholder:"请输入小程序页面地址"}})],1):e._e(),2==e.type?t("a-form-item",{attrs:{label:"链接",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入链接地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入链接地址' }] }]"}],attrs:{rows:2,placeholder:"请输入链接地址"}})],1):e._e(),3==e.type?t("a-form-item",{attrs:{label:"页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入小程序内的页面地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入小程序内的页面地址' }] }]"}],attrs:{placeholder:"请输入小程序内的页面地址"}})],1):e._e(),4==e.type?t("a-form-item",{attrs:{label:"内容",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],staticStyle:{display:"none"},attrs:{rows:4,placeholder:"请输入内容"}}),t("WangEditor",{ref:"contentRef",attrs:{value:e.html,uploadConfig:e.uploadConfig}})],1):e._e()],1)],1)],1)},n=[],a=(i("d3b7"),i("310b")),o=i("e86c"),l=i("00ea"),u=i("e338"),s={props:{title:{type:String,required:!0}},components:{WangEditor:u["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},loading:!1,imageUrl:"",headimg:"",html:"",uploadConfig:{method:"http",url:"common/uploadimg"},type:1,wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this),pos:1,posfmtype:1,test_array:[],test_array2:[]}},methods:{GetClientDataList:a["b"],init:function(e){var t=this;this.visible=!0,this.currentInfo=e,this.imageUrl="",this.headimg="",this.html="",this.test_array2=[],this.test_array=this.GetClientDataList("bannerpostionimgvideoenum"),1==e.pos?this.test_array2.push(this.test_array[0]):this.test_array2=this.test_array,e&&e.id&&(this.type=e.ptype,this.headimg=e.headimg,this.imageUrl=e.imageurl,setTimeout((function(){t.form.setFieldsValue({title:e.title,ptype:e.ptype,content:e.content,sortcode:e.sortcode,pos:e.pos,posfmtype:0==e.posfmtype?"":e.posfmtype}),4===e.ptype?t.html=e.content:1===e.ptype?t.form.setFieldsValue({appid:e.appid}):1==e.posfmtype&&(t.posfmtype=e.posfmtype)}),100))},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:(i["id"]=e.currentInfo.id?e.currentInfo.id:null,i["headimg"]=e.headimg,i["content"]=4===i["ptype"]?e.$refs.contentRef.gethtml():i["content"],Object(o["d"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1})))}))},typeChange:function(e){this.type=e},fmtypeChange:function(e){this.posfmtype=e},posChange:function(e){this.pos=e,this.test_array2=[],this.test_array=this.GetClientDataList("bannerpostionimgvideoenum"),1==e?this.test_array2.push(this.test_array[0]):this.test_array2=this.test_array},handleUpload:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(l["a"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path):t.$myerror(e.message),t.uploading=!1}))},handleUploadVideo:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(l["b"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path):t.$myerror(e.message),t.uploading=!1}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},d=s,c=i("2877"),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},9017:function(e,t,i){"use strict";i("f150")},9161:function(e,t,i){"use strict";i("c363")},"951b":function(e,t,i){"use strict";i("b8eb")},9681:function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入名称"},model:{value:e.queryParam.title,callback:function(t){e.$set(e.queryParam,"title",t)},expression:"queryParam.title"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择状态","allow-clear":""},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("shopstatus"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.title,src:r.imageurl,srcSet:r.imageurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.title,img:r.imageurl})}}})],1)}},{key:"page",fn:function(i,r){return t("span",{},[4===r.status||5===r.status?t("span",[e._v("不支持")]):t("a",{on:{click:function(t){return e.copyTextByContentType(i,8)}}},[e._v("复制")])])}},{key:"status",fn:function(i,r){return t("span",{},[1===r.status||5===r.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))]):2===r.status||6===r.status?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.getenumval("shopstatus",i)))])],1)}},{key:"moreinfo",fn:function(i){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1)}},{key:"address",fn:function(i,r){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(r.province+r.city+r.area+i))])],1)}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("supply:view")?t("a",{on:{click:function(t){return e.detail(r)}}},[e._v("详情")]):e._e()])}}])}),t("detail",{ref:"detail",on:{ok:e.handleOk}})],1)],1)},n=[],a=i("2af9"),o=i("0656"),l=i("310b"),u=i("80f5"),s=i("ca00"),d={components:{XCard:a["k"],STable:a["h"],detail:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},rejectvisible:!1,rejectconfirmloading:!1,form:this.$form.createForm(this),columns:[{title:"产品",dataIndex:"title",scopedSlots:{customRender:"moreinfo"}},{title:"价格(元)",dataIndex:"price"},{title:"会员价(元)",dataIndex:"vipprice"},{title:"浏览数",dataIndex:"browsecnt"},{title:"点赞数",dataIndex:"likecnt"},{title:"地址",dataIndex:"address",scopedSlots:{customRender:"address"}},{title:"行业",dataIndex:"industryname"},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{dataIndex:"createtime",title:"创建时间"},{title:"内链",dataIndex:"id",scopedSlots:{customRender:"page"}}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){this.hasPerm("supply:view")&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}}),3!==this.$store.state.admintype&&this.columns.unshift({title:"会员",width:"150px",dataIndex:"businessname"})},methods:{GetClientDataList:l["b"],copyTextByContentType:s["a"],textcontent:s["c"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},detail:function(e){this.$refs.detail.init(e)},setstatus:function(e,t){var i=this;5!==t?Object(o["b"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)})):this.rejectvisible=!0},rejectok:function(e){var t=this,i=this;this.form.validateFields((function(e,r){e||(t.rejectconfirmloading=!0,Object(o["b"])({id:i.record.id,statusremark:r["statusremark"]}).then((function(e){0===e.code?(t.$message.success("驳回成功"),t.handleOk()):t.$myerror(e.message),t.rejectcancel()})).catch((function(e){t.$myerror(e.message),t.rejectcancel()})))}))},rejectcancel:function(){this.rejectvisible=!1,this.rejectconfirmloading=!1}}},c=d,p=(i("8f03"),i("2877")),f=Object(p["a"])(c,r,n,!1,null,"6fdc1f70",null);t["default"]=f.exports},"985f":function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"授权菜单",width:600,visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.formLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"菜单权限",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-tree",{attrs:{multiple:"",checkable:"","auto-expand-parent":e.autoExpandParent,"expanded-keys":e.expandedKeys,"tree-data":e.menuTreeData,"selected-keys":e.selectedKeys,replaceFields:e.replaceFields},on:{expand:e.onExpand,select:e.onSelect,check:e.treeCheck},model:{value:e.checkedKeys,callback:function(t){e.checkedKeys=t},expression:"checkedKeys"}})],1)],1)],1)],1)},n=[],a=i("c7eb"),o=i("1da1"),l=(i("d3b7"),i("159b"),i("99af"),i("a434"),i("0bfe")),u=i("a240"),s={data:function(){return{labelCol:{style:{"padding-right":"20px"},xs:{span:24},sm:{span:5}},wrapperCol:{xs:{span:24},sm:{span:15}},menuTreeData:[],expandedKeys:[],checkedKeys:[],halfCheckedKeys:[],visible:!1,confirmLoading:!1,formLoading:!0,autoExpandParent:!0,selectedKeys:[],subValues:[],roleEntity:[],replaceFields:{key:"id"},form:this.$form.createForm(this)}},methods:{roleMenu:function(e){var t=this;return Object(o["a"])(Object(a["a"])().mark((function i(){return Object(a["a"])().wrap((function(i){while(1)switch(i.prev=i.next){case 0:return t.formLoading=!0,t.roleEntity=e,t.visible=!0,i.next=5,t.getMenuTree();case 5:return i.next=7,t.expandedMenuKeys(e);case 7:case"end":return i.stop()}}),i)})))()},getMenuTree:function(){var e=this;return Object(l["a"])().then((function(t){0===t.code&&(e.menuTreeData=t.data,e.menuTreeData.forEach((function(t){e.expandedKeys.push(t.id)})))}))},expandedMenuKeys:function(e){var t=this;return Object(u["h"])({id:e.id}).then((function(e){0===e.code&&(t.checkedKeys=e.data,t.findAllChildren(t.menuTreeData)),t.formLoading=!1}))},treeCheck:function(e,t){this.halfCheckedKeys=t.halfCheckedKeys},onExpand:function(e){this.expandedKeys=e,this.autoExpandParent=!1},onCheck:function(e){this.checkedKeys=e},onSelect:function(e,t){this.selectedKeys=e},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:Object(u["f"])({id:e.roleEntity.id,grantMenuIdList:e.checkedKeys.concat(e.halfCheckedKeys)}).then((function(t){0===t.code?(e.$message.success("授权成功"),e.confirmLoading=!1,e.$emit("ok",i),e.handleCancel()):e.$myerror("授权失败:"+t.message)})).finally((function(t){e.confirmLoading=!1}))}))},handleCancel:function(){this.checkedKeys=[],this.expandedKeys=[],this.visible=!1},findAllChildren:function(e){var t=this;e.forEach((function(e,i){if(0!==e.children.length){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==i["return"]||i["return"]()}finally{if(u)throw o}}}}},b8eb:function(e,t,i){},bc32:function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"名称",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["name",{validateFirst:!0,rules:[{required:!0,message:"请输入名称"},{max:20,message:"名称最多20个字"}]}],expression:"[\n 'name',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入名称' },\n { max: 20, message: '名称最多20个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入名称"}})],1),t("a-form-item",{attrs:{label:"排序号",help:"数字越小越靠前",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["sort"],expression:"['sort']"}],attrs:{placeholder:"请输入排序号"}})],1),t("a-form-item",{attrs:{label:"价格",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["price",{validateFirst:!0,rules:[{required:!0,message:"请输入价格"},{validator:function(e,t,i){t<0?i("价格不可小于0元"):i()}}]}],expression:"[\n 'price',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入价格' },\n {\n validator: (rule, value, callback) => {\n if (value < 0) {\n callback('价格不可小于0元')\n } else {\n callback()\n }\n }\n }\n ]\n }\n ]"}],attrs:{type:"number",placeholder:"请输入价格",suffix:"元"}})],1),t("a-form-item",{attrs:{label:"周期",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["expirevalue",{validateFirst:!0,rules:[{required:!0,message:"请输入周期值"},{validator:function(e,t,i){t<0?i("周期值不可小于0"):i()}}]}],expression:"[\n 'expirevalue',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入周期值' },\n {\n validator: (rule, value, callback) => {\n if (value < 0) {\n callback('周期值不可小于0')\n } else {\n callback()\n }\n }\n }\n ]\n }\n ]"}],attrs:{type:"number",placeholder:"请输入周期值"}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["etype"],expression:"['etype']"}],staticStyle:{width:"80px"},attrs:{slot:"addonAfter"},slot:"addonAfter"},e._l(e.GetClientDataList("vipexpiretype"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-form-item",{attrs:{label:"产品数",help:"能够添加的最大产品数量,0表示无限制",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["productcnt",{validateFirst:!0,rules:[{required:!0,message:"请输入产品数"},{validator:function(e,t,i){t<0?i("数量不可小于0"):i()}}]}],expression:"[\n 'productcnt',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入产品数' },\n {\n validator: (rule, value, callback) => {\n if (value < 0) {\n callback('数量不可小于0')\n } else {\n callback()\n }\n }\n }\n ]\n }\n ]"}],attrs:{type:"number",placeholder:"请输入产品数"}})],1),t("a-form-item",{attrs:{label:"供货数",help:"能够添加的最大供货数量,0表示无限制",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["supplycnt",{validateFirst:!0,rules:[{required:!0,message:"请输入供货数"},{validator:function(e,t,i){t<0?i("数量不可小于0"):i()}}]}],expression:"[\n 'supplycnt',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入供货数' },\n {\n validator: (rule, value, callback) => {\n if (value < 0) {\n callback('数量不可小于0')\n } else {\n callback()\n }\n }\n }\n ]\n }\n ]"}],attrs:{type:"number",placeholder:"请输入供货数"}})],1),t("a-form-item",{attrs:{label:"采购数",help:"能够添加的最大采购数量,0表示无限制",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["demandcnt",{validateFirst:!0,rules:[{required:!0,message:"请输入采购数"},{validator:function(e,t,i){t<0?i("数量不可小于0"):i()}}]}],expression:"[\n 'demandcnt',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入采购数' },\n {\n validator: (rule, value, callback) => {\n if (value < 0) {\n callback('数量不可小于0')\n } else {\n callback()\n }\n }\n }\n ]\n }\n ]"}],attrs:{type:"number",placeholder:"请输入采购数"}})],1),t("a-form-item",{attrs:{label:"关联权限",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["auths",{rules:[],initialValue:e.selectedauthlist}],expression:"['auths', { rules: [], initialValue: selectedauthlist }]"}],attrs:{placeholder:"请选择关联权限",mode:"multiple"}},e._l(e.authlist,(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.id}},[e._v(e._s(i.name))])})),1)],1),t("a-form-item",{attrs:{label:"备注",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["remark",{validateFirst:!0,rules:[{max:200,message:"备注最多200个字"}]}],expression:"[\n 'remark',\n {\n validateFirst: true,\n rules: [{ max: 200, message: '备注最多200个字' }]\n }\n ]"}],attrs:{rows:4,placeholder:"请输入备注"}})],1)],1)],1)],1)},n=[],a=(i("4e82"),i("d81d"),i("4de4"),i("d3b7"),i("310b")),o=i("43e1"),l={props:{title:{type:String,required:!0}},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this),authlist:[],selectedauthlist:[]}},methods:{GetClientDataList:a["b"],init:function(e){var t=this;this.visible=!0,this.currentInfo=e,e&&e.id&&(this.type=e.ptype,this.headimg=e.headimg,this.imageUrl=e.imageurl,setTimeout((function(){t.form.setFieldsValue({name:e.name,sort:e.sort,price:e.price,remark:e.remark,expirevalue:e.expirevalue,etype:e.etype,productcnt:e.productcnt,supplycnt:e.supplycnt,demandcnt:e.demandcnt})}),100)),this.AuthList()},AuthList:function(){var e=this;Object(o["g"])({id:this.currentInfo.id?this.currentInfo.id:null}).then((function(t){e.authlist=t.data,e.selectedauthlist=e.authlist.filter((function(e){return e.ischecked})).map((function(e){return e.id}))}))},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:(i["id"]=e.currentInfo.id?e.currentInfo.id:null,Object(o["f"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1})))}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},u=l,s=i("2877"),d=Object(s["a"])(u,r,n,!1,null,null,null);t["default"]=d.exports},bd5c:function(e,t,i){},bf7f:function(e,t,i){"use strict";i.r(t);i("b0c0");var r=function(){var e=this,t=e._self._c;return t("div",[t("x-card",[t("div",{staticClass:"table-page-search-wrapper",attrs:{slot:"content"},slot:"content"},[t("a-form",{attrs:{layout:"inline"}},[t("a-row",{attrs:{gutter:24}},[t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-input",{attrs:{"allow-clear":"",placeholder:"请输入名称"},model:{value:e.queryParam.name,callback:function(t){e.$set(e.queryParam,"name",t)},expression:"queryParam.name"}})],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择上架状态","allow-clear":""},model:{value:e.queryParam.status,callback:function(t){e.$set(e.queryParam,"status",t)},expression:"queryParam.status"}},e._l(e.GetClientDataList("goodsstatus"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:4,sm:24}},[t("a-form-item",[t("a-select",{attrs:{placeholder:"请选择活动状态","allow-clear":""},model:{value:e.queryParam.cstatus,callback:function(t){e.$set(e.queryParam,"cstatus",t)},expression:"queryParam.cstatus"}},e._l(e.GetClientDataList("campaignstatusenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1)],1),t("a-col",{attrs:{md:e.advanced?24:6,sm:24}},[t("span",{staticClass:"table-page-search-submitButtons",style:e.advanced&&{float:"right",overflow:"hidden"}||{}},[t("a-button",{attrs:{type:"primary"},on:{click:function(t){return e.$refs.table.refresh(!0)}}},[e._v("查询")]),t("a-button",{staticStyle:{"margin-left":"8px"},on:{click:function(){return e.queryParam={}}}},[e._v("重置")])],1)])],1)],1)],1)]),t("a-card",{attrs:{bordered:!1}},[t("s-table",{ref:"table",attrs:{columns:e.columns,data:e.loadData,alert:!0,rowKey:function(e){return e.id}},scopedSlots:e._u([{key:"headimg",fn:function(i,r){return t("span",{},[t("a-avatar",{attrs:{shape:"square",size:64,alt:r.title,src:r.imageurl,srcSet:r.imageurl},on:{click:function(t){return e.$refs.PreImg.Show({alt:r.title,img:r.imageurl})}}})],1)}},{key:"time",fn:function(i,r){return t("span",{},[t("span",[e._v(e._s(r.starttime))]),e._v(" 至 "),t("span",[e._v(e._s(r.endtime))])])}},{key:"page",fn:function(i){return t("span",{},[t("a",{on:{click:function(t){return e.copyTextByContentType(i,4)}}},[e._v("复制")])])}},{key:"cstatus",fn:function(i,r){return t("span",{},[1===r.cstatus?t("a-tag",{attrs:{color:"red"}},[e._v(" "+e._s(e.getenumval("campaignstatusenum",i)))]):2===r.cstatus?t("a-tag",{attrs:{color:"green"}},[e._v(" "+e._s(e.getenumval("campaignstatusenum",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.getenumval("campaignstatusenum",i)))])],1)}},{key:"status",fn:function(i,r){return t("span",{},[1===r.status?t("a-tag",{attrs:{color:"#f50"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))]):2===r.status?t("a-tag",{attrs:{color:"#1dbb1d"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))]):t("a-tag",{attrs:{color:"#b3b3b3"}},[e._v(" "+e._s(e.getenumval("goodsstatus",i)))])],1)}},{key:"ptype",fn:function(i){return t("span",{},[e._v(" "+e._s(e.getenumval("conenttypeenum",i))+" ")])}},{key:"moreinfo",fn:function(i){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(i))])],1)}},{key:"address",fn:function(i,r){return t("span",{},[t("ellipsis",{attrs:{length:10,tooltip:""}},[e._v(e._s(r.province)+e._s(r.city)+e._s(r.area)+e._s(r.address))])],1)}},{key:"istop",fn:function(i){return t("span",{},[t("span",i?[e._v("是")]:[e._v("否")])])}},{key:"content",fn:function(i){return t("div",{},[t("div",[t("div",[e._v(e._s(e.textcontent(i,10)))])])])}},{key:"action",fn:function(i,r){return t("span",{},[e.hasPerm("huodong:edit")?t("a",{on:{click:function(t){return e.AddorEdit(r,1)}}},[e._v("编辑")]):e._e(),!e.hasPerm("huodong:status")||1!==r.status&&3!==r.status?e._e():t("a-divider",{attrs:{type:"vertical"}}),!e.hasPerm("huodong:status")||1!==r.status&&3!==r.status?e._e():t("a-popconfirm",{attrs:{placement:"topRight",title:"确认上架?"},on:{confirm:function(){return e.setstatus(r,2)}}},[t("a",[e._v("上架")])]),e.hasPerm("huodong:status")&&2==r.status?t("a-divider",{attrs:{type:"vertical"}}):e._e(),e.hasPerm("huodong:status")&&2==r.status?t("a-popconfirm",{attrs:{placement:"topRight",title:"确认下架?"},on:{confirm:function(){return e.setstatus(r,1)}}},[t("a",[e._v("下架")])]):e._e()],1)}}])},[e.hasPerm("huodong:add")?t("template",{slot:"operator"},[e.hasPerm("huodong:add")?t("a-button",{attrs:{icon:"plus",type:"primary"},on:{click:function(t){return e.AddorEdit({},0)}}},[e._v("新增活动")]):e._e()],1):e._e()],2),t("editForm",{ref:"editForm",attrs:{title:e.title},on:{ok:e.handleOk}})],1),t("previewimg",{ref:"PreImg"})],1)},n=[],a=i("2af9"),o=i("31bd"),l=i("310b"),u=i("081d"),s=i("0b3b"),d=i("ca00"),c={components:{XCard:a["k"],STable:a["h"],editForm:s["default"],previewimg:u["default"],Ellipsis:a["e"]},data:function(){var e=this;return{advanced:!1,queryParam:{},title:"",columns:[{title:"封面图",dataIndex:"headimg",scopedSlots:{customRender:"headimg"}},{title:"名称",dataIndex:"name",scopedSlots:{customRender:"moreinfo"}},{title:"是否置顶",dataIndex:"istop",scopedSlots:{customRender:"istop"}},{title:"浏览量",dataIndex:"browsecnt"},{title:"点赞量",dataIndex:"likecnt"},{dataIndex:"startime",title:"起止时间",scopedSlots:{customRender:"time"}},{dataIndex:"phone",title:"联系电话"},{title:"地址",dataIndex:"address",scopedSlots:{customRender:"address"}},{title:"活动状态",dataIndex:"cstatus",scopedSlots:{customRender:"cstatus"}},{title:"内容",dataIndex:"content",scopedSlots:{customRender:"content"}},{title:"状态",dataIndex:"status",scopedSlots:{customRender:"status"}},{title:"内链",dataIndex:"id",scopedSlots:{customRender:"page"}}],loadData:function(t){return Object(o["a"])(Object.assign(t,e.queryParam)).then((function(e){return e.data}))}}},created:function(){(this.hasPerm("huodong:status")||this.hasPerm("huodong:edit"))&&this.columns.push({title:"操作",width:"150px",dataIndex:"action",scopedSlots:{customRender:"action"}})},methods:{GetClientDataList:l["b"],copyTextByContentType:d["a"],textcontent:d["c"],handleOk:function(){this.$refs.table.refresh()},getenumval:function(e,t){return Object(l["a"])(e,t)},AddorEdit:function(e,t){this.title=1===t?"编辑活动":"新增活动",this.$refs.editForm.init(e)},setstatus:function(e,t){var i=this;Object(o["b"])({id:e.id,status:t}).then((function(e){0===e.code?(i.$message.success("状态设置成功"),i.$refs.table.refresh()):i.$myerror(e.message)})).catch((function(e){i.$myerror(e.message)}))}}},p=c,f=(i("7314"),i("2877")),v=Object(f["a"])(p,r,n,!1,null,"defd0614",null);t["default"]=v.exports},c09e:function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:e.title,width:"60%",visible:e.visible,confirmLoading:e.confirmLoading,destroyOnClose:!0},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.confirmLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"标题",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["title",{validateFirst:!0,rules:[{required:!0,message:"请输入标题"},{max:100,message:"标题最多100个字"}]}],expression:"[\n 'title',\n {\n validateFirst: true,\n rules: [\n { required: true, message: '请输入标题' },\n { max: 100, message: '标题最多100个字' }\n ]\n }\n ]"}],attrs:{placeholder:"请输入标题"}})],1),t("a-form-item",{attrs:{label:"是否置顶",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-switch",{directives:[{name:"decorator",rawName:"v-decorator",value:["istop",{valuePropName:"checked"}],expression:"['istop', { valuePropName: 'checked' }]"}]})],1),t("a-form-item",{attrs:{label:"封面",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-upload-dragger",{attrs:{customRequest:e.handleUpload,"show-upload-list":!1}},[e.imageUrl?t("img",{staticStyle:{"max-height":"200px","max-width":"400px"},attrs:{src:e.imageUrl,alt:"封面图"}}):t("div",[t("p",{staticClass:"ant-upload-drag-icon"},[t("a-icon",{attrs:{type:e.loading?"loading":"inbox"}})],1),t("p",{staticClass:"ant-upload-text"},[e._v(" 上传封面 ")])])])],1),t("a-form-item",{attrs:{label:"类型",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["ptype",{rules:[{required:!0,message:"请选择类型"}],initialValue:1}],expression:"['ptype', { rules: [{ required: true, message: '请选择类型' }], initialValue: 1 }]"}],attrs:{placeholder:"请选择类型"},on:{change:e.typeChange}},e._l(e.GetClientDataList("conenttypeenum"),(function(i,r){return t("a-select-option",{key:r,attrs:{value:i.code}},[e._v(e._s(i.val))])})),1)],1),1==e.type?t("a-form-item",{attrs:{label:"小程序Appid",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["appid",{rules:[{required:!0,message:"请输入小程序appid"}]}],expression:"['appid', { rules: [{ required: true, message: '请输入小程序appid' }] }]"}],attrs:{placeholder:"请输入小程序appid"}})],1):e._e(),1==e.type?t("a-form-item",{attrs:{label:"小程序页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],attrs:{placeholder:"请输入小程序页面地址"}})],1):e._e(),2==e.type?t("a-form-item",{attrs:{label:"链接",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入链接地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入链接地址' }] }]"}],attrs:{rows:2,placeholder:"请输入链接地址"}})],1):e._e(),3==e.type?t("a-form-item",{attrs:{label:"页面地址",labelCol:e.labelCol,wrapperCol:e.wrapperCol,"has-feedback":""}},[t("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["content",{rules:[{required:!0,message:"请输入小程序内的页面地址"}]}],expression:"['content', { rules: [{ required: true, message: '请输入小程序内的页面地址' }] }]"}],attrs:{placeholder:"请输入小程序内的页面地址"}})],1):e._e(),4==e.type?t("a-form-item",{attrs:{label:"内容",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["content"],expression:"['content']"}],staticStyle:{display:"none"},attrs:{rows:4,placeholder:"请输入内容"}}),t("WangEditor",{ref:"contentRef",attrs:{value:e.html,uploadConfig:e.uploadConfig}})],1):e._e()],1)],1)],1)},n=[],a=(i("d3b7"),i("310b")),o=i("cd3f3"),l=i("00ea"),u=i("e338"),s={props:{title:{type:String,required:!0}},components:{WangEditor:u["a"]},data:function(){return{labelCol:{xs:{span:24},sm:{span:5}},loading:!1,imageUrl:"",headimg:"",html:"",uploadConfig:{method:"http",url:"common/uploadimg"},type:1,wrapperCol:{xs:{span:24},sm:{span:15}},currentInfo:{},visible:!1,confirmLoading:!1,form:this.$form.createForm(this)}},methods:{GetClientDataList:a["b"],init:function(e){var t=this;this.visible=!0,this.currentInfo=e,this.imageUrl="",this.headimg="",this.html="",e&&e.id&&(this.type=e.ptype,this.headimg=e.headimg,this.imageUrl=e.imageurl,setTimeout((function(){t.form.setFieldsValue({title:e.title,istop:e.istop,ptype:e.ptype,content:e.content}),4===e.ptype?t.html=e.content:1===e.ptype&&t.form.setFieldsValue({appid:e.appid})}),100))},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:(i["id"]=e.currentInfo.id?e.currentInfo.id:null,i["headimg"]=e.headimg,i["content"]=4===i["ptype"]?e.$refs.contentRef.gethtml():i["content"],Object(o["d"])(i).then((function(t){0===t.code?(e.currentInfo&&e.currentInfo.id?e.$message.success("编辑成功"):e.$message.success("添加成功"),e.confirmLoading=!1,e.$emit("ok",e.record),e.handleCancel()):e.$myerror(t.message)})).finally((function(t){e.confirmLoading=!1})))}))},typeChange:function(e){this.type=e},handleUpload:function(e){var t=this,i=new FormData;i.append("file",e.file),this.uploading=!0,Object(l["a"])(i).then((function(e){0===e.code?(t.imageUrl=e.data.url,t.headimg=e.data.path):t.$myerror(e.message),t.uploading=!1}))},handleCancel:function(){this.form.resetFields(),this.visible=!1}}},d=s,c=i("2877"),p=Object(c["a"])(d,r,n,!1,null,null,null);t["default"]=p.exports},c293:function(e,t,i){},c363:function(e,t,i){},c880:function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{title:"授权数据",width:600,visible:e.visible,confirmLoading:e.confirmLoading},on:{ok:e.handleSubmit,cancel:e.handleCancel}},[t("a-spin",{attrs:{spinning:e.formLoading}},[t("a-form",{attrs:{form:e.form}},[t("a-form-item",{attrs:{label:"选择机构",labelCol:e.labelCol,wrapperCol:e.wrapperCol}},[t("a-tree",{attrs:{checkable:"","auto-expand-parent":e.autoExpandParent,"expanded-keys":e.expandedKeys,"tree-data":e.orgTreeData,"selected-keys":e.selectedKeys,replaceFields:e.replaceFields},on:{expand:e.onExpand,select:e.onSelect},model:{value:e.checkedKeys,callback:function(t){e.checkedKeys=t},expression:"checkedKeys"}})],1)],1)],1)],1)},n=[],a=(i("d3b7"),i("159b"),i("25fa")),o=i("0901"),l={data:function(){return{labelCol:{style:{"padding-right":"20px"},xs:{span:24},sm:{span:5}},wrapperCol:{xs:{span:24},sm:{span:15}},orgTreeData:[],expandedKeys:[],checkedKeys:[],visible:!1,confirmLoading:!1,formLoading:!0,autoExpandParent:!0,selectedKeys:[],userEntity:[],replaceFields:{key:"id"},form:this.$form.createForm(this)}},methods:{userOrg:function(e){this.userEntity=e,this.visible=!0,this.getOrgTree(),this.sysUserOwnData(this.userEntity)},getOrgTree:function(){var e=this;this.formLoading=!0,Object(a["c"])().then((function(t){0===t.code&&(e.orgTreeData=t.data,e.orgTreeData.forEach((function(t){e.expandedKeys.push(t.id)})))}))},sysUserOwnData:function(e){var t=this;Object(o["o"])({id:e.id}).then((function(e){0===e.code&&(t.checkedKeys=e.data),t.formLoading=!1}))},onExpand:function(e){this.expandedKeys=e,this.autoExpandParent=!1},onCheck:function(e){this.checkedKeys=e},onSelect:function(e,t){this.selectedKeys=e},handleSubmit:function(){var e=this,t=this.form.validateFields;this.confirmLoading=!0,t((function(t,i){t?e.confirmLoading=!1:Object(o["j"])({id:e.userEntity.id,grantOrgIdList:e.checkedKeys}).then((function(t){0===t.code?(e.$message.success("授权成功"),e.confirmLoading=!1,e.$emit("ok",i),e.handleCancel()):e.$myerror("授权失败:"+JSON.stringify(t.message))})).finally((function(t){e.confirmLoading=!1}))}))},handleCancel:function(){this.form.resetFields(),this.checkedKeys=[],this.expandedKeys=[],this.visible=!1}}},u=l,s=i("2877"),d=Object(s["a"])(u,r,n,!1,null,null,null);t["default"]=d.exports},cb23:function(e,t,i){"use strict";(function(e){i.d(t,"a",(function(){return tO})),i.d(t,"b",(function(){return nbe})),i.d(t,"c",(function(){return abe}));var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof e?e:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function a(e){var t={exports:{}};return e(t,t.exports),t.exports}var o,l,u=function(e){return e&&e.Math==Math&&e},s=u("object"==typeof globalThis&&globalThis)||u("object"==typeof window&&window)||u("object"==typeof self&&self)||u("object"==typeof r&&r)||function(){return this}()||Function("return this")(),d=Function.prototype,c=d.apply,p=d.bind,f=d.call,v="object"==typeof Reflect&&Reflect.apply||(p?f.bind(c):function(){return f.apply(c,arguments)}),h=Function.prototype,m=h.bind,b=h.call,g=m&&m.bind(b),y=m?function(e){return e&&g(b,e)}:function(e){return e&&function(){return b.apply(e,arguments)}},x=function(e){return"function"==typeof e},_=function(e){try{return!!e()}catch(e){return!0}},w=!_((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),C=Function.prototype.call,D=C.bind?C.bind(C):function(){return C.apply(C,arguments)},E={}.propertyIsEnumerable,S=Object.getOwnPropertyDescriptor,k=S&&!E.call({1:2},1)?function(e){var t=S(this,e);return!!t&&t.enumerable}:E,O={f:k},A=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},P=y({}.toString),F=y("".slice),j=function(e){return F(P(e),8,-1)},T=s.Object,I=y("".split),B=_((function(){return!T("z").propertyIsEnumerable(0)}))?function(e){return"String"==j(e)?I(e,""):T(e)}:T,L=s.TypeError,N=function(e){if(null==e)throw L("Can't call method on "+e);return e},R=function(e){return B(N(e))},M=function(e){return"object"==typeof e?null!==e:x(e)},$={},q=function(e){return x(e)?e:void 0},z=function(e,t){return arguments.length<2?q($[e])||q(s[e]):$[e]&&$[e][t]||s[e]&&s[e][t]},U=y({}.isPrototypeOf),V=z("navigator","userAgent")||"",H=s.process,G=s.Deno,K=H&&H.versions||G&&G.version,W=K&&K.v8;W&&(l=(o=W.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!l&&V&&(!(o=V.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=V.match(/Chrome\/(\d+)/))&&(l=+o[1]);var Y,X=l,J=!!Object.getOwnPropertySymbols&&!_((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&X&&X<41})),Z=J&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Q=s.Object,ee=Z?function(e){return"symbol"==typeof e}:function(e){var t=z("Symbol");return x(t)&&U(t.prototype,Q(e))},te=s.String,ie=function(e){try{return te(e)}catch(e){return"Object"}},re=s.TypeError,ne=function(e){if(x(e))return e;throw re(ie(e)+" is not a function")},ae=function(e,t){var i=e[t];return null==i?void 0:ne(i)},oe=s.TypeError,le=Object.defineProperty,ue=s["__core-js_shared__"]||function(e,t){try{le(s,e,{value:t,configurable:!0,writable:!0})}catch(a){s[e]=t}return t}("__core-js_shared__",{}),se=a((function(e){(e.exports=function(e,t){return ue[e]||(ue[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.19.3",mode:"pure",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})})),de=s.Object,ce=function(e){return de(N(e))},pe=y({}.hasOwnProperty),fe=Object.hasOwn||function(e,t){return pe(ce(e),t)},ve=0,he=Math.random(),me=y(1..toString),be=function(e){return"Symbol("+(void 0===e?"":e)+")_"+me(++ve+he,36)},ge=se("wks"),ye=s.Symbol,xe=ye&&ye.for,_e=Z?ye:ye&&ye.withoutSetter||be,we=function(e){if(!fe(ge,e)||!J&&"string"!=typeof ge[e]){var t="Symbol."+e;J&&fe(ye,e)?ge[e]=ye[e]:ge[e]=Z&&xe?xe(t):_e(t)}return ge[e]},Ce=s.TypeError,De=we("toPrimitive"),Ee=function(e,t){if(!M(e)||ee(e))return e;var i,r=ae(e,De);if(r){if(void 0===t&&(t="default"),i=D(r,e,t),!M(i)||ee(i))return i;throw Ce("Can't convert object to primitive value")}return void 0===t&&(t="number"),function(e,t){var i,r;if("string"===t&&x(i=e.toString)&&!M(r=D(i,e)))return r;if(x(i=e.valueOf)&&!M(r=D(i,e)))return r;if("string"!==t&&x(i=e.toString)&&!M(r=D(i,e)))return r;throw oe("Can't convert object to primitive value")}(e,t)},Se=function(e){var t=Ee(e,"string");return ee(t)?t:t+""},ke=s.document,Oe=M(ke)&&M(ke.createElement),Ae=function(e){return Oe?ke.createElement(e):{}},Pe=!w&&!_((function(){return 7!=Object.defineProperty(Ae("div"),"a",{get:function(){return 7}}).a})),Fe=Object.getOwnPropertyDescriptor,je=w?Fe:function(e,t){if(e=R(e),t=Se(t),Pe)try{return Fe(e,t)}catch(e){}if(fe(e,t))return A(!D(O.f,e,t),e[t])},Te={f:je},Ie=/#|\.prototype\./,Be=function(e,t){var i=Ne[Le(e)];return i==Me||i!=Re&&(x(t)?_(t):!!t)},Le=Be.normalize=function(e){return String(e).replace(Ie,".").toLowerCase()},Ne=Be.data={},Re=Be.NATIVE="N",Me=Be.POLYFILL="P",$e=Be,qe=y(y.bind),ze=function(e,t){return ne(e),void 0===t?e:qe?qe(e,t):function(){return e.apply(t,arguments)}},Ue=s.String,Ve=s.TypeError,He=function(e){if(M(e))return e;throw Ve(Ue(e)+" is not an object")},Ge=s.TypeError,Ke=Object.defineProperty,We=w?Ke:function(e,t,i){if(He(e),t=Se(t),He(i),Pe)try{return Ke(e,t,i)}catch(e){}if("get"in i||"set"in i)throw Ge("Accessors not supported");return"value"in i&&(e[t]=i.value),e},Ye={f:We},Xe=w?function(e,t,i){return Ye.f(e,t,A(1,i))}:function(e,t,i){return e[t]=i,e},Je=Te.f,Ze=function(e){var t=function(i,r,n){if(this instanceof t){switch(arguments.length){case 0:return new e;case 1:return new e(i);case 2:return new e(i,r)}return new e(i,r,n)}return v(e,this,arguments)};return t.prototype=e.prototype,t},Qe=function(e,t){var i,r,n,a,o,l,u,d,c=e.target,p=e.global,f=e.stat,v=e.proto,h=p?s:f?s[c]:(s[c]||{}).prototype,m=p?$:$[c]||Xe($,c,{})[c],b=m.prototype;for(n in t)i=!$e(p?n:c+(f?".":"#")+n,e.forced)&&h&&fe(h,n),o=m[n],i&&(l=e.noTargetGet?(d=Je(h,n))&&d.value:h[n]),a=i&&l?l:t[n],i&&typeof o==typeof a||(u=e.bind&&i?ze(a,s):e.wrap&&i?Ze(a):v&&x(a)?y(a):a,(e.sham||a&&a.sham||o&&o.sham)&&Xe(u,"sham",!0),Xe(m,n,u),v&&(fe($,r=c+"Prototype")||Xe($,r,{}),Xe($[r],n,a),e.real&&b&&!b[n]&&Xe(b,n,a)))},et=se("keys"),tt=function(e){return et[e]||(et[e]=be(e))},it=!_((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),rt=tt("IE_PROTO"),nt=s.Object,at=nt.prototype,ot=it?nt.getPrototypeOf:function(e){var t=ce(e);if(fe(t,rt))return t[rt];var i=t.constructor;return x(i)&&t instanceof i?i.prototype:t instanceof nt?at:null},lt=s.String,ut=s.TypeError,st=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=y(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(i,[]),t=i instanceof Array}catch(e){}return function(i,r){return He(i),function(e){if("object"==typeof e||x(e))return e;throw ut("Can't set "+lt(e)+" as a prototype")}(r),t?e(i,r):i.__proto__=r,i}}():void 0),dt=Math.ceil,ct=Math.floor,pt=function(e){var t=+e;return t!=t||0===t?0:(t>0?ct:dt)(t)},ft=Math.max,vt=Math.min,ht=function(e,t){var i=pt(e);return i<0?ft(i+t,0):vt(i,t)},mt=Math.min,bt=function(e){return(t=e.length)>0?mt(pt(t),9007199254740991):0;var t},gt=function(e){return function(t,i,r){var n,a=R(t),o=bt(a),l=ht(r,o);if(e&&i!=i){for(;o>l;)if((n=a[l++])!=n)return!0}else for(;o>l;l++)if((e||l in a)&&a[l]===i)return e||l||0;return!e&&-1}},yt={includes:gt(!0),indexOf:gt(!1)},xt={},_t=yt.indexOf,wt=y([].push),Ct=function(e,t){var i,r=R(e),n=0,a=[];for(i in r)!fe(xt,i)&&fe(r,i)&&wt(a,i);for(;t.length>n;)fe(r,i=t[n++])&&(~_t(a,i)||wt(a,i));return a},Dt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Et=Dt.concat("length","prototype"),St=Object.getOwnPropertyNames||function(e){return Ct(e,Et)},kt={f:St},Ot={f:Object.getOwnPropertySymbols},At=y([].concat),Pt=z("Reflect","ownKeys")||function(e){var t=kt.f(He(e)),i=Ot.f;return i?At(t,i(e)):t},Ft=Object.keys||function(e){return Ct(e,Dt)},jt=w?Object.defineProperties:function(e,t){He(e);for(var i,r=R(t),n=Ft(t),a=n.length,o=0;a>o;)Ye.f(e,i=n[o++],r[i]);return e},Tt=z("document","documentElement"),It=tt("IE_PROTO"),Bt=function(){},Lt=function(e){return" +<% } %> + + + diff --git a/admin20250319/public/loading/loading.css b/admin20250319/public/loading/loading.css new file mode 100644 index 0000000..a899eac --- /dev/null +++ b/admin20250319/public/loading/loading.css @@ -0,0 +1 @@ +#preloadingAnimation{position:fixed;left:0;top:0;height:100%;width:100%;background:#ffffff;user-select:none;z-index: 9999;overflow: hidden}.lds-roller{display:inline-block;position:relative;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;}.lds-roller div{animation:lds-roller 1.2s cubic-bezier(0.5,0,0.5,1) infinite;transform-origin:32px 32px;}.lds-roller div:after{content:" ";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#13c2c2;margin:-3px 0 0 -3px;}.lds-roller div:nth-child(1){animation-delay:-0.036s;}.lds-roller div:nth-child(1):after{top:50px;left:50px;}.lds-roller div:nth-child(2){animation-delay:-0.072s;}.lds-roller div:nth-child(2):after{top:54px;left:45px;}.lds-roller div:nth-child(3){animation-delay:-0.108s;}.lds-roller div:nth-child(3):after{top:57px;left:39px;}.lds-roller div:nth-child(4){animation-delay:-0.144s;}.lds-roller div:nth-child(4):after{top:58px;left:32px;}.lds-roller div:nth-child(5){animation-delay:-0.18s;}.lds-roller div:nth-child(5):after{top:57px;left:25px;}.lds-roller div:nth-child(6){animation-delay:-0.216s;}.lds-roller div:nth-child(6):after{top:54px;left:19px;}.lds-roller div:nth-child(7){animation-delay:-0.252s;}.lds-roller div:nth-child(7):after{top:50px;left:14px;}.lds-roller div:nth-child(8){animation-delay:-0.288s;}.lds-roller div:nth-child(8):after{top:45px;left:10px;}#preloadingAnimation .load-tips{color: #13c2c2;font-size:2rem;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:80px;text-align:center;width:400px;height:64px;} @keyframes lds-roller{0%{transform:rotate(0deg);} 100%{transform:rotate(360deg);}} \ No newline at end of file diff --git a/admin20250319/public/loading/loading.html b/admin20250319/public/loading/loading.html new file mode 100644 index 0000000..018c402 --- /dev/null +++ b/admin20250319/public/loading/loading.html @@ -0,0 +1 @@ +
Loading
diff --git a/admin20250319/public/loading/option2/html_code_segment.html b/admin20250319/public/loading/option2/html_code_segment.html new file mode 100644 index 0000000..5c85af3 --- /dev/null +++ b/admin20250319/public/loading/option2/html_code_segment.html @@ -0,0 +1,5 @@ +
+
+ +
+
diff --git a/admin20250319/public/loading/option2/loading.css b/admin20250319/public/loading/option2/loading.css new file mode 100644 index 0000000..c35cd73 --- /dev/null +++ b/admin20250319/public/loading/option2/loading.css @@ -0,0 +1 @@ +.preloading-animate{background:#ffffff;width:100%;height:100%;position:fixed;left:0;top:0;z-index:299;}.preloading-animate .preloading-wrapper{position:absolute;width:5rem;height:5rem;left:50%;top:50%;transform:translate(-50%,-50%);}.preloading-animate .preloading-wrapper .preloading-balls{font-size:5rem;} \ No newline at end of file diff --git a/admin20250319/public/loading/option2/loading.svg b/admin20250319/public/loading/option2/loading.svg new file mode 100644 index 0000000..7ff7322 --- /dev/null +++ b/admin20250319/public/loading/option2/loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin20250319/src/App.vue b/admin20250319/src/App.vue new file mode 100644 index 0000000..3a611db --- /dev/null +++ b/admin20250319/src/App.vue @@ -0,0 +1,47 @@ + + + + diff --git a/admin20250319/src/api/modular/main/banner.js b/admin20250319/src/api/modular/main/banner.js new file mode 100644 index 0000000..b17fc6d --- /dev/null +++ b/admin20250319/src/api/modular/main/banner.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/banner/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/banner/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/banner/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/banner/Delete', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/business.js b/admin20250319/src/api/modular/main/business.js new file mode 100644 index 0000000..2f84f9a --- /dev/null +++ b/admin20250319/src/api/modular/main/business.js @@ -0,0 +1,26 @@ +// 客户管理接口定义 +import { axios } from '@/utils/request' +// 分销商列表 +export function BusinessList(parameter) { + return axios({ + url: '/business/account/list', + method: 'post', + data: parameter + }) + } + // 所有分销商列表 + export function BusinessAllList(parameter) { + return axios({ + url: '/business/account/alllist', + method: 'post', + data: parameter + }) + } + // 分销商提交 +export function BusinessSubmit(parameter) { + return axios({ + url: '/business/account/submit', + method: 'post', + data: parameter + }) + } diff --git a/admin20250319/src/api/modular/main/demand.js b/admin20250319/src/api/modular/main/demand.js new file mode 100644 index 0000000..08097dd --- /dev/null +++ b/admin20250319/src/api/modular/main/demand.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/demand/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/demand/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/huodong.js b/admin20250319/src/api/modular/main/huodong.js new file mode 100644 index 0000000..4a00dea --- /dev/null +++ b/admin20250319/src/api/modular/main/huodong.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/Campaign/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/Campaign/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/Campaign/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/Campaign/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/industry.js b/admin20250319/src/api/modular/main/industry.js new file mode 100644 index 0000000..abcdec2 --- /dev/null +++ b/admin20250319/src/api/modular/main/industry.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/industry/list', + method: 'post', + data: parameter + }) +} +// 获取列表 +export function AllList(parameter) { + return axios({ + url: '/business/industry/alllist', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/industry/delete', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/industry/submit', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/info.js b/admin20250319/src/api/modular/main/info.js new file mode 100644 index 0000000..660ac68 --- /dev/null +++ b/admin20250319/src/api/modular/main/info.js @@ -0,0 +1,65 @@ +import { axios } from '@/utils/request' +// 获取资讯列表 +export function List(parameter) { + return axios({ + url: '/business/info/list', + method: 'post', + data: parameter + }) +} +// 删除一条资讯 +export function Delete(parameter) { + return axios({ + url: '/business/info/delete', + method: 'post', + data: parameter + }) +} +//获取公益信息列表 +export function GYList(parameter) { + return axios({ + url: '/business/info/gylist', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/info/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/info/submit', + method: 'post', + data: parameter + }) +} + // 提交 +export function GYSubmit(parameter) { + return axios({ + url: '/business/info/gysubmit', + method: 'post', + data: parameter + }) +} +// 电话拨打列表 +export function GetPhoneClickNumberList(parameter) { + return axios({ + url: '/app/home/getphoneclicknumberlist', + method: 'post', + data: parameter + }) +} +// 导出 +export function Export(parameter) { + return axios({ + url: '/app/home/export', + method: 'post', + data: parameter + }) +} \ No newline at end of file diff --git a/admin20250319/src/api/modular/main/navbar.js b/admin20250319/src/api/modular/main/navbar.js new file mode 100644 index 0000000..f9f5f24 --- /dev/null +++ b/admin20250319/src/api/modular/main/navbar.js @@ -0,0 +1,25 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/navbar/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/navbar/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/navbar/submit', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/notice.js b/admin20250319/src/api/modular/main/notice.js new file mode 100644 index 0000000..b2af21e --- /dev/null +++ b/admin20250319/src/api/modular/main/notice.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/notice/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/notice/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/notice/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/notice/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/party.js b/admin20250319/src/api/modular/main/party.js new file mode 100644 index 0000000..264a570 --- /dev/null +++ b/admin20250319/src/api/modular/main/party.js @@ -0,0 +1,33 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/party/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/party/setstatus', + method: 'post', + data: parameter + }) +} +// 提交 +export function Submit(parameter) { + return axios({ + url: '/business/party/submit', + method: 'post', + data: parameter + }) +} +// 删除 +export function Delete(parameter) { + return axios({ + url: '/business/party/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/platform.js b/admin20250319/src/api/modular/main/platform.js new file mode 100644 index 0000000..2acefa6 --- /dev/null +++ b/admin20250319/src/api/modular/main/platform.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 平台配置详情 +export function Detail(parameter) { + return axios({ + url: '/platform/detail', + method: 'post', + data: parameter + }) +} +// 平台配置信息提交 +export function Submit(parameter) { + return axios({ + url: '/platform/submit', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/product.js b/admin20250319/src/api/modular/main/product.js new file mode 100644 index 0000000..6fb7096 --- /dev/null +++ b/admin20250319/src/api/modular/main/product.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/product/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/product/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/reguser.js b/admin20250319/src/api/modular/main/reguser.js new file mode 100644 index 0000000..15c1c36 --- /dev/null +++ b/admin20250319/src/api/modular/main/reguser.js @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 查询注册用户列表 +export function RegUserList (parameter) { + return axios({ + url: '/reguser/list', + method: 'post', + data: parameter + }) +} +// 修改昵称 +export function ModifyName (parameter) { + return axios({ + url: '/reguser/editname', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/supply b/admin20250319/src/api/modular/main/supply new file mode 100644 index 0000000..c0c8d6d --- /dev/null +++ b/admin20250319/src/api/modular/main/supply @@ -0,0 +1,17 @@ +import { axios } from '@/utils/request' +// 获取列表 +export function List(parameter) { + return axios({ + url: '/business/supply/list', + method: 'post', + data: parameter + }) +} +// 修改状态 +export function SetStatus(parameter) { + return axios({ + url: '/business/supply/setstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/systeminfo.js b/admin20250319/src/api/modular/main/systeminfo.js new file mode 100644 index 0000000..dfbfa24 --- /dev/null +++ b/admin20250319/src/api/modular/main/systeminfo.js @@ -0,0 +1,26 @@ +import { axios } from '@/utils/request' + +/** + * 查询所有枚举类型 + * + * @author liuzl + */ + export function GetClientData (parameter) { + return axios({ + url: '/sysenumdata/getclientdata', + method: 'get', + param: parameter + }) + } +/** + * 查询配置信息 + * + * @author liuzl + */ + export function GetConfigInfo (parameter) { + return axios({ + url: '/system/getconfiginfo', + method: 'post', + param: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/upload.js b/admin20250319/src/api/modular/main/upload.js new file mode 100644 index 0000000..935377c --- /dev/null +++ b/admin20250319/src/api/modular/main/upload.js @@ -0,0 +1,18 @@ +import { axios } from '@/utils/request' +// 图片上传 +export function UploadImg(parameter) { + return axios({ + url: '/common/uploadimg', + method: 'post', + data: parameter + }) +} + +// 视频上传 +export function UploadImgVideo(parameter) { + return axios({ + url: '/common/uploadvideo', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/vip.js b/admin20250319/src/api/modular/main/vip.js new file mode 100644 index 0000000..1d05816 --- /dev/null +++ b/admin20250319/src/api/modular/main/vip.js @@ -0,0 +1,57 @@ +import { axios } from '@/utils/request' +// vip列表 +export function List(parameter) { + return axios({ + url: '/business/vip/list', + method: 'post', + data: parameter + }) +} +// vip所有列表 +export function AllList(parameter) { + return axios({ + url: '/business/vip/alllist', + method: 'post', + data: parameter + }) +} +// vip提交 +export function Submit(parameter) { + return axios({ + url: '/business/vip/submit', + method: 'post', + data: parameter + }) +} +// vip权限列表 +export function AuthList(parameter) { + return axios({ + url: '/business/vip/auth/list', + method: 'post', + data: parameter + }) +} +// vip权限提交 +export function AuthSubmit(parameter) { + return axios({ + url: '/business/vip/auth/submit', + method: 'post', + data: parameter + }) +} +// vip权限状态变更 +export function AuthStatus(parameter) { + return axios({ + url: '/business/vip/auth/status', + method: 'post', + data: parameter + }) +} +// vip关联权限列表 +export function VipAuthList(parameter) { + return axios({ + url: '/business/vip/authlist', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/main/wx.js b/admin20250319/src/api/modular/main/wx.js new file mode 100644 index 0000000..7d0c329 --- /dev/null +++ b/admin20250319/src/api/modular/main/wx.js @@ -0,0 +1,25 @@ +import { axios } from '@/utils/request' +// 获取小程序列表 +export function List(parameter) { + return axios({ + url: '/business/wx/list', + method: 'post', + data: parameter + }) + } + // 获取所有小程序列表 +export function AllList(parameter) { + return axios({ + url: '/business/wx/alllist', + method: 'post', + data: parameter + }) +} +// 小程序信息提交 +export function Submit(parameter) { + return axios({ + url: '/business/wx/submit', + method: 'post', + data: parameter + }) + } diff --git a/admin20250319/src/api/modular/system/appManage.js b/admin20250319/src/api/modular/system/appManage.js new file mode 100644 index 0000000..870787e --- /dev/null +++ b/admin20250319/src/api/modular/system/appManage.js @@ -0,0 +1,106 @@ +/** + * 系统应用 + * + * @author yubaoshan + * @date 2020年4月23日12:10:57 + */ +import { axios } from '@/utils/request' + +/** + * 系统应用列表 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function getAppPage (parameter) { + return axios({ + url: '/sysApp/page', + method: 'get', + params: parameter + }) +} + +/** + * 系统应用列表 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function getAppList (parameter) { + return axios({ + url: '/sysApp/list', + method: 'get', + params: parameter + }) +} + +/** + * 新增系统应用 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function sysAppAdd (parameter) { + return axios({ + url: '/sysApp/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统应用 + * + * @author yubaoshan + * @param parameter + * @returns {*} + */ +export function sysAppEdit (parameter) { + return axios({ + url: '/sysApp/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统应用 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function sysAppDelete (parameter) { + return axios({ + url: '/sysApp/delete', + method: 'post', + data: parameter + }) +} + +/** + * 设为默认应用 + * + * @author yubaoshan + * @date 2020年7月9日15:05:01 + */ +export function sysAppSetAsDefault (parameter) { + return axios({ + url: '/sysApp/setAsDefault', + method: 'post', + data: parameter + }) +} + +/** + * 修改应用状态 + * + * @author zuohuaijun + * @date 2021年1月1日 + */ +export function sysAppChangeStatus (parameter) { + return axios({ + url: '/sysApp/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/configManage.js b/admin20250319/src/api/modular/system/configManage.js new file mode 100644 index 0000000..34bdd41 --- /dev/null +++ b/admin20250319/src/api/modular/system/configManage.js @@ -0,0 +1,85 @@ +import { axios } from '@/utils/request' + +/** + * 分页查询配置列表 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigPage (parameter) { + return axios({ + url: '/sysConfig/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统参数配置 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigAdd (parameter) { + return axios({ + url: '/sysConfig/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统参数配置 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigEdit (parameter) { + return axios({ + url: '/sysConfig/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统参数配置 + * + * @author yubaoshan + * @date 2020/5/25 01:57 + */ +export function sysConfigDelete (parameter) { + return axios({ + url: '/sysConfig/delete', + method: 'post', + data: parameter + }) +} + +/** + * 获取字典类型下所有字典,举例,返回格式为:[{code:"M",value:"男"},{code:"F",value:"女"}] + * + * @author yubaoshan + * @date 2020/5/25 02:06 + */ +export function sysDictTypeDropDown (parameter) { + return axios({ + url: '/sysDictType/dropDown', + method: 'get', + params: parameter + }) +} + +/** + * 获取系统的所有任务列表 + * + * @author yubaoshan + * @date 2020/7/8 20:46 + */ +export function sysTimersGetActionClasses (parameter) { + return axios({ + url: '/sysTimers/getActionClasses', + method: 'get', + params: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/dictDataManage.js b/admin20250319/src/api/modular/system/dictDataManage.js new file mode 100644 index 0000000..7958dee --- /dev/null +++ b/admin20250319/src/api/modular/system/dictDataManage.js @@ -0,0 +1,73 @@ +import { + axios +} from '@/utils/request' + +/** + * 查询系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:24 + */ +export function sysDictDataPage(parameter) { + return axios({ + url: '/sysDictData/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:24 + */ +export function sysDictDataAdd(parameter) { + return axios({ + url: '/sysDictData/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:25 + */ +export function sysDictDataEdit(parameter) { + return axios({ + url: '/sysDictData/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统字典值 + * + * @author yubaoshan + * @date 2020/5/17 02:25 + */ +export function sysDictDataDelete(parameter) { + return axios({ + url: '/sysDictData/delete', + method: 'post', + data: parameter + }) +} + +/** + * 修改系统字典状态 + * + * @author xusn + * @date 2021-04-30 11:00:16 + */ +export function sysDictDataChangeStatus(parameter) { + return axios({ + url: '/sysDictData/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/dictManage.js b/admin20250319/src/api/modular/system/dictManage.js new file mode 100644 index 0000000..7569c5e --- /dev/null +++ b/admin20250319/src/api/modular/system/dictManage.js @@ -0,0 +1,101 @@ +import { + axios +} from '@/utils/request' + +/** + * 分页查询系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:46 + */ +export function sysDictTypePage(parameter) { + return axios({ + url: '/sysDictType/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:46 + */ +export function sysDictTypeAdd(parameter) { + return axios({ + url: '/sysDictType/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:50 + */ +export function sysDictTypeEdit(parameter) { + return axios({ + url: '/sysDictType/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统字典类型 + * + * @author yubaoshan + * @date 2020/5/17 01:50 + */ +export function sysDictTypeDelete(parameter) { + return axios({ + url: '/sysDictType/delete', + method: 'post', + data: parameter + }) +} + +/** + * 获取字典类型下所有字典,举例,返回格式为:[{code:"M",value:"男"},{code:"F",value:"女"}] + * + * @author yubaoshan + * @date 2020/6/10 00:10 + */ +export function sysDictTypeDropDown(parameter) { + return axios({ + url: '/sysDictType/dropDown', + method: 'get', + params: parameter + }) +} + +/** + * 获取所有字典,启动时加入缓存使用 + * + * @author yubaoshan + * @date 2020/6/10 00:10 + */ +export function sysDictTypeTree(parameter) { + return axios({ + url: '/sysDictType/tree', + method: 'get', + params: parameter + }) +} + +/** + * 修改系统字典状态 + * + * @author xusn + * @date 2021-04-30 11:00:16 + */ +export function sysDictTypeChangeStatus(parameter) { + return axios({ + url: '/sysDictType/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/emailManage.js b/admin20250319/src/api/modular/system/emailManage.js new file mode 100644 index 0000000..1321bcc --- /dev/null +++ b/admin20250319/src/api/modular/system/emailManage.js @@ -0,0 +1,29 @@ +import { axios } from '@/utils/request' + +/** + * 发送邮件 + * + * @author yubaoshan + * @date 2020/7/3 23:22 + */ +export function emailSendEmail (parameter) { + return axios({ + url: '/email/sendEmail', + method: 'post', + data: parameter + }) +} + +/** + * 发送html邮件 + * + * @author yubaoshan + * @date 2020/7/3 23:23 + */ +export function emailSendEmailHtml (parameter) { + return axios({ + url: '/email/sendEmailHtml', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/enumManage.js b/admin20250319/src/api/modular/system/enumManage.js new file mode 100644 index 0000000..dd48818 --- /dev/null +++ b/admin20250319/src/api/modular/system/enumManage.js @@ -0,0 +1,29 @@ +import { axios } from '@/utils/request' + +/** + * 根据枚举名称获取枚举数据,返回格式为:[{code:"M",value:"男"},{code:"F",value:"女"}] + * + * @author taoran + * @date 2021-04-16 21:13/sysEnumData/list/{enumName} + */ +export function sysEnumDataList (parameter) { + return axios({ + url: '/sysEnumData/list', + method: 'get', + params: parameter + }) +} + +/** + * 根据实体名和字段名获取枚举数据 + * + * @author taoran + * @date 2021-04-16 21:13 + */ +export function sysEnumDataListByField (parameter) { + return axios({ + url: '/sysEnumData/listByFiled', + method: 'get', + params: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/fileManage.js b/admin20250319/src/api/modular/system/fileManage.js new file mode 100644 index 0000000..389ccdb --- /dev/null +++ b/admin20250319/src/api/modular/system/fileManage.js @@ -0,0 +1,115 @@ +import { axios } from '@/utils/request' + +/** + * 分页查询文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoPage (parameter) { + return axios({ + url: '/sysFileInfo/page', + method: 'get', + params: parameter + }) +} + +/** + * 获取全部文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoList (parameter) { + return axios({ + url: '/sysFileInfo/list', + method: 'get', + params: parameter + }) +} + +/** + * 上传文件 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoUpload (parameter) { + return axios({ + url: '/sysFileInfo/upload', + method: 'post', + data: parameter + }) +} + +/** + * 下载文件 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoDownload (parameter) { + return axios({ + url: '/sysFileInfo/download', + method: 'get', + params: parameter, + responseType: 'blob' + }) +} + +/** + * 查看图片 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoPreview (parameter) { + return axios({ + url: '/sysFileInfo/preview', + method: 'get', + params: parameter, + responseType: 'arraybuffer' + }) +} + +/** + * 查看详情文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoDetail (parameter) { + return axios({ + url: '/sysFileInfo/detail', + method: 'get', + params: parameter + }) +} + +/** + * 删除文件信息表 + * + * @author yubaoshan + * @date 2020/6/30 00:20 + */ +export function sysFileInfoDelete (parameter) { + return axios({ + url: '/sysFileInfo/delete', + method: 'post', + data: parameter + }) +} + +/** + * 上传头像 + * + * @author zuohuaijun + * @date 2021/4/23 00:20 + */ +export function sysFileInfoUploadAvatar (parameter) { + return axios({ + url: '/sysFileInfo/uploadAvatar', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/logManage.js b/admin20250319/src/api/modular/system/logManage.js new file mode 100644 index 0000000..71d8478 --- /dev/null +++ b/admin20250319/src/api/modular/system/logManage.js @@ -0,0 +1,118 @@ +/* + * @Author: your name + * @Date: 2021-04-17 17:45:37 + * @LastEditTime: 2021-04-17 18:03:59 + * @LastEditors: your name + * @Description: In User Settings Edit + * @FilePath: \frontend\src\api\modular\system\logManage.js + */ +import { axios } from '@/utils/request' + +/** + * 查询访问日志 + * + * @author yubaoshan + * @date 2020/5/19 11:57 + */ +export function sysVisLogPage(parameter) { + return axios({ + url: '/sysVisLog/page', + method: 'get', + params: parameter + }) +} + +/** + * 查询操作日志 + * + * @author yubaoshan + * @date 2020/5/19 11:57 + */ +export function sysOpLogPage(parameter) { + return axios({ + url: '/sysOpLog/page', + method: 'get', + params: parameter + }) +} + +/** + * 查询异常日志 + * + * @author yubaoshan + * @date 2020/5/19 11:57 + */ +export function sysExLogPage(parameter) { + return axios({ + url: '/sysExLog/page', + method: 'get', + params: parameter + }) +} +/** + * 查询第三方日志 + * + * @author liuzl + * @date 2020/5/19 11:57 + */ +export function ThirdLogPage(parameter) { + return axios({ + url: '/thirdlog/list', + method: 'post', + data: parameter + }) +} +/** + * 清空访问日志 + * + * @author yubaoshan + * @date 2020/6/23 23:09 + */ +export function sysVisLogDelete(parameter) { + return axios({ + url: '/sysVisLog/delete', + method: 'post', + data: parameter + }) +} + +/** + * 清空登录日志 + * + * @author yubaoshan + * @date 2020/6/23 23:09 + */ +export function sysOpLogDelete(parameter) { + return axios({ + url: '/sysOpLog/delete', + method: 'post', + data: parameter + }) +} + +/** + * 清空异常日志 + * + * @author yubaoshan + * @date 2020/6/23 23:09 + */ +export function sysExLogDelete(parameter) { + return axios({ + url: '/sysExLog/delete', + method: 'post', + data: parameter + }) +} +/** + * 清空第三方日志 + * + * @author liuzl + * @date 2020/6/23 23:09 + */ +export function ThirdLogDelete(parameter) { + return axios({ + url: '/third/clear', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/loginManage.js b/admin20250319/src/api/modular/system/loginManage.js new file mode 100644 index 0000000..d7c921b --- /dev/null +++ b/admin20250319/src/api/modular/system/loginManage.js @@ -0,0 +1,145 @@ +/** + * 系统应用 + * + * @author yubaoshan + * @date 2020/5/26 19:06 + */ +import { axios } from '@/utils/request' + +/** + * 登录 + * + * @author yubaoshan + * @date 2020/5/26 19:06 + */ +export function login (parameter) { + return axios({ + url: '/login', + method: 'post', + data: parameter + }) +} + +/** + * 登出 + * + * @author yubaoshan + * @date 2020/5/26 19:07 + */ +export function logout (parameter) { + return axios({ + url: '/logout', + method: 'get', + params: parameter + }) +} + +/** + * 获取登录用户信息 + * + * @author yubaoshan + * @date 2020/5/26 19:08 + */ +export function getLoginUser (parameter) { + return axios({ + url: '/getLoginUser', + method: 'get', + params: parameter + }) +} + +/** + * 获取租户开关 + * + * @author yubaoshan + * @date 2020/9/5 1:24 + */ +export function getTenantOpen (parameter) { + return axios({ + url: '/getTenantOpen', + method: 'get', + params: parameter + }) +} + +/** + * 获取短信验证码 + * + * @author yubaoshan + * @date 2020/5/26 19:29 + */ +export function getSmsCaptcha (parameter) { + return axios({ + url: '/api/wxopen/sendcode', + method: 'get', + params: parameter + }) +} + +/** + * 扫码登录 + * + * @author liuzl + * @date 2020/5/26 19:29 + */ + export function WXLogin (parameter) { + return axios({ + url: '/business/wxlogin', + method: 'post', + data: parameter + }) +} +/** + * 获取微信扫码登录地址 + * + * @author liuzl + * @date 2020/5/26 19:29 + */ + export function WXLoginUrl (parameter) { + return axios({ + url: '/business/getwxloginurl', + method: 'post', + data: parameter + }) +} +/** + * 获取验证码开关 + * + * @author Jax + * @date 2021/1/22 00:00 + */ +export function getCaptchaOpen (parameter) { + return axios({ + url: '/getCaptchaOpen', + method: 'get', + params: parameter + }) +} + +/** + * 获取验证图片 以及token + * + * @author Jax + * @date 2021/1/22 00:00 + */ +export function reqGet(data) { + return axios({ + url: '/captcha/get', + method: 'post', + data + }) +} + +/** + * 滑动或者点选验证 + * + * @author Jax + * @date 2021/1/22 00:00 + */ +export function reqCheck(data) { + return axios({ + url: '/captcha/check', + method: 'post', + data + }) +} diff --git a/admin20250319/src/api/modular/system/machineManage.js b/admin20250319/src/api/modular/system/machineManage.js new file mode 100644 index 0000000..fb02013 --- /dev/null +++ b/admin20250319/src/api/modular/system/machineManage.js @@ -0,0 +1,32 @@ +import { + axios +} from '@/utils/request' + +/** + * + * 系统属性监控 + * + */ +export function sysMachineUse(parameter) { + return axios({ + url: '/sysMachine/use', + method: 'get', + params: parameter + }) +} + +export function sysMachineBase(parameter) { + return axios({ + url: '/sysMachine/base', + method: 'get', + params: parameter + }) +} + +export function sysMachineNetwork(parameter) { + return axios({ + url: '/sysMachine/network', + method: 'get', + params: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/menuManage.js b/admin20250319/src/api/modular/system/menuManage.js new file mode 100644 index 0000000..7ac62c4 --- /dev/null +++ b/admin20250319/src/api/modular/system/menuManage.js @@ -0,0 +1,114 @@ +import { axios } from '@/utils/request' + +/** + * 获取菜单列表 + * + * @author yubaoshan + * @param parameter + * @returns {*} + */ +export function getMenuList (parameter) { + return axios({ + url: '/sysMenu/list', + method: 'get', + params: parameter + }) +} + +/** + * 获取系统菜单树,用于新增,编辑时选择上级节点 + * + * @author yubaoshan + * @date 2020/4/23 12:22 + */ +export function getMenuTree (parameter) { + return axios({ + url: '/sysMenu/tree', + method: 'get', + params: parameter + }) +} + +/** + * 增加菜单 + * + * @author yubaoshan + * @date 2020/4/24 23:23 + */ +export function sysMenuAdd (parameter) { + return axios({ + url: '/sysMenu/add', + method: 'post', + data: parameter + }) +} + +/** + * 增加菜单 + * + * @author yubaoshan + * @date 2020/4/24 23:23 + */ +export function sysMenuDelete (parameter) { + return axios({ + url: '/sysMenu/delete', + method: 'post', + data: parameter + }) +} + +/** + * 查看菜单详情 + * + * @author yubaoshan + * @date 2020/4/25 01:11 + */ +export function sysMenuDetail (parameter) { + return axios({ + url: '/sysMenu/detail', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统菜单 + * + * @author yubaoshan + * @date 2020/4/25 01:11 + */ +export function sysMenuEdit (parameter) { + return axios({ + url: '/sysMenu/edit', + method: 'post', + data: parameter + }) +} + +/** + * 获取系统菜单树,用于给角色授权时选择 + * + * @author yubaoshan + * @date 2020/6/2 17:30 + */ +export function SysMenuTreeForGrant (parameter) { + return axios({ + url: '/sysMenu/treeForGrant', + method: 'get', + params: parameter + }) +} + +/** + * 根据系统切换菜单 + * + * @author yubaoshan + * @date 2020/6/28 15:25 + */ +export function sysMenuChange (parameter) { + return axios({ + url: '/sysMenu/change', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/noticeManage.js b/admin20250319/src/api/modular/system/noticeManage.js new file mode 100644 index 0000000..d4f7277 --- /dev/null +++ b/admin20250319/src/api/modular/system/noticeManage.js @@ -0,0 +1,85 @@ +import { axios } from '@/utils/request' + +/** + * 查询系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticePage (parameter) { + return axios({ + url: '/sysNotice/page', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeAdd (parameter) { + return axios({ + url: '/sysNotice/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeEdit (parameter) { + return axios({ + url: '/sysNotice/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统通知公告 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeDelete (parameter) { + return axios({ + url: '/sysNotice/delete', + method: 'post', + data: parameter + }) +} + +/** + * 通知公告详情 + * + * @author yubaoshan + * @date 2020/6/30 01:56 + */ +export function sysNoticeDetail (parameter) { + return axios({ + url: '/sysNotice/detail', + method: 'get', + params: parameter + }) +} + +/** + * 修改状态 + * + * @author yubaoshan + * @date 2020/7/30 02:23 + */ +export function sysNoticeChangeStatus (parameter) { + return axios({ + url: '/sysNotice/changeStatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/noticeReceivedManage.js b/admin20250319/src/api/modular/system/noticeReceivedManage.js new file mode 100644 index 0000000..d28174a --- /dev/null +++ b/admin20250319/src/api/modular/system/noticeReceivedManage.js @@ -0,0 +1,24 @@ +import { axios } from '@/utils/request' + +/** + * 查询我收到的系统通知公告 + * + * @author yubaoshan + * @date 2020/7/3 03:02 + */ +export function sysNoticeReceived (parameter) { + return axios({ + url: '/sysNotice/received', + method: 'get', + params: parameter + }) +} + +export function unReadNotice (parameter) { + return axios({ + url: '/sysNotice/unread', + method: 'get', + params: parameter + }) +} + diff --git a/admin20250319/src/api/modular/system/orgManage.js b/admin20250319/src/api/modular/system/orgManage.js new file mode 100644 index 0000000..6ad82f6 --- /dev/null +++ b/admin20250319/src/api/modular/system/orgManage.js @@ -0,0 +1,85 @@ +import { axios } from '@/utils/request' + +/** + * 获取机构树 + * + * @author yubaoshan + * @date 2020/4/26 12:08 + */ +export function getOrgTree (parameter) { + return axios({ + url: '/sysOrg/tree', + method: 'get', + params: parameter + }) +} + +/** + * 获取机构列表 + * + * @author yubaoshan + * @date 2020/5/11 12:59 + */ +export function getOrgList (parameter) { + return axios({ + url: '/sysOrg/list', + method: 'get', + params: parameter + }) +} + +/** + * 获取机构列表 + * + * @author yubaoshan + * @date 2020/5/11 16:17 + */ +export function getOrgPage (parameter) { + return axios({ + url: '/sysOrg/page', + method: 'get', + params: parameter + }) +} + +/** + * 新增机构 + * + * @author yubaoshan + * @date 2020/5/11 13:56 + */ +export function sysOrgAdd (parameter) { + return axios({ + url: '/sysOrg/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑机构 + * + * @author yubaoshan + * @date 2020/5/11 13:56 + */ +export function sysOrgEdit (parameter) { + return axios({ + url: '/sysOrg/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除机构 + * + * @author yubaoshan + * @date 2020/5/11 12:59 + */ +export function sysOrgDelete (parameter) { + return axios({ + url: '/sysOrg/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/posManage.js b/admin20250319/src/api/modular/system/posManage.js new file mode 100644 index 0000000..847cf61 --- /dev/null +++ b/admin20250319/src/api/modular/system/posManage.js @@ -0,0 +1,71 @@ +import { axios } from '@/utils/request' + +/** + * 查询系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosPage (parameter) { + return axios({ + url: '/sysPos/page', + method: 'get', + params: parameter + }) +} + +/** + * 系统职位列表 + * + * @author yubaoshan + * @date 2020/6/21 23:50 + */ +export function sysPosList (parameter) { + return axios({ + url: '/sysPos/list', + method: 'get', + params: parameter + }) +} + +/** + * 添加系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosAdd (parameter) { + return axios({ + url: '/sysPos/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosEdit (parameter) { + return axios({ + url: '/sysPos/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除系统职位 + * + * @author yubaoshan + * @date 2020/5/25 01:31 + */ +export function sysPosDelete (parameter) { + return axios({ + url: '/sysPos/delete', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/roleManage.js b/admin20250319/src/api/modular/system/roleManage.js new file mode 100644 index 0000000..40bb833 --- /dev/null +++ b/admin20250319/src/api/modular/system/roleManage.js @@ -0,0 +1,141 @@ +import { axios } from '@/utils/request' + +/** + * 获取角色列表 + * + * @author yubaoshan + * @date 2020/5/6 11:44 + */ +export function getRolePage (parameter) { + return axios({ + url: '/sysRole/page', + method: 'get', + params: parameter + }) +} + +/** + * 增加角色 + * + * @author yubaoshan + * @date 2020/5/6 11:44 + */ +export function sysRoleAdd (parameter) { + return axios({ + url: '/sysRole/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑角色 + * + * @author yubaoshan + * @date 2020/5/6 11:44 + */ +export function sysRoleEdit (parameter) { + return axios({ + url: '/sysRole/edit', + method: 'post', + data: parameter + }) +} + +/** + * 删除角色 + * + * @author yubaoshan + * @date 2020/5/6 17:51 + */ +export function sysRoleDelete (parameter) { + return axios({ + url: '/sysRole/delete', + method: 'post', + data: parameter + }) +} + +/** + * 删除角色 + * + * @author yubaoshan + * @date 2020/5/7 11:28 + */ +export function sysRoleDeteil (parameter) { + return axios({ + url: '/sysRole/detail', + method: 'get', + params: parameter + }) +} + +/** + * 获取授权角色列表 + * + * @author yubaoshan + * @date 2020/5/26 23:59 + */ +export function sysRoleDropDown (parameter) { + return axios({ + url: '/sysRole/dropDown', + method: 'get', + params: parameter + }) +} + +/** + * 拥有菜单 + * + * @author yubaoshan + * @date 2020/6/02 19:02 + */ +export function sysRoleOwnMenu (parameter) { + return axios({ + url: '/sysRole/ownMenu', + method: 'get', + params: parameter + }) +} + +/** + * 授权菜单 + * + * @author yubaoshan + * @date 2020/6/2 21:10 + */ +export function sysRoleGrantMenu (parameter) { + return axios({ + url: '/sysRole/grantMenu', + method: 'post', + data: parameter + }) +} + +/** + * 拥有数据 + * + * @author yubaoshan + * @date 2020/6/02 21:40 + */ +export function sysRoleOwnData (parameter) { + return axios({ + url: '/sysRole/ownData', + method: 'get', + params: parameter + }) +} + +/** + * 授权数据 + * + * @author yubaoshan + * @date 2020/6/2 21:50 + */ +export function sysRoleGrantData (parameter) { + return axios({ + url: '/sysRole/grantData', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/tenantManage.js b/admin20250319/src/api/modular/system/tenantManage.js new file mode 100644 index 0000000..611eca8 --- /dev/null +++ b/admin20250319/src/api/modular/system/tenantManage.js @@ -0,0 +1,118 @@ +/** + * 租户 + */ +import { + axios +} from '@/utils/request' + +/** + * 租户列表 + * + */ +export function sysTenantPage(parameter) { + return axios({ + url: '/sysTenant/page', + method: 'get', + params: parameter + }) +} + +/** + * 新增租户 + * + */ +export function sysTenantAdd(parameter) { + return axios({ + url: '/sysTenant/add', + method: 'post', + data: parameter + }) +} + +/** + * 删除租户 + * + */ +export function sysTenantDelete(parameter) { + return axios({ + url: '/sysTenant/delete', + method: 'post', + data: parameter + }) +} + +/** + * 编辑租户 + * + */ +export function sysTenantEdit(parameter) { + return axios({ + url: '/sysTenant/edit', + method: 'post', + data: parameter + }) +} + +/** + * 拥有菜单 + * + * @author zuohuaijun + * @date 2021/04/22 10:30 + */ +export function sysTenantOwnMenu (parameter) { + return axios({ + url: '/sysTenant/ownMenu', + method: 'get', + params: parameter + }) +} + +/** + * 授权菜单 + * + * @author zuohuaijun + * @date 2021/04/22 10:30 + */ +export function sysTenantGrantMenu (parameter) { + return axios({ + url: '/sysTenant/grantMenu', + method: 'post', + data: parameter + }) +} + +/** + * 重置密码 + * + * @author zuohuaijun + * @date 2021/04/22 11:00 + */ +export function sysTenantResetPwd (parameter) { + return axios({ + url: '/sysTenant/resetPwd', + method: 'post', + data: parameter + }) +} +/** + * 订单初始化 + * + */ + export function OrderInit (parameter) { + return axios({ + url: '/order/insertdefaultorder', + method: 'get', + params: parameter + }) +} +/** + * 标准初始化 + * + */ + export function StandInit (parameter) { + return axios({ + url: '/order/insertdefaultstand', + method: 'get', + params: parameter + }) +} diff --git a/admin20250319/src/api/modular/system/userManage.js b/admin20250319/src/api/modular/system/userManage.js new file mode 100644 index 0000000..4872d36 --- /dev/null +++ b/admin20250319/src/api/modular/system/userManage.js @@ -0,0 +1,286 @@ +import { axios } from '@/utils/request' + +/** + * 获取用户列表 + * + * @author yubaoshan + * @date 2020/4/26 12:08 + */ +export function getUserPage(parameter) { + return axios({ + url: '/sysUser/pagenew', + method: 'get', + params: parameter + }) +} + +/** + * 增加用户 + * + * @author yubaoshan + * @date 2020/5/5 02:08 + */ +export function sysUserAdd(parameter) { + return axios({ + url: '/sysUser/add', + method: 'post', + data: parameter + }) +} + +/** + * 编辑用户 + * + * @author yubaoshan + * @date 2020/5/5 02:08 + */ +export function sysUserEdit(parameter) { + return axios({ + url: '/sysUser/edit', + method: 'post', + data: parameter + }) +} + +/** + * 获取用户详情 + * + * @author yubaoshan + * @date 2020/5/5 19:55 + */ +export function sysUserDetail(parameter) { + return axios({ + url: '/sysUser/detail', + method: 'get', + params: parameter + }) +} + +/** + * 删除用户 + * + * @author yubaoshan + * @date 2020/5/7 19:31 + */ +export function sysUserDelete(parameter) { + return axios({ + url: '/sysUser/delete', + method: 'post', + data: parameter + }) +} + +/** + * 拥有角色 + * + * @author yubaoshan + * @date 2020/6/3 11:58 + */ +export function sysUserOwnRole(parameter) { + return axios({ + url: '/sysUser/ownRole', + method: 'get', + params: parameter + }) +} +// 用户拥有的VIP信息 +export function sysUserOwnVIP(parameter) { + return axios({ + url: '/sysUser/ownVIP', + method: 'post', + data: parameter + }) +} +// 用户拥有的企业信息 +export function sysUserOwnCom(parameter) { + return axios({ + url: '/sysUser/owncom', + method: 'post', + data: parameter + }) +} +// 用户拥有的企业信息提交 +export function sysUserSubmitCom(parameter) { + return axios({ + url: '/sysUser/submitCom', + method: 'post', + data: parameter + }) +} +/** + * 授权角色 + * + * @author yubaoshan + * @date 2020/5/26 23:59 + */ +export function sysUserGrantRole(parameter) { + return axios({ + url: '/sysUser/grantRole', + method: 'post', + data: parameter + }) +} +// 授权VIP +export function sysUserGrantVIP(parameter) { + return axios({ + url: '/sysUser/grantvip', + method: 'post', + data: parameter + }) +} +/** + * 拥有数据 + * + * @author yubaoshan + * @date 2020/6/2 23:14 + */ +export function sysUserOwnData(parameter) { + return axios({ + url: '/sysUser/ownData', + method: 'get', + params: parameter + }) +} + +/** + * 授权数据 + * + * @author yubaoshan + * @date 2020/6/2 23:15 + */ +export function sysUserGrantData(parameter) { + return axios({ + url: '/sysUser/grantData', + method: 'post', + data: parameter + }) +} + +/** + * 修改状态 + * + * @author yubaoshan + * @date 2020/6/23 21:36 + */ +export function sysUserChangeStatus(parameter) { + return axios({ + url: '/sysUser/changeStatus', + method: 'post', + data: parameter + }) +} + +/** + * 重置密码 + * + * @author yubaoshan + * @date 2020/6/23 22:04 + */ +export function sysUserResetPwd(parameter) { + return axios({ + url: '/sysUser/resetPwd', + method: 'post', + data: parameter + }) +} + +/** + * 修改密码 + * + * @author yubaoshan + * @date 2020/6/25 00:25 + */ +export function sysUserUpdatePwd(parameter) { + return axios({ + url: '/sysUser/updatePwd', + method: 'post', + data: parameter + }) +} + +/** + * 用户选择器 + * + * @author yubaoshan + * @date 2020/6/25 00:25 + */ +export function sysUserSelector(parameter) { + return axios({ + url: '/sysUser/selector', + method: 'get', + params: parameter + }) +} + +/** + * 修改头像 + * + * @author yubaoshan + * @date 2020/9/20 2:21 + */ +export function sysUserUpdateAvatar(parameter) { + return axios({ + url: '/sysUser/updateAvatar', + method: 'post', + data: parameter + }) +} + +/** + * 更新基本信息 + * + * @author yubaoshan + * @date 2020/9/20 03:12 + */ +export function sysUserUpdateInfo(parameter) { + return axios({ + url: '/sysUser/updateInfo', + method: 'post', + data: parameter + }) +} + +/** + * 导出用户信息 + * + * @author zuohuaijun + * @date 2021/4/20 01:00 + */ +export function sysUserExport(parameter) { + return axios({ + url: '/sysUser/export', + method: 'get', + data: parameter, + responseType: 'blob' + }) +} + +/** + * 导入用户信息 + * + * @author zuohuaijun + * @date 2021/4/20 01:00 + */ +export function sysUserImport(parameter) { + return axios({ + url: '/sysUser/import', + method: 'post', + data: parameter + }) +} +// 获取用户入会申请列表 +export function getUserSupplyForList(parameter) { + return axios({ + url: '/sysUser/supplyformembershiplist', + method: 'post', + data: parameter + }) +} +// 入会状态修改 +export function SupplyForStatus(parameter) { + return axios({ + url: '/sysUser/supplyformembershipstatus', + method: 'post', + data: parameter + }) +} diff --git a/admin20250319/src/assets/icons/bx-analyse.svg b/admin20250319/src/assets/icons/bx-analyse.svg new file mode 100644 index 0000000..b02a8d6 --- /dev/null +++ b/admin20250319/src/assets/icons/bx-analyse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin20250319/src/assets/logo.png b/admin20250319/src/assets/logo.png new file mode 100644 index 0000000..77c7a18 Binary files /dev/null and b/admin20250319/src/assets/logo.png differ diff --git a/admin20250319/src/assets/logo.svg b/admin20250319/src/assets/logo.svg new file mode 100644 index 0000000..581d3f9 --- /dev/null +++ b/admin20250319/src/assets/logo.svg @@ -0,0 +1,620 @@ + + + + diff --git a/admin20250319/src/assets/notice.png b/admin20250319/src/assets/notice.png new file mode 100644 index 0000000..b713953 Binary files /dev/null and b/admin20250319/src/assets/notice.png differ diff --git a/admin20250319/src/assets/template/importtpl.csv b/admin20250319/src/assets/template/importtpl.csv new file mode 100644 index 0000000..0469830 --- /dev/null +++ b/admin20250319/src/assets/template/importtpl.csv @@ -0,0 +1 @@ +code \ No newline at end of file diff --git a/admin20250319/src/assets/welcome.png b/admin20250319/src/assets/welcome.png new file mode 100644 index 0000000..94abec2 Binary files /dev/null and b/admin20250319/src/assets/welcome.png differ diff --git a/admin20250319/src/components/ArticleListContent/ArticleListContent.vue b/admin20250319/src/components/ArticleListContent/ArticleListContent.vue new file mode 100644 index 0000000..8f39978 --- /dev/null +++ b/admin20250319/src/components/ArticleListContent/ArticleListContent.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/admin20250319/src/components/ArticleListContent/index.js b/admin20250319/src/components/ArticleListContent/index.js new file mode 100644 index 0000000..37d35c7 --- /dev/null +++ b/admin20250319/src/components/ArticleListContent/index.js @@ -0,0 +1,3 @@ +import ArticleListContent from './ArticleListContent' + +export default ArticleListContent diff --git a/admin20250319/src/components/AvatarList/Item.vue b/admin20250319/src/components/AvatarList/Item.vue new file mode 100644 index 0000000..26e149e --- /dev/null +++ b/admin20250319/src/components/AvatarList/Item.vue @@ -0,0 +1,46 @@ + + + diff --git a/admin20250319/src/components/AvatarList/List.vue b/admin20250319/src/components/AvatarList/List.vue new file mode 100644 index 0000000..446ceeb --- /dev/null +++ b/admin20250319/src/components/AvatarList/List.vue @@ -0,0 +1,99 @@ + + + diff --git a/admin20250319/src/components/AvatarList/index.js b/admin20250319/src/components/AvatarList/index.js new file mode 100644 index 0000000..dd6bb8b --- /dev/null +++ b/admin20250319/src/components/AvatarList/index.js @@ -0,0 +1,4 @@ +import AvatarList from './List' +import './index.less' + +export default AvatarList diff --git a/admin20250319/src/components/AvatarList/index.less b/admin20250319/src/components/AvatarList/index.less new file mode 100644 index 0000000..9ce073f --- /dev/null +++ b/admin20250319/src/components/AvatarList/index.less @@ -0,0 +1,60 @@ +@import "../index"; + +@avatar-list-prefix-cls: ~"@{ant-pro-prefix}-avatar-list"; +@avatar-list-item-prefix-cls: ~"@{ant-pro-prefix}-avatar-list-item"; + +.@{avatar-list-prefix-cls} { + display: inline-block; + + ul { + list-style: none; + display: inline-block; + padding: 0; + margin: 0 0 0 8px; + font-size: 0; + } +} + +.@{avatar-list-item-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + margin-left: -8px; + width: @avatar-size-base; + height: @avatar-size-base; + + :global { + .ant-avatar { + border: 1px solid #fff; + cursor: pointer; + } + } + + &.large { + width: @avatar-size-lg; + height: @avatar-size-lg; + } + + &.small { + width: @avatar-size-sm; + height: @avatar-size-sm; + } + + &.mini { + width: 20px; + height: 20px; + + :global { + .ant-avatar { + width: 20px; + height: 20px; + line-height: 20px; + + .ant-avatar-string { + font-size: 12px; + line-height: 18px; + } + } + } + } +} + diff --git a/admin20250319/src/components/AvatarList/index.md b/admin20250319/src/components/AvatarList/index.md new file mode 100644 index 0000000..dc9c092 --- /dev/null +++ b/admin20250319/src/components/AvatarList/index.md @@ -0,0 +1,64 @@ +# AvatarList 用户头像列表 + + +一组用户头像,常用在项目/团队成员列表。可通过设置 `size` 属性来指定头像大小。 + + + +引用方式: + +```javascript +import AvatarList from '@/components/AvatarList' +const AvatarListItem = AvatarList.AvatarItem + +export default { + components: { + AvatarList, + AvatarListItem + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + + + + + +``` +或 +```html + + + + + + + + + +``` + + + +## API + +### AvatarList + +| 参数 | 说明 | 类型 | 默认值 | +| ---------------- | -------- | ---------------------------------- | --------- | +| size | 头像大小 | `large`、`small` 、`mini`, `default` | `default` | +| maxLength | 要显示的最大项目 | number | - | +| excessItemsStyle | 多余的项目风格 | CSSProperties | - | + +### AvatarList.Item + +| 参数 | 说明 | 类型 | 默认值 | +| ---- | ------ | --------- | --- | +| tips | 头像展示文案 | string | - | +| src | 头像图片连接 | string | - | + diff --git a/admin20250319/src/components/Charts/Bar.vue b/admin20250319/src/components/Charts/Bar.vue new file mode 100644 index 0000000..2a2758c --- /dev/null +++ b/admin20250319/src/components/Charts/Bar.vue @@ -0,0 +1,62 @@ + + + diff --git a/admin20250319/src/components/Charts/ChartCard.vue b/admin20250319/src/components/Charts/ChartCard.vue new file mode 100644 index 0000000..d3698e6 --- /dev/null +++ b/admin20250319/src/components/Charts/ChartCard.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/admin20250319/src/components/Charts/Liquid.vue b/admin20250319/src/components/Charts/Liquid.vue new file mode 100644 index 0000000..4019fb1 --- /dev/null +++ b/admin20250319/src/components/Charts/Liquid.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/admin20250319/src/components/Charts/MiniProgress.vue b/admin20250319/src/components/Charts/MiniProgress.vue new file mode 100644 index 0000000..e691363 --- /dev/null +++ b/admin20250319/src/components/Charts/MiniProgress.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/admin20250319/src/components/Charts/MiniSmoothArea.vue b/admin20250319/src/components/Charts/MiniSmoothArea.vue new file mode 100644 index 0000000..e5455c2 --- /dev/null +++ b/admin20250319/src/components/Charts/MiniSmoothArea.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/admin20250319/src/components/Charts/Radar.vue b/admin20250319/src/components/Charts/Radar.vue new file mode 100644 index 0000000..5ee88ad --- /dev/null +++ b/admin20250319/src/components/Charts/Radar.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/admin20250319/src/components/Charts/RankList.vue b/admin20250319/src/components/Charts/RankList.vue new file mode 100644 index 0000000..afb56a1 --- /dev/null +++ b/admin20250319/src/components/Charts/RankList.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/admin20250319/src/components/Charts/TransferBar.vue b/admin20250319/src/components/Charts/TransferBar.vue new file mode 100644 index 0000000..7f96f0b --- /dev/null +++ b/admin20250319/src/components/Charts/TransferBar.vue @@ -0,0 +1,64 @@ + + + diff --git a/admin20250319/src/components/Charts/Trend.vue b/admin20250319/src/components/Charts/Trend.vue new file mode 100644 index 0000000..2dce37e --- /dev/null +++ b/admin20250319/src/components/Charts/Trend.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/admin20250319/src/components/Charts/chart.less b/admin20250319/src/components/Charts/chart.less new file mode 100644 index 0000000..e04fa09 --- /dev/null +++ b/admin20250319/src/components/Charts/chart.less @@ -0,0 +1,13 @@ +.antv-chart-mini { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + +/* margin: 0 -5px; + overflow: hidden;*/ + } +} \ No newline at end of file diff --git a/admin20250319/src/components/Charts/smooth.area.less b/admin20250319/src/components/Charts/smooth.area.less new file mode 100644 index 0000000..eabdb75 --- /dev/null +++ b/admin20250319/src/components/Charts/smooth.area.less @@ -0,0 +1,14 @@ +@import "../index"; + +@smoothArea-prefix-cls: ~"@{ant-pro-prefix}-smooth-area"; + +.@{smoothArea-prefix-cls} { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + } +} \ No newline at end of file diff --git a/admin20250319/src/components/CountDown/CountDown.vue b/admin20250319/src/components/CountDown/CountDown.vue new file mode 100644 index 0000000..575dd4a --- /dev/null +++ b/admin20250319/src/components/CountDown/CountDown.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/admin20250319/src/components/CountDown/index.js b/admin20250319/src/components/CountDown/index.js new file mode 100644 index 0000000..35e954f --- /dev/null +++ b/admin20250319/src/components/CountDown/index.js @@ -0,0 +1,3 @@ +import CountDown from './CountDown' + +export default CountDown diff --git a/admin20250319/src/components/CountDown/index.md b/admin20250319/src/components/CountDown/index.md new file mode 100644 index 0000000..fd46809 --- /dev/null +++ b/admin20250319/src/components/CountDown/index.md @@ -0,0 +1,34 @@ +# CountDown 倒计时 + +倒计时组件。 + + + +引用方式: + +```javascript +import CountDown from '@/components/CountDown/CountDown' + +export default { + components: { + CountDown + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + +``` + + + +## API + +| 参数 | 说明 | 类型 | 默认值 | +|----------|------------------------------------------|-------------|-------| +| target | 目标时间 | Date | - | +| onEnd | 倒计时结束回调 | funtion | -| diff --git a/admin20250319/src/components/DepartmentSelect/DepartmentSelect.vue b/admin20250319/src/components/DepartmentSelect/DepartmentSelect.vue new file mode 100644 index 0000000..5203efd --- /dev/null +++ b/admin20250319/src/components/DepartmentSelect/DepartmentSelect.vue @@ -0,0 +1,48 @@ + + diff --git a/admin20250319/src/components/DepartmentSelect/index.js b/admin20250319/src/components/DepartmentSelect/index.js new file mode 100644 index 0000000..68ac87d --- /dev/null +++ b/admin20250319/src/components/DepartmentSelect/index.js @@ -0,0 +1,3 @@ +import DepartmentSelect from './DepartmentSelect' + +export default DepartmentSelect diff --git a/admin20250319/src/components/DescriptionList/DescriptionList.vue b/admin20250319/src/components/DescriptionList/DescriptionList.vue new file mode 100644 index 0000000..7f98fec --- /dev/null +++ b/admin20250319/src/components/DescriptionList/DescriptionList.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/admin20250319/src/components/DescriptionList/index.js b/admin20250319/src/components/DescriptionList/index.js new file mode 100644 index 0000000..7aed83d --- /dev/null +++ b/admin20250319/src/components/DescriptionList/index.js @@ -0,0 +1,2 @@ +import DescriptionList from './DescriptionList' +export default DescriptionList diff --git a/admin20250319/src/components/Dialog.js b/admin20250319/src/components/Dialog.js new file mode 100644 index 0000000..78e95b2 --- /dev/null +++ b/admin20250319/src/components/Dialog.js @@ -0,0 +1,113 @@ +import Modal from 'ant-design-vue/es/modal' +export default (Vue) => { + function dialog (component, componentProps, modalProps) { + const _vm = this + modalProps = modalProps || {} + if (!_vm || !_vm._isVue) { + return + } + let dialogDiv = document.querySelector('body>div[type=dialog]') + if (!dialogDiv) { + dialogDiv = document.createElement('div') + dialogDiv.setAttribute('type', 'dialog') + document.body.appendChild(dialogDiv) + } + + const handle = function (checkFunction, afterHandel) { + if (checkFunction instanceof Function) { + const res = checkFunction() + if (res instanceof Promise) { + res.then(c => { + c && afterHandel() + }) + } else { + res && afterHandel() + } + } else { + // checkFunction && afterHandel() + checkFunction || afterHandel() + } + } + + const dialogInstance = new Vue({ + data () { + return { + visible: true + } + }, + router: _vm.$router, + store: _vm.$store, + mounted () { + this.$on('close', (v) => { + this.handleClose() + }) + }, + methods: { + handleClose () { + handle(this.$refs._component.onCancel, () => { + this.visible = false + this.$refs._component.$emit('close') + this.$refs._component.$emit('cancel') + dialogInstance.$destroy() + }) + }, + handleOk () { + handle(this.$refs._component.onOK || this.$refs._component.onOk, () => { + this.visible = false + this.$refs._component.$emit('close') + this.$refs._component.$emit('ok') + dialogInstance.$destroy() + }) + } + }, + render: function (h) { + const that = this + const modalModel = modalProps && modalProps.model + if (modalModel) { + delete modalProps.model + } + const ModalProps = Object.assign({}, modalModel && { model: modalModel } || {}, { + attrs: Object.assign({}, { + ...(modalProps.attrs || modalProps) + }, { + visible: this.visible + }), + on: Object.assign({}, { + ...(modalProps.on || modalProps) + }, { + ok: () => { + that.handleOk() + }, + cancel: () => { + that.handleClose() + } + }) + }) + + const componentModel = componentProps && componentProps.model + if (componentModel) { + delete componentProps.model + } + const ComponentProps = Object.assign({}, componentModel && { model: componentModel } || {}, { + ref: '_component', + attrs: Object.assign({}, { + ...((componentProps && componentProps.attrs) || componentProps) + }), + on: Object.assign({}, { + ...((componentProps && componentProps.on) || componentProps) + }) + }) + + return h(Modal, ModalProps, [h(component, ComponentProps)]) + } + }).$mount(dialogDiv) + } + + Object.defineProperty(Vue.prototype, '$dialog', { + get: () => { + return function () { + dialog.apply(this, arguments) + } + } + }) +} diff --git a/admin20250319/src/components/Editor/QuillEditor.vue b/admin20250319/src/components/Editor/QuillEditor.vue new file mode 100644 index 0000000..13524cd --- /dev/null +++ b/admin20250319/src/components/Editor/QuillEditor.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/admin20250319/src/components/Editor/WangEditor.vue b/admin20250319/src/components/Editor/WangEditor.vue new file mode 100644 index 0000000..fbc0ffd --- /dev/null +++ b/admin20250319/src/components/Editor/WangEditor.vue @@ -0,0 +1,130 @@ + + + + diff --git a/admin20250319/src/components/Editor/WangEditorV5.vue b/admin20250319/src/components/Editor/WangEditorV5.vue new file mode 100644 index 0000000..5a06628 --- /dev/null +++ b/admin20250319/src/components/Editor/WangEditorV5.vue @@ -0,0 +1,167 @@ + + + + diff --git a/admin20250319/src/components/Ellipsis/Ellipsis.vue b/admin20250319/src/components/Ellipsis/Ellipsis.vue new file mode 100644 index 0000000..5d59200 --- /dev/null +++ b/admin20250319/src/components/Ellipsis/Ellipsis.vue @@ -0,0 +1,64 @@ + diff --git a/admin20250319/src/components/Ellipsis/index.js b/admin20250319/src/components/Ellipsis/index.js new file mode 100644 index 0000000..91e3ff4 --- /dev/null +++ b/admin20250319/src/components/Ellipsis/index.js @@ -0,0 +1,3 @@ +import Ellipsis from './Ellipsis' + +export default Ellipsis diff --git a/admin20250319/src/components/Ellipsis/index.md b/admin20250319/src/components/Ellipsis/index.md new file mode 100644 index 0000000..f528ac7 --- /dev/null +++ b/admin20250319/src/components/Ellipsis/index.md @@ -0,0 +1,38 @@ +# Ellipsis 文本自动省略号 + +文本过长自动处理省略号,支持按照文本长度和最大行数两种方式截取。 + + + +引用方式: + +```javascript +import Ellipsis from '@/components/Ellipsis' + +export default { + components: { + Ellipsis + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + + There were injuries alleged in three cases in 2015, and a + fourth incident in September, according to the safety recall report. After meeting with US regulators in October, the firm decided to issue a voluntary recall. + +``` + + + +## API + + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +tooltip | 移动到文本展示完整内容的提示 | boolean | - +length | 在按照长度截取下的文本最大字符数,超过则截取省略 | number | - \ No newline at end of file diff --git a/admin20250319/src/components/Exception/ExceptionPage.vue b/admin20250319/src/components/Exception/ExceptionPage.vue new file mode 100644 index 0000000..832896c --- /dev/null +++ b/admin20250319/src/components/Exception/ExceptionPage.vue @@ -0,0 +1,130 @@ + + + + diff --git a/admin20250319/src/components/Exception/index.js b/admin20250319/src/components/Exception/index.js new file mode 100644 index 0000000..dda91be --- /dev/null +++ b/admin20250319/src/components/Exception/index.js @@ -0,0 +1,2 @@ +import ExceptionPage from './ExceptionPage.vue' +export default ExceptionPage diff --git a/admin20250319/src/components/Exception/type.js b/admin20250319/src/components/Exception/type.js new file mode 100644 index 0000000..8158f0f --- /dev/null +++ b/admin20250319/src/components/Exception/type.js @@ -0,0 +1,19 @@ +const types = { + 403: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg', + title: '403', + desc: '抱歉,你无权访问该页面' + }, + 404: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg', + title: '404', + desc: '抱歉,你访问的页面不存在或仍在开发中' + }, + 500: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg', + title: '500', + desc: '抱歉,服务器出错了' + } +} + +export default types diff --git a/admin20250319/src/components/FooterToolbar/FooterToolBar.vue b/admin20250319/src/components/FooterToolbar/FooterToolBar.vue new file mode 100644 index 0000000..f4056dc --- /dev/null +++ b/admin20250319/src/components/FooterToolbar/FooterToolBar.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/admin20250319/src/components/FooterToolbar/index.js b/admin20250319/src/components/FooterToolbar/index.js new file mode 100644 index 0000000..a0bf145 --- /dev/null +++ b/admin20250319/src/components/FooterToolbar/index.js @@ -0,0 +1,4 @@ +import FooterToolBar from './FooterToolBar' +import './index.less' + +export default FooterToolBar diff --git a/admin20250319/src/components/FooterToolbar/index.less b/admin20250319/src/components/FooterToolbar/index.less new file mode 100644 index 0000000..f56273f --- /dev/null +++ b/admin20250319/src/components/FooterToolbar/index.less @@ -0,0 +1,23 @@ +@import "../index"; + +@footer-toolbar-prefix-cls: ~"@{ant-pro-prefix}-footer-toolbar"; + +.@{footer-toolbar-prefix-cls} { + position: fixed; + width: 100%; + bottom: 0; + right: 0; + height: 56px; + line-height: 56px; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03); + background: #fff; + border-top: 1px solid #e8e8e8; + padding: 0 24px; + z-index: 9; + + &:after { + content: ""; + display: block; + clear: both; + } +} \ No newline at end of file diff --git a/admin20250319/src/components/FooterToolbar/index.md b/admin20250319/src/components/FooterToolbar/index.md new file mode 100644 index 0000000..c1aec2c --- /dev/null +++ b/admin20250319/src/components/FooterToolbar/index.md @@ -0,0 +1,48 @@ +# FooterToolbar 底部工具栏 + +固定在底部的工具栏。 + + + +## 何时使用 + +固定在内容区域的底部,不随滚动条移动,常用于长页面的数据搜集和提交工作。 + + + +引用方式: + +```javascript +import FooterToolBar from '@/components/FooterToolbar' + +export default { + components: { + FooterToolBar + } +} +``` + + + +## 代码演示 + +```html + + 提交 + +``` +或 +```html + + 提交 + +``` + + +## API + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +children (slot) | 工具栏内容,向右对齐 | - | - +extra | 额外信息,向左对齐 | String, Object | - + diff --git a/admin20250319/src/components/GlobalFooter/GlobalFooter.vue b/admin20250319/src/components/GlobalFooter/GlobalFooter.vue new file mode 100644 index 0000000..75ef411 --- /dev/null +++ b/admin20250319/src/components/GlobalFooter/GlobalFooter.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/admin20250319/src/components/GlobalFooter/index.js b/admin20250319/src/components/GlobalFooter/index.js new file mode 100644 index 0000000..832e0bd --- /dev/null +++ b/admin20250319/src/components/GlobalFooter/index.js @@ -0,0 +1,2 @@ +import GlobalFooter from './GlobalFooter' +export default GlobalFooter diff --git a/admin20250319/src/components/GlobalHeader/GlobalHeader.vue b/admin20250319/src/components/GlobalHeader/GlobalHeader.vue new file mode 100644 index 0000000..bccb7f8 --- /dev/null +++ b/admin20250319/src/components/GlobalHeader/GlobalHeader.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/admin20250319/src/components/GlobalHeader/index.js b/admin20250319/src/components/GlobalHeader/index.js new file mode 100644 index 0000000..0807c87 --- /dev/null +++ b/admin20250319/src/components/GlobalHeader/index.js @@ -0,0 +1,2 @@ +import GlobalHeader from './GlobalHeader' +export default GlobalHeader diff --git a/admin20250319/src/components/IconSelector/IconSelector.vue b/admin20250319/src/components/IconSelector/IconSelector.vue new file mode 100644 index 0000000..810d297 --- /dev/null +++ b/admin20250319/src/components/IconSelector/IconSelector.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/admin20250319/src/components/IconSelector/README.md b/admin20250319/src/components/IconSelector/README.md new file mode 100644 index 0000000..49e25b8 --- /dev/null +++ b/admin20250319/src/components/IconSelector/README.md @@ -0,0 +1,47 @@ +IconSelector +==== + +> 图标选择组件,常用于为某一个数据设定一个图标时使用 +> eg: 设定菜单列表时,为每个菜单设定一个图标 + +该组件由 [@Saraka](https://github.com/saraka-tsukai) 封装 + + + +### 使用方式 + +```vue + + + +``` + + + +### 事件 + + +| 名称 | 说明 | 类型 | 默认值 | +| ------ | -------------------------- | ------ | ------ | +| change | 当改变了 `icon` 选中项触发 | String | - | diff --git a/admin20250319/src/components/IconSelector/icons.js b/admin20250319/src/components/IconSelector/icons.js new file mode 100644 index 0000000..2afc40a --- /dev/null +++ b/admin20250319/src/components/IconSelector/icons.js @@ -0,0 +1,36 @@ +/** + * 增加新的图标时,请遵循以下数据结构 + * Adding new icon please follow the data structure below + */ +export default [ + { + key: 'directional', + title: '方向性图标', + icons: ['step-backward', 'step-forward', 'fast-backward', 'fast-forward', 'shrink', 'arrows-alt', 'down', 'up', 'left', 'right', 'caret-up', 'caret-down', 'caret-left', 'caret-right', 'up-circle', 'down-circle', 'left-circle', 'right-circle', 'double-right', 'double-left', 'vertical-left', 'vertical-right', 'forward', 'backward', 'rollback', 'enter', 'retweet', 'swap', 'swap-left', 'swap-right', 'arrow-up', 'arrow-down', 'arrow-left', 'arrow-right', 'play-circle', 'up-square', 'down-square', 'left-square', 'right-square', 'login', 'logout', 'menu-fold', 'menu-unfold', 'border-bottom', 'border-horizontal', 'border-inner', 'border-left', 'border-right', 'border-top', 'border-verticle', 'pic-center', 'pic-left', 'pic-right', 'radius-bottomleft', 'radius-bottomright', 'radius-upleft', 'fullscreen', 'fullscreen-exit'] + }, + { + key: 'suggested', + title: '提示建议性图标', + icons: ['question', 'question-circle', 'plus', 'plus-circle', 'pause', 'pause-circle', 'minus', 'minus-circle', 'plus-square', 'minus-square', 'info', 'info-circle', 'exclamation', 'exclamation-circle', 'close', 'close-circle', 'close-square', 'check', 'check-circle', 'check-square', 'clock-circle', 'warning', 'issues-close', 'stop'] + }, + { + key: 'editor', + title: '编辑类图标', + icons: ['edit', 'form.vue', 'copy', 'scissor', 'delete', 'snippets', 'diff', 'highlight', 'align-center', 'align-left', 'align-right', 'bg-colors', 'bold', 'italic', 'underline', 'strikethrough', 'redo', 'undo', 'zoom-in', 'zoom-out', 'font-colors', 'font-size', 'line-height', 'column-height', 'dash', 'small-dash', 'sort-ascending', 'sort-descending', 'drag', 'ordered-list', 'radius-setting'] + }, + { + key: 'data', + title: '数据类图标', + icons: ['area-chart', 'pie-chart', 'bar-chart', 'dot-chart', 'line-chart', 'radar-chart', 'heat-map', 'fall', 'rise', 'stock', 'box-plot', 'fund', 'sliders'] + }, + { + key: 'brand_logo', + title: '网站通用图标', + icons: ['lock', 'unlock', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'ellipsis', 'file', 'file-text', 'file-unknown', 'file-pdf', 'file-word', 'file-excel', 'file-jpg', 'file-ppt', 'file-markdown', 'file-add', 'folder', 'folder-open', 'folder-add', 'hdd', 'frown', 'meh', 'smile', 'inbox', 'laptop', 'appstore', 'link', 'mail', 'mobile', 'notification', 'paper-clip', 'picture', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'home', 'loading', 'loading-3-quarters', 'cloud-upload', 'star', 'heart', 'environment', 'eye', 'camera', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customer-service', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'calculator', 'pushpin', 'bulb', 'select', 'switcher', 'rocket', 'bell', 'disconnect', 'database', 'compass', 'barcode', 'hourglass', 'key', 'flag', 'layout', 'printer', 'sound', 'usb', 'skin', 'tool', 'sync', 'wifi', 'car', 'schedule', 'user-add', 'user-delete', 'usergroup-add', 'usergroup-delete', 'man', 'woman', 'shop', 'gift', 'idcard', 'medicine-box', 'red-envelope', 'coffee', 'copyright', 'trademark', 'safety', 'wallet', 'bank', 'trophy', 'contacts', 'global', 'shake', 'api', 'fork', 'dashboard', 'table', 'profile', 'alert', 'audit', 'branches', 'build', 'border', 'crown', 'experiment', 'fire', 'money-collect', 'property-safety', 'read', 'reconciliation', 'rest', 'security-scan', 'insurance', 'interaction', 'safety-certificate', 'project', 'thunderbolt', 'block', 'cluster', 'deployment-unit', 'dollar', 'euro', 'pound', 'file-done', 'file-exclamation', 'file-protect', 'file-search', 'file-sync', 'gateway', 'gold', 'robot', 'shopping'] + }, + { + key: 'application', + title: '品牌和标识', + icons: ['android', 'apple', 'windows', 'ie', 'chrome', 'github', 'aliwangwang', 'dingding', 'weibo-square', 'weibo-circle', 'taobao-circle', 'html5', 'weibo', 'twitter', 'wechat', 'youtube', 'alipay-circle', 'taobao', 'skype', 'qq', 'medium-workmark', 'gitlab', 'medium', 'linkedin', 'google-plus', 'dropbox', 'facebook', 'codepen', 'code-sandbox', 'amazon', 'google', 'codepen-circle', 'alipay', 'ant-design', 'aliyun', 'zhihu', 'slack', 'slack-square', 'behance', 'behance-square', 'dribbble', 'dribbble-square', 'instagram', 'yuque', 'alibaba', 'yahoo'] + } +] diff --git a/admin20250319/src/components/IconSelector/index.js b/admin20250319/src/components/IconSelector/index.js new file mode 100644 index 0000000..2d27d70 --- /dev/null +++ b/admin20250319/src/components/IconSelector/index.js @@ -0,0 +1,2 @@ +import IconSelector from './IconSelector' +export default IconSelector diff --git a/admin20250319/src/components/Menu/SideMenu.vue b/admin20250319/src/components/Menu/SideMenu.vue new file mode 100644 index 0000000..a926ff8 --- /dev/null +++ b/admin20250319/src/components/Menu/SideMenu.vue @@ -0,0 +1,66 @@ + + + diff --git a/admin20250319/src/components/Menu/index.js b/admin20250319/src/components/Menu/index.js new file mode 100644 index 0000000..4348509 --- /dev/null +++ b/admin20250319/src/components/Menu/index.js @@ -0,0 +1,2 @@ +import SMenu from './menu' +export default SMenu diff --git a/admin20250319/src/components/Menu/menu.js b/admin20250319/src/components/Menu/menu.js new file mode 100644 index 0000000..2b3f7a2 --- /dev/null +++ b/admin20250319/src/components/Menu/menu.js @@ -0,0 +1,177 @@ +import Menu from 'ant-design-vue/es/menu' +import Icon from 'ant-design-vue/es/icon' + +export default { + name: 'SMenu', + props: { + menu: { + type: Array, + required: true + }, + theme: { + type: String, + required: false, + default: 'dark' + }, + mode: { + type: String, + required: false, + default: 'inline' + }, + collapsed: { + type: Boolean, + required: false, + default: false + } + }, + data () { + return { + openKeys: [], + selectedKeys: [], + cachedOpenKeys: [] + } + }, + computed: { + rootSubmenuKeys: vm => { + const keys = [] + vm.menu.forEach(item => keys.push(item.path)) + return keys + } + }, + mounted () { + this.updateMenu() + }, + watch: { + collapsed (val) { + if (val) { + this.cachedOpenKeys = this.openKeys.concat() + this.openKeys = [] + } else { + this.openKeys = this.cachedOpenKeys + } + }, + $route: function () { + this.updateMenu() + } + }, + methods: { + // select menu item + onOpenChange (openKeys) { + // 在水平模式下时执行,并且不再执行后续 + if (this.mode === 'horizontal') { + this.openKeys = openKeys + return + } + // 非水平模式时 + const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) + if (!this.rootSubmenuKeys.includes(latestOpenKey)) { + this.openKeys = openKeys + } else { + this.openKeys = latestOpenKey ? [latestOpenKey] : [] + } + }, + onSelect ({ item, key, selectedKeys }) { + this.selectedKeys = selectedKeys + this.$emit('select', { item, key, selectedKeys }) + }, + updateMenu () { + const routes = this.$route.matched.concat() + const { hidden } = this.$route.meta + if (routes.length >= 3 && hidden) { + routes.pop() + this.selectedKeys = [routes[routes.length - 1].path] + } else { + this.selectedKeys = [routes.pop().path] + } + const openKeys = [] + if (this.mode === 'inline') { + routes.forEach(item => { + openKeys.push(item.path) + }) + } + + this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + }, + + // render + renderItem (menu) { + if (!menu.hidden) { + return menu.children && !menu.hideChildrenInMenu ? this.renderSubMenu(menu) : this.renderMenuItem(menu) + } + return null + }, + renderMenuItem (menu) { + const target = menu.meta.target || null + const CustomTag = target && 'a' || 'router-link' + const props = { to: { name: menu.name } } + const attrs = { href: menu.path, target: menu.meta.target } + + if (menu.children && menu.hideChildrenInMenu) { + // 把有子菜单的 并且 父菜单是要隐藏子菜单的 + // 都给子菜单增加一个 hidden 属性 + // 用来给刷新页面时, selectedKeys 做控制用 + menu.children.forEach(item => { + item.meta = Object.assign(item.meta, { hidden: true }) + }) + } + + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + + ) + }, + renderSubMenu (menu) { + const itemArr = [] + if (!menu.hideChildrenInMenu) { + menu.children.forEach(item => itemArr.push(this.renderItem(item))) + } + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + {itemArr} + + ) + }, + renderIcon (icon) { + if (icon === 'none' || icon === undefined) { + return null + } + const props = {} + typeof (icon) === 'object' ? props.component = icon : props.type = icon + return ( + + ) + } + }, + + render () { + const dynamicProps = { + props: { + mode: this.mode, + theme: this.theme, + openKeys: this.openKeys, + selectedKeys: this.selectedKeys + }, + on: { + openChange: this.onOpenChange, + select: this.onSelect + } + } + + const menuTree = this.menu.map(item => { + if (item.hidden) { + return null + } + return this.renderItem(item) + }) + + return ({menuTree}) + } +} diff --git a/admin20250319/src/components/Menu/menu.render.js b/admin20250319/src/components/Menu/menu.render.js new file mode 100644 index 0000000..279e4ad --- /dev/null +++ b/admin20250319/src/components/Menu/menu.render.js @@ -0,0 +1,155 @@ +import Menu from 'ant-design-vue/es/menu' +import Icon from 'ant-design-vue/es/icon' + +const { Item, SubMenu } = Menu + +export default { + name: 'SMenu', + props: { + menu: { + type: Array, + required: true + }, + theme: { + type: String, + required: false, + default: 'dark' + }, + mode: { + type: String, + required: false, + default: 'inline' + }, + collapsed: { + type: Boolean, + required: false, + default: false + } + }, + data () { + return { + openKeys: [], + selectedKeys: [], + cachedOpenKeys: [] + } + }, + computed: { + rootSubmenuKeys: vm => { + const keys = [] + vm.menu.forEach(item => keys.push(item.path)) + return keys + } + }, + created () { + this.updateMenu() + }, + watch: { + collapsed (val) { + if (val) { + this.cachedOpenKeys = this.openKeys.concat() + this.openKeys = [] + } else { + this.openKeys = this.cachedOpenKeys + } + }, + $route: function () { + this.updateMenu() + } + }, + methods: { + renderIcon: function (h, icon) { + if (icon === 'none' || icon === undefined) { + return null + } + const props = {} + typeof (icon) === 'object' ? props.component = icon : props.type = icon + return h(Icon, { props: { ...props } }) + }, + renderMenuItem: function (h, menu, pIndex, index) { + const target = menu.meta.target || null + return h(Item, { key: menu.path ? menu.path : 'item_' + pIndex + '_' + index }, [ + h('router-link', { attrs: { to: { name: menu.name }, target: target } }, [ + this.renderIcon(h, menu.meta.icon), + h('span', [menu.meta.title]) + ]) + ]) + }, + renderSubMenu: function (h, menu, pIndex, index) { + const this2_ = this + const subItem = [h('span', { slot: 'title' }, [this.renderIcon(h, menu.meta.icon), h('span', [menu.meta.title])])] + const itemArr = [] + const pIndex_ = pIndex + '_' + index + if (!menu.hideChildrenInMenu) { + menu.children.forEach(function (item, i) { + itemArr.push(this2_.renderItem(h, item, pIndex_, i)) + }) + } + return h(SubMenu, { key: menu.path ? menu.path : 'submenu_' + pIndex + '_' + index }, subItem.concat(itemArr)) + }, + renderItem: function (h, menu, pIndex, index) { + if (!menu.hidden) { + return menu.children && !menu.hideChildrenInMenu + ? this.renderSubMenu(h, menu, pIndex, index) + : this.renderMenuItem(h, menu, pIndex, index) + } + }, + renderMenu: function (h, menuTree) { + const this2_ = this + const menuArr = [] + menuTree.forEach(function (menu, i) { + if (!menu.hidden) { + menuArr.push(this2_.renderItem(h, menu, '0', i)) + } + }) + return menuArr + }, + onOpenChange (openKeys) { + const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) + if (!this.rootSubmenuKeys.includes(latestOpenKey)) { + this.openKeys = openKeys + } else { + this.openKeys = latestOpenKey ? [latestOpenKey] : [] + } + }, + updateMenu () { + const routes = this.$route.matched.concat() + + if (routes.length >= 4 && this.$route.meta.hidden) { + routes.pop() + this.selectedKeys = [routes[2].path] + } else { + this.selectedKeys = [routes.pop().path] + } + + const openKeys = [] + if (this.mode === 'inline') { + routes.forEach(item => { + openKeys.push(item.path) + }) + } + + this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + } + }, + render (h) { + return h( + Menu, + { + props: { + theme: this.$props.theme, + mode: this.$props.mode, + openKeys: this.openKeys, + selectedKeys: this.selectedKeys + }, + on: { + openChange: this.onOpenChange, + select: obj => { + this.selectedKeys = obj.selectedKeys + this.$emit('select', obj) + } + } + }, + this.renderMenu(h, this.menu) + ) + } +} diff --git a/admin20250319/src/components/MultiTab/MultiTab.vue b/admin20250319/src/components/MultiTab/MultiTab.vue new file mode 100644 index 0000000..4920455 --- /dev/null +++ b/admin20250319/src/components/MultiTab/MultiTab.vue @@ -0,0 +1,177 @@ + diff --git a/admin20250319/src/components/MultiTab/events.js b/admin20250319/src/components/MultiTab/events.js new file mode 100644 index 0000000..b0230b5 --- /dev/null +++ b/admin20250319/src/components/MultiTab/events.js @@ -0,0 +1,2 @@ +import Vue from 'vue' +export default new Vue() diff --git a/admin20250319/src/components/MultiTab/index.js b/admin20250319/src/components/MultiTab/index.js new file mode 100644 index 0000000..02a1c77 --- /dev/null +++ b/admin20250319/src/components/MultiTab/index.js @@ -0,0 +1,40 @@ +import events from './events' +import MultiTab from './MultiTab' +import './index.less' + +const api = { + /** + * open new tab on route fullPath + * @param config + */ + open: function (config) { + events.$emit('open', config) + }, + rename: function (key, name) { + events.$emit('rename', { key: key, name: name }) + }, + /** + * close current page + */ + closeCurrentPage: function () { + this.close() + }, + /** + * close route fullPath tab + * @param config + */ + close: function (config) { + events.$emit('close', config) + } +} + +MultiTab.install = function (Vue) { + if (Vue.prototype.$multiTab) { + return + } + api.instance = events + Vue.prototype.$multiTab = api + Vue.component('multi-tab', MultiTab) +} + +export default MultiTab diff --git a/admin20250319/src/components/MultiTab/index.less b/admin20250319/src/components/MultiTab/index.less new file mode 100644 index 0000000..773e3af --- /dev/null +++ b/admin20250319/src/components/MultiTab/index.less @@ -0,0 +1,25 @@ +@import '../index'; + +@multi-tab-prefix-cls: ~"@{ant-pro-prefix}-multi-tab"; +@multi-tab-wrapper-prefix-cls: ~"@{ant-pro-prefix}-multi-tab-wrapper"; + +/* +.topmenu .@{multi-tab-prefix-cls} { + max-width: 1200px; + margin: -23px auto 24px auto; +} +*/ +.@{multi-tab-prefix-cls} { + margin: -23px -24px 24px -24px; + background: #fff; +} + +.topmenu .@{multi-tab-wrapper-prefix-cls} { + max-width: 1200px; + margin: 0 auto; +} + +.topmenu.content-width-Fluid .@{multi-tab-wrapper-prefix-cls} { + max-width: 100%; + margin: 0 auto; +} diff --git a/admin20250319/src/components/NProgress/nprogress.less b/admin20250319/src/components/NProgress/nprogress.less new file mode 100644 index 0000000..7826c0e --- /dev/null +++ b/admin20250319/src/components/NProgress/nprogress.less @@ -0,0 +1,76 @@ +@import url('../index.less'); + +/* Make clicks pass-through */ +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + background: @primary-color; + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +/* Fancy blur effect */ +#nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color; + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); +} + +/* Remove these to get rid of the spinner */ +#nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; +} + +#nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: @primary-color; + border-left-color: @primary-color; + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; +} + +.nprogress-custom-parent #nprogress .spinner, +.nprogress-custom-parent #nprogress .bar { + position: absolute; +} + +@-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } +} +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + diff --git a/admin20250319/src/components/NoticeIcon/NoticeIcon.vue b/admin20250319/src/components/NoticeIcon/NoticeIcon.vue new file mode 100644 index 0000000..3bc9ebb --- /dev/null +++ b/admin20250319/src/components/NoticeIcon/NoticeIcon.vue @@ -0,0 +1,102 @@ + + + + + + diff --git a/admin20250319/src/components/NoticeIcon/index.js b/admin20250319/src/components/NoticeIcon/index.js new file mode 100644 index 0000000..659b9ec --- /dev/null +++ b/admin20250319/src/components/NoticeIcon/index.js @@ -0,0 +1,2 @@ +import NoticeIcon from './NoticeIcon' +export default NoticeIcon diff --git a/admin20250319/src/components/NumberInfo/NumberInfo.vue b/admin20250319/src/components/NumberInfo/NumberInfo.vue new file mode 100644 index 0000000..b33036a --- /dev/null +++ b/admin20250319/src/components/NumberInfo/NumberInfo.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/admin20250319/src/components/NumberInfo/index.js b/admin20250319/src/components/NumberInfo/index.js new file mode 100644 index 0000000..659a2f3 --- /dev/null +++ b/admin20250319/src/components/NumberInfo/index.js @@ -0,0 +1,3 @@ +import NumberInfo from './NumberInfo' + +export default NumberInfo diff --git a/admin20250319/src/components/NumberInfo/index.less b/admin20250319/src/components/NumberInfo/index.less new file mode 100644 index 0000000..719113d --- /dev/null +++ b/admin20250319/src/components/NumberInfo/index.less @@ -0,0 +1,55 @@ +@import "../index"; + +@numberInfo-prefix-cls: ~"@{ant-pro-prefix}-number-info"; + +.@{numberInfo-prefix-cls} { + + .ant-pro-number-info-subtitle { + color: @text-color-secondary; + font-size: @font-size-base; + height: 22px; + line-height: 22px; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + } + + .number-info-value { + margin-top: 4px; + font-size: 0; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + + & > span { + color: @heading-color; + display: inline-block; + line-height: 32px; + height: 32px; + font-size: 24px; + margin-right: 32px; + } + + .sub-total { + color: @text-color-secondary; + font-size: @font-size-lg; + vertical-align: top; + margin-right: 0; + i { + font-size: 12px; + transform: scale(0.82); + margin-left: 4px; + } + :global { + .anticon-caret-up { + color: @red-6; + } + .anticon-caret-down { + color: @green-6; + } + } + } + } +} \ No newline at end of file diff --git a/admin20250319/src/components/NumberInfo/index.md b/admin20250319/src/components/NumberInfo/index.md new file mode 100644 index 0000000..147adc4 --- /dev/null +++ b/admin20250319/src/components/NumberInfo/index.md @@ -0,0 +1,43 @@ +# NumberInfo 数据文本 + +常用在数据卡片中,用于突出展示某个业务数据。 + + + +引用方式: + +```javascript +import NumberInfo from '@/components/NumberInfo' + +export default { + components: { + NumberInfo + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + +``` + + + +## API + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +title | 标题 | ReactNode\|string | - +subTitle | 子标题 | ReactNode\|string | - +total | 总量 | ReactNode\|string | - +subTotal | 子总量 | ReactNode\|string | - +status | 增加状态 | 'up \| down' | - +theme | 状态样式 | string | 'light' +gap | 设置数字和描述之间的间距(像素)| number | 8 diff --git a/admin20250319/src/components/PageHeader/PageHeader.vue b/admin20250319/src/components/PageHeader/PageHeader.vue new file mode 100644 index 0000000..4235108 --- /dev/null +++ b/admin20250319/src/components/PageHeader/PageHeader.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/admin20250319/src/components/PageHeader/index.js b/admin20250319/src/components/PageHeader/index.js new file mode 100644 index 0000000..ec1078c --- /dev/null +++ b/admin20250319/src/components/PageHeader/index.js @@ -0,0 +1,2 @@ +import PageHeader from './PageHeader' +export default PageHeader diff --git a/admin20250319/src/components/PageLoading/index.jsx b/admin20250319/src/components/PageLoading/index.jsx new file mode 100644 index 0000000..af6d6d6 --- /dev/null +++ b/admin20250319/src/components/PageLoading/index.jsx @@ -0,0 +1,106 @@ +import { Spin } from 'ant-design-vue' + +export const PageLoading = { + name: 'PageLoading', + props: { + tip: { + type: String, + default: 'Loading..' + }, + size: { + type: String, + default: 'large' + } + }, + render () { + const style = { + textAlign: 'center', + background: 'rgba(0,0,0,0.6)', + position: 'fixed', + top: 0, + bottom: 0, + left: 0, + right: 0, + zIndex: 1100 + } + const spinStyle = { + position: 'absolute', + left: '50%', + top: '40%', + transform: 'translate(-50%, -50%)' + } + return (
+ +
) + } +} + +const version = '0.0.1' +const loading = {} + +loading.newInstance = (Vue, options) => { + let loadingElement = document.querySelector('body>div[type=loading]') + if (!loadingElement) { + loadingElement = document.createElement('div') + loadingElement.setAttribute('type', 'loading') + loadingElement.setAttribute('class', 'ant-loading-wrapper') + document.body.appendChild(loadingElement) + } + + const cdProps = Object.assign({ visible: false, size: 'large', tip: 'Loading...' }, options) + + const instance = new Vue({ + data () { + return { + ...cdProps + } + }, + render () { + const { tip } = this + const props = {} + this.tip && (props.tip = tip) + if (this.visible) { + return + } + return null + } + }).$mount(loadingElement) + + function update (config) { + const { visible, size, tip } = { ...cdProps, ...config } + instance.$set(instance, 'visible', visible) + if (tip) { + instance.$set(instance, 'tip', tip) + } + if (size) { + instance.$set(instance, 'size', size) + } + } + + return { + instance, + update + } +} + +const api = { + show: function (options) { + this.instance.update({ ...options, visible: true }) + }, + hide: function () { + this.instance.update({ visible: false }) + } +} + +const install = function (Vue, options) { + if (Vue.prototype.$loading) { + return + } + api.instance = loading.newInstance(Vue, options) + Vue.prototype.$loading = api +} + +export default { + version, + install +} diff --git a/admin20250319/src/components/Result/Result.vue b/admin20250319/src/components/Result/Result.vue new file mode 100644 index 0000000..99f7f19 --- /dev/null +++ b/admin20250319/src/components/Result/Result.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/admin20250319/src/components/Result/index.js b/admin20250319/src/components/Result/index.js new file mode 100644 index 0000000..51cb3b2 --- /dev/null +++ b/admin20250319/src/components/Result/index.js @@ -0,0 +1,2 @@ +import Result from './Result.vue' +export default Result diff --git a/admin20250319/src/components/Search/GlobalSearch.jsx b/admin20250319/src/components/Search/GlobalSearch.jsx new file mode 100644 index 0000000..13bfa56 --- /dev/null +++ b/admin20250319/src/components/Search/GlobalSearch.jsx @@ -0,0 +1,62 @@ +import { Select } from 'ant-design-vue' +import './index.less' + +const GlobalSearch = { + name: 'GlobalSearch', + data () { + return { + visible: false + } + }, + mounted () { + const keyboardHandle = (e) => { + e.preventDefault() + e.stopPropagation() + const { ctrlKey, shiftKey, altKey, keyCode } = e + // key is `K` and hold ctrl + if (keyCode === 75 && ctrlKey && !shiftKey && !altKey) { + this.visible = !this.visible + } + } + document.addEventListener('keydown', keyboardHandle) + }, + render () { + const { visible } = this + const handleSearch = (e) => { + this.$emit('search', e) + } + + const handleChange = (e) => { + this.$emit('change', e) + } + if (!visible) { + return null + } + return ( + + ) + } +} + +GlobalSearch.install = function (Vue) { + Vue.component(GlobalSearch.name, GlobalSearch) +} + +export default GlobalSearch diff --git a/admin20250319/src/components/Search/index.less b/admin20250319/src/components/Search/index.less new file mode 100644 index 0000000..d397852 --- /dev/null +++ b/admin20250319/src/components/Search/index.less @@ -0,0 +1,25 @@ +@import "~ant-design-vue/es/style/themes/default"; + +.global-search-wrapper { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: @zindex-modal-mask; + background: @modal-mask-bg; + + .global-search-box { + position: absolute; + top: 20%; + left: 50%; + width: 450px; + transform: translate(-50%, -50%); + + .global-search-tips { + color: @white; + font-size: @font-size-lg; + text-align: right; + } + } +} \ No newline at end of file diff --git a/admin20250319/src/components/SettingDrawer/SettingDrawer.vue b/admin20250319/src/components/SettingDrawer/SettingDrawer.vue new file mode 100644 index 0000000..44faddd --- /dev/null +++ b/admin20250319/src/components/SettingDrawer/SettingDrawer.vue @@ -0,0 +1,360 @@ + + + + + diff --git a/admin20250319/src/components/SettingDrawer/SettingItem.vue b/admin20250319/src/components/SettingDrawer/SettingItem.vue new file mode 100644 index 0000000..2b3b553 --- /dev/null +++ b/admin20250319/src/components/SettingDrawer/SettingItem.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/admin20250319/src/components/SettingDrawer/index.js b/admin20250319/src/components/SettingDrawer/index.js new file mode 100644 index 0000000..8260f2d --- /dev/null +++ b/admin20250319/src/components/SettingDrawer/index.js @@ -0,0 +1,2 @@ +import SettingDrawer from './SettingDrawer' +export default SettingDrawer diff --git a/admin20250319/src/components/SettingDrawer/settingConfig.js b/admin20250319/src/components/SettingDrawer/settingConfig.js new file mode 100644 index 0000000..c45911e --- /dev/null +++ b/admin20250319/src/components/SettingDrawer/settingConfig.js @@ -0,0 +1,46 @@ +import { message } from 'ant-design-vue/es' +import themeColor from './themeColor.js' + +const colorList = [ + { + key: '薄暮', color: '#F5222D' + }, + { + key: '火山', color: '#FA541C' + }, + { + key: '日暮', color: '#FAAD14' + }, + { + key: '明青', color: '#13C2C2' + }, + { + key: '极光绿', color: '#52C41A' + }, + { + key: '拂晓蓝(默认)', color: '#1890FF' + }, + { + key: '极客蓝', color: '#2F54EB' + }, + { + key: '酱紫', color: '#722ED1' + } +] + +const updateTheme = newPrimaryColor => { + const hideMessage = message.loading('正在切换主题!', 0) + themeColor.changeColor(newPrimaryColor).finally(t => { + setTimeout(() => { + hideMessage() + }, 10) + }) +} + +const updateColorWeak = colorWeak => { + // document.body.className = colorWeak ? 'colorWeak' : ''; + const app = document.body.querySelector('#app') + colorWeak ? app.classList.add('colorWeak') : app.classList.remove('colorWeak') +} + +export { updateTheme, colorList, updateColorWeak } diff --git a/admin20250319/src/components/SettingDrawer/themeColor.js b/admin20250319/src/components/SettingDrawer/themeColor.js new file mode 100644 index 0000000..10dfbd4 --- /dev/null +++ b/admin20250319/src/components/SettingDrawer/themeColor.js @@ -0,0 +1,24 @@ +import client from 'webpack-theme-color-replacer/client' +import generate from '@ant-design/colors/lib/generate' + +export default { + getAntdSerials (color) { + // 淡化(即less的tint) + const lightens = new Array(9).fill().map((t, i) => { + return client.varyColor.lighten(color, i / 10) + }) + // colorPalette变换得到颜色值 + const colorPalettes = generate(color) + const rgb = client.varyColor.toNum3(color.replace('#', '')).join(',') + return lightens.concat(colorPalettes).concat(rgb) + }, + changeColor (newColor) { + var options = { + newColors: this.getAntdSerials(newColor), // new colors array, one-to-one corresponde with `matchColors` + changeUrl (cssUrl) { + return `/${cssUrl}` // while router is not `hash` mode, it needs absolute path + } + } + return client.changer.changeColor(options, Promise) + } +} diff --git a/admin20250319/src/components/StandardFormRow/StandardFormRow.vue b/admin20250319/src/components/StandardFormRow/StandardFormRow.vue new file mode 100644 index 0000000..a4e261b --- /dev/null +++ b/admin20250319/src/components/StandardFormRow/StandardFormRow.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/admin20250319/src/components/StandardFormRow/index.js b/admin20250319/src/components/StandardFormRow/index.js new file mode 100644 index 0000000..8155cc7 --- /dev/null +++ b/admin20250319/src/components/StandardFormRow/index.js @@ -0,0 +1,3 @@ +import StandardFormRow from './StandardFormRow' + +export default StandardFormRow diff --git a/admin20250319/src/components/Table/README.md b/admin20250319/src/components/Table/README.md new file mode 100644 index 0000000..8e32dd0 --- /dev/null +++ b/admin20250319/src/components/Table/README.md @@ -0,0 +1,338 @@ +Table 重封装组件说明 +==== + + +封装说明 +---- + +> 基础的使用方式与 API 与 [官方版(Table)](https://vuecomponent.github.io/ant-design-vue/components/table-cn/) 本一致,在其基础上,封装了加载数据的方法。 +> +> 你无需在你是用表格的页面进行分页逻辑处理,仅需向 Table 组件传递绑定 `:data="Promise"` 对象即可 + +该 `table` 由 [@Saraka](https://github.com/saraka-tsukai) 完成封装 + + +例子1 +---- +(基础使用) + +```vue + + + + + +``` + + + +例子2 +---- + +(简单的表格,最后一列是各种操作) + +```vue + + + +``` + + + +内置方法 +---- + +通过 `this.$refs.table` 调用 + +`this.$refs.table.refresh(true)` 刷新列表 (用户新增/修改数据后,重载列表数据) + +> 注意:要调用 `refresh(bool)` 需要给表格组件设定 `ref` 值 +> +> `refresh()` 方法可以传一个 `bool` 值,当有传值 或值为 `true` 时,则刷新时会强制刷新到第一页(常用户页面 搜索 按钮进行搜索时,结果从第一页开始分页) + + +内置属性 +---- +> 除去 `a-table` 自带属性外,还而外提供了一些额外属性属性 + + +| 属性 | 说明 | 类型 | 默认值 | +| -------------- | ----------------------------------------------- | ----------------- | ------ | +| alert | 设置是否显示表格信息栏 | [object, boolean] | null | +| showPagination | 显示分页选择器,可传 'auto' \| boolean | [string, boolean] | 'auto' | +| data | 加载数据方法 必须为 `Promise` 对象 **必须绑定** | Promise | - | + + +`alert` 属性对象: + +```javascript +alert: { + show: Boolean, + clear: [Function, Boolean] +} +``` + +注意事项 +---- + +> 你可能需要为了与后端提供的接口返回结果一致而去修改以下代码: +> (需要注意的是,这里的修改是全局性的,意味着整个项目所有使用该 table 组件都需要遵守这个返回结果定义的字段。) +> +> 文档中的结构有可能由于组件 bug 进行修正而改动。实际修改请以当时最新版本为准 + +修改 `@/components/table/index.js` 第 156 行起 + + + +```javascript +result.then(r => { + this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { + current: r.pageNo, // 返回结果中的当前分页数 + total: r.totalCount, // 返回结果中的总记录数 + showSizeChanger: this.showSizeChanger, + pageSize: (pagination && pagination.pageSize) || + this.localPagination.pageSize + }) || false + // 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页 + if (r.data.length === 0 && this.showPagination && this.localPagination.current > 1) { + this.localPagination.current-- + this.loadData() + return + } + + // 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小 + // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 + try { + if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.pageNo * this.localPagination.pageSize))) { + this.localPagination.hideOnSinglePage = true + } + } catch (e) { + this.localPagination = false + } + this.localDataSource = r.data // 返回结果中的数组数据 + this.localLoading = false + }) +``` +返回 JSON 例子: +```json +{ + "message": "", + "result": { + "data": [{ + id: 1, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + title: 'Alipay', + description: '那是一种内在的东西, 他们到达不了,也无法触及的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 2, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + title: 'Angular', + description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 3, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + title: 'Ant Design', + description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 4, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + title: 'Admin.NET', + description: '那时候我只会想自己想要什么,从不想自己拥有什么', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 5, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', + title: 'Bootstrap', + description: '凛冬将至', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 6, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', + title: 'Vue', + description: '生命就像一盒巧克力,结果往往出人意料', + status: 1, + updatedAt: '2018-07-26 00:00:00' + } + ], + "pageSize": 10, + "pageNo": 0, + "totalPage": 6, + "totalCount": 57 + }, + "status": 200, + "timestamp": 1534955098193 +} +``` + + + +更新时间 +---- + +该文档最后更新于: 2019-06-23 PM 17:19 \ No newline at end of file diff --git a/admin20250319/src/components/Table/columnSetting.vue b/admin20250319/src/components/Table/columnSetting.vue new file mode 100644 index 0000000..7271feb --- /dev/null +++ b/admin20250319/src/components/Table/columnSetting.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/admin20250319/src/components/Table/index.js b/admin20250319/src/components/Table/index.js new file mode 100644 index 0000000..abdf659 --- /dev/null +++ b/admin20250319/src/components/Table/index.js @@ -0,0 +1,477 @@ +import T from 'ant-design-vue/es/table/Table' +import get from 'lodash.get' +import draggable from 'vuedraggable' +import columnSetting from './columnSetting' +import './index.less' + +export default { + components: { + draggable, columnSetting + }, + data () { + return { + needTotalList: [], + + selectedRows: [], + selectedRowKeys: [], + + localLoading: false, + localDataSource: [], + localPagination: Object.assign({}, this.pagination), + isFullscreen: false, + customSize: this.size, + columnsSetting: [], + queryparams: {} + } + }, + props: Object.assign({}, T.props, { + rowKey: { + type: [String, Function], + default: 'key' + }, + isexport: { + type: Boolean, + default: false + }, + data: { + type: Function, + required: true + }, + pageNum: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 10 + }, + showSizeChanger: { + type: Boolean, + default: true + }, + size: { + type: String, + default: 'middle' + }, + /** + * alert: { + * show: true, + * clear: Function + * } + */ + alert: { + type: [Object, Boolean], + default: null + }, + rowSelection: { + type: Object, + default: null + }, + /** @Deprecated */ + showAlertInfo: { + type: Boolean, + default: false + }, + showPagination: { + type: String | Boolean, + default: 'auto' + }, + /** + * enable page URI mode + * + * e.g: + * /users/1 + * /users/2 + * /users/3?queryParam=test + * ... + */ + pageURI: { + type: Boolean, + default: false + }, + extraTool: { + type: Array, + default: () => ([]) + }, + onExport: { // 导出 + type: Function + } + }), + watch: { + 'localPagination.current' (val) { + this.pageURI && this.$router.push({ + ...this.$route, + name: this.$route.name, + params: Object.assign({}, this.$route.params, { + pageNo: val + }) + }) + }, + pageNum (val) { + Object.assign(this.localPagination, { + current: val + }) + }, + pageSize (val) { + Object.assign(this.localPagination, { + pageSize: val + }) + }, + showSizeChanger (val) { + Object.assign(this.localPagination, { + showSizeChanger: val + }) + } + }, + created () { + const { pageNo } = this.$route.params + const localPageNum = this.pageURI && (pageNo && parseInt(pageNo)) || this.pageNum + this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { + current: localPageNum, + pageSize: this.pageSize, + showSizeChanger: this.showSizeChanger, + showTotal: (total, range) => { + return range[0] + '-' + range[1] + '共' + total + '条' + } + }) || false + this.needTotalList = this.initTotalList(this.columns) + this.loadData() + this.columnsSetting = this.columns + }, + methods: { + /** + * 表格重新加载方法 + * 如果参数为 true, 则强制刷新到第一页 + * @param Boolean bool + */ + refresh (bool = false) { + bool && (this.localPagination = Object.assign({}, { + current: 1, pageSize: this.pageSize + })) + this.loadData() + }, + /** + * 加载数据方法 + * @param {Object} pagination 分页选项器 + * @param {Object} filters 过滤条件 + * @param {Object} sorter 排序条件 + */ + loadData (pagination, filters, sorter) { + this.localLoading = true + const parameter = Object.assign({ + pageNo: (pagination && pagination.current) || + this.showPagination && this.localPagination.current || this.pageNum, + pageSize: (pagination && pagination.pageSize) || + this.showPagination && this.localPagination.pageSize || this.pageSize + }, + (sorter && sorter.field && { + sortField: sorter.field + }) || {}, + (sorter && sorter.order && { + sortOrder: sorter.order + }) || {}, { + ...filters + } + ) + this.queryparams = parameter + const result = this.data(parameter) + // 对接自己的通用数据接口需要修改下方代码中的 r.pageNo, r.totalCount, r.data + // eslint-disable-next-line + if ((typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function') { + result.then(r => { + if (r == null) { + this.localLoading = false + return + } + this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { + current: r.pageno, // pageNo, // 返回结果中的当前分页数 + total: r.totalrows, // totalCount, // 返回结果中的总记录数 + showSizeChanger: this.showSizeChanger, + pageSize: (pagination && pagination.pageSize) || + this.localPagination.pageSize + }) || false + // 后端数据rows为null保存修复 + if (r.rows == null) { + r.rows = [] + } + // 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页 + if (r.rows.length === 0 && this.showPagination && this.localPagination.current > 1) { + this.localPagination.current-- + this.loadData() + return + } + + // 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小 + // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 + try { + if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.totalPage * this.localPagination.pageSize))) { + this.localPagination.hideOnSinglePage = true + } + } catch (e) { + this.localPagination = false + } + this.localDataSource = r.rows // 返回结果中的数组数据 + this.localLoading = false + }) + } + }, + initTotalList (columns) { + const totalList = [] + columns && columns instanceof Array && columns.forEach(column => { + if (column.needTotal) { + totalList.push({ + ...column, + total: 0 + }) + } + }) + return totalList + }, + /** + * 用于更新已选中的列表数据 total 统计 + * @param selectedRowKeys + * @param selectedRows + */ + updateSelect (selectedRowKeys, selectedRows) { + this.selectedRows = selectedRows + this.selectedRowKeys = selectedRowKeys + const list = this.needTotalList + this.needTotalList = list.map(item => { + return { + ...item, + total: selectedRows.reduce((sum, val) => { + const total = sum + parseInt(get(val, item.dataIndex)) + return isNaN(total) ? 0 : total + }, 0) + } + }) + }, + /** + * 清空 table 已选中项 + */ + clearSelected () { + if (this.rowSelection) { + this.rowSelection.onChange([], []) + this.updateSelect([], []) + } + }, + /** + * 处理交给 table 使用者去处理 clear 事件时,内部选中统计同时调用 + * @param callback + * @returns {*} + */ + renderClear (callback) { + if (this.selectedRowKeys.length <= 0) return null + return ( + { + callback() + this.clearSelected() + }}>清空 + ) + }, + renderAlert () { + // 绘制统计列数据 + // eslint-disable-next-line no-unused-vars + const needTotalItems = this.needTotalList.map((item) => { + return ( + {item.title}总计 {!item.customRender ? item.total : item.customRender(item.total)} + ) + }) + + // 绘制 清空 按钮 + // eslint-disable-next-line no-unused-vars + const clearItem = (typeof this.alert.clear === 'boolean' && this.alert.clear) ? ( + this.renderClear(this.clearSelected) + ) : (this.alert !== null && typeof this.alert.clear === 'function') ? ( + this.renderClear(this.alert.clear) + ) : null + + // 绘制 alert 组件 + // 统一先去除alert组件 + return '' + /* return ( + + + + ) */ + }, + columnChange(val) { + this.columnsSetting = val + }, + renderHeader () { + let tools = [ + { + icon: 'reload', + title: '刷新', + onClick: () => { + this.refresh() + } + }, + // { + // icon: 'column-height', + // title: '密度', + // isDropdown: true, + // menu: () => { + // const onClick = ({ key }) => { + // this.customSize = key + // } + // return ( + // + // 默认 + // 中等 + // 紧凑 + // + // ) + // }, + // onClick: () => { + // } + // }, + { + icon: 'setting', + title: '列设置', + isDropdown: true, + menu: () => { + return + }, + onClick: () => { + } + }, + { + icon: 'printer', + title: '打印', + isDropdown: false, + onClick: () => { + const printele = this.$el.getElementsByClassName('ant-table-body') + const newstr = printele !== null ? printele[0].innerHTML : '' + var printWin = window.open('打印窗口', '_blank') + var style = [''].join('') + + var html = newstr // 输出表头 + printWin.document.write(style + html) + printWin.document.close() + printWin.print() + printWin.close() + } + } + ] + if (this.isexport) { + tools.push({ + icon: 'download', + title: '导出', + isDropdown: false, + onClick: () => { + if (this.onExport) { + this.onExport() + } + } + }) + } + if (this.extraTool.length) { + tools = tools.concat(this.extraTool) + } + + return ( +
+
+ {this.$scopedSlots.operator && this.$scopedSlots.operator()} +
+
+ { + tools.map(tool => { + if (tool.isDropdown) { + return ( + + + + + { tool.menu() } + + ) + } + return ( + + + + ) + }) + } +
+
+ ) + /* return ( + + + + ) */ + } + }, + + render () { + let props = {} + const localKeys = Object.keys(this.$data) + const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) && typeof this.rowSelection.selectedRowKeys !== 'undefined' || this.alert + + Object.keys(T.props).forEach(k => { + const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}` + if (localKeys.includes(localKey)) { + props[k] = this[localKey] + return props[k] + } + if (k === 'rowSelection') { + if (showAlert && this.rowSelection) { + // 如果需要使用alert,则重新绑定 rowSelection 事件 + props[k] = { + ...this.rowSelection, + selectedRows: this.selectedRows, + selectedRowKeys: this.selectedRowKeys, + onChange: (selectedRowKeys, selectedRows) => { + this.updateSelect(selectedRowKeys, selectedRows) + typeof this[k].onChange !== 'undefined' && this[k].onChange(selectedRowKeys, selectedRows) + } + } + return props[k] + } else if (!this.rowSelection) { + // 如果没打算开启 rowSelection 则清空默认的选择项 + props[k] = null + return props[k] + } + } + this[k] && (props[k] = this[k]) + // 此处配置表格大小与要显示的列 + props = { + ...props, + size: this.customSize, + columns: this.columnsSetting.filter(value => value.checked === undefined || value.checked) + } + return props[k] + }) + const table = ( + { this.$emit('expand', expanded, record) } }> + { Object.keys(this.$slots).map(name => ()) } + + ) + + return ( +
+ { this.renderHeader() } + { showAlert ? this.renderAlert() : null } + { table } +
+ ) + } +} diff --git a/admin20250319/src/components/Table/index.less b/admin20250319/src/components/Table/index.less new file mode 100644 index 0000000..3ef6793 --- /dev/null +++ b/admin20250319/src/components/Table/index.less @@ -0,0 +1,54 @@ +.table-wrapper{ + background: #fff; +} +.s-table-tool{ + display: flex; + margin-bottom: 16px; + .s-table-tool-left{ + flex: 1; + } + .s-table-tool-right{ + display: inline-flex; + align-items: center; + .s-tool-item{ + font-size: 16px; + margin-left: 16px; + cursor: pointer; + + } + } +} + +.s-tool-column-item{ + display: flex; + align-items: center; + padding: 4px 16px 4px 4px; + .ant-checkbox-wrapper{ + flex: 1; + } + .s-tool-column-handle{ + opacity: .8; + cursor: move; + .anticon-more{ + font-size: 12px; + margin-top: 2px; + & + .anticon-more{ + margin: 2px 4px 0 -8px; + } + } + } +} +.s-tool-column-header{ + padding: 5px 16px 10px 24px; + min-width: 180px; +} +.s-tool-column{ + .ant-divider{ + margin: 0; + } + .ant-checkbox-group{ + padding: 4px 0; + display: block; + } +} + diff --git a/admin20250319/src/components/TagSelect/TagSelectOption.jsx b/admin20250319/src/components/TagSelect/TagSelectOption.jsx new file mode 100644 index 0000000..b5ae799 --- /dev/null +++ b/admin20250319/src/components/TagSelect/TagSelectOption.jsx @@ -0,0 +1,45 @@ +import { Tag } from 'ant-design-vue' +const { CheckableTag } = Tag + +export default { + name: 'TagSelectOption', + props: { + prefixCls: { + type: String, + default: 'ant-pro-tag-select-option' + }, + value: { + type: [String, Number, Object], + default: '' + }, + checked: { + type: Boolean, + default: false + } + }, + data () { + return { + localChecked: this.checked || false + } + }, + watch: { + 'checked' (val) { + this.localChecked = val + }, + '$parent.items': { + handler: function (val) { + this.value && val.hasOwnProperty(this.value) && (this.localChecked = val[this.value]) + }, + deep: true + } + }, + render () { + const { $slots, value } = this + const onChange = (checked) => { + this.$emit('change', { value, checked }) + } + return ( + {$slots.default} + ) + } +} diff --git a/admin20250319/src/components/TagSelect/index.jsx b/admin20250319/src/components/TagSelect/index.jsx new file mode 100644 index 0000000..af98ad7 --- /dev/null +++ b/admin20250319/src/components/TagSelect/index.jsx @@ -0,0 +1,113 @@ +import PropTypes from 'ant-design-vue/es/_util/vue-types' +import Option from './TagSelectOption.jsx' +import { filterEmpty } from '@/components/_util/util' + +export default { + Option, + name: 'TagSelect', + model: { + prop: 'checked', + event: 'change' + }, + props: { + prefixCls: { + type: String, + default: 'ant-pro-tag-select' + }, + defaultValue: { + type: PropTypes.array, + default: null + }, + value: { + type: PropTypes.array, + default: null + }, + expandable: { + type: Boolean, + default: false + }, + hideCheckAll: { + type: Boolean, + default: false + } + }, + data () { + return { + expand: false, + localCheckAll: false, + items: this.getItemsKey(filterEmpty(this.$slots.default)), + val: this.value || this.defaultValue || [] + } + }, + methods: { + onChange (checked) { + const key = Object.keys(this.items).filter(key => key === checked.value) + this.items[key] = checked.checked + const bool = Object.values(this.items).lastIndexOf(false) + if (bool === -1) { + this.localCheckAll = true + } else { + this.localCheckAll = false + } + }, + onCheckAll (checked) { + Object.keys(this.items).forEach(v => { + this.items[v] = checked.checked + }) + this.localCheckAll = checked.checked + }, + getItemsKey (items) { + const totalItem = {} + items.forEach(item => { + totalItem[item.componentOptions.propsData && item.componentOptions.propsData.value] = false + }) + return totalItem + }, + // CheckAll Button + renderCheckAll () { + const props = { + on: { + change: (checked) => { + this.onCheckAll(checked) + checked.value = 'total' + this.$emit('change', checked) + } + } + } + const checkAllElement = + return !this.hideCheckAll && checkAllElement || null + }, + // expandable + renderExpandable () { + + }, + // render option + renderTags (items) { + const listeners = { + change: (checked) => { + this.onChange(checked) + this.$emit('change', checked) + } + } + + return items.map(vnode => { + const options = vnode.componentOptions + options.listeners = listeners + return vnode + }) + } + }, + render () { + const { $props: { prefixCls } } = this + const classString = { + [`${prefixCls}`]: true + } + const tagItems = filterEmpty(this.$slots.default) + return ( +
+ {this.renderCheckAll()} + {this.renderTags(tagItems)} +
+ ) + } +} diff --git a/admin20250319/src/components/TextArea/index.jsx b/admin20250319/src/components/TextArea/index.jsx new file mode 100644 index 0000000..00aeb2f --- /dev/null +++ b/admin20250319/src/components/TextArea/index.jsx @@ -0,0 +1,69 @@ +import './style.less' +import { getStrFullLength, cutStrByFullLength } from '../_util/util' +import Input from 'ant-design-vue/es/input' +const TextArea = Input.TextArea + +export default { + name: 'LimitTextArea', + model: { + prop: 'value', + event: 'change' + }, + props: Object.assign({}, TextArea.props, { + prefixCls: { + type: String, + default: 'ant-textarea-limit' + }, + // eslint-disable-next-line + value: { + type: String + }, + limit: { + type: Number, + default: 200 + } + }), + data () { + return { + currentLimit: 0 + } + }, + watch: { + value (val) { + this.calcLimitNum(val) + } + }, + created () { + this.calcLimitNum(this.value) + }, + methods: { + handleChange (e) { + const value = e.target.value + const len = getStrFullLength(value) + if (len <= this.limit) { + this.currentLimit = len + this.$emit('change', value) + return + } else { + const str = cutStrByFullLength(value, this.limit) + this.currentLimit = getStrFullLength(str) + this.$emit('change', str) + } + console.error('limit out! currentLimit:', this.currentLimit) + }, + calcLimitNum (val) { + const len = getStrFullLength(val) + this.currentLimit = len + } + }, + render () { + const { prefixCls, ...props } = this.$props + return ( +
+ + {this.currentLimit}/{this.limit} +
+ ) + } +} diff --git a/admin20250319/src/components/TextArea/style.less b/admin20250319/src/components/TextArea/style.less new file mode 100644 index 0000000..6dee494 --- /dev/null +++ b/admin20250319/src/components/TextArea/style.less @@ -0,0 +1,12 @@ +.ant-textarea-limit { + position: relative; + + .limit { + position: absolute; + color: #909399; + background: #fff; + font-size: 12px; + bottom: 5px; + right: 10px; + } +} \ No newline at end of file diff --git a/admin20250319/src/components/Tree/Tree.jsx b/admin20250319/src/components/Tree/Tree.jsx new file mode 100644 index 0000000..e5a2a11 --- /dev/null +++ b/admin20250319/src/components/Tree/Tree.jsx @@ -0,0 +1,124 @@ +import { Menu, Icon, Input } from 'ant-design-vue' + +const { Item, ItemGroup, SubMenu } = Menu +const { Search } = Input + +export default { + name: 'Tree', + props: { + dataSource: { + type: Array, + required: true + }, + openKeys: { + type: Array, + default: () => [] + }, + search: { + type: Boolean, + default: false + } + }, + created () { + this.localOpenKeys = this.openKeys.slice(0) + }, + data () { + return { + localOpenKeys: [] + } + }, + methods: { + handlePlus (item) { + this.$emit('add', item) + }, + handleTitleClick (...args) { + this.$emit('titleClick', { args }) + }, + + renderSearch () { + return ( + + ) + }, + renderIcon (icon) { + return icon && () || null + }, + renderMenuItem (item) { + return ( + + { this.renderIcon(item.icon) } + { item.title } + this.handlePlus(item) } }}> + + ) + }, + renderItem (item) { + return item.children ? this.renderSubItem(item, item.key) : this.renderMenuItem(item, item.key) + }, + renderItemGroup (item) { + const childrenItems = item.children.map(o => { + return this.renderItem(o, o.key) + }) + + return ( + + + { childrenItems } + + ) + }, + renderSubItem (item, key) { + const childrenItems = item.children && item.children.map(o => { + return this.renderItem(o, o.key) + }) + + const title = ( + + { this.renderIcon(item.icon) } + { item.title } + + ) + + if (item.group) { + return this.renderItemGroup(item) + } + // titleClick={this.handleTitleClick(item)} + return ( + + { title } + { childrenItems } + + ) + } + }, + render () { + const { dataSource, search } = this.$props + + // this.localOpenKeys = openKeys.slice(0) + const list = dataSource.map(item => { + return this.renderItem(item) + }) + + return ( +
+ { search ? this.renderSearch() : null } + this.$emit('click', item), 'update:openKeys': val => { this.localOpenKeys = val } } }} openKeys={this.localOpenKeys}> + { list } + +
+ ) + } +} diff --git a/admin20250319/src/components/Trend/Trend.vue b/admin20250319/src/components/Trend/Trend.vue new file mode 100644 index 0000000..526e1cc --- /dev/null +++ b/admin20250319/src/components/Trend/Trend.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/admin20250319/src/components/Trend/index.js b/admin20250319/src/components/Trend/index.js new file mode 100644 index 0000000..9f14228 --- /dev/null +++ b/admin20250319/src/components/Trend/index.js @@ -0,0 +1,3 @@ +import Trend from './Trend.vue' + +export default Trend diff --git a/admin20250319/src/components/Trend/index.less b/admin20250319/src/components/Trend/index.less new file mode 100644 index 0000000..8a3d24c --- /dev/null +++ b/admin20250319/src/components/Trend/index.less @@ -0,0 +1,42 @@ +@import "../index"; + +@trend-prefix-cls: ~"@{ant-pro-prefix}-trend"; + +.@{trend-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + line-height: 22px; + + .up, + .down { + margin-left: 4px; + position: relative; + top: 1px; + + i { + font-size: 12px; + transform: scale(0.83); + } + } + + .item-text { + display: inline-block; + margin-left: 8px; + color: rgba(0,0,0,.85); + } + + .up { + color: @red-6; + } + .down { + color: @green-6; + top: -1px; + } + + &.reverse-color .up { + color: @green-6; + } + &.reverse-color .down { + color: @red-6; + } +} \ No newline at end of file diff --git a/admin20250319/src/components/Trend/index.md b/admin20250319/src/components/Trend/index.md new file mode 100644 index 0000000..8881f0e --- /dev/null +++ b/admin20250319/src/components/Trend/index.md @@ -0,0 +1,45 @@ +# Trend 趋势标记 + +趋势符号,标记上升和下降趋势。通常用绿色代表“好”,红色代表“不好”,股票涨跌场景除外。 + + + +引用方式: + +```javascript +import Trend from '@/components/Trend' + +export default { + components: { + Trend + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html +5% +``` +或 +```html + + 工资 + 5% + +``` +或 +```html +5% +``` + + +## API + +| 参数 | 说明 | 类型 | 默认值 | +|----------|------------------------------------------|-------------|-------| +| flag | 上升下降标识:`up|down` | string | - | +| reverseColor | 颜色反转 | Boolean | false | + diff --git a/admin20250319/src/components/UserSelect/UserSelect.vue b/admin20250319/src/components/UserSelect/UserSelect.vue new file mode 100644 index 0000000..5606c60 --- /dev/null +++ b/admin20250319/src/components/UserSelect/UserSelect.vue @@ -0,0 +1,76 @@ + + diff --git a/admin20250319/src/components/UserSelect/index.js b/admin20250319/src/components/UserSelect/index.js new file mode 100644 index 0000000..813c055 --- /dev/null +++ b/admin20250319/src/components/UserSelect/index.js @@ -0,0 +1,3 @@ +import UserSelect from './UserSelect' + +export default UserSelect diff --git a/admin20250319/src/components/_util/util.js b/admin20250319/src/components/_util/util.js new file mode 100644 index 0000000..dd33231 --- /dev/null +++ b/admin20250319/src/components/_util/util.js @@ -0,0 +1,46 @@ +/** + * components util + */ + +/** + * 清理空值,对象 + * @param children + * @returns {*[]} + */ +export function filterEmpty (children = []) { + return children.filter(c => c.tag || (c.text && c.text.trim() !== '')) +} + +/** + * 获取字符串长度,英文字符 长度1,中文字符长度2 + * @param {*} str + */ +export const getStrFullLength = (str = '') => + str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + return pre + 1 + } + return pre + 2 + }, 0) + +/** + * 截取字符串,根据 maxLength 截取后返回 + * @param {*} str + * @param {*} maxLength + */ +export const cutStrByFullLength = (str = '', maxLength) => { + let showLength = 0 + return str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + showLength += 1 + } else { + showLength += 2 + } + if (showLength <= maxLength) { + return pre + cur + } + return pre + }, '') +} diff --git a/admin20250319/src/components/global.less b/admin20250319/src/components/global.less new file mode 100644 index 0000000..3df4f4e --- /dev/null +++ b/admin20250319/src/components/global.less @@ -0,0 +1,520 @@ +@import './index.less'; + +body { + + +} + +#app { + height: 100%; + + &.colorWeak { + filter: invert(80%); + } + &.userLayout { + overflow: auto; + } +} + +.layout.ant-layout { + height: auto; + overflow-x: hidden; + + &.mobile, + &.tablet { + .ant-layout-content { + .content { + margin: 24px 0 0; + } + } + + /** + * ant-table-wrapper + * 覆盖的表格手机模式样式,如果想修改在手机上表格最低宽度,可以在这里改动 + */ + .ant-table-wrapper { + .ant-table-content { + overflow-y: auto; + } + .ant-table-body { + min-width: 800px; + } + } + .topmenu { + /* 必须为 topmenu 才能启用流式布局 */ + &.content-width-Fluid { + .header-index-wide { + margin-left: 0; + } + } + } + } + + &.mobile { + .sidemenu { + .ant-header-fixedHeader { + &.ant-header-side-opened, + &.ant-header-side-closed { + width: 100%; + } + } + } + } + + &.ant-layout-has-sider { + flex-direction: row; + } + + .trigger { + font-size: 20px; + line-height: 55px; + padding: 0 24px; + cursor: pointer; + transition: color 0.3s; + &:hover { + background: rgba(0, 0, 0, 0.025); + } + } + + .topmenu { + .ant-header-fixedHeader { + position: fixed; + top: 0; + right: 0; + z-index: 9; + width: 100%; + transition: width 0.2s; + + &.ant-header-side-opened { + width: 100%; + } + + &.ant-header-side-closed { + width: 100%; + } + } + /* 必须为 topmenu 才能启用流式布局 */ + &.content-width-Fluid { + .header-index-wide { + max-width: unset; + .header-index-left { + flex: 1 1 1000px; + .logo{ + margin-left: 25px; + } + .ant-menu.ant-menu-horizontal{ + max-width: calc(100vw - 190px - 238px - 25px); + flex: 1 1 calc(100vw - 190px - 238px - 25px); + } + } + .header-index-right{ + margin-right:25px; + } + } + + .page-header-index-wide { + max-width: unset; + } + } + } + + .sidemenu { + .ant-header-fixedHeader { + position: fixed; + top: 0; + right: 0; + z-index: 9; + width: 100%; + transition: width 0.2s; + + &.ant-header-side-opened { + width: calc(100% - 230px); + } + + &.ant-header-side-closed { + width: calc(100% - 80px); + } + } + } + + .header { + height: 55px; + // padding: 0 12px 0 0; + background: #fff; + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + position: relative; + } + + .header, + .top-nav-header-index { + .user-wrapper { + float: right; + height: 100%; + + .action { + line-height: 55px; + cursor: pointer; + padding: 0 12px; + display: inline-block; + transition: all 0.3s; + height: 100%; + color: rgba(0, 0, 0, 0.65); + + &:hover { + background: rgba(0, 0, 0, 0.025); + } + + .avatar { + margin: 15px 8px 15px 0; + color: #1890ff; + background: hsla(0, 0%, 100%, 0.85); + vertical-align: middle; + } + + .icon { + font-size: 16px; + padding: 4px; + } + } + } + + &.dark { + .user-wrapper { + .action { + color: rgba(255, 255, 255, 0.85); + a { + color: rgba(255, 255, 255, 0.85); + } + + &:hover { + background: rgba(255, 255, 255, 0.16); + } + } + } + } + } + + &.mobile, + &.tablet { + .top-nav-header-index { + .header-index-wide { + .header-index-left { + .trigger { + color: rgba(255, 255, 255, 0.85); + padding: 0 12px; + } + + .logo.top-nav-header { + flex: 0 0 56px; + text-align: center; + line-height: 58px; + h1 { + display: none; + } + } + } + } + + &.light { + .header-index-wide { + .header-index-left { + .trigger { + color: rgba(0, 0, 0, 0.65); + } + } + } + } + } + } + + &.tablet { + // overflow: hidden; text-overflow:ellipsis; white-space: nowrap; + .top-nav-header-index { + .header-index-wide { + .header-index-left { + .logo > a { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + .ant-menu.ant-menu-horizontal { + flex: 1 1 auto; + white-space: normal; + } + } + } + } + + .top-nav-header-index { + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + position: relative; + transition: background 0.3s, width 0.2s; + + .header-index-wide { + max-width: 1200px; + margin: auto; + padding-left: 0; + display: flex; + height: 55px; + + .ant-menu.ant-menu-horizontal { + max-width: 835px; + flex: 0 1 835px; + border: none; + height: 55px; + line-height: 55px; + } + + .header-index-left { + flex: 0 1 1000px; + display: flex; + + .logo.top-nav-header { + flex: 0 0 165px; + width: 165px; + height: 55px; + position: relative; + line-height: 55px; + transition: all 0.3s; + overflow: hidden; + + img, + svg { + display: inline-block; + vertical-align: middle; + height: 32px; + width: 32px; + } + + h1 { + color: #fff; + display: inline-block; + vertical-align: top; + font-size: 16px; + margin: 0 0 0 12px; + font-weight: 400; + } + } + } + + .header-index-right { + flex: 0 0 238px; + align-self: flex-end; + height: 55px; + overflow: hidden; + + .content-box { + float: right; + .action { + max-width: 140px; + overflow: hidden; + text-overflow:ellipsis; + white-space:nowrap; + } + } + } + } + + &.light { + background-color: #fff; + + .header-index-wide { + .header-index-left { + .logo { + h1 { + color: #002140; + } + } + } + } + } + } + + // 内容区 + .layout-content { + margin: 24px 24px 0px; + //height: 100%; + //height: 64px; + padding: 0 12px 0 0; + } + + // footer + .ant-layout-footer { + padding: 0; + } +} + +.topmenu { + .page-header-index-wide { + max-width: 1200px; + margin: 0 auto; + } +} + +// drawer-sider 自定义 +.ant-drawer.drawer-sider { + .sider { + box-shadow: none; + } + + &.dark { + .ant-drawer-content { + background-color: rgb(0, 21, 41); + } + } + &.light { + box-shadow: none; + .ant-drawer-content { + background-color: #fff; + } + } + + .ant-drawer-body { + padding: 0; + } +} + +// 菜单样式 +.sider { + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + position: relative; + z-index: @ant-global-sider-zindex; + min-height: 100vh; + + .ant-layout-sider-children { + overflow-y: hidden; + + &:hover { + overflow-y: auto; + } + } + + &.ant-fixed-sidemenu { + position: fixed; + height: 100%; + } + + // logo区域样式 + .logo { + position: relative; + height: 55px; + padding-left: 24px; + overflow: hidden; + line-height: 55px; + background: #002140; + transition: all .3s; + + img, + svg, + h1 { + display: inline-block; + vertical-align: middle; + } + + img, + svg { + height: 32px; + width: 32px; + } + + h1 { + color: #fff; + font-size: 20px; + margin: 0 0 0 12px; + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; + font-weight: 600; + vertical-align: middle; + } + } + + &.light { + background-color: #fff; + box-shadow: 2px 0px 8px 0px rgba(29, 35, 41, 0.05); + + .logo { + background: #fff; + box-shadow: 1px 1px 0px 0px #e8e8e8; + + h1 { + color: unset; + } + } + + .ant-menu-light { + border-right-color: transparent; + } + } +} + +// 外置的样式控制 +.user-dropdown-menu { + span { + user-select: none; + } +} +.user-dropdown-menu-wrapper.ant-dropdown-menu { + padding: 4px 0; + + .ant-dropdown-menu-item { + width: 160px; + } + + .ant-dropdown-menu-item > .anticon:first-child, + .ant-dropdown-menu-item > a > .anticon:first-child, + .ant-dropdown-menu-submenu-title > .anticon:first-child .ant-dropdown-menu-submenu-title > a > .anticon:first-child { + min-width: 12px; + margin-right: 8px; + } +} + +// 数据列表 样式 +.table-alert { + margin-bottom: 16px; +} + +.table-page-search-wrapper { + .ant-form-inline { + .ant-form-item { + display: flex; + margin-bottom: 24px; + margin-right: 0; + + .ant-form-item-control-wrapper { + flex: 1 1; + display: inline-block; + vertical-align: middle; + } + + > .ant-form-item-label { + line-height: 32px; + padding-right: 8px; + width: auto; + } + .ant-form-item-control { + height: 32px; + line-height: 32px; + } + } + } + + .table-page-search-submitButtons { + display: block; + margin-bottom: 0px; + // white-space: nowrap; + + button{ + margin-bottom:5px; + } + } +} + +.content { + .table-operator { + margin-bottom: 18px; + + button { + margin-right: 8px; + } + } +} diff --git a/admin20250319/src/components/index.js b/admin20250319/src/components/index.js new file mode 100644 index 0000000..bc13583 --- /dev/null +++ b/admin20250319/src/components/index.js @@ -0,0 +1,64 @@ +// chart +import Bar from '@/components/Charts/Bar' +import ChartCard from '@/components/Charts/ChartCard' +import Liquid from '@/components/Charts/Liquid' +import MiniSmoothArea from '@/components/Charts/MiniSmoothArea' +import MiniProgress from '@/components/Charts/MiniProgress' +import Radar from '@/components/Charts/Radar' +import RankList from '@/components/Charts/RankList' +import TransferBar from '@/components/Charts/TransferBar' + +// pro components +import AvatarList from '@/components/AvatarList' +import CountDown from '@/components/CountDown' +import Ellipsis from '@/components/Ellipsis' +import FooterToolbar from '@/components/FooterToolbar' +import NumberInfo from '@/components/NumberInfo' +import DescriptionList from '@/components/DescriptionList' +import Tree from '@/components/Tree/Tree' +import Trend from '@/components/Trend' +import STable from '@/components/Table' +import MultiTab from '@/components/MultiTab' +import Result from '@/components/Result' +import IconSelector from '@/components/IconSelector' +import TagSelect from '@/components/TagSelect' +import ExceptionPage from '@/components/Exception' +import StandardFormRow from '@/components/StandardFormRow' +import ArticleListContent from '@/components/ArticleListContent' +import AntdEditor from '@/components/Editor/WangEditor' +import Dialog from '@/components/Dialog' + +// xn components +import XCard from '@/components/xnComponents/XCard' + +export { + AvatarList, + Bar, + ChartCard, + Liquid, + MiniSmoothArea, + MiniProgress, + Radar, + RankList, + TransferBar, + Trend, + CountDown, + Ellipsis, + FooterToolbar, + NumberInfo, + DescriptionList, + // 兼容写法,请勿继续使用 + DescriptionList as DetailList, + Tree, + STable, + MultiTab, + Result, + ExceptionPage, + IconSelector, + TagSelect, + StandardFormRow, + ArticleListContent, + AntdEditor, + Dialog, + XCard +} diff --git a/admin20250319/src/components/index.less b/admin20250319/src/components/index.less new file mode 100644 index 0000000..e831c41 --- /dev/null +++ b/admin20250319/src/components/index.less @@ -0,0 +1,6 @@ +@import "~ant-design-vue/lib/style/index"; + +// The prefix to use on all css classes from ant-pro. +@ant-pro-prefix : ant-pro; +@ant-global-sider-zindex : 106; +@ant-global-header-zindex : 105; \ No newline at end of file diff --git a/admin20250319/src/components/tools/Breadcrumb.vue b/admin20250319/src/components/tools/Breadcrumb.vue new file mode 100644 index 0000000..9bc141c --- /dev/null +++ b/admin20250319/src/components/tools/Breadcrumb.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/admin20250319/src/components/tools/DetailList.vue b/admin20250319/src/components/tools/DetailList.vue new file mode 100644 index 0000000..6745a08 --- /dev/null +++ b/admin20250319/src/components/tools/DetailList.vue @@ -0,0 +1,5 @@ + diff --git a/admin20250319/src/components/tools/HeadInfo.vue b/admin20250319/src/components/tools/HeadInfo.vue new file mode 100644 index 0000000..7fbc692 --- /dev/null +++ b/admin20250319/src/components/tools/HeadInfo.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/admin20250319/src/components/tools/LangSelect.vue b/admin20250319/src/components/tools/LangSelect.vue new file mode 100644 index 0000000..283f356 --- /dev/null +++ b/admin20250319/src/components/tools/LangSelect.vue @@ -0,0 +1,46 @@ + + + diff --git a/admin20250319/src/components/tools/Logo.vue b/admin20250319/src/components/tools/Logo.vue new file mode 100644 index 0000000..853c492 --- /dev/null +++ b/admin20250319/src/components/tools/Logo.vue @@ -0,0 +1,64 @@ + + + diff --git a/admin20250319/src/components/tools/TwoStepCaptcha.vue b/admin20250319/src/components/tools/TwoStepCaptcha.vue new file mode 100644 index 0000000..4367ffe --- /dev/null +++ b/admin20250319/src/components/tools/TwoStepCaptcha.vue @@ -0,0 +1,88 @@ + + + + diff --git a/admin20250319/src/components/tools/UserMenu.vue b/admin20250319/src/components/tools/UserMenu.vue new file mode 100644 index 0000000..e4d093e --- /dev/null +++ b/admin20250319/src/components/tools/UserMenu.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/admin20250319/src/components/tools/index.js b/admin20250319/src/components/tools/index.js new file mode 100644 index 0000000..e69de29 diff --git a/admin20250319/src/components/verifition/Verify.vue b/admin20250319/src/components/verifition/Verify.vue new file mode 100644 index 0000000..bea4d10 --- /dev/null +++ b/admin20250319/src/components/verifition/Verify.vue @@ -0,0 +1,473 @@ + + + diff --git a/admin20250319/src/components/verifition/Verify/VerifyPoints.vue b/admin20250319/src/components/verifition/Verify/VerifyPoints.vue new file mode 100644 index 0000000..4f7f496 --- /dev/null +++ b/admin20250319/src/components/verifition/Verify/VerifyPoints.vue @@ -0,0 +1,259 @@ +/* eslint-disable no-unused-vars */ + + diff --git a/admin20250319/src/components/verifition/Verify/VerifySlide.vue b/admin20250319/src/components/verifition/Verify/VerifySlide.vue new file mode 100644 index 0000000..8e91a5e --- /dev/null +++ b/admin20250319/src/components/verifition/Verify/VerifySlide.vue @@ -0,0 +1,374 @@ + + diff --git a/admin20250319/src/components/verifition/utils/ase.js b/admin20250319/src/components/verifition/utils/ase.js new file mode 100644 index 0000000..7556cd7 --- /dev/null +++ b/admin20250319/src/components/verifition/utils/ase.js @@ -0,0 +1,11 @@ +import CryptoJS from 'crypto-js' +/** + * @word 要加密的内容 + * @keyWord String 服务器随机返回的关键字 + */ +export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { + var key = CryptoJS.enc.Utf8.parse(keyWord) + var srcs = CryptoJS.enc.Utf8.parse(word) + var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) + return encrypted.toString() +} diff --git a/admin20250319/src/components/verifition/utils/axios.js b/admin20250319/src/components/verifition/utils/axios.js new file mode 100644 index 0000000..b98b993 --- /dev/null +++ b/admin20250319/src/components/verifition/utils/axios.js @@ -0,0 +1,30 @@ +import axios from 'axios' + +axios.defaults.baseURL = process.env.BASE_API + +const service = axios.create({ + timeout: 40000, + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json; charset=UTF-8' + } +}) +service.interceptors.request.use( + config => { + return config + }, + error => { + Promise.reject(error) + } +) + +// response interceptor +service.interceptors.response.use( + response => { + const res = response.data + return res + }, + () => { + } +) +export default service diff --git a/admin20250319/src/components/verifition/utils/util.js b/admin20250319/src/components/verifition/utils/util.js new file mode 100644 index 0000000..f6c5746 --- /dev/null +++ b/admin20250319/src/components/verifition/utils/util.js @@ -0,0 +1,52 @@ +export function resetSize(vm) { + // eslint-disable-next-line camelcase + var img_width, img_height, bar_width, bar_height // 图片的宽度、高度,移动条的宽度、高度 + + var parentWidth = vm.$el.parentNode.offsetWidth || window.offsetWidth + var parentHeight = vm.$el.parentNode.offsetHeight || window.offsetHeight + + // eslint-disable-next-line eqeqeq + if (vm.imgSize.width.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + img_width = parseInt(this.imgSize.width) / 100 * parentWidth + 'px' + } else { + // eslint-disable-next-line camelcase + img_width = this.imgSize.width + } + + // eslint-disable-next-line eqeqeq + if (vm.imgSize.height.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + img_height = parseInt(this.imgSize.height) / 100 * parentHeight + 'px' + } else { + // eslint-disable-next-line camelcase + img_height = this.imgSize.height + } + + // eslint-disable-next-line eqeqeq + if (vm.barSize.width.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + bar_width = parseInt(this.barSize.width) / 100 * parentWidth + 'px' + } else { + // eslint-disable-next-line camelcase + bar_width = this.barSize.width + } + + // eslint-disable-next-line eqeqeq + if (vm.barSize.height.indexOf('%') != -1) { + // eslint-disable-next-line camelcase + bar_height = parseInt(this.barSize.height) / 100 * parentHeight + 'px' + } else { + // eslint-disable-next-line camelcase + bar_height = this.barSize.height + } + + return { imgWidth: img_width, imgHeight: img_height, barWidth: bar_width, barHeight: bar_height } +} + +// eslint-disable-next-line camelcase +export const _code_chars = [1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] +// eslint-disable-next-line camelcase +export const _code_color1 = ['#fffff0', '#f0ffff', '#f0fff0', '#fff0f0'] +// eslint-disable-next-line camelcase +export const _code_color2 = ['#FF0033', '#006699', '#993366', '#FF9900', '#66CC66', '#FF33CC'] diff --git a/admin20250319/src/components/xnComponents/XCard.vue b/admin20250319/src/components/xnComponents/XCard.vue new file mode 100644 index 0000000..4fdb719 --- /dev/null +++ b/admin20250319/src/components/xnComponents/XCard.vue @@ -0,0 +1,16 @@ + + + diff --git a/admin20250319/src/config/defaultSettings.js b/admin20250319/src/config/defaultSettings.js new file mode 100644 index 0000000..638b156 --- /dev/null +++ b/admin20250319/src/config/defaultSettings.js @@ -0,0 +1,36 @@ +/** + * 项目默认配置项 + * primaryColor - 默认主题色, 如果修改颜色不生效,请清理 localStorage + * navTheme - sidebar theme ['dark', 'light'] 两种主题 + * colorWeak - 色盲模式 + * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 + * fixedHeader - 固定 Header : boolean + * fixSiderbar - 固定左侧菜单栏 : boolean + * autoHideHeader - 向下滚动时,隐藏 Header : boolean + * contentWidth - 内容区布局: 流式 | 固定 + * + * storageOptions: {} - Vue-ls 插件配置项 (localStorage/sessionStorage) + * production: 变量暂先设定为 false,目的是各种环境都正常显示设置抽屉,真实环境请放开注释 + * + * + */ + +export default { + primaryColor: '#2F54EB', // primary color of ant design + navTheme: 'dark', // theme for nav menu + layout: 'sidemenu', // nav menu position: sidemenu or topmenu + contentWidth: 'Fixed', // layout of content: Fluid or Fixed, only works when layout is topmenu + fixedHeader: true, // sticky header + fixSiderbar: true, // sticky siderbar + autoHideHeader: false, // auto hide header + colorWeak: false, + multiTab: true, + crumbsSate: false, + production: process.env.NODE_ENV === 'production' && process.env.VUE_APP_PREVIEW !== 'true', + // vue-ls options + storageOptions: { + namespace: 'jtsh__', // key prefix + name: 'ls', // name variable Vue.[ls] or this.[$ls], + storage: 'local' // storage name session, local, memory + } +} diff --git a/admin20250319/src/config/router.config.js b/admin20250319/src/config/router.config.js new file mode 100644 index 0000000..650d493 --- /dev/null +++ b/admin20250319/src/config/router.config.js @@ -0,0 +1,91 @@ +// eslint-disable-next-line +import { UserLayout, BasicLayout, RouteView, BlankLayout, PageView } from '@/layouts' +import { bxAnaalyse } from '@/core/icons' + +export const asyncRouterMap = [ + + { + path: '/', + name: 'MenuIndex.vue', + component: BasicLayout, + meta: { title: '首页' }, + redirect: '/dashboard/workplace', + children: [ + // dashboard + { + path: 'dashboard', + name: 'dashboard', + redirect: '/dashboard/workplace', + component: RouteView, + // eslint-disable-next-line standard/object-curly-even-spacing + meta: { title: '仪表盘', keepAlive: true, icon: bxAnaalyse /* permission: [ 'dashboard' ] */ }, + children: [ + { + path: 'analysis/:pageNo([1-9]\\d*)?', + name: 'Analysis', + component: () => import('@/views/system/dashboard/Analysis'), + // eslint-disable-next-line standard/object-curly-even-spacing + meta: { title: '分析页', keepAlive: true /* permission: [ 'dashboard' ] */ } + }, + { + path: 'workplace', + name: 'Workplace', + component: () => import('@/views/system/dashboard/Workplace'), + // eslint-disable-next-line standard/object-curly-even-spacing + meta: { title: '工作台', keepAlive: false/*, permission: [ 'dashboard' ] */ } + } + ] + } + ] + }, + { + path: '*', redirect: '/404', hidden: true + } +] + +/** + * 基础路由 + * @type { *[] } + */ +export const constantRouterMap = [ + { + path: '/user', + component: UserLayout, + redirect: '/user/login', + hidden: true, + children: [ + { + path: 'login', + name: 'login', + component: () => import(/* webpackChunkName: "user" */ '@/views/userLoginReg/Login'), + meta: { + title: '登录' + } + }, + { + path: 'recover', + name: 'recover', + component: undefined + } + ] + }, + + { + path: '/test', + component: BlankLayout, + redirect: '/test/home', + children: [ + { + path: 'home', + name: 'TestHome', + component: () => import('@/views/Home') + } + ] + }, + + { + path: '/404', + component: () => import(/* webpackChunkName: "fail" */ '@/views/system/exception/404') + } + +] diff --git a/admin20250319/src/core/bootstrap.js b/admin20250319/src/core/bootstrap.js new file mode 100644 index 0000000..58cb248 --- /dev/null +++ b/admin20250319/src/core/bootstrap.js @@ -0,0 +1,41 @@ +/* + * @Author: your name + * @Date: 2021-05-18 23:01:53 + * @LastEditTime: 2021-05-19 00:57:22 + * @LastEditors: your name + * @Description: In User Settings Edit + * @FilePath: \frontend\src\core\bootstrap.js + */ +import Vue from 'vue' +import store from '@/store/' +import { + ACCESS_TOKEN, + DEFAULT_COLOR, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR_WEAK, + SIDEBAR_TYPE, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_TAB, + DEFAULT_CRUMBS_STATE +} from '@/store/mutation-types' + +import config from '@/config/defaultSettings' + +export default function Initializer () { + store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true)) + store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme)) + store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout)) + store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader)) + store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar)) + store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth)) + store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader)) + store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak)) + store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor)) + store.commit('TOGGLE_MULTI_TAB', Vue.ls.get(DEFAULT_MULTI_TAB, config.multiTab)) + store.commit('TOGGLE_CRUMBS_STATE', Vue.ls.get(DEFAULT_CRUMBS_STATE, config.crumbsSate)) + store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN)) +} diff --git a/admin20250319/src/core/directives/action.js b/admin20250319/src/core/directives/action.js new file mode 100644 index 0000000..bdc9ec0 --- /dev/null +++ b/admin20250319/src/core/directives/action.js @@ -0,0 +1,34 @@ +import Vue from 'vue' +import store from '@/store' + +/** + * Action 权限指令 + * 指令用法: + * - 在需要控制 action 级别权限的组件上使用 v-action:[method] , 如下: + * 添加用户 + * 删除用户 + * 修改 + * + * - 当前用户没有权限时,组件上使用了该指令则会被隐藏 + * - 当后台权限跟 pro 提供的模式不同时,只需要针对这里的权限过滤进行修改即可 + * + * @see https://github.com/sendya/ant-design-pro-vue/pull/53 + */ +const action = Vue.directive('action', { + inserted: function (el, binding, vnode) { + const actionName = binding.arg + const roles = store.getters.roles + const elVal = vnode.context.$route.meta.permission + const permissionId = elVal instanceof String && [elVal] || elVal + roles.permissions.forEach(p => { + if (!permissionId.includes(p.permissionId)) { + return + } + if (p.actionList && !p.actionList.includes(actionName)) { + el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none') + } + }) + } +}) + +export default action diff --git a/admin20250319/src/core/icons.js b/admin20250319/src/core/icons.js new file mode 100644 index 0000000..46b7261 --- /dev/null +++ b/admin20250319/src/core/icons.js @@ -0,0 +1,11 @@ +/** + * Custom icon list + * All icons are loaded here for easy management + * @see https://vue.ant.design/components/icon/#Custom-Font-Icon + * + * 自定义图标加载表 + * 所有图标均从这里加载,方便管理 + */ +import bxAnaalyse from '@/assets/icons/bx-analyse.svg?inline' // path to your '*.svg?inline' file. + +export { bxAnaalyse } diff --git a/admin20250319/src/core/lazy_lib/components_use.js b/admin20250319/src/core/lazy_lib/components_use.js new file mode 100644 index 0000000..325900a --- /dev/null +++ b/admin20250319/src/core/lazy_lib/components_use.js @@ -0,0 +1,118 @@ +/** + * 该文件是为了按需加载,剔除掉了一些不需要的框架组件。 + * 减少了编译支持库包大小 + * @author yubaoshan + * 当需要更多组件依赖时,在该文件加入即可 + */ +import Vue from 'vue' +import { + ConfigProvider, + Layout, + Input, + InputNumber, + Button, + Switch, + Radio, + Checkbox, + Select, + Card, + Form, + Row, + Col, + Modal, + Table, + Tabs, + Icon, + Badge, + Popover, + Dropdown, + List, + Avatar, + Breadcrumb, + Steps, + Spin, + Menu, + Drawer, + Tooltip, + Alert, + Tag, + Divider, + DatePicker, + TimePicker, + Upload, + Progress, + Skeleton, + Popconfirm, + message, + notification, + TreeSelect, + Tree, + Transfer, + Empty, + PageHeader, + Descriptions, + Result, + Cascader +} from 'ant-design-vue' +// import VueCropper from 'vue-cropper' + +import { $MyInfo, $MySuccess, $MyError, $MyWarn } from '@/utils/common' +Vue.use(ConfigProvider) +Vue.use(Layout) +Vue.use(Input) +Vue.use(InputNumber) +Vue.use(Button) +Vue.use(Switch) +Vue.use(Radio) +Vue.use(Checkbox) +Vue.use(Select) +Vue.use(Card) +Vue.use(Form) +Vue.use(Row) +Vue.use(Col) +Vue.use(Modal) +Vue.use(Table) +Vue.use(Tabs) +Vue.use(Icon) +Vue.use(Badge) +Vue.use(Popover) +Vue.use(Dropdown) +Vue.use(List) +Vue.use(Avatar) +Vue.use(Breadcrumb) +Vue.use(Steps) +Vue.use(Spin) +Vue.use(Menu) +Vue.use(Drawer) +Vue.use(Tooltip) +Vue.use(Alert) +Vue.use(Tag) +Vue.use(Divider) +Vue.use(DatePicker) +Vue.use(TimePicker) +Vue.use(Upload) +Vue.use(Progress) +Vue.use(Skeleton) +Vue.use(Popconfirm) +// Vue.use(VueCropper) +Vue.use(notification) +Vue.use(TreeSelect) +Vue.use(Tree) +Vue.use(Transfer) +Vue.use(Empty) +Vue.use(PageHeader) +Vue.use(Descriptions) +Vue.use(Result) +Vue.use(Cascader) + +Vue.prototype.$confirm = Modal.confirm +Vue.prototype.$message = message +Vue.prototype.$notification = notification +Vue.prototype.$info = Modal.info +Vue.prototype.$success = Modal.success +Vue.prototype.$error = Modal.error +Vue.prototype.$warning = Modal.warning +Vue.prototype.$myinfo = $MyInfo +Vue.prototype.$mysuccess = $MySuccess +Vue.prototype.$myerror = $MyError +Vue.prototype.$mywarning = $MyWarn diff --git a/admin20250319/src/core/lazy_use.js b/admin20250319/src/core/lazy_use.js new file mode 100644 index 0000000..63d3370 --- /dev/null +++ b/admin20250319/src/core/lazy_use.js @@ -0,0 +1,24 @@ +import Vue from 'vue' +import VueStorage from 'vue-ls' +import config from '@/config/defaultSettings' + +// base library +import '@/core/lazy_lib/components_use' +// ext library +import VueClipboard from 'vue-clipboard2' +import VueCropper from 'vue-cropper' +import MultiTab from '@/components/MultiTab' +import PageLoading from '@/components/PageLoading' +import PermissionHelper from '@/utils/helper/permission' +import './directives/action' + +VueClipboard.config.autoSetContainer = true + +Vue.use(MultiTab) +Vue.use(PageLoading) +Vue.use(VueStorage, config.storageOptions) +Vue.use(VueClipboard) +Vue.use(PermissionHelper) +Vue.use(VueCropper) + +process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] NOTICE: Antd use lazy-load.') diff --git a/admin20250319/src/core/use.js b/admin20250319/src/core/use.js new file mode 100644 index 0000000..5d025e9 --- /dev/null +++ b/admin20250319/src/core/use.js @@ -0,0 +1,28 @@ +import Vue from 'vue' +import VueStorage from 'vue-ls' +import config from '@/config/defaultSettings' + +// base library +import Antd from 'ant-design-vue' +import VueCropper from 'vue-cropper' +import 'ant-design-vue/dist/antd.less' + +// ext library +import VueClipboard from 'vue-clipboard2' +import MultiTab from '@/components/MultiTab' +import PageLoading from '@/components/PageLoading' +import PermissionHelper from '@/utils/helper/permission' +// import '@/components/use' +import './directives/action' + +VueClipboard.config.autoSetContainer = true + +Vue.use(Antd) +Vue.use(MultiTab) +Vue.use(PageLoading) +Vue.use(VueStorage, config.storageOptions) +Vue.use(VueClipboard) +Vue.use(PermissionHelper) +Vue.use(VueCropper) + +process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] WARNING: Antd now use fulled imported.') diff --git a/admin20250319/src/layouts/BasicLayout.vue b/admin20250319/src/layouts/BasicLayout.vue new file mode 100644 index 0000000..731e4be --- /dev/null +++ b/admin20250319/src/layouts/BasicLayout.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/admin20250319/src/layouts/BlankLayout.vue b/admin20250319/src/layouts/BlankLayout.vue new file mode 100644 index 0000000..1bfbfbf --- /dev/null +++ b/admin20250319/src/layouts/BlankLayout.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/admin20250319/src/layouts/Iframe.vue b/admin20250319/src/layouts/Iframe.vue new file mode 100644 index 0000000..e2526a4 --- /dev/null +++ b/admin20250319/src/layouts/Iframe.vue @@ -0,0 +1,29 @@ + + diff --git a/admin20250319/src/layouts/PageView.vue b/admin20250319/src/layouts/PageView.vue new file mode 100644 index 0000000..7d9c6e1 --- /dev/null +++ b/admin20250319/src/layouts/PageView.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/admin20250319/src/layouts/RouteView.vue b/admin20250319/src/layouts/RouteView.vue new file mode 100644 index 0000000..edae19e --- /dev/null +++ b/admin20250319/src/layouts/RouteView.vue @@ -0,0 +1,32 @@ + diff --git a/admin20250319/src/layouts/UserLayout.vue b/admin20250319/src/layouts/UserLayout.vue new file mode 100644 index 0000000..d8cdca2 --- /dev/null +++ b/admin20250319/src/layouts/UserLayout.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/admin20250319/src/layouts/index.js b/admin20250319/src/layouts/index.js new file mode 100644 index 0000000..a7ab0c9 --- /dev/null +++ b/admin20250319/src/layouts/index.js @@ -0,0 +1,8 @@ +import UserLayout from './UserLayout' +import BlankLayout from './BlankLayout' +import BasicLayout from './BasicLayout' +import RouteView from './RouteView' +import PageView from './PageView' +import Iframe from './Iframe' + +export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView, Iframe } diff --git a/admin20250319/src/main.js b/admin20250319/src/main.js new file mode 100644 index 0000000..66d8903 --- /dev/null +++ b/admin20250319/src/main.js @@ -0,0 +1,41 @@ +// with polyfills +import 'core-js/stable' +import 'regenerator-runtime/runtime' +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import store from './store/' +import { VueAxios } from './utils/request' +// WARNING: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV. +import './mock' + +import bootstrap from './core/bootstrap' +import './core/lazy_use' +import './permission' +import './utils/filter' +import './components/global.less' +import { Dialog } from '@/components' +import { hasBtnPermission } from './utils/permissions' +import { sysApplication } from './utils/applocation' + +// import KFormDesign from 'k-form-design' +// import KFormDesign from 'k-form-design/lib/k-form-design-mini.umd.min' +// import 'k-form-design/lib/k-form-design.css' +import 'ant-design-vue/dist/antd.less' + +import dataV from '@jiaminghi/data-view' + +// Vue.use(KFormDesign) +Vue.use(dataV) + +Vue.use(VueAxios) +Vue.use(Dialog) +Vue.prototype.hasPerm = hasBtnPermission +Vue.prototype.applocation = sysApplication +Vue.config.productionTip = false +new Vue({ + router, + store, + created: bootstrap, + render: h => h(App) +}).$mount('#app') diff --git a/admin20250319/src/mock/index.js b/admin20250319/src/mock/index.js new file mode 100644 index 0000000..63ed127 --- /dev/null +++ b/admin20250319/src/mock/index.js @@ -0,0 +1,21 @@ +import { isIE } from '@/utils/util' + +// 判断环境不是 prod 或者 preview 是 true 时,加载 mock 服务 +if (process.env.NODE_ENV !== 'production' || process.env.VUE_APP_PREVIEW === 'true') { + if (isIE()) { + console.error('[antd-pro] ERROR: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV.') + } + // 使用同步加载依赖 + // 防止 vuex 中的 GetInfo 早于 mock 运行,导致无法 mock 请求返回结果 + const Mock = require('mockjs2') + require('./services/auth') + require('./services/user') + require('./services/manage') + require('./services/other') + require('./services/tagCloud') + require('./services/article') + + Mock.setup({ + timeout: 800 // setter delay time + }) +} diff --git a/admin20250319/src/mock/services/article.js b/admin20250319/src/mock/services/article.js new file mode 100644 index 0000000..a8ab1ea --- /dev/null +++ b/admin20250319/src/mock/services/article.js @@ -0,0 +1,88 @@ +import Mock from 'mockjs2' +import { builder, getQueryParameters } from '../util' + +const titles = [ + 'Alipay', + 'Angular', + 'Ant Design', + 'Admin.NET', + 'Bootstrap', + 'React', + 'Vue', + 'Webpack' +] + +const avatar = ['https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png' +] + +const covers = [ + 'https://gw.alipayobjects.com/zos/rmsportal/uMfMFlvUuceEyPpotzlq.png', + 'https://gw.alipayobjects.com/zos/rmsportal/iZBVOIhGJiAnhplqjvZW.png', + 'https://gw.alipayobjects.com/zos/rmsportal/iXjVmWVHbCJAyqvDxdtx.png', + 'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png' +] + +const owner = [ + '付小小', + '吴加好', + '周星星', + '林东东', + '曲丽丽' +] + +const content = '段落示意:蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。' +const description = '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。' +const href = 'https://ant.design' + +const article = (options) => { + const queryParameters = getQueryParameters(options) + if (queryParameters && !queryParameters.count) { + queryParameters.count = 5 + } + const data = [] + for (let i = 0; i < queryParameters.count; i++) { + const tmpKey = i + 1 + const num = parseInt(Math.random() * (4 + 1), 10) + data.push({ + id: tmpKey, + avatar: avatar[num], + owner: owner[num], + content: content, + star: Mock.mock('@integer(1, 999)'), + percent: Mock.mock('@integer(1, 999)'), + like: Mock.mock('@integer(1, 999)'), + message: Mock.mock('@integer(1, 999)'), + description: description, + href: href, + title: titles[ i % 8 ], + updatedAt: Mock.mock('@datetime'), + members: [ + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png', + name: '曲丽丽', + id: 'member1' + }, + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png', + name: '王昭君', + id: 'member2' + }, + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png', + name: '董娜娜', + id: 'member3' + } + ], + activeUser: Math.ceil(Math.random() * 100000) + 100000, + newUser: Math.ceil(Math.random() * 1000) + 1000, + cover: parseInt(i / 4, 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)] + }) + } + return builder(data) +} + +Mock.mock(/\/list\/article/, 'get', article) diff --git a/admin20250319/src/mock/services/auth.js b/admin20250319/src/mock/services/auth.js new file mode 100644 index 0000000..717a72b --- /dev/null +++ b/admin20250319/src/mock/services/auth.js @@ -0,0 +1,49 @@ +import Mock from 'mockjs2' +import { builder, getBody } from '../util' + +const username = ['admin', 'super'] +// 强硬要求 ant.design 相同密码 +// '21232f297a57a5a743894a0e4a801fc3', +const password = ['8914de686ab28dc22f30d3d8e107ff6c'] // admin, ant.design + +const login = (options) => { + const body = getBody(options) + if (!username.includes(body.username) || !password.includes(body.password)) { + return builder({ isLogin: true }, '账户或密码错误', 401) + } + + return builder({ + 'id': Mock.mock('@guid'), + 'name': Mock.mock('@name'), + 'username': 'admin', + 'password': '', + 'avatar': 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png', + 'status': 1, + 'telephone': '', + 'lastLoginIp': '27.154.74.117', + 'lastLoginTime': 1534837621348, + 'creatorId': 'admin', + 'createTime': 1497160610259, + 'deleted': 0, + 'roleId': 'admin', + 'lang': 'zh-CN', + 'token': '4291d7da9005377ec9aec4a71ea837f' + }, '', 200, { 'Custom-Header': Mock.mock('@guid') }) +} + +const logout = () => { + return builder({}, '[测试接口] 注销成功') +} + +const smsCaptcha = () => { + return builder({ captcha: Mock.mock('@integer(10000, 99999)') }) +} + +const twofactor = () => { + return builder({ stepCode: Mock.mock('@integer(0, 1)') }) +} + +Mock.mock(/\/auth\/login/, 'post', login) +Mock.mock(/\/auth\/logout/, 'post', logout) +Mock.mock(/\/account\/sms/, 'post', smsCaptcha) +Mock.mock(/\/auth\/2step-code/, 'post', twofactor) diff --git a/admin20250319/src/mock/services/manage.js b/admin20250319/src/mock/services/manage.js new file mode 100644 index 0000000..b077f69 --- /dev/null +++ b/admin20250319/src/mock/services/manage.js @@ -0,0 +1,252 @@ +import Mock from 'mockjs2' +import { builder, getQueryParameters } from '../util' + +const totalCount = 5701 + +const serverList = (options) => { + const parameters = getQueryParameters(options) + + const result = [] + const pageNo = parseInt(parameters.pageNo) + const pageSize = parseInt(parameters.pageSize) + const totalPage = Math.ceil(totalCount / pageSize) + const key = (pageNo - 1) * pageSize + const next = (pageNo >= totalPage ? (totalCount % pageSize) : pageSize) + 1 + + for (let i = 1; i < next; i++) { + const tmpKey = key + i + result.push({ + key: tmpKey, + id: tmpKey, + no: 'No ' + tmpKey, + description: '这是一段描述', + callNo: Mock.mock('@integer(1, 999)'), + status: Mock.mock('@integer(0, 3)'), + updatedAt: Mock.mock('@datetime'), + editable: false + }) + } + + return builder({ + pageSize: pageSize, + pageNo: pageNo, + totalCount: totalCount, + totalPage: totalPage, + data: result + }) +} + +const projects = () => { + return builder({ + 'data': [{ + id: 1, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + title: 'Alipay', + description: '那是一种内在的东西, 他们到达不了,也无法触及的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 2, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + title: 'Angular', + description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 3, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + title: 'Ant Design', + description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 4, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + title: 'Admin.NET', + description: '那时候我只会想自己想要什么,从不想自己拥有什么', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 5, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', + title: 'Bootstrap', + description: '凛冬将至', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 6, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', + title: 'Vue', + description: '生命就像一盒巧克力,结果往往出人意料', + status: 1, + updatedAt: '2018-07-26 00:00:00' + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 6, + 'totalCount': 57 + }) +} + +const activity = () => { + return builder([{ + id: 1, + user: { + nickname: '@name', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + project: { + name: '白鹭酱油开发组', + action: '更新', + event: '番组计划' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '蓝莓酱', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png' + }, + project: { + name: '白鹭酱油开发组', + action: '更新', + event: '番组计划' + }, + time: '2018-08-23 09:35:37' + }, + { + id: 1, + user: { + nickname: '@name', + avatar: '@image(64x64)' + }, + project: { + name: '白鹭酱油开发组', + action: '创建', + event: '番组计划' + }, + time: '2017-05-27 00:00:00' + }, + { + id: 1, + user: { + nickname: '曲丽丽', + avatar: '@image(64x64)' + }, + project: { + name: '高逼格设计天团', + action: '更新', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '@name', + avatar: '@image(64x64)' + }, + project: { + name: '高逼格设计天团', + action: 'created', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '曲丽丽', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + project: { + name: '高逼格设计天团', + action: 'created', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + } + ]) +} + +const teams = () => { + return builder([{ + id: 1, + name: '科学搬砖组', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + { + id: 2, + name: '程序员日常', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/cnrhVkzwxjPwAaCfPbdc.png' + }, + { + id: 1, + name: '设计天团', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/gaOngJwsRYRaVAuXXcmB.png' + }, + { + id: 1, + name: '中二少女团', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ubnKSIfAJTxIgXOKlciN.png' + }, + { + id: 1, + name: '骗你学计算机', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/WhxKECPNujWoWEFNdnJE.png' + } + ]) +} + +const radar = () => { + return builder([{ + item: '引用', + '个人': 70, + '团队': 30, + '部门': 40 + }, + { + item: '口碑', + '个人': 60, + '团队': 70, + '部门': 40 + }, + { + item: '产量', + '个人': 50, + '团队': 60, + '部门': 40 + }, + { + item: '贡献', + '个人': 40, + '团队': 50, + '部门': 40 + }, + { + item: '热度', + '个人': 60, + '团队': 70, + '部门': 40 + }, + { + item: '引用', + '个人': 70, + '团队': 50, + '部门': 40 + } + ]) +} + +Mock.mock(/\/service/, 'get', serverList) +Mock.mock(/\/list\/search\/projects/, 'get', projects) +Mock.mock(/\/workplace\/activity/, 'get', activity) +Mock.mock(/\/workplace\/teams/, 'get', teams) +Mock.mock(/\/workplace\/radar/, 'get', radar) diff --git a/admin20250319/src/mock/services/other.js b/admin20250319/src/mock/services/other.js new file mode 100644 index 0000000..56e2dd9 --- /dev/null +++ b/admin20250319/src/mock/services/other.js @@ -0,0 +1,973 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const orgTree = () => { + return builder([{ + 'key': 'key-01', + 'title': '研发中心', + 'icon': 'mail', + 'children': [{ + 'key': 'key-01-01', + 'title': '后端组', + 'icon': null, + 'group': true, + children: [{ + 'key': 'key-01-01-01', + 'title': 'JAVA', + 'icon': null + }, + { + 'key': 'key-01-01-02', + 'title': 'PHP', + 'icon': null + }, + { + 'key': 'key-01-01-03', + 'title': 'Golang', + 'icon': null + } + ] + }, { + 'key': 'key-01-02', + 'title': '前端组', + 'icon': null, + 'group': true, + children: [{ + 'key': 'key-01-02-01', + 'title': 'React', + 'icon': null + }, + { + 'key': 'key-01-02-02', + 'title': 'Vue', + 'icon': null + }, + { + 'key': 'key-01-02-03', + 'title': 'Angular', + 'icon': null + } + ] + }] + }, { + 'key': 'key-02', + 'title': '财务部', + 'icon': 'dollar', + 'children': [{ + 'key': 'key-02-01', + 'title': '会计核算', + 'icon': null + }, { + 'key': 'key-02-02', + 'title': '成本控制', + 'icon': null + }, { + 'key': 'key-02-03', + 'title': '内部控制', + 'icon': null, + 'children': [{ + 'key': 'key-02-03-01', + 'title': '财务制度建设', + 'icon': null + }, + { + 'key': 'key-02-03-02', + 'title': '会计核算', + 'icon': null + } + ] + }] + }]) +} + +const role = () => { + return builder({ + 'data': [{ + 'id': 'admin', + 'name': '管理员', + 'describe': '拥有所有权限', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': ['delete', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['query', 'get', 'edit', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'import'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['query', 'add', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'edit', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, + { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get'], + 'dataAccess': null + } + ] + }, + { + 'id': 'svip', + 'name': 'SVIP', + 'describe': '超级会员', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1532417744846, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'query', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'query'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': ['add', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add'], + 'dataAccess': null + } + ] + }, + { + 'id': 'user', + 'name': '普通会员', + 'describe': '普通用户,只能查询', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'user', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['query'], + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'marketing', + 'permissionName': '营销管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + } + ] + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 1, + 'totalCount': 5 + }) +} + +const permissionNoPager = () => { + return builder([{ + 'id': 'marketing', + 'name': '营销管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': null, + 'parents': null, + 'type': null, + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'member', + 'name': '会员管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'menu', + 'name': '菜单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'import', + 'get', + 'edit' + ] + }, + { + 'id': 'order', + 'name': '订单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'permission', + 'name': '权限管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'role', + 'name': '角色管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'test', + 'name': '测试权限', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + }, + { + 'id': 'user', + 'name': '用户管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + } + ]) +} + +const permissions = () => { + return builder({ + 'data': [{ + 'id': 'marketing', + 'name': '营销管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': null, + 'parents': null, + 'type': null, + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'member', + 'name': '会员管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'menu', + 'name': '菜单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'import', + 'get', + 'edit' + ] + }, + { + 'id': 'order', + 'name': '订单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'permission', + 'name': '权限管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'role', + 'name': '角色管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'test', + 'name': '测试权限', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + }, + { + 'id': 'user', + 'name': '用户管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","describe":"新增","defaultCheck":false},{"action":"get","describe":"查询","defaultCheck":false}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 1, + 'totalCount': 5 + }) +} + +Mock.mock(/\/org\/tree/, 'get', orgTree) +Mock.mock(/\/role/, 'get', role) +Mock.mock(/\/permission\/no-pager/, 'get', permissionNoPager) +Mock.mock(/\/permission/, 'get', permissions) diff --git a/admin20250319/src/mock/services/tagCloud.js b/admin20250319/src/mock/services/tagCloud.js new file mode 100644 index 0000000..63a2e06 --- /dev/null +++ b/admin20250319/src/mock/services/tagCloud.js @@ -0,0 +1,9 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +// +const tagCloudData = () => { + return builder([{ 'value': 9, 'name': 'AntV' }, { 'value': 8, 'name': 'F2' }, { 'value': 8, 'name': 'G2' }, { 'value': 8, 'name': 'G6' }, { 'value': 8, 'name': 'DataSet' }, { 'value': 8, 'name': '墨者学院' }, { 'value': 6, 'name': 'Analysis' }, { 'value': 6, 'name': 'Data Mining' }, { 'value': 6, 'name': 'Data Vis' }, { 'value': 6, 'name': 'Design' }, { 'value': 6, 'name': 'Grammar' }, { 'value': 6, 'name': 'Graphics' }, { 'value': 6, 'name': 'Graph' }, { 'value': 6, 'name': 'Hierarchy' }, { 'value': 6, 'name': 'Labeling' }, { 'value': 6, 'name': 'Layout' }, { 'value': 6, 'name': 'Quantitative' }, { 'value': 6, 'name': 'Relation' }, { 'value': 6, 'name': 'Statistics' }, { 'value': 6, 'name': '可视化' }, { 'value': 6, 'name': '数据' }, { 'value': 6, 'name': '数据可视化' }, { 'value': 4, 'name': 'Arc Diagram' }, { 'value': 4, 'name': 'Bar Chart' }, { 'value': 4, 'name': 'Canvas' }, { 'value': 4, 'name': 'Chart' }, { 'value': 4, 'name': 'DAG' }, { 'value': 4, 'name': 'DG' }, { 'value': 4, 'name': 'Facet' }, { 'value': 4, 'name': 'Geo' }, { 'value': 4, 'name': 'Line' }, { 'value': 4, 'name': 'MindMap' }, { 'value': 4, 'name': 'Pie' }, { 'value': 4, 'name': 'Pizza Chart' }, { 'value': 4, 'name': 'Punch Card' }, { 'value': 4, 'name': 'SVG' }, { 'value': 4, 'name': 'Sunburst' }, { 'value': 4, 'name': 'Tree' }, { 'value': 4, 'name': 'UML' }, { 'value': 3, 'name': 'Chart' }, { 'value': 3, 'name': 'View' }, { 'value': 3, 'name': 'Geom' }, { 'value': 3, 'name': 'Shape' }, { 'value': 3, 'name': 'Scale' }, { 'value': 3, 'name': 'Animate' }, { 'value': 3, 'name': 'Global' }, { 'value': 3, 'name': 'Slider' }, { 'value': 3, 'name': 'Connector' }, { 'value': 3, 'name': 'Transform' }, { 'value': 3, 'name': 'Util' }, { 'value': 3, 'name': 'DomUtil' }, { 'value': 3, 'name': 'MatrixUtil' }, { 'value': 3, 'name': 'PathUtil' }, { 'value': 3, 'name': 'G' }, { 'value': 3, 'name': '2D' }, { 'value': 3, 'name': '3D' }, { 'value': 3, 'name': 'Line' }, { 'value': 3, 'name': 'Area' }, { 'value': 3, 'name': 'Interval' }, { 'value': 3, 'name': 'Schema' }, { 'value': 3, 'name': 'Edge' }, { 'value': 3, 'name': 'Polygon' }, { 'value': 3, 'name': 'Heatmap' }, { 'value': 3, 'name': 'Render' }, { 'value': 3, 'name': 'Tooltip' }, { 'value': 3, 'name': 'Axis' }, { 'value': 3, 'name': 'Guide' }, { 'value': 3, 'name': 'Coord' }, { 'value': 3, 'name': 'Legend' }, { 'value': 3, 'name': 'Path' }, { 'value': 3, 'name': 'Helix' }, { 'value': 3, 'name': 'Theta' }, { 'value': 3, 'name': 'Rect' }, { 'value': 3, 'name': 'Polar' }, { 'value': 3, 'name': 'Dsv' }, { 'value': 3, 'name': 'Csv' }, { 'value': 3, 'name': 'Tsv' }, { 'value': 3, 'name': 'GeoJSON' }, { 'value': 3, 'name': 'TopoJSON' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Reverse' }, { 'value': 3, 'name': 'sort' }, { 'value': 3, 'name': 'Subset' }, { 'value': 3, 'name': 'Partition' }, { 'value': 3, 'name': 'Imputation' }, { 'value': 3, 'name': 'Fold' }, { 'value': 3, 'name': 'Aggregate' }, { 'value': 3, 'name': 'Proportion' }, { 'value': 3, 'name': 'Histogram' }, { 'value': 3, 'name': 'Quantile' }, { 'value': 3, 'name': 'Treemap' }, { 'value': 3, 'name': 'Hexagon' }, { 'value': 3, 'name': 'Binning' }, { 'value': 3, 'name': 'kernel' }, { 'value': 3, 'name': 'Regression' }, { 'value': 3, 'name': 'Density' }, { 'value': 3, 'name': 'Sankey' }, { 'value': 3, 'name': 'Voronoi' }, { 'value': 3, 'name': 'Projection' }, { 'value': 3, 'name': 'Centroid' }, { 'value': 3, 'name': 'H5' }, { 'value': 3, 'name': 'Mobile' }, { 'value': 3, 'name': 'K线图' }, { 'value': 3, 'name': '关系图' }, { 'value': 3, 'name': '烛形图' }, { 'value': 3, 'name': '股票图' }, { 'value': 3, 'name': '直方图' }, { 'value': 3, 'name': '金字塔图' }, { 'value': 3, 'name': '分面' }, { 'value': 3, 'name': '南丁格尔玫瑰图' }, { 'value': 3, 'name': '饼图' }, { 'value': 3, 'name': '线图' }, { 'value': 3, 'name': '点图' }, { 'value': 3, 'name': '散点图' }, { 'value': 3, 'name': '子弹图' }, { 'value': 3, 'name': '柱状图' }, { 'value': 3, 'name': '仪表盘' }, { 'value': 3, 'name': '气泡图' }, { 'value': 3, 'name': '漏斗图' }, { 'value': 3, 'name': '热力图' }, { 'value': 3, 'name': '玉玦图' }, { 'value': 3, 'name': '直方图' }, { 'value': 3, 'name': '矩形树图' }, { 'value': 3, 'name': '箱形图' }, { 'value': 3, 'name': '色块图' }, { 'value': 3, 'name': '螺旋图' }, { 'value': 3, 'name': '词云' }, { 'value': 3, 'name': '词云图' }, { 'value': 3, 'name': '雷达图' }, { 'value': 3, 'name': '面积图' }, { 'value': 3, 'name': '马赛克图' }, { 'value': 3, 'name': '盒须图' }, { 'value': 3, 'name': '坐标轴' }, { 'value': 3, 'name': '' }, { 'value': 3, 'name': 'Jacques Bertin' }, { 'value': 3, 'name': 'Leland Wilkinson' }, { 'value': 3, 'name': 'William Playfair' }, { 'value': 3, 'name': '关联' }, { 'value': 3, 'name': '分布' }, { 'value': 3, 'name': '区间' }, { 'value': 3, 'name': '占比' }, { 'value': 3, 'name': '地图' }, { 'value': 3, 'name': '时间' }, { 'value': 3, 'name': '比较' }, { 'value': 3, 'name': '流程' }, { 'value': 3, 'name': '趋势' }, { 'value': 2, 'name': '亦叶' }, { 'value': 2, 'name': '再飞' }, { 'value': 2, 'name': '完白' }, { 'value': 2, 'name': '巴思' }, { 'value': 2, 'name': '张初尘' }, { 'value': 2, 'name': '御术' }, { 'value': 2, 'name': '有田' }, { 'value': 2, 'name': '沉鱼' }, { 'value': 2, 'name': '玉伯' }, { 'value': 2, 'name': '画康' }, { 'value': 2, 'name': '祯逸' }, { 'value': 2, 'name': '绝云' }, { 'value': 2, 'name': '罗宪' }, { 'value': 2, 'name': '萧庆' }, { 'value': 2, 'name': '董珊珊' }, { 'value': 2, 'name': '陆沉' }, { 'value': 2, 'name': '顾倾' }, { 'value': 2, 'name': 'Domo' }, { 'value': 2, 'name': 'GPL' }, { 'value': 2, 'name': 'PAI' }, { 'value': 2, 'name': 'SPSS' }, { 'value': 2, 'name': 'SYSTAT' }, { 'value': 2, 'name': 'Tableau' }, { 'value': 2, 'name': 'D3' }, { 'value': 2, 'name': 'Vega' }, { 'value': 2, 'name': '统计图表' }]) +} + +Mock.mock(/\/data\/antv\/tag-cloud/, 'get', tagCloudData) diff --git a/admin20250319/src/mock/services/user.js b/admin20250319/src/mock/services/user.js new file mode 100644 index 0000000..f8b09ca --- /dev/null +++ b/admin20250319/src/mock/services/user.js @@ -0,0 +1,779 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const info = (options) => { + const userInfo = { + 'id': '4291d7da9005377ec9aec4a71ea837f', + 'name': '天野远子', + 'username': 'admin', + 'password': '', + 'avatar': '/avatar2.jpg', + 'status': 1, + 'telephone': '', + 'lastLoginIp': '27.154.74.117', + 'lastLoginTime': 1534837621348, + 'creatorId': 'admin', + 'createTime': 1497160610259, + 'merchantCode': 'TLif2btpzg079h15bk', + 'deleted': 0, + 'roleId': 'admin', + 'role': {} + } + // role + const roleObj = { + 'id': 'admin', + 'name': '管理员', + 'describe': '拥有所有权限', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'dashboard', + 'permissionName': '仪表盘', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'exception', + 'permissionName': '异常页面权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'result', + 'permissionName': '结果权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'profile', + 'permissionName': '详细页权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'table', + 'permissionName': '表格权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'form.vue', + 'permissionName': '表单权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'table', + 'permissionName': '桌子管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }] + } + + roleObj.permissions.push({ + 'roleId': 'admin', + 'permissionId': 'support', + 'permissionName': '超级模块', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }) + + userInfo.role = roleObj + return builder(userInfo) +} + +const userNav = (options) => { + const nav = [ + // dashboard + { + 'name': 'dashboard', + 'parentId': 0, + 'id': 1, + 'meta': { + 'icon': 'dashboard', + 'title': '仪表盘77', + 'show': true + }, + 'component': 'RouteView', + 'redirect': '/dashboard/workplace' + }, + { + 'name': 'workplace', + 'parentId': 1, + 'id': 7, + 'meta': { + 'title': '工作台', + 'show': true + }, + 'component': 'Workplace' + }, + { + 'name': 'monitor', + 'path': 'https://www.baidu.com/', + 'parentId': 1, + 'id': 3, + 'meta': { + 'title': '监控页(外部)', + 'target': '_blank', + 'show': true + } + }, + { + 'name': 'Analysis', + 'parentId': 1, + 'id': 2, + 'meta': { + 'title': '分析页', + 'show': true + }, + 'component': 'Analysis', + 'path': '/dashboard/analysis' + }, + { + 'name': 'tests', + 'parentId': 1, + 'id': 8, + 'meta': { + 'title': '测试功能', + 'show': true + }, + 'component': 'TestWork' + }, + + // form + { + 'name': 'form.vue', + 'parentId': 0, + 'id': 10, + 'meta': { + 'icon': 'form.vue', + 'title': '表单页' + }, + 'redirect': '/form/base-form', + 'component': 'PageView' + }, + { + 'name': 'basic-form', + 'parentId': 10, + 'id': 6, + 'meta': { + 'title': '基础表单' + }, + 'component': 'BasicForm' + }, + { + 'name': 'step-form', + 'parentId': 10, + 'id': 5, + 'meta': { + 'title': '分步表单' + }, + 'component': 'StepForm' + }, + { + 'name': 'advanced-form', + 'parentId': 10, + 'id': 4, + 'meta': { + 'title': '高级表单' + }, + 'component': 'AdvanceForm' + }, + + // list + { + 'name': 'list', + 'parentId': 0, + 'id': 10010, + 'meta': { + 'icon': 'table', + 'title': '列表页', + 'show': true + }, + 'redirect': '/list/table-list', + 'component': 'PageView' + }, + { + 'name': 'table-list', + 'parentId': 10010, + 'id': 10011, + 'path': '/list/table-list/:pageNo([1-9]\\d*)?', + 'meta': { + 'title': '查询表格', + 'show': true + }, + 'component': 'TableList' + }, + { + 'name': 'basic-list', + 'parentId': 10010, + 'id': 10012, + 'meta': { + 'title': '标准列表', + 'show': true + }, + 'component': 'StandardList' + }, + { + 'name': 'card', + 'parentId': 10010, + 'id': 10013, + 'meta': { + 'title': '卡片列表', + 'show': true + }, + 'component': 'CardList' + }, + { + 'name': 'search', + 'parentId': 10010, + 'id': 10014, + 'meta': { + 'title': '搜索列表', + 'show': true + }, + 'redirect': '/list/search/article', + 'component': 'SearchLayout' + }, + { + 'name': 'article', + 'parentId': 10014, + 'id': 10015, + 'meta': { + 'title': '搜索列表(文章)', + 'show': true + }, + 'component': 'SearchArticles' + }, + { + 'name': 'project', + 'parentId': 10014, + 'id': 10016, + 'meta': { + 'title': '搜索列表(项目)', + 'show': true + }, + 'component': 'SearchProjects' + }, + { + 'name': 'application', + 'parentId': 10014, + 'id': 10017, + 'meta': { + 'title': '搜索列表(应用)', + 'show': true + }, + 'component': 'SearchApplications' + }, + + // profile + { + 'name': 'profile', + 'parentId': 0, + 'id': 10018, + 'meta': { + 'title': '详情页', + 'icon': 'profile', + 'show': true + }, + 'redirect': '/profile/basic', + 'component': 'RouteView' + }, + { + 'name': 'basic', + 'parentId': 10018, + 'id': 10019, + 'meta': { + 'title': '基础详情页', + 'show': true + }, + 'component': 'ProfileBasic' + }, + { + 'name': 'advanced', + 'parentId': 10018, + 'id': 10020, + 'meta': { + 'title': '高级详情页', + 'show': true + }, + 'component': 'ProfileAdvanced' + }, + + // result + { + 'name': 'result', + 'parentId': 0, + 'id': 10021, + 'meta': { + 'title': '结果页', + 'icon': 'check-circle-o', + 'show': true + }, + 'redirect': '/result/success', + 'component': 'PageView' + }, + { + 'name': 'success', + 'parentId': 10021, + 'id': 10022, + 'meta': { + 'title': '成功', + 'hiddenHeaderContent': true, + 'show': true + }, + 'component': 'ResultSuccess' + }, + { + 'name': 'fail', + 'parentId': 10021, + 'id': 10023, + 'meta': { + 'title': '失败', + 'hiddenHeaderContent': true, + 'show': true + }, + 'component': 'ResultFail' + }, + + // Exception + { + 'name': 'exception', + 'parentId': 0, + 'id': 10024, + 'meta': { + 'title': '异常页', + 'icon': 'warning', + 'show': true + }, + 'redirect': '/exception/403', + 'component': 'RouteView' + }, + { + 'name': '403', + 'parentId': 10024, + 'id': 10025, + 'meta': { + 'title': '403', + 'show': true + }, + 'component': 'Exception403' + }, + { + 'name': '404', + 'parentId': 10024, + 'id': 10026, + 'meta': { + 'title': '404', + 'show': true + }, + 'component': 'Exception404' + }, + { + 'name': '500', + 'parentId': 10024, + 'id': 10027, + 'meta': { + 'title': '500', + 'show': true + }, + 'component': 'Exception500' + }, + + // account + { + 'name': 'account', + 'parentId': 0, + 'id': 10028, + 'meta': { + 'title': '个人页', + 'icon': 'user', + 'show': true + }, + 'redirect': '/account/center', + 'component': 'RouteView' + }, + { + 'name': 'center', + 'parentId': 10028, + 'id': 10029, + 'meta': { + 'title': '个人中心', + 'show': true + }, + 'component': 'AccountCenter' + }, + // 特殊三级菜单 + { + 'name': 'settings', + 'parentId': 10028, + 'id': 10030, + 'meta': { + 'title': '个人设置', + 'hideHeader': true, + 'hideChildren': true, + 'show': true + }, + 'redirect': '/account/settings/base', + 'component': 'AccountSettings' + }, + { + 'name': 'BaseSettings', + 'path': '/account/settings/base', + 'parentId': 10030, + 'id': 10031, + 'meta': { + 'title': '基本设置', + 'show': false + }, + 'component': 'BaseSettings' + }, + { + 'name': 'SecuritySettings', + 'path': '/account/settings/security', + 'parentId': 10030, + 'id': 10032, + 'meta': { + 'title': '安全设置', + 'show': false + }, + 'component': 'SecuritySettings' + }, + { + 'name': 'CustomSettings', + 'path': '/account/settings/custom', + 'parentId': 10030, + 'id': 10033, + 'meta': { + 'title': '个性化设置', + 'show': false + }, + 'component': 'CustomSettings' + }, + { + 'name': 'BindingSettings', + 'path': '/account/settings/binding', + 'parentId': 10030, + 'id': 10034, + 'meta': { + 'title': '第三方配置', + 'show': false + }, + 'component': 'BindingSettings' + }, + { + 'name': 'NotificationSettings', + 'path': '/account/settings/notification', + 'parentId': 10030, + 'id': 10034, + 'meta': { + 'title': '新消息通知', + 'show': false + }, + 'component': 'NotificationSettings' + }, + { + 'name': 'ThirdOpenSettings', + 'path': '/account/settings/thirdopen', + 'parentId': 10030, + 'id': 10035, + 'meta': { + 'title': '推送配置', + 'show': false + }, + 'component': 'ThirdOpenSettings' + } + ] + const json = builder(nav) + return json +} + +Mock.mock(/\/api\/user\/info/, 'get', info) +Mock.mock(/\/api\/user\/nav/, 'get', userNav) diff --git a/admin20250319/src/mock/util.js b/admin20250319/src/mock/util.js new file mode 100644 index 0000000..a4be036 --- /dev/null +++ b/admin20250319/src/mock/util.js @@ -0,0 +1,38 @@ +const responseBody = { + message: '', + timestamp: 0, + result: null, + code: 0 +} + +export const builder = (data, message, code = 0, headers = {}) => { + responseBody.result = data + if (message !== undefined && message !== null) { + responseBody.message = message + } + if (code !== undefined && code !== 0) { + responseBody.code = code + responseBody._status = code + } + if (headers !== null && typeof headers === 'object' && Object.keys(headers).length > 0) { + responseBody._headers = headers + } + responseBody.timestamp = new Date().getTime() + return responseBody +} + +export const getQueryParameters = (options) => { + const url = options.url + const search = url.split('?')[1] + if (!search) { + return {} + } + return JSON.parse('{"' + decodeURIComponent(search) + .replace(/"/g, '\\"') + .replace(/&/g, '","') + .replace(/=/g, '":"') + '"}') +} + +export const getBody = (options) => { + return options.body && JSON.parse(options.body) +} diff --git a/admin20250319/src/permission.js b/admin20250319/src/permission.js new file mode 100644 index 0000000..048daee --- /dev/null +++ b/admin20250319/src/permission.js @@ -0,0 +1,145 @@ +import Vue from 'vue' +import router from './router' +import store from './store' + +import NProgress from 'nprogress' // progress bar +import '@/components/NProgress/nprogress.less' // progress bar custom style +import { setDocumentTitle, domTitle } from '@/utils/domUtil' +import { ACCESS_TOKEN, ALL_APPS_MENU } from '@/store/mutation-types' + +import { Modal, notification } from 'ant-design-vue' // NProgress Configuration +import { timeFix } from '@/utils/util'/// es/notification +import Enumerable from 'linq' + +NProgress.configure({ showSpinner: false }) +const whiteList = ['login', 'register', 'registerResult', 'wechat'] // no redirect whitelist +// 无默认首页的情况 +const defaultRoutePath = '/welcome' + +router.beforeEach((to, from, next) => { + NProgress.start() // start progress bar + if (store.getters.configinfo === null || typeof store.getters.configinfo.version === 'undefined') { + store.dispatch('getConfig').then((res) => { + to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${to.meta.title} - ${store.getters.configinfo.platformname}`)) + }) + } else { + let title = domTitle + if (store.getters.configinfo !== null && typeof store.getters.configinfo.platformname !== 'undefined') { + title = store.getters.configinfo.platformname + } + to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${to.meta.title} - ${title}`)) + } + + if (Vue.ls.get(ACCESS_TOKEN)) { + /* has token */ + if (to.path === '/user/login') { + // next({ path: defaultRoutePath }) + NProgress.done() + } else { + if (store.getters.roles.length === 0) { + store + .dispatch('GetInfo') + .then(res => { + if (res.menus.length < 1) { + Modal.error({ + title: '提示:', + content: '无菜单权限,请联系管理员', + okText: '确定', + onOk: () => { + store.dispatch('Logout').then(() => { + console.log('from', from) + if (from.query.info != null && typeof from.query.info !== 'undefined') { + location.href = location.protocol + '//' + location.host + from.path + '?redirect=' + from.query.redirect + } else { + window.location.reload() + } + }) + } + }) + return + } + // eslint-disable-next-line camelcase + const all_app_menu = Vue.ls.get(ALL_APPS_MENU) + let antDesignmenus + // eslint-disable-next-line camelcase + if (all_app_menu == null) { + const applocation = [] + res.apps.forEach(item => { + const apps = { 'code': '', 'name': '', 'active': '', 'menu': '' } + if (item.active) { + apps.code = item.code + apps.name = item.name + apps.active = item.active + apps.menu = res.menus + antDesignmenus = res.menus + } else { + apps.code = item.code + apps.name = item.name + apps.active = item.active + apps.menu = '' + } + applocation.push(apps) + }) + if (antDesignmenus === undefined) { + // 没有设置默认值的情况下,使第一个应用菜单为默认菜单 + var firstApps = Enumerable.from(applocation).first() + firstApps.active = 'Y' + firstApps.menu = res.menus + antDesignmenus = res.menus + } + Vue.ls.set(ALL_APPS_MENU, applocation, 7 * 24 * 60 * 60 * 1000)// 缓存7天 + // 延迟 1 秒显示欢迎信息 + setTimeout(() => { + notification.success({ + message: '欢迎', + description: `${timeFix()},欢迎回来` + }) + }, 1000) + } else { + antDesignmenus = Vue.ls.get(ALL_APPS_MENU)[0].menu + } + store.dispatch('GenerateRoutes', { antDesignmenus }).then(() => { + // 动态添加可访问路由表 + // for (let i = 0, length = store.getters.addRouters.length; i < length; i += 1) { + // const element = store.getters.addRouters[i] + // router.addRoute(element) + // } + router.addRoutes(store.getters.addRouters) + // 请求带有 redirect 重定向时,登录自动重定向到该地址 + const redirect = decodeURIComponent(from.query.redirect || to.path) + if (to.path === redirect) { + next({ path: redirect }) + // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record + next({ ...to, replace: true }) + } else { + // 跳转到目的路由 + next({ path: redirect }) + } + }) + }) + .catch(() => { + store.dispatch('Logout').then(() => { + next({ path: '/user/login', query: { redirect: to.fullPath } }) + }) + }) + store.dispatch('getNoticReceiveList').then((res) => { }) + // 加载枚举信息 + store.dispatch('getclientdata').then((res) => {}) + } else { + next() + } + } + } else { + if (whiteList.includes(to.name)) { + // 在免登录白名单,直接进入 + next() + } else { + next({ path: '/user/login', query: { redirect: to.fullPath } }) + NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it + } + } +}) + +router.afterEach(() => { + NProgress.done() // finish progress bar +}) diff --git a/admin20250319/src/router/generator-routers.js b/admin20250319/src/router/generator-routers.js new file mode 100644 index 0000000..fd24f64 --- /dev/null +++ b/admin20250319/src/router/generator-routers.js @@ -0,0 +1,273 @@ + +import { BasicLayout, BlankLayout, PageView, RouteView, Iframe } from '@/layouts' + +// 前端路由表 +const constantRouterComponents = { + // 基础页面 layout 必须引入 + BasicLayout: BasicLayout, + BlankLayout: BlankLayout, + RouteView: RouteView, + PageView: PageView, + Iframe: Iframe, + '403': () => import('@/views/system/exception/403'), + '404': () => import('@/views/system/exception/404'), + '500': () => import('@/views/system/exception/500'), + + 'Workplace': () => import('@/views/system/dashboard/Workplace'), + // account + 'AccountCenter': () => import('@/views/system/account/center/Index'), + 'AccountSettings': () => import('@/views/system/account/settings/Index'), + 'BaseSettings': () => import('@/views/system/account/settings/BaseSetting'), + 'SecuritySettings': () => import('@/views/system/account/settings/Security'), + 'CustomSettings': () => import('@/views/system/account/settings/Custom'), + 'NotificationSettings': () => import('@/views/system/account/settings/Notification'), + 'ThirdOpenSettings': () => import('@/views/system/account/settings/ThirdOpen'), + // 默认首页 + 'Console': () => import('@/views/system/index/welcome') +} + +// 前端未找到页面路由(固定不用改)、原来为 /404 +const notFoundRouter = { + path: '*', redirect: '/welcome', hidden: true +} +// 个人中心页面 +const userAccount = [ + // account + { + 'name': 'account', + 'pid': 0, + 'id': 10028, + 'meta': { + 'title': '个人页', + 'icon': 'user', + 'show': false + }, + 'redirect': '/account/center', + 'component': 'RouteView' + }, + { + 'name': 'center', + 'pid': 10028, + 'id': 10029, + 'meta': { + 'title': '个人中心', + 'show': false + }, + 'component': 'AccountCenter' + }, + // 特殊三级菜单 + { + 'name': 'settings', + 'pid': '10028', + 'id': '10030', + 'meta': { + 'title': '个人设置', + 'hideHeader': true, + 'hideChildren': true, + 'show': false + }, + 'redirect': '/account/settings/base', + 'component': 'AccountSettings' + }, + { + 'name': 'BaseSettings', + 'path': '/account/settings/base', + 'pid': 10030, + 'id': 10031, + 'meta': { + 'title': '基本设置', + 'show': false + }, + 'component': 'BaseSettings' + }, + { + 'name': 'SecuritySettings', + 'path': '/account/settings/security', + 'pid': 10030, + 'id': 10032, + 'meta': { + 'title': '安全设置', + 'show': false + }, + 'component': 'SecuritySettings' + }, + { + 'name': 'CustomSettings', + 'path': '/account/settings/custom', + 'pid': 10030, + 'id': 10033, + 'meta': { + 'title': '个性化设置', + 'show': false + }, + 'component': 'CustomSettings' + }, + { + 'name': 'BindingSettings', + 'path': '/account/settings/binding', + 'pid': 10030, + 'id': 10034, + 'meta': { + 'title': '', + 'show': false + }, + 'component': 'BindingSettings' + }, + { + 'name': 'NotificationSettings', + 'path': '/account/settings/notification', + 'pid': 10030, + 'id': 10034, + 'meta': { + 'title': '新消息通知', + 'show': false + }, + 'component': 'NotificationSettings' + }, + { + 'name': 'ThirdOpenSettings', + 'path': '/account/settings/thirdopen', + 'pid': 10030, + 'id': 10035, + 'meta': { + 'title': '推送配置', + 'show': false + }, + 'component': 'ThirdOpenSettings' + }, + { + 'name': 'Console', + 'path': '/welcome', + 'pid': 0, + 'id': 183183, + 'meta': { + 'title': '首页', + 'show': false + }, + 'component': 'Console' + } + +] + +// 根级菜单 +const rootRouter = { + key: '', + name: 'MenuIndex.vue', + path: '', + component: 'BasicLayout', + redirect: '/welcome', + meta: { + title: '首页' + }, + children: [] +} + +/** + * 动态生成菜单 + * @param data + * @returns {Promise} + */ +export const generatorDynamicRouter = (data) => { + return new Promise((resolve, reject) => { + const resNav = data.antDesignmenus + const menuNav = [] + const childrenNav = [] + // 后端数据, 根级树数组, 根级 PID + listToTree(resNav, childrenNav, 0) + + /** + * 增加静态网页 + */ + listToTree(userAccount, childrenNav, 0) + rootRouter.children = childrenNav + menuNav.push(rootRouter) + const routers = generator(menuNav) + routers.push(notFoundRouter) + resolve(routers) + }).catch(err => { + // reject('加载菜单失败') + return Promise.reject(err) + }) +} + +/** + * 格式化树形结构数据 生成 vue-router 层级路由表 + * + * @param routerMap + * @param parent + * @returns {*} + */ +export const generator = (routerMap, parent) => { + return routerMap.map(item => { + // eslint-disable-next-line no-unused-vars + const { title, show, hideChildren, hiddenHeaderContent, target, icon, link } = item.meta || {} + const currentRouter = { + // 如果路由设置了 path,则作为默认 path,否则 路由地址 动态拼接生成如 /dashboard/workplace + path: item.path || `${parent && parent.path || ''}/${item.key}`, + // 路由名称,建议唯一 + name: item.name || item.key || '', + // 该路由对应页面的 组件 :方案1 + // component: constantRouterComponents[item.component || item.key], + // 该路由对应页面的 组件 :方案2 (动态加载) + component: (constantRouterComponents[item.component || item.key]) || (() => import(`@/views/${item.component}`)), + // meta: 页面标题, 菜单图标, 页面权限(供指令权限用,可去掉) + meta: { + title: title, + icon: icon || undefined, + // hiddenHeaderContent: hiddenHeaderContent, + target: target, + link: link + } + } + // 是否设置了隐藏菜单 + if (show === false) { + currentRouter.hidden = true + } + // 是否设置了隐藏子菜单 + if (hideChildren) { + currentRouter.hideChildrenInMenu = true + } + // 为了防止出现后端返回结果不规范,处理有可能出现拼接出两个 反斜杠 + if (!currentRouter.path.startsWith('http')) { + currentRouter.path = currentRouter.path.replace('//', '/') + } + // 重定向 + item.redirect && (currentRouter.redirect = item.redirect) + // 是否有子菜单,并递归处理 + if (item.children && item.children.length > 0) { + // Recursion + currentRouter.children = generator(item.children, currentRouter) + } + return currentRouter + }) +} + +/** + * 数组转树形结构 + * @param list 源数组 + * @param tree 树 + * @param parentId 父ID + */ +const listToTree = (list, tree, parentId) => { + if (list) { + list.forEach(item => { + // 判断是否为父级菜单 + // eslint-disable-next-line eqeqeq + if (item.pid == parentId) { + const child = { + ...item, + key: item.key || item.name, + children: [] + } + // 迭代 list, 找到当前菜单相符合的所有子菜单 + listToTree(list, child.children, item.id) + // 删掉不存在 children 值的属性 + if (child.children.length <= 0) { + delete child.children + } + // 加入到树中 + tree.push(child) + } + }) + } +} diff --git a/admin20250319/src/router/index.js b/admin20250319/src/router/index.js new file mode 100644 index 0000000..dd72772 --- /dev/null +++ b/admin20250319/src/router/index.js @@ -0,0 +1,19 @@ +import Vue from 'vue' +import Router from 'vue-router' +import { constantRouterMap } from '@/config/router.config' + +// hack router push callback +const originalPush = Router.prototype.push +Router.prototype.push = function push (location, onResolve, onReject) { + if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) + return originalPush.call(this, location).catch(err => err) +} + +Vue.use(Router) + +export default new Router({ + mode: 'history', + base: process.env.BASE_URL, + scrollBehavior: () => ({ y: 0 }), + routes: constantRouterMap +}) diff --git a/admin20250319/src/store/getters.js b/admin20250319/src/store/getters.js new file mode 100644 index 0000000..5f7fdd7 --- /dev/null +++ b/admin20250319/src/store/getters.js @@ -0,0 +1,23 @@ +const getters = { + device: state => state.app.device, + theme: state => state.app.theme, + color: state => state.app.color, + token: state => state.user.token, + avatar: state => state.user.avatar, + nickname: state => state.user.name, + welcome: state => state.user.welcome, + roles: state => state.user.roles, + buttons: state => state.user.buttons, + allButtons: state => state.user.allButtons, + alldevtypes: state => state.user.alldevicetypes, + clientdata: state => state.user.clientdata, + admintype: state => state.user.admintype, + configinfo: state => state.user.allconfig, + userInfo: state => state.user.info, + userNotices: state => state.user.notices, + addRouters: state => state.permission.addRouters, + multiTab: state => state.app.multiTab, + lang: state => state.i18n.lang +} + +export default getters diff --git a/admin20250319/src/store/index.js b/admin20250319/src/store/index.js new file mode 100644 index 0000000..687d21b --- /dev/null +++ b/admin20250319/src/store/index.js @@ -0,0 +1,32 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import app from './modules/app' +import user from './modules/user' + +// default router permission control +// import permission from './modules/permission' + +// dynamic router permission control (Experimental) +import permission from './modules/async-router' +import getters from './getters' + +Vue.use(Vuex) + +export default new Vuex.Store({ + modules: { + app, + user, + permission + }, + state: { + + }, + mutations: { + + }, + actions: { + + }, + getters +}) diff --git a/admin20250319/src/store/modules/app.js b/admin20250319/src/store/modules/app.js new file mode 100644 index 0000000..24bf365 --- /dev/null +++ b/admin20250319/src/store/modules/app.js @@ -0,0 +1,138 @@ +import Vue from 'vue' +import { + SIDEBAR_TYPE, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR, + DEFAULT_COLOR_WEAK, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_TAB, + DEFAULT_CRUMBS_STATE +} from '@/store/mutation-types' + +const app = { + state: { + sidebar: true, + device: 'desktop', + theme: '', + layout: '', + contentWidth: '', + fixedHeader: false, + fixSiderbar: false, + autoHideHeader: false, + color: null, + weak: false, + multiTab: true, + crumbsState: true, + hasError: false + }, + mutations: { + SET_SIDEBAR_TYPE: (state, type) => { + state.sidebar = type + Vue.ls.set(SIDEBAR_TYPE, type) + }, + CLOSE_SIDEBAR: (state) => { + Vue.ls.set(SIDEBAR_TYPE, true) + state.sidebar = false + }, + TOGGLE_DEVICE: (state, device) => { + state.device = device + }, + TOGGLE_THEME: (state, theme) => { + // setStore('_DEFAULT_THEME', theme) + Vue.ls.set(DEFAULT_THEME, theme) + state.theme = theme + }, + TOGGLE_LAYOUT_MODE: (state, layout) => { + Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) + state.layout = layout + }, + TOGGLE_FIXED_HEADER: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) + state.fixedHeader = fixed + }, + TOGGLE_FIXED_SIDERBAR: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) + state.fixSiderbar = fixed + }, + TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { + Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) + state.autoHideHeader = show + }, + TOGGLE_CONTENT_WIDTH: (state, type) => { + Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) + state.contentWidth = type + }, + TOGGLE_COLOR: (state, color) => { + Vue.ls.set(DEFAULT_COLOR, color) + state.color = color + }, + TOGGLE_WEAK: (state, flag) => { + Vue.ls.set(DEFAULT_COLOR_WEAK, flag) + state.weak = flag + }, + TOGGLE_MULTI_TAB: (state, bool) => { + Vue.ls.set(DEFAULT_MULTI_TAB, bool) + state.multiTab = bool + }, + TOGGLE_CRUMBS_STATE: (state, bool) => { + Vue.ls.set(DEFAULT_CRUMBS_STATE, bool) + state.crumbsState = bool + }, + SET_HAS_ERROR: (state, bool) => { + state.hasError = bool + } + }, + actions: { + setSidebar ({ commit }, type) { + commit('SET_SIDEBAR_TYPE', type) + }, + CloseSidebar ({ commit }) { + commit('CLOSE_SIDEBAR') + }, + ToggleDevice ({ commit }, device) { + commit('TOGGLE_DEVICE', device) + }, + ToggleTheme ({ commit }, theme) { + commit('TOGGLE_THEME', theme) + }, + ToggleLayoutMode ({ commit }, mode) { + commit('TOGGLE_LAYOUT_MODE', mode) + }, + ToggleFixedHeader ({ commit }, fixedHeader) { + if (!fixedHeader) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', false) + } + commit('TOGGLE_FIXED_HEADER', fixedHeader) + }, + ToggleFixSiderbar ({ commit }, fixSiderbar) { + commit('TOGGLE_FIXED_SIDERBAR', fixSiderbar) + }, + ToggleFixedHeaderHidden ({ commit }, show) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', show) + }, + ToggleContentWidth ({ commit }, type) { + commit('TOGGLE_CONTENT_WIDTH', type) + }, + ToggleColor ({ commit }, color) { + commit('TOGGLE_COLOR', color) + }, + ToggleWeak ({ commit }, weakFlag) { + commit('TOGGLE_WEAK', weakFlag) + }, + ToggleMultiTab ({ commit }, bool) { + commit('TOGGLE_MULTI_TAB', bool) + }, + ToggleCrumbsState ({ commit }, bool) { + commit('TOGGLE_CRUMBS_STATE', bool) + }, + SetHasError ({ commit }, bool) { + commit('SET_HAS_ERROR', bool) + } + } +} + +export default app diff --git a/admin20250319/src/store/modules/async-router.js b/admin20250319/src/store/modules/async-router.js new file mode 100644 index 0000000..4491e06 --- /dev/null +++ b/admin20250319/src/store/modules/async-router.js @@ -0,0 +1,33 @@ +/** + * 向后端请求用户的菜单,动态生成路由 + */ +import { constantRouterMap } from '@/config/router.config' +import { generatorDynamicRouter } from '@/router/generator-routers' + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [] + }, + mutations: { + SET_ROUTERS: (state, routers) => { + state.addRouters = routers + state.routers = constantRouterMap.concat(routers) + } + }, + actions: { + GenerateRoutes ({ commit }, data) { + return new Promise(resolve => { + generatorDynamicRouter(data).then(routers => { + commit('SET_ROUTERS', routers) + resolve() + }) + }).catch(err => { + // eslint-disable-next-line no-undef + reject(err) + }) + } + } +} + +export default permission diff --git a/admin20250319/src/store/modules/permission.js b/admin20250319/src/store/modules/permission.js new file mode 100644 index 0000000..c614821 --- /dev/null +++ b/admin20250319/src/store/modules/permission.js @@ -0,0 +1,76 @@ +import { asyncRouterMap, constantRouterMap } from '@/config/router.config' + +/** + * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 + * + * @param permission + * @param route + * @returns {boolean} + */ +function hasPermission (permission, route) { + // if (route.meta && route.meta.permission) { + // let flag = false + // for (let i = 0, len = permission.length; i < len; i++) { + // flag = route.meta.permission.includes(permission[i]) + // if (flag) { + // return true + // } + // } + // return false + // } + return true +} + +/** + * 单账户多角色时,使用该方法可过滤角色不存在的菜单 + * + * @param roles + * @param route + * @returns {*} + */ +// eslint-disable-next-line +function hasRole(roles, route) { + if (route.meta && route.meta.roles) { + return route.meta.roles.includes(roles.id) + } else { + return true + } +} + +function filterAsyncRouter (routerMap, roles) { + const accessedRouters = routerMap.filter(route => { + if (hasPermission(roles.permissionList, route)) { + if (route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, roles) + } + return true + } + return false + }) + return accessedRouters +} + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [] + }, + mutations: { + SET_ROUTERS: (state, routers) => { + state.addRouters = routers + state.routers = constantRouterMap.concat(routers) + } + }, + actions: { + GenerateRoutes ({ commit }, data) { + return new Promise(resolve => { + const { roles } = data + const accessedRouters = filterAsyncRouter(asyncRouterMap, roles) + commit('SET_ROUTERS', accessedRouters) + resolve() + }) + } + } +} + +export default permission diff --git a/admin20250319/src/store/modules/user.js b/admin20250319/src/store/modules/user.js new file mode 100644 index 0000000..5ab94a2 --- /dev/null +++ b/admin20250319/src/store/modules/user.js @@ -0,0 +1,310 @@ +import Vue from 'vue' +import { login, getLoginUser, logout } from '@/api/modular/system/loginManage' +import { sysDictTypeTree } from '@/api/modular/system/dictManage' +import { sysMenuChange } from '@/api/modular/system/menuManage' +import { GetClientData, GetConfigInfo } from '@/api/modular/main/systeminfo' +// eslint-disable-next-line no-unused-vars +import { ACCESS_TOKEN, ALL_APPS_MENU, DICT_TYPE_TREE_DATA, NOTICE_RECEIVED } from '@/store/mutation-types' +import { sysFileInfoPreview } from '@/api/modular/system/fileManage' +import { + unReadNotice +} from '@/api/modular/system/noticeReceivedManage' + +import { welcome, dateFormat } from '@/utils/util' +import store from '../index' +import router from '../../router' + +const user = { + state: { + token: '', + name: '', + welcome: '', + avatar: '', + buttons: [], // 按钮权限 + allButtons: [], // 所有按钮权限 + alldevicetypes: [], // 所有设备类型 + allconfig: {}, // 配置信息 + clientdata: {}, // 枚举值 + admintype: '', // 是否是超管 + roles: [], + info: {}, + notices: [] // 接收的通知公告 + }, + + mutations: { + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, { name, welcome }) => { + state.name = name + state.welcome = welcome + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + }, + SET_ROLES: (state, roles) => { + state.roles = roles + }, + SET_INFO: (state, info) => { + state.info = info + }, + SET_BUTTONS: (state, buttons) => { + state.buttons = buttons + }, + SET_ALL_BUTTONS: (state, allButtons) => { + state.allButtons = allButtons + }, + SET_ADMINTYPE: (state, admintype) => { + state.admintype = admintype + }, + // 设置设备类型 + SET_DEVICETYPE: (state, alltypes) => { + state.alldevicetypes = alltypes + }, + // 设置配置信息 + SET_CONFIGINFO: (state, allconfig) => { + state.allconfig = allconfig + }, + // 设置枚举 + SET_CLIENTDATA: (state, data) => { + state.clientdata = data + }, + SET_NOTICES: (state, notices) => { + state.notices = notices + }, + APPEND_NOTICE: (state, notice) => { + notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') + const notices = state.notices + const temp = notices.rows.filter(m => { return m.value === notice.type })[0] + const other = notices.rows.filter(m => { return m.value !== notice.type }) + temp.noticeData.unshift(notice) + notices.totalrows++ + if (temp.noticeData.length > 6) { + temp.noticeData.pop() + } + notices.rows = [] + notices.rows.push(temp) + notices.rows.push.apply(notices.rows, other) + notices.rows.sort((obj1, obj2) => { + return obj1.index - obj2.index + }) + state.notices = notices + }, + SUBTRACT_NOTICE: (state, notice) => { + // 查看通知后在消息提示中消除已经查看过的,此函数 可能 存在未知bug + // notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') + const notices = state.notices + // debugger + const temp = notices.rows.filter(m => { return m.value === notice.type })[0] + const other = notices.rows.filter(m => { return m.value !== notice.type }) + temp.noticeData.shift(notice) + notices.totalrows-- + if (temp.noticeData.length > 6) { + temp.noticeData.pop() + } + notices.rows = [] + notices.rows.pop(temp) + notices.rows.pop.apply(notices.rows, other) + notices.rows.sort((obj1, obj2) => { + return obj1.index - obj2.index + }) + state.notices = notices + } + }, + + actions: { + // 登录 + Login ({ commit }, userInfo) { + Vue.ls.remove(ALL_APPS_MENU)// 清除菜单缓存 + return new Promise((resolve, reject) => { + login(userInfo).then(response => { + if (response.code !== 0) { + reject(response.message) + return + } + // 从响应 Header 中读取,处理逻辑移至 request.js 中处理 + // const result = response.data + // Vue.ls.set(ACCESS_TOKEN, result, 7 * 24 * 60 * 60 * 1000) + // commit('SET_TOKEN', result) + resolve() + // eslint-disable-next-line handle-callback-err + }).catch(error => { + // eslint-disable-next-line prefer-promise-reject-errors + reject('后端未启动或代理错误') + }) + }) + }, + + // 获取用户信息 + GetInfo ({ commit }) { + return new Promise((resolve, reject) => { + getLoginUser().then(response => { + if (response.code === 0) { + const data = response.data + commit('SET_ADMINTYPE', data.admintype) + commit('SET_ROLES', 1) + commit('SET_BUTTONS', data.permissions) + commit('SET_ALL_BUTTONS', data.allpermissions) + commit('SET_INFO', data) + commit('SET_NAME', { name: data.name, welcome: welcome() }) + if (data.avatar != null) { + sysFileInfoPreview({ id: data.avatar }).then((res) => { + commit('SET_AVATAR', window.URL.createObjectURL(new Blob([res]))) + }).catch((err) => { + this.$myerror('预览错误:' + err.message) + }) + // commit('SET_AVATAR', process.env.VUE_APP_API_BASE_URL + '/sysFileInfo/preview?id=' + data.avatar) + } else { + commit('SET_AVATAR', '/avatar2.jpg') + } + resolve(data) + } else { + // eslint-disable-next-line no-undef + reject(new Error(response.message)) + } + }) + // 登录过期后前端会发生高频访问后端的问题 + // .catch(error => { + // reject(error) + // }) + }) + }, + + // 登出 + Logout ({ commit, state }) { + return new Promise((resolve) => { + logout(state.token).then(() => { + resolve() + }).catch(() => { + resolve() + }).finally(() => { + commit('SET_TOKEN', '') + commit('SET_ROLES', []) + commit('SET_BUTTONS', []) + commit('SET_ALL_BUTTONS', []) + commit('SET_ADMINTYPE', '') + Vue.ls.remove(ACCESS_TOKEN) + Vue.ls.remove(ALL_APPS_MENU) + Vue.ls.remove(DICT_TYPE_TREE_DATA) + Vue.ls.remove('X-Access-Token') + }) + }) + }, + // 加载配置信息 + getConfig({ commit }) { + return new Promise((resolve, reject) => { + GetConfigInfo().then((data) => { + if (data.code === 0) { + const result = data.data + commit('SET_CONFIGINFO', result) + resolve(result) + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 加载所有字典数据 + dictTypeData () { + return new Promise((resolve, reject) => { + sysDictTypeTree().then((data) => { + if (data.code === 0) { + const result = data.data + Vue.ls.set(DICT_TYPE_TREE_DATA, result) + resolve() + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 加载所有的枚举 + getclientdata({ commit }) { + return new Promise((resolve, reject) => { + GetClientData().then((data) => { + if (data.code === 0) { + const result = data.data + commit('SET_CLIENTDATA', result) + resolve(result) + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 切换应用菜单 + MenuChange ({ commit }, application) { + return new Promise((resolve) => { + sysMenuChange({ application: application.code }).then((res) => { + const apps = { 'code': '', 'name': '', 'active': '', 'menu': '' } + apps.active = true + apps.menu = res.data + // eslint-disable-next-line camelcase + const all_app_menu = Vue.ls.get(ALL_APPS_MENU) + // eslint-disable-next-line camelcase + const new_false_all_app_menu = [] + // 先去除所有默认的,以为此时切换的即将成为前端缓存默认的应用 + all_app_menu.forEach(item => { + if (item.active) { + item.active = false + } + new_false_all_app_menu.push(item) + }) + // 此时缓存中全部都是不默认的应用 + Vue.ls.set(ALL_APPS_MENU, new_false_all_app_menu) + apps.name = application.name + apps.code = application.code + const applocationR = [] + applocationR.push(apps) + Vue.ls.set(ALL_APPS_MENU, applocationR) + resolve(res) + const antDesignmenus = res.data + store.dispatch('GenerateRoutes', { antDesignmenus }).then(() => { + // for (let i = 0, length = store.getters.addRouters.length; i < length; i += 1) { + // const element = store.getters.addRouters[i] + // router.addRoute(element) + // } + router.addRoutes(store.getters.addRouters) + }) + // 切换应用刷新整体界面,暂且取消 + // window.location.reload() + }).catch(() => { + resolve() + }) + }) + }, + // 获取收到的通知 + getNoticReceiveList({ + commit + }) { + return new Promise((resolve, reject) => { + unReadNotice({ + pageSize: 6 + }).then((data) => { + if (data.code === 0) { + const result = data.data + commit('SET_NOTICES', result) + resolve() + } else { + // eslint-disable-next-line no-undef + reject(new Error(data.message)) + } + }).catch(error => { + reject(error) + }) + }) + } + + } +} + +export default user diff --git a/admin20250319/src/store/mutation-types.js b/admin20250319/src/store/mutation-types.js new file mode 100644 index 0000000..ca372f8 --- /dev/null +++ b/admin20250319/src/store/mutation-types.js @@ -0,0 +1,19 @@ +export const ACCESS_TOKEN = 'Access-Token' +export const SIDEBAR_TYPE = 'SIDEBAR_TYPE' +export const ALL_APPS_MENU = 'ALL_APPS_MENU' +export const DEFAULT_THEME = 'DEFAULT_THEME' +export const DEFAULT_LAYOUT_MODE = 'DEFAULT_LAYOUT_MODE' +export const DEFAULT_COLOR = 'DEFAULT_COLOR' +export const DEFAULT_COLOR_WEAK = 'DEFAULT_COLOR_WEAK' +export const DEFAULT_FIXED_HEADER = 'DEFAULT_FIXED_HEADER' +export const DEFAULT_FIXED_SIDEMENU = 'DEFAULT_FIXED_SIDEMENU' +export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN' +export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE' +export const DEFAULT_MULTI_TAB = 'DEFAULT_MULTI_TAB' +export const DEFAULT_CRUMBS_STATE = 'DEFAULT_CRUMBS_STATE' +export const DICT_TYPE_TREE_DATA = 'DICT_TYPE_TREE_DATA' +export const NOTICE_RECEIVED = 'NOTICE_RECEIVED' +export const CONTENT_WIDTH_TYPE = { + Fluid: 'Fluid', + Fixed: 'Fixed' +} diff --git a/admin20250319/src/utils/applocation.js b/admin20250319/src/utils/applocation.js new file mode 100644 index 0000000..30fdc28 --- /dev/null +++ b/admin20250319/src/utils/applocation.js @@ -0,0 +1,11 @@ +import store from '@/store' + +/** + * 缓存中的已选中应用 + * + * @author yubaoshan + * @date 2020/06/27 02:34 + */ +export function sysApplication () { + return store.getters.applocation +} diff --git a/admin20250319/src/utils/area.txt b/admin20250319/src/utils/area.txt new file mode 100644 index 0000000..8e5fb56 --- /dev/null +++ b/admin20250319/src/utils/area.txt @@ -0,0 +1,72 @@ +function UserFormat(list,mapping){ +/*********************** + 修改此方法实现自定义格式(剪切本代码到你的编辑器中修改),可参考JsonArrayFormat的实现 + 参数list:为所有城市平铺列表,[{id,pid,deep,name,pinyin_prefix,pinyin,ext_id,ext_name,child:[]},...] + 参数mapping:为id城市映射,0索引的是省级0:{child:[]},其他为id:{id,pid,deep,name,pinyin_prefix,pinyin,ext_id,ext_name,child:[]} +*************************/ + +/**导出的json key配置**/ +var Settings={ + ID:"id" + ,IDMinLen:2 //id最少要这么长,取值2,4,6,尽量不要超过2,因为部分城市没有下级,数据中添加了00结尾的ID作为下级,因此恢复6位时就会冲突。如过调整,生成的数据需要自行处理冲突ID + + //如果设为空,会将所有城市展开到数组内,不进行上下级嵌套 + ,Childs:"children" + + //以下字段如果设为空,对应字段就不添加到结果中 + ,pid:"pid" + ,deep:"" + ,name:"value" + ,pinyin:"" + ,pinyin_prefix:"" + ,ext_id:"ext_id" + ,ext_name:"label" +}; + +var exec=function(obj,dist){//写个函数,递归处理数据 + if(!obj.childs.length){ + return; + }; + for(var i=0;i { + callback && callback(DEVICE_TYPE.DESKTOP) + } + } + + const matchLablet = { + match: () => { + callback && callback(DEVICE_TYPE.TABLET) + } + } + + const matchMobile = { + match: () => { + callback && callback(DEVICE_TYPE.MOBILE) + } + } + + // screen and (max-width: 1087.99px) + enquireJs + .register('screen and (max-width: 576px)', matchMobile) + .register('screen and (min-width: 576px) and (max-width: 1199px)', matchLablet) + .register('screen and (min-width: 1200px)', matchDesktop) +} diff --git a/admin20250319/src/utils/devicetype.js b/admin20250319/src/utils/devicetype.js new file mode 100644 index 0000000..6159e97 --- /dev/null +++ b/admin20250319/src/utils/devicetype.js @@ -0,0 +1,19 @@ +import store from '@/store' + +// 所有设备类型列表 +export function AllDevTypes() { + return store.getters.alldevtypes +} +// 获取类型名 +export function GetDevTypeName(type) { + const types = store.getters.alldevtypes + const item = types.filter(item => item.code === type) + if (typeof item === 'undefined' || item.length === 0) { + return '' + } + const name = item[0].name + if (typeof name === 'undefined') { + return '' + } + return name +} diff --git a/admin20250319/src/utils/domUtil.js b/admin20250319/src/utils/domUtil.js new file mode 100644 index 0000000..44050a0 --- /dev/null +++ b/admin20250319/src/utils/domUtil.js @@ -0,0 +1,19 @@ +export const setDocumentTitle = function (title) { + document.title = title + const ua = navigator.userAgent + // eslint-disable-next-line + const regex = /\bMicroMessenger\/([\d\.]+)/ + if (regex.test(ua) && /ip(hone|od|ad)/i.test(ua)) { + const i = document.createElement('iframe') + i.src = '/favicon.ico' + i.style.display = 'none' + i.onload = function () { + setTimeout(function () { + i.remove() + }, 9) + } + document.body.appendChild(i) + } +} + +export const domTitle = '管理平台' diff --git a/admin20250319/src/utils/filter.js b/admin20250319/src/utils/filter.js new file mode 100644 index 0000000..5b5239e --- /dev/null +++ b/admin20250319/src/utils/filter.js @@ -0,0 +1,100 @@ +import Vue from 'vue' +import { DICT_TYPE_TREE_DATA } from '@/store/mutation-types' +import moment from 'moment' +import 'moment/locale/zh-cn' +moment.locale('zh-cn') + +Vue.filter('NumberFormat', function (value) { + if (!value) { + return '0' + } + const intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 千分位符 1,100,000.00 + return intPartFormat +}) + +Vue.filter('moment', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return moment(dataStr).format(pattern) +}) + +/** + * 金额格式化 ,使用方法:{{ val | Fmoney }} + * + * @author yubaoshan + * @date 2020-9-15 15:02:20 + */ +Vue.filter('Fmoney', function (val) { + // eslint-disable-next-line no-useless-escape + val = val.toString().replace(/\$|\,/g, '') + if (isNaN(val)) { + val = '0' + } + // eslint-disable-next-line eqeqeq + const sign = (val == (val = Math.abs(val))) + val = Math.floor(val * 100 + 0.50000000001) + let cents = val % 100 + val = Math.floor(val / 100).toString() + if (cents < 10) { + cents = '0' + cents + } + // eslint-disable-next-line no-undef + for (let i = 0; i < Math.floor((val.length - (1 + i)) / 3); i++) { + val = val.substring(0, val.length - (4 * i + 3)) + ',' + val.substring(val.length - (4 * i + 3)) + } + return (((sign) ? '' : '-') + val + '.' + cents) +}) + +/** + * 翻译使用方法,直接返回翻译后的name {{ code | dictType(value) }} + * + * @author yubaoshan + * @date 2020-9-15 15:02:20 + */ +Vue.filter('dictType', function (code, value) { + const dictTypeTree = Vue.ls.get(DICT_TYPE_TREE_DATA) + if (dictTypeTree === undefined) { + return '需重新登录' + } + if (dictTypeTree === null) { + return '无此字典' + } + // eslint-disable-next-line eqeqeq + const tree = dictTypeTree.filter(item => item.code == code)[0].children + if (tree === undefined || tree.length === 0) { + return '无此字典' + } + // eslint-disable-next-line eqeqeq + const values = tree.filter(item => item.code == value) + if (values.length === undefined || values.length === 0) { + return '无此字典' + } + return values[0].name +}) + +/** + * 获取某个code下字典的列表,多用于字典下拉框,使用方法:{{ code | dictData }} + * + * @author yubaoshan + * @date 2020-9-19 22:40:22 + */ +Vue.filter('dictData', function (code) { + const dictTypeTree = Vue.ls.get(DICT_TYPE_TREE_DATA) + if (dictTypeTree === undefined) { + return [] + } + // eslint-disable-next-line eqeqeq + const tree = dictTypeTree.filter(item => item.code == code)[0].children + if (tree === undefined) { + return [] + } + return tree +}) + +/** + * 获取所有字典数组 + * + * @author yubaoshan + * @date 2021-2-8 01:13 + */ +Vue.filter('dictDataAll', function () { + return Vue.ls.get(DICT_TYPE_TREE_DATA) +}) diff --git a/admin20250319/src/utils/helper/permission.js b/admin20250319/src/utils/helper/permission.js new file mode 100644 index 0000000..f0f6a32 --- /dev/null +++ b/admin20250319/src/utils/helper/permission.js @@ -0,0 +1,51 @@ +export const PERMISSION_ENUM = { + 'add': { key: 'add', label: '新增' }, + 'delete': { key: 'delete', label: '删除' }, + 'edit': { key: 'edit', label: '修改' }, + 'query': { key: 'query', label: '查询' }, + 'get': { key: 'get', label: '详情' }, + 'enable': { key: 'enable', label: '启用' }, + 'disable': { key: 'disable', label: '禁用' }, + 'import': { key: 'import', label: '导入' }, + 'export': { key: 'export', label: '导出' } +} + +function plugin (Vue) { + if (plugin.installed) { + return + } + + !Vue.prototype.$auth && Object.defineProperties(Vue.prototype, { + $auth: { + get () { + const _this = this + return (permissions) => { + const [permission, action] = permissions.split('.') + const permissionList = _this.$store.getters.roles.permissions + return permissionList.find((val) => { + return val.permissionId === permission + }).actionList.findIndex((val) => { + return val === action + }) > -1 + } + } + } + }) + + !Vue.prototype.$enum && Object.defineProperties(Vue.prototype, { + $enum: { + get () { + // const _this = this; + return (val) => { + let result = PERMISSION_ENUM + val && val.split('.').forEach(v => { + result = result && result[v] || null + }) + return result + } + } + } + }) +} + +export default plugin diff --git a/admin20250319/src/utils/messagesend.js b/admin20250319/src/utils/messagesend.js new file mode 100644 index 0000000..d041ef2 --- /dev/null +++ b/admin20250319/src/utils/messagesend.js @@ -0,0 +1,31 @@ +import Vue from 'vue' + +// signalR 客户端调用 +// 服务器端发送消息 + +// 给某一个个人 +export function messagesendtosomeone (parameter) { + Vue.socket.invoke('ClientsSendMessage', { userId: parameter.userId, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} + +// 给所有人 +export function messagesendtoAll (parameter) { + Vue.socket.invoke('ClientsSendMessagetoAll', { title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} + +// 给某些人 +export function messagesendtouserList (parameter) { + Vue.socket.invoke('ClientsSendMessagetoUsers', { userId: parameter.userList, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} +// 除了发送人 发送给剩下的人 +export function messagesendtoexsomeone (parameter) { + Vue.socket.invoke('ClientsSendMessagetoOther', { userIds: parameter.userIds, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) + .then(response => { + }) +} diff --git a/admin20250319/src/utils/mixin.js b/admin20250319/src/utils/mixin.js new file mode 100644 index 0000000..87d6c86 --- /dev/null +++ b/admin20250319/src/utils/mixin.js @@ -0,0 +1,85 @@ +/* + * @Author: your name + * @Date: 2021-05-18 23:01:55 + * @LastEditTime: 2021-05-19 00:49:11 + * @LastEditors: your name + * @Description: In User Settings Edit + * @FilePath: \frontend\src\utils\mixin.js + */ +// import Vue from 'vue' +import { deviceEnquire, DEVICE_TYPE } from '@/utils/device' +import { mapState } from 'vuex' + +// const mixinsComputed = Vue.config.optionMergeStrategies.computed +// const mixinsMethods = Vue.config.optionMergeStrategies.methods + +const mixin = { + computed: { + ...mapState({ + layoutMode: state => state.app.layout, + navTheme: state => state.app.theme, + primaryColor: state => state.app.color, + colorWeak: state => state.app.weak, + fixedHeader: state => state.app.fixedHeader, + fixSiderbar: state => state.app.fixSiderbar, + fixSidebar: state => state.app.fixSiderbar, + contentWidth: state => state.app.contentWidth, + autoHideHeader: state => state.app.autoHideHeader, + sidebarOpened: state => state.app.sidebar, + multiTab: state => state.app.multiTab, + crumbsState: state => state.app.crumbsState + }) + }, + methods: { + isTopMenu () { + return this.layoutMode === 'topmenu' + }, + isSideMenu () { + return !this.isTopMenu() + } + } +} + +const mixinDevice = { + computed: { + ...mapState({ + device: state => state.app.device + }) + }, + methods: { + isMobile () { + return this.device === DEVICE_TYPE.MOBILE + }, + isDesktop () { + return this.device === DEVICE_TYPE.DESKTOP + }, + isTablet () { + return this.device === DEVICE_TYPE.TABLET + } + } +} + +const AppDeviceEnquire = { + mounted () { + const { $store } = this + deviceEnquire(deviceType => { + switch (deviceType) { + case DEVICE_TYPE.DESKTOP: + $store.commit('TOGGLE_DEVICE', 'desktop') + $store.dispatch('setSidebar', true) + break + case DEVICE_TYPE.TABLET: + $store.commit('TOGGLE_DEVICE', 'tablet') + $store.dispatch('setSidebar', false) + break + case DEVICE_TYPE.MOBILE: + default: + $store.commit('TOGGLE_DEVICE', 'mobile') + $store.dispatch('setSidebar', true) + break + } + }) + } +} + +export { mixin, AppDeviceEnquire, mixinDevice } diff --git a/admin20250319/src/utils/permissions.js b/admin20250319/src/utils/permissions.js new file mode 100644 index 0000000..0444b74 --- /dev/null +++ b/admin20250319/src/utils/permissions.js @@ -0,0 +1,28 @@ +import store from '@/store' + +export function actionToObject (json) { + try { + return JSON.parse(json) + } catch (e) { + } + return [] +} + +/** + * 控制按钮是否显示 + * + * @author yubaoshan + * @date 2020/06/27 02:34 + */ +export function hasBtnPermission (permission) { + const myBtns = store.getters.buttons + // const allBtns = store.getters.allButtons + const admintype = store.getters.admintype + // eslint-disable-next-line eqeqeq + if (admintype === '1') { + return true + } + // 所有系统按钮中不存在,则不限制 + // return allBtns.indexOf(permission) === -1 || myBtns.indexOf(permission) > -1 + return myBtns.indexOf(permission) > -1 +} diff --git a/admin20250319/src/utils/request.js b/admin20250319/src/utils/request.js new file mode 100644 index 0000000..c489407 --- /dev/null +++ b/admin20250319/src/utils/request.js @@ -0,0 +1,124 @@ +import Vue from 'vue' +import axios from 'axios' +import store from '@/store' +// import router from './router' +import { message, Modal, notification } from 'ant-design-vue' /// es/notification +import { VueAxios } from './axios' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import { $MyError } from './common' + +// 创建 axios 实例 +const service = axios.create({ + baseURL: '/api', // api base_url + timeout: 30000 // 请求超时时间ms +}) + +const err = error => { + if (error.response) { + const data = error.response.data + const token = Vue.ls.get(ACCESS_TOKEN) + if (error.response.status === 403) { + notification.error({ + message: 'Forbidden', + description: data.message + }) + } + if (error.response.status === 500) { + if (data.message.length > 0) { + message.error(data.message) + } + } + if (error.response.status === 401 && !(data.result && data.result.isLogin)) { + notification.error({ + message: 'Unauthorized', + description: 'Authorization verification failed' + }) + if (token) { + store.dispatch('Logout').then(() => { + setTimeout(() => { + window.location.reload() + }, 1500) + }) + } + } + } + return Promise.reject(error) +} + +// request interceptor +service.interceptors.request.use(config => { + const token = Vue.ls.get(ACCESS_TOKEN) + const refreshToken = Vue.ls.get('X-Access-Token') + if (token) { + config.headers['Authorization'] = 'Bearer ' + token + } + if (refreshToken) { + config.headers['X-Authorization'] = 'Bearer ' + refreshToken + } + if (config.custombaseurl) { + config.baseURL = '' + } + return config +}, err) + +/** + * response interceptor + * 所有请求统一返回 + */ +service.interceptors.response.use(response => { + // LocalStorage 存储的 token 和 refreshToken,不设定过期时间,由服务端统一处理 + if (response.headers['access-token'] && response.headers['access-token'] !== 'invalid_token') { + Vue.ls.set(ACCESS_TOKEN, response.headers['access-token'] /*, 7 * 24 * 60 * 60 * 1000 */) + store.commit('SET_TOKEN', response.headers['access-token']) + } + if (response.headers['x-access-token']) { + Vue.ls.set('X-Access-Token', response.headers['x-access-token'] /*, 7 * 24 * 60 * 60 * 1000 */) + } + if (response.request.responseType === 'blob') { + return response + } + const resData = response.data + const code = response.data.code + if (code === 500) { + Modal.error({ + title: '提示:', + content: resData.message + }) + return + } + if (!store.state.app.hasError) { + if (code === 401 /* || code === 1011006 || code === 1011007 || code === 1011008 || code === 1011009 */) { + Modal.error({ + title: '提示:', + content: resData.message, + keyboard: false, + okText: '重新登录', + onOk: () => { + store.dispatch('SetHasError', false) + window.location.reload() + } + }) + + // 授权过期,清理本地缓存的记录,不论 Modal.error 的 onOk 是否确认,先清理 + // 否则会在没按 OK 时,刷新网页或者重新访问,都会弹出“未授权的提示框” + // 这样的调整后,TOKEN 为空直接重定向,SetHasError 的设置和判断其实已经用不上 + Vue.ls.remove(ACCESS_TOKEN) + Vue.ls.remove('X-Access-Token') + store.dispatch('SetHasError', true) + } + // if (code === 1013002 || code === 1016002 || code === 1015002) { + // message.error(response.data.message) + // return response.data + // } + } + return resData +}, err) + +const installer = { + vm: {}, + install(Vue) { + Vue.use(VueAxios, service) + } +} + +export { installer as VueAxios, service as axios } diff --git a/admin20250319/src/utils/routeConvert.js b/admin20250319/src/utils/routeConvert.js new file mode 100644 index 0000000..e88b0d6 --- /dev/null +++ b/admin20250319/src/utils/routeConvert.js @@ -0,0 +1,30 @@ +import cloneDeep from 'lodash.clonedeep' + +export function convertRoutes (nodes) { + if (!nodes) return null + + nodes = cloneDeep(nodes) + + let queue = Array.isArray(nodes) ? nodes.concat() : [nodes] + + while (queue.length) { + const levelSize = queue.length + + for (let i = 0; i < levelSize; i++) { + const node = queue.shift() + + if (!node.children || !node.children.length) continue + + node.children.forEach(child => { + // 转化相对路径 + if (child.path[0] !== '/' && !child.path.startsWith('http')) { + child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`) + } + }) + + queue = queue.concat(node.children) + } + } + + return nodes +} diff --git a/admin20250319/src/utils/socket.js b/admin20250319/src/utils/socket.js new file mode 100644 index 0000000..2c4765c --- /dev/null +++ b/admin20250319/src/utils/socket.js @@ -0,0 +1,188 @@ +import store from '@/store' +import { Modal, message } from 'ant-design-vue' +import * as SignalR from '@microsoft/signalr' + +const EventEmitter = require('events') + +const defaultOptions = { + log: false +} + +class SocketConnection extends EventEmitter { + constructor(connection, options = {}) { + super() + this.connection = connection + this.options = Object.assign(defaultOptions, options) + this.listened = [] + this.toSend = [] + this.offline = false + this.socket = undefined + } + + /** + * 同一种消息只定义一次 + * + * @param {string| symbol} event + * @param {(...args: any[]) => void} listener + * @memberof SocketConnection + */ + one(event, listener) { + if (this.listeners(event).length === 0) { + this.on(event, listener) + } + } + + async _initialize() { + try { + await this.socket.start() + this.emit('onstart') + if (this.offline) { + this.emit('onrestart') + } + this.offline = false + } catch (error) { + setTimeout(async () => { + await this._initialize() + }, 5000) + } + } + + async start(token) { + // 组件重新加载时, 如果 socket 存在, 不需要新建 + if (!this.socket) { + this.socket = new SignalR.HubConnectionBuilder() + .configureLogging(SignalR.LogLevel.Error) + .withUrl(`/hubs/chathub`, { + accessTokenFactory: () => token, + skipNegotiation: true, + transport: SignalR.HttpTransportType.WebSockets + }) + .build() + + this.socket.onclose(async () => { + this.offline = true + this.emit('onclose') + await this._initialize() + }) + + this.socket.on('ForceExist', () => { + // 关闭连接 + this.socket.stop() + store + .dispatch('Logout') + .then(() => { + Modal.success({ + title: '消息', + content: '你已被强制下线', + keyboard: false, + onOk: () => { + window.location.reload() + } + }) + }) + .catch(err => { + message.error({ + title: '错误', + description: err.message + }) + }) + }) + + await this._initialize() + } + } + + async authenticate(token) { + await this.start(token) + } + + listen(method) { + if (this.offline) return + + if (this.listened.some(v => v === method)) return + this.listened.push(method) + + this.one('onstart', () => { + this.listened.forEach(method => { + this.socket.on(method, data => { + if (this.options.log) { + } + + this.emit(method, data) + }) + }) + }) + } + + send(methodName, ...args) { + if (this.options.log) { + } + if (this.offline) return + + if (this.socket) { + this.socket.send(methodName, ...args) + return + } + + this.one('onstart', () => this.socket.send(methodName, ...args)) + } + + async invoke(methodName, ...args) { + if (this.options.log) { + } + if (this.offline) return false + + if (this.socket) { + return this.socket.invoke(methodName, ...args) + } + + // eslint-disable-next-line no-async-promise-executor + return new Promise(async resolve => this.one('onstart', () => resolve(this.socket.invoke(methodName, ...args)))) + } +} + +if (!SignalR) { + throw new Error('[Vue-SignalR] Cannot locate signalr-client') +} + +function install(Vue, connection) { + if (!connection) { + throw new Error('[Vue-SignalR] Cannot locate connection') + } + + const Socket = new SocketConnection(connection) + + Vue.socket = Socket + + Object.defineProperties(Vue.prototype, { + $socket: { + get() { + return Socket + } + } + }) + + Vue.mixin({ + created() { + if (this.$options.sockets) { + const methods = Object.getOwnPropertyNames(this.$options.sockets) + + methods.forEach(method => { + Socket.listen(method) + + Socket.one(method, data => this.$options.sockets[method].call(this, data)) + }) + } + + if (this.$options.subscribe) { + Socket.one('authenticated', () => { + this.$options.subscribe.forEach(channel => { + Socket.invoke('join', channel) + }) + }) + } + } + }) +} + +export default install diff --git a/admin20250319/src/utils/util.js b/admin20250319/src/utils/util.js new file mode 100644 index 0000000..af7884f --- /dev/null +++ b/admin20250319/src/utils/util.js @@ -0,0 +1,161 @@ +import { message } from 'ant-design-vue' /// es/notification +export function dateFormat(dateString, fmt) { + const date = new Date(dateString) + let ret + const opt = { + 'Y+': date.getFullYear().toString(), // 年 + 'm+': (date.getMonth() + 1).toString(), // 月 + 'd+': date.getDate().toString(), // 日 + 'H+': date.getHours().toString(), // 时 + 'M+': date.getMinutes().toString(), // 分 + 'S+': date.getSeconds().toString() // 秒 + // 有其他格式化字符需求可以继续添加,必须转化成字符串 + } + for (const k in opt) { + ret = new RegExp('(' + k + ')').exec(fmt) + if (ret) { + fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')) + } + } + return fmt +} + +export function timeFix() { + const time = new Date() + const hour = time.getHours() + return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好' +} + +export function welcome() { + const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 LOL', '我猜你可能累了'] + const index = Math.floor(Math.random() * arr.length) + return arr[index] +} + +/** + * 触发 window.resize + */ +export function triggerWindowResizeEvent() { + const event = document.createEvent('HTMLEvents') + event.initEvent('resize', true, true) + event.eventType = 'message' + window.dispatchEvent(event) +} + +export function handleScrollHeader(callback) { + let timer = 0 + + let beforeScrollTop = window.pageYOffset + callback = callback || function() {} + window.addEventListener( + 'scroll', + event => { + clearTimeout(timer) + timer = setTimeout(() => { + let direction = 'up' + const afterScrollTop = window.pageYOffset + const delta = afterScrollTop - beforeScrollTop + if (delta === 0) { + return false + } + direction = delta > 0 ? 'down' : 'up' + callback(direction) + beforeScrollTop = afterScrollTop + }, 50) + }, + false + ) +} + +export function isIE() { + const bw = window.navigator.userAgent + const compare = s => bw.indexOf(s) >= 0 + const ie11 = (() => 'ActiveXObject' in window)() + return compare('MSIE') || ie11 +} + +/** + * Remove loading animate + * @param id parent element id or class + * @param timeout + */ +export function removeLoadingAnimate(id = '', timeout = 1500) { + if (id === '') { + return + } + setTimeout(() => { + document.body.removeChild(document.getElementById(id)) + }, timeout) +} + +// 复制 +export function copyText(text) { + var tag = document.createElement('input') + tag.setAttribute('id', 'cp_hgz_input') + tag.value = text + document.getElementsByTagName('body')[0].appendChild(tag) + document.getElementById('cp_hgz_input').select() + document.execCommand('copy') + document.getElementById('cp_hgz_input').remove() + message.success('复制成功') +} +// 截取前面的字符 +export function textcontent(text, len) { + if (text.length > len) { + return text.substring(0, len) + '...' + } else { + return text + } +} +// 根据内容类型生成复制类型 +export function copyTextByContentType(val, type) { + var text = '' + // 如果是资讯/活动/轮播图/公告/党建 + if (type === 1) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果企业 + else if (type === 2) { + text = '/pages/phoneList/detail?id=' + val + '&type=' + type + } + // 如果是商品 + else if (type === 3) { + text = '/pageTwo/product/detail?id=' + val + '&type=' + type + } + // 如果是活动 + else if (type === 4) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果轮播图 + else if (type === 5) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果是公告 + else if (type === 6) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果党建 + else if (type === 7) { + text = '/pageTwo/news/detail?id=' + val + '&type=' + type + } + // 如果是供货 + else if (type === 8) { + text = '/pageTwo/product/detail?id=' + val + '&type=' + type + } + // 如果是需求 + else if (type === 9) { + text = '/pageTwo/product/detail?id=' + val + '&type=' + type + } + // 如果是会员 + else if (type === 10) { + text = '/pages/phoneList/detail?id=' + val + '&type=' + type + } + var tag = document.createElement('input') + tag.setAttribute('id', 'cp_hgz_input') + tag.value = text + document.getElementsByTagName('body')[0].appendChild(tag) + document.getElementById('cp_hgz_input').select() + document.execCommand('copy') + document.getElementById('cp_hgz_input').remove() + message.success('复制成功') +} diff --git a/admin20250319/src/utils/utils.less b/admin20250319/src/utils/utils.less new file mode 100644 index 0000000..ba75a67 --- /dev/null +++ b/admin20250319/src/utils/utils.less @@ -0,0 +1,50 @@ +.textOverflow() { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + word-break: break-all; +} + +.textOverflowMulti(@line: 3, @bg: #fff) { + position: relative; + max-height: @line * 1.5em; + margin-right: -1em; + padding-right: 1em; + overflow: hidden; + line-height: 1.5em; + text-align: justify; + &::before { + position: absolute; + right: 14px; + bottom: 0; + padding: 0 1px; + background: @bg; + content: '...'; + } + &::after { + position: absolute; + right: 14px; + width: 1em; + height: 1em; + margin-top: 0.2em; + background: white; + content: ''; + } +} + +// mixins for clearfix +// ------------------------ +.clearfix() { + zoom: 1; + &::before, + &::after { + display: table; + content: ' '; + } + &::after { + clear: both; + height: 0; + font-size: 0; + visibility: hidden; + } +} \ No newline at end of file diff --git a/admin20250319/src/views/404.vue b/admin20250319/src/views/404.vue new file mode 100644 index 0000000..8c1d8a1 --- /dev/null +++ b/admin20250319/src/views/404.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/admin20250319/src/views/Home.vue b/admin20250319/src/views/Home.vue new file mode 100644 index 0000000..e89805b --- /dev/null +++ b/admin20250319/src/views/Home.vue @@ -0,0 +1,215 @@ + diff --git a/admin20250319/src/views/components/YbTable.vue b/admin20250319/src/views/components/YbTable.vue new file mode 100644 index 0000000..4bd909f --- /dev/null +++ b/admin20250319/src/views/components/YbTable.vue @@ -0,0 +1,29 @@ + + diff --git a/admin20250319/src/views/components/previewimg.vue b/admin20250319/src/views/components/previewimg.vue new file mode 100644 index 0000000..eeb6d74 --- /dev/null +++ b/admin20250319/src/views/components/previewimg.vue @@ -0,0 +1,26 @@ + + diff --git a/admin20250319/src/views/main/README.md b/admin20250319/src/views/main/README.md new file mode 100644 index 0000000..fadf99a --- /dev/null +++ b/admin20250319/src/views/main/README.md @@ -0,0 +1 @@ +/** 您的业务接口文件全写在此文件夹下面,升级底座直接迁移代码即可 **/ diff --git a/admin20250319/src/views/main/banner/editForm.vue b/admin20250319/src/views/main/banner/editForm.vue new file mode 100644 index 0000000..af7d392 --- /dev/null +++ b/admin20250319/src/views/main/banner/editForm.vue @@ -0,0 +1,327 @@ + + + diff --git a/admin20250319/src/views/main/banner/list.vue b/admin20250319/src/views/main/banner/list.vue new file mode 100644 index 0000000..ac44449 --- /dev/null +++ b/admin20250319/src/views/main/banner/list.vue @@ -0,0 +1,323 @@ + + + diff --git a/admin20250319/src/views/main/business/detail.vue b/admin20250319/src/views/main/business/detail.vue new file mode 100644 index 0000000..4a19b56 --- /dev/null +++ b/admin20250319/src/views/main/business/detail.vue @@ -0,0 +1,308 @@ + + + diff --git a/admin20250319/src/views/main/business/list.vue b/admin20250319/src/views/main/business/list.vue new file mode 100644 index 0000000..f557463 --- /dev/null +++ b/admin20250319/src/views/main/business/list.vue @@ -0,0 +1,258 @@ + + + diff --git a/admin20250319/src/views/main/demand/detail.vue b/admin20250319/src/views/main/demand/detail.vue new file mode 100644 index 0000000..1f383d6 --- /dev/null +++ b/admin20250319/src/views/main/demand/detail.vue @@ -0,0 +1,185 @@ + + + diff --git a/admin20250319/src/views/main/demand/list.vue b/admin20250319/src/views/main/demand/list.vue new file mode 100644 index 0000000..d4d1475 --- /dev/null +++ b/admin20250319/src/views/main/demand/list.vue @@ -0,0 +1,242 @@ + + + diff --git a/admin20250319/src/views/main/gongyixinxi/editForm.vue b/admin20250319/src/views/main/gongyixinxi/editForm.vue new file mode 100644 index 0000000..1e63b17 --- /dev/null +++ b/admin20250319/src/views/main/gongyixinxi/editForm.vue @@ -0,0 +1,214 @@ + + + diff --git a/admin20250319/src/views/main/gongyixinxi/list.vue b/admin20250319/src/views/main/gongyixinxi/list.vue new file mode 100644 index 0000000..4054071 --- /dev/null +++ b/admin20250319/src/views/main/gongyixinxi/list.vue @@ -0,0 +1,277 @@ + + + diff --git a/admin20250319/src/views/main/huodong/editForm.vue b/admin20250319/src/views/main/huodong/editForm.vue new file mode 100644 index 0000000..f99ab36 --- /dev/null +++ b/admin20250319/src/views/main/huodong/editForm.vue @@ -0,0 +1,283 @@ + + + diff --git a/admin20250319/src/views/main/huodong/list.vue b/admin20250319/src/views/main/huodong/list.vue new file mode 100644 index 0000000..0dc246b --- /dev/null +++ b/admin20250319/src/views/main/huodong/list.vue @@ -0,0 +1,303 @@ + + + diff --git a/admin20250319/src/views/main/industry/editForm.vue b/admin20250319/src/views/main/industry/editForm.vue new file mode 100644 index 0000000..b228ec5 --- /dev/null +++ b/admin20250319/src/views/main/industry/editForm.vue @@ -0,0 +1,123 @@ + + + diff --git a/admin20250319/src/views/main/industry/list.vue b/admin20250319/src/views/main/industry/list.vue new file mode 100644 index 0000000..6ac915a --- /dev/null +++ b/admin20250319/src/views/main/industry/list.vue @@ -0,0 +1,147 @@ + + + diff --git a/admin20250319/src/views/main/info/editForm.vue b/admin20250319/src/views/main/info/editForm.vue new file mode 100644 index 0000000..a3dc080 --- /dev/null +++ b/admin20250319/src/views/main/info/editForm.vue @@ -0,0 +1,214 @@ + + + diff --git a/admin20250319/src/views/main/info/list.vue b/admin20250319/src/views/main/info/list.vue new file mode 100644 index 0000000..1a1110f --- /dev/null +++ b/admin20250319/src/views/main/info/list.vue @@ -0,0 +1,303 @@ + + + diff --git a/admin20250319/src/views/main/navbar/editForm.vue b/admin20250319/src/views/main/navbar/editForm.vue new file mode 100644 index 0000000..bec84c3 --- /dev/null +++ b/admin20250319/src/views/main/navbar/editForm.vue @@ -0,0 +1,178 @@ + + + diff --git a/admin20250319/src/views/main/navbar/list.vue b/admin20250319/src/views/main/navbar/list.vue new file mode 100644 index 0000000..9ac1c34 --- /dev/null +++ b/admin20250319/src/views/main/navbar/list.vue @@ -0,0 +1,202 @@ + + + diff --git a/admin20250319/src/views/main/notice/editForm.vue b/admin20250319/src/views/main/notice/editForm.vue new file mode 100644 index 0000000..447f0a7 --- /dev/null +++ b/admin20250319/src/views/main/notice/editForm.vue @@ -0,0 +1,195 @@ + + + diff --git a/admin20250319/src/views/main/notice/list.vue b/admin20250319/src/views/main/notice/list.vue new file mode 100644 index 0000000..c3de368 --- /dev/null +++ b/admin20250319/src/views/main/notice/list.vue @@ -0,0 +1,275 @@ + + + diff --git a/admin20250319/src/views/main/party/editForm.vue b/admin20250319/src/views/main/party/editForm.vue new file mode 100644 index 0000000..7ee544d --- /dev/null +++ b/admin20250319/src/views/main/party/editForm.vue @@ -0,0 +1,214 @@ + + + diff --git a/admin20250319/src/views/main/party/list.vue b/admin20250319/src/views/main/party/list.vue new file mode 100644 index 0000000..8e0ef5d --- /dev/null +++ b/admin20250319/src/views/main/party/list.vue @@ -0,0 +1,276 @@ + + + diff --git a/admin20250319/src/views/main/platform/phoneclicknumber.vue b/admin20250319/src/views/main/platform/phoneclicknumber.vue new file mode 100644 index 0000000..d1f638d --- /dev/null +++ b/admin20250319/src/views/main/platform/phoneclicknumber.vue @@ -0,0 +1,137 @@ + + + \ No newline at end of file diff --git a/admin20250319/src/views/main/platform/set.vue b/admin20250319/src/views/main/platform/set.vue new file mode 100644 index 0000000..e89a24f --- /dev/null +++ b/admin20250319/src/views/main/platform/set.vue @@ -0,0 +1,446 @@ + + + + + diff --git a/admin20250319/src/views/main/product/detail.vue b/admin20250319/src/views/main/product/detail.vue new file mode 100644 index 0000000..e926615 --- /dev/null +++ b/admin20250319/src/views/main/product/detail.vue @@ -0,0 +1,210 @@ + + + diff --git a/admin20250319/src/views/main/product/list.vue b/admin20250319/src/views/main/product/list.vue new file mode 100644 index 0000000..ac44b1a --- /dev/null +++ b/admin20250319/src/views/main/product/list.vue @@ -0,0 +1,283 @@ + + + diff --git a/admin20250319/src/views/main/reguser/list.vue b/admin20250319/src/views/main/reguser/list.vue new file mode 100644 index 0000000..19fc12d --- /dev/null +++ b/admin20250319/src/views/main/reguser/list.vue @@ -0,0 +1,154 @@ + + + diff --git a/admin20250319/src/views/main/supply/detail.vue b/admin20250319/src/views/main/supply/detail.vue new file mode 100644 index 0000000..219c9ef --- /dev/null +++ b/admin20250319/src/views/main/supply/detail.vue @@ -0,0 +1,210 @@ + + + diff --git a/admin20250319/src/views/main/supply/list.vue b/admin20250319/src/views/main/supply/list.vue new file mode 100644 index 0000000..a7409e1 --- /dev/null +++ b/admin20250319/src/views/main/supply/list.vue @@ -0,0 +1,264 @@ + + + diff --git a/admin20250319/src/views/main/vip/auth/editForm.vue b/admin20250319/src/views/main/vip/auth/editForm.vue new file mode 100644 index 0000000..f96df8e --- /dev/null +++ b/admin20250319/src/views/main/vip/auth/editForm.vue @@ -0,0 +1,157 @@ + + + diff --git a/admin20250319/src/views/main/vip/auth/list.vue b/admin20250319/src/views/main/vip/auth/list.vue new file mode 100644 index 0000000..8c06718 --- /dev/null +++ b/admin20250319/src/views/main/vip/auth/list.vue @@ -0,0 +1,189 @@ + + + diff --git a/admin20250319/src/views/main/vip/editForm.vue b/admin20250319/src/views/main/vip/editForm.vue new file mode 100644 index 0000000..7da07fe --- /dev/null +++ b/admin20250319/src/views/main/vip/editForm.vue @@ -0,0 +1,309 @@ + + + diff --git a/admin20250319/src/views/main/vip/list.vue b/admin20250319/src/views/main/vip/list.vue new file mode 100644 index 0000000..83f179f --- /dev/null +++ b/admin20250319/src/views/main/vip/list.vue @@ -0,0 +1,156 @@ + + + diff --git a/admin20250319/src/views/main/wx/mini.vue b/admin20250319/src/views/main/wx/mini.vue new file mode 100644 index 0000000..68af3d6 --- /dev/null +++ b/admin20250319/src/views/main/wx/mini.vue @@ -0,0 +1,154 @@ + + + diff --git a/admin20250319/src/views/main/wx/minieditform.vue b/admin20250319/src/views/main/wx/minieditform.vue new file mode 100644 index 0000000..5161e69 --- /dev/null +++ b/admin20250319/src/views/main/wx/minieditform.vue @@ -0,0 +1,180 @@ + + + diff --git a/admin20250319/src/views/system/account/center/Index.vue b/admin20250319/src/views/system/account/center/Index.vue new file mode 100644 index 0000000..e2ffd4a --- /dev/null +++ b/admin20250319/src/views/system/account/center/Index.vue @@ -0,0 +1,308 @@ + + + + + diff --git a/admin20250319/src/views/system/account/center/page/App.vue b/admin20250319/src/views/system/account/center/page/App.vue new file mode 100644 index 0000000..853aeab --- /dev/null +++ b/admin20250319/src/views/system/account/center/page/App.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/admin20250319/src/views/system/account/center/page/Article.vue b/admin20250319/src/views/system/account/center/page/Article.vue new file mode 100644 index 0000000..bac1ded --- /dev/null +++ b/admin20250319/src/views/system/account/center/page/Article.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/admin20250319/src/views/system/account/center/page/Project.vue b/admin20250319/src/views/system/account/center/page/Project.vue new file mode 100644 index 0000000..24dfb29 --- /dev/null +++ b/admin20250319/src/views/system/account/center/page/Project.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/admin20250319/src/views/system/account/center/page/index.js b/admin20250319/src/views/system/account/center/page/index.js new file mode 100644 index 0000000..b579b6a --- /dev/null +++ b/admin20250319/src/views/system/account/center/page/index.js @@ -0,0 +1,5 @@ +import AppPage from './App' +import ArticlePage from './Article' +import ProjectPage from './Project' + +export { AppPage, ArticlePage, ProjectPage } diff --git a/admin20250319/src/views/system/account/settings/AvatarModal.vue b/admin20250319/src/views/system/account/settings/AvatarModal.vue new file mode 100644 index 0000000..474bfb7 --- /dev/null +++ b/admin20250319/src/views/system/account/settings/AvatarModal.vue @@ -0,0 +1,182 @@ + + + + diff --git a/admin20250319/src/views/system/account/settings/BaseSetting.vue b/admin20250319/src/views/system/account/settings/BaseSetting.vue new file mode 100644 index 0000000..c50b7f3 --- /dev/null +++ b/admin20250319/src/views/system/account/settings/BaseSetting.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/admin20250319/src/views/system/account/settings/Custom.vue b/admin20250319/src/views/system/account/settings/Custom.vue new file mode 100644 index 0000000..c235570 --- /dev/null +++ b/admin20250319/src/views/system/account/settings/Custom.vue @@ -0,0 +1,75 @@ + + + diff --git a/admin20250319/src/views/system/account/settings/Index.vue b/admin20250319/src/views/system/account/settings/Index.vue new file mode 100644 index 0000000..989b764 --- /dev/null +++ b/admin20250319/src/views/system/account/settings/Index.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/admin20250319/src/views/system/account/settings/Notification.vue b/admin20250319/src/views/system/account/settings/Notification.vue new file mode 100644 index 0000000..cbea7fc --- /dev/null +++ b/admin20250319/src/views/system/account/settings/Notification.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/admin20250319/src/views/system/account/settings/Security.vue b/admin20250319/src/views/system/account/settings/Security.vue new file mode 100644 index 0000000..ec6cab7 --- /dev/null +++ b/admin20250319/src/views/system/account/settings/Security.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/admin20250319/src/views/system/account/settings/ThirdOpen.vue b/admin20250319/src/views/system/account/settings/ThirdOpen.vue new file mode 100644 index 0000000..6c17827 --- /dev/null +++ b/admin20250319/src/views/system/account/settings/ThirdOpen.vue @@ -0,0 +1,28 @@ + + + + diff --git a/admin20250319/src/views/system/account/settings/securityItem/updPwd.vue b/admin20250319/src/views/system/account/settings/securityItem/updPwd.vue new file mode 100644 index 0000000..4c45629 --- /dev/null +++ b/admin20250319/src/views/system/account/settings/securityItem/updPwd.vue @@ -0,0 +1,134 @@ + + + diff --git a/admin20250319/src/views/system/app/addForm.vue b/admin20250319/src/views/system/app/addForm.vue new file mode 100644 index 0000000..8e80ee1 --- /dev/null +++ b/admin20250319/src/views/system/app/addForm.vue @@ -0,0 +1,87 @@ + + diff --git a/admin20250319/src/views/system/app/editForm.vue b/admin20250319/src/views/system/app/editForm.vue new file mode 100644 index 0000000..2a119f3 --- /dev/null +++ b/admin20250319/src/views/system/app/editForm.vue @@ -0,0 +1,116 @@ + + diff --git a/admin20250319/src/views/system/app/index.vue b/admin20250319/src/views/system/app/index.vue new file mode 100644 index 0000000..bdc6d97 --- /dev/null +++ b/admin20250319/src/views/system/app/index.vue @@ -0,0 +1,272 @@ +/* eslint-disable eqeqeq */ + + + diff --git a/admin20250319/src/views/system/config/addForm.vue b/admin20250319/src/views/system/config/addForm.vue new file mode 100644 index 0000000..231ddb7 --- /dev/null +++ b/admin20250319/src/views/system/config/addForm.vue @@ -0,0 +1,130 @@ + + diff --git a/admin20250319/src/views/system/config/editForm.vue b/admin20250319/src/views/system/config/editForm.vue new file mode 100644 index 0000000..ddd2894 --- /dev/null +++ b/admin20250319/src/views/system/config/editForm.vue @@ -0,0 +1,158 @@ + + diff --git a/admin20250319/src/views/system/config/index.vue b/admin20250319/src/views/system/config/index.vue new file mode 100644 index 0000000..483d6b4 --- /dev/null +++ b/admin20250319/src/views/system/config/index.vue @@ -0,0 +1,201 @@ + + + diff --git a/admin20250319/src/views/system/dashboard/Analysis.vue b/admin20250319/src/views/system/dashboard/Analysis.vue new file mode 100644 index 0000000..e69de29 diff --git a/admin20250319/src/views/system/dashboard/Monitor.vue b/admin20250319/src/views/system/dashboard/Monitor.vue new file mode 100644 index 0000000..74b5bff --- /dev/null +++ b/admin20250319/src/views/system/dashboard/Monitor.vue @@ -0,0 +1,15 @@ + diff --git a/admin20250319/src/views/system/dashboard/TestWork.vue b/admin20250319/src/views/system/dashboard/TestWork.vue new file mode 100644 index 0000000..c36ece5 --- /dev/null +++ b/admin20250319/src/views/system/dashboard/TestWork.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/admin20250319/src/views/system/dashboard/Workplace.vue b/admin20250319/src/views/system/dashboard/Workplace.vue new file mode 100644 index 0000000..8ffb3a4 --- /dev/null +++ b/admin20250319/src/views/system/dashboard/Workplace.vue @@ -0,0 +1,526 @@ + + + + + + + + + + + + + + + + --> diff --git a/admin20250319/src/views/system/dict/addForm.vue b/admin20250319/src/views/system/dict/addForm.vue new file mode 100644 index 0000000..22f82ff --- /dev/null +++ b/admin20250319/src/views/system/dict/addForm.vue @@ -0,0 +1,106 @@ + + + diff --git a/admin20250319/src/views/system/dict/dictdata/addForm.vue b/admin20250319/src/views/system/dict/dictdata/addForm.vue new file mode 100644 index 0000000..09e988b --- /dev/null +++ b/admin20250319/src/views/system/dict/dictdata/addForm.vue @@ -0,0 +1,123 @@ + + + diff --git a/admin20250319/src/views/system/dict/dictdata/editForm.vue b/admin20250319/src/views/system/dict/dictdata/editForm.vue new file mode 100644 index 0000000..5377949 --- /dev/null +++ b/admin20250319/src/views/system/dict/dictdata/editForm.vue @@ -0,0 +1,137 @@ + + + diff --git a/admin20250319/src/views/system/dict/dictdata/index.vue b/admin20250319/src/views/system/dict/dictdata/index.vue new file mode 100644 index 0000000..f6149dd --- /dev/null +++ b/admin20250319/src/views/system/dict/dictdata/index.vue @@ -0,0 +1,235 @@ + + + diff --git a/admin20250319/src/views/system/dict/editForm.vue b/admin20250319/src/views/system/dict/editForm.vue new file mode 100644 index 0000000..ad8178e --- /dev/null +++ b/admin20250319/src/views/system/dict/editForm.vue @@ -0,0 +1,128 @@ + + + diff --git a/admin20250319/src/views/system/dict/index.vue b/admin20250319/src/views/system/dict/index.vue new file mode 100644 index 0000000..fd72b33 --- /dev/null +++ b/admin20250319/src/views/system/dict/index.vue @@ -0,0 +1,224 @@ + + + diff --git a/admin20250319/src/views/system/email/index.vue b/admin20250319/src/views/system/email/index.vue new file mode 100644 index 0000000..b4dec38 --- /dev/null +++ b/admin20250319/src/views/system/email/index.vue @@ -0,0 +1,205 @@ + + + diff --git a/admin20250319/src/views/system/exception/403.vue b/admin20250319/src/views/system/exception/403.vue new file mode 100644 index 0000000..ffc3799 --- /dev/null +++ b/admin20250319/src/views/system/exception/403.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/admin20250319/src/views/system/exception/404.vue b/admin20250319/src/views/system/exception/404.vue new file mode 100644 index 0000000..16f767f --- /dev/null +++ b/admin20250319/src/views/system/exception/404.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/admin20250319/src/views/system/exception/500.vue b/admin20250319/src/views/system/exception/500.vue new file mode 100644 index 0000000..cc5d7ab --- /dev/null +++ b/admin20250319/src/views/system/exception/500.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/admin20250319/src/views/system/file/detailForm.vue b/admin20250319/src/views/system/file/detailForm.vue new file mode 100644 index 0000000..f25b719 --- /dev/null +++ b/admin20250319/src/views/system/file/detailForm.vue @@ -0,0 +1,99 @@ + + diff --git a/admin20250319/src/views/system/file/index.vue b/admin20250319/src/views/system/file/index.vue new file mode 100644 index 0000000..bcaed8a --- /dev/null +++ b/admin20250319/src/views/system/file/index.vue @@ -0,0 +1,266 @@ + + + diff --git a/admin20250319/src/views/system/file/previewForm.vue b/admin20250319/src/views/system/file/previewForm.vue new file mode 100644 index 0000000..ebce151 --- /dev/null +++ b/admin20250319/src/views/system/file/previewForm.vue @@ -0,0 +1,60 @@ + + diff --git a/admin20250319/src/views/system/index/welcome.vue b/admin20250319/src/views/system/index/welcome.vue new file mode 100644 index 0000000..a5c7575 --- /dev/null +++ b/admin20250319/src/views/system/index/welcome.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/admin20250319/src/views/system/log/exlog/details.vue b/admin20250319/src/views/system/log/exlog/details.vue new file mode 100644 index 0000000..086173b --- /dev/null +++ b/admin20250319/src/views/system/log/exlog/details.vue @@ -0,0 +1,69 @@ + + diff --git a/admin20250319/src/views/system/log/exlog/index.vue b/admin20250319/src/views/system/log/exlog/index.vue new file mode 100644 index 0000000..343ad85 --- /dev/null +++ b/admin20250319/src/views/system/log/exlog/index.vue @@ -0,0 +1,236 @@ + + + diff --git a/admin20250319/src/views/system/log/oplog/details.vue b/admin20250319/src/views/system/log/oplog/details.vue new file mode 100644 index 0000000..54bffcd --- /dev/null +++ b/admin20250319/src/views/system/log/oplog/details.vue @@ -0,0 +1,48 @@ + + diff --git a/admin20250319/src/views/system/log/oplog/index.vue b/admin20250319/src/views/system/log/oplog/index.vue new file mode 100644 index 0000000..9e2bc26 --- /dev/null +++ b/admin20250319/src/views/system/log/oplog/index.vue @@ -0,0 +1,225 @@ + + + diff --git a/admin20250319/src/views/system/log/thirdlog/detail.vue b/admin20250319/src/views/system/log/thirdlog/detail.vue new file mode 100644 index 0000000..0d5eb1a --- /dev/null +++ b/admin20250319/src/views/system/log/thirdlog/detail.vue @@ -0,0 +1,85 @@ + + diff --git a/admin20250319/src/views/system/log/thirdlog/index.vue b/admin20250319/src/views/system/log/thirdlog/index.vue new file mode 100644 index 0000000..b40c13a --- /dev/null +++ b/admin20250319/src/views/system/log/thirdlog/index.vue @@ -0,0 +1,236 @@ + + + diff --git a/admin20250319/src/views/system/log/vislog/details.vue b/admin20250319/src/views/system/log/vislog/details.vue new file mode 100644 index 0000000..5030b40 --- /dev/null +++ b/admin20250319/src/views/system/log/vislog/details.vue @@ -0,0 +1,53 @@ + + diff --git a/admin20250319/src/views/system/log/vislog/index.vue b/admin20250319/src/views/system/log/vislog/index.vue new file mode 100644 index 0000000..e5c05f7 --- /dev/null +++ b/admin20250319/src/views/system/log/vislog/index.vue @@ -0,0 +1,203 @@ + + + diff --git a/admin20250319/src/views/system/machine/index.vue b/admin20250319/src/views/system/machine/index.vue new file mode 100644 index 0000000..4cac216 --- /dev/null +++ b/admin20250319/src/views/system/machine/index.vue @@ -0,0 +1,140 @@ + + + diff --git a/admin20250319/src/views/system/menu/addForm.vue b/admin20250319/src/views/system/menu/addForm.vue new file mode 100644 index 0000000..d626c84 --- /dev/null +++ b/admin20250319/src/views/system/menu/addForm.vue @@ -0,0 +1,612 @@ + + + diff --git a/admin20250319/src/views/system/menu/editForm.vue b/admin20250319/src/views/system/menu/editForm.vue new file mode 100644 index 0000000..284487c --- /dev/null +++ b/admin20250319/src/views/system/menu/editForm.vue @@ -0,0 +1,677 @@ + + + diff --git a/admin20250319/src/views/system/menu/index.vue b/admin20250319/src/views/system/menu/index.vue new file mode 100644 index 0000000..a706207 --- /dev/null +++ b/admin20250319/src/views/system/menu/index.vue @@ -0,0 +1,303 @@ +/* eslint-disable */ + + + + diff --git a/admin20250319/src/views/system/notice/addForm.vue b/admin20250319/src/views/system/notice/addForm.vue new file mode 100644 index 0000000..6da7f75 --- /dev/null +++ b/admin20250319/src/views/system/notice/addForm.vue @@ -0,0 +1,228 @@ + + + diff --git a/admin20250319/src/views/system/notice/detailForm.vue b/admin20250319/src/views/system/notice/detailForm.vue new file mode 100644 index 0000000..a5c54ab --- /dev/null +++ b/admin20250319/src/views/system/notice/detailForm.vue @@ -0,0 +1,62 @@ + + diff --git a/admin20250319/src/views/system/notice/editForm.vue b/admin20250319/src/views/system/notice/editForm.vue new file mode 100644 index 0000000..47d16eb --- /dev/null +++ b/admin20250319/src/views/system/notice/editForm.vue @@ -0,0 +1,256 @@ + + + diff --git a/admin20250319/src/views/system/notice/index.vue b/admin20250319/src/views/system/notice/index.vue new file mode 100644 index 0000000..3e89be2 --- /dev/null +++ b/admin20250319/src/views/system/notice/index.vue @@ -0,0 +1,254 @@ + + + diff --git a/admin20250319/src/views/system/noticeReceived/detailForm.vue b/admin20250319/src/views/system/noticeReceived/detailForm.vue new file mode 100644 index 0000000..a4b43ed --- /dev/null +++ b/admin20250319/src/views/system/noticeReceived/detailForm.vue @@ -0,0 +1,75 @@ + + + + diff --git a/admin20250319/src/views/system/noticeReceived/index.vue b/admin20250319/src/views/system/noticeReceived/index.vue new file mode 100644 index 0000000..b9d24d1 --- /dev/null +++ b/admin20250319/src/views/system/noticeReceived/index.vue @@ -0,0 +1,156 @@ + + + + diff --git a/admin20250319/src/views/system/org/addForm.vue b/admin20250319/src/views/system/org/addForm.vue new file mode 100644 index 0000000..7e48c90 --- /dev/null +++ b/admin20250319/src/views/system/org/addForm.vue @@ -0,0 +1,162 @@ + + + diff --git a/admin20250319/src/views/system/org/editForm.vue b/admin20250319/src/views/system/org/editForm.vue new file mode 100644 index 0000000..7c346f2 --- /dev/null +++ b/admin20250319/src/views/system/org/editForm.vue @@ -0,0 +1,180 @@ + + + diff --git a/admin20250319/src/views/system/org/index.vue b/admin20250319/src/views/system/org/index.vue new file mode 100644 index 0000000..7e03976 --- /dev/null +++ b/admin20250319/src/views/system/org/index.vue @@ -0,0 +1,205 @@ + + + diff --git a/admin20250319/src/views/system/pos/addForm.vue b/admin20250319/src/views/system/pos/addForm.vue new file mode 100644 index 0000000..0d5ec15 --- /dev/null +++ b/admin20250319/src/views/system/pos/addForm.vue @@ -0,0 +1,101 @@ + + + diff --git a/admin20250319/src/views/system/pos/editForm.vue b/admin20250319/src/views/system/pos/editForm.vue new file mode 100644 index 0000000..c3d07cb --- /dev/null +++ b/admin20250319/src/views/system/pos/editForm.vue @@ -0,0 +1,115 @@ + + + diff --git a/admin20250319/src/views/system/pos/index.vue b/admin20250319/src/views/system/pos/index.vue new file mode 100644 index 0000000..2668112 --- /dev/null +++ b/admin20250319/src/views/system/pos/index.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/admin20250319/src/views/system/role/addForm.vue b/admin20250319/src/views/system/role/addForm.vue new file mode 100644 index 0000000..8b992f2 --- /dev/null +++ b/admin20250319/src/views/system/role/addForm.vue @@ -0,0 +1,125 @@ + + + diff --git a/admin20250319/src/views/system/role/editForm.vue b/admin20250319/src/views/system/role/editForm.vue new file mode 100644 index 0000000..8cd5a98 --- /dev/null +++ b/admin20250319/src/views/system/role/editForm.vue @@ -0,0 +1,144 @@ + + + diff --git a/admin20250319/src/views/system/role/index.vue b/admin20250319/src/views/system/role/index.vue new file mode 100644 index 0000000..b8feecb --- /dev/null +++ b/admin20250319/src/views/system/role/index.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/admin20250319/src/views/system/role/roleMenuForm.vue b/admin20250319/src/views/system/role/roleMenuForm.vue new file mode 100644 index 0000000..20389c6 --- /dev/null +++ b/admin20250319/src/views/system/role/roleMenuForm.vue @@ -0,0 +1,185 @@ + + + diff --git a/admin20250319/src/views/system/role/roleOrgForm.vue b/admin20250319/src/views/system/role/roleOrgForm.vue new file mode 100644 index 0000000..46b731d --- /dev/null +++ b/admin20250319/src/views/system/role/roleOrgForm.vue @@ -0,0 +1,195 @@ + + + diff --git a/admin20250319/src/views/system/user/addForm.vue b/admin20250319/src/views/system/user/addForm.vue new file mode 100644 index 0000000..942e698 --- /dev/null +++ b/admin20250319/src/views/system/user/addForm.vue @@ -0,0 +1,575 @@ + + + diff --git a/admin20250319/src/views/system/user/editForm.vue b/admin20250319/src/views/system/user/editForm.vue new file mode 100644 index 0000000..343416c --- /dev/null +++ b/admin20250319/src/views/system/user/editForm.vue @@ -0,0 +1,567 @@ + + diff --git a/admin20250319/src/views/system/user/index.vue b/admin20250319/src/views/system/user/index.vue new file mode 100644 index 0000000..662db06 --- /dev/null +++ b/admin20250319/src/views/system/user/index.vue @@ -0,0 +1,478 @@ + + + diff --git a/admin20250319/src/views/system/user/userComForm.vue b/admin20250319/src/views/system/user/userComForm.vue new file mode 100644 index 0000000..9b232c1 --- /dev/null +++ b/admin20250319/src/views/system/user/userComForm.vue @@ -0,0 +1,398 @@ + + + diff --git a/admin20250319/src/views/system/user/userOrgForm.vue b/admin20250319/src/views/system/user/userOrgForm.vue new file mode 100644 index 0000000..508c3b8 --- /dev/null +++ b/admin20250319/src/views/system/user/userOrgForm.vue @@ -0,0 +1,150 @@ + + + diff --git a/admin20250319/src/views/system/user/userRoleForm.vue b/admin20250319/src/views/system/user/userRoleForm.vue new file mode 100644 index 0000000..cbdd201 --- /dev/null +++ b/admin20250319/src/views/system/user/userRoleForm.vue @@ -0,0 +1,117 @@ + + + diff --git a/admin20250319/src/views/system/user/userVIPForm.vue b/admin20250319/src/views/system/user/userVIPForm.vue new file mode 100644 index 0000000..2db5deb --- /dev/null +++ b/admin20250319/src/views/system/user/userVIPForm.vue @@ -0,0 +1,140 @@ + + + diff --git a/admin20250319/src/views/userLoginReg/Login.vue b/admin20250319/src/views/userLoginReg/Login.vue new file mode 100644 index 0000000..9f9a885 --- /dev/null +++ b/admin20250319/src/views/userLoginReg/Login.vue @@ -0,0 +1,316 @@ + + + + + diff --git a/admin20250319/tests/unit/.eslintrc.js b/admin20250319/tests/unit/.eslintrc.js new file mode 100644 index 0000000..958d51b --- /dev/null +++ b/admin20250319/tests/unit/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + jest: true + } +} diff --git a/admin20250319/vue.config.js b/admin20250319/vue.config.js new file mode 100644 index 0000000..ab2c5e4 --- /dev/null +++ b/admin20250319/vue.config.js @@ -0,0 +1,144 @@ +const path = require('path') +const webpack = require('webpack') +const createThemeColorReplacerPlugin = require('./config/plugin.config') +const CompressionWebpackPlugin = require('compression-webpack-plugin') +const productionGzipExtensions = ['js', 'css'] + +function resolve(dir) { + return path.join(__dirname, dir) +} + +const isProd = process.env.NODE_ENV === 'production' + +const assetsCDN = { + // webpack build externals + externals: { + vue: 'Vue', + 'vue-router': 'VueRouter', + vuex: 'Vuex', + axios: 'axios' + }, + css: [], + // https://unpkg.com/browse/vue@2.6.10/ + js: [ + '//imgcdn.ybhdmob.com/npm/vue@2.6.14/vue.min.js', + '//imgcdn.ybhdmob.com/npm/vue-router@3.1.3/vue-router.min.js', + '//imgcdn.ybhdmob.com/npm/vuex@3.1.1/vuex.min.js', + '//imgcdn.ybhdmob.com/npm/axios@0.19.0/axios.min.js' + ] +} + +// vue.config.js +const vueConfig = { + lintOnSave: false, // 关闭eslintrc语法检查 + runtimeCompiler: true, + configureWebpack: { + // webpack plugins + plugins: [ + // Ignore all locale files of moment.js + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + // maxChunks:使用大于或等于 1 的值,来限制 chunk 的最大数量。使用 1 防止添加任何其他额外的 chunk,这是因为entry/main chunk 也会包含在计数之中。 + // minChunkSize: 设置 chunk 的最小大小。 + // 在合并 chunk 时,webpack 会尝试识别出具有重复模块的 chunk,并优先进行合并。任何模块都不会被合并到 entry chunk 中,以免影响初始页面加载时间。 + new webpack.optimize.LimitChunkCountPlugin({ + maxChunks: 5, + minChunkSize: 100 + }), + // 配置compression-webpack-plugin压缩 + new CompressionWebpackPlugin({ + algorithm: 'gzip', + test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), + threshold: 10240, + minRatio: 0.8, + deleteOriginalAssets: false // 是否删除源文件 默认为true 如果Nginx配置了gzip可以true,否则删了源文件就不能正常访问了 + }) + ], + // if prod, add externals + externals: isProd ? assetsCDN.externals : {} + }, + + chainWebpack: config => { + config.resolve.alias.set('@$', resolve('src')) + + const svgRule = config.module.rule('svg') + svgRule.uses.clear() + svgRule + .oneOf('inline') + .resourceQuery(/inline/) + .use('vue-svg-icon-loader') + .loader('vue-svg-icon-loader') + .end() + .end() + .oneOf('external') + .use('file-loader') + .loader('file-loader') + .options({ + name: 'assets/[name].[hash:8].[ext]' + }) + + // if prod is on + // assets require on cdn + if (isProd) { + config.plugin('html').tap(args => { + args[0].cdn = assetsCDN + return args + }) + } + }, + + css: { + loaderOptions: { + less: { + modifyVars: { + 'primary-color': '#2F54EB', + 'layout-color': '#2F54EB', + 'border-radius-base': '2px' + }, + // DO NOT REMOVE THIS LINE + javascriptEnabled: true + } + } + }, + + devServer: { + port: 81, + proxy: { + '/api': { + target: process.env.VUE_APP_API_BASE_URL, + ws: false, + changeOrigin: true, + pathRewrite: { + '^/api': '/api' // 需要rewrite的, + } + }, + '/bapi': { + target: process.env.VUE_APP_API_BASE_URL, + ws: false, + changeOrigin: true, + pathRewrite: { + '^/bapi': '/bapi' // 需要rewrite的, + } + }, + '/hubs': { + target: process.env.VUE_APP_SOCKET_BASE_URL, + ws: true, + changeOrigin: true + } + } + }, + + // disable source map in production + productionSourceMap: false, + // babel-loader no-ignore node_modules/* + transpileDependencies: [] +} + +// preview.pro.loacg.com only do not use in your production; +if (process.env.VUE_APP_PREVIEW === 'true') { + // eslint-disable-next-line no-labels + // runtimeCompiler: true, + // add `ThemeColorReplacer` plugin to webpack plugins + vueConfig.configureWebpack.plugins.push(createThemeColorReplacerPlugin()) +} + +module.exports = vueConfig diff --git a/admin20250319/webstorm.config.js b/admin20250319/webstorm.config.js new file mode 100644 index 0000000..9117455 --- /dev/null +++ b/admin20250319/webstorm.config.js @@ -0,0 +1,3 @@ +'use strict' +const webpackConfig = require('@vue/cli-service/webpack.config.js') +module.exports = webpackConfig diff --git a/admin20250319/yarn.lock b/admin20250319/yarn.lock new file mode 100644 index 0000000..f035f8e --- /dev/null +++ b/admin20250319/yarn.lock @@ -0,0 +1,13342 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"-@^0.0.1": + version "0.0.1" + resolved "https://registry.npmmirror.com/-/-/--0.0.1.tgz#db6db7cd866142880dd03e5b8781d1b4fac0e5bd" + integrity sha512-3HfneK3DGAm05fpyj20sT3apkNcvPpCuccOThOPdzz8sY7GgQGe0l93XH9bt+YzibcTIgUAIMoyVJI740RtgyQ== + +"@achrinza/node-ipc@9.2.2": + version "9.2.2" + resolved "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz#ae1b5d3d6a9362034eea60c8d946b93893c2e4ec" + integrity sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw== + dependencies: + "@node-ipc/js-queue" "2.0.3" + event-pubsub "4.3.0" + js-message "1.0.7" + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@ant-design/colors@^3.1.0", "@ant-design/colors@^3.2.1": + version "3.2.2" + resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-3.2.2.tgz#5ad43d619e911f3488ebac303d606e66a8423903" + integrity sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ== + dependencies: + tinycolor2 "^1.4.1" + +"@ant-design/icons-vue@^2.0.0": + version "2.0.0" + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz#0357f5010a404e9f34a87a4b41b2a08df691dbce" + integrity sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg== + dependencies: + "@ant-design/colors" "^3.1.0" + babel-runtime "^6.26.0" + +"@ant-design/icons@^2.1.1": + version "2.1.1" + resolved "https://registry.npmmirror.com/@ant-design/icons/-/icons-2.1.1.tgz#7b9c08dffd4f5d41db667d9dbe5e0107d0bd9a4a" + integrity sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w== + +"@antv/adjust@^0.2.1": + version "0.2.5" + resolved "https://registry.npmmirror.com/@antv/adjust/-/adjust-0.2.5.tgz#bb37bb4a0a87ca3f4b660848bc9ac07f02bcf5db" + integrity sha512-MfWZOkD9CqXRES6MBGRNe27Q577a72EIwyMnE29wIlPliFvJfWwsrONddpGU7lilMpVKecS3WAzOoip3RfPTRQ== + dependencies: + "@antv/util" "~2.0.0" + tslib "^1.10.0" + +"@antv/attr@^0.3.1": + version "0.3.5" + resolved "https://registry.npmmirror.com/@antv/attr/-/attr-0.3.5.tgz#0708c74fed5ad6ee03ad1e2913099ed8248f7ebf" + integrity sha512-wuj2gUo6C8Q2ASSMrVBuTcb5LcV+Tc0Egiy6bC42D0vxcQ+ta13CLxgMmHz8mjD0FxTPJDXSciyszRSC5TdLsg== + dependencies: + "@antv/color-util" "^2.0.1" + "@antv/scale" "^0.3.0" + "@antv/util" "~2.0.0" + tslib "^2.3.1" + +"@antv/color-util@^2.0.1", "@antv/color-util@^2.0.2", "@antv/color-util@^2.0.3": + version "2.0.6" + resolved "https://registry.npmmirror.com/@antv/color-util/-/color-util-2.0.6.tgz#5e129bb9ce3f2b9309b52102b3dc929430ccc016" + integrity sha512-KnPEaAH+XNJMjax9U35W67nzPI+QQ2x27pYlzmSIWrbj4/k8PGrARXfzDTjwoozHJY8qG62Z+Ww6Alhu2FctXQ== + dependencies: + "@antv/util" "^2.0.9" + tslib "^2.0.3" + +"@antv/component@^0.8.27": + version "0.8.34" + resolved "https://registry.npmmirror.com/@antv/component/-/component-0.8.34.tgz#4575dc9244d922028a49677ae58d9ff31a078f72" + integrity sha512-dCQ6mGDNEE8eGcXCN8n0kZcx/k+xnOzkGJg9UNDfxawPP1wZ+4zVFXSaHpaqIFAamS4Rz8YHsSFXAj8HuBCbIQ== + dependencies: + "@antv/color-util" "^2.0.3" + "@antv/dom-util" "~2.0.1" + "@antv/g-base" "^0.5.9" + "@antv/matrix-util" "^3.1.0-beta.1" + "@antv/path-util" "~2.0.7" + "@antv/scale" "~0.3.1" + "@antv/util" "~2.0.0" + fecha "~4.2.0" + tslib "^2.0.3" + +"@antv/coord@^0.3.0": + version "0.3.1" + resolved "https://registry.npmmirror.com/@antv/coord/-/coord-0.3.1.tgz#982e261d8a1e06a198eb518ea7acc20ed875a019" + integrity sha512-rFE94C8Xzbx4xmZnHh2AnlB3Qm1n5x0VT3OROy257IH6Rm4cuzv1+tZaUBATviwZd99S+rOY9telw/+6C9GbRw== + dependencies: + "@antv/matrix-util" "^3.1.0-beta.2" + "@antv/util" "~2.0.12" + tslib "^2.1.0" + +"@antv/data-set@^0.11.8": + version "0.11.8" + resolved "https://registry.npmmirror.com/@antv/data-set/-/data-set-0.11.8.tgz#7413e900624863d5a5f3b46841fd009fc4f2a4ff" + integrity sha512-8/YDsfk4wNQdo/J9tfmzOuo9Y5nl0mB+sSZO+tEZsHFLUhMrioJGBMPkuW51Pn0zcVZPNivuMBi2sQKYCpCeew== + dependencies: + "@antv/hierarchy" "^0.6.0" + "@antv/util" "^2.0.0" + d3-composite-projections "^1.2.0" + d3-dsv "^1.0.5" + d3-geo "~1.6.4" + d3-geo-projection "~2.1.2" + d3-hexjson "^1.0.1" + d3-hierarchy "^1.1.5" + d3-sankey "^0.9.1" + d3-voronoi "^1.1.2" + dagre "^0.8.2" + point-at-length "^1.0.2" + regression "^2.0.0" + simple-statistics "^6.1.0" + topojson-client "^3.0.0" + wolfy87-eventemitter "^5.1.0" + +"@antv/dom-util@^2.0.2", "@antv/dom-util@~2.0.1": + version "2.0.4" + resolved "https://registry.npmmirror.com/@antv/dom-util/-/dom-util-2.0.4.tgz#b09b56c56fec42896fc856edad56b595b47ab514" + integrity sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ== + dependencies: + tslib "^2.0.3" + +"@antv/event-emitter@^0.1.1", "@antv/event-emitter@~0.1.0": + version "0.1.3" + resolved "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz#3e06323b9dcd55a3241ddc7c5458cfabd2095164" + integrity sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg== + +"@antv/g-base@^0.5.12", "@antv/g-base@^0.5.9", "@antv/g-base@~0.5.6": + version "0.5.15" + resolved "https://registry.npmmirror.com/@antv/g-base/-/g-base-0.5.15.tgz#4d4174c956ba652a4b55c4f6a2c28aaa92e7738d" + integrity sha512-QOtq50QpnKez9J75/Z8j2yZ7QDQdk8R8mVQJiHtaEO5eI7DM4ZbrsWff/Ew26JYmPWdq7nbRuARMAD4PX9uuLA== + dependencies: + "@antv/event-emitter" "^0.1.1" + "@antv/g-math" "^0.1.9" + "@antv/matrix-util" "^3.1.0-beta.1" + "@antv/path-util" "~2.0.5" + "@antv/util" "~2.0.13" + "@types/d3-timer" "^2.0.0" + d3-ease "^1.0.5" + d3-interpolate "^3.0.1" + d3-timer "^1.0.9" + detect-browser "^5.1.0" + tslib "^2.0.3" + +"@antv/g-canvas@~0.5.10": + version "0.5.14" + resolved "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-0.5.14.tgz#099668cb65d9c89dc2fc1000313c18298dcf8a13" + integrity sha512-IUGLEMIMAUYgaBMT8h3FTmYQYz7sjQkKWwh6Psqx+UPK86fySa+G8fMRrh1EqAL07jVB+GRnn6Ym+3FoFUgeFg== + dependencies: + "@antv/g-base" "^0.5.12" + "@antv/g-math" "^0.1.9" + "@antv/matrix-util" "^3.1.0-beta.1" + "@antv/path-util" "~2.0.5" + "@antv/util" "~2.0.0" + gl-matrix "^3.0.0" + tslib "^2.0.3" + +"@antv/g-math@^0.1.9": + version "0.1.9" + resolved "https://registry.npmmirror.com/@antv/g-math/-/g-math-0.1.9.tgz#1f981b9aebf5c024f284389aa3e5cba8cefa1f28" + integrity sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ== + dependencies: + "@antv/util" "~2.0.0" + gl-matrix "^3.0.0" + +"@antv/g-svg@~0.5.6": + version "0.5.7" + resolved "https://registry.npmmirror.com/@antv/g-svg/-/g-svg-0.5.7.tgz#d63db5f8590a5f3ceab097c183ec80ed143f0a50" + integrity sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw== + dependencies: + "@antv/g-base" "^0.5.12" + "@antv/g-math" "^0.1.9" + "@antv/util" "~2.0.0" + detect-browser "^5.0.0" + tslib "^2.0.3" + +"@antv/g2@^4.2.2": + version "4.2.10" + resolved "https://registry.npmmirror.com/@antv/g2/-/g2-4.2.10.tgz#9448082e7610eb8d16bdf7c97c2ce4f275bafdf9" + integrity sha512-/ZlJ/DFJBCvtEQgE6roxdd6sBml0fZ8ZVfzG+HdjGpA7/ceURb8XkxUcqa0E8NV+e4sFijnaAhBCdUm2whiuyA== + dependencies: + "@antv/adjust" "^0.2.1" + "@antv/attr" "^0.3.1" + "@antv/color-util" "^2.0.2" + "@antv/component" "^0.8.27" + "@antv/coord" "^0.3.0" + "@antv/dom-util" "^2.0.2" + "@antv/event-emitter" "~0.1.0" + "@antv/g-base" "~0.5.6" + "@antv/g-canvas" "~0.5.10" + "@antv/g-svg" "~0.5.6" + "@antv/matrix-util" "^3.1.0-beta.3" + "@antv/path-util" "^2.0.15" + "@antv/scale" "^0.3.14" + "@antv/util" "~2.0.5" + tslib "^2.0.0" + +"@antv/hierarchy@^0.6.0": + version "0.6.11" + resolved "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.6.11.tgz#244d6820347170e0107f3611802d1e5bb089ca7a" + integrity sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg== + dependencies: + "@antv/util" "^2.0.7" + +"@antv/matrix-util@^3.0.4": + version "3.0.4" + resolved "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.0.4.tgz#ea13f158aa2fb4ba2fb8d6b6b561ec467ea3ac20" + integrity sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ== + dependencies: + "@antv/util" "^2.0.9" + gl-matrix "^3.3.0" + tslib "^2.0.3" + +"@antv/matrix-util@^3.1.0-beta.1", "@antv/matrix-util@^3.1.0-beta.2", "@antv/matrix-util@^3.1.0-beta.3": + version "3.1.0-beta.3" + resolved "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz#e061de8fa7be04605a155c69cc5ce9082eedddee" + integrity sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A== + dependencies: + "@antv/util" "^2.0.9" + gl-matrix "^3.4.3" + tslib "^2.0.3" + +"@antv/path-util@^2.0.15", "@antv/path-util@~2.0.5", "@antv/path-util@~2.0.7": + version "2.0.15" + resolved "https://registry.npmmirror.com/@antv/path-util/-/path-util-2.0.15.tgz#a6f691dfc8b7bce5be7f0aabb5bd614964325631" + integrity sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw== + dependencies: + "@antv/matrix-util" "^3.0.4" + "@antv/util" "^2.0.9" + tslib "^2.0.3" + +"@antv/scale@^0.3.0", "@antv/scale@^0.3.14", "@antv/scale@~0.3.1": + version "0.3.18" + resolved "https://registry.npmmirror.com/@antv/scale/-/scale-0.3.18.tgz#b911f431b3e0b9547b6a65f66d0d3fa295b5ef32" + integrity sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w== + dependencies: + "@antv/util" "~2.0.3" + fecha "~4.2.0" + tslib "^2.0.0" + +"@antv/util@^2.0.0", "@antv/util@^2.0.7", "@antv/util@^2.0.9", "@antv/util@~2.0.0", "@antv/util@~2.0.12", "@antv/util@~2.0.13", "@antv/util@~2.0.3", "@antv/util@~2.0.5": + version "2.0.17" + resolved "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz#e8ef42aca7892815b229269f3dd10c6b3c7597a9" + integrity sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q== + dependencies: + csstype "^3.0.8" + tslib "^2.0.3" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.21.4": + version "7.21.4" + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": + version "7.21.9" + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.21.9.tgz#10a2e7fda4e51742c907938ac3b7229426515514" + integrity sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ== + +"@babel/core@^7.1.0", "@babel/core@^7.11.0": + version "7.21.8" + resolved "https://registry.npmmirror.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" + integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helpers" "^7.21.5" + "@babel/parser" "^7.21.8" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/generator@^7.21.5", "@babel/generator@^7.4.0": + version "7.21.9" + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.21.9.tgz#3a1b706e07d836e204aee0650e8ee878d3aaa241" + integrity sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg== + dependencies: + "@babel/types" "^7.21.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz#817f73b6c59726ab39f6ba18c234268a519e5abb" + integrity sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5", "@babel/helper-compilation-targets@^7.9.6": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" + integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + version "7.21.8" + resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" + integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.5" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + semver "^6.3.0" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.21.8" + resolved "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" + integrity sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.3.1" + semver "^6.3.0" + +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" + integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" + integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4", "@babel/helper-module-imports@^7.8.3": + version "7.21.4" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" + integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" + integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== + +"@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" + integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-member-expression-to-functions" "^7.21.5" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== + +"@babel/helper-wrap-function@^7.18.9": + version "7.20.5" + resolved "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/helpers@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" + integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.18.4", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8", "@babel/parser@^7.21.9", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0": + version "7.21.9" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.9.tgz#ab18ea3b85b4bc33ba98a8d4c2032c557d23cf14" + integrity sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": + version "7.20.7" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" + +"@babel/plugin-proposal-async-generator-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.18.6", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" + integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@^7.8.3": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" + integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/plugin-syntax-decorators" "^7.21.0" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": + version "7.20.7" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" + integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78" + integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.21.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" + integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" + integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-async-to-generator@^7.20.7": + version "7.20.7" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-classes@^7.21.0": + version "7.21.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" + integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-destructuring@^7.21.3": + version "7.21.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" + integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.20.11": + version "7.20.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.21.5", "@babel/plugin-transform-modules-commonjs@^7.9.6": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" + integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== + dependencies: + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" + +"@babel/plugin-transform-modules-systemjs@^7.20.11": + version "7.20.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" + +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": + version "7.20.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": + version "7.21.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" + integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" + integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-runtime@^7.11.0": + version "7.21.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" + integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA== + dependencies: + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.20.2" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-escapes@^7.21.5": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" + integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.11.0": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb" + integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" + "@babel/plugin-proposal-async-generator-functions" "^7.20.7" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.21.0" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.21.0" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-to-generator" "^7.20.7" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.21.5" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.20.11" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.21.3" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.20.7" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.21.5" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" + integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/runtime@^7.12.0": + version "7.22.10" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.4.0": + version "7.21.9" + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" + integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/parser" "^7.21.9" + "@babel/types" "^7.21.5" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" + integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.5" + "@babel/types" "^7.21.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.21.5" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" + integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.npmmirror.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@gar/promisify@^1.0.1": + version "1.1.3" + resolved "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.npmmirror.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.npmmirror.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.npmmirror.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.0.1": + version "15.1.1" + resolved "https://registry.npmmirror.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.npmmirror.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@intervolga/optimize-cssnano-plugin@^1.0.5": + version "1.0.6" + resolved "https://registry.npmmirror.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" + integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA== + dependencies: + cssnano "^4.0.0" + cssnano-preset-default "^4.0.0" + postcss "^7.0.0" + +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== + dependencies: + "@jest/source-map" "^24.9.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" + micromatch "^3.1.10" + p-each-series "^1.0.0" + realpath-native "^1.1.0" + rimraf "^2.5.4" + slash "^2.0.0" + strip-ansi "^5.0.0" + +"@jest/environment@^24.3.0", "@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.3.0", "@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.1" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + node-notifier "^5.4.2" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== + dependencies: + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== + dependencies: + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.9.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" + micromatch "^3.1.10" + pirates "^4.0.1" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.3.0", "@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.npmmirror.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + +"@jiaminghi/bezier-curve@*": + version "0.0.9" + resolved "https://registry.npmmirror.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz#5196aca93c8b061a612b4c3eabcedf9490cef6ee" + integrity sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw== + dependencies: + "@babel/runtime" "^7.5.5" + +"@jiaminghi/c-render@^0.4.3": + version "0.4.3" + resolved "https://registry.npmmirror.com/@jiaminghi/c-render/-/c-render-0.4.3.tgz#982ebd8f71b443bb9507834227834973ebd9b6d8" + integrity sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q== + dependencies: + "@babel/runtime" "^7.5.5" + "@jiaminghi/bezier-curve" "*" + "@jiaminghi/color" "*" + "@jiaminghi/transition" "*" + +"@jiaminghi/charts@*": + version "0.2.18" + resolved "https://registry.npmmirror.com/@jiaminghi/charts/-/charts-0.2.18.tgz#63ded95200789fc1a1fd04b7fd9e56f58d22d90f" + integrity sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA== + dependencies: + "@babel/runtime" "^7.5.5" + "@jiaminghi/c-render" "^0.4.3" + +"@jiaminghi/color@*": + version "1.1.3" + resolved "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz#a2336750d1266155ffe80375c58c26fdec495611" + integrity sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg== + +"@jiaminghi/data-view@^2.10.0": + version "2.10.0" + resolved "https://registry.npmmirror.com/@jiaminghi/data-view/-/data-view-2.10.0.tgz#2146d8fc71b9f24be808238ca050ddb7a4c8949f" + integrity sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA== + dependencies: + "@babel/runtime" "^7.5.5" + "@jiaminghi/charts" "*" + +"@jiaminghi/transition@*": + version "1.1.11" + resolved "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz#576d8af092434b34201eba5eaecc79dd33c8ad8c" + integrity sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg== + dependencies: + "@babel/runtime" "^7.5.5" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.3" + resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@microsoft/signalr@^5.0.5": + version "5.0.17" + resolved "https://registry.npmmirror.com/@microsoft/signalr/-/signalr-5.0.17.tgz#c6d3038538b8e21b95a012a7eaa22f44d5cc72f4" + integrity sha512-zTjFxjh67WWCe35ZipsqkktM5mM+MsckyyI2ZvFmYWR7ibpUoAyZI1DFdYfwXfsyBdlykDaW84o9lrB+9tDpaA== + dependencies: + abort-controller "^3.0.0" + eventsource "^1.0.7" + fetch-cookie "^0.7.3" + node-fetch "^2.6.7" + ws "^6.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.npmmirror.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@node-ipc/js-queue@2.0.3": + version "2.0.3" + resolved "https://registry.npmmirror.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz#ac7fe33d766fa53e233ef8fedaf3443a01c5a4cd" + integrity sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw== + dependencies: + easy-stack "1.0.1" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@simonwep/pickr@~1.7.0": + version "1.7.4" + resolved "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.7.4.tgz#b14fcd945890388b870cd6db4d6c78d531f25141" + integrity sha512-fq7jgKJT21uWGC1mARBHvvd1JYlEf93o7SuVOB4Lr0x/2UPuNC9Oe9n/GzVeg4oVtqMDfh1wIEJpsdOJEZb+3g== + dependencies: + core-js "^3.6.5" + nanopop "^2.1.0" + +"@soda/friendly-errors-webpack-plugin@^1.7.1": + version "1.8.1" + resolved "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz#4d4fbb1108993aaa362116247c3d18188a2c6c85" + integrity sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg== + dependencies: + chalk "^3.0.0" + error-stack-parser "^2.0.6" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +"@soda/get-current-script@^1.0.0": + version "1.0.2" + resolved "https://registry.npmmirror.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87" + integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w== + +"@transloadit/prettier-bytes@0.0.7": + version "0.0.7" + resolved "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz#cdb5399f445fdd606ed833872fa0cabdbc51686b" + integrity sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA== + +"@turf/difference@^6.0.2": + version "6.5.0" + resolved "https://registry.npmmirror.com/@turf/difference/-/difference-6.5.0.tgz#677b0d5641a93bba2e82f2c683f0d880105b3197" + integrity sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A== + dependencies: + "@turf/helpers" "^6.5.0" + "@turf/invariant" "^6.5.0" + polygon-clipping "^0.15.3" + +"@turf/helpers@^6.5.0": + version "6.5.0" + resolved "https://registry.npmmirror.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e" + integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw== + +"@turf/intersect@^6.1.3": + version "6.5.0" + resolved "https://registry.npmmirror.com/@turf/intersect/-/intersect-6.5.0.tgz#a14e161ddd0264d0f07ac4e325553c70c421f9e6" + integrity sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg== + dependencies: + "@turf/helpers" "^6.5.0" + "@turf/invariant" "^6.5.0" + polygon-clipping "^0.15.3" + +"@turf/invariant@^6.5.0": + version "6.5.0" + resolved "https://registry.npmmirror.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f" + integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg== + dependencies: + "@turf/helpers" "^6.5.0" + +"@turf/kinks@6.x": + version "6.5.0" + resolved "https://registry.npmmirror.com/@turf/kinks/-/kinks-6.5.0.tgz#80e7456367535365012f658cf1a988b39a2c920b" + integrity sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ== + dependencies: + "@turf/helpers" "^6.5.0" + +"@types/babel__core@^7.1.0": + version "7.20.0" + resolved "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.18.5" + resolved "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.18.5.tgz#c107216842905afafd3b6e774f6f935da6f5db80" + integrity sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect-history-api-fallback@*": + version "1.5.0" + resolved "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" + integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/d3-timer@^2.0.0": + version "2.0.1" + resolved "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-2.0.1.tgz#ffb6620d290624f3726aa362c0c8a4b44c8d7200" + integrity sha512-TF8aoF5cHcLO7W7403blM7L1T+6NF3XMyN3fxyUolq2uOcFeicG/khQg/dGxiCJWoAcmYulYN7LYSRKO54IXaA== + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.40.0" + resolved "https://registry.npmmirror.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23" + integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/event-emitter@^0.3.3": + version "0.3.3" + resolved "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.3.tgz#727032a9fc67565f96bbd78b2e2809275c97d7e7" + integrity sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.17.35" + resolved "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*": + version "4.17.17" + resolved "https://registry.npmmirror.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.npmmirror.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/http-proxy@^1.17.5": + version "1.17.11" + resolved "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" + integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.4" + resolved "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jest@^24.0.19": + version "24.9.1" + resolved "https://registry.npmmirror.com/@types/jest/-/jest-24.9.1.tgz#02baf9573c78f1b9974a5f36778b366aa77bd534" + integrity sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q== + dependencies: + jest-diff "^24.3.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": + version "7.0.11" + resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/loader-utils@1.1.3": + version "1.1.3" + resolved "https://registry.npmmirror.com/@types/loader-utils/-/loader-utils-1.1.3.tgz#82b9163f2ead596c68a8c03e450fbd6e089df401" + integrity sha512-euKGFr2oCB3ASBwG39CYJMR3N9T0nanVqXdiH7Zu/Nqddt6SmFRxytq/i2w9LQYNQekEtGBz+pE3qG6fQTNvRg== + dependencies: + "@types/node" "*" + "@types/webpack" "*" + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.npmmirror.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.npmmirror.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/node@*": + version "20.2.3" + resolved "https://registry.npmmirror.com/@types/node/-/node-20.2.3.tgz#b31eb300610c3835ac008d690de6f87e28f9b878" + integrity sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw== + +"@types/node@8.9": + version "8.9.5" + resolved "https://registry.npmmirror.com/@types/node/-/node-8.9.5.tgz#162b864bc70be077e6db212b322754917929e976" + integrity sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.npmmirror.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.npmmirror.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.1" + resolved "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.npmmirror.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.npmmirror.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.npmmirror.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + +"@types/tapable@^1": + version "1.0.8" + resolved "https://registry.npmmirror.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + +"@types/uglify-js@*": + version "3.17.1" + resolved "https://registry.npmmirror.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5" + integrity sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g== + dependencies: + source-map "^0.6.1" + +"@types/webpack-dev-server@^3.11.0": + version "3.11.6" + resolved "https://registry.npmmirror.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" + integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== + dependencies: + "@types/connect-history-api-fallback" "*" + "@types/express" "*" + "@types/serve-static" "*" + "@types/webpack" "^4" + http-proxy-middleware "^1.0.0" + +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.npmmirror.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@*": + version "5.28.1" + resolved "https://registry.npmmirror.com/@types/webpack/-/webpack-5.28.1.tgz#c369baeff31abe54b45f7f29997e1623604198d6" + integrity sha512-qw1MqGZclCoBrpiSe/hokSgQM/su8Ocpl3L/YHE0L6moyaypg4+5F7Uzq7NgaPKPxUxUbQ4fLPLpDWdR27bCZw== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + +"@types/webpack@^4", "@types/webpack@^4.0.0": + version "4.41.33" + resolved "https://registry.npmmirror.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc" + integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^13.0.0": + version "13.0.12" + resolved "https://registry.npmmirror.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" + integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== + dependencies: + "@types/yargs-parser" "*" + +"@uppy/companion-client@^2.2.2": + version "2.2.2" + resolved "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz#c70b42fdcca728ef88b3eebf7ee3e2fa04b4923b" + integrity sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og== + dependencies: + "@uppy/utils" "^4.1.2" + namespace-emitter "^2.0.1" + +"@uppy/core@^2.1.1": + version "2.3.4" + resolved "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz#260b85b6bf3aa03cdc67da231f8c69cfbfdcc84a" + integrity sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ== + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/store-default" "^2.1.1" + "@uppy/utils" "^4.1.3" + lodash.throttle "^4.1.1" + mime-match "^1.0.2" + namespace-emitter "^2.0.1" + nanoid "^3.1.25" + preact "^10.5.13" + +"@uppy/store-default@^2.1.1": + version "2.1.1" + resolved "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz#62a656a099bdaa012306e054d093754cb2d36e3e" + integrity sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ== + +"@uppy/utils@^4.1.2", "@uppy/utils@^4.1.3": + version "4.1.3" + resolved "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz#9d0be6ece4df25f228d30ef40be0f14208258ce3" + integrity sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw== + dependencies: + lodash.throttle "^4.1.1" + +"@uppy/xhr-upload@^2.0.3": + version "2.1.3" + resolved "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz#0d4e355332fe0c6eb372d7731315e04d02aeeb18" + integrity sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ== + dependencies: + "@uppy/companion-client" "^2.2.2" + "@uppy/utils" "^4.1.2" + nanoid "^3.1.25" + +"@vue/babel-helper-vue-jsx-merge-props@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz#8d53a1e21347db8edbe54d339902583176de09f2" + integrity sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA== + +"@vue/babel-helper-vue-transform-on@^1.0.2": + version "1.0.2" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" + integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== + +"@vue/babel-plugin-jsx@^1.0.3": + version "1.1.1" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1" + integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + "@vue/babel-helper-vue-transform-on" "^1.0.2" + camelcase "^6.0.0" + html-tags "^3.1.0" + svg-tags "^1.0.0" + +"@vue/babel-plugin-transform-vue-jsx@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz#4d4b3d46a39ea62b7467dd6e26ce47f7ceafb2fe" + integrity sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" + html-tags "^2.0.0" + lodash.kebabcase "^4.1.1" + svg-tags "^1.0.0" + +"@vue/babel-preset-app@^4.5.19": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-4.5.19.tgz#baee457da0065c016f74fac4149f7c97631ba5a7" + integrity sha512-VCNRiAt2P/bLo09rYt3DLe6xXUMlhJwrvU18Ddd/lYJgC7s8+wvhgYs+MTx4OiAXdu58drGwSBO9SPx7C6J82Q== + dependencies: + "@babel/core" "^7.11.0" + "@babel/helper-compilation-targets" "^7.9.6" + "@babel/helper-module-imports" "^7.8.3" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-decorators" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.11.0" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.0" + "@vue/babel-plugin-jsx" "^1.0.3" + "@vue/babel-preset-jsx" "^1.2.4" + babel-plugin-dynamic-import-node "^2.3.3" + core-js "^3.6.5" + core-js-compat "^3.6.5" + semver "^6.1.0" + +"@vue/babel-preset-jsx@^1.2.4": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz#f4914ba314235ab097bc4372ed67473c0780bfcc" + integrity sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA== + dependencies: + "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + "@vue/babel-sugar-composition-api-inject-h" "^1.4.0" + "@vue/babel-sugar-composition-api-render-instance" "^1.4.0" + "@vue/babel-sugar-functional-vue" "^1.4.0" + "@vue/babel-sugar-inject-h" "^1.4.0" + "@vue/babel-sugar-v-model" "^1.4.0" + "@vue/babel-sugar-v-on" "^1.4.0" + +"@vue/babel-sugar-composition-api-inject-h@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz#187e1389f8871d89ece743bb50aed713be9d6c85" + integrity sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-composition-api-render-instance@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz#2c1607ae6dffdab47e785bc01fa45ba756e992c1" + integrity sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-functional-vue@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz#60da31068567082287c7337c66ef4df04e0a1029" + integrity sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-inject-h@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz#bf39aa6631fb1d0399b1c49b4c59e1c8899b4363" + integrity sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-v-model@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz#a51d986609f430c4f70ada3a93cc560a2970f720" + integrity sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + camelcase "^5.0.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +"@vue/babel-sugar-v-on@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz#43b7106a9672d8cbeefc0eb8afe1d376edc6166e" + integrity sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + camelcase "^5.0.0" + +"@vue/cli-overlay@^4.5.19": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-4.5.19.tgz#d1206f7802bcba1d9c307695b54091df996db804" + integrity sha512-GdxvNSmOw7NHIazCO8gTK+xZbaOmScTtxj6eHVeMbYpDYVPJ+th3VMLWNpw/b6uOjwzzcyKlA5dRQ1DAb+gF/g== + +"@vue/cli-plugin-babel@^4.0.4": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.19.tgz#288b32e69f0191a77369e88f071c0cd8036edfa7" + integrity sha512-8ebXzaMW9KNTMAN6+DzkhFsjty1ieqT7hIW5Lbk4v30Qhfjkms7lBWyXPGkoq+wAikXFa1Gnam2xmWOBqDDvWg== + dependencies: + "@babel/core" "^7.11.0" + "@vue/babel-preset-app" "^4.5.19" + "@vue/cli-shared-utils" "^4.5.19" + babel-loader "^8.1.0" + cache-loader "^4.1.0" + thread-loader "^2.1.3" + webpack "^4.0.0" + +"@vue/cli-plugin-eslint@^4.0.4": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.19.tgz#d1f908b5d079f2902dc23301290e4dd8176f204c" + integrity sha512-53sa4Pu9j5KajesFlj494CcO8vVo3e3nnZ1CCKjGGnrF90id1rUeepcFfz5XjwfEtbJZp2x/NoX/EZE6zCzSFQ== + dependencies: + "@vue/cli-shared-utils" "^4.5.19" + eslint-loader "^2.2.1" + globby "^9.2.0" + inquirer "^7.1.0" + webpack "^4.0.0" + yorkie "^2.0.0" + +"@vue/cli-plugin-router@^4.0.4", "@vue/cli-plugin-router@^4.5.19": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.19.tgz#a7feea7024b83a0af77fc940d1637d3ce2f92e1f" + integrity sha512-3icGzH1IbVYmMMsOwYa0lal/gtvZLebFXdE5hcQJo2mnTwngXGMTyYAzL56EgHBPjbMmRpyj6Iw9k4aVInVX6A== + dependencies: + "@vue/cli-shared-utils" "^4.5.19" + +"@vue/cli-plugin-unit-jest@^4.0.4": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.19.tgz#3371f01bdf60ebd287c4cec0c3801f92c30ed6fe" + integrity sha512-yX61mpeU7DnjOv+Lxtjmr3pzESqBLIXeTK4MJpa/UdzrhnylHP4r6mCYETNLEYtxp8WZUXPjZFIzrKn5poZPJg== + dependencies: + "@babel/core" "^7.11.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.6" + "@types/jest" "^24.0.19" + "@vue/cli-shared-utils" "^4.5.19" + babel-core "^7.0.0-bridge.0" + babel-jest "^24.9.0" + babel-plugin-transform-es2015-modules-commonjs "^6.26.2" + deepmerge "^4.2.2" + jest "^24.9.0" + jest-environment-jsdom-fifteen "^1.0.2" + jest-serializer-vue "^2.0.2" + jest-transform-stub "^2.0.0" + jest-watch-typeahead "^0.4.2" + ts-jest "^24.2.0" + vue-jest "^3.0.5" + +"@vue/cli-plugin-vuex@^4.0.4", "@vue/cli-plugin-vuex@^4.5.19": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz#2452de58eb66ed873852bea45e6e06b57d842b47" + integrity sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw== + +"@vue/cli-service@^4.0.4": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-4.5.19.tgz#5f6513128f426be0ee9a7d03155c23a6f23f8d42" + integrity sha512-+Wpvj8fMTCt9ZPOLu5YaLkFCQmB4MrZ26aRmhhKiCQ/4PMoL6mLezfqdt6c+m2htM+1WV5RunRo+0WHl2DfwZA== + dependencies: + "@intervolga/optimize-cssnano-plugin" "^1.0.5" + "@soda/friendly-errors-webpack-plugin" "^1.7.1" + "@soda/get-current-script" "^1.0.0" + "@types/minimist" "^1.2.0" + "@types/webpack" "^4.0.0" + "@types/webpack-dev-server" "^3.11.0" + "@vue/cli-overlay" "^4.5.19" + "@vue/cli-plugin-router" "^4.5.19" + "@vue/cli-plugin-vuex" "^4.5.19" + "@vue/cli-shared-utils" "^4.5.19" + "@vue/component-compiler-utils" "^3.1.2" + "@vue/preload-webpack-plugin" "^1.1.0" + "@vue/web-component-wrapper" "^1.2.0" + acorn "^7.4.0" + acorn-walk "^7.1.1" + address "^1.1.2" + autoprefixer "^9.8.6" + browserslist "^4.12.0" + cache-loader "^4.1.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + cli-highlight "^2.1.4" + clipboardy "^2.3.0" + cliui "^6.0.0" + copy-webpack-plugin "^5.1.1" + css-loader "^3.5.3" + cssnano "^4.1.10" + debug "^4.1.1" + default-gateway "^5.0.5" + dotenv "^8.2.0" + dotenv-expand "^5.1.0" + file-loader "^4.2.0" + fs-extra "^7.0.1" + globby "^9.2.0" + hash-sum "^2.0.0" + html-webpack-plugin "^3.2.0" + launch-editor-middleware "^2.2.1" + lodash.defaultsdeep "^4.6.1" + lodash.mapvalues "^4.6.0" + lodash.transform "^4.6.0" + mini-css-extract-plugin "^0.9.0" + minimist "^1.2.5" + pnp-webpack-plugin "^1.6.4" + portfinder "^1.0.26" + postcss-loader "^3.0.0" + ssri "^8.0.1" + terser-webpack-plugin "^1.4.4" + thread-loader "^2.1.3" + url-loader "^2.2.0" + vue-loader "^15.9.2" + vue-style-loader "^4.1.2" + webpack "^4.0.0" + webpack-bundle-analyzer "^3.8.0" + webpack-chain "^6.4.0" + webpack-dev-server "^3.11.0" + webpack-merge "^4.2.2" + optionalDependencies: + vue-loader-v16 "npm:vue-loader@^16.1.0" + +"@vue/cli-shared-utils@^4.5.19": + version "4.5.19" + resolved "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz#cc389b1de1b05073804c0fe9b4b083b928ef6130" + integrity sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g== + dependencies: + "@achrinza/node-ipc" "9.2.2" + "@hapi/joi" "^15.0.1" + chalk "^2.4.2" + execa "^1.0.0" + launch-editor "^2.2.1" + lru-cache "^5.1.1" + open "^6.3.0" + ora "^3.4.0" + read-pkg "^5.1.1" + request "^2.88.2" + semver "^6.1.0" + strip-ansi "^6.0.0" + +"@vue/compiler-sfc@2.7.14": + version "2.7.14" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz#3446fd2fbb670d709277fc3ffa88efc5e10284fd" + integrity sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA== + dependencies: + "@babel/parser" "^7.18.4" + postcss "^8.4.14" + source-map "^0.6.1" + +"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": + version "3.3.0" + resolved "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" + integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^7.0.36" + postcss-selector-parser "^6.0.2" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + optionalDependencies: + prettier "^1.18.2 || ^2.0.0" + +"@vue/eslint-config-prettier@^5.0.0": + version "5.1.0" + resolved "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-5.1.0.tgz#837241a26ed396976cb8dabd77939303245523cf" + integrity sha512-LNqBXtM+4XqKz6yW3rrF/frCVZUKyYryiiMc8aCGq3czSXhTR/UNhl89FAtqZcpSwh5u8k2Qh8BvFctva68HUQ== + dependencies: + eslint-config-prettier "^6.0.0" + +"@vue/eslint-config-standard@^4.0.0": + version "4.0.0" + resolved "https://registry.npmmirror.com/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz#6be447ee674e3b0f733c584098fd9a22e6d76fcd" + integrity sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg== + dependencies: + eslint-config-standard "^12.0.0" + eslint-plugin-import "^2.14.0" + eslint-plugin-node "^8.0.0" + eslint-plugin-promise "^4.0.1" + eslint-plugin-standard "^4.0.0" + +"@vue/preload-webpack-plugin@^1.1.0": + version "1.1.2" + resolved "https://registry.npmmirror.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" + integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== + +"@vue/test-utils@^1.0.0-beta.29": + version "1.3.5" + resolved "https://registry.npmmirror.com/@vue/test-utils/-/test-utils-1.3.5.tgz#7beba75901c3a08a48b5657b63de02094dc40719" + integrity sha512-ezdlDNoxi5m/eP5Chg34AjnmNplrik4fyzB2DB9Yqa32OpywV8IvHqK9eCf+nIVsHFBejjV00agPFYRH2/D3Hg== + dependencies: + dom-event-types "^1.0.0" + lodash "^4.17.15" + pretty "^2.0.0" + +"@vue/web-component-wrapper@^1.2.0": + version "1.3.0" + resolved "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a" + integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA== + +"@wangeditor/basic-modules@^1.1.7": + version "1.1.7" + resolved "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz#a9c3ccf4ef53332f29550d59d3676e15f395946f" + integrity sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg== + dependencies: + is-url "^1.2.4" + +"@wangeditor/code-highlight@^1.0.3": + version "1.0.3" + resolved "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz#90256857714d5c0cf83ac475aea64db7bf29a7cd" + integrity sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw== + dependencies: + prismjs "^1.23.0" + +"@wangeditor/core@^1.1.19": + version "1.1.19" + resolved "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz#f9155f7fd92d03cb1982405b3b82e54c31f1c2b0" + integrity sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q== + dependencies: + "@types/event-emitter" "^0.3.3" + event-emitter "^0.3.5" + html-void-elements "^2.0.0" + i18next "^20.4.0" + scroll-into-view-if-needed "^2.2.28" + slate-history "^0.66.0" + +"@wangeditor/editor-for-vue@^1.0.2": + version "1.0.2" + resolved "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-1.0.2.tgz#62674d56354319ff8dcc83db5c62cec4437ee906" + integrity sha512-BOENvAXJVtVXlE2X50AAvjV82YlCUeu5cbeR0cvEQHQjYtiVnJtq7HSoj85r2kTgGouI5OrpJG9BBEjSjUSPyA== + +"@wangeditor/editor@^5.1.23": + version "5.1.23" + resolved "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz#c9d2007b7cb0ceef6b72692b4ee87b01ee2367b3" + integrity sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ== + dependencies: + "@uppy/core" "^2.1.1" + "@uppy/xhr-upload" "^2.0.3" + "@wangeditor/basic-modules" "^1.1.7" + "@wangeditor/code-highlight" "^1.0.3" + "@wangeditor/core" "^1.1.19" + "@wangeditor/list-module" "^1.0.5" + "@wangeditor/table-module" "^1.1.4" + "@wangeditor/upload-image-module" "^1.0.2" + "@wangeditor/video-module" "^1.1.4" + dom7 "^3.0.0" + is-hotkey "^0.2.0" + lodash.camelcase "^4.3.0" + lodash.clonedeep "^4.5.0" + lodash.debounce "^4.0.8" + lodash.foreach "^4.5.0" + lodash.isequal "^4.5.0" + lodash.throttle "^4.1.1" + lodash.toarray "^4.4.0" + nanoid "^3.2.0" + slate "^0.72.0" + snabbdom "^3.1.0" + +"@wangeditor/list-module@^1.0.5": + version "1.0.5" + resolved "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz#3fc0b167acddf885536b45fa0c127f9c6adaea33" + integrity sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ== + +"@wangeditor/table-module@^1.1.4": + version "1.1.4" + resolved "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz#757d4a5868b2b658041cd323854a4d707c8347e9" + integrity sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w== + +"@wangeditor/upload-image-module@^1.0.2": + version "1.0.2" + resolved "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz#89e9b9467e10cbc6b11dc5748e08dd23aaebee30" + integrity sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA== + +"@wangeditor/video-module@^1.1.4": + version "1.1.4" + resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532" + integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg== + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.0: + version "2.0.6" + resolved "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abs-svg-path@~0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf" + integrity sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^4.1.0, acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-import-assertions@^1.7.6: + version "1.9.0" + resolved "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.0.0, acorn-jsx@^5.2.0: + version "5.3.2" + resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^5.5.3: + version "5.7.4" + resolved "https://registry.npmmirror.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^6.0.1, acorn@^6.0.2, acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.5.0, acorn@^8.7.1: + version "8.8.2" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +add-dom-event-listener@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" + integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== + dependencies: + object-assign "4.x" + +address@^1.1.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw== + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ant-design-vue@1.7.4: + version "1.7.4" + resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-1.7.4.tgz#854e90985dc0fa9ccc6d681c104560c00eaaf855" + integrity sha512-f9/4I34Yq562X70aspSFzw4BCuKRICzDvIocXpsYCC+B9+kjB8db246fpSMtV/1anqxcmGHf7Vh0XJ+ovHJKMw== + dependencies: + "@ant-design/icons" "^2.1.1" + "@ant-design/icons-vue" "^2.0.0" + "@simonwep/pickr" "~1.7.0" + add-dom-event-listener "^1.0.2" + array-tree-filter "^2.1.0" + async-validator "^3.0.3" + babel-helper-vue-jsx-merge-props "^2.0.3" + babel-runtime "6.x" + classnames "^2.2.5" + component-classes "^1.2.6" + dom-align "^1.10.4" + dom-closest "^0.2.0" + dom-scroll-into-view "^2.0.0" + enquire.js "^2.1.6" + intersperse "^1.0.0" + is-mobile "^2.2.1" + is-negative-zero "^2.0.0" + ismobilejs "^1.0.0" + json2mq "^0.2.0" + lodash "^4.17.5" + moment "^2.21.0" + mutationobserver-shim "^0.3.2" + node-emoji "^1.10.0" + omit.js "^1.0.0" + raf "^3.4.0" + resize-observer-polyfill "^1.5.1" + shallow-equal "^1.0.0" + shallowequal "^1.0.2" + vue-ref "^2.0.0" + warning "^4.0.0" + +ant-design-vue@1.7.8: + version "1.7.8" + resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-1.7.8.tgz#1abbf86b68a4f5b1000bea0487b8031dc0001661" + integrity sha512-F1hmiS9vwbyfuFvlamdW5l9bHKqRlj9wHaGDIE41NZMWXyWy8qL0UFa/+I0Wl8gQWZCqODW5pN6Yfoyn85At3A== + dependencies: + "@ant-design/icons" "^2.1.1" + "@ant-design/icons-vue" "^2.0.0" + "@simonwep/pickr" "~1.7.0" + add-dom-event-listener "^1.0.2" + array-tree-filter "^2.1.0" + async-validator "^3.0.3" + babel-helper-vue-jsx-merge-props "^2.0.3" + babel-runtime "6.x" + classnames "^2.2.5" + component-classes "^1.2.6" + dom-align "^1.10.4" + dom-closest "^0.2.0" + dom-scroll-into-view "^2.0.0" + enquire.js "^2.1.6" + intersperse "^1.0.0" + is-mobile "^2.2.1" + is-negative-zero "^2.0.0" + ismobilejs "^1.0.0" + json2mq "^0.2.0" + lodash "^4.17.5" + moment "^2.21.0" + mutationobserver-shim "^0.3.2" + node-emoji "^1.10.0" + omit.js "^1.0.0" + raf "^3.4.0" + resize-observer-polyfill "^1.5.1" + shallow-equal "^1.0.0" + shallowequal "^1.0.2" + vue-ref "^2.0.0" + warning "^4.0.0" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver-utils@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7" + integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== + dependencies: + glob "^7.2.3" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +archiver@^5.0.2: + version "5.3.2" + resolved "https://registry.npmmirror.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" + integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.4" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.1.2" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-tree-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" + integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.npmmirror.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.0, asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.npmmirror.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.6" + resolved "https://registry.npmmirror.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" + integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-validator@^3.0.3: + version "3.5.2" + resolved "https://registry.npmmirror.com/async-validator/-/async-validator-3.5.2.tgz#68e866a96824e8b2694ff7a831c1a25c44d5e500" + integrity sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ== + +async@^2.6.4: + version "2.6.4" + resolved "https://registry.npmmirror.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +async@^3.2.4: + version "3.2.4" + resolved "https://registry.npmmirror.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.8.6: + version "9.8.8" + resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.12.0" + resolved "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + +axios@^0.19.0: + version "0.19.2" + resolved "https://registry.npmmirror.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.npmmirror.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + +babel-eslint@^10.0.1: + version "10.1.0" + resolved "https://registry.npmmirror.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-helper-vue-jsx-merge-props@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" + integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== + +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== + dependencies: + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.9.0" + chalk "^2.4.2" + slash "^2.0.0" + +babel-loader@^8.1.0: + version "8.3.0" + resolved "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npmmirror.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-import@^1.13.0: + version "1.13.6" + resolved "https://registry.npmmirror.com/babel-plugin-import/-/babel-plugin-import-1.13.6.tgz#4ff2aa3b9759e6a4458ce59890da3684fe3dda9d" + integrity sha512-N7FYnGh0DFsvDRkAPsvFq/metVfVD7P2h1rokOPpEH4cZbdRHCW+2jbXt0nnuqowkm/xhh2ww1anIdEpfYa7ZA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + +babel-plugin-istanbul@^5.1.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + find-up "^3.0.0" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" + +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== + dependencies: + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" + +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + +babel-plugin-transform-es2015-modules-commonjs@^6.26.0, babel-plugin-transform-es2015-modules-commonjs@^6.26.2: + version "6.26.2" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-remove-console@^6.9.4: + version "6.9.4" + resolved "https://registry.npmmirror.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + integrity sha512-88blrUrMX3SPiGkT1GnvVY8E/7A+k6oj3MNvUtTIxJflFzXTw1bHkuJ/y039ouhFMp2prRn5cQGzokViYi1dsg== + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@6.23.0: + version "6.23.0" + resolved "https://registry.npmmirror.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + integrity sha512-0l7mVU+LrQ2X/ZTUq63T5i3VyR2aTgcRTFmBcD6djQ/Fek6q1A9t5u0F4jZVYHzp78jwWAzGfLpAY1b4/I3lfg== + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ== + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== + dependencies: + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.9.0" + +babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmmirror.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmmirror.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.npmmirror.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.npmmirror.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.1.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.1" + resolved "https://registry.npmmirror.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.npmmirror.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.npmmirror.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5: + version "4.21.5" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + dependencies: + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npmmirror.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: + version "0.2.13" + resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-json@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" + integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^12.0.2, cacache@^12.0.3: + version "12.0.4" + resolved "https://registry.npmmirror.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.3.0" + resolved "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" + integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== + dependencies: + buffer-json "^2.0.0" + find-cache-dir "^3.0.0" + loader-utils "^1.2.3" + mkdirp "^0.5.1" + neo-async "^2.6.1" + schema-utils "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.npmmirror.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001449: + version "1.0.30001489" + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz#ca82ee2d4e4dbf2bd2589c9360d3fcc2c7ba3bd8" + integrity sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@^2.3.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.npmmirror.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.npmmirror.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.4.1: + version "3.5.3" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.5: + version "2.3.2" + resolved "https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clean-css@4.2.x: + version "4.2.4" + resolved "https://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-highlight@^2.1.4: + version "2.1.11" + resolved "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cli-spinners@^2.0.0, cli-spinners@^2.5.0: + version "2.9.0" + resolved "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" + integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clipboard@^2.0.0, clipboard@^2.0.4, clipboard@^2.0.6: + version "2.0.11" + resolved "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +clipboardy@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" + integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== + dependencies: + arch "^2.1.1" + execa "^1.0.0" + is-wsl "^2.1.1" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@2.x, clone@^2.1.1: + version "2.1.2" + resolved "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +codemirror@^5.22.0: + version "5.65.13" + resolved "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.13.tgz#c098a6f409db8b5a7c5722788bd9fa3bb2367f2e" + integrity sha512-SVWEzKXmbHmTQQWaz03Shrh4nybG0wXx2MEu3FO4ezbPW8IbnZEd5iGHGEffSUaitKYa3i+pHpBsSvw8sPHtzg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.npmmirror.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@*: + version "10.0.1" + resolved "https://registry.npmmirror.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.npmmirror.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.npmmirror.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +component-classes@^1.2.6: + version "1.2.6" + resolved "https://registry.npmmirror.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" + integrity sha512-hPFGULxdwugu1QWW3SvVOCUHLzO34+a2J6Wqy0c5ASQkfi9/8nZcBB0ZohaEbXOQlCflMAEMmEWk7u7BVs4koA== + dependencies: + component-indexof "0.0.3" + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-indexof@0.0.3: + version "0.0.3" + resolved "https://registry.npmmirror.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" + integrity sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw== + +compress-commons@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df" + integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression-webpack-plugin@5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/compression-webpack-plugin/-/compression-webpack-plugin-5.0.1.tgz#316c1a4e4ccc94510a978c967fc143581d1e3643" + integrity sha512-Wcb99O4UkdDZiM+blEw6h+cUfJYCn2kgK0l3fjLOm72Stso9DVMieQpBD4PVpyI7DLL6+zNh0iJV3p4HDwTinQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + schema-utils "^2.7.0" + serialize-javascript "^4.0.0" + webpack-sources "^1.4.3" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg== + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.13: + version "1.1.13" + resolved "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" + integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + dependencies: + bluebird "^3.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.5" + resolved "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.4.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copy-anything@^2.0.1: + version "2.0.6" + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +copy-webpack-plugin@^5.1.1: + version "5.1.2" + resolved "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2" + integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ== + dependencies: + cacache "^12.0.3" + find-cache-dir "^2.1.0" + glob-parent "^3.1.0" + globby "^7.1.1" + is-glob "^4.0.1" + loader-utils "^1.2.3" + minimatch "^3.0.4" + normalize-path "^3.0.0" + p-limit "^2.2.1" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + webpack-log "^2.0.0" + +core-js-compat@^3.25.1, core-js-compat@^3.6.5: + version "3.30.2" + resolved "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" + integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== + dependencies: + browserslist "^4.21.5" + +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: + version "2.6.12" + resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.1.2, core-js@^3.6.5: + version "3.30.2" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" + integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^4.0.2: + version "4.0.3" + resolved "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33" + integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-js@^4.0.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.npmmirror.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^3.5.3: + version "3.6.0" + resolved "https://registry.npmmirror.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css@^2.1.0: + version "2.2.4" + resolved "https://registry.npmmirror.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmmirror.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.0.0, cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.npmmirror.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +cssstyle@^2.0.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.8, csstype@^3.1.0: + version "3.1.2" + resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== + +d3-array@1: + version "1.2.4" + resolved "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-array@^2.5.0: + version "2.12.1" + resolved "https://registry.npmmirror.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +d3-collection@1: + version "1.0.7" + resolved "https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" + integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== + +"d3-color@1 - 3": + version "3.1.0" + resolved "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-composite-projections@^1.2.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/d3-composite-projections/-/d3-composite-projections-1.4.0.tgz#27b182fa635a5869349fe911ce0180b974d17f12" + integrity sha512-csygyxdRfy7aUYRPea23veM6sjisdHI+DNd0nHcAGMd2LyL2lklr+xLRzHiJ+hy1HGp6YgAtbqdJR8CsLolrNQ== + dependencies: + d3-geo "^2.0.1" + d3-path "^2.0.0" + +d3-dsv@^1.0.5: + version "1.2.0" + resolved "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" + integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== + dependencies: + commander "2" + iconv-lite "0.4" + rw "1" + +d3-ease@^1.0.5: + version "1.0.7" + resolved "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" + integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== + +d3-geo-projection@~2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz#7df8e1e9d046d631c6509f7e531357d4adc24aa3" + integrity sha512-zft6RRvPaB1qplTodBVcSH5Ftvmvvg0qoDiqpt+fyNthGr/qr+DD30cizNDluXjW7jmo7EKUTjvFCAHofv08Ow== + dependencies: + commander "2" + d3-array "1" + d3-geo "^1.1.0" + +d3-geo@^1.1.0: + version "1.12.1" + resolved "https://registry.npmmirror.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" + integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== + dependencies: + d3-array "1" + +d3-geo@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/d3-geo/-/d3-geo-2.0.2.tgz#c065c1b71fe8c5f1be657e5f43d9bdd010383c40" + integrity sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA== + dependencies: + d3-array "^2.5.0" + +d3-geo@~1.6.4: + version "1.6.4" + resolved "https://registry.npmmirror.com/d3-geo/-/d3-geo-1.6.4.tgz#f20e1e461cb1845f5a8be55ab6f876542a7e3199" + integrity sha512-O5Q3iftLc6/EdU1MHUm+O29NoKKN/cyQtySnD9/yEEcinN+q4ng+H56e2Yn1YWdfZBoiaRVtR2NoJ3ivKX5ptQ== + dependencies: + d3-array "1" + +d3-hexjson@^1.0.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/d3-hexjson/-/d3-hexjson-1.1.1.tgz#a1e264ff903bb09b8f8f4bc59c72447a91f460fe" + integrity sha512-WMF1juFJwAx6LzdEVKlsCGZz+7QUG7VMJDtg8uD3cfNwWOTgMiy6qBRRGU7LSY2KbmEObu3BV5ZQbq9l/BvUZQ== + dependencies: + d3-array "1" + +d3-hierarchy@^1.1.5: + version "1.1.9" + resolved "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== + +d3-interpolate@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.npmmirror.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" + integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== + +d3-sankey@^0.9.1: + version "0.9.1" + resolved "https://registry.npmmirror.com/d3-sankey/-/d3-sankey-0.9.1.tgz#b850145a3284111636ddec90dfda8c64919bee4e" + integrity sha512-nnRkDaUMjBdeuGg+kWGdA+tjG1AVTnJ+Ykw7ff7CZHVI17Hm5sy8n0UXykVffn13aNHwK5wPOdOt1gS1ZEaF+A== + dependencies: + d3-array "1" + d3-collection "1" + d3-shape "^1.2.0" + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.npmmirror.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +d3-timer@^1.0.9: + version "1.0.10" + resolved "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== + +d3-voronoi@^1.1.2: + version "1.1.4" + resolved "https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" + integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dagre@^0.8.2: + version "0.8.5" + resolved "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" + integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== + dependencies: + graphlib "^2.1.8" + lodash "^4.17.15" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0, data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +dayjs@^1.10.4: + version "1.11.9" + resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a" + integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + +deasync@^0.1.15: + version "0.1.28" + resolved "https://registry.npmmirror.com/deasync/-/deasync-0.1.28.tgz#9b447b79b3f822432f0ab6a8614c0062808b5ad2" + integrity sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg== + dependencies: + bindings "^1.5.0" + node-addon-api "^1.7.1" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.4" + resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +default-gateway@^5.0.5: + version "5.0.5" + resolved "https://registry.npmmirror.com/default-gateway/-/default-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10" + integrity sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA== + dependencies: + execa "^3.3.0" + +default-passive-events@^1.0.10: + version "1.0.10" + resolved "https://registry.npmmirror.com/default-passive-events/-/default-passive-events-1.0.10.tgz#28ad3269648a76a0158f413d66e37af24dad053a" + integrity sha512-3kQ+zei7/tzYz+Cqj0GQpi68DbgFOoU/H69V+pNHLxbTNy9ArBfCJCaZPziCtms2PIyGcTRZKK71iPvl0gXUgw== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +deploy-cli-service@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/deploy-cli-service/-/deploy-cli-service-1.4.0.tgz#aac903b168e8711e32da8c8a47b7f29271dbaf2e" + integrity sha512-Etv+9quI5J20NOoz4O5qH53OI/lR/pyzEt0G7QV2swy7n1FEgEnGXTMzWTI0KbZ4J73R/6KaSH8UQ0QvXwyAlQ== + dependencies: + archiver "^5.0.2" + chalk "^4.1.0" + commander "^6.1.0" + dayjs "^1.10.4" + inquirer "^7.3.3" + minimist "^1.2.5" + node-ssh "^11.0.0" + ora "^5.1.0" + prettier "^2.1.1" + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-browser@^5.0.0, detect-browser@^5.1.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.npmmirror.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-align@^1.10.4: + version "1.12.4" + resolved "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" + integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== + +dom-closest@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/dom-closest/-/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" + integrity sha512-6neTn1BtJlTSt+XSISXpnOsF1uni1CHsP/tmzZMGWxasYFHsBOqrHPnzmneqEgKhpagnfnfSfbvRRW0xFsBHAA== + dependencies: + dom-matches ">=1.0.1" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-event-types@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/dom-event-types/-/dom-event-types-1.1.0.tgz#120c1f92ddea7758db1ccee0a100a33c39f4701b" + integrity sha512-jNCX+uNJ3v38BKvPbpki6j5ItVlnSqVV6vDWGS6rExzCMjsc39frLjm1n91o6YaKK6AZl0wLloItW6C6mr61BQ== + +dom-matches@>=1.0.1: + version "2.0.0" + resolved "https://registry.npmmirror.com/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" + integrity sha512-2VI856xEDCLXi19W+4BechR5/oIS6bKCKqcf16GR8Pg7dGLJ/eBOWVbCmQx2ISvYH6wTNx5Ef7JTOw1dRGRx6A== + +dom-scroll-into-view@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" + integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom7@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz#b861ce5d67a6becd7aaa3ad02942ff14b1240331" + integrity sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g== + dependencies: + ssr-window "^3.0.0-alpha.1" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.npmmirror.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +easy-stack@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066" + integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.npmmirror.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.npmmirror.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.4.284: + version "1.4.405" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.405.tgz#487bdba2d82a59b092d6b6e4602bf733cec6a7ef" + integrity sha512-JdDgnwU69FMZURoesf9gNOej2Cms1XJFfLk24y1IBtnAdhTcJY/mXnokmpmxHN59PcykBP4bgUU98vLY44Lhuw== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enhanced-resolve@^5.14.0: + version "5.14.0" + resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4" + integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquire.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npmmirror.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" + integrity sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw== + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.1.4" + resolved "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: + version "1.21.2" + resolved "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-module-lexer@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" + integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: + version "0.10.62" + resolved "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-denodeify@^0.1.1: + version "0.1.5" + resolved "https://registry.npmmirror.com/es6-denodeify/-/es6-denodeify-0.1.5.tgz#31d4d5fe9c5503e125460439310e16a2a3f39c1f" + integrity sha512-731Rf4NqlPvhkT1pIF7r8vZxESJlWocNpXLuyPlVnfEGXlwuJaMvU5WpyyDjpudDC2cgXVX849xljzvQqBg1QQ== + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.11.1, escodegen@^1.9.1: + version "1.14.3" + resolved "https://registry.npmmirror.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@^6.0.0: + version "6.15.0" + resolved "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" + integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== + dependencies: + get-stdin "^6.0.0" + +eslint-config-standard@^12.0.0: + version "12.0.0" + resolved "https://registry.npmmirror.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" + integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== + +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-loader@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" + integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== + dependencies: + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.7.4: + version "2.8.0" + resolved "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-es@^1.3.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" + integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== + dependencies: + eslint-utils "^1.4.2" + regexpp "^2.0.1" + +eslint-plugin-html@^5.0.0: + version "5.0.5" + resolved "https://registry.npmmirror.com/eslint-plugin-html/-/eslint-plugin-html-5.0.5.tgz#e2388f813f75b2287cde884811eab287de8e0f56" + integrity sha512-v/33i3OD0fuXcRXexVyXXBOe4mLBLBQoF1UO1Uy9D+XLq4MC8K45GcQKfqjC/FnHAHp3pYUjpHHktYNCtShGmg== + dependencies: + htmlparser2 "^3.10.0" + +eslint-plugin-import@^2.14.0: + version "2.27.5" + resolved "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" + has "^1.0.3" + is-core-module "^2.11.0" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-node@^8.0.0: + version "8.0.1" + resolved "https://registry.npmmirror.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" + integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^5.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-prettier@^3.1.0: + version "3.4.1" + resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" + integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-promise@^4.0.1: + version "4.3.1" + resolved "https://registry.npmmirror.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" + integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== + +eslint-plugin-standard@^4.0.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + +eslint-plugin-vue@^5.2.3: + version "5.2.3" + resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961" + integrity sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw== + dependencies: + vue-eslint-parser "^5.0.0" + +eslint-scope@5.1.1, eslint-scope@^5.0.0: + version "5.1.1" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.0, eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1, eslint-utils@^1.4.2, eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.npmmirror.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" + integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== + dependencies: + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.npmmirror.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.5.0" + resolved "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eve-raphael@0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" + integrity sha512-jrxnPsCGqng1UZuEp9DecX/AuSyAszATSjf4oEcRxvfxa1Oux4KkIPKBAAWWnpdwfARtr+Q0o9aPYWjsROD7ug== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" + integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + integrity sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0, events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^1.0.7: + version "1.1.2" + resolved "https://registry.npmmirror.com/eventsource/-/eventsource-1.1.2.tgz#bc75ae1c60209e7cb1541231980460343eaea7c2" + integrity sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA== + +eventsource@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" + integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.npmmirror.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.npmmirror.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.3.0: + version "3.4.0" + resolved "https://registry.npmmirror.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== + dependencies: + "@jest/types" "^24.9.0" + ansi-styles "^3.2.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" + +express@^4.16.3, express@^4.17.1: + version "4.18.2" + resolved "https://registry.npmmirror.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.2, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^2.0.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-from-css@^0.4.4: + version "0.4.4" + resolved "https://registry.npmmirror.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" + integrity sha512-41qWGBdtKp9U7sgBxAQ7vonYqSXzgW/SiAYzq4tdWSVhAShvpVCH1nyvPQgjse6EdgbW7Y7ERdT3674/lKr65A== + dependencies: + css "^2.1.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" + integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +faye-websocket@^0.11.3, faye-websocket@^0.11.4: + version "0.11.4" + resolved "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fecha@~4.2.0: + version "4.2.3" + resolved "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fetch-cookie@^0.7.3: + version "0.7.3" + resolved "https://registry.npmmirror.com/fetch-cookie/-/fetch-cookie-0.7.3.tgz#b8d023f421dd2b2f4a0eca9cd7318a967ed4eed8" + integrity sha512-rZPkLnI8x5V+zYAiz8QonAHsTb4BY+iFowFBI1RFn0zrO343AVp9X7/yUj/9wL6Ef/8fLls8b/vGtzUvmyAUGA== + dependencies: + es6-denodeify "^0.1.1" + tough-cookie "^2.3.3" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.npmmirror.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-babel-config@^1.1.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" + integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== + dependencies: + json5 "^0.5.1" + path-exists "^3.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A== + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0: + version "1.15.2" + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +font-awesome@^4.7.0: + version "4.7.0" + resolved "https://registry.npmmirror.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" + integrity sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +gl-matrix@^3.0.0, gl-matrix@^3.3.0, gl-matrix@^3.4.3: + version "3.4.3" + resolved "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz#fc1191e8320009fd4d20e9339595c6041ddc22c9" + integrity sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA== + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.npmmirror.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.npmmirror.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.npmmirror.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g== + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.npmmirror.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphlib@^2.1.8: + version "2.1.8" + resolved "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" + integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== + dependencies: + lodash "^4.17.15" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.npmmirror.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x, he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +highlight.js@^9.12.0: + version "9.18.5" + resolved "https://registry.npmmirror.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" + integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.npmmirror.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.npmmirror.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-tags@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + integrity sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g== + +html-tags@^3.1.0: + version "3.3.1" + resolved "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f" + integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== + +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg== + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +htmlparser2@^3.10.0: + version "3.10.1" + resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy-middleware@^1.0.0: + version "1.3.1" + resolved "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" + integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.17.0, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +i18next@^20.4.0: + version "20.6.1" + resolved "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz#535e5f6e5baeb685c7d25df70db63bf3cc0aa345" + integrity sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A== + dependencies: + "@babel/runtime" "^7.12.0" + +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.npmmirror.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.0.2: + version "5.2.4" + resolved "https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +immer@^9.0.6: + version "9.0.21" + resolved "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@3.0.6: + version "3.0.6" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + integrity sha512-thluxTGBXUGb8DuQcvH9/CM/CrcGyB5xUpWc9x6Slqcq1z/hRr2a6KxUpX4ddRfmbe0hg3E4jTvo5833aWz3BA== + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^7.0.0, inquirer@^7.1.0, inquirer@^7.3.3: + version "7.3.3" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +intersperse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/intersperse/-/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181" + integrity sha512-LGcfug7OTeWkaQ8PEq8XbTy9Jl6uCNg8DrPnQUmwxSY8UETj1Y+LLmpdD0qHdEj6KVchuH3BE3ZzIXQ1t3oFUw== + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== + +ip@^1.1.0, ip@^1.1.5: + version "1.1.8" + resolved "https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmmirror.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hotkey@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef" + integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-mobile@^2.2.1: + version "2.2.2" + resolved "https://registry.npmmirror.com/is-mobile/-/is-mobile-2.2.2.tgz#f6c9c5d50ee01254ce05e739bdd835f1ed4e9954" + integrity sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg== + +is-negative-zero@^2.0.0, is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.0.4, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg== + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +ismobilejs@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" + integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.2.6: + version "2.2.7" + resolved "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== + dependencies: + html-escaper "^2.0.0" + +javascript-stringify@^2.0.1: + version "2.1.0" + resolved "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" + integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== + +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== + dependencies: + "@jest/types" "^24.9.0" + execa "^1.0.0" + throat "^4.0.0" + +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== + dependencies: + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + import-local "^2.0.0" + is-ci "^2.0.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^13.3.0" + +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + micromatch "^3.1.10" + pretty-format "^24.9.0" + realpath-native "^1.1.0" + +jest-diff@^24.3.0, jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-docblock@^24.3.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== + dependencies: + detect-newline "^2.1.0" + +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== + dependencies: + "@jest/types" "^24.9.0" + chalk "^2.0.1" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + +jest-environment-jsdom-fifteen@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/jest-environment-jsdom-fifteen/-/jest-environment-jsdom-fifteen-1.0.2.tgz#49a0af55e0d32737a6114a1575dd714702ad63b0" + integrity sha512-nfrnAfwklE1872LIB31HcjM65cWTh1wzvMSp10IYtPJjLDUbTTvDpajZgIxUnhRmzGvogdHDayCIlerLK0OBBg== + dependencies: + "@jest/environment" "^24.3.0" + "@jest/fake-timers" "^24.3.0" + "@jest/types" "^24.3.0" + jest-mock "^24.0.0" + jest-util "^24.0.0" + jsdom "^15.2.1" + +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + jsdom "^11.5.1" + +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== + +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== + dependencies: + "@jest/types" "^24.9.0" + anymatch "^2.0.0" + fb-watchman "^2.0.0" + graceful-fs "^4.1.15" + invariant "^2.2.4" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" + micromatch "^3.1.10" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" + +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^24.9.0" + is-generator-fn "^2.0.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + throat "^4.0.0" + +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== + dependencies: + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== + dependencies: + chalk "^2.0.1" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/stack-utils" "^1.0.1" + chalk "^2.0.1" + micromatch "^3.1.10" + slash "^2.0.0" + stack-utils "^1.0.1" + +jest-mock@^24.0.0, jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== + dependencies: + "@jest/types" "^24.9.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.3" + resolved "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== + +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== + dependencies: + "@jest/types" "^24.9.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.9.0" + +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== + dependencies: + "@jest/types" "^24.9.0" + browser-resolve "^1.11.3" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.4.2" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-docblock "^24.3.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + realpath-native "^1.1.0" + slash "^2.0.0" + strip-bom "^3.0.0" + yargs "^13.3.0" + +jest-serializer-vue@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" + integrity sha512-nK/YIFo6qe3i9Ge+hr3h4PpRehuPPGZFt8LDBdTHYldMb7ZWlkanZS8Ls7D8h6qmQP2lBQVDLP0DKn5bJ9QApQ== + dependencies: + pretty "2.0.0" + +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== + +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-transform-stub@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d" + integrity sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg== + +jest-util@^24.0.0, jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + callsites "^3.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + mkdirp "^0.5.1" + slash "^2.0.0" + source-map "^0.6.0" + +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== + dependencies: + "@jest/types" "^24.9.0" + camelcase "^5.3.1" + chalk "^2.0.1" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watch-typeahead@^0.4.2: + version "0.4.2" + resolved "https://registry.npmmirror.com/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz#e5be959698a7fa2302229a5082c488c3c8780a4a" + integrity sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q== + dependencies: + ansi-escapes "^4.2.1" + chalk "^2.4.1" + jest-regex-util "^24.9.0" + jest-watcher "^24.3.0" + slash "^3.0.0" + string-length "^3.1.0" + strip-ansi "^5.0.0" + +jest-watcher@^24.3.0, jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + jest-util "^24.9.0" + string-length "^2.0.0" + +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== + dependencies: + import-local "^2.0.0" + jest-cli "^24.9.0" + +jquery@^3.5.1: + version "3.7.0" + resolved "https://registry.npmmirror.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" + integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== + +js-beautify@^1.6.12, js-beautify@^1.6.14: + version "1.14.7" + resolved "https://registry.npmmirror.com/js-beautify/-/js-beautify-1.14.7.tgz#9206296de33f86dc106d3e50a35b7cf8729703b2" + integrity sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A== + dependencies: + config-chain "^1.1.13" + editorconfig "^0.15.3" + glob "^8.0.3" + nopt "^6.0.0" + +js-message@1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47" + integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbarcode@^3.11.3: + version "3.11.5" + resolved "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.5.tgz#390b3efd0271f35b9d68c7b8af6e972445969014" + integrity sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA== + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.npmmirror.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.npmmirror.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== + dependencies: + string-convert "^0.2.0" + +json5@2.x, json5@^2.1.2, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npmmirror.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + +json5@^1.0.1, json5@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +k-form-design@^3.7.3: + version "3.8.18" + resolved "https://registry.npmmirror.com/k-form-design/-/k-form-design-3.8.18.tgz#504687b49126c78bb759a1365be4620d951f95e8" + integrity sha512-UyAs3xeQcckGSUgburIkFh5vFYEU/l+YxsKgXuZloCVuMN8lwt/VjvrcH/35D3VI2JG36I80/Vw/lbd6wo0UUw== + dependencies: + ant-design-vue "1.7.8" + babel-polyfill "^6.26.0" + clipboard "^2.0.6" + core-js "^2.6.5" + moment "^2.24.0" + vcolorpicker "^1.1.0" + vue "^2.6.10" + vue-codemirror-lite "^1.0.4" + vue-quill-editor "^3.0.6" + vue-router "^3.0.3" + vuedraggable "^2.23.2" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +launch-editor-middleware@^2.2.1: + version "2.6.0" + resolved "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.6.0.tgz#2ba4fe4b695d7fe3d44dee86b6d46d57b8332dfd" + integrity sha512-K2yxgljj5TdCeRN1lBtO3/J26+AIDDDw+04y6VAiZbWcTdBwsYN6RrZBnW5DN/QiSIdKNjKdATLUUluWWFYTIA== + dependencies: + launch-editor "^2.6.0" + +launch-editor@^2.2.1, launch-editor@^2.6.0: + version "2.6.0" + resolved "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" + integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.7.3" + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +leaflet.pm@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/leaflet.pm/-/leaflet.pm-2.2.0.tgz#adbe27c4abb2855909f80b776a85b60dbcc650fe" + integrity sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg== + dependencies: + "@turf/difference" "^6.0.2" + "@turf/intersect" "^6.1.3" + "@turf/kinks" "6.x" + lodash "^4.17.15" + +leaflet@^1.7.1: + version "1.9.4" + resolved "https://registry.npmmirror.com/leaflet/-/leaflet-1.9.4.tgz#23fae724e282fa25745aff82ca4d394748db7d8d" + integrity sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA== + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +less-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^4.0.1" + +less@^3.0.4: + version "3.13.1" + resolved "https://registry.npmmirror.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" + integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== + dependencies: + copy-anything "^2.0.1" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + native-request "^1.0.5" + source-map "~0.6.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linq@^3.2.3: + version "3.2.4" + resolved "https://registry.npmmirror.com/linq/-/linq-3.2.4.tgz#5e15b7a85d2b9d521166a22e0cf9c5560452ad7f" + integrity sha512-WIgtcH1EHHTXI/Qt/V3JH8D8j46ZiMJu1fynCzhAXtPYDAtV208BRmzpE2EhDq8KhoBAMVRL7KPH1khvHFstlw== + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" + integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== + dependencies: + find-cache-dir "^0.1.1" + mkdirp "^0.5.1" + +loader-runner@^2.3.1, loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + integrity sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ== + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.2" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + +lodash.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.mapvalues@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + integrity sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ== + +lodash.memoize@4.x, lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw== + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ== + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +loglevel@^1.6.8: + version "1.8.1" + resolved "https://registry.npmmirror.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" + integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== + +lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.3.0" + resolved "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3: + version "1.4.1" + resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.5" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-match@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz#3f87c31e9af1a5fd485fb9db134428b23bbb7ba8" + integrity sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg== + dependencies: + wildcard "^1.1.0" + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-css-extract-plugin@^0.9.0: + version "0.9.0" + resolved "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.6" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.3.6" + resolved "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.x, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mockjs2@1.0.8: + version "1.0.8" + resolved "https://registry.npmmirror.com/mockjs2/-/mockjs2-1.0.8.tgz#37ca061d6c3319d888292aef656434380971c94c" + integrity sha512-IXY9wzq3Pr2tybkJnT+dzrTz0GBRTtgXc7Cke/UUQyyWtbjDrck8uZ3NmMF4LaWgAD8vm8EMGcBk4Itc6nzpRg== + dependencies: + commander "*" + +moment@^2.21.0, moment@^2.24.0: + version "2.29.4" + resolved "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mutationobserver-shim@^0.3.2: + version "0.3.7" + resolved "https://registry.npmmirror.com/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz#8bf633b0c0b0291a1107255ed32c13088a8c5bf3" + integrity sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +namespace-emitter@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz#978d51361c61313b4e6b8cf6f3853d08dfa2b17c" + integrity sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g== + +nan@^2.12.1: + version "2.17.0" + resolved "https://registry.npmmirror.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + +nanoid@^3.1.25, nanoid@^3.2.0, nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +nanopop@^2.1.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/nanopop/-/nanopop-2.3.0.tgz#a5f672fba27d45d6ecbd0b59789c040072915123" + integrity sha512-fzN+T2K7/Ah25XU02MJkPZ5q4Tj5FpjmIYq4rvoHX4yb16HzFdCO6JxFFn5Y/oBhQ8no8fUZavnyIv9/+xkBBw== + +native-request@^1.0.5: + version "1.1.0" + resolved "https://registry.npmmirror.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" + integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.npmmirror.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-addon-api@^1.7.1: + version "1.7.2" + resolved "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-cache@^4.1.1: + version "4.2.1" + resolved "https://registry.npmmirror.com/node-cache/-/node-cache-4.2.1.tgz#efd8474dee4edec4138cdded580f5516500f7334" + integrity sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A== + dependencies: + clone "2.x" + lodash "^4.17.15" + +node-emoji@^1.10.0: + version "1.11.0" + resolved "https://registry.npmmirror.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + +node-fetch@1.6.3: + version "1.6.3" + resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + integrity sha512-BDxbhLHXFFFvilHjh9xihcDyPkXQ+kjblxnl82zAX41xUYSNvuRpFRznmldR9+OKu+p+ULZ7hNoyunlLB5ecUA== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-fetch@^2.6.7: + version "2.6.11" + resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.npmmirror.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-notifier@^5.4.2: + version "5.4.5" + resolved "https://registry.npmmirror.com/node-notifier/-/node-notifier-5.4.5.tgz#0cbc1a2b0f658493b4025775a13ad938e96091ef" + integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-releases@^2.0.8: + version "2.0.12" + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + +node-ssh@^11.0.0: + version "11.1.1" + resolved "https://registry.npmmirror.com/node-ssh/-/node-ssh-11.1.1.tgz#b7ed0a82963d34c6e8c007723f83f626ef5b19e0" + integrity sha512-B3Tb3t54nCj2PyA8vnUMeH19Z2hybJzg5n4t9mRCOTfVGwGlJrv0frDjhPjisTAg3JplJiSxzfImOTMvFPkraQ== + dependencies: + make-dir "^3.1.0" + sb-promise-queue "^2.1.0" + sb-scandir "^3.1.0" + shell-escape "^0.2.0" + ssh2 "^0.8.9" + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + integrity sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA== + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.npmmirror.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== + +nwsapi@^2.0.7, nwsapi@^2.2.0: + version "2.2.4" + resolved "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" + integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^1.1.4: + version "1.3.1" + resolved "https://registry.npmmirror.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.6: + version "2.1.6" + resolved "https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.npmmirror.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +omit.js@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858" + integrity sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ== + dependencies: + babel-runtime "^6.23.0" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.npmmirror.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +opencollective@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" + integrity sha512-YBRI0Qa8+Ui0/STV1qYuPrJm889PT3oCPHMVoL+8Y3nwCffj7PSrB2NlGgrhgBKDujxTjxknHWJ/FiqOsYcIDw== + dependencies: + babel-polyfill "6.23.0" + chalk "1.1.3" + inquirer "3.0.6" + minimist "1.2.0" + node-fetch "1.6.3" + opn "4.0.2" + +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + integrity sha512-iPBWbPP4OEOzR1xfhpGLDh+ypKBOygunZhM9jBtA7FS5sKjEiMZw0EFb82hnDOmTZX90ZWLoZKUza4cVt8MexA== + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optionator@^0.8.1, optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.npmmirror.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +ora@^5.1.0: + version "5.4.1" + resolved "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha512-J/e9xiZZQNrt+958FFzJ+auItsBGq+UrQ7nE89AUP7UOTtjHnkISANXLdayhVzh538UnLMCSlf13lFfRIAKQOA== + dependencies: + p-reduce "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: + version "2.3.0" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.npmmirror.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== + dependencies: + no-case "^2.2.0" + +parchment@^1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5" + integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-svg-path@~0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb" + integrity sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ== + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.1: + version "4.0.5" + resolved "https://registry.npmmirror.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg== + dependencies: + find-up "^1.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pnp-webpack-plugin@^1.6.4: + version "1.7.0" + resolved "https://registry.npmmirror.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" + integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== + dependencies: + ts-pnp "^1.1.6" + +point-at-length@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/point-at-length/-/point-at-length-1.1.0.tgz#0ad72ebd0980d7f5a1ab12296c055f9eb6b30e57" + integrity sha512-nNHDk9rNEh/91o2Y8kHLzBLNpLf80RYd2gCun9ss+V0ytRSf6XhryBTx071fesktjbachRmGuUbId+JQmzhRXw== + dependencies: + abs-svg-path "~0.1.1" + isarray "~0.0.1" + parse-svg-path "~0.1.1" + +polygon-clipping@^0.15.3: + version "0.15.3" + resolved "https://registry.npmmirror.com/polygon-clipping/-/polygon-clipping-0.15.3.tgz#0215840438470ba2e9e6593625e4ea5c1087b4b7" + integrity sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg== + dependencies: + splaytree "^3.1.0" + +portfinder@^1.0.26: + version "1.0.32" + resolved "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.13" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.39" + resolved "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.4.14: + version "8.4.23" + resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" + integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +preact@^10.5.13: + version "10.17.0" + resolved "https://registry.npmmirror.com/preact/-/preact-10.17.0.tgz#77c0e3402767c999ac0f1ba39bd43cd85beab06b" + integrity sha512-SNsI8cbaCcUS5tbv9nlXuCfIXnJ9ysBMWk0WnB6UWwcVA3qZ2O6FxqDFECMAMttvLQcW/HaNZUe2BLidyvrVYw== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^1.18.2: + version "1.19.1" + resolved "https://registry.npmmirror.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +"prettier@^1.18.2 || ^2.0.0", prettier@^2.1.1: + version "2.8.8" + resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-error@^2.0.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.npmmirror.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + +pretty@2.0.0, pretty@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w== + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +print-js@^1.0.63: + version "1.6.0" + resolved "https://registry.npmmirror.com/print-js/-/print-js-1.6.0.tgz#692b046cf31992b46afa6c6d8a9db1c69d431d1f" + integrity sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg== + +prismjs@^1.23.0: + version "1.29.0" + resolved "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmmirror.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmmirror.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.npmmirror.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qrcodejs2@^0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz#465afe5e39f19facecb932c11f7a186109146ae1" + integrity sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +quill-delta@^3.6.2: + version "3.6.3" + resolved "https://registry.npmmirror.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032" + integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg== + dependencies: + deep-equal "^1.0.1" + extend "^3.0.2" + fast-diff "1.1.2" + +quill@^1.3.4: + version "1.3.7" + resolved "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8" + integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g== + dependencies: + clone "^2.1.1" + deep-equal "^1.0.1" + eventemitter3 "^2.0.3" + extend "^3.0.2" + parchment "^1.1.4" + quill-delta "^3.6.2" + +raf@^3.4.0: + version "3.4.1" + resolved "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raphael@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/raphael/-/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89" + integrity sha512-w2yIenZAQnp257XUWGni4bLMVxpUpcIl7qgxEgDIXtmSypYtlNxfXWpOBxs7LBTps5sDwhRnrToJrMUrivqNTQ== + dependencies: + eve-raphael "0.5.0" + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.8.4: + version "16.13.1" + resolved "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.1.1: + version "5.2.0" + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.1.2: + version "1.1.3" + resolved "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== + dependencies: + minimatch "^5.1.0" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +realpath-native@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: + version "1.5.0" + resolved "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +regression@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/regression/-/regression-2.0.1.tgz#8d29c3e8224a10850c35e337e85a8b2fac3b0c87" + integrity sha512-A4XYsc37dsBaNOgEjkJKzfJlE394IMmUPlI/p3TTI9u3T+2a+eox5Pr/CPUqF0eszeWZJPAc6QkroAhuUpWDJQ== + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.npmmirror.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.5, request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.npmmirror.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.87.0, request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.npmmirror.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== + +resolve@1.x, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.22.1, resolve@^1.8.1: + version "1.22.2" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.npmmirror.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== + dependencies: + aproba "^1.1.1" + +rw@1: + version "1.3.3" + resolved "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug== + +rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.npmmirror.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.npmmirror.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +sb-promise-queue@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/sb-promise-queue/-/sb-promise-queue-2.1.0.tgz#7e44bebef643f75d809a3db7f605b815d877a04d" + integrity sha512-zwq4YuP1FQFkGx2Q7GIkZYZ6PqWpV+bg0nIO1sJhWOyGyhqbj0MsTvK6lCFo5TQwX5pZr6SCQ75e8PCDCuNvkg== + +sb-scandir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/sb-scandir/-/sb-scandir-3.1.0.tgz#31c346abb5184b73c5a25b286858f4299aa8756c" + integrity sha512-70BVm2xz9jn94zSQdpvYrEG101/UV9TVGcfWr9T5iob3QhCK4lYXeculfBqPGFv3XTeKgx4dpWyYIDeZUqo4kg== + dependencies: + sb-promise-queue "^2.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0: + version "2.7.1" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.1, schema-utils@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" + integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +screenfull@^5.1.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba" + integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== + +scroll-into-view-if-needed@^2.2.28: + version "2.2.31" + resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + +selfsigned@^1.10.8: + version "1.10.14" + resolved "https://registry.npmmirror.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" + integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.5, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5: + version "7.5.1" + resolved "https://registry.npmmirror.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmmirror.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-equal@^1.0.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shallowequal@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-escape@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/shell-escape/-/shell-escape-0.2.0.tgz#68fd025eb0490b4f567a027f0bf22480b5f84133" + integrity sha512-uRRBT2MfEOyxuECseCZd28jC1AJ8hmqqneWQ4VWUTgCAFvb3wKU1jLqj6egC4Exrr88ogg3dp+zroH4wJuaXzw== + +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-statistics@^6.1.0: + version "6.1.1" + resolved "https://registry.npmmirror.com/simple-statistics/-/simple-statistics-6.1.1.tgz#e3a0799ffc49914d6f421c5a4ac585f6a13e2bad" + integrity sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slate-history@^0.66.0: + version "0.66.0" + resolved "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940" + integrity sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng== + dependencies: + is-plain-object "^5.0.0" + +slate@^0.72.0: + version "0.72.8" + resolved "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz#5a018edf24e45448655293a68bfbcf563aa5ba81" + integrity sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +snabbdom@^3.1.0: + version "3.5.1" + resolved "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz#25f80ef15b194baea703d9d5441892e369de18e1" + integrity sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.5.0: + version "1.6.1" + resolved "https://registry.npmmirror.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" + integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== + dependencies: + debug "^3.2.7" + eventsource "^2.0.2" + faye-websocket "^0.11.4" + inherits "^2.0.4" + url-parse "^1.5.10" + +sockjs@^0.3.21: + version "0.3.24" + resolved "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +sortablejs@1.10.2: + version "1.10.2" + resolved "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290" + integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A== + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.13" + resolved "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" + integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +splaytree@^3.1.0: + version "3.1.2" + resolved "https://registry.npmmirror.com/splaytree/-/splaytree-3.1.2.tgz#d1db2691665a3c69d630de98d55145a6546dc166" + integrity sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssh2-streams@~0.4.10: + version "0.4.10" + resolved "https://registry.npmmirror.com/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" + integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== + dependencies: + asn1 "~0.2.0" + bcrypt-pbkdf "^1.0.2" + streamsearch "~0.1.2" + +ssh2@^0.8.9: + version "0.8.9" + resolved "https://registry.npmmirror.com/ssh2/-/ssh2-0.8.9.tgz#54da3a6c4ba3daf0d8477a538a481326091815f3" + integrity sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw== + dependencies: + ssh2-streams "~0.4.10" + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssr-window@^3.0.0-alpha.1: + version "3.0.0" + resolved "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz#fd5b82801638943e0cc704c4691801435af7ac37" + integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA== + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.npmmirror.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^1.0.1: + version "1.0.5" + resolved "https://registry.npmmirror.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +streamsearch@~0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== + +strip-json-comments@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-json-comments@^3.0.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.npmmirror.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npmmirror.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.0.2: + version "6.1.15" + resolved "https://registry.npmmirror.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" + integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4: + version "1.4.5" + resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + +terser@^4.1.2: + version "4.8.1" + resolved "https://registry.npmmirror.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.16.8: + version "5.17.6" + resolved "https://registry.npmmirror.com/terser/-/terser-5.17.6.tgz#d810e75e1bb3350c799cd90ebefe19c9412c12de" + integrity sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.npmmirror.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +thread-loader@^2.1.3: + version "2.1.3" + resolved "https://registry.npmmirror.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" + integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg== + dependencies: + loader-runner "^2.3.1" + loader-utils "^1.1.0" + neo-async "^2.6.0" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tinycolor2@^1.4.1: + version "1.6.0" + resolved "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" + integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +topojson-client@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" + integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== + dependencies: + commander "2" + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.npmmirror.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg== + +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-jest@^24.2.0: + version "24.3.0" + resolved "https://registry.npmmirror.com/ts-jest/-/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869" + integrity sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.npmmirror.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.14.1: + version "3.14.2" + resolved "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +tslib@^1.10.0, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1: + version "2.5.2" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" + integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.npmmirror.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.0.10: + version "1.0.11" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.npmmirror.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-loader@^2.2.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" + integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== + dependencies: + loader-utils "^1.2.3" + mime "^2.4.4" + schema-utils "^2.5.0" + +url-parse@^1.5.10: + version "1.5.10" + resolved "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npmmirror.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.1.2.tgz#02b3dbadbb80071eee4c43aed58747afdfc516db" + integrity sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + for-each "^0.3.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + object.getownpropertydescriptors "^2.1.6" + safe-array-concat "^1.0.0" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.npmmirror.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmmirror.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vcolorpicker@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/vcolorpicker/-/vcolorpicker-1.1.0.tgz#527e2463ab330faab8b9637a30f915aebbef75f6" + integrity sha512-FbI7rq0EliwaPU8Qh/QVv9MFdZnG3dHjZEvODIcpPS774TTvilg6tq6cWDRbtCITBNDdpgVWnNlJ0aKnecgrJg== + dependencies: + highlight.js "^9.12.0" + vue "^2.5.17" + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.npmmirror.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +vue-clipboard2@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/vue-clipboard2/-/vue-clipboard2-0.2.1.tgz#9f06690af1c98aef344be1fc4beb00cdc5307ee1" + integrity sha512-n6ie/0g0bKohmLlC/5ja1esq2Q0jQ5hWmhNSZcvCsWfDeDnVARjl6cBB9p72XV1nlVfuqsZcfV8HTjjZAIlLBA== + dependencies: + clipboard "^2.0.0" + +vue-codemirror-lite@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/vue-codemirror-lite/-/vue-codemirror-lite-1.0.4.tgz#48a5cd7d17c0914503c8cd9d9b56b438e49c3410" + integrity sha512-p9199uCWgJwkMEfr89vHRbhiYEg+w0NmucqOGt/o3XuR1LeEVmY0uSsBPvrBzVG5dqjaGPSAkEEePnc0Wtpb/w== + dependencies: + codemirror "^5.22.0" + +vue-cropper@0.4.9: + version "0.4.9" + resolved "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-0.4.9.tgz#fe650f32516ecf29014bbd4a9079191c8dc5a5ae" + integrity sha512-Uf1i/sCh+ZqSM9hb2YTGRENzJFH+mvDuv8N2brGLjK7UBuF7XDP7zbis8g/dcqZiMojAcBDtObFCn4ERFbRMxQ== + +vue-eslint-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" + integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g== + dependencies: + debug "^4.1.0" + eslint-scope "^4.0.0" + eslint-visitor-keys "^1.0.0" + espree "^4.1.0" + esquery "^1.0.1" + lodash "^4.17.11" + +vue-hot-reload-api@^2.3.0: + version "2.3.4" + resolved "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" + integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== + +vue-jest@^3.0.5: + version "3.0.7" + resolved "https://registry.npmmirror.com/vue-jest/-/vue-jest-3.0.7.tgz#a6d29758a5cb4d750f5d1242212be39be4296a33" + integrity sha512-PIOxFM+wsBMry26ZpfBvUQ/DGH2hvp5khDQ1n51g3bN0TwFwTy4J85XVfxTRMukqHji/GnAoGUnlZ5Ao73K62w== + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.26.0" + chalk "^2.1.0" + deasync "^0.1.15" + extract-from-css "^0.4.4" + find-babel-config "^1.1.0" + js-beautify "^1.6.14" + node-cache "^4.1.1" + object-assign "^4.1.1" + source-map "^0.5.6" + tsconfig "^7.0.0" + vue-template-es2015-compiler "^1.6.0" + +vue-json-viewer@2: + version "2.2.22" + resolved "https://registry.npmmirror.com/vue-json-viewer/-/vue-json-viewer-2.2.22.tgz#7ea7454b8aac3701245b88acf39de876cc54221e" + integrity sha512-3oPH5BxoUWva/qp7wNJj+15FBXyi9Yu5VDW4mCWivjHR1pUpMv34fjqqxML7jh2uOqm1S/3Xks5nQ5JjC5+OWw== + dependencies: + clipboard "^2.0.4" + +"vue-loader-v16@npm:vue-loader@^16.1.0": + version "16.8.3" + resolved "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz#d43e675def5ba9345d6c7f05914c13d861997087" + integrity sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA== + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-loader@^15.9.2: + version "15.10.1" + resolved "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz#c451c4cd05a911aae7b5dbbbc09fb913fb3cca18" + integrity sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA== + dependencies: + "@vue/component-compiler-utils" "^3.1.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + +vue-ls@^3.2.1: + version "3.2.2" + resolved "https://registry.npmmirror.com/vue-ls/-/vue-ls-3.2.2.tgz#c0178a027913e20e238bac8b9fa2ade2d69cce66" + integrity sha512-xros9Zheckv+8x9PerHvWe5SMYud0+ZlPAMrKWKNtDN/usMOKRoluj6kBZyQo6BxwpmiBL8/EjKMYjxmCNXOMg== + dependencies: + opencollective-postinstall "^2.0.2" + +vue-quill-editor@^3.0.6: + version "3.0.6" + resolved "https://registry.npmmirror.com/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz#1f85646211d68a31a80a72cb7f45bb2f119bc8fb" + integrity sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ== + dependencies: + object-assign "^4.1.1" + quill "^1.3.4" + +vue-ref@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/vue-ref/-/vue-ref-2.0.0.tgz#483084d732abed11da796778a8266a3af0ea1a9c" + integrity sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ== + +vue-router@^3.0.3, vue-router@^3.1.2: + version "3.6.5" + resolved "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz#95847d52b9a7e3f1361cb605c8e6441f202afad8" + integrity sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ== + +vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: + version "4.1.3" + resolved "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" + integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-svg-component-builder@2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/vue-svg-component-builder/-/vue-svg-component-builder-2.0.3.tgz#c4e0a19073587ab882fd6f72bb7b3b63b4396801" + integrity sha512-We9ZLSYPQx9y3v5+HNWyjkGFaxZMlWPTqYBU08y4YT46f453BQ4JxIoS8rV0a8PIxnKap7m/YIzrdIfoHxrpaA== + +vue-svg-component-runtime@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/vue-svg-component-runtime/-/vue-svg-component-runtime-1.0.1.tgz#c4c241cdf92fead742ef33133b997ff42d8b9ee6" + integrity sha512-TkmZ1qwFeFJSRH6b6KVqDU2f8DCSdoNoo/veKqog7FsyF0UETTI66ALKX1rrLXy/KT6LSaJB5IfZkuuSfaQsEA== + +vue-svg-icon-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/vue-svg-icon-loader/-/vue-svg-icon-loader-2.1.1.tgz#7b999ccb0647ce3b3903bfbf535fe247e11b032a" + integrity sha512-JOL4fyh9rnbcqMLTF5NVG8YVupnLIMHMY+3CLMaEb9xDUmfk6Cp3RqyI/8gBea7d51i4lyNdzZ3tQ/EJLQxQDA== + dependencies: + "@types/loader-utils" "1.1.3" + "@types/node" "8.9" + loader-utils "1.1.0" + vue-svg-component-builder "2.0.3" + +vue-template-compiler@^2.6.10: + version "2.7.14" + resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1" + integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" + +vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + +vue2-leaflet@^2.7.0: + version "2.7.1" + resolved "https://registry.npmmirror.com/vue2-leaflet/-/vue2-leaflet-2.7.1.tgz#2f95c287621bf778f10804c88223877f5c049257" + integrity sha512-K7HOlzRhjt3Z7+IvTqEavIBRbmCwSZSCVUlz9u4Rc+3xGCLsHKz4TAL4diAmfHElCQdPPVdZdJk8wPUt2fu6WQ== + +vue@^2.5.17, vue@^2.6.10: + version "2.7.14" + resolved "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz#3743dcd248fd3a34d421ae456b864a0246bafb17" + integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ== + dependencies: + "@vue/compiler-sfc" "2.7.14" + csstype "^3.1.0" + +vuedraggable@^2.23.2: + version "2.24.3" + resolved "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-2.24.3.tgz#43c93849b746a24ce503e123d5b259c701ba0d19" + integrity sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g== + dependencies: + sortablejs "1.10.2" + +vuex@^3.1.1: + version "3.6.2" + resolved "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" + integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +wangeditor@^3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/wangeditor/-/wangeditor-3.1.1.tgz#fbd3c1d4976923c9edebb85b29d30b35512ad039" + integrity sha512-co18zRS96xVKhLyhTIqgqWs5khSbNPlZeoT8/B2dxnVKQMntRGu1D8ks+nbNOvZcIjyrdhhtde6LjqzVECL6DA== + +warning@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.npmmirror.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-bundle-analyzer@^3.8.0: + version "3.9.0" + resolved "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" + integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.19" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-chain@^6.4.0: + version "6.5.1" + resolved "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" + integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.11.0: + version "3.11.3" + resolved "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" + integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== + dependencies: + ansi-html-community "0.0.8" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-sources@*, webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-theme-color-replacer@1.3.18: + version "1.3.18" + resolved "https://registry.npmmirror.com/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.3.18.tgz#98b70eab698e40b06ea3c56a3db8590f7ccef847" + integrity sha512-z7qM3opvuSjAyJd0eLMOpZhH56r+fFctczWG6xnhUSeRsvbCg/EnFdsYoGL3xYJZNANvwLlggpJxnAcuFV5a6Q== + dependencies: + webpack-sources "*" + +webpack@^4.0.0: + version "4.46.0" + resolved "https://registry.npmmirror.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +webpack@^5: + version "5.83.1" + resolved "https://registry.npmmirror.com/webpack/-/webpack-5.83.1.tgz#fcb69864a0669ac3539a471081952c45b15d1c40" + integrity sha512-TNsG9jDScbNuB+Lb/3+vYolPplCS3bbEaJf+Bj0Gw4DhP3ioAflBb1flcRt9zsWITyvOhM96wMQNRWlSX52DgA== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.14.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.npmmirror.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^1.1.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5" + integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng== + +wolfy87-eventemitter@^5.1.0: + version "5.2.9" + resolved "https://registry.npmmirror.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz#e879f770b30fbb6512a8afbb330c388591099c2a" + integrity sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw== + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@2.4.1: + version "2.4.1" + resolved "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.3" + resolved "https://registry.npmmirror.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" + integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.0.0, ws@^6.2.1: + version "6.2.2" + resolved "https://registry.npmmirror.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + +ws@^7.0.0: + version "7.5.9" + resolved "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@10.x: + version "10.1.0" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^13.3.0, yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yorkie@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" + integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== + dependencies: + execa "^0.8.0" + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0" + +zip-stream@^4.1.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" + integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== + dependencies: + archiver-utils "^3.0.4" + compress-commons "^4.1.2" + readable-stream "^3.6.0" diff --git a/jt_shanghui表结构信息.chm b/jt_shanghui表结构信息.chm new file mode 100644 index 0000000..ad7045f Binary files /dev/null and b/jt_shanghui表结构信息.chm differ diff --git a/netcore/src b/netcore/src new file mode 160000 index 0000000..58446a8 --- /dev/null +++ b/netcore/src @@ -0,0 +1 @@ +Subproject commit 58446a897fdef66176ab3d8f311ff944a6431701