From 8d60f67b0c224f84f291fabfd796f6f48fedebf2 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Tue, 1 Sep 2020 19:16:21 +0800 Subject: [PATCH 01/88] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=BB=E5=8A=A8?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/workOrder.go | 39 +++++++++++++++++++++++++++++++++++++ router/process/workOrder.go | 1 + 2 files changed, 40 insertions(+) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index 79aa52c..932967a 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -585,3 +585,42 @@ func UrgeWorkOrder(c *gin.Context) { app.OK(c, "", "") } + +// 主动处理 +func ActiveOrder(c *gin.Context) { + var ( + workOrderId string + err error + stateValue []struct { + ID string `json:"id"` + Label string `json:"label"` + ProcessMethod string `json:"process_method"` + Processor []int `json:"processor"` + } + stateValueByte []byte + ) + + workOrderId = c.Param("id") + + err = c.ShouldBind(&stateValue) + if err != nil { + app.Error(c, -1, err, "") + return + } + + stateValueByte, err = json.Marshal(stateValue) + if err != nil { + app.Error(c, -1, fmt.Errorf("转byte失败,%v", err.Error()), "") + return + } + + err = orm.Eloquent.Model(&process.WorkOrderInfo{}). + Where("id = ?", workOrderId). + Update("state", stateValueByte).Error + if err != nil { + app.Error(c, -1, fmt.Errorf("接单失败,%v", err.Error()), "") + return + } + + app.OK(c, "", "接单成功,请及时处理") +} diff --git a/router/process/workOrder.go b/router/process/workOrder.go index b46dcd3..2e20b44 100644 --- a/router/process/workOrder.go +++ b/router/process/workOrder.go @@ -22,5 +22,6 @@ func RegisterWorkOrderRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMidd workOrderRouter.GET("/unity", process.UnityWorkOrder) workOrderRouter.POST("/inversion", process.InversionWorkOrder) workOrderRouter.GET("/urge", process.UrgeWorkOrder) + workOrderRouter.PUT("/active-order/:id", process.ActiveOrder) } } From 1f16e0be28bacc7290bd319fab5d3845f763cbcb Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Tue, 1 Sep 2020 19:17:08 +0800 Subject: [PATCH 02/88] =?UTF-8?q?=E8=A1=A5=E5=85=85sql=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/db.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/db.sql b/config/db.sql index f55591a..fd4553d 100644 --- a/config/db.sql +++ b/config/db.sql @@ -277,6 +277,8 @@ INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (357, '', '保存LDAP配置', '', '', '/0/2/352/357', 'F', '', 'system:settings:index:ldap', 352, '0', '', '', 0, '0', '1', '', 1, '2020-08-19 13:29:08', '2020-08-19 13:29:08', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (358, '', '清空登录日志', '', '/api/v1/loginlog', '/0/63/280/214/358', 'A', 'DELETE', '', 214, '0', '', '', 0, '1', '1', '', 1, '2020-08-27 10:00:11', '2020-08-27 10:00:11', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (359, '', '清空登录日志', '', '', '/0/2/212/359', 'F', 'DELETE', 'system:sysloginlog:clean', 212, '0', '', '', 0, '0', '1', '', 1, '2020-08-27 10:01:12', '2020-08-27 10:01:12', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (360, '', '主动接单', 'bug', '/api/v1/work-order/active-order/:id', '/0/63/281/326/360', 'A', 'PUT', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-09-01 19:02:01', '2020-09-01 19:02:10', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (361, '', '主动接单', '', '', '/0/268/329/361', 'F', '', 'process:list:handle:active', 329, '0', '', '', 0, '0', '1', '', 1, '2020-09-01 19:03:52', '2020-09-01 19:03:52', NULL); COMMIT; BEGIN; From bfb9dcddf17e1c6ad357241e41ecb8343702e289 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 2 Sep 2020 11:39:54 +0800 Subject: [PATCH 03/88] update config file. --- config/settings.yml | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/config/settings.yml b/config/settings.yml index 9004d6e..fc78ab8 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -2,46 +2,42 @@ script: path: ./static/scripts settings: application: - mode: prod # dev开发环境 test测试环境 prod线上环境 + domain: localhost:8002 host: 0.0.0.0 + ishttps: false + mode: prod name: ferry port: 8002 readtimeout: 1 writertimeout: 2 - domain: localhost:8002 - ishttps: false - ssl: - key: keystring - pem: temp/pem.pem - jwt: - secret: ferry - timeout: 3600 database: - name: ferry dbtype: mysql host: 127.0.0.1 + name: ferry password: 123456 port: 3306 username: root - redis: - host: 127.0.0.1 - port: 6379 + domain: + gethost: 1 + url: localhost:9527 email: alias: ferry host: smtp.163.com pass: your password port: 465 - user: your username + user: fdevops@163.com gorm: logmode: 0 maxidleconn: 0 maxopenconn: 20000 - domain: http://192.168.0.100:9527 + jwt: + secret: ferry + timeout: 3600 ldap: anonymousquery: 0 basedn: dc=fdevops,dc=com bindpwd: 123456 - binduserdn: admin + binduserdn: cn=admin,dc=fdevops,dc=com host: localhost port: 389 tls: 0 @@ -49,10 +45,16 @@ settings: log: compress: 1 consolestdout: 1 - filestdout: 1 - level: info + filestdout: 0 + level: debug localtime: 1 - maxAge: 30 + maxage: 30 maxbackups: 300 maxsize: 10240 path: ./logs/ferry.log + redis: + host: 127.0.0.1 + port: 6379 + ssl: + key: keystring + pem: temp/pem.pem From e5be2b4e76968be3dc90b1c4e281a97eec5da549 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 2 Sep 2020 17:47:18 +0800 Subject: [PATCH 04/88] update readme. --- README.md | 2 +- config/READMEN.md | 37 ------------------------------------- 2 files changed, 1 insertion(+), 38 deletions(-) delete mode 100644 config/READMEN.md diff --git a/README.md b/README.md index 868d27d..6de9e5b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- +

diff --git a/config/READMEN.md b/config/READMEN.md deleted file mode 100644 index 763ddb6..0000000 --- a/config/READMEN.md +++ /dev/null @@ -1,37 +0,0 @@ -# ⚙ 配置详情 - -1. 配置文件说明 -```yml -settings: - application: - # 项目启动环境 - mode: dev # dev开发环境 test测试环境 prod线上环境; - host: 0.0.0.0 # 主机ip 或者域名,默认0.0.0.0 - # 服务名称 - name: ferry - # 服务端口 - port: 8000 - readtimeout: 1 - writertimeout: 2 - log: - # 日志文件存放路径 - dir: temp/logs - jwt: - # JWT加密字符串 - secret: ferry - # 过期时间单位:秒 - timeout: 3600 - database: - # 数据库名称 - name: dbname - # 数据库类型 - dbtype: mysql - # 数据库地址 - host: 127.0.0.1 - # 数据库密码 - password: password - # 数据库端口 - port: 3306 - # 数据库用户名 - username: root -``` \ No newline at end of file From cc5f91cdb9cfbae29be8484ecd9f559798e107e6 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 3 Sep 2020 13:14:23 +0800 Subject: [PATCH 05/88] =?UTF-8?q?github=20=E6=89=98=E7=AE=A1=E6=95=99?= =?UTF-8?q?=E7=A8=8B=E6=96=87=E6=A1=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- document/_config.yml | 1 + document/countersign.md | 5 + document/cross_compile.md | 29 +++++ document/end_process.md | 5 + document/exclusive_gateway.md | 17 +++ document/forward.md | 5 + document/ide_development.md | 59 +++++++++ document/index.md | 15 +++ document/install.md | 226 ++++++++++++++++++++++++++++++++++ document/introduction.md | 55 +++++++++ document/new_process.md | 25 ++++ document/parallel_gateway.md | 7 ++ document/system_manager.md | 31 +++++ document/urge.md | 5 + 14 files changed, 485 insertions(+) create mode 100644 document/_config.yml create mode 100644 document/countersign.md create mode 100644 document/cross_compile.md create mode 100644 document/end_process.md create mode 100644 document/exclusive_gateway.md create mode 100644 document/forward.md create mode 100644 document/ide_development.md create mode 100644 document/index.md create mode 100644 document/install.md create mode 100644 document/introduction.md create mode 100644 document/new_process.md create mode 100644 document/parallel_gateway.md create mode 100644 document/system_manager.md create mode 100644 document/urge.md diff --git a/document/_config.yml b/document/_config.yml new file mode 100644 index 0000000..c419263 --- /dev/null +++ b/document/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/document/countersign.md b/document/countersign.md new file mode 100644 index 0000000..8217a29 --- /dev/null +++ b/document/countersign.md @@ -0,0 +1,5 @@ +# 会签 + +当在一个阶段出现多个处理人的时候,同时也需要多个处理人都处理完成,才可以进入下一个阶段的时候,则需要选择上会签的功能。 + +也就说,如果选择了会签,则需要当前阶段的所有人处理完成,才能进入下一个阶段。 diff --git a/document/cross_compile.md b/document/cross_compile.md new file mode 100644 index 0000000..bd17633 --- /dev/null +++ b/document/cross_compile.md @@ -0,0 +1,29 @@ +# Mac、Linux、Windows下分别进行交叉编译 + +Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序。 + +Mac 下编译 Linux 和 Windows 64位可执行程序 + + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go + +Linux 下编译 Mac 和 Windows 64位可执行程序 + + CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go + +Windows 下编译 Mac 和 Linux 64位可执行程序 + + SET CGO_ENABLED=0 + SET GOOS=darwin + SET GOARCH=amd64 + go build main.go + ------------------------------------------------- + SET CGO_ENABLED=0 + SET GOOS=linux + SET GOARCH=amd64 + go build main.go + +GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)。 +GOARCH:目标平台的体系架构(386、amd64、arm)。 +CGO_ENABLED:交叉编译不支持 CGO 所以要禁用它。 diff --git a/document/end_process.md b/document/end_process.md new file mode 100644 index 0000000..c855bcd --- /dev/null +++ b/document/end_process.md @@ -0,0 +1,5 @@ +# 结单 + +当发现提交的工单有误,可以根据实际情况,直接结束工单。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-12.png) diff --git a/document/exclusive_gateway.md b/document/exclusive_gateway.md new file mode 100644 index 0000000..e465418 --- /dev/null +++ b/document/exclusive_gateway.md @@ -0,0 +1,17 @@ +# 排他网关 + +在平时的业务中,有的时候需要根据表单数据的值来判断跳转到啥位置。 + +例如:如果申请的服务器价格低于1000元就是部门领导审批,如果超过1000元,那么就是CTO审批。为兼容这种情况因此加入了排他网关的概念。 + +此外还需注意,如果使用了排他网关,则必须有一个条件判断是正确的,否则流程将无法进行下去,报错失败。 + +将下面的Json格式数据,修改为自己的表单数据,写入到对应的流转线条中即可,但是流转线条的源阶段必须要排他网关的图标。 + + [ + { + "key":"字段名称", + "sign":"==", + "value":"需要判断的值" + } + ] diff --git a/document/forward.md b/document/forward.md new file mode 100644 index 0000000..1fcbc35 --- /dev/null +++ b/document/forward.md @@ -0,0 +1,5 @@ +# 转交 + +进行工单转交,只能在当前阶段将工单转交给他人。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-11.png) diff --git a/document/ide_development.md b/document/ide_development.md new file mode 100644 index 0000000..c92a7cc --- /dev/null +++ b/document/ide_development.md @@ -0,0 +1,59 @@ +# IDE开发 + +众多 IDE 里边,推荐使用 `goland IDE`进行调试 + +首先我们启动 `Goland` , 点击 `Open Project`,下图红框圈选部分; + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image.png) + +选择 ferry 存放的路径,找到并打开; + +# 配置 GOPORXY + +然后选择`Goland` > `Preferences` ; + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-1.png) + +# 添加运行或调试配置 + +### 添加 init 配置 + +1\. 打开`Edit Configurations` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-2.png) + +2\. 选择 `+` > `go build` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-3.png) + +3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为 `init -c=config/settings.dev.yml`,完成之后点击保存 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-4.png) + +4\. 修改数据库 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-5.png) + +5\. 初使化 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-6.png) + +### 添加 server 配置 + +1\. 打开`Edit Configurations` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-7.png) + +2\. 选择 `+` > `go build` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-8.png) + +3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为`server -c=config/settings.dev.yml`,完成之后点击保存 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-9.png) + +4\. 启动 debug + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-10.png) + +转载自:[http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE](http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE) diff --git a/document/index.md b/document/index.md new file mode 100644 index 0000000..c866a94 --- /dev/null +++ b/document/index.md @@ -0,0 +1,15 @@ +# 目录 + +* [介绍](https://lanyulei.github.io/ferry_docs/introduction "介绍") +* [安装](https://lanyulei.github.io/ferry_docs/install "安装") +* [IDE 开发](https://lanyulei.github.io/ferry_docs/ide_development "IDE 开发") +* [系统管理](https://lanyulei.github.io/ferry_docs/system_manager "系统管理") +* 工单系统 +* * [创建一个新流程](https://lanyulei.github.io/ferry_docs/new_process "创建一个新流程") +* * [催办](https://lanyulei.github.io/ferry_docs/urge "催办") +* * [转交](https://lanyulei.github.io/ferry_docs/forward "转交") +* * [结单](https://lanyulei.github.io/ferry_docs/end_process "结单") +* * [排他网关](https://lanyulei.github.io/ferry_docs/exclusive_gateway "排他网关") +* * [并行网关](https://lanyulei.github.io/ferry_docs/parallel_gateway "并行网关") +* * [会签](https://lanyulei.github.io/ferry_docs/countersign "会签") +* [Mac、Linux、Windows下分别进行交叉编译](https://lanyulei.github.io/ferry_docs/cross_compile "Mac、Linux、Windows下分别进行交叉编译") diff --git a/document/install.md b/document/install.md new file mode 100644 index 0000000..7313946 --- /dev/null +++ b/document/install.md @@ -0,0 +1,226 @@ +# 安装 + +> 需注意因使用到了json类型的字段,因此MySQL需是5.7以上的版本。 +> +> MySQL > 5.7 +> +> Go >= 1.14 +> +> Redis + +若是安装出错,请先确认redis及MySQL是否安装配置成功,若是还有问题,可在群内提问。 + +## 配置文件介绍 + + script: + path: ./static/scripts # 任务脚本路径 + settings: + application: + domain: localhost:8002 # 用于将HTTP请求重定向到HTTPS的主机名 + host: 0.0.0.0 # 启动的地址,主机ip 或者域名,默认0.0.0.0 + ishttps: false # 是否为HTTPS + mode: dev # 开发模式 + name: ferry-test # 服务名称 + port: "8002" # 启动端口 + readtimeout: 1 # 请求读取超时时间,从连接被接受(accept)到request body完全被读取(如果你不读取body,那么时间截止到读完header为止) + writertimeout: 2 # 从request header的读取结束开始,到response write结束为止(也就是ServeHTTP 方法的声明周期) + database: + dbtype: mysql # 数据库类型 + host: 127.0.0.1 # 数据库地址 + name: ferry # 数据库名称 + password: 123456 # 数据库密码 + port: 3306 # 数据库端口 + username: ferry # 数据库用户名 + email: + alias: ferry # 邮箱别名 + host: smtp.163.com # 邮件服务器 + pass: your password # 邮箱密码 + port: 465 # 邮件服务器端口 + user: fdevops@163.com # 邮箱账号 + gorm: + logmode: 0 # gorm详细日志输出,0表示不输出,1表示输出 + maxidleconn: 0 # 最大空闲连接 + maxopenconn: 20000 # 最大连接数据 + jwt: + secret: ferry # JWT加密字符串 + timeout: 3600 # 过期时间单位:秒 + log: + dir: logs # 日志路径 + operdb: false + ssl: + key: keystring + pem: temp/pem.pem + +## 本地开发 + +后端程序启动: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry.git + git clone https://gitee.com/yllan/ferry.git + + # 2\. 进入工作路径 + cd ferry + + # 3\. 修改配置 + vim config/settings.dev.yml + 1). 修改为自己的数据库信息 + 2). 修改为自己的邮件服务器地址 + 其他的根据情况来修改调整 + + # 4\. 安装依赖 + go get + + # 5\. 连接数据库,并创建数据库 + create database ferry charset 'utf8mb4'; + + # 6\. 初始化数据结构 + go run main.go init -c=config/settings.dev.yml + + # 7\. 测试启动程序,没有报错及没有问题 + go run main.go server -c=config/settings.dev.yml + + # 8\. 热加载方式启动 + air + +前端程序启动: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry_web.git + git clone https://gitee.com/yllan/ferry_web.git + + # 2\. 进入工作路径 + cd ferry_web + + # 3\. 安装依赖 + npm config set registry https://registry.npm.taobao.org + npm install + # 若npm install安装失败,可尝试使用一下命令安装 + npm install --unsafe-perm + + # 推荐使用cnpm + npm install -g cnpm --registry=https://registry.npm.taobao.org + cnpm install + + # 4\. 启动程序 + npm run dev + + # 5\. 访问http://localhost:9527,是否可正常访问 + +## 部署线上 + +后端部署: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry.git + git clone https://gitee.com/yllan/ferry.git + + # 2\. 进入工作路径 + cd ferry + + # 3\. 交叉编译(centos) + env GOOS=linux GOARCH=amd64 go build + 更多交叉编译内容,请访问 https://www.fdevops.com/2020/03/08/go-locale-configuration + + # 4\. config目录上传到项目根路径下,并确认配置信息是否正确 + vim config/settings.yml + 1). 修改为自己的数据库信息 + 2). 修改为自己的邮件服务器地址 + 其他的根据情况来修改调整 + + # 4\. 创建日志路径及静态文件经历 + mkdir -p log static/uploadfile static/scripts static/template + + # 5\. 将本地项目下static/template目录下的所有文件上传的到,服务器对应的项目目录下static/template + + # 6\. 连接数据库,并创建数据库 + create database ferry charset 'utf8mb4'; + + # 7\. 初始化数据 + ./ferry init -c=config/settings.yml + + # 8\. 启动程序,推荐通过"进程管理工具"进行启动维护 + nohup ./ferry server -c=config/settings.yml > /dev/null 2>&1 & + +前端部署: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry_web.git + git clone https://gitee.com/yllan/ferry_web.git + + # 2\. 进入工作路径 + cd ferry_web + + # 3\. 安装依赖 + npm config set registry https://registry.npm.taobao.org + npm install + # 若npm install安装失败,可尝试使用一下命令安装 + npm install --unsafe-perm + + # 推荐使用cnpm + npm install -g cnpm --registry=https://registry.npm.taobao.org + cnpm install + + # 4\. 修改 .env.production 文件 + # base api + VUE_APP_BASE_API = 'http://fdevops.com:8001' # 修改为您自己的域名 + + # 5\. 编译 + npm run build:prod + + # 6\. 将dist目录上传至项目路径下即可。 + mv dist web + + # 7\. nginx配置,根据业务自行调整即可 + server { + listen 8001; # 监听端口 + server_name localhost; # 域名可以有多个,用空格隔开 + + #charset koi8-r; + + #access_log logs/host.access.log main; + location / { + root /data/ferry/web; + index index.html index.htm; #目录内的默认打开文件,如果没有匹配到index.html,则搜索index.htm,依次类推 + } + + #ssl配置省略 + location /api { + # rewrite ^.+api/?(.*)$ /$1 break; + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 登陆 + location /login { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + # 刷新token + location /refresh_token { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + # 接口地址 + location /swagger { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + # 后端静态文件路径 + location /static/uploadfile { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + #error_page 404 /404.html; #对错误页面404.html 做了定向配置 + + # redirect server error pages to the static page /50x.html + #将服务器错误页面重定向到静态页面/50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root html; + } + } diff --git a/document/introduction.md b/document/introduction.md new file mode 100644 index 0000000..2c7df56 --- /dev/null +++ b/document/introduction.md @@ -0,0 +1,55 @@ +# 简介 + +本系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 + +致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。 + +演示Demo: [http://fdevops.com:8001/](http://fdevops.com:8001/) + +账号密码:admin/123456 + +Github: [https://github.com/lanyulei/ferry](https://github.com/lanyulei/ferry) + +Gitee: [https://gitee.com/yllan/ferry](https://gitee.com/yllan/ferry) + +文档:[https://www.fdevops.com/docs/ferry-tutorial-document/introduction](https://www.fdevops.com/docs/ferry-tutorial-document/introduction) + +演示Demo上,将删除的功能全部隐藏了,因为之前发生过,有人恶意删除所有可删除的数据,包括流程数据和用户数据,因此,clone下来的代码是有删除之类的动作的。 + +## 功能 + +下面对本系统的功能做一个简单介绍。 + +工单系统相关功能: + +* 工单提交申请 +* 工单统计 +* 多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单) +* 自定义流程 +* 自定义模版 +* 任务钩子 +* 任务管理 +* 催办 +* 转交 +* 手动结单 +* 加签 +* 多维度处理人,包括(个人,变量(创建者、创建者负责人)) +* 排他网关,即根据条件判断进行工单跳转 +* 并行网关,即多个节点同时进行审批处理 +* 通知提醒(目前仅支持邮件) +* 流程分类管理 + +权限管理相关功能,使用casbin实现接口权限控制: + +* 用户、角色、岗位的增删查改,批量删除,多条件搜索 +* 角色、岗位数据导出Excel +* 重置用户密码 +* 维护个人信息,上传管理头像,修改当前账户密码 +* 部门的增删查改 +* 菜单目录、跳转、按钮及API接口的增删查改 +* 登陆日志管理 +* 左菜单权限控制 +* 页面按钮权限控制 +* API接口权限控制 + +目前大致上就是以上功能了,如果您觉得我有拉下的功能,还请留言提醒我,感谢。 diff --git a/document/new_process.md b/document/new_process.md new file mode 100644 index 0000000..1aa2d4d --- /dev/null +++ b/document/new_process.md @@ -0,0 +1,25 @@ +# 创建一个新流程 + +## 流程分类 + +为区分不同功能,不同类型的流程,因此加入分类的概念,方便管理和维护不同功能的流程。 + +分类创建较为简单,不在过多赘述。 + +## 创建模版 + +根据实际情况,填写下面的数据。 + +## 创建流程 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-7.png) + +## 创建任务 + +根据实际情况创建Python或者Shell的脚本任务,这个步骤相对简单,不在过多赘述。 + +## 申请新创建的流程 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-8.png) + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-9.png) diff --git a/document/parallel_gateway.md b/document/parallel_gateway.md new file mode 100644 index 0000000..22cd246 --- /dev/null +++ b/document/parallel_gateway.md @@ -0,0 +1,7 @@ +# 并行网关 + +在日常的工作中,可能会有需要多个处理人并行进行处理,只有所有的处理人都完成处理才可以跳转到下一个阶段。基于这种情况的出现,因此有了并行网关的概念。 + +在这种并行处理的情况下,处理的顺序无所谓,但是需要全部处理完成。才能进入下一个阶段,同时并行网关的情况下,会无视条件判断。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) diff --git a/document/system_manager.md b/document/system_manager.md new file mode 100644 index 0000000..1b7a712 --- /dev/null +++ b/document/system_manager.md @@ -0,0 +1,31 @@ +# 系统管理 + +本文主要是介绍以下非增删改查的功能。 + +## 角色管理 + +对角色的增删查改、权限的管控、批量删除、导出功能。 + +## 菜单管理 + +菜单的增删查改。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) + +* 上级菜单:菜单或者按钮的父亲。 +* 菜单标题:就是菜单的名字。 +* 显示顺序:菜单展示时候的顺序。 +* 菜单类型:啥功能的菜单。 + * 目录:对菜单进行区分维护。 + * 菜单:可跳转对对应的页面。 + * 按钮:页面上对应的按钮操作。 + * 接口:后端对应的API地址。 +* 菜单图标:左菜单栏展示需要展示的图标。 +* 路由名称:Vue路由设置的名称。 +* 组件路径:前端程序View对应下文件路径,包括文件名称。 +* 是否外链:是否是外部链接。 +* 路由地址:可访问的url地址。 +* 权限标识:权限控制需要的标识。 +* 菜单状态:显示或者隐藏菜单项。 + +此外需要注意的是,每个后端需要跟前端交互的接口,都需要写入到菜单中的接口权限中。 diff --git a/document/urge.md b/document/urge.md new file mode 100644 index 0000000..7c1c18f --- /dev/null +++ b/document/urge.md @@ -0,0 +1,5 @@ +# 催办 + +通过邮件的方式,来对当前处理人进行工单催促,十分钟内只能催促一次。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-10.png) From edc8a11af8c7a30a9c6d3a505bfe7d5575834210 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 3 Sep 2020 13:18:50 +0800 Subject: [PATCH 06/88] fix bug. --- document/_config.yml | 1 - document/countersign.md | 5 - document/cross_compile.md | 29 ----- document/end_process.md | 5 - document/exclusive_gateway.md | 17 --- document/forward.md | 5 - document/ide_development.md | 59 --------- document/index.md | 15 --- document/install.md | 226 ---------------------------------- document/introduction.md | 55 --------- document/new_process.md | 25 ---- document/parallel_gateway.md | 7 -- document/system_manager.md | 31 ----- document/urge.md | 5 - 14 files changed, 485 deletions(-) delete mode 100644 document/_config.yml delete mode 100644 document/countersign.md delete mode 100644 document/cross_compile.md delete mode 100644 document/end_process.md delete mode 100644 document/exclusive_gateway.md delete mode 100644 document/forward.md delete mode 100644 document/ide_development.md delete mode 100644 document/index.md delete mode 100644 document/install.md delete mode 100644 document/introduction.md delete mode 100644 document/new_process.md delete mode 100644 document/parallel_gateway.md delete mode 100644 document/system_manager.md delete mode 100644 document/urge.md diff --git a/document/_config.yml b/document/_config.yml deleted file mode 100644 index c419263..0000000 --- a/document/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-cayman \ No newline at end of file diff --git a/document/countersign.md b/document/countersign.md deleted file mode 100644 index 8217a29..0000000 --- a/document/countersign.md +++ /dev/null @@ -1,5 +0,0 @@ -# 会签 - -当在一个阶段出现多个处理人的时候,同时也需要多个处理人都处理完成,才可以进入下一个阶段的时候,则需要选择上会签的功能。 - -也就说,如果选择了会签,则需要当前阶段的所有人处理完成,才能进入下一个阶段。 diff --git a/document/cross_compile.md b/document/cross_compile.md deleted file mode 100644 index bd17633..0000000 --- a/document/cross_compile.md +++ /dev/null @@ -1,29 +0,0 @@ -# Mac、Linux、Windows下分别进行交叉编译 - -Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序。 - -Mac 下编译 Linux 和 Windows 64位可执行程序 - - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go - -Linux 下编译 Mac 和 Windows 64位可执行程序 - - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go - -Windows 下编译 Mac 和 Linux 64位可执行程序 - - SET CGO_ENABLED=0 - SET GOOS=darwin - SET GOARCH=amd64 - go build main.go - ------------------------------------------------- - SET CGO_ENABLED=0 - SET GOOS=linux - SET GOARCH=amd64 - go build main.go - -GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)。 -GOARCH:目标平台的体系架构(386、amd64、arm)。 -CGO_ENABLED:交叉编译不支持 CGO 所以要禁用它。 diff --git a/document/end_process.md b/document/end_process.md deleted file mode 100644 index c855bcd..0000000 --- a/document/end_process.md +++ /dev/null @@ -1,5 +0,0 @@ -# 结单 - -当发现提交的工单有误,可以根据实际情况,直接结束工单。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-12.png) diff --git a/document/exclusive_gateway.md b/document/exclusive_gateway.md deleted file mode 100644 index e465418..0000000 --- a/document/exclusive_gateway.md +++ /dev/null @@ -1,17 +0,0 @@ -# 排他网关 - -在平时的业务中,有的时候需要根据表单数据的值来判断跳转到啥位置。 - -例如:如果申请的服务器价格低于1000元就是部门领导审批,如果超过1000元,那么就是CTO审批。为兼容这种情况因此加入了排他网关的概念。 - -此外还需注意,如果使用了排他网关,则必须有一个条件判断是正确的,否则流程将无法进行下去,报错失败。 - -将下面的Json格式数据,修改为自己的表单数据,写入到对应的流转线条中即可,但是流转线条的源阶段必须要排他网关的图标。 - - [ - { - "key":"字段名称", - "sign":"==", - "value":"需要判断的值" - } - ] diff --git a/document/forward.md b/document/forward.md deleted file mode 100644 index 1fcbc35..0000000 --- a/document/forward.md +++ /dev/null @@ -1,5 +0,0 @@ -# 转交 - -进行工单转交,只能在当前阶段将工单转交给他人。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-11.png) diff --git a/document/ide_development.md b/document/ide_development.md deleted file mode 100644 index c92a7cc..0000000 --- a/document/ide_development.md +++ /dev/null @@ -1,59 +0,0 @@ -# IDE开发 - -众多 IDE 里边,推荐使用 `goland IDE`进行调试 - -首先我们启动 `Goland` , 点击 `Open Project`,下图红框圈选部分; - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image.png) - -选择 ferry 存放的路径,找到并打开; - -# 配置 GOPORXY - -然后选择`Goland` > `Preferences` ; - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-1.png) - -# 添加运行或调试配置 - -### 添加 init 配置 - -1\. 打开`Edit Configurations` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-2.png) - -2\. 选择 `+` > `go build` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-3.png) - -3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为 `init -c=config/settings.dev.yml`,完成之后点击保存 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-4.png) - -4\. 修改数据库 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-5.png) - -5\. 初使化 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-6.png) - -### 添加 server 配置 - -1\. 打开`Edit Configurations` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-7.png) - -2\. 选择 `+` > `go build` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-8.png) - -3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为`server -c=config/settings.dev.yml`,完成之后点击保存 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-9.png) - -4\. 启动 debug - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-10.png) - -转载自:[http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE](http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE) diff --git a/document/index.md b/document/index.md deleted file mode 100644 index c866a94..0000000 --- a/document/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# 目录 - -* [介绍](https://lanyulei.github.io/ferry_docs/introduction "介绍") -* [安装](https://lanyulei.github.io/ferry_docs/install "安装") -* [IDE 开发](https://lanyulei.github.io/ferry_docs/ide_development "IDE 开发") -* [系统管理](https://lanyulei.github.io/ferry_docs/system_manager "系统管理") -* 工单系统 -* * [创建一个新流程](https://lanyulei.github.io/ferry_docs/new_process "创建一个新流程") -* * [催办](https://lanyulei.github.io/ferry_docs/urge "催办") -* * [转交](https://lanyulei.github.io/ferry_docs/forward "转交") -* * [结单](https://lanyulei.github.io/ferry_docs/end_process "结单") -* * [排他网关](https://lanyulei.github.io/ferry_docs/exclusive_gateway "排他网关") -* * [并行网关](https://lanyulei.github.io/ferry_docs/parallel_gateway "并行网关") -* * [会签](https://lanyulei.github.io/ferry_docs/countersign "会签") -* [Mac、Linux、Windows下分别进行交叉编译](https://lanyulei.github.io/ferry_docs/cross_compile "Mac、Linux、Windows下分别进行交叉编译") diff --git a/document/install.md b/document/install.md deleted file mode 100644 index 7313946..0000000 --- a/document/install.md +++ /dev/null @@ -1,226 +0,0 @@ -# 安装 - -> 需注意因使用到了json类型的字段,因此MySQL需是5.7以上的版本。 -> -> MySQL > 5.7 -> -> Go >= 1.14 -> -> Redis - -若是安装出错,请先确认redis及MySQL是否安装配置成功,若是还有问题,可在群内提问。 - -## 配置文件介绍 - - script: - path: ./static/scripts # 任务脚本路径 - settings: - application: - domain: localhost:8002 # 用于将HTTP请求重定向到HTTPS的主机名 - host: 0.0.0.0 # 启动的地址,主机ip 或者域名,默认0.0.0.0 - ishttps: false # 是否为HTTPS - mode: dev # 开发模式 - name: ferry-test # 服务名称 - port: "8002" # 启动端口 - readtimeout: 1 # 请求读取超时时间,从连接被接受(accept)到request body完全被读取(如果你不读取body,那么时间截止到读完header为止) - writertimeout: 2 # 从request header的读取结束开始,到response write结束为止(也就是ServeHTTP 方法的声明周期) - database: - dbtype: mysql # 数据库类型 - host: 127.0.0.1 # 数据库地址 - name: ferry # 数据库名称 - password: 123456 # 数据库密码 - port: 3306 # 数据库端口 - username: ferry # 数据库用户名 - email: - alias: ferry # 邮箱别名 - host: smtp.163.com # 邮件服务器 - pass: your password # 邮箱密码 - port: 465 # 邮件服务器端口 - user: fdevops@163.com # 邮箱账号 - gorm: - logmode: 0 # gorm详细日志输出,0表示不输出,1表示输出 - maxidleconn: 0 # 最大空闲连接 - maxopenconn: 20000 # 最大连接数据 - jwt: - secret: ferry # JWT加密字符串 - timeout: 3600 # 过期时间单位:秒 - log: - dir: logs # 日志路径 - operdb: false - ssl: - key: keystring - pem: temp/pem.pem - -## 本地开发 - -后端程序启动: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry.git - git clone https://gitee.com/yllan/ferry.git - - # 2\. 进入工作路径 - cd ferry - - # 3\. 修改配置 - vim config/settings.dev.yml - 1). 修改为自己的数据库信息 - 2). 修改为自己的邮件服务器地址 - 其他的根据情况来修改调整 - - # 4\. 安装依赖 - go get - - # 5\. 连接数据库,并创建数据库 - create database ferry charset 'utf8mb4'; - - # 6\. 初始化数据结构 - go run main.go init -c=config/settings.dev.yml - - # 7\. 测试启动程序,没有报错及没有问题 - go run main.go server -c=config/settings.dev.yml - - # 8\. 热加载方式启动 - air - -前端程序启动: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry_web.git - git clone https://gitee.com/yllan/ferry_web.git - - # 2\. 进入工作路径 - cd ferry_web - - # 3\. 安装依赖 - npm config set registry https://registry.npm.taobao.org - npm install - # 若npm install安装失败,可尝试使用一下命令安装 - npm install --unsafe-perm - - # 推荐使用cnpm - npm install -g cnpm --registry=https://registry.npm.taobao.org - cnpm install - - # 4\. 启动程序 - npm run dev - - # 5\. 访问http://localhost:9527,是否可正常访问 - -## 部署线上 - -后端部署: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry.git - git clone https://gitee.com/yllan/ferry.git - - # 2\. 进入工作路径 - cd ferry - - # 3\. 交叉编译(centos) - env GOOS=linux GOARCH=amd64 go build - 更多交叉编译内容,请访问 https://www.fdevops.com/2020/03/08/go-locale-configuration - - # 4\. config目录上传到项目根路径下,并确认配置信息是否正确 - vim config/settings.yml - 1). 修改为自己的数据库信息 - 2). 修改为自己的邮件服务器地址 - 其他的根据情况来修改调整 - - # 4\. 创建日志路径及静态文件经历 - mkdir -p log static/uploadfile static/scripts static/template - - # 5\. 将本地项目下static/template目录下的所有文件上传的到,服务器对应的项目目录下static/template - - # 6\. 连接数据库,并创建数据库 - create database ferry charset 'utf8mb4'; - - # 7\. 初始化数据 - ./ferry init -c=config/settings.yml - - # 8\. 启动程序,推荐通过"进程管理工具"进行启动维护 - nohup ./ferry server -c=config/settings.yml > /dev/null 2>&1 & - -前端部署: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry_web.git - git clone https://gitee.com/yllan/ferry_web.git - - # 2\. 进入工作路径 - cd ferry_web - - # 3\. 安装依赖 - npm config set registry https://registry.npm.taobao.org - npm install - # 若npm install安装失败,可尝试使用一下命令安装 - npm install --unsafe-perm - - # 推荐使用cnpm - npm install -g cnpm --registry=https://registry.npm.taobao.org - cnpm install - - # 4\. 修改 .env.production 文件 - # base api - VUE_APP_BASE_API = 'http://fdevops.com:8001' # 修改为您自己的域名 - - # 5\. 编译 - npm run build:prod - - # 6\. 将dist目录上传至项目路径下即可。 - mv dist web - - # 7\. nginx配置,根据业务自行调整即可 - server { - listen 8001; # 监听端口 - server_name localhost; # 域名可以有多个,用空格隔开 - - #charset koi8-r; - - #access_log logs/host.access.log main; - location / { - root /data/ferry/web; - index index.html index.htm; #目录内的默认打开文件,如果没有匹配到index.html,则搜索index.htm,依次类推 - } - - #ssl配置省略 - location /api { - # rewrite ^.+api/?(.*)$ /$1 break; - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - proxy_redirect off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - # 登陆 - location /login { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - # 刷新token - location /refresh_token { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - # 接口地址 - location /swagger { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - # 后端静态文件路径 - location /static/uploadfile { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - #error_page 404 /404.html; #对错误页面404.html 做了定向配置 - - # redirect server error pages to the static page /50x.html - #将服务器错误页面重定向到静态页面/50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root html; - } - } diff --git a/document/introduction.md b/document/introduction.md deleted file mode 100644 index 2c7df56..0000000 --- a/document/introduction.md +++ /dev/null @@ -1,55 +0,0 @@ -# 简介 - -本系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 - -致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。 - -演示Demo: [http://fdevops.com:8001/](http://fdevops.com:8001/) - -账号密码:admin/123456 - -Github: [https://github.com/lanyulei/ferry](https://github.com/lanyulei/ferry) - -Gitee: [https://gitee.com/yllan/ferry](https://gitee.com/yllan/ferry) - -文档:[https://www.fdevops.com/docs/ferry-tutorial-document/introduction](https://www.fdevops.com/docs/ferry-tutorial-document/introduction) - -演示Demo上,将删除的功能全部隐藏了,因为之前发生过,有人恶意删除所有可删除的数据,包括流程数据和用户数据,因此,clone下来的代码是有删除之类的动作的。 - -## 功能 - -下面对本系统的功能做一个简单介绍。 - -工单系统相关功能: - -* 工单提交申请 -* 工单统计 -* 多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单) -* 自定义流程 -* 自定义模版 -* 任务钩子 -* 任务管理 -* 催办 -* 转交 -* 手动结单 -* 加签 -* 多维度处理人,包括(个人,变量(创建者、创建者负责人)) -* 排他网关,即根据条件判断进行工单跳转 -* 并行网关,即多个节点同时进行审批处理 -* 通知提醒(目前仅支持邮件) -* 流程分类管理 - -权限管理相关功能,使用casbin实现接口权限控制: - -* 用户、角色、岗位的增删查改,批量删除,多条件搜索 -* 角色、岗位数据导出Excel -* 重置用户密码 -* 维护个人信息,上传管理头像,修改当前账户密码 -* 部门的增删查改 -* 菜单目录、跳转、按钮及API接口的增删查改 -* 登陆日志管理 -* 左菜单权限控制 -* 页面按钮权限控制 -* API接口权限控制 - -目前大致上就是以上功能了,如果您觉得我有拉下的功能,还请留言提醒我,感谢。 diff --git a/document/new_process.md b/document/new_process.md deleted file mode 100644 index 1aa2d4d..0000000 --- a/document/new_process.md +++ /dev/null @@ -1,25 +0,0 @@ -# 创建一个新流程 - -## 流程分类 - -为区分不同功能,不同类型的流程,因此加入分类的概念,方便管理和维护不同功能的流程。 - -分类创建较为简单,不在过多赘述。 - -## 创建模版 - -根据实际情况,填写下面的数据。 - -## 创建流程 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-7.png) - -## 创建任务 - -根据实际情况创建Python或者Shell的脚本任务,这个步骤相对简单,不在过多赘述。 - -## 申请新创建的流程 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-8.png) - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-9.png) diff --git a/document/parallel_gateway.md b/document/parallel_gateway.md deleted file mode 100644 index 22cd246..0000000 --- a/document/parallel_gateway.md +++ /dev/null @@ -1,7 +0,0 @@ -# 并行网关 - -在日常的工作中,可能会有需要多个处理人并行进行处理,只有所有的处理人都完成处理才可以跳转到下一个阶段。基于这种情况的出现,因此有了并行网关的概念。 - -在这种并行处理的情况下,处理的顺序无所谓,但是需要全部处理完成。才能进入下一个阶段,同时并行网关的情况下,会无视条件判断。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) diff --git a/document/system_manager.md b/document/system_manager.md deleted file mode 100644 index 1b7a712..0000000 --- a/document/system_manager.md +++ /dev/null @@ -1,31 +0,0 @@ -# 系统管理 - -本文主要是介绍以下非增删改查的功能。 - -## 角色管理 - -对角色的增删查改、权限的管控、批量删除、导出功能。 - -## 菜单管理 - -菜单的增删查改。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) - -* 上级菜单:菜单或者按钮的父亲。 -* 菜单标题:就是菜单的名字。 -* 显示顺序:菜单展示时候的顺序。 -* 菜单类型:啥功能的菜单。 - * 目录:对菜单进行区分维护。 - * 菜单:可跳转对对应的页面。 - * 按钮:页面上对应的按钮操作。 - * 接口:后端对应的API地址。 -* 菜单图标:左菜单栏展示需要展示的图标。 -* 路由名称:Vue路由设置的名称。 -* 组件路径:前端程序View对应下文件路径,包括文件名称。 -* 是否外链:是否是外部链接。 -* 路由地址:可访问的url地址。 -* 权限标识:权限控制需要的标识。 -* 菜单状态:显示或者隐藏菜单项。 - -此外需要注意的是,每个后端需要跟前端交互的接口,都需要写入到菜单中的接口权限中。 diff --git a/document/urge.md b/document/urge.md deleted file mode 100644 index 7c1c18f..0000000 --- a/document/urge.md +++ /dev/null @@ -1,5 +0,0 @@ -# 催办 - -通过邮件的方式,来对当前处理人进行工单催促,十分钟内只能催促一次。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-10.png) From 3edfd6e5dcde80e7ceaa2b08979bbcf3f6b86a24 Mon Sep 17 00:00:00 2001 From: lanyulei Date: Thu, 3 Sep 2020 13:19:24 +0800 Subject: [PATCH 07/88] Create index.md --- document/index.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 document/index.md diff --git a/document/index.md b/document/index.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/document/index.md @@ -0,0 +1 @@ + From 4c2ae3c4ec2e813dbeb54fbbfaeff31f55a0afc9 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 3 Sep 2020 13:33:20 +0800 Subject: [PATCH 08/88] fix bug. --- document/index.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 document/index.md diff --git a/document/index.md b/document/index.md deleted file mode 100644 index 8b13789..0000000 --- a/document/index.md +++ /dev/null @@ -1 +0,0 @@ - From e1f1519b1f0894e4d924ee8b0ee9d6dddc9faa63 Mon Sep 17 00:00:00 2001 From: lanyulei Date: Thu, 3 Sep 2020 13:34:47 +0800 Subject: [PATCH 09/88] Set theme jekyll-theme-cayman --- docs/_config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_config.yml diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..c419263 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file From 79a0193a098e2762058534c826b8589ca384c446 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 3 Sep 2020 13:37:28 +0800 Subject: [PATCH 10/88] =?UTF-8?q?github=20=E6=89=98=E7=AE=A1=E6=95=99?= =?UTF-8?q?=E7=A8=8B=E6=96=87=E6=A1=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/document/countersign.md | 5 + docs/document/cross_compile.md | 29 ++++ docs/document/end_process.md | 5 + docs/document/exclusive_gateway.md | 17 +++ docs/document/forward.md | 5 + docs/document/ide_development.md | 59 ++++++++ docs/document/install.md | 226 +++++++++++++++++++++++++++++ docs/document/introduction.md | 55 +++++++ docs/document/new_process.md | 25 ++++ docs/document/parallel_gateway.md | 7 + docs/document/system_manager.md | 31 ++++ docs/document/urge.md | 5 + docs/index.md | 15 ++ 13 files changed, 484 insertions(+) create mode 100644 docs/document/countersign.md create mode 100644 docs/document/cross_compile.md create mode 100644 docs/document/end_process.md create mode 100644 docs/document/exclusive_gateway.md create mode 100644 docs/document/forward.md create mode 100644 docs/document/ide_development.md create mode 100644 docs/document/install.md create mode 100644 docs/document/introduction.md create mode 100644 docs/document/new_process.md create mode 100644 docs/document/parallel_gateway.md create mode 100644 docs/document/system_manager.md create mode 100644 docs/document/urge.md create mode 100644 docs/index.md diff --git a/docs/document/countersign.md b/docs/document/countersign.md new file mode 100644 index 0000000..8217a29 --- /dev/null +++ b/docs/document/countersign.md @@ -0,0 +1,5 @@ +# 会签 + +当在一个阶段出现多个处理人的时候,同时也需要多个处理人都处理完成,才可以进入下一个阶段的时候,则需要选择上会签的功能。 + +也就说,如果选择了会签,则需要当前阶段的所有人处理完成,才能进入下一个阶段。 diff --git a/docs/document/cross_compile.md b/docs/document/cross_compile.md new file mode 100644 index 0000000..bd17633 --- /dev/null +++ b/docs/document/cross_compile.md @@ -0,0 +1,29 @@ +# Mac、Linux、Windows下分别进行交叉编译 + +Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序。 + +Mac 下编译 Linux 和 Windows 64位可执行程序 + + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go + +Linux 下编译 Mac 和 Windows 64位可执行程序 + + CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go + +Windows 下编译 Mac 和 Linux 64位可执行程序 + + SET CGO_ENABLED=0 + SET GOOS=darwin + SET GOARCH=amd64 + go build main.go + ------------------------------------------------- + SET CGO_ENABLED=0 + SET GOOS=linux + SET GOARCH=amd64 + go build main.go + +GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)。 +GOARCH:目标平台的体系架构(386、amd64、arm)。 +CGO_ENABLED:交叉编译不支持 CGO 所以要禁用它。 diff --git a/docs/document/end_process.md b/docs/document/end_process.md new file mode 100644 index 0000000..c855bcd --- /dev/null +++ b/docs/document/end_process.md @@ -0,0 +1,5 @@ +# 结单 + +当发现提交的工单有误,可以根据实际情况,直接结束工单。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-12.png) diff --git a/docs/document/exclusive_gateway.md b/docs/document/exclusive_gateway.md new file mode 100644 index 0000000..e465418 --- /dev/null +++ b/docs/document/exclusive_gateway.md @@ -0,0 +1,17 @@ +# 排他网关 + +在平时的业务中,有的时候需要根据表单数据的值来判断跳转到啥位置。 + +例如:如果申请的服务器价格低于1000元就是部门领导审批,如果超过1000元,那么就是CTO审批。为兼容这种情况因此加入了排他网关的概念。 + +此外还需注意,如果使用了排他网关,则必须有一个条件判断是正确的,否则流程将无法进行下去,报错失败。 + +将下面的Json格式数据,修改为自己的表单数据,写入到对应的流转线条中即可,但是流转线条的源阶段必须要排他网关的图标。 + + [ + { + "key":"字段名称", + "sign":"==", + "value":"需要判断的值" + } + ] diff --git a/docs/document/forward.md b/docs/document/forward.md new file mode 100644 index 0000000..1fcbc35 --- /dev/null +++ b/docs/document/forward.md @@ -0,0 +1,5 @@ +# 转交 + +进行工单转交,只能在当前阶段将工单转交给他人。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-11.png) diff --git a/docs/document/ide_development.md b/docs/document/ide_development.md new file mode 100644 index 0000000..c92a7cc --- /dev/null +++ b/docs/document/ide_development.md @@ -0,0 +1,59 @@ +# IDE开发 + +众多 IDE 里边,推荐使用 `goland IDE`进行调试 + +首先我们启动 `Goland` , 点击 `Open Project`,下图红框圈选部分; + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image.png) + +选择 ferry 存放的路径,找到并打开; + +# 配置 GOPORXY + +然后选择`Goland` > `Preferences` ; + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-1.png) + +# 添加运行或调试配置 + +### 添加 init 配置 + +1\. 打开`Edit Configurations` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-2.png) + +2\. 选择 `+` > `go build` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-3.png) + +3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为 `init -c=config/settings.dev.yml`,完成之后点击保存 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-4.png) + +4\. 修改数据库 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-5.png) + +5\. 初使化 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-6.png) + +### 添加 server 配置 + +1\. 打开`Edit Configurations` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-7.png) + +2\. 选择 `+` > `go build` + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-8.png) + +3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为`server -c=config/settings.dev.yml`,完成之后点击保存 + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-9.png) + +4\. 启动 debug + +![](https://www.fdevops.com/wp-content/uploads/2020/08/image-10.png) + +转载自:[http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE](http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE) diff --git a/docs/document/install.md b/docs/document/install.md new file mode 100644 index 0000000..7313946 --- /dev/null +++ b/docs/document/install.md @@ -0,0 +1,226 @@ +# 安装 + +> 需注意因使用到了json类型的字段,因此MySQL需是5.7以上的版本。 +> +> MySQL > 5.7 +> +> Go >= 1.14 +> +> Redis + +若是安装出错,请先确认redis及MySQL是否安装配置成功,若是还有问题,可在群内提问。 + +## 配置文件介绍 + + script: + path: ./static/scripts # 任务脚本路径 + settings: + application: + domain: localhost:8002 # 用于将HTTP请求重定向到HTTPS的主机名 + host: 0.0.0.0 # 启动的地址,主机ip 或者域名,默认0.0.0.0 + ishttps: false # 是否为HTTPS + mode: dev # 开发模式 + name: ferry-test # 服务名称 + port: "8002" # 启动端口 + readtimeout: 1 # 请求读取超时时间,从连接被接受(accept)到request body完全被读取(如果你不读取body,那么时间截止到读完header为止) + writertimeout: 2 # 从request header的读取结束开始,到response write结束为止(也就是ServeHTTP 方法的声明周期) + database: + dbtype: mysql # 数据库类型 + host: 127.0.0.1 # 数据库地址 + name: ferry # 数据库名称 + password: 123456 # 数据库密码 + port: 3306 # 数据库端口 + username: ferry # 数据库用户名 + email: + alias: ferry # 邮箱别名 + host: smtp.163.com # 邮件服务器 + pass: your password # 邮箱密码 + port: 465 # 邮件服务器端口 + user: fdevops@163.com # 邮箱账号 + gorm: + logmode: 0 # gorm详细日志输出,0表示不输出,1表示输出 + maxidleconn: 0 # 最大空闲连接 + maxopenconn: 20000 # 最大连接数据 + jwt: + secret: ferry # JWT加密字符串 + timeout: 3600 # 过期时间单位:秒 + log: + dir: logs # 日志路径 + operdb: false + ssl: + key: keystring + pem: temp/pem.pem + +## 本地开发 + +后端程序启动: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry.git + git clone https://gitee.com/yllan/ferry.git + + # 2\. 进入工作路径 + cd ferry + + # 3\. 修改配置 + vim config/settings.dev.yml + 1). 修改为自己的数据库信息 + 2). 修改为自己的邮件服务器地址 + 其他的根据情况来修改调整 + + # 4\. 安装依赖 + go get + + # 5\. 连接数据库,并创建数据库 + create database ferry charset 'utf8mb4'; + + # 6\. 初始化数据结构 + go run main.go init -c=config/settings.dev.yml + + # 7\. 测试启动程序,没有报错及没有问题 + go run main.go server -c=config/settings.dev.yml + + # 8\. 热加载方式启动 + air + +前端程序启动: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry_web.git + git clone https://gitee.com/yllan/ferry_web.git + + # 2\. 进入工作路径 + cd ferry_web + + # 3\. 安装依赖 + npm config set registry https://registry.npm.taobao.org + npm install + # 若npm install安装失败,可尝试使用一下命令安装 + npm install --unsafe-perm + + # 推荐使用cnpm + npm install -g cnpm --registry=https://registry.npm.taobao.org + cnpm install + + # 4\. 启动程序 + npm run dev + + # 5\. 访问http://localhost:9527,是否可正常访问 + +## 部署线上 + +后端部署: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry.git + git clone https://gitee.com/yllan/ferry.git + + # 2\. 进入工作路径 + cd ferry + + # 3\. 交叉编译(centos) + env GOOS=linux GOARCH=amd64 go build + 更多交叉编译内容,请访问 https://www.fdevops.com/2020/03/08/go-locale-configuration + + # 4\. config目录上传到项目根路径下,并确认配置信息是否正确 + vim config/settings.yml + 1). 修改为自己的数据库信息 + 2). 修改为自己的邮件服务器地址 + 其他的根据情况来修改调整 + + # 4\. 创建日志路径及静态文件经历 + mkdir -p log static/uploadfile static/scripts static/template + + # 5\. 将本地项目下static/template目录下的所有文件上传的到,服务器对应的项目目录下static/template + + # 6\. 连接数据库,并创建数据库 + create database ferry charset 'utf8mb4'; + + # 7\. 初始化数据 + ./ferry init -c=config/settings.yml + + # 8\. 启动程序,推荐通过"进程管理工具"进行启动维护 + nohup ./ferry server -c=config/settings.yml > /dev/null 2>&1 & + +前端部署: + + # 1\. 拉取代码,以下命令二选一即可: + git clone https://github.com/lanyulei/ferry_web.git + git clone https://gitee.com/yllan/ferry_web.git + + # 2\. 进入工作路径 + cd ferry_web + + # 3\. 安装依赖 + npm config set registry https://registry.npm.taobao.org + npm install + # 若npm install安装失败,可尝试使用一下命令安装 + npm install --unsafe-perm + + # 推荐使用cnpm + npm install -g cnpm --registry=https://registry.npm.taobao.org + cnpm install + + # 4\. 修改 .env.production 文件 + # base api + VUE_APP_BASE_API = 'http://fdevops.com:8001' # 修改为您自己的域名 + + # 5\. 编译 + npm run build:prod + + # 6\. 将dist目录上传至项目路径下即可。 + mv dist web + + # 7\. nginx配置,根据业务自行调整即可 + server { + listen 8001; # 监听端口 + server_name localhost; # 域名可以有多个,用空格隔开 + + #charset koi8-r; + + #access_log logs/host.access.log main; + location / { + root /data/ferry/web; + index index.html index.htm; #目录内的默认打开文件,如果没有匹配到index.html,则搜索index.htm,依次类推 + } + + #ssl配置省略 + location /api { + # rewrite ^.+api/?(.*)$ /$1 break; + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 登陆 + location /login { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + # 刷新token + location /refresh_token { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + # 接口地址 + location /swagger { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + # 后端静态文件路径 + location /static/uploadfile { + proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 + } + + #error_page 404 /404.html; #对错误页面404.html 做了定向配置 + + # redirect server error pages to the static page /50x.html + #将服务器错误页面重定向到静态页面/50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root html; + } + } diff --git a/docs/document/introduction.md b/docs/document/introduction.md new file mode 100644 index 0000000..2c7df56 --- /dev/null +++ b/docs/document/introduction.md @@ -0,0 +1,55 @@ +# 简介 + +本系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 + +致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。 + +演示Demo: [http://fdevops.com:8001/](http://fdevops.com:8001/) + +账号密码:admin/123456 + +Github: [https://github.com/lanyulei/ferry](https://github.com/lanyulei/ferry) + +Gitee: [https://gitee.com/yllan/ferry](https://gitee.com/yllan/ferry) + +文档:[https://www.fdevops.com/docs/ferry-tutorial-document/introduction](https://www.fdevops.com/docs/ferry-tutorial-document/introduction) + +演示Demo上,将删除的功能全部隐藏了,因为之前发生过,有人恶意删除所有可删除的数据,包括流程数据和用户数据,因此,clone下来的代码是有删除之类的动作的。 + +## 功能 + +下面对本系统的功能做一个简单介绍。 + +工单系统相关功能: + +* 工单提交申请 +* 工单统计 +* 多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单) +* 自定义流程 +* 自定义模版 +* 任务钩子 +* 任务管理 +* 催办 +* 转交 +* 手动结单 +* 加签 +* 多维度处理人,包括(个人,变量(创建者、创建者负责人)) +* 排他网关,即根据条件判断进行工单跳转 +* 并行网关,即多个节点同时进行审批处理 +* 通知提醒(目前仅支持邮件) +* 流程分类管理 + +权限管理相关功能,使用casbin实现接口权限控制: + +* 用户、角色、岗位的增删查改,批量删除,多条件搜索 +* 角色、岗位数据导出Excel +* 重置用户密码 +* 维护个人信息,上传管理头像,修改当前账户密码 +* 部门的增删查改 +* 菜单目录、跳转、按钮及API接口的增删查改 +* 登陆日志管理 +* 左菜单权限控制 +* 页面按钮权限控制 +* API接口权限控制 + +目前大致上就是以上功能了,如果您觉得我有拉下的功能,还请留言提醒我,感谢。 diff --git a/docs/document/new_process.md b/docs/document/new_process.md new file mode 100644 index 0000000..1aa2d4d --- /dev/null +++ b/docs/document/new_process.md @@ -0,0 +1,25 @@ +# 创建一个新流程 + +## 流程分类 + +为区分不同功能,不同类型的流程,因此加入分类的概念,方便管理和维护不同功能的流程。 + +分类创建较为简单,不在过多赘述。 + +## 创建模版 + +根据实际情况,填写下面的数据。 + +## 创建流程 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-7.png) + +## 创建任务 + +根据实际情况创建Python或者Shell的脚本任务,这个步骤相对简单,不在过多赘述。 + +## 申请新创建的流程 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-8.png) + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-9.png) diff --git a/docs/document/parallel_gateway.md b/docs/document/parallel_gateway.md new file mode 100644 index 0000000..22cd246 --- /dev/null +++ b/docs/document/parallel_gateway.md @@ -0,0 +1,7 @@ +# 并行网关 + +在日常的工作中,可能会有需要多个处理人并行进行处理,只有所有的处理人都完成处理才可以跳转到下一个阶段。基于这种情况的出现,因此有了并行网关的概念。 + +在这种并行处理的情况下,处理的顺序无所谓,但是需要全部处理完成。才能进入下一个阶段,同时并行网关的情况下,会无视条件判断。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) diff --git a/docs/document/system_manager.md b/docs/document/system_manager.md new file mode 100644 index 0000000..1b7a712 --- /dev/null +++ b/docs/document/system_manager.md @@ -0,0 +1,31 @@ +# 系统管理 + +本文主要是介绍以下非增删改查的功能。 + +## 角色管理 + +对角色的增删查改、权限的管控、批量删除、导出功能。 + +## 菜单管理 + +菜单的增删查改。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) + +* 上级菜单:菜单或者按钮的父亲。 +* 菜单标题:就是菜单的名字。 +* 显示顺序:菜单展示时候的顺序。 +* 菜单类型:啥功能的菜单。 + * 目录:对菜单进行区分维护。 + * 菜单:可跳转对对应的页面。 + * 按钮:页面上对应的按钮操作。 + * 接口:后端对应的API地址。 +* 菜单图标:左菜单栏展示需要展示的图标。 +* 路由名称:Vue路由设置的名称。 +* 组件路径:前端程序View对应下文件路径,包括文件名称。 +* 是否外链:是否是外部链接。 +* 路由地址:可访问的url地址。 +* 权限标识:权限控制需要的标识。 +* 菜单状态:显示或者隐藏菜单项。 + +此外需要注意的是,每个后端需要跟前端交互的接口,都需要写入到菜单中的接口权限中。 diff --git a/docs/document/urge.md b/docs/document/urge.md new file mode 100644 index 0000000..7c1c18f --- /dev/null +++ b/docs/document/urge.md @@ -0,0 +1,5 @@ +# 催办 + +通过邮件的方式,来对当前处理人进行工单催促,十分钟内只能催促一次。 + +![](https://www.fdevops.com/wp-content/uploads/2020/07/image-10.png) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..5ceb82d --- /dev/null +++ b/docs/index.md @@ -0,0 +1,15 @@ +# 目录 + +* [介绍](https://lanyulei.github.io/ferry_docs/document/introduction "介绍") +* [安装](https://lanyulei.github.io/ferry_docs/document/install "安装") +* [IDE 开发](https://lanyulei.github.io/ferry_docs/document/ide_development "IDE 开发") +* [系统管理](https://lanyulei.github.io/ferry_docs/document/system_manager "系统管理") +* 工单系统 +* * [创建一个新流程](https://lanyulei.github.io/ferry_docs/document/new_process "创建一个新流程") +* * [催办](https://lanyulei.github.io/ferry_docs/document/urge "催办") +* * [转交](https://lanyulei.github.io/ferry_docs/document/forward "转交") +* * [结单](https://lanyulei.github.io/ferry_docs/document/end_process "结单") +* * [排他网关](https://lanyulei.github.io/ferry_docs/document/exclusive_gateway "排他网关") +* * [并行网关](https://lanyulei.github.io/ferry_docs/document/parallel_gateway "并行网关") +* * [会签](https://lanyulei.github.io/ferry_docs/document/countersign "会签") +* [Mac、Linux、Windows下分别进行交叉编译](https://lanyulei.github.io/ferry_docs/document/cross_compile "Mac、Linux、Windows下分别进行交叉编译") From 8776bc8dcdb189eb47cc5d56790b7415ef81a001 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 3 Sep 2020 13:40:27 +0800 Subject: [PATCH 11/88] fix bug. --- docs/index.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/index.md b/docs/index.md index 5ceb82d..e5124f2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,15 +1,15 @@ # 目录 -* [介绍](https://lanyulei.github.io/ferry_docs/document/introduction "介绍") -* [安装](https://lanyulei.github.io/ferry_docs/document/install "安装") -* [IDE 开发](https://lanyulei.github.io/ferry_docs/document/ide_development "IDE 开发") -* [系统管理](https://lanyulei.github.io/ferry_docs/document/system_manager "系统管理") +* [介绍](https://lanyulei.github.io/ferry/document/introduction "介绍") +* [安装](https://lanyulei.github.io/ferry/document/install "安装") +* [IDE 开发](https://lanyulei.github.io/ferry/document/ide_development "IDE 开发") +* [系统管理](https://lanyulei.github.io/ferry/document/system_manager "系统管理") * 工单系统 -* * [创建一个新流程](https://lanyulei.github.io/ferry_docs/document/new_process "创建一个新流程") -* * [催办](https://lanyulei.github.io/ferry_docs/document/urge "催办") -* * [转交](https://lanyulei.github.io/ferry_docs/document/forward "转交") -* * [结单](https://lanyulei.github.io/ferry_docs/document/end_process "结单") -* * [排他网关](https://lanyulei.github.io/ferry_docs/document/exclusive_gateway "排他网关") -* * [并行网关](https://lanyulei.github.io/ferry_docs/document/parallel_gateway "并行网关") -* * [会签](https://lanyulei.github.io/ferry_docs/document/countersign "会签") -* [Mac、Linux、Windows下分别进行交叉编译](https://lanyulei.github.io/ferry_docs/document/cross_compile "Mac、Linux、Windows下分别进行交叉编译") +* * [创建一个新流程](https://lanyulei.github.io/ferry/document/new_process "创建一个新流程") +* * [催办](https://lanyulei.github.io/ferry/document/urge "催办") +* * [转交](https://lanyulei.github.io/ferry/document/forward "转交") +* * [结单](https://lanyulei.github.io/ferry/document/end_process "结单") +* * [排他网关](https://lanyulei.github.io/ferry/document/exclusive_gateway "排他网关") +* * [并行网关](https://lanyulei.github.io/ferry/document/parallel_gateway "并行网关") +* * [会签](https://lanyulei.github.io/ferry/document/countersign "会签") +* [Mac、Linux、Windows下分别进行交叉编译](https://lanyulei.github.io/ferry/document/cross_compile "Mac、Linux、Windows下分别进行交叉编译") From 592edc3937712a16327d972abc45e7a6aa225a79 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Fri, 4 Sep 2020 17:40:30 +0800 Subject: [PATCH 12/88] update readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 6de9e5b..a9bfffe 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,12 @@ QQ群:1127401830 * everstar_l 10元 * 五色花 20元 +## 鸣谢 + +特别感谢 [JetBrains](https://www.jetbrains.com/?from=mirai) 为本开源项目提供免费的 [IntelliJ IDEA](https://www.jetbrains.com/idea/?from=loonflow) 授权 + +![](https://www.jetbrains.com/?from=ferry) + ## License 开源不易,请尊重作者的付出,感谢。 From 00bbcdeaff6ba50b41ad32aada147be59784e09b Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Fri, 4 Sep 2020 18:09:05 +0800 Subject: [PATCH 13/88] update readme. --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a9bfffe..a18a401 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,11 @@ QQ群:1127401830 特别感谢 [JetBrains](https://www.jetbrains.com/?from=mirai) 为本开源项目提供免费的 [IntelliJ IDEA](https://www.jetbrains.com/idea/?from=loonflow) 授权 -![](https://www.jetbrains.com/?from=ferry) +

+ + + +

## License From 9d03e606299fc014fcb07e5cb3a4900997e6cc33 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Fri, 4 Sep 2020 18:11:13 +0800 Subject: [PATCH 14/88] update readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a18a401..8e54126 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ QQ群:1127401830 ## 鸣谢 -特别感谢 [JetBrains](https://www.jetbrains.com/?from=mirai) 为本开源项目提供免费的 [IntelliJ IDEA](https://www.jetbrains.com/idea/?from=loonflow) 授权 +特别感谢 [JetBrains](https://www.jetbrains.com/?from=ferry) 为本开源项目提供免费的 [IntelliJ GoLand](https://www.jetbrains.com/go/?from=ferry) 授权

From f87931189bdbbdde27fad2eb137fa7af9d58ca1a Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Mon, 7 Sep 2020 14:16:54 +0800 Subject: [PATCH 15/88] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=93=E6=9E=84sql=E6=96=87=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/ferry.sql | 381 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 381 insertions(+) create mode 100644 config/ferry.sql diff --git a/config/ferry.sql b/config/ferry.sql new file mode 100644 index 0000000..bea4a79 --- /dev/null +++ b/config/ferry.sql @@ -0,0 +1,381 @@ +/* + Navicat Premium Data Transfer + + Source Server : localhost + Source Server Type : MySQL + Source Server Version : 50729 + Source Host : localhost:3306 + Source Schema : ferry + + Target Server Type : MySQL + Target Server Version : 50729 + File Encoding : 65001 + + Date: 05/09/2020 16:42:32 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for casbin_rule +-- ---------------------------- +DROP TABLE IF EXISTS `casbin_rule`; +CREATE TABLE `casbin_rule` ( + `p_type` varchar(100) DEFAULT NULL, + `v0` varchar(100) DEFAULT NULL, + `v1` varchar(100) DEFAULT NULL, + `v2` varchar(100) DEFAULT NULL, + `v3` varchar(100) DEFAULT NULL, + `v4` varchar(100) DEFAULT NULL, + `v5` varchar(100) DEFAULT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_casbin_rule_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=794 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_process_classify +-- ---------------------------- +DROP TABLE IF EXISTS `p_process_classify`; +CREATE TABLE `p_process_classify` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `name` varchar(128) DEFAULT NULL, + `creator` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_p_process_classify_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_process_info +-- ---------------------------- +DROP TABLE IF EXISTS `p_process_info`; +CREATE TABLE `p_process_info` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `name` varchar(128) DEFAULT NULL, + `structure` json DEFAULT NULL, + `classify` int(11) DEFAULT NULL, + `tpls` json DEFAULT NULL, + `task` json DEFAULT NULL, + `submit_count` int(11) DEFAULT '0', + `creator` int(11) DEFAULT NULL, + `notice` json DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_p_process_info_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_task_history +-- ---------------------------- +DROP TABLE IF EXISTS `p_task_history`; +CREATE TABLE `p_task_history` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `task` int(11) DEFAULT NULL, + `name` varchar(256) DEFAULT NULL, + `task_type` int(11) DEFAULT NULL, + `execution_time` varchar(128) DEFAULT NULL, + `result` longtext, + PRIMARY KEY (`id`), + KEY `idx_p_task_history_delete_time` (`delete_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_task_info +-- ---------------------------- +DROP TABLE IF EXISTS `p_task_info`; +CREATE TABLE `p_task_info` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `name` varchar(256) DEFAULT NULL, + `task_type` varchar(45) DEFAULT NULL, + `content` longtext, + `creator` int(11) DEFAULT NULL, + `remarks` longtext, + PRIMARY KEY (`id`), + KEY `idx_p_task_info_delete_time` (`delete_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_tpl_info +-- ---------------------------- +DROP TABLE IF EXISTS `p_tpl_info`; +CREATE TABLE `p_tpl_info` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `name` varchar(128) DEFAULT NULL, + `form_structure` json DEFAULT NULL, + `creator` int(11) DEFAULT NULL, + `remarks` longtext, + PRIMARY KEY (`id`), + KEY `idx_p_tpl_info_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_work_order_circulation_history +-- ---------------------------- +DROP TABLE IF EXISTS `p_work_order_circulation_history`; +CREATE TABLE `p_work_order_circulation_history` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `title` varchar(128) DEFAULT NULL, + `work_order` int(11) DEFAULT NULL, + `state` varchar(128) DEFAULT NULL, + `source` varchar(128) DEFAULT NULL, + `target` varchar(128) DEFAULT NULL, + `circulation` varchar(128) DEFAULT NULL, + `processor` varchar(45) DEFAULT NULL, + `processor_id` int(11) DEFAULT NULL, + `cost_duration` varchar(128) DEFAULT NULL, + `remarks` longtext, + PRIMARY KEY (`id`), + KEY `idx_p_work_order_circulation_history_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_work_order_info +-- ---------------------------- +DROP TABLE IF EXISTS `p_work_order_info`; +CREATE TABLE `p_work_order_info` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `title` varchar(128) DEFAULT NULL, + `priority` int(11) DEFAULT NULL, + `process` int(11) DEFAULT NULL, + `classify` int(11) DEFAULT NULL, + `is_end` int(11) DEFAULT '0', + `is_denied` int(11) DEFAULT '0', + `state` json DEFAULT NULL, + `related_person` json DEFAULT NULL, + `creator` int(11) DEFAULT NULL, + `urge_count` int(11) DEFAULT '0', + `urge_last_time` int(11) DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_p_work_order_info_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for p_work_order_tpl_data +-- ---------------------------- +DROP TABLE IF EXISTS `p_work_order_tpl_data`; +CREATE TABLE `p_work_order_tpl_data` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `work_order` int(11) DEFAULT NULL, + `form_structure` json DEFAULT NULL, + `form_data` json DEFAULT NULL, + `tpl` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_p_work_order_tpl_data_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_dept +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dept`; +CREATE TABLE `sys_dept` ( + `dept_id` int(11) NOT NULL AUTO_INCREMENT, + `parent_id` int(11) DEFAULT NULL, + `dept_path` varchar(255) DEFAULT NULL, + `dept_name` varchar(128) DEFAULT NULL, + `sort` int(4) DEFAULT NULL, + `leader` int(11) DEFAULT NULL, + `phone` varchar(11) DEFAULT NULL, + `email` varchar(64) DEFAULT NULL, + `status` int(1) DEFAULT NULL, + `create_by` varchar(64) DEFAULT NULL, + `update_by` varchar(64) DEFAULT NULL, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`dept_id`), + KEY `idx_sys_dept_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_loginlog +-- ---------------------------- +DROP TABLE IF EXISTS `sys_loginlog`; +CREATE TABLE `sys_loginlog` ( + `info_id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(128) DEFAULT NULL, + `status` int(1) DEFAULT NULL, + `ipaddr` varchar(255) DEFAULT NULL, + `login_location` varchar(255) DEFAULT NULL, + `browser` varchar(255) DEFAULT NULL, + `os` varchar(255) DEFAULT NULL, + `platform` varchar(255) DEFAULT NULL, + `login_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `create_by` varchar(128) DEFAULT NULL, + `update_by` varchar(128) DEFAULT NULL, + `remark` varchar(255) DEFAULT NULL, + `msg` varchar(255) DEFAULT NULL, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`info_id`), + KEY `idx_sys_loginlog_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=147 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_menu`; +CREATE TABLE `sys_menu` ( + `menu_id` int(11) NOT NULL AUTO_INCREMENT, + `menu_name` varchar(128) DEFAULT NULL, + `title` varchar(64) DEFAULT NULL, + `icon` varchar(128) DEFAULT NULL, + `path` varchar(128) DEFAULT NULL, + `paths` varchar(128) DEFAULT NULL, + `menu_type` varchar(1) DEFAULT NULL, + `action` varchar(16) DEFAULT NULL, + `permission` varchar(32) DEFAULT NULL, + `parent_id` int(11) DEFAULT NULL, + `no_cache` char(1) DEFAULT NULL, + `breadcrumb` varchar(255) DEFAULT NULL, + `component` varchar(255) DEFAULT NULL, + `sort` int(4) DEFAULT NULL, + `visible` char(1) DEFAULT NULL, + `create_by` varchar(128) DEFAULT NULL, + `update_by` varchar(128) DEFAULT NULL, + `is_frame` int(1) DEFAULT '0', + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`menu_id`), + KEY `idx_sys_menu_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=362 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_post +-- ---------------------------- +DROP TABLE IF EXISTS `sys_post`; +CREATE TABLE `sys_post` ( + `post_id` int(11) NOT NULL AUTO_INCREMENT, + `post_name` varchar(128) DEFAULT NULL, + `post_code` varchar(128) DEFAULT NULL, + `sort` int(4) DEFAULT NULL, + `status` int(1) DEFAULT NULL, + `remark` varchar(255) DEFAULT NULL, + `create_by` varchar(128) DEFAULT NULL, + `update_by` varchar(128) DEFAULT NULL, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`post_id`), + KEY `idx_sys_post_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_role +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role`; +CREATE TABLE `sys_role` ( + `role_id` int(11) NOT NULL AUTO_INCREMENT, + `role_name` varchar(128) DEFAULT NULL, + `status` int(1) DEFAULT NULL, + `role_key` varchar(128) DEFAULT NULL, + `role_sort` int(4) DEFAULT NULL, + `flag` varchar(128) DEFAULT NULL, + `create_by` varchar(128) DEFAULT NULL, + `update_by` varchar(128) DEFAULT NULL, + `remark` varchar(255) DEFAULT NULL, + `admin` char(1) DEFAULT NULL, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`role_id`), + KEY `idx_sys_role_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_role_dept +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role_dept`; +CREATE TABLE `sys_role_dept` ( + `role_id` int(11) DEFAULT NULL, + `dept_id` int(11) DEFAULT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role_menu`; +CREATE TABLE `sys_role_menu` ( + `role_id` int(11) DEFAULT NULL, + `menu_id` int(11) DEFAULT NULL, + `role_name` varchar(128) DEFAULT NULL, + `create_by` varchar(128) DEFAULT NULL, + `update_by` varchar(128) DEFAULT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1538 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_settings +-- ---------------------------- +DROP TABLE IF EXISTS `sys_settings`; +CREATE TABLE `sys_settings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `classify` int(11) DEFAULT NULL, + `content` json DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_sys_settings_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Table structure for sys_user +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user`; +CREATE TABLE `sys_user` ( + `user_id` int(11) NOT NULL AUTO_INCREMENT, + `nick_name` varchar(128) DEFAULT NULL, + `phone` varchar(11) DEFAULT NULL, + `role_id` int(11) DEFAULT NULL, + `salt` varchar(255) DEFAULT NULL, + `avatar` varchar(255) DEFAULT NULL, + `sex` varchar(255) DEFAULT NULL, + `email` varchar(128) DEFAULT NULL, + `dept_id` int(11) DEFAULT NULL, + `post_id` int(11) DEFAULT NULL, + `create_by` varchar(128) DEFAULT NULL, + `update_by` varchar(128) DEFAULT NULL, + `remark` varchar(255) DEFAULT NULL, + `status` int(1) DEFAULT NULL, + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `delete_time` timestamp NULL DEFAULT NULL, + `username` varchar(64) DEFAULT NULL, + `password` varchar(128) DEFAULT NULL, + PRIMARY KEY (`user_id`), + KEY `idx_sys_user_delete_time` (`delete_time`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4; + +SET FOREIGN_KEY_CHECKS = 1; From a2e03bbf068061f0462b3651cbc961d4cbc937e8 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Tue, 8 Sep 2020 23:01:53 +0800 Subject: [PATCH 16/88] =?UTF-8?q?feat:=20=E8=8B=A5=E6=97=A0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=9D=83=E9=99=90=EF=BC=8C=E6=8F=90=E7=A4=BA=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E9=82=A3=E4=B8=AA=E6=8E=A5=E5=8F=A3=E6=9D=83=E9=99=90?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- middleware/permission.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/middleware/permission.go b/middleware/permission.go index 8767ff3..4694875 100644 --- a/middleware/permission.go +++ b/middleware/permission.go @@ -1,11 +1,14 @@ package middleware import ( + "ferry/global/orm" + "ferry/models/system" mycasbin "ferry/pkg/casbin" "ferry/pkg/jwtauth" _ "ferry/pkg/jwtauth" "ferry/pkg/logger" "ferry/tools" + "fmt" "net/http" "github.com/gin-gonic/gin" @@ -14,6 +17,8 @@ import ( //权限检查中间件 func AuthCheckRole() gin.HandlerFunc { return func(c *gin.Context) { + var menuValue system.Menu + data, _ := c.Get("JWT_PAYLOAD") v := data.(jwtauth.MapClaims) e, err := mycasbin.Casbin() @@ -24,12 +29,17 @@ func AuthCheckRole() gin.HandlerFunc { tools.HasError(err, "", 500) + err = orm.Eloquent.Model(&menuValue). + Where("path = ? and action = ?", c.Request.URL.Path, c.Request.Method). + Find(&menuValue).Error + tools.HasError(err, "", 500) + if res { c.Next() } else { c.JSON(http.StatusOK, gin.H{ "code": 403, - "msg": "对不起,您没有该接口访问权限,请联系管理员", + "msg": fmt.Sprintf("对不起,您没有 <%v> 访问权限,请联系管理员", menuValue.Title), }) c.Abort() return From 0147ef6a943837f9a0d112d8a455df11eeb8c158 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Tue, 8 Sep 2020 23:18:45 +0800 Subject: [PATCH 17/88] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=8E=A5=E5=8F=A3=E6=9D=83=E9=99=90=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- middleware/permission.go | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/middleware/permission.go b/middleware/permission.go index 4694875..f6d1e95 100644 --- a/middleware/permission.go +++ b/middleware/permission.go @@ -1,8 +1,6 @@ package middleware import ( - "ferry/global/orm" - "ferry/models/system" mycasbin "ferry/pkg/casbin" "ferry/pkg/jwtauth" _ "ferry/pkg/jwtauth" @@ -17,8 +15,6 @@ import ( //权限检查中间件 func AuthCheckRole() gin.HandlerFunc { return func(c *gin.Context) { - var menuValue system.Menu - data, _ := c.Get("JWT_PAYLOAD") v := data.(jwtauth.MapClaims) e, err := mycasbin.Casbin() @@ -26,12 +22,6 @@ func AuthCheckRole() gin.HandlerFunc { //检查权限 res, err := e.Enforce(v["rolekey"], c.Request.URL.Path, c.Request.Method) logger.Info(v["rolekey"], c.Request.URL.Path, c.Request.Method) - - tools.HasError(err, "", 500) - - err = orm.Eloquent.Model(&menuValue). - Where("path = ? and action = ?", c.Request.URL.Path, c.Request.Method). - Find(&menuValue).Error tools.HasError(err, "", 500) if res { @@ -39,7 +29,7 @@ func AuthCheckRole() gin.HandlerFunc { } else { c.JSON(http.StatusOK, gin.H{ "code": 403, - "msg": fmt.Sprintf("对不起,您没有 <%v> 访问权限,请联系管理员", menuValue.Title), + "msg": fmt.Sprintf("对不起,您没有 <%v-%v> 访问权限,请联系管理员", c.Request.URL.Path, c.Request.Method), }) c.Abort() return From c84d71f7c68561e593cc3a8ca79f8ca5c71b45c7 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 9 Sep 2020 16:29:11 +0800 Subject: [PATCH 18/88] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0readme=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8e54126..bbf311a 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,7 @@ QQ群:1127401830 * Super_z 10元 * T*i 10元 * *伟 10元 +* 老白@天智 20元 支付宝: From fa1cfeaf761d745f7945851e8e9d7bb565a82003 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 9 Sep 2020 21:37:17 +0800 Subject: [PATCH 19/88] docs: update readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bbf311a..02cf007 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,8 @@ QQ群:1127401830 开源不易,请尊重作者的付出,感谢。 +本系统目前禁止商业化,即便是您经过了二次开发不允许,请见谅,若发现有私自售卖或集成到其他商业产品中,将移交相关部门进行处理,后果自负,感谢支持。 + [MIT](https://github.com/lanyulei/ferry/blob/master/LICENSE) Copyright (c) 2020 lanyulei From 43fad054f5b8b347dadfda0d3453dc9644ca1131 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 10 Sep 2020 14:25:54 +0800 Subject: [PATCH 20/88] =?UTF-8?q?fix:=20=E6=9B=B4=E6=94=B9=E5=BC=80?= =?UTF-8?q?=E6=BA=90=E5=8D=8F=E8=AE=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 687 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 670 insertions(+), 17 deletions(-) diff --git a/LICENSE b/LICENSE index 0c5b08f..e72bfdd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,674 @@ -MIT License + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 -Copyright (c) 2020 lanyulei + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. -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: + Preamble -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + The GNU General Public License is a free, copyleft license for +software and other kinds of works. -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. + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file From df2f93067ba7dec8fc4f5f7810e4dd32a46c378a Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 10 Sep 2020 14:28:04 +0800 Subject: [PATCH 21/88] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0license=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02cf007..166d6b3 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,6 @@ QQ群:1127401830 本系统目前禁止商业化,即便是您经过了二次开发不允许,请见谅,若发现有私自售卖或集成到其他商业产品中,将移交相关部门进行处理,后果自负,感谢支持。 -[MIT](https://github.com/lanyulei/ferry/blob/master/LICENSE) +[GPL v3](https://github.com/lanyulei/ferry/blob/master/LICENSE) Copyright (c) 2020 lanyulei From 1e0b7b5d8efe90289f2c1f690c0df8f2282ca4c8 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 10 Sep 2020 14:50:30 +0800 Subject: [PATCH 22/88] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 827 +++++++++++------------------------------------------- README.md | 8 +- 2 files changed, 165 insertions(+), 670 deletions(-) diff --git a/LICENSE b/LICENSE index e72bfdd..0a04128 100644 --- a/LICENSE +++ b/LICENSE @@ -1,674 +1,165 @@ - GNU GENERAL PUBLIC LICENSE + GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md index 166d6b3..dfad211 100644 --- a/README.md +++ b/README.md @@ -147,8 +147,12 @@ QQ群:1127401830 开源不易,请尊重作者的付出,感谢。 -本系统目前禁止商业化,即便是您经过了二次开发不允许,请见谅,若发现有私自售卖或集成到其他商业产品中,将移交相关部门进行处理,后果自负,感谢支持。 +再此处声明,本系统目前不建议商业产品使用,因本系统使用的`流程设计器`未设置开源协议,`表单设计器`是GPL v3的协议。 -[GPL v3](https://github.com/lanyulei/ferry/blob/master/LICENSE) +因此避免纠纷,不建议商业产品使用,若执意使用,请联系原作者获得授权。 + +再次声明,若是未联系作者直接将本系统使用于商业产品,出现的商业纠纷,本系统概不承担,感谢。 + +[LGPL-3.0](https://github.com/lanyulei/ferry/blob/master/LICENSE) Copyright (c) 2020 lanyulei From 6b41bca06feaeb9643e08a9ab4f82eb4bb8134ed Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 10 Sep 2020 14:54:18 +0800 Subject: [PATCH 23/88] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dfad211..d4c561a 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ QQ群:1127401830 开源不易,请尊重作者的付出,感谢。 -再此处声明,本系统目前不建议商业产品使用,因本系统使用的`流程设计器`未设置开源协议,`表单设计器`是GPL v3的协议。 +在此处声明,本系统目前不建议商业产品使用,因本系统使用的`流程设计器`未设置开源协议,`表单设计器`是GPL v3的协议。 因此避免纠纷,不建议商业产品使用,若执意使用,请联系原作者获得授权。 From d5b9c04aa2ffe5c8b4dbafd3b34e471aa602da93 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 10 Sep 2020 14:55:10 +0800 Subject: [PATCH 24/88] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d4c561a..e647d5e 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ QQ群:1127401830 开源不易,请尊重作者的付出,感谢。 -在此处声明,本系统目前不建议商业产品使用,因本系统使用的`流程设计器`未设置开源协议,`表单设计器`是GPL v3的协议。 +在此处声明,本系统目前不建议商业产品使用,因本系统使用的`流程设计器`未设置开源协议,`表单设计器`是LGPL v3的协议。 因此避免纠纷,不建议商业产品使用,若执意使用,请联系原作者获得授权。 From 4bdeaf5769c8691a1024feefc587a777f1ba7289 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 10 Sep 2020 18:57:03 +0800 Subject: [PATCH 25/88] docs: update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e647d5e..a2357e5 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,7 @@ QQ群:1127401830 * T*i 10元 * *伟 10元 * 老白@天智 20元 +* 劉鑫 30元 支付宝: From 74a043a5c92df147efc90939d4a59247ee07cb61 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 17 Sep 2020 14:54:36 +0800 Subject: [PATCH 26/88] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/public/file.go | 85 +++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/apis/public/file.go b/apis/public/file.go index f62ae44..f9c8215 100644 --- a/apis/public/file.go +++ b/apis/public/file.go @@ -7,6 +7,7 @@ import ( "ferry/tools/app" "fmt" "io/ioutil" + "os" "strings" "github.com/spf13/viper" @@ -27,10 +28,14 @@ import ( func UploadFile(c *gin.Context) { var ( - urlPrefix string - tag string + urlPrefix string + tag string + fileType string + saveFilePath string + err error ) tag, _ = c.GetPostForm("type") + fileType = c.DefaultQuery("file_type", "images") if viper.GetBool("settings.domain.getHost") { urlPrefix = fmt.Sprintf("http://%s/", c.Request.Host) @@ -43,40 +48,52 @@ func UploadFile(c *gin.Context) { } if tag == "" { - app.Error(c, 200, errors.New(""), "缺少标识") - return - } else { - switch tag { - case "1": // 单图 - files, err := c.FormFile("file") - if err != nil { - app.Error(c, 200, errors.New(""), "图片不能为空") - return - } - // 上传文件至指定目录 - guid := uuid.New().String() + tag = "1" + } - singleFile := "static/uploadfile/" + guid + utils.GetExt(files.Filename) - _ = c.SaveUploadedFile(files, singleFile) - app.OK(c, urlPrefix+singleFile, "上传成功") + saveFilePath = "static/uploadfile/" + fileType + "/" + _, err = os.Stat(saveFilePath) + if os.IsNotExist(err) { + err = os.MkdirAll(saveFilePath, 0755) + if err != nil { + app.Error(c, -1, err, fmt.Sprintf("创建图片目录失败,%v", err.Error())) return - case "2": // 多图 - files := c.Request.MultipartForm.File["file"] - multipartFile := make([]string, len(files)) - for _, f := range files { - guid := uuid.New().String() - multipartFileName := "static/uploadfile/" + guid + utils.GetExt(f.Filename) - _ = c.SaveUploadedFile(f, multipartFileName) - multipartFile = append(multipartFile, urlPrefix+multipartFileName) - } - app.OK(c, multipartFile, "上传成功") - return - case "3": // base64 - files, _ := c.GetPostForm("file") - ddd, _ := base64.StdEncoding.DecodeString(files) - guid := uuid.New().String() - _ = ioutil.WriteFile("static/uploadfile/"+guid+".jpg", ddd, 0666) - app.OK(c, urlPrefix+"static/uploadfile/"+guid+".jpg", "上传成功") } } + + switch tag { + case "1": // 单图 + files, err := c.FormFile("file") + if err != nil { + app.Error(c, 200, errors.New(""), "图片不能为空") + return + } + // 上传文件至指定目录 + guid := uuid.New().String() + + singleFile := saveFilePath + guid + utils.GetExt(files.Filename) + _ = c.SaveUploadedFile(files, singleFile) + app.OK(c, urlPrefix+singleFile, "上传成功") + return + case "2": // 多图 + files := c.Request.MultipartForm.File["file"] + multipartFile := make([]string, len(files)) + for _, f := range files { + guid := uuid.New().String() + multipartFileName := saveFilePath + guid + utils.GetExt(f.Filename) + _ = c.SaveUploadedFile(f, multipartFileName) + multipartFile = append(multipartFile, urlPrefix+multipartFileName) + } + app.OK(c, multipartFile, "上传成功") + return + case "3": // base64 + files, _ := c.GetPostForm("file") + ddd, _ := base64.StdEncoding.DecodeString(files) + guid := uuid.New().String() + _ = ioutil.WriteFile(saveFilePath+guid+".jpg", ddd, 0666) + app.OK(c, urlPrefix+saveFilePath+guid+".jpg", "上传成功") + default: + app.Error(c, 200, errors.New(""), "标识不正确") + return + } } From bb8483ebbb13c9f93b9aef65749183e2acbf9cca Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 17 Sep 2020 14:58:48 +0800 Subject: [PATCH 27/88] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/public/file.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apis/public/file.go b/apis/public/file.go index f9c8215..27ad51b 100644 --- a/apis/public/file.go +++ b/apis/public/file.go @@ -37,6 +37,11 @@ func UploadFile(c *gin.Context) { tag, _ = c.GetPostForm("type") fileType = c.DefaultQuery("file_type", "images") + if fileType != "images" && fileType != "files" { + app.Error(c, -1, fmt.Errorf("上传接口目前,仅支持图片上传和文件上传"), "") + return + } + if viper.GetBool("settings.domain.getHost") { urlPrefix = fmt.Sprintf("http://%s/", c.Request.Host) } else { From 0ac9150e59962e4ad0f9f52f67133912ad865c0f Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Fri, 18 Sep 2020 16:31:19 +0800 Subject: [PATCH 28/88] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/public/file.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apis/public/file.go b/apis/public/file.go index 27ad51b..773868d 100644 --- a/apis/public/file.go +++ b/apis/public/file.go @@ -33,6 +33,7 @@ func UploadFile(c *gin.Context) { fileType string saveFilePath string err error + protocol string = "http" ) tag, _ = c.GetPostForm("type") fileType = c.DefaultQuery("file_type", "images") @@ -42,13 +43,17 @@ func UploadFile(c *gin.Context) { return } + if strings.HasPrefix(c.Request.Header.Get("Origin"), "https") { + protocol = "https" + } + if viper.GetBool("settings.domain.getHost") { - urlPrefix = fmt.Sprintf("http://%s/", c.Request.Host) + urlPrefix = fmt.Sprintf("%s://%s/", protocol, c.Request.Host) } else { if strings.HasSuffix(viper.GetString("settings.domain.url"), "/") { urlPrefix = viper.GetString("settings.domain.url") } else { - urlPrefix = fmt.Sprintf("http://%s/", viper.GetString("settings.domain.url")) + urlPrefix = fmt.Sprintf("%s://%s/", protocol, viper.GetString("settings.domain.url")) } } From 8608380d55cf641715ff149f4b93045bd3fe97b2 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sat, 19 Sep 2020 00:58:03 +0800 Subject: [PATCH 29/88] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9redis=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E9=AA=8C=E8=AF=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/task.go | 7 +++++-- config/settings.dev.yml | 3 +-- config/settings.yml | 3 +-- pkg/task/worker/worker.go | 6 +----- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/apis/process/task.go b/apis/process/task.go index f753db7..07ab537 100644 --- a/apis/process/task.go +++ b/apis/process/task.go @@ -221,8 +221,11 @@ func TaskDetails(c *gin.Context) { ) fileName = c.DefaultQuery("file_name", "") - if fileName == "" { - app.Error(c, -1, errors.New("参数不正确,请确认file_name参数是否存在"), "") + if fileName == "" || + strings.HasPrefix(fileName, ".") || + strings.HasPrefix(fileName, "/") || + strings.HasPrefix(fileName, "\\") { + app.Error(c, -1, errors.New("file_name参数不正确,请确认"), "") return } diff --git a/config/settings.dev.yml b/config/settings.dev.yml index dbeeaf3..b85da5a 100644 --- a/config/settings.dev.yml +++ b/config/settings.dev.yml @@ -53,8 +53,7 @@ settings: maxsize: 10240 path: ./logs/ferry.log redis: - host: 127.0.0.1 - port: 6379 + url: redis://ferry123456@127.0.0.1:6379 ssl: key: keystring pem: temp/pem.pem diff --git a/config/settings.yml b/config/settings.yml index fc78ab8..97df582 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -53,8 +53,7 @@ settings: maxsize: 10240 path: ./logs/ferry.log redis: - host: 127.0.0.1 - port: 6379 + url: redis://ferry123456@127.0.0.1:6379 ssl: key: keystring pem: temp/pem.pem diff --git a/pkg/task/worker/worker.go b/pkg/task/worker/worker.go index 636b7e3..5ab7e8b 100644 --- a/pkg/task/worker/worker.go +++ b/pkg/task/worker/worker.go @@ -2,7 +2,6 @@ package worker import ( "ferry/pkg/logger" - "fmt" "github.com/spf13/viper" @@ -23,10 +22,7 @@ func StartServer() { func NewTaskCenter() (*machinery.Server, error) { cnf := &taskConfig.Config{ - Broker: fmt.Sprintf("redis://%v:%v", - viper.GetString("settings.redis.host"), - viper.GetString("settings.redis.port"), - ), + Broker: viper.GetString("settings.redis.url"), DefaultQueue: "ServerTasksQueue", ResultBackend: "eager", } From 59342ea0d12e76aa38a7f555ee4acb7794b8f6a9 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 20 Sep 2020 14:05:32 +0800 Subject: [PATCH 30/88] =?UTF-8?q?feat:=20=E4=BB=BB=E5=8A=A1=E6=94=AF?= =?UTF-8?q?=E6=8C=81form=E8=A1=A8=E5=8D=95=E6=95=B0=E6=8D=AE=E4=BC=A0?= =?UTF-8?q?=E5=85=A5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++++- apis/process/workOrder.go | 19 +++++++++++++- pkg/service/handle.go | 18 ++++++++++++- pkg/service/task.go | 6 ++--- pkg/task/send.go | 4 +-- pkg/task/server.go | 2 +- pkg/task/worker/tasks.go | 54 ++++++++++++++++++++++----------------- 7 files changed, 77 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index a2357e5..067e1c2 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,12 @@ 演示demo: [http://fdevops.com:8001/#/dashboard](http://fdevops.com:8001/#/dashboard) -账号密码:admin/123456 +``` +账号:admin +密码:123456 + +演示demo登陆需要取消ldap验证,就是登陆页面取消ldap的打勾。 +``` 文档: [https://www.fdevops.com/docs/ferry](https://www.fdevops.com/docs/ferry-tutorial-document/introduction) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index 932967a..cbb9aa3 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -71,6 +71,12 @@ func CreateWorkOrder(c *gin.Context) { Tasks json.RawMessage `json:"tasks"` Source string `json:"source"` } + paramsValue struct { + Id int `json:"id"` + Title string `json:"title"` + Priority int `json:"priority"` + FormData []interface{} `json:"form_data"` + } ) err := c.ShouldBind(&workOrderValue) @@ -248,7 +254,18 @@ func CreateWorkOrder(c *gin.Context) { return } if len(taskList) > 0 { - go service.ExecTask(taskList) + paramsValue.Id = workOrderInfo.Id + paramsValue.Title = workOrderInfo.Title + paramsValue.Priority = workOrderInfo.Priority + paramsValue.FormData = workOrderValue.Tpls["form_data"] + + params, err := json.Marshal(paramsValue) + if err != nil { + app.Error(c, -1, err, "") + return + } + + go service.ExecTask(taskList, string(params)) } app.OK(c, "", "成功提交工单申请") diff --git a/pkg/service/handle.go b/pkg/service/handle.go index 433080e..1f6e5a2 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -348,6 +348,12 @@ func (h *Handle) HandleWorkOrder( noticeList []int sendSubject string = "您有一条待办工单,请及时处理" sendDescription string = "您有一条待办工单请及时处理,工单描述如下" + paramsValue struct { + Id int `json:"id"` + Title string `json:"title"` + Priority int `json:"priority"` + FormData []interface{} `json:"form_data"` + } ) defer func() { @@ -638,6 +644,8 @@ func (h *Handle) HandleWorkOrder( return } + paramsValue.FormData = append(paramsValue.FormData, t["tplValue"]) + // 是否可写,只有可写的模版可以更新数据 updateStatus := false if writeTplList, writeOK := h.stateValue["writeTpls"]; writeOK { @@ -823,7 +831,15 @@ continueTag: } execTasks = append(execTasks, task) } - go ExecTask(execTasks) + + paramsValue.Id = h.workOrderDetails.Id + paramsValue.Title = h.workOrderDetails.Title + paramsValue.Priority = h.workOrderDetails.Priority + params, err := json.Marshal(paramsValue) + if err != nil { + return err + } + go ExecTask(execTasks, string(params)) return } diff --git a/pkg/service/task.go b/pkg/service/task.go index e0c2cce..bdc3f11 100644 --- a/pkg/service/task.go +++ b/pkg/service/task.go @@ -12,13 +12,13 @@ import ( @Author : lanyulei */ -func ExecTask(taskList []string) { +func ExecTask(taskList []string, params string) { for _, taskName := range taskList { filePath := fmt.Sprintf("%v/%v", viper.GetString("script.path"), taskName) if strings.HasSuffix(filePath, ".py") { - task.Send("python", filePath) + task.Send("python", filePath, params) } else if strings.HasSuffix(filePath, ".sh") { - task.Send("shell", filePath) + task.Send("shell", filePath, params) } } } diff --git a/pkg/task/send.go b/pkg/task/send.go index 7902f78..7b24aa0 100644 --- a/pkg/task/send.go +++ b/pkg/task/send.go @@ -9,6 +9,6 @@ import ( "ferry/pkg/task/worker" ) -func Send(classify string, scriptPath string) { - worker.SendTask(context.Background(), classify, scriptPath) +func Send(classify string, scriptPath string, params string) { + worker.SendTask(context.Background(), classify, scriptPath, params) } diff --git a/pkg/task/server.go b/pkg/task/server.go index 3a12191..fb77d9c 100644 --- a/pkg/task/server.go +++ b/pkg/task/server.go @@ -14,7 +14,7 @@ func Start() { worker.StartServer() // 2. 启动异步调度 - taskWorker := worker.NewAsyncTaskWorker(1) + taskWorker := worker.NewAsyncTaskWorker(10) err := taskWorker.Launch() if err != nil { logger.Errorf("启动machinery失败,%v", err.Error()) diff --git a/pkg/task/worker/tasks.go b/pkg/task/worker/tasks.go index 42cdcf5..9ebabe4 100644 --- a/pkg/task/worker/tasks.go +++ b/pkg/task/worker/tasks.go @@ -2,6 +2,7 @@ package worker import ( "context" + "errors" "ferry/pkg/logger" "os/exec" "syscall" @@ -11,41 +12,41 @@ import ( var asyncTaskMap map[string]interface{} -func executeTaskBase(scriptPath string) { - command := exec.Command("/bin/bash", "-c", scriptPath) //初始化Cmd - err := command.Start() //运行脚本 - if nil != err { +func executeTaskBase(scriptPath string, params string) (err error) { + command := exec.Command(scriptPath, params) //初始化Cmd + out, err := command.CombinedOutput() + if err != nil { logger.Errorf("task exec failed,%v", err.Error()) return } - - logger.Info("Process PID:", command.Process.Pid) - - err = command.Wait() //等待执行完成 - if nil != err { - logger.Errorf("task exec failed,%v", err.Error()) - return - } - - logger.Info("ProcessState PID:", command.ProcessState.Pid()) - logger.Info("Exit Code", command.ProcessState.Sys().(syscall.WaitStatus).ExitStatus()) + logger.Info("Output: ", string(out)) + logger.Info("ProcessState PID: ", command.ProcessState.Pid()) + logger.Info("Exit Code ", command.ProcessState.Sys().(syscall.WaitStatus).ExitStatus()) + return } // ExecCommand 异步任务 -func ExecCommand(classify string, scriptPath string) error { +func ExecCommand(classify string, scriptPath string, params string) (err error) { if classify == "shell" { - logger.Info("start exec shell...", scriptPath) - executeTaskBase(scriptPath) - return nil + logger.Info("start exec shell - ", scriptPath) + err = executeTaskBase(scriptPath, params) + if err != nil { + return + } } else if classify == "python" { - logger.Info("start exec python...", scriptPath) - executeTaskBase(scriptPath) - return nil + logger.Info("start exec python - ", scriptPath) + err = executeTaskBase(scriptPath, params) + if err != nil { + return + } + } else { + err = errors.New("目前仅支持Python与Shell脚本的执行,请知悉。") + return } - return nil + return } -func SendTask(ctx context.Context, classify string, scriptPath string) { +func SendTask(ctx context.Context, classify string, scriptPath string, params string) { args := make([]tasks.Arg, 0) args = append(args, tasks.Arg{ Name: "classify", @@ -57,6 +58,11 @@ func SendTask(ctx context.Context, classify string, scriptPath string) { Type: "string", Value: scriptPath, }) + args = append(args, tasks.Arg{ + Name: "params", + Type: "string", + Value: params, + }) task, _ := tasks.NewSignature("ExecCommandTask", args) task.RetryCount = 5 _, err := AsyncTaskCenter.SendTaskWithContext(ctx, task) From 596701bb990290441d5dc29ec6fc31879df46e3a Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 20 Sep 2020 20:39:05 +0800 Subject: [PATCH 31/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=9B=BE=E6=A0=87=E5=8F=8A=E6=8F=8F=E8=BF=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/process.go | 4 +++- models/process/process.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apis/process/process.go b/apis/process/process.go index 1f1fb62..ba5d769 100644 --- a/apis/process/process.go +++ b/apis/process/process.go @@ -109,6 +109,8 @@ func UpdateProcess(c *gin.Context) { "classify": processValue.Classify, "task": processValue.Task, "notice": processValue.Notice, + "icon": processValue.Icon, + "remarks": processValue.Remarks, }).Error if err != nil { app.Error(c, -1, err, fmt.Sprintf("更新流程信息失败,%v", err.Error())) @@ -193,7 +195,7 @@ func ClassifyProcessList(c *gin.Context) { for _, item := range classifyList { err = orm.Eloquent.Model(&process2.Info{}). Where("classify = ? and name LIKE ?", item.Id, fmt.Sprintf("%%%v%%", processName)). - Select("id, create_time, update_time, name"). + Select("id, create_time, update_time, name, icon, remarks"). Find(&item.ProcessList).Error if err != nil { app.Error(c, -1, err, fmt.Sprintf("获取流程失败,%v", err.Error())) diff --git a/models/process/process.go b/models/process/process.go index 8e06792..3ac26a9 100644 --- a/models/process/process.go +++ b/models/process/process.go @@ -13,13 +13,15 @@ import ( type Info struct { base.Model Name string `gorm:"column:name; type:varchar(128)" json:"name" form:"name"` // 流程名称 + Icon string `gorm:"column:icon; type:varchar(128)" json:"icon" form:"icon"` // 流程标签 Structure json.RawMessage `gorm:"column:structure; type:json" json:"structure" form:"structure"` // 流程结构 Classify int `gorm:"column:classify; type:int(11)" json:"classify" form:"classify"` // 分类ID Tpls json.RawMessage `gorm:"column:tpls; type:json" json:"tpls" form:"tpls"` // 模版 Task json.RawMessage `gorm:"column:task; type:json" json:"task" form:"task"` // 任务ID, array, 可执行多个任务,可以当成通知任务,每个节点都会去执行 SubmitCount int `gorm:"column:submit_count; type:int(11); default:0" json:"submit_count" form:"submit_count"` // 提交统计 Creator int `gorm:"column:creator; type:int(11)" json:"creator" form:"creator"` // 创建者 - Notice json.RawMessage `gorm:"column:notice; type:json" json:"notice" form:"notice"` // TODO:绑定通知 + Notice json.RawMessage `gorm:"column:notice; type:json" json:"notice" form:"notice"` // 绑定通知 + Remarks string `gorm:"column:remarks; type:varchar(1024)" json:"remarks" form:"remarks"` // 流程备注 } func (Info) TableName() string { From 1f138a75dd42d8ac68de349693468c5a78d4f047 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Thu, 24 Sep 2020 23:12:39 +0800 Subject: [PATCH 32/88] fix: update readme. --- README.md | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 067e1c2..9ee0dc0 100644 --- a/README.md +++ b/README.md @@ -117,27 +117,36 @@ QQ群:1127401830 微信: -* 王* 1元 -* p*i 1元 -* LJ 10元 -* 吻住,我们能赢 10.24元 -* *悟 3元 -* Super_z 10元 -* T*i 10元 -* *伟 10元 -* 老白@天智 20元 -* 劉鑫 30元 +| 昵称 | 金额 | +| :---- | :---- | +| KAKA | 100元 | +| 劉鑫 | 30元 | +| 老白@天智 | 20元 | +| 吻住,我们能赢 | 10.24元 | +| LJ | 10.24元 | +| Super_z | 10元 | +| T*i | 10元 | +| *伟 | 10元 | +| *伟 | 10元 | +| *上 | 5元 | +| *悟 | 3元 | +| 王* | 1元 | +| p*i | 1元 | 支付宝: -* **英 10元 -* *城 5元 -* **华 1元 +| 昵称 | 金额 | +| :---- | :---- | +|**英 |10元| +|**华 |5元| +|*城 |1元| 其他: -* everstar_l 10元 -* 五色花 20元 +| 昵称 | 金额 | +| :---- | :---- | +|五色花 |20元| +|everstar_l |10元| ## 鸣谢 From 69818f10e7f5720e6e381b6c56e11fd327ae4381 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 27 Sep 2020 02:51:27 +0800 Subject: [PATCH 33/88] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/public/file.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/apis/public/file.go b/apis/public/file.go index 773868d..b3b9e3c 100644 --- a/apis/public/file.go +++ b/apis/public/file.go @@ -3,7 +3,6 @@ package public import ( "encoding/base64" "errors" - "ferry/pkg/utils" "ferry/tools/app" "fmt" "io/ioutil" @@ -71,6 +70,8 @@ func UploadFile(c *gin.Context) { } } + guid := strings.ReplaceAll(uuid.New().String(), "-", "") + switch tag { case "1": // 单图 files, err := c.FormFile("file") @@ -79,9 +80,7 @@ func UploadFile(c *gin.Context) { return } // 上传文件至指定目录 - guid := uuid.New().String() - - singleFile := saveFilePath + guid + utils.GetExt(files.Filename) + singleFile := saveFilePath + guid + "-" + files.Filename _ = c.SaveUploadedFile(files, singleFile) app.OK(c, urlPrefix+singleFile, "上传成功") return @@ -89,8 +88,8 @@ func UploadFile(c *gin.Context) { files := c.Request.MultipartForm.File["file"] multipartFile := make([]string, len(files)) for _, f := range files { - guid := uuid.New().String() - multipartFileName := saveFilePath + guid + utils.GetExt(f.Filename) + guid = strings.ReplaceAll(uuid.New().String(), "-", "") + multipartFileName := saveFilePath + guid + "-" + f.Filename _ = c.SaveUploadedFile(f, multipartFileName) multipartFile = append(multipartFile, urlPrefix+multipartFileName) } @@ -99,7 +98,6 @@ func UploadFile(c *gin.Context) { case "3": // base64 files, _ := c.GetPostForm("file") ddd, _ := base64.StdEncoding.DecodeString(files) - guid := uuid.New().String() _ = ioutil.WriteFile(saveFilePath+guid+".jpg", ddd, 0666) app.OK(c, urlPrefix+saveFilePath+guid+".jpg", "上传成功") default: From c63fe7753c3911c6b004170b363013b97178eb0d Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 27 Sep 2020 02:53:54 +0800 Subject: [PATCH 34/88] fix: update readme. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9ee0dc0..6c8f58e 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ QQ群:1127401830 | *伟 | 10元 | | *伟 | 10元 | | *上 | 5元 | +| *Sam . Chai | 5元 | | *悟 | 3元 | | 王* | 1元 | | p*i | 1元 | @@ -137,6 +138,7 @@ QQ群:1127401830 | 昵称 | 金额 | | :---- | :---- | +|**宝 |66元| |**英 |10元| |**华 |5元| |*城 |1元| From 45da3bb1c7965c648748a8d3d4cbc6f8b0f6d68a Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 27 Sep 2020 23:36:30 +0800 Subject: [PATCH 35/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=B7=A5=E5=8D=95=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- apis/process/workOrder.go | 14 ++++++++++++++ config/db.sql | 19 ++++++------------- router/process/workOrder.go | 1 + 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 6c8f58e..4a6f9ad 100644 --- a/README.md +++ b/README.md @@ -122,8 +122,9 @@ QQ群:1127401830 | KAKA | 100元 | | 劉鑫 | 30元 | | 老白@天智 | 20元 | +| J*f | 20元 | | 吻住,我们能赢 | 10.24元 | -| LJ | 10.24元 | +| LJ | 10元 | | Super_z | 10元 | | T*i | 10元 | | *伟 | 10元 | @@ -133,6 +134,7 @@ QQ群:1127401830 | *悟 | 3元 | | 王* | 1元 | | p*i | 1元 | +| S*R | 1元 | 支付宝: diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index cbb9aa3..50582df 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -641,3 +641,17 @@ func ActiveOrder(c *gin.Context) { app.OK(c, "", "接单成功,请及时处理") } + +// 删除工单 +func DeleteWorkOrder(c *gin.Context) { + + workOrderId := c.Param("id") + + err := orm.Eloquent.Delete(&process.WorkOrderInfo{}, workOrderId).Error + if err != nil { + app.Error(c, -1, err, "") + return + } + + app.OK(c, "", "工单已删除") +} diff --git a/config/db.sql b/config/db.sql index fd4553d..70ea872 100644 --- a/config/db.sql +++ b/config/db.sql @@ -22,9 +22,6 @@ INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ( INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/menurole', 'GET', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/roleMenuTreeselect/:id', 'GET', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/menuTreeselect', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/rolemenu', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/rolemenu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/rolemenu/:id', 'DELETE', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/deptList', 'GET', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/dept/:id', 'GET', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/dept', 'POST', NULL, NULL, NULL); @@ -132,12 +129,9 @@ INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (83, NULL, '创建角色', 'bug', '/api/v1/role', '/0/63/201/83', 'A', 'POST', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (84, NULL, '修改角色', 'bug', '/api/v1/role', '/0/63/201/84', 'A', 'PUT', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (85, NULL, '删除角色', 'bug', '/api/v1/role/:id', '/0/63/201/85', 'A', 'DELETE', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (92, NULL, '获取角色菜单', 'bug', '/api/v1/menurole', '/0/63/201/92', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (92, NULL, '获取角色菜单', 'bug', '/api/v1/menurole', '/0/63/256/92', 'A', 'GET', NULL, 256, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-09-27 22:46:35', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (93, NULL, '根据角色id获取角色', 'bug', '/api/v1/roleMenuTreeselect/:id', '/0/63/201/93', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (94, NULL, '获取菜单树', 'bug', '/api/v1/menuTreeselect', '/0/63/256/94', 'A', 'GET', NULL, 256, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (95, NULL, '获取角色菜单', 'bug', '/api/v1/rolemenu', '/0/63/205/95', 'A', 'GET', NULL, 205, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (96, NULL, '创建角色菜单', 'bug', '/api/v1/rolemenu', '/0/63/205/96', 'A', 'POST', NULL, 205, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (97, NULL, '删除用户菜单数据', 'bug', '/api/v1/rolemenu/:id', '/0/63/205/97', 'A', 'DELETE', NULL, 205, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (103, NULL, '部门菜单列表', 'bug', '/api/v1/deptList', '/0/63/203/103', 'A', 'GET', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (104, NULL, '根据id获取部门信息', 'bug', '/api/v1/dept/:id', '/0/63/203/104', 'A', 'GET', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (105, NULL, '创建部门', 'bug', '/api/v1/dept', '/0/63/203/105', 'A', 'POST', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); @@ -157,8 +151,7 @@ INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (201, '', '角色管理', 'peoples', '', '/0/63/280/201', 'C', 'GET', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (203, '', '部门管理', 'tree', '', '/0/63/280/203', 'C', 'POST', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (204, '', '岗位管理', 'pass', '', '/0/63/280/204', 'C', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (205, '', '角色菜单管理', 'nested', '', '/0/63/280/205', 'C', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (212, 'LoginLog', '登录日志', 'logininfor', '/loginlog', '/0/2/212', 'C', '', 'system:sysloginlog:list', 2, '0', '', '/system/loginlog/index', 6, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (212, 'LoginLog', '登录日志', 'logininfor', '/loginlog', '/0/2/212', 'C', '', 'system:sysloginlog:list', 2, '0', '', '/system/loginlog/index', 6, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-08-18 23:07:15', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (213, NULL, '获取登录日志', 'bug', '/api/v1/loginloglist', '/0/63/214/213', 'A', 'GET', NULL, 214, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (214, '', '日志管理', 'log', '', '/0/63/280/214', 'M', 'GET', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (215, '', '删除日志', 'bug', '/api/v1/loginlog/:id', '/0/63/214/215', 'A', 'DELETE', '', 214, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); @@ -273,12 +266,12 @@ INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (353, '', '系统配置', 'system', '', '/0/63/280/353', 'M', '', '', 280, '0', '', '', 2, '1', '1', '1', 0, '2020-08-19 00:40:11', '2020-08-19 00:41:32', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (354, '', '设置配置', 'bug', '/api/v1/settings', '/0/63/280/353/354', 'A', 'POST', '', 353, '0', '', '', 1, '1', '1', '1', 1, '2020-08-19 00:41:01', '2020-08-19 00:42:25', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (355, '', '获取配置', 'bug', '/api/v1/settings', '/0/63/280/353/355', 'A', 'GET', '', 353, '0', '', '', 0, '1', '1', '', 1, '2020-08-19 00:42:47', '2020-08-19 00:42:47', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (356, '', '保存系统配置', '', '', '/0/2/352/356', 'F', '', 'system:settings:index:config', 352, '0', '', '', 0, '0', '1', '', 1, '2020-08-19 13:28:23', '2020-08-19 13:28:23', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (357, '', '保存LDAP配置', '', '', '/0/2/352/357', 'F', '', 'system:settings:index:ldap', 352, '0', '', '', 0, '0', '1', '', 1, '2020-08-19 13:29:08', '2020-08-19 13:29:08', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (358, '', '清空登录日志', '', '/api/v1/loginlog', '/0/63/280/214/358', 'A', 'DELETE', '', 214, '0', '', '', 0, '1', '1', '', 1, '2020-08-27 10:00:11', '2020-08-27 10:00:11', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (359, '', '清空登录日志', '', '', '/0/2/212/359', 'F', 'DELETE', 'system:sysloginlog:clean', 212, '0', '', '', 0, '0', '1', '', 1, '2020-08-27 10:01:12', '2020-08-27 10:01:12', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (356, '', '清空登陆日志', '', '', '/0/2/212/356', 'F', '', 'system:sysloginlog:clean', 212, '0', '', '', 0, '0', '1', '', 1, '2020-08-26 21:48:59', '2020-08-26 21:48:59', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (357, '', '清空登陆日志', 'bug', '/api/v1/loginlog', '/0/63/280/214/357', 'A', 'DELETE', '', 214, '0', '', '', 0, '1', '1', '', 1, '2020-08-26 22:02:16', '2020-08-26 22:02:16', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (360, '', '主动接单', 'bug', '/api/v1/work-order/active-order/:id', '/0/63/281/326/360', 'A', 'PUT', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-09-01 19:02:01', '2020-09-01 19:02:10', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (361, '', '主动接单', '', '', '/0/268/329/361', 'F', '', 'process:list:handle:active', 329, '0', '', '', 0, '0', '1', '', 1, '2020-09-01 19:03:52', '2020-09-01 19:03:52', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (363, '', '删除工单', 'bug', '/api/v1/work-order/delete/:id', '/0/63/281/333/363', 'A', 'DELETE', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-09-27 22:50:52', '2020-09-27 22:50:52', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (364, '', '删除工单', '', '', '/0/268/273/364', 'F', '', 'process:list:all:delete', 273, '0', '', '', 0, '0', '1', '', 1, '2020-09-27 22:51:38', '2020-09-27 22:51:38', NULL); COMMIT; BEGIN; diff --git a/router/process/workOrder.go b/router/process/workOrder.go index 2e20b44..086bdfc 100644 --- a/router/process/workOrder.go +++ b/router/process/workOrder.go @@ -23,5 +23,6 @@ func RegisterWorkOrderRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMidd workOrderRouter.POST("/inversion", process.InversionWorkOrder) workOrderRouter.GET("/urge", process.UrgeWorkOrder) workOrderRouter.PUT("/active-order/:id", process.ActiveOrder) + workOrderRouter.DELETE("/delete/:id", process.DeleteWorkOrder) } } From 7c262382474704de14dab1b8eff65ef5b8c544ac Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 30 Sep 2020 01:19:39 +0800 Subject: [PATCH 36/88] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E7=99=BB?= =?UTF-8?q?=E9=99=86=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/settings.dev.yml | 2 +- config/settings.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/settings.dev.yml b/config/settings.dev.yml index b85da5a..d1cfa88 100644 --- a/config/settings.dev.yml +++ b/config/settings.dev.yml @@ -32,7 +32,7 @@ settings: maxopenconn: 20000 jwt: secret: ferry - timeout: 3600 + timeout: 86400 ldap: anonymousquery: 0 basedn: dc=fdevops,dc=com diff --git a/config/settings.yml b/config/settings.yml index 97df582..efe29b6 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -32,7 +32,7 @@ settings: maxopenconn: 20000 jwt: secret: ferry - timeout: 3600 + timeout: 86400 ldap: anonymousquery: 0 basedn: dc=fdevops,dc=com From 2e2efded782d2005cd1308dbd5742930d77054d0 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Tue, 6 Oct 2020 11:27:56 +0800 Subject: [PATCH 37/88] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E6=95=88=E7=9A=84=E6=96=87=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/document/countersign.md | 5 - docs/document/cross_compile.md | 29 ---- docs/document/end_process.md | 5 - docs/document/exclusive_gateway.md | 17 --- docs/document/forward.md | 5 - docs/document/ide_development.md | 59 -------- docs/document/install.md | 226 ----------------------------- docs/document/introduction.md | 55 ------- docs/document/new_process.md | 25 ---- docs/document/parallel_gateway.md | 7 - docs/document/system_manager.md | 31 ---- docs/document/urge.md | 5 - 12 files changed, 469 deletions(-) delete mode 100644 docs/document/countersign.md delete mode 100644 docs/document/cross_compile.md delete mode 100644 docs/document/end_process.md delete mode 100644 docs/document/exclusive_gateway.md delete mode 100644 docs/document/forward.md delete mode 100644 docs/document/ide_development.md delete mode 100644 docs/document/install.md delete mode 100644 docs/document/introduction.md delete mode 100644 docs/document/new_process.md delete mode 100644 docs/document/parallel_gateway.md delete mode 100644 docs/document/system_manager.md delete mode 100644 docs/document/urge.md diff --git a/docs/document/countersign.md b/docs/document/countersign.md deleted file mode 100644 index 8217a29..0000000 --- a/docs/document/countersign.md +++ /dev/null @@ -1,5 +0,0 @@ -# 会签 - -当在一个阶段出现多个处理人的时候,同时也需要多个处理人都处理完成,才可以进入下一个阶段的时候,则需要选择上会签的功能。 - -也就说,如果选择了会签,则需要当前阶段的所有人处理完成,才能进入下一个阶段。 diff --git a/docs/document/cross_compile.md b/docs/document/cross_compile.md deleted file mode 100644 index bd17633..0000000 --- a/docs/document/cross_compile.md +++ /dev/null @@ -1,29 +0,0 @@ -# Mac、Linux、Windows下分别进行交叉编译 - -Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序。 - -Mac 下编译 Linux 和 Windows 64位可执行程序 - - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go - -Linux 下编译 Mac 和 Windows 64位可执行程序 - - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go - -Windows 下编译 Mac 和 Linux 64位可执行程序 - - SET CGO_ENABLED=0 - SET GOOS=darwin - SET GOARCH=amd64 - go build main.go - ------------------------------------------------- - SET CGO_ENABLED=0 - SET GOOS=linux - SET GOARCH=amd64 - go build main.go - -GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)。 -GOARCH:目标平台的体系架构(386、amd64、arm)。 -CGO_ENABLED:交叉编译不支持 CGO 所以要禁用它。 diff --git a/docs/document/end_process.md b/docs/document/end_process.md deleted file mode 100644 index c855bcd..0000000 --- a/docs/document/end_process.md +++ /dev/null @@ -1,5 +0,0 @@ -# 结单 - -当发现提交的工单有误,可以根据实际情况,直接结束工单。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-12.png) diff --git a/docs/document/exclusive_gateway.md b/docs/document/exclusive_gateway.md deleted file mode 100644 index e465418..0000000 --- a/docs/document/exclusive_gateway.md +++ /dev/null @@ -1,17 +0,0 @@ -# 排他网关 - -在平时的业务中,有的时候需要根据表单数据的值来判断跳转到啥位置。 - -例如:如果申请的服务器价格低于1000元就是部门领导审批,如果超过1000元,那么就是CTO审批。为兼容这种情况因此加入了排他网关的概念。 - -此外还需注意,如果使用了排他网关,则必须有一个条件判断是正确的,否则流程将无法进行下去,报错失败。 - -将下面的Json格式数据,修改为自己的表单数据,写入到对应的流转线条中即可,但是流转线条的源阶段必须要排他网关的图标。 - - [ - { - "key":"字段名称", - "sign":"==", - "value":"需要判断的值" - } - ] diff --git a/docs/document/forward.md b/docs/document/forward.md deleted file mode 100644 index 1fcbc35..0000000 --- a/docs/document/forward.md +++ /dev/null @@ -1,5 +0,0 @@ -# 转交 - -进行工单转交,只能在当前阶段将工单转交给他人。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-11.png) diff --git a/docs/document/ide_development.md b/docs/document/ide_development.md deleted file mode 100644 index c92a7cc..0000000 --- a/docs/document/ide_development.md +++ /dev/null @@ -1,59 +0,0 @@ -# IDE开发 - -众多 IDE 里边,推荐使用 `goland IDE`进行调试 - -首先我们启动 `Goland` , 点击 `Open Project`,下图红框圈选部分; - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image.png) - -选择 ferry 存放的路径,找到并打开; - -# 配置 GOPORXY - -然后选择`Goland` > `Preferences` ; - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-1.png) - -# 添加运行或调试配置 - -### 添加 init 配置 - -1\. 打开`Edit Configurations` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-2.png) - -2\. 选择 `+` > `go build` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-3.png) - -3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为 `init -c=config/settings.dev.yml`,完成之后点击保存 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-4.png) - -4\. 修改数据库 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-5.png) - -5\. 初使化 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-6.png) - -### 添加 server 配置 - -1\. 打开`Edit Configurations` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-7.png) - -2\. 选择 `+` > `go build` - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-8.png) - -3\. 按照下图所示进行配置,注意:填写 `Program arguments` 为`server -c=config/settings.dev.yml`,完成之后点击保存 - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-9.png) - -4\. 启动 debug - -![](https://www.fdevops.com/wp-content/uploads/2020/08/image-10.png) - -转载自:[http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE](http://doc.zhangwj.com/go-admin-site/guide/ide.html#%E6%B7%BB%E5%8A%A0-server-%E9%85%8D%E7%BD%AE) diff --git a/docs/document/install.md b/docs/document/install.md deleted file mode 100644 index 7313946..0000000 --- a/docs/document/install.md +++ /dev/null @@ -1,226 +0,0 @@ -# 安装 - -> 需注意因使用到了json类型的字段,因此MySQL需是5.7以上的版本。 -> -> MySQL > 5.7 -> -> Go >= 1.14 -> -> Redis - -若是安装出错,请先确认redis及MySQL是否安装配置成功,若是还有问题,可在群内提问。 - -## 配置文件介绍 - - script: - path: ./static/scripts # 任务脚本路径 - settings: - application: - domain: localhost:8002 # 用于将HTTP请求重定向到HTTPS的主机名 - host: 0.0.0.0 # 启动的地址,主机ip 或者域名,默认0.0.0.0 - ishttps: false # 是否为HTTPS - mode: dev # 开发模式 - name: ferry-test # 服务名称 - port: "8002" # 启动端口 - readtimeout: 1 # 请求读取超时时间,从连接被接受(accept)到request body完全被读取(如果你不读取body,那么时间截止到读完header为止) - writertimeout: 2 # 从request header的读取结束开始,到response write结束为止(也就是ServeHTTP 方法的声明周期) - database: - dbtype: mysql # 数据库类型 - host: 127.0.0.1 # 数据库地址 - name: ferry # 数据库名称 - password: 123456 # 数据库密码 - port: 3306 # 数据库端口 - username: ferry # 数据库用户名 - email: - alias: ferry # 邮箱别名 - host: smtp.163.com # 邮件服务器 - pass: your password # 邮箱密码 - port: 465 # 邮件服务器端口 - user: fdevops@163.com # 邮箱账号 - gorm: - logmode: 0 # gorm详细日志输出,0表示不输出,1表示输出 - maxidleconn: 0 # 最大空闲连接 - maxopenconn: 20000 # 最大连接数据 - jwt: - secret: ferry # JWT加密字符串 - timeout: 3600 # 过期时间单位:秒 - log: - dir: logs # 日志路径 - operdb: false - ssl: - key: keystring - pem: temp/pem.pem - -## 本地开发 - -后端程序启动: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry.git - git clone https://gitee.com/yllan/ferry.git - - # 2\. 进入工作路径 - cd ferry - - # 3\. 修改配置 - vim config/settings.dev.yml - 1). 修改为自己的数据库信息 - 2). 修改为自己的邮件服务器地址 - 其他的根据情况来修改调整 - - # 4\. 安装依赖 - go get - - # 5\. 连接数据库,并创建数据库 - create database ferry charset 'utf8mb4'; - - # 6\. 初始化数据结构 - go run main.go init -c=config/settings.dev.yml - - # 7\. 测试启动程序,没有报错及没有问题 - go run main.go server -c=config/settings.dev.yml - - # 8\. 热加载方式启动 - air - -前端程序启动: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry_web.git - git clone https://gitee.com/yllan/ferry_web.git - - # 2\. 进入工作路径 - cd ferry_web - - # 3\. 安装依赖 - npm config set registry https://registry.npm.taobao.org - npm install - # 若npm install安装失败,可尝试使用一下命令安装 - npm install --unsafe-perm - - # 推荐使用cnpm - npm install -g cnpm --registry=https://registry.npm.taobao.org - cnpm install - - # 4\. 启动程序 - npm run dev - - # 5\. 访问http://localhost:9527,是否可正常访问 - -## 部署线上 - -后端部署: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry.git - git clone https://gitee.com/yllan/ferry.git - - # 2\. 进入工作路径 - cd ferry - - # 3\. 交叉编译(centos) - env GOOS=linux GOARCH=amd64 go build - 更多交叉编译内容,请访问 https://www.fdevops.com/2020/03/08/go-locale-configuration - - # 4\. config目录上传到项目根路径下,并确认配置信息是否正确 - vim config/settings.yml - 1). 修改为自己的数据库信息 - 2). 修改为自己的邮件服务器地址 - 其他的根据情况来修改调整 - - # 4\. 创建日志路径及静态文件经历 - mkdir -p log static/uploadfile static/scripts static/template - - # 5\. 将本地项目下static/template目录下的所有文件上传的到,服务器对应的项目目录下static/template - - # 6\. 连接数据库,并创建数据库 - create database ferry charset 'utf8mb4'; - - # 7\. 初始化数据 - ./ferry init -c=config/settings.yml - - # 8\. 启动程序,推荐通过"进程管理工具"进行启动维护 - nohup ./ferry server -c=config/settings.yml > /dev/null 2>&1 & - -前端部署: - - # 1\. 拉取代码,以下命令二选一即可: - git clone https://github.com/lanyulei/ferry_web.git - git clone https://gitee.com/yllan/ferry_web.git - - # 2\. 进入工作路径 - cd ferry_web - - # 3\. 安装依赖 - npm config set registry https://registry.npm.taobao.org - npm install - # 若npm install安装失败,可尝试使用一下命令安装 - npm install --unsafe-perm - - # 推荐使用cnpm - npm install -g cnpm --registry=https://registry.npm.taobao.org - cnpm install - - # 4\. 修改 .env.production 文件 - # base api - VUE_APP_BASE_API = 'http://fdevops.com:8001' # 修改为您自己的域名 - - # 5\. 编译 - npm run build:prod - - # 6\. 将dist目录上传至项目路径下即可。 - mv dist web - - # 7\. nginx配置,根据业务自行调整即可 - server { - listen 8001; # 监听端口 - server_name localhost; # 域名可以有多个,用空格隔开 - - #charset koi8-r; - - #access_log logs/host.access.log main; - location / { - root /data/ferry/web; - index index.html index.htm; #目录内的默认打开文件,如果没有匹配到index.html,则搜索index.htm,依次类推 - } - - #ssl配置省略 - location /api { - # rewrite ^.+api/?(.*)$ /$1 break; - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - proxy_redirect off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - # 登陆 - location /login { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - # 刷新token - location /refresh_token { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - # 接口地址 - location /swagger { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - # 后端静态文件路径 - location /static/uploadfile { - proxy_pass http://127.0.0.1:8002; #node api server 即需要代理的IP地址 - } - - #error_page 404 /404.html; #对错误页面404.html 做了定向配置 - - # redirect server error pages to the static page /50x.html - #将服务器错误页面重定向到静态页面/50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root html; - } - } diff --git a/docs/document/introduction.md b/docs/document/introduction.md deleted file mode 100644 index 2c7df56..0000000 --- a/docs/document/introduction.md +++ /dev/null @@ -1,55 +0,0 @@ -# 简介 - -本系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 - -致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。 - -演示Demo: [http://fdevops.com:8001/](http://fdevops.com:8001/) - -账号密码:admin/123456 - -Github: [https://github.com/lanyulei/ferry](https://github.com/lanyulei/ferry) - -Gitee: [https://gitee.com/yllan/ferry](https://gitee.com/yllan/ferry) - -文档:[https://www.fdevops.com/docs/ferry-tutorial-document/introduction](https://www.fdevops.com/docs/ferry-tutorial-document/introduction) - -演示Demo上,将删除的功能全部隐藏了,因为之前发生过,有人恶意删除所有可删除的数据,包括流程数据和用户数据,因此,clone下来的代码是有删除之类的动作的。 - -## 功能 - -下面对本系统的功能做一个简单介绍。 - -工单系统相关功能: - -* 工单提交申请 -* 工单统计 -* 多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单) -* 自定义流程 -* 自定义模版 -* 任务钩子 -* 任务管理 -* 催办 -* 转交 -* 手动结单 -* 加签 -* 多维度处理人,包括(个人,变量(创建者、创建者负责人)) -* 排他网关,即根据条件判断进行工单跳转 -* 并行网关,即多个节点同时进行审批处理 -* 通知提醒(目前仅支持邮件) -* 流程分类管理 - -权限管理相关功能,使用casbin实现接口权限控制: - -* 用户、角色、岗位的增删查改,批量删除,多条件搜索 -* 角色、岗位数据导出Excel -* 重置用户密码 -* 维护个人信息,上传管理头像,修改当前账户密码 -* 部门的增删查改 -* 菜单目录、跳转、按钮及API接口的增删查改 -* 登陆日志管理 -* 左菜单权限控制 -* 页面按钮权限控制 -* API接口权限控制 - -目前大致上就是以上功能了,如果您觉得我有拉下的功能,还请留言提醒我,感谢。 diff --git a/docs/document/new_process.md b/docs/document/new_process.md deleted file mode 100644 index 1aa2d4d..0000000 --- a/docs/document/new_process.md +++ /dev/null @@ -1,25 +0,0 @@ -# 创建一个新流程 - -## 流程分类 - -为区分不同功能,不同类型的流程,因此加入分类的概念,方便管理和维护不同功能的流程。 - -分类创建较为简单,不在过多赘述。 - -## 创建模版 - -根据实际情况,填写下面的数据。 - -## 创建流程 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-7.png) - -## 创建任务 - -根据实际情况创建Python或者Shell的脚本任务,这个步骤相对简单,不在过多赘述。 - -## 申请新创建的流程 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-8.png) - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-9.png) diff --git a/docs/document/parallel_gateway.md b/docs/document/parallel_gateway.md deleted file mode 100644 index 22cd246..0000000 --- a/docs/document/parallel_gateway.md +++ /dev/null @@ -1,7 +0,0 @@ -# 并行网关 - -在日常的工作中,可能会有需要多个处理人并行进行处理,只有所有的处理人都完成处理才可以跳转到下一个阶段。基于这种情况的出现,因此有了并行网关的概念。 - -在这种并行处理的情况下,处理的顺序无所谓,但是需要全部处理完成。才能进入下一个阶段,同时并行网关的情况下,会无视条件判断。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) diff --git a/docs/document/system_manager.md b/docs/document/system_manager.md deleted file mode 100644 index 1b7a712..0000000 --- a/docs/document/system_manager.md +++ /dev/null @@ -1,31 +0,0 @@ -# 系统管理 - -本文主要是介绍以下非增删改查的功能。 - -## 角色管理 - -对角色的增删查改、权限的管控、批量删除、导出功能。 - -## 菜单管理 - -菜单的增删查改。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-14.png) - -* 上级菜单:菜单或者按钮的父亲。 -* 菜单标题:就是菜单的名字。 -* 显示顺序:菜单展示时候的顺序。 -* 菜单类型:啥功能的菜单。 - * 目录:对菜单进行区分维护。 - * 菜单:可跳转对对应的页面。 - * 按钮:页面上对应的按钮操作。 - * 接口:后端对应的API地址。 -* 菜单图标:左菜单栏展示需要展示的图标。 -* 路由名称:Vue路由设置的名称。 -* 组件路径:前端程序View对应下文件路径,包括文件名称。 -* 是否外链:是否是外部链接。 -* 路由地址:可访问的url地址。 -* 权限标识:权限控制需要的标识。 -* 菜单状态:显示或者隐藏菜单项。 - -此外需要注意的是,每个后端需要跟前端交互的接口,都需要写入到菜单中的接口权限中。 diff --git a/docs/document/urge.md b/docs/document/urge.md deleted file mode 100644 index 7c1c18f..0000000 --- a/docs/document/urge.md +++ /dev/null @@ -1,5 +0,0 @@ -# 催办 - -通过邮件的方式,来对当前处理人进行工单催促,十分钟内只能催促一次。 - -![](https://www.fdevops.com/wp-content/uploads/2020/07/image-10.png) From 4ac4be0284c0a9abf74a0b0ed14e95befa550779 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Thu, 8 Oct 2020 20:48:36 +0800 Subject: [PATCH 38/88] =?UTF-8?q?feat:=20=E6=96=B0=E5=BB=BA=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=94=AF=E6=8C=81=E6=8E=92=E4=BB=96=E7=BD=91=E5=85=B3?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/workOrder.go | 85 ++++++++++++++++++++++++++++++++++++--- pkg/service/getState.go | 1 - pkg/service/handle.go | 6 +-- 3 files changed, 83 insertions(+), 9 deletions(-) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index 50582df..be26e6c 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -64,6 +64,9 @@ func CreateWorkOrder(c *gin.Context) { processValue process.Info sendToUserList []system.SysUser noticeList []int + handle service.Handle + processState service.ProcessState + condExprStatus bool workOrderValue struct { process.WorkOrderInfo Tpls map[string][]interface{} `json:"tpls"` @@ -102,11 +105,6 @@ func CreateWorkOrder(c *gin.Context) { app.Error(c, -1, err, fmt.Sprintf("获取处理人变量值失败,%v", err.Error())) return } - workOrderValue.State, err = json.Marshal(variableValue) - if err != nil { - app.Error(c, -1, err, "") - return - } // 创建工单数据 tx := orm.Eloquent.Begin() @@ -114,6 +112,83 @@ func CreateWorkOrder(c *gin.Context) { // 查询流程信息 err = tx.Model(&processValue).Where("id = ?", workOrderValue.Process).Find(&processValue).Error if err != nil { + app.Error(c, -1, err, "") + return + } + + err = json.Unmarshal(processValue.Structure, &processState.Structure) + nodeValue, err := processState.GetNode(variableValue[0].(map[string]interface{})["id"].(string)) + if err != nil { + app.Error(c, -1, err, "") + return + } + + for _, v := range workOrderValue.Tpls["form_data"] { + tpl, err := json.Marshal(v) + if err != nil { + app.Error(c, -1, err, "") + return + } + handle.WorkOrderData = append(handle.WorkOrderData, tpl) + } + + switch nodeValue["clazz"] { + // 排他网关 + case "exclusiveGateway": + sourceEdges, err := processState.GetEdge(nodeValue["id"].(string), "source") + if err != nil { + app.Error(c, -1, err, "") + return + } + breakTag: + for _, edge := range sourceEdges { + edgeCondExpr := make([]map[string]interface{}, 0) + err = json.Unmarshal([]byte(edge["conditionExpression"].(string)), &edgeCondExpr) + if err != nil { + app.Error(c, -1, err, "") + return + } + for _, condExpr := range edgeCondExpr { + // 条件判断 + condExprStatus, err = handle.ConditionalJudgment(condExpr) + if err != nil { + app.Error(c, -1, err, "") + return + } + if condExprStatus { + // 进行节点跳转 + nodeValue, err = processState.GetNode(edge["target"].(string)) + if err != nil { + app.Error(c, -1, err, "") + return + } + + if nodeValue["clazz"] == "userTask" || nodeValue["clazz"] == "receiveTask" { + if nodeValue["assignValue"] == nil || nodeValue["assignType"] == "" { + app.Error(c, -1, errors.New("处理人不能为空"), "") + return + } + } + variableValue[0].(map[string]interface{})["id"] = nodeValue["id"].(string) + variableValue[0].(map[string]interface{})["label"] = nodeValue["label"] + variableValue[0].(map[string]interface{})["processor"] = nodeValue["assignValue"] + variableValue[0].(map[string]interface{})["process_method"] = nodeValue["assignType"] + break breakTag + } + } + } + if !condExprStatus { + app.Error(c, -1, errors.New("所有流转均不符合条件,请确认。"), "") + return + } + case "parallelGateway": + app.Error(c, -1, fmt.Errorf("新建工单无法使用并行网关,%v", err), "") + return + } + + workOrderValue.State, err = json.Marshal(variableValue) + if err != nil { + app.Error(c, -1, err, "") return } diff --git a/pkg/service/getState.go b/pkg/service/getState.go index 92601d5..5751265 100644 --- a/pkg/service/getState.go +++ b/pkg/service/getState.go @@ -20,7 +20,6 @@ func (p *ProcessState) GetNode(stateId string) (nodeValue map[string]interface{} nodeValue = node } } - return } diff --git a/pkg/service/handle.go b/pkg/service/handle.go index 1f6e5a2..84714b6 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -44,7 +44,7 @@ type Handle struct { updateValue map[string]interface{} stateValue map[string]interface{} targetStateValue map[string]interface{} - workOrderData [][]byte + WorkOrderData [][]byte workOrderDetails process.WorkOrderInfo endHistory bool flowProperties int @@ -159,7 +159,7 @@ func (h *Handle) ConditionalJudgment(condExpr map[string]interface{}) (result bo } }() - for _, data := range h.workOrderData { + for _, data := range h.WorkOrderData { var formData map[string]interface{} err = json.Unmarshal(data, &formData) if err != nil { @@ -401,7 +401,7 @@ func (h *Handle) HandleWorkOrder( // 获取工单数据 err = orm.Eloquent.Model(&process.TplData{}). Where("work_order = ?", workOrderId). - Pluck("form_data", &h.workOrderData).Error + Pluck("form_data", &h.WorkOrderData).Error if err != nil { return } From 1d9cfb00c983c7ad5973ecb45e9d684ff69d403f Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Thu, 8 Oct 2020 21:15:39 +0800 Subject: [PATCH 39/88] fix: fix bug. --- apis/process/workOrder.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index be26e6c..d8f79e5 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -186,6 +186,13 @@ func CreateWorkOrder(c *gin.Context) { return } + // 获取变量数据 + err = service.GetVariableValue(variableValue, tools.GetUserId(c)) + if err != nil { + app.Error(c, -1, err, "") + return + } + workOrderValue.State, err = json.Marshal(variableValue) if err != nil { app.Error(c, -1, err, "") From 245236b102f244ea09853bece3492271d32c7dd5 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Thu, 8 Oct 2020 21:35:34 +0800 Subject: [PATCH 40/88] fix: fix bug. --- apis/process/workOrder.go | 289 +------------------------------ pkg/service/createWorkOrder.go | 307 +++++++++++++++++++++++++++++++++ 2 files changed, 308 insertions(+), 288 deletions(-) create mode 100644 pkg/service/createWorkOrder.go diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index d8f79e5..4125e0c 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -56,300 +56,13 @@ func ProcessStructure(c *gin.Context) { // 新建工单 func CreateWorkOrder(c *gin.Context) { - var ( - taskList []string - stateList []interface{} - userInfo system.SysUser - variableValue []interface{} - processValue process.Info - sendToUserList []system.SysUser - noticeList []int - handle service.Handle - processState service.ProcessState - condExprStatus bool - workOrderValue struct { - process.WorkOrderInfo - Tpls map[string][]interface{} `json:"tpls"` - SourceState string `json:"source_state"` - Tasks json.RawMessage `json:"tasks"` - Source string `json:"source"` - } - paramsValue struct { - Id int `json:"id"` - Title string `json:"title"` - Priority int `json:"priority"` - FormData []interface{} `json:"form_data"` - } - ) - err := c.ShouldBind(&workOrderValue) + err := service.CreateWorkOrder(c) if err != nil { app.Error(c, -1, err, "") return } - relatedPerson, err := json.Marshal([]int{tools.GetUserId(c)}) - if err != nil { - app.Error(c, -1, err, "") - return - } - - // 获取变量值 - err = json.Unmarshal(workOrderValue.State, &variableValue) - if err != nil { - app.Error(c, -1, err, "") - return - } - err = service.GetVariableValue(variableValue, tools.GetUserId(c)) - if err != nil { - app.Error(c, -1, err, fmt.Sprintf("获取处理人变量值失败,%v", err.Error())) - return - } - - // 创建工单数据 - tx := orm.Eloquent.Begin() - - // 查询流程信息 - err = tx.Model(&processValue).Where("id = ?", workOrderValue.Process).Find(&processValue).Error - if err != nil { - app.Error(c, -1, err, "") - return - } - - err = json.Unmarshal(processValue.Structure, &processState.Structure) - nodeValue, err := processState.GetNode(variableValue[0].(map[string]interface{})["id"].(string)) - if err != nil { - app.Error(c, -1, err, "") - return - } - - for _, v := range workOrderValue.Tpls["form_data"] { - tpl, err := json.Marshal(v) - if err != nil { - app.Error(c, -1, err, "") - return - } - handle.WorkOrderData = append(handle.WorkOrderData, tpl) - } - - switch nodeValue["clazz"] { - // 排他网关 - case "exclusiveGateway": - sourceEdges, err := processState.GetEdge(nodeValue["id"].(string), "source") - if err != nil { - app.Error(c, -1, err, "") - return - } - breakTag: - for _, edge := range sourceEdges { - edgeCondExpr := make([]map[string]interface{}, 0) - err = json.Unmarshal([]byte(edge["conditionExpression"].(string)), &edgeCondExpr) - if err != nil { - app.Error(c, -1, err, "") - return - } - for _, condExpr := range edgeCondExpr { - // 条件判断 - condExprStatus, err = handle.ConditionalJudgment(condExpr) - if err != nil { - app.Error(c, -1, err, "") - return - } - if condExprStatus { - // 进行节点跳转 - nodeValue, err = processState.GetNode(edge["target"].(string)) - if err != nil { - app.Error(c, -1, err, "") - return - } - - if nodeValue["clazz"] == "userTask" || nodeValue["clazz"] == "receiveTask" { - if nodeValue["assignValue"] == nil || nodeValue["assignType"] == "" { - app.Error(c, -1, errors.New("处理人不能为空"), "") - return - } - } - variableValue[0].(map[string]interface{})["id"] = nodeValue["id"].(string) - variableValue[0].(map[string]interface{})["label"] = nodeValue["label"] - variableValue[0].(map[string]interface{})["processor"] = nodeValue["assignValue"] - variableValue[0].(map[string]interface{})["process_method"] = nodeValue["assignType"] - break breakTag - } - } - } - if !condExprStatus { - app.Error(c, -1, errors.New("所有流转均不符合条件,请确认。"), "") - return - } - case "parallelGateway": - app.Error(c, -1, fmt.Errorf("新建工单无法使用并行网关,%v", err), "") - return - } - - // 获取变量数据 - err = service.GetVariableValue(variableValue, tools.GetUserId(c)) - if err != nil { - app.Error(c, -1, err, "") - return - } - - workOrderValue.State, err = json.Marshal(variableValue) - if err != nil { - app.Error(c, -1, err, "") - return - } - - var workOrderInfo = process.WorkOrderInfo{ - Title: workOrderValue.Title, - Priority: workOrderValue.Priority, - Process: workOrderValue.Process, - Classify: workOrderValue.Classify, - State: workOrderValue.State, - RelatedPerson: relatedPerson, - Creator: tools.GetUserId(c), - } - err = tx.Create(&workOrderInfo).Error - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("创建工单失败,%v", err.Error())) - return - } - - // 创建工单模版关联数据 - for i := 0; i < len(workOrderValue.Tpls["form_structure"]); i++ { - formDataJson, err := json.Marshal(workOrderValue.Tpls["form_data"][i]) - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("生成json字符串错误,%v", err.Error())) - return - } - formStructureJson, err := json.Marshal(workOrderValue.Tpls["form_structure"][i]) - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("生成json字符串错误,%v", err.Error())) - return - } - - formData := process.TplData{ - WorkOrder: workOrderInfo.Id, - FormStructure: formStructureJson, - FormData: formDataJson, - } - - err = tx.Create(&formData).Error - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("创建工单模版关联数据失败,%v", err.Error())) - return - } - } - - // 获取当前用户信息 - err = tx.Model(&system.SysUser{}).Where("user_id = ?", tools.GetUserId(c)).Find(&userInfo).Error - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("查询用户信息失败,%v", err.Error())) - return - } - - nameValue := userInfo.NickName - if nameValue == "" { - nameValue = userInfo.Username - } - - // 创建历史记录 - err = json.Unmarshal(workOrderInfo.State, &stateList) - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("Json序列化失败,%v", err.Error())) - return - } - err = tx.Create(&process.CirculationHistory{ - Title: workOrderValue.Title, - WorkOrder: workOrderInfo.Id, - State: workOrderValue.SourceState, - Source: workOrderValue.Source, - Target: stateList[0].(map[string]interface{})["id"].(string), - Circulation: "新建", - Processor: nameValue, - ProcessorId: userInfo.UserId, - }).Error - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("新建历史记录失败,%v", err.Error())) - return - } - - // 更新流程提交数量统计 - err = tx.Model(&process.Info{}). - Where("id = ?", workOrderValue.Process). - Update("submit_count", processValue.SubmitCount+1).Error - if err != nil { - tx.Rollback() - app.Error(c, -1, err, fmt.Sprintf("更新流程提交数量统计失败,%v", err.Error())) - return - } - - tx.Commit() - - // 发送通知 - err = json.Unmarshal(processValue.Notice, ¬iceList) - if err != nil { - app.Error(c, -1, err, "") - return - } - if len(noticeList) > 0 { - sendToUserList, err = service.GetPrincipalUserInfo(stateList, workOrderInfo.Creator) - if err != nil { - app.Error(c, -1, err, fmt.Sprintf("获取所有处理人的用户信息失败,%v", err.Error())) - return - } - - // 发送通知 - go func() { - bodyData := notify.BodyData{ - SendTo: map[string]interface{}{ - "userList": sendToUserList, - }, - Subject: "您有一条待办工单,请及时处理", - Description: "您有一条待办工单请及时处理,工单描述如下", - Classify: noticeList, - ProcessId: workOrderValue.Process, - Id: workOrderInfo.Id, - Title: workOrderValue.Title, - Creator: userInfo.NickName, - Priority: workOrderValue.Priority, - CreatedAt: time.Now().Format("2006-01-02 15:04:05"), - } - err = bodyData.SendNotify() - if err != nil { - app.Error(c, -1, err, fmt.Sprintf("通知发送失败,%v", err.Error())) - return - } - }() - } - - // 执行任务 - err = json.Unmarshal(workOrderValue.Tasks, &taskList) - if err != nil { - app.Error(c, -1, err, "") - return - } - if len(taskList) > 0 { - paramsValue.Id = workOrderInfo.Id - paramsValue.Title = workOrderInfo.Title - paramsValue.Priority = workOrderInfo.Priority - paramsValue.FormData = workOrderValue.Tpls["form_data"] - - params, err := json.Marshal(paramsValue) - if err != nil { - app.Error(c, -1, err, "") - return - } - - go service.ExecTask(taskList, string(params)) - } - app.OK(c, "", "成功提交工单申请") } diff --git a/pkg/service/createWorkOrder.go b/pkg/service/createWorkOrder.go new file mode 100644 index 0000000..d5df238 --- /dev/null +++ b/pkg/service/createWorkOrder.go @@ -0,0 +1,307 @@ +package service + +import ( + "encoding/json" + "errors" + "ferry/global/orm" + "ferry/models/process" + "ferry/models/system" + "ferry/pkg/notify" + "ferry/tools" + "fmt" + "time" + + "github.com/gin-gonic/gin" +) + +/* + @Author : lanyulei +*/ + +func CreateWorkOrder(c *gin.Context) (err error) { + var ( + taskList []string + stateList []interface{} + userInfo system.SysUser + variableValue []interface{} + processValue process.Info + sendToUserList []system.SysUser + noticeList []int + handle Handle + processState ProcessState + condExprStatus bool + tpl []byte + workOrderValue struct { + process.WorkOrderInfo + Tpls map[string][]interface{} `json:"tpls"` + SourceState string `json:"source_state"` + Tasks json.RawMessage `json:"tasks"` + Source string `json:"source"` + } + paramsValue struct { + Id int `json:"id"` + Title string `json:"title"` + Priority int `json:"priority"` + FormData []interface{} `json:"form_data"` + } + ) + + err = c.ShouldBind(&workOrderValue) + if err != nil { + return + } + + relatedPerson, err := json.Marshal([]int{tools.GetUserId(c)}) + if err != nil { + return + } + + // 获取变量值 + err = json.Unmarshal(workOrderValue.State, &variableValue) + if err != nil { + return + } + err = GetVariableValue(variableValue, tools.GetUserId(c)) + if err != nil { + err = fmt.Errorf("获取处理人变量值失败,%v", err.Error()) + return + } + + // 创建工单数据 + tx := orm.Eloquent.Begin() + + // 查询流程信息 + err = tx.Model(&processValue).Where("id = ?", workOrderValue.Process).Find(&processValue).Error + if err != nil { + return + } + + err = json.Unmarshal(processValue.Structure, &processState.Structure) + nodeValue, err := processState.GetNode(variableValue[0].(map[string]interface{})["id"].(string)) + if err != nil { + return + } + + for _, v := range workOrderValue.Tpls["form_data"] { + tpl, err = json.Marshal(v) + if err != nil { + return + } + handle.WorkOrderData = append(handle.WorkOrderData, tpl) + } + + switch nodeValue["clazz"] { + // 排他网关 + case "exclusiveGateway": + var sourceEdges []map[string]interface{} + sourceEdges, err = processState.GetEdge(nodeValue["id"].(string), "source") + if err != nil { + return + } + breakTag: + for _, edge := range sourceEdges { + edgeCondExpr := make([]map[string]interface{}, 0) + err = json.Unmarshal([]byte(edge["conditionExpression"].(string)), &edgeCondExpr) + if err != nil { + return + } + for _, condExpr := range edgeCondExpr { + // 条件判断 + condExprStatus, err = handle.ConditionalJudgment(condExpr) + if err != nil { + return + } + if condExprStatus { + // 进行节点跳转 + nodeValue, err = processState.GetNode(edge["target"].(string)) + if err != nil { + return + } + + if nodeValue["clazz"] == "userTask" || nodeValue["clazz"] == "receiveTask" { + if nodeValue["assignValue"] == nil || nodeValue["assignType"] == "" { + err = errors.New("处理人不能为空") + return + } + } + variableValue[0].(map[string]interface{})["id"] = nodeValue["id"].(string) + variableValue[0].(map[string]interface{})["label"] = nodeValue["label"] + variableValue[0].(map[string]interface{})["processor"] = nodeValue["assignValue"] + variableValue[0].(map[string]interface{})["process_method"] = nodeValue["assignType"] + break breakTag + } + } + } + if !condExprStatus { + err = errors.New("所有流转均不符合条件,请确认。") + return + } + case "parallelGateway": + err = fmt.Errorf("新建工单无法使用并行网关,%v", err) + return + } + + // 获取变量数据 + err = GetVariableValue(variableValue, tools.GetUserId(c)) + if err != nil { + return + } + + workOrderValue.State, err = json.Marshal(variableValue) + if err != nil { + return + } + + var workOrderInfo = process.WorkOrderInfo{ + Title: workOrderValue.Title, + Priority: workOrderValue.Priority, + Process: workOrderValue.Process, + Classify: workOrderValue.Classify, + State: workOrderValue.State, + RelatedPerson: relatedPerson, + Creator: tools.GetUserId(c), + } + err = tx.Create(&workOrderInfo).Error + if err != nil { + tx.Rollback() + err = fmt.Errorf("创建工单失败,%v", err.Error()) + return + } + + // 创建工单模版关联数据 + for i := 0; i < len(workOrderValue.Tpls["form_structure"]); i++ { + var ( + formDataJson []byte + formStructureJson []byte + ) + formDataJson, err = json.Marshal(workOrderValue.Tpls["form_data"][i]) + if err != nil { + tx.Rollback() + err = fmt.Errorf("生成json字符串错误,%v", err.Error()) + return + } + formStructureJson, err = json.Marshal(workOrderValue.Tpls["form_structure"][i]) + if err != nil { + tx.Rollback() + err = fmt.Errorf("生成json字符串错误,%v", err.Error()) + return + } + + formData := process.TplData{ + WorkOrder: workOrderInfo.Id, + FormStructure: formStructureJson, + FormData: formDataJson, + } + + err = tx.Create(&formData).Error + if err != nil { + tx.Rollback() + err = fmt.Errorf("创建工单模版关联数据失败,%v", err.Error()) + return + } + } + + // 获取当前用户信息 + err = tx.Model(&system.SysUser{}).Where("user_id = ?", tools.GetUserId(c)).Find(&userInfo).Error + if err != nil { + tx.Rollback() + err = fmt.Errorf("查询用户信息失败,%v", err.Error()) + return + } + + nameValue := userInfo.NickName + if nameValue == "" { + nameValue = userInfo.Username + } + + // 创建历史记录 + err = json.Unmarshal(workOrderInfo.State, &stateList) + if err != nil { + tx.Rollback() + err = fmt.Errorf("json序列化失败,%s", err.Error()) + return + } + err = tx.Create(&process.CirculationHistory{ + Title: workOrderValue.Title, + WorkOrder: workOrderInfo.Id, + State: workOrderValue.SourceState, + Source: workOrderValue.Source, + Target: stateList[0].(map[string]interface{})["id"].(string), + Circulation: "新建", + Processor: nameValue, + ProcessorId: userInfo.UserId, + }).Error + if err != nil { + tx.Rollback() + err = fmt.Errorf("新建历史记录失败,%v", err.Error()) + return + } + + // 更新流程提交数量统计 + err = tx.Model(&process.Info{}). + Where("id = ?", workOrderValue.Process). + Update("submit_count", processValue.SubmitCount+1).Error + if err != nil { + tx.Rollback() + err = fmt.Errorf("更新流程提交数量统计失败,%v", err.Error()) + return + } + + tx.Commit() + + // 发送通知 + err = json.Unmarshal(processValue.Notice, ¬iceList) + if err != nil { + return + } + if len(noticeList) > 0 { + sendToUserList, err = GetPrincipalUserInfo(stateList, workOrderInfo.Creator) + if err != nil { + err = fmt.Errorf("获取所有处理人的用户信息失败,%v", err.Error()) + return + } + + // 发送通知 + go func() { + bodyData := notify.BodyData{ + SendTo: map[string]interface{}{ + "userList": sendToUserList, + }, + Subject: "您有一条待办工单,请及时处理", + Description: "您有一条待办工单请及时处理,工单描述如下", + Classify: noticeList, + ProcessId: workOrderValue.Process, + Id: workOrderInfo.Id, + Title: workOrderValue.Title, + Creator: userInfo.NickName, + Priority: workOrderValue.Priority, + CreatedAt: time.Now().Format("2006-01-02 15:04:05"), + } + err = bodyData.SendNotify() + if err != nil { + err = fmt.Errorf("通知发送失败,%v", err.Error()) + return + } + }() + } + + // 执行任务 + err = json.Unmarshal(workOrderValue.Tasks, &taskList) + if err != nil { + return + } + if len(taskList) > 0 { + paramsValue.Id = workOrderInfo.Id + paramsValue.Title = workOrderInfo.Title + paramsValue.Priority = workOrderInfo.Priority + paramsValue.FormData = workOrderValue.Tpls["form_data"] + var params []byte + params, err = json.Marshal(paramsValue) + if err != nil { + return + } + + go ExecTask(taskList, string(params)) + } + return +} From 4b405fd150c691b40f67ec6262cf3cce595c388a Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Thu, 8 Oct 2020 21:50:21 +0800 Subject: [PATCH 41/88] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a6f9ad..222e02c 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,7 @@ QQ群:1127401830 | :---- | :---- | | KAKA | 100元 | | 劉鑫 | 30元 | +| *锋 | 30元 | | 老白@天智 | 20元 | | J*f | 20元 | | 吻住,我们能赢 | 10.24元 | @@ -128,7 +129,7 @@ QQ群:1127401830 | Super_z | 10元 | | T*i | 10元 | | *伟 | 10元 | -| *伟 | 10元 | +| *郎 | 8元 | | *上 | 5元 | | *Sam . Chai | 5元 | | *悟 | 3元 | From f1597c982b32e4e861010a0939d9c0d30dc38a93 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Fri, 9 Oct 2020 00:23:59 +0800 Subject: [PATCH 42/88] =?UTF-8?q?feat:=20=E6=96=B0=E5=BB=BA=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=94=AF=E6=8C=81=E5=B9=B6=E8=A1=8C=E7=BD=91=E5=85=B3?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/workOrder.go | 2 +- pkg/service/createWorkOrder.go | 46 ++++++++++++++++++++++++++++++++-- pkg/service/handle.go | 4 +-- pkg/service/workOrderList.go | 31 +++++++++++++++++++---- 4 files changed, 73 insertions(+), 10 deletions(-) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index 4125e0c..ee97670 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -81,7 +81,7 @@ func WorkOrderList(c *gin.Context) { classifyInt int ) - classify := c.DefaultQuery("classify", "0") + classify := c.DefaultQuery("classify", "") if classify == "" { app.Error(c, -1, errors.New("参数错误,请确认classify是否传递"), "") return diff --git a/pkg/service/createWorkOrder.go b/pkg/service/createWorkOrder.go index d5df238..45ea353 100644 --- a/pkg/service/createWorkOrder.go +++ b/pkg/service/createWorkOrder.go @@ -31,6 +31,8 @@ func CreateWorkOrder(c *gin.Context) (err error) { processState ProcessState condExprStatus bool tpl []byte + sourceEdges []map[string]interface{} + targetEdges []map[string]interface{} workOrderValue struct { process.WorkOrderInfo Tpls map[string][]interface{} `json:"tpls"` @@ -137,8 +139,48 @@ func CreateWorkOrder(c *gin.Context) (err error) { return } case "parallelGateway": - err = fmt.Errorf("新建工单无法使用并行网关,%v", err) - return + // 入口,判断 + sourceEdges, err = processState.GetEdge(nodeValue["id"].(string), "source") + if err != nil { + err = fmt.Errorf("查询流转信息失败,%v", err.Error()) + return + } + + targetEdges, err = processState.GetEdge(nodeValue["id"].(string), "target") + if err != nil { + err = fmt.Errorf("查询流转信息失败,%v", err.Error()) + return + } + + if len(sourceEdges) > 0 { + nodeValue, err = processState.GetNode(sourceEdges[0]["target"].(string)) + if err != nil { + return + } + } else { + err = errors.New("并行网关流程不正确") + return + } + + if len(sourceEdges) > 1 && len(targetEdges) == 1 { + // 入口 + variableValue = []interface{}{} + for _, edge := range sourceEdges { + targetStateValue, err := processState.GetNode(edge["target"].(string)) + if err != nil { + return err + } + variableValue = append(variableValue, map[string]interface{}{ + "id": edge["target"].(string), + "label": targetStateValue["label"], + "processor": targetStateValue["assignValue"], + "process_method": targetStateValue["assignType"], + }) + } + } else { + err = errors.New("并行网关流程配置不正确") + return + } } // 获取变量数据 diff --git a/pkg/service/handle.go b/pkg/service/handle.go index 84714b6..3da4c44 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -243,7 +243,7 @@ func (h *Handle) ConditionalJudgment(condExpr map[string]interface{}) (result bo } // 并行网关,确认其他节点是否完成 -func (h *Handle) completeAllParallel(c *gin.Context, target string) (statusOk bool, err error) { +func (h *Handle) completeAllParallel(target string) (statusOk bool, err error) { var ( stateList []map[string]interface{} ) @@ -548,7 +548,7 @@ func (h *Handle) HandleWorkOrder( } } else if len(sourceEdges) == 1 && len(targetEdges) > 1 { // 出口 - parallelStatusOk, err = h.completeAllParallel(c, sourceEdges[0]["target"].(string)) + parallelStatusOk, err = h.completeAllParallel(sourceEdges[0]["target"].(string)) if err != nil { err = fmt.Errorf("并行检测失败,%v", err.Error()) return diff --git a/pkg/service/workOrderList.go b/pkg/service/workOrderList.go index 81a836f..7eef6c0 100644 --- a/pkg/service/workOrderList.go +++ b/pkg/service/workOrderList.go @@ -24,6 +24,7 @@ type WorkOrder struct { type workOrderInfo struct { process.WorkOrderInfo Principals string `json:"principals"` + StateName string `json:"state_name"` DataClassify int `json:"data_classify"` } @@ -107,16 +108,35 @@ func (w *WorkOrder) WorkOrderList() (result interface{}, err error) { return } - for i, w := range *result.(*pagination.Paginator).Data.(*[]workOrderInfo) { - err = json.Unmarshal(w.State, &StateList) + for i, v := range *result.(*pagination.Paginator).Data.(*[]workOrderInfo) { + err = json.Unmarshal(v.State, &StateList) if err != nil { err = fmt.Errorf("json反序列化失败,%v", err.Error()) return } + var ( + stateName string + ) if len(StateList) != 0 { processorList := make([]int, 0) - for _, v := range StateList[0]["processor"].([]interface{}) { - processorList = append(processorList, int(v.(float64))) + if len(StateList) > 1 { + for _, s := range StateList { + for _, p := range s["processor"].([]interface{}) { + if int(p.(float64)) == tools.GetUserId(w.GinObj) { + processorList = append(processorList, int(p.(float64))) + } + } + if len(processorList) > 0 { + stateName = s["label"].(string) + break + } + } + } + if len(processorList) == 0 { + for _, v := range StateList[0]["processor"].([]interface{}) { + processorList = append(processorList, int(v.(float64))) + } + stateName = StateList[0]["label"].(string) } principals, err = GetPrincipal(processorList, StateList[0]["process_method"].(string)) if err != nil { @@ -126,7 +146,8 @@ func (w *WorkOrder) WorkOrderList() (result interface{}, err error) { } workOrderDetails := *result.(*pagination.Paginator).Data.(*[]workOrderInfo) workOrderDetails[i].Principals = principals - workOrderDetails[i].DataClassify = w.Classify + workOrderDetails[i].StateName = stateName + workOrderDetails[i].DataClassify = v.Classify } return result, nil From cc3200dfa186ea001810312ad9d335b3419d0dec Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Fri, 9 Oct 2020 00:40:04 +0800 Subject: [PATCH 43/88] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E5=B7=A5=E5=8D=95=E5=B1=95=E7=A4=BA=E5=BC=82=E5=B8=B8?= =?UTF-8?q?bug.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/workOrderList.go | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/pkg/service/workOrderList.go b/pkg/service/workOrderList.go index 7eef6c0..8f33a70 100644 --- a/pkg/service/workOrderList.go +++ b/pkg/service/workOrderList.go @@ -99,8 +99,10 @@ func (w *WorkOrder) PureWorkOrderList() (result interface{}, err error) { func (w *WorkOrder) WorkOrderList() (result interface{}, err error) { var ( - principals string - StateList []map[string]interface{} + principals string + StateList []map[string]interface{} + workOrderInfoList []workOrderInfo + minusTotal int ) result, err = w.PureWorkOrderList() @@ -115,9 +117,25 @@ func (w *WorkOrder) WorkOrderList() (result interface{}, err error) { return } var ( - stateName string + stateName string + structResult map[string]interface{} + authStatus bool ) if len(StateList) != 0 { + structResult, err = ProcessStructure(w.GinObj, v.Process, v.Id) + if err != nil { + return + } + + authStatus, err = JudgeUserAuthority(w.GinObj, v.Id, structResult["workOrder"].(WorkOrderData).CurrentState) + if err != nil { + return + } + if !authStatus { + minusTotal += 1 + continue + } + processorList := make([]int, 0) if len(StateList) > 1 { for _, s := range StateList { @@ -148,7 +166,13 @@ func (w *WorkOrder) WorkOrderList() (result interface{}, err error) { workOrderDetails[i].Principals = principals workOrderDetails[i].StateName = stateName workOrderDetails[i].DataClassify = v.Classify + if authStatus { + workOrderInfoList = append(workOrderInfoList, workOrderDetails[i]) + } } + result.(*pagination.Paginator).Data = &workOrderInfoList + result.(*pagination.Paginator).TotalCount -= minusTotal + return result, nil } From 87ba9e89438ae7c2c5cb3d1657501a8a73cc9543 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Fri, 9 Oct 2020 00:58:14 +0800 Subject: [PATCH 44/88] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BAbug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/process.go | 13 +++++++++---- pkg/service/workOrderList.go | 28 +++++++++++++++++----------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/pkg/service/process.go b/pkg/service/process.go index f5d4913..c69f4e5 100644 --- a/pkg/service/process.go +++ b/pkg/service/process.go @@ -143,11 +143,16 @@ func ProcessStructure(c *gin.Context, processId int, workOrderId int) (result ma for _, stateValue := range stateList { for _, processNodeValue := range processStructureDetails["nodes"].([]interface{}) { if stateValue["id"].(string) == processNodeValue.(map[string]interface{})["id"] { - for _, userId := range stateValue["processor"].([]interface{}) { - if int(userId.(float64)) == tools.GetUserId(c) { - workOrderInfo.CurrentState = stateValue["id"].(string) - break breakStateTag + if _, ok := stateValue["processor"]; ok { + for _, userId := range stateValue["processor"].([]interface{}) { + if int(userId.(float64)) == tools.GetUserId(c) { + workOrderInfo.CurrentState = stateValue["id"].(string) + break breakStateTag + } } + } else { + err = errors.New("未查询到对应的处理人字段,请确认。") + return } } } diff --git a/pkg/service/workOrderList.go b/pkg/service/workOrderList.go index 8f33a70..bfda1da 100644 --- a/pkg/service/workOrderList.go +++ b/pkg/service/workOrderList.go @@ -122,18 +122,24 @@ func (w *WorkOrder) WorkOrderList() (result interface{}, err error) { authStatus bool ) if len(StateList) != 0 { - structResult, err = ProcessStructure(w.GinObj, v.Process, v.Id) - if err != nil { - return - } + // 仅待办工单需要验证 + // todo:还需要找最优解决方案 + if w.Classify == 1 { + structResult, err = ProcessStructure(w.GinObj, v.Process, v.Id) + if err != nil { + return + } - authStatus, err = JudgeUserAuthority(w.GinObj, v.Id, structResult["workOrder"].(WorkOrderData).CurrentState) - if err != nil { - return - } - if !authStatus { - minusTotal += 1 - continue + authStatus, err = JudgeUserAuthority(w.GinObj, v.Id, structResult["workOrder"].(WorkOrderData).CurrentState) + if err != nil { + return + } + if !authStatus { + minusTotal += 1 + continue + } + } else { + authStatus = true } processorList := make([]int, 0) From 65b8090ad0f32c84fe02e19b042d25d846d89977 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Tue, 13 Oct 2020 00:14:14 +0800 Subject: [PATCH 45/88] =?UTF-8?q?feat:=20=E5=85=BC=E5=AE=B9=E5=89=8D?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E4=B8=8D=E5=88=86=E7=A6=BB=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/tpl/tpl.go | 15 +++++++++++++++ router/router.go | 9 +++++++-- router/system/sys_router.go | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 apis/tpl/tpl.go diff --git a/apis/tpl/tpl.go b/apis/tpl/tpl.go new file mode 100644 index 0000000..e659d5f --- /dev/null +++ b/apis/tpl/tpl.go @@ -0,0 +1,15 @@ +package tpl + +import ( + "net/http" + + "github.com/gin-gonic/gin" +) + +/* + @Author : lanyulei +*/ + +func Tpl(c *gin.Context) { + c.HTML(http.StatusOK, "index.html", gin.H{}) +} diff --git a/router/router.go b/router/router.go index 701f28a..dfd4e0a 100644 --- a/router/router.go +++ b/router/router.go @@ -1,6 +1,7 @@ package router import ( + "ferry/apis/tpl" "ferry/pkg/jwtauth" "ferry/router/dashboard" "ferry/router/process" @@ -19,7 +20,7 @@ func InitSysRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddleware) *gin systemRouter.SysBaseRouter(g) // 静态文件 - sysStaticFileRouter(g) + sysStaticFileRouter(g, r) // swagger;注意:生产环境可以注释掉 sysSwaggerRouter(g) @@ -33,8 +34,9 @@ func InitSysRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddleware) *gin return g } -func sysStaticFileRouter(r *gin.RouterGroup) { +func sysStaticFileRouter(r *gin.RouterGroup, g *gin.Engine) { r.Static("/static", "./static") + g.LoadHTMLGlob("template/web/index.html") } func sysSwaggerRouter(r *gin.RouterGroup) { @@ -48,6 +50,9 @@ func sysCheckRoleRouterInit(r *gin.RouterGroup, authMiddleware *jwtauth.GinJWTMi v1 := r.Group("/api/v1") + // 兼容前后端不分离的情 + r.GET("/", tpl.Tpl) + // 首页 dashboard.RegisterDashboardRouter(v1, authMiddleware) diff --git a/router/system/sys_router.go b/router/system/sys_router.go index e466364..23bf18c 100644 --- a/router/system/sys_router.go +++ b/router/system/sys_router.go @@ -14,7 +14,7 @@ import ( ) func SysBaseRouter(r *gin.RouterGroup) { - r.GET("/", system.HelloWorld) + //r.GET("/", system.HelloWorld) r.GET("/info", handler.Ping) } From ccc0a1c3c176e13943102a14e68978b2838523a7 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Tue, 13 Oct 2020 22:37:35 +0800 Subject: [PATCH 46/88] fix: fix bug. --- template/web/index.html | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 template/web/index.html diff --git a/template/web/index.html b/template/web/index.html new file mode 100644 index 0000000..e69de29 From c1ee9415a131af997e57f880088136e56b09c557 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 14 Oct 2020 18:03:11 +0800 Subject: [PATCH 47/88] =?UTF-8?q?fix:=20=E5=AE=A1=E6=89=B9=E9=80=80?= =?UTF-8?q?=E5=9B=9E=E6=97=A0=E6=B3=95=E7=BC=96=E8=BE=91,=20fix=20#71?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/handle.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/service/handle.go b/pkg/service/handle.go index 3da4c44..f1297c1 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -648,7 +648,9 @@ func (h *Handle) HandleWorkOrder( // 是否可写,只有可写的模版可以更新数据 updateStatus := false - if writeTplList, writeOK := h.stateValue["writeTpls"]; writeOK { + if h.stateValue["clazz"].(string) == "start" { + updateStatus = true + } else if writeTplList, writeOK := h.stateValue["writeTpls"]; writeOK { tplListTag: for _, writeTplId := range writeTplList.([]interface{}) { if writeTplId == t["tplId"] { // 可写 From 47d44b035773b5cd3802a70cd83e4dc4d26ab354 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 22 Oct 2020 10:07:48 +0800 Subject: [PATCH 48/88] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=BC=96=E8=AF=91=E7=A8=8B=E5=BA=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/web/css/app.7b039fcc.css | 1 + static/web/css/chunk-05a99c67.d0296c60.css | 1 + static/web/css/chunk-07066085.225eed1b.css | 1 + static/web/css/chunk-1feb7e04.f249e4b9.css | 1 + static/web/css/chunk-39b1e937.3556198d.css | 1 + static/web/css/chunk-4bef97e6.efbef20a.css | 1 + static/web/css/chunk-722029dc.8082f0a2.css | 26 + static/web/css/chunk-a6becd9c.6f7ef42c.css | 13 + static/web/css/chunk-libs.70d0db3f.css | 1 + static/web/fonts/eiconfont.016bbe3f.woff | Bin 0 -> 25192 bytes static/web/fonts/eiconfont.0ff67604.ttf | Bin 0 -> 38840 bytes static/web/fonts/eiconfont.ae6bc167.eot | Bin 0 -> 39012 bytes static/web/fonts/element-icons.535877f5.woff | Bin 0 -> 28200 bytes static/web/fonts/element-icons.732389de.ttf | Bin 0 -> 55956 bytes .../fonts/fontawesome-webfont.674f50d2.eot | Bin 0 -> 165742 bytes .../fonts/fontawesome-webfont.af7ae505.woff2 | Bin 0 -> 77160 bytes .../fonts/fontawesome-webfont.b06871f2.ttf | Bin 0 -> 165548 bytes .../fonts/fontawesome-webfont.fee66e71.woff | Bin 0 -> 98024 bytes .../web/fonts/iconfont.34ea3475.34ea3475.woff | Bin 0 -> 7724 bytes static/web/fonts/iconfont.34ea3475.woff | Bin 0 -> 7724 bytes .../web/fonts/iconfont.4d5a9051.4d5a9051.ttf | Bin 0 -> 12348 bytes static/web/fonts/iconfont.4d5a9051.ttf | Bin 0 -> 12348 bytes .../web/fonts/iconfont.8efbc988.8efbc988.eot | Bin 0 -> 12516 bytes static/web/fonts/iconfont.8efbc988.eot | Bin 0 -> 12516 bytes static/web/img/401.089007e7.gif | Bin 0 -> 164227 bytes static/web/img/404.a57b6f31.png | Bin 0 -> 98071 bytes static/web/img/404_cloud.0f4bc32b.png | Bin 0 -> 4766 bytes static/web/img/eiconfont.30cb46e7.svg | 254 ++ static/web/img/end.9687f898.svg | 19 + static/web/img/exclusive-gateway.56b82dfd.svg | 22 + .../web/img/fontawesome-webfont.912ec66d.svg | 2671 +++++++++++++++++ static/web/img/icon_java.d3cc233a.svg | 1 + static/web/img/icon_mail.0f68d5c7.svg | 1 + static/web/img/icon_message.01031aed.svg | 1 + static/web/img/icon_receive.a6c46918.svg | 1 + static/web/img/icon_script.07c7423e.svg | 1 + static/web/img/icon_signal.0e96b3b6.svg | 1 + static/web/img/icon_timer.b4fcbba6.svg | 1 + static/web/img/icon_user.2b39cf22.svg | 1 + static/web/img/iconfont.6c66fc36.svg | 59 + static/web/img/iconfont.f0e930ef.f0e930ef.svg | 155 + static/web/img/iconfont.f0e930ef.svg | 155 + static/web/img/login.ede1cdb8.png | Bin 0 -> 30551 bytes static/web/img/parallel-gateway.dfb4ebaf.svg | 22 + static/web/img/receive-task.e1131038.svg | 21 + static/web/img/start.894f1842.svg | 19 + static/web/img/user-task.90bd34cf.svg | 20 + static/web/js/app.28494f00.js | 1 + static/web/js/chunk-05a99c67.bc0bb6be.js | 1 + static/web/js/chunk-07066085.4abdd204.js | 1 + static/web/js/chunk-192165dd.7d0f452c.js | 1 + static/web/js/chunk-1feb7e04.17b2a605.js | 1 + static/web/js/chunk-2d0e2366.340e6654.js | 1 + static/web/js/chunk-2d2105d3.b54ad484.js | 1 + static/web/js/chunk-2d230fe7.19def69d.js | 1 + static/web/js/chunk-39b1e937.3b725365.js | 1 + static/web/js/chunk-47c58a28.14a58c33.js | 9 + static/web/js/chunk-4bef97e6.435d3ab1.js | 1 + static/web/js/chunk-50a983d1.babc8539.js | 1 + static/web/js/chunk-67636666.9f642eba.js | 274 ++ static/web/js/chunk-722029dc.5fa13c34.js | 35 + static/web/js/chunk-748b566e.fc60d53a.js | 1 + static/web/js/chunk-77c80c5a.f30ea743.js | 1 + static/web/js/chunk-a6becd9c.a67a3fcd.js | 1 + static/web/js/chunk-elementUI.12e9767d.js | 1 + static/web/js/chunk-libs.94689477.js | 75 + template/web/index.html | 187 ++ 67 files changed, 4066 insertions(+) create mode 100644 static/web/css/app.7b039fcc.css create mode 100644 static/web/css/chunk-05a99c67.d0296c60.css create mode 100644 static/web/css/chunk-07066085.225eed1b.css create mode 100644 static/web/css/chunk-1feb7e04.f249e4b9.css create mode 100644 static/web/css/chunk-39b1e937.3556198d.css create mode 100644 static/web/css/chunk-4bef97e6.efbef20a.css create mode 100644 static/web/css/chunk-722029dc.8082f0a2.css create mode 100644 static/web/css/chunk-a6becd9c.6f7ef42c.css create mode 100644 static/web/css/chunk-libs.70d0db3f.css create mode 100644 static/web/fonts/eiconfont.016bbe3f.woff create mode 100644 static/web/fonts/eiconfont.0ff67604.ttf create mode 100644 static/web/fonts/eiconfont.ae6bc167.eot create mode 100644 static/web/fonts/element-icons.535877f5.woff create mode 100644 static/web/fonts/element-icons.732389de.ttf create mode 100644 static/web/fonts/fontawesome-webfont.674f50d2.eot create mode 100644 static/web/fonts/fontawesome-webfont.af7ae505.woff2 create mode 100644 static/web/fonts/fontawesome-webfont.b06871f2.ttf create mode 100644 static/web/fonts/fontawesome-webfont.fee66e71.woff create mode 100644 static/web/fonts/iconfont.34ea3475.34ea3475.woff create mode 100644 static/web/fonts/iconfont.34ea3475.woff create mode 100644 static/web/fonts/iconfont.4d5a9051.4d5a9051.ttf create mode 100644 static/web/fonts/iconfont.4d5a9051.ttf create mode 100644 static/web/fonts/iconfont.8efbc988.8efbc988.eot create mode 100644 static/web/fonts/iconfont.8efbc988.eot create mode 100644 static/web/img/401.089007e7.gif create mode 100644 static/web/img/404.a57b6f31.png create mode 100644 static/web/img/404_cloud.0f4bc32b.png create mode 100644 static/web/img/eiconfont.30cb46e7.svg create mode 100644 static/web/img/end.9687f898.svg create mode 100644 static/web/img/exclusive-gateway.56b82dfd.svg create mode 100644 static/web/img/fontawesome-webfont.912ec66d.svg create mode 100644 static/web/img/icon_java.d3cc233a.svg create mode 100644 static/web/img/icon_mail.0f68d5c7.svg create mode 100644 static/web/img/icon_message.01031aed.svg create mode 100644 static/web/img/icon_receive.a6c46918.svg create mode 100644 static/web/img/icon_script.07c7423e.svg create mode 100644 static/web/img/icon_signal.0e96b3b6.svg create mode 100644 static/web/img/icon_timer.b4fcbba6.svg create mode 100644 static/web/img/icon_user.2b39cf22.svg create mode 100644 static/web/img/iconfont.6c66fc36.svg create mode 100644 static/web/img/iconfont.f0e930ef.f0e930ef.svg create mode 100644 static/web/img/iconfont.f0e930ef.svg create mode 100644 static/web/img/login.ede1cdb8.png create mode 100644 static/web/img/parallel-gateway.dfb4ebaf.svg create mode 100644 static/web/img/receive-task.e1131038.svg create mode 100644 static/web/img/start.894f1842.svg create mode 100644 static/web/img/user-task.90bd34cf.svg create mode 100644 static/web/js/app.28494f00.js create mode 100644 static/web/js/chunk-05a99c67.bc0bb6be.js create mode 100644 static/web/js/chunk-07066085.4abdd204.js create mode 100644 static/web/js/chunk-192165dd.7d0f452c.js create mode 100644 static/web/js/chunk-1feb7e04.17b2a605.js create mode 100644 static/web/js/chunk-2d0e2366.340e6654.js create mode 100644 static/web/js/chunk-2d2105d3.b54ad484.js create mode 100644 static/web/js/chunk-2d230fe7.19def69d.js create mode 100644 static/web/js/chunk-39b1e937.3b725365.js create mode 100644 static/web/js/chunk-47c58a28.14a58c33.js create mode 100644 static/web/js/chunk-4bef97e6.435d3ab1.js create mode 100644 static/web/js/chunk-50a983d1.babc8539.js create mode 100644 static/web/js/chunk-67636666.9f642eba.js create mode 100644 static/web/js/chunk-722029dc.5fa13c34.js create mode 100644 static/web/js/chunk-748b566e.fc60d53a.js create mode 100644 static/web/js/chunk-77c80c5a.f30ea743.js create mode 100644 static/web/js/chunk-a6becd9c.a67a3fcd.js create mode 100644 static/web/js/chunk-elementUI.12e9767d.js create mode 100644 static/web/js/chunk-libs.94689477.js diff --git a/static/web/css/app.7b039fcc.css b/static/web/css/app.7b039fcc.css new file mode 100644 index 0000000..3bb76a4 --- /dev/null +++ b/static/web/css/app.7b039fcc.css @@ -0,0 +1 @@ +@font-face{font-family:element-icons;src:url(../../../static/web/fonts/element-icons.535877f5.woff) format("woff"),url(../../../static/web/fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotating{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:transparent}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#1890ff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-size:16px;background-color:#fff;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#1890ff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#1890ff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#1890ff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;display:inline-block;vertical-align:top;font-size:0;padding:0;margin:0}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;vertical-align:top;display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;margin:0}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#1890ff}.el-pager li.active{color:#1890ff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px;padding-bottom:10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:transparent;border:none;outline:none;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#1890ff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:20px;padding-top:10px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #dfe4ed;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:none}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e8f4ff;color:#46a6ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #e6ebf5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #1890ff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:none;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #1890ff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #dfe4ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:none;background-color:#e8f4ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#1890ff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:none;background-color:#e8f4ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu__title:hover{background-color:#e8f4ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#1890ff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button,.el-radio-button__inner{position:relative;display:inline-block;outline:none}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:400;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#1890ff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#1890ff;border-color:#1890ff;-webkit-box-shadow:-1px 0 0 0 #1890ff;box-shadow:-1px 0 0 0 #1890ff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #1890ff;box-shadow:0 0 2px 2px #1890ff}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#1890ff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:none;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#1890ff;background-color:#1890ff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #dfe4ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#1890ff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#1890ff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#dfe4ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#1890ff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotate(180deg);transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#dfe4ed}.el-select .el-input.is-focus .el-input__inner{border-color:#1890ff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:none;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;-webkit-transform:translateY(.5px);transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;background-color:#fff;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;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}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table td,.el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small{font-size:12px}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #dfe6ec}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.el-table th>.cell{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#1890ff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #dfe6ec}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#e6ebf5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th{border-right:1px solid #dfe6ec}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #dfe6ec;border-bottom-width:1px}.el-table--border th{border-bottom:1px solid #dfe6ec}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#e6ebf5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff;border-bottom:1px solid #dfe6ec}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #dfe6ec;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #dfe6ec}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #dfe6ec}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #dfe6ec}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#1890ff}.el-table .descending .sort-caret.descending{border-top-color:#1890ff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#e8f4ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#e8f4ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #dfe6ec;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #e6ebf5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#e8f4ff;color:#46a6ff}.el-table-filter__list-item.is-active{background-color:#1890ff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #e6ebf5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#1890ff}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f6fc}.el-date-table td{width:32px;padding:4px 0;text-align:center;cursor:pointer;position:relative}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td div{padding:3px 0}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#1890ff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#1890ff}.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#1890ff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#1890ff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#1890ff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #e6ebf5}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#1890ff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#1890ff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#1890ff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#1890ff}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#1890ff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#1890ff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #e6ebf5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#1890ff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#1890ff;font-weight:700}.time-select-item.disabled{color:#dfe4ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#1890ff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#dfe4ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #dfe4ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:none;cursor:pointer}.el-picker-panel__shortcut:hover{color:#1890ff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#1890ff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:transparent;cursor:pointer;outline:none;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#1890ff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#1890ff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #dfe4ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #dfe4ed;border-bottom:1px solid #dfe4ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#1890ff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #dfe4ed}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #e6ebf5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #e6ebf5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px;padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:none;background:transparent;font-size:16px;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#1890ff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#ff4949}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#13ce66}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#ffba00}.el-message-box__status.el-icon-error{color:#ff4949}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#ff4949;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#1890ff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px 0}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini.el-form-item{margin-bottom:18px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#ff4949;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#ff4949;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#ff4949}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#ff4949}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#1890ff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8);transform:scale(.8)}.el-tabs__new-tab:hover{color:#1890ff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#dfe4ed;z-index:1}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #1890ff inset;box-shadow:inset 0 0 2px 2px #1890ff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#1890ff}.el-tabs__item:hover{color:#1890ff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #dfe4ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #dfe4ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #dfe4ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #dfe4ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#1890ff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#1890ff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #dfe4ed;border-bottom:none;border-top:1px solid #dfe4ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #dfe4ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #dfe4ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #dfe4ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #dfe4ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #dfe4ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #dfe4ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #dfe4ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#1890ff}.el-tree-node{white-space:nowrap;outline:none}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#1890ff;color:#fff}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#edf6ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#e7faf0;color:#13ce66}.el-alert--success.is-light .el-alert__description{color:#13ce66}.el-alert--success.is-dark{background-color:#13ce66;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fff8e6;color:#ffba00}.el-alert--warning.is-light .el-alert__description{color:#ffba00}.el-alert--warning.is-dark{background-color:#ffba00;color:#fff}.el-alert--error.is-light{background-color:#ffeded;color:#ff4949}.el-alert--error.is-light .el-alert__description{color:#ff4949}.el-alert--error.is-dark{background-color:#ff4949;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #e6ebf5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#13ce66}.el-notification .el-icon-error{color:#ff4949}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#ffba00}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#1890ff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#1890ff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#dfe4ed;color:#dfe4ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#dfe4ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px 0}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table;content:""}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#dfe4ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1)}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#1890ff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{content:"";height:100%}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #1890ff;background-color:#fff;border-radius:50%;-webkit-transition:.2s;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;background-color:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px}.el-slider.is-vertical .el-slider__button-wrapper,.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#1890ff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#1890ff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1890ff;stroke-linecap:round}.el-loading-spinner i{color:#1890ff}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{position:relative;right:4.16667%}.el-col-push-1{position:relative;left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{position:relative;right:8.33333%}.el-col-push-2{position:relative;left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{position:relative;right:16.66667%}.el-col-push-4{position:relative;left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{position:relative;right:20.83333%}.el-col-push-5{position:relative;left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{position:relative;right:29.16667%}.el-col-push-7{position:relative;left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{position:relative;right:33.33333%}.el-col-push-8{position:relative;left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{position:relative;right:41.66667%}.el-col-push-10{position:relative;left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{position:relative;right:45.83333%}.el-col-push-11{position:relative;left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{position:relative;right:54.16667%}.el-col-push-13{position:relative;left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{position:relative;right:58.33333%}.el-col-push-14{position:relative;left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{position:relative;right:66.66667%}.el-col-push-16{position:relative;left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{position:relative;right:70.83333%}.el-col-push-17{position:relative;left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{position:relative;right:79.16667%}.el-col-push-19{position:relative;left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{position:relative;right:83.33333%}.el-col-push-20{position:relative;left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{position:relative;right:91.66667%}.el-col-push-22{position:relative;left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{position:relative;right:95.83333%}.el-col-push-23{position:relative;left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#1890ff;color:#1890ff}.el-upload:focus .el-upload-dragger{border-color:#1890ff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#1890ff;font-style:normal}.el-upload-dragger:hover{border-color:#1890ff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #1890ff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#13ce66}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#1890ff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#1890ff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#1890ff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:transparent;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#13ce66}.el-progress.is-success .el-progress__text{color:#13ce66}.el-progress.is-warning .el-progress-bar__inner{background-color:#ffba00}.el-progress.is-warning .el-progress__text{color:#ffba00}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff4949}.el-progress.is-exception .el-progress__text{color:#ff4949}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#e6ebf5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#1890ff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#e6ebf5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#e7faf0;border-color:#d0f5e0}.el-message--success .el-message__content{color:#13ce66}.el-message--warning{background-color:#fff8e6;border-color:#fff1cc}.el-message--warning .el-message__content{color:#ffba00}.el-message--error{background-color:#ffeded;border-color:#ffdbdb}.el-message--error .el-message__content{color:#ff4949}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#13ce66}.el-message .el-icon-error{color:#ff4949}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#ffba00}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#ff4949;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#1890ff}.el-badge__content--success{background-color:#13ce66}.el-badge__content--warning{background-color:#ffba00}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#ff4949}.el-card{border-radius:4px;border:1px solid #e6ebf5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon,.el-rate__item{display:inline-block;position:relative}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal,.el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#13ce66;border-color:#13ce66}.el-step__head.is-error{color:#ff4949;border-color:#ff4949}.el-step__head.is-finish{color:#1890ff;border-color:#1890ff}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#13ce66}.el-step__title.is-error{color:#ff4949}.el-step__title.is-finish{color:#1890ff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#13ce66}.el-step__description.is-error{color:#ff4949}.el-step__description.is-finish{color:#1890ff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:transparent;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:none;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:none;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45);transform:scale(.45)}.collapse-transition{-webkit-transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out;transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{-webkit-transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out;transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #e6ebf5;border-bottom:1px solid #e6ebf5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #e6ebf5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:none}.el-collapse-item__arrow{margin:0 8px 0 auto;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#1890ff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #e6ebf5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#e8f4ff;border-color:#d1e9ff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#1890ff;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#1890ff}.el-tag .el-tag__close{color:#1890ff}.el-tag .el-tag__close:hover{color:#fff;background-color:#1890ff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#e7faf0;border-color:#d0f5e0;color:#13ce66}.el-tag.el-tag--success.is-hit{border-color:#13ce66}.el-tag.el-tag--success .el-tag__close{color:#13ce66}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#13ce66}.el-tag.el-tag--warning{background-color:#fff8e6;border-color:#fff1cc;color:#ffba00}.el-tag.el-tag--warning.is-hit{border-color:#ffba00}.el-tag.el-tag--warning .el-tag__close{color:#ffba00}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffba00}.el-tag.el-tag--danger{background-color:#ffeded;border-color:#ffdbdb;color:#ff4949}.el-tag.el-tag--danger.is-hit{border-color:#ff4949}.el-tag.el-tag--danger .el-tag__close{color:#ff4949}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff4949}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#1890ff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#1890ff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#46a6ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#13ce66;border-color:#13ce66;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#13ce66}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#42d885}.el-tag--dark.el-tag--warning{background-color:#ffba00;border-color:#ffba00;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#ffba00}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffc833}.el-tag--dark.el-tag--danger{background-color:#ff4949;border-color:#ff4949;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#ff4949}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff6d6d}.el-tag--plain{background-color:#fff;border-color:#a3d3ff;color:#1890ff}.el-tag--plain.is-hit{border-color:#1890ff}.el-tag--plain .el-tag__close{color:#1890ff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#1890ff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#a1ebc2;color:#13ce66}.el-tag--plain.el-tag--success.is-hit{border-color:#13ce66}.el-tag--plain.el-tag--success .el-tag__close{color:#13ce66}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#13ce66}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#ffe399;color:#ffba00}.el-tag--plain.el-tag--warning.is-hit{border-color:#ffba00}.el-tag--plain.el-tag--warning .el-tag__close{color:#ffba00}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffba00}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#ffb6b6;color:#ff4949}.el-tag--plain.el-tag--danger.is-hit{border-color:#ff4949}.el-tag--plain.el-tag--danger .el-tag__close{color:#ff4949}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff4949}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:focus{border-color:#1890ff}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader .el-input.is-focus .el-input__inner{border-color:#1890ff}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #dfe4ed;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:none;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#1890ff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{font-size:12px;margin-top:8px;width:280px}.el-color-predefine,.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex}.el-color-predefine__colors{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #1890ff;box-shadow:0 0 3px 2px #1890ff}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(hsla(0,0%,100%,0)));background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(transparent));background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#1890ff;border-color:#1890ff}.el-color-dropdown__link-btn{cursor:pointer;color:#1890ff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#1890ff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;cursor:pointer}.el-color-picker__color,.el-color-picker__trigger{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-color-picker__color{display:block;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:none;border-color:#1890ff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#ff4949}.el-textarea.is-exceed .el-input__count{color:#ff4949}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:none;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input__inner:focus{outline:none;border-color:#1890ff}.el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#c0c4cc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{position:absolute;left:5px;top:0;color:#c0c4cc}.el-input__icon,.el-input__prefix{height:100%;text-align:center;-webkit-transition:all .3s;transition:all .3s}.el-input__icon{width:25px;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__inner{outline:none;border-color:#1890ff}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#ff4949}.el-input.is-exceed .el-input__suffix .el-input__count{color:#ff4949}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{border-left:0}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#1890ff;font-size:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer-panel{border:1px solid #e6ebf5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#1890ff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #e6ebf5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;padding:20px}.el-footer,.el-main{-webkit-box-sizing:border-box;box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #dfe4ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#dfe4ed;border-radius:50%;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}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#1890ff}.el-timeline-item__node--success{background-color:#13ce66}.el-timeline-item__node--warning{background-color:#ffba00}.el-timeline-item__node--danger{background-color:#ff4949}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;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}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:none;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #1890ff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#1890ff}.el-link.el-link--default:after{border-color:#1890ff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#1890ff}.el-link.el-link--primary:hover{color:#46a6ff}.el-link.el-link--primary:after{border-color:#1890ff}.el-link.el-link--primary.is-disabled{color:#8cc8ff}.el-link.el-link--primary.is-underline:hover:after{border-color:#1890ff}.el-link.el-link--danger{color:#ff4949}.el-link.el-link--danger:hover{color:#ff6d6d}.el-link.el-link--danger:after{border-color:#ff4949}.el-link.el-link--danger.is-disabled{color:#ffa4a4}.el-link.el-link--danger.is-underline:hover:after{border-color:#ff4949}.el-link.el-link--success{color:#13ce66}.el-link.el-link--success:hover{color:#42d885}.el-link.el-link--success:after{border-color:#13ce66}.el-link.el-link--success.is-disabled{color:#89e7b3}.el-link.el-link--success.is-underline:hover:after{border-color:#13ce66}.el-link.el-link--warning{color:#ffba00}.el-link.el-link--warning:hover{color:#ffc833}.el-link.el-link--warning:after{border-color:#ffba00}.el-link.el-link--warning.is-disabled{color:#ffdd80}.el-link.el-link--warning.is-underline:hover:after{border-color:#ffba00}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-link.el-link--info.is-underline:hover:after{border-color:#909399}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-image__error{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;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{width:100%;height:100%;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}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-color:#dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:400;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button.is-round{padding:12px 20px}.el-button:focus,.el-button:hover{color:#1890ff;border-color:#badeff;background-color:#e8f4ff}.el-button:active{color:#1682e6;border-color:#1682e6;outline:none}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#1890ff;color:#1890ff}.el-button.is-plain:active{background:#fff;outline:none}.el-button.is-active,.el-button.is-plain:active{border-color:#1682e6;color:#1682e6}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#e6ebf5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#1890ff;border-color:#1890ff}.el-button--primary:focus,.el-button--primary:hover{background:#46a6ff;border-color:#46a6ff;color:#fff}.el-button--primary:active{outline:none}.el-button--primary.is-active,.el-button--primary:active{background:#1682e6;border-color:#1682e6;color:#fff}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#8cc8ff;border-color:#8cc8ff}.el-button--primary.is-plain{color:#1890ff;background:#e8f4ff;border-color:#a3d3ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#1890ff;border-color:#1890ff;color:#fff}.el-button--primary.is-plain:active{background:#1682e6;border-color:#1682e6;color:#fff;outline:none}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#74bcff;background-color:#e8f4ff;border-color:#d1e9ff}.el-button--success{color:#fff;background-color:#13ce66;border-color:#13ce66}.el-button--success:focus,.el-button--success:hover{background:#42d885;border-color:#42d885;color:#fff}.el-button--success:active{outline:none}.el-button--success.is-active,.el-button--success:active{background:#11b95c;border-color:#11b95c;color:#fff}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#89e7b3;border-color:#89e7b3}.el-button--success.is-plain{color:#13ce66;background:#e7faf0;border-color:#a1ebc2}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#13ce66;border-color:#13ce66;color:#fff}.el-button--success.is-plain:active{background:#11b95c;border-color:#11b95c;color:#fff;outline:none}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#71e2a3;background-color:#e7faf0;border-color:#d0f5e0}.el-button--warning{color:#fff;background-color:#ffba00;border-color:#ffba00}.el-button--warning:focus,.el-button--warning:hover{background:#ffc833;border-color:#ffc833;color:#fff}.el-button--warning:active{outline:none}.el-button--warning.is-active,.el-button--warning:active{background:#e6a700;border-color:#e6a700;color:#fff}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#ffdd80;border-color:#ffdd80}.el-button--warning.is-plain{color:#ffba00;background:#fff8e6;border-color:#ffe399}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#ffba00;border-color:#ffba00;color:#fff}.el-button--warning.is-plain:active{background:#e6a700;border-color:#e6a700;color:#fff;outline:none}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#ffd666;background-color:#fff8e6;border-color:#fff1cc}.el-button--danger{color:#fff;background-color:#ff4949;border-color:#ff4949}.el-button--danger:focus,.el-button--danger:hover{background:#ff6d6d;border-color:#ff6d6d;color:#fff}.el-button--danger:active{outline:none}.el-button--danger.is-active,.el-button--danger:active{background:#e64242;border-color:#e64242;color:#fff}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#ffa4a4;border-color:#ffa4a4}.el-button--danger.is-plain{color:#ff4949;background:#ffeded;border-color:#ffb6b6}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#ff4949;border-color:#ff4949;color:#fff}.el-button--danger.is-plain:active{background:#e64242;border-color:#e64242;color:#fff;outline:none}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#ff9292;background-color:#ffeded;border-color:#ffdbdb}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info:active{outline:none}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:none}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#1890ff;background:transparent;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#46a6ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#1682e6;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #dfe6ec}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-calendar-table td{border-bottom:1px solid #dfe6ec;border-right:1px solid #dfe6ec;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#1890ff}.el-calendar-table tr:first-child td{border-top:1px solid #dfe6ec}.el-calendar-table tr td:first-child{border-left:1px solid #dfe6ec}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;color:#1890ff;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;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{line-height:24px}.el-page-header,.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex}.el-page-header__left{cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#dcdfe6}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#1890ff}.el-checkbox.is-bordered.is-disabled{border-color:#e6ebf5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#1890ff;border-color:#1890ff}.el-checkbox__input.is-checked .el-checkbox__inner:after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#1890ff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#1890ff}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1890ff;border-color:#1890ff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#1890ff}.el-checkbox__inner:after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:none;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#1890ff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:none;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#1890ff;border-color:#1890ff;-webkit-box-shadow:-1px 0 0 0 #74bcff;box-shadow:-1px 0 0 0 #74bcff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#1890ff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#e6ebf5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#1890ff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;font-weight:500;line-height:1;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;outline:none;font-size:14px;margin-right:30px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#1890ff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#e6ebf5}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#1890ff;background:#1890ff}.el-radio__input.is-checked .el-radio__inner:after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#1890ff}.el-radio__input.is-focus .el-radio__inner{border-color:#1890ff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;position:relative;cursor:pointer;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#1890ff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #1890ff;box-shadow:0 0 2px 2px #1890ff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:background-color .3s;transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .12s ease-out;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #dfe4ed;border-radius:4px}.el-cascader-menu{min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;border-right:1px solid #dfe4ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:none}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#1890ff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@-webkit-keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@-webkit-keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.el-drawer{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;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-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px;padding-bottom:0}.el-drawer__header>:first-child,.el-drawer__title{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__body>*{-webkit-box-sizing:border-box;box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer__container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .28s;transition:opacity .28s}.fade-enter,.fade-leave-active{opacity:0}.fade-transform-enter-active,.fade-transform-leave-active{-webkit-transition:all .5s;transition:all .5s}.fade-transform-enter{opacity:0;-webkit-transform:translateX(-30px);transform:translateX(-30px)}.fade-transform-leave-to{opacity:0;-webkit-transform:translateX(30px);transform:translateX(30px)}.breadcrumb-enter-active,.breadcrumb-leave-active{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-enter,.breadcrumb-leave-active{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.breadcrumb-move{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-leave-active{position:absolute}.el-breadcrumb__inner,.el-breadcrumb__inner a{font-weight:400!important}.el-upload input[type=file]{display:none!important}.el-upload__input{display:none}.cell .el-tag{margin-right:0}.small-padding .cell{padding-left:5px;padding-right:5px}.fixed-width .el-button--mini{padding:7px 10px;width:60px}.status-col .cell{padding:0 10px;text-align:center}.status-col .cell .el-tag{margin-right:0}.el-dialog{-webkit-transform:none;transform:none;left:0;position:relative;margin:0 auto}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{width:100%;height:200px}.el-dropdown-menu a{display:block}.el-range-editor.el-input__inner{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.el-range-separator{-webkit-box-sizing:content-box;box-sizing:content-box}#app .main-container{min-height:100%;-webkit-transition:margin-left .28s;transition:margin-left .28s;margin-left:210px;position:relative}#app .sidebar-container{-webkit-transition:width .28s;transition:width .28s;width:210px!important;background-color:#304156;height:100%;position:fixed;font-size:0;top:0;bottom:0;left:0;z-index:1001;overflow:hidden}#app .sidebar-container .horizontal-collapse-transition{-webkit-transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out;transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out}#app .sidebar-container .scrollbar-wrapper{overflow-x:hidden!important}#app .sidebar-container .el-scrollbar__bar.is-vertical{right:0}#app .sidebar-container .el-scrollbar{height:100%}#app .sidebar-container.has-logo .el-scrollbar{height:calc(100% - 50px)}#app .sidebar-container .is-horizontal{display:none}#app .sidebar-container a{display:inline-block;width:100%;overflow:hidden}#app .sidebar-container .svg-icon{margin-right:16px}#app .sidebar-container .el-menu{border:none;height:100%;width:100%!important}#app .sidebar-container .el-submenu__title:hover,#app .sidebar-container .submenu-title-noDropdown:hover{background-color:#263445!important}#app .sidebar-container .is-active>.el-submenu__title{color:#f4f4f5!important}#app .sidebar-container .el-submenu .el-menu-item,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title{min-width:210px!important;background-color:#1f2d3d!important}#app .sidebar-container .el-submenu .el-menu-item:hover,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover{background-color:#001528!important}#app .hideSidebar .sidebar-container{width:54px!important}#app .hideSidebar .main-container{margin-left:54px}#app .hideSidebar .submenu-title-noDropdown{padding:0!important;position:relative}#app .hideSidebar .submenu-title-noDropdown .el-tooltip{padding:0!important}#app .hideSidebar .submenu-title-noDropdown .el-tooltip .svg-icon{margin-left:20px}#app .hideSidebar .el-submenu{overflow:hidden}#app .hideSidebar .el-submenu>.el-submenu__title{padding:0!important}#app .hideSidebar .el-submenu>.el-submenu__title .svg-icon{margin-left:20px}#app .hideSidebar .el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}#app .hideSidebar .el-menu--collapse .el-submenu>.el-submenu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}#app .el-menu--collapse .el-menu .el-submenu{min-width:210px!important}#app .mobile .main-container{margin-left:0}#app .mobile .sidebar-container{-webkit-transition:-webkit-transform .28s;transition:-webkit-transform .28s;transition:transform .28s;transition:transform .28s,-webkit-transform .28s;width:210px!important}#app .mobile.hideSidebar .sidebar-container{pointer-events:none;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:translate3d(-210px,0,0);transform:translate3d(-210px,0,0)}#app .withoutAnimation .main-container,#app .withoutAnimation .sidebar-container{-webkit-transition:none;transition:none}.el-menu--vertical>.el-menu .svg-icon{margin-right:16px}.el-menu--vertical .el-menu-item:hover,.el-menu--vertical .nest-menu .el-submenu>.el-submenu__title:hover{background-color:#263445!important}.el-menu--vertical>.el-menu--popup{max-height:100vh;overflow-y:auto}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-track-piece{background:#d3dce6}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar{width:6px}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-thumb{background:#99a9bf;border-radius:20px}.blue-btn{background:#324157}.blue-btn:hover{color:#324157}.blue-btn:hover:after,.blue-btn:hover:before{background:#324157}.light-blue-btn{background:#3a71a8}.light-blue-btn:hover{color:#3a71a8}.light-blue-btn:hover:after,.light-blue-btn:hover:before{background:#3a71a8}.red-btn{background:#c03639}.red-btn:hover{color:#c03639}.red-btn:hover:after,.red-btn:hover:before{background:#c03639}.pink-btn{background:#e65d6e}.pink-btn:hover{color:#e65d6e}.pink-btn:hover:after,.pink-btn:hover:before{background:#e65d6e}.green-btn{background:#30b08f}.green-btn:hover{color:#30b08f}.green-btn:hover:after,.green-btn:hover:before{background:#30b08f}.tiffany-btn{background:#4ab7bd}.tiffany-btn:hover{color:#4ab7bd}.tiffany-btn:hover:after,.tiffany-btn:hover:before{background:#4ab7bd}.yellow-btn{background:#fec171}.yellow-btn:hover{color:#fec171}.yellow-btn:hover:after,.yellow-btn:hover:before{background:#fec171}.pan-btn{font-size:14px;color:#fff;padding:14px 36px;border-radius:8px;border:none;outline:none;-webkit-transition:all .6s ease;transition:all .6s ease;position:relative;display:inline-block}.pan-btn:hover{background:#fff}.pan-btn:hover:after,.pan-btn:hover:before{width:100%;-webkit-transition:all .6s ease;transition:all .6s ease}.pan-btn:after,.pan-btn:before{content:"";position:absolute;top:0;right:0;height:2px;width:0;-webkit-transition:all .4s ease;transition:all .4s ease}.pan-btn:after{right:inherit;top:inherit;left:0;bottom:0}.custom-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;color:#fff;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;padding:10px 15px;font-size:14px;border-radius:4px}body{height:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}label{font-weight:700}html{-webkit-box-sizing:border-box;box-sizing:border-box}#app,html{height:100%}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}.no-padding{padding:0!important}.padding-content{padding:4px 0}a:active,a:focus{outline:none}a,a:focus,a:hover{cursor:pointer;color:inherit;text-decoration:none}div:focus{outline:none}.fr{float:right}.fl{float:left}.pr-5{padding-right:5px}.pl-5{padding-left:5px}.block{display:block}.pointer{cursor:pointer}.inlineBlock{display:block}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}aside{background:#eef1f6;padding:8px 24px;margin-bottom:20px;border-radius:2px;display:block;line-height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color:#2c3e50;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}aside a{color:#337ab7;cursor:pointer}aside a:hover{color:#20a0ff}.app-container{padding:15px}.components-container{margin:30px 50px;position:relative}.pagination-container{margin-top:30px}.text-center{text-align:center}.sub-navbar{height:50px;line-height:50px;position:relative;width:100%;text-align:right;padding-right:20px;-webkit-transition:position .6s ease;transition:position .6s ease;background:-webkit-gradient(linear,left top,right top,from(#20b6f9),color-stop(0,#20b6f9),color-stop(100%,#2178f1),to(#2178f1));background:linear-gradient(90deg,#20b6f9,#20b6f9 0,#2178f1 100%,#2178f1 0)}.sub-navbar .subtitle{font-size:20px;color:#fff}.sub-navbar.deleted,.sub-navbar.draft{background:#d0d0d0}.link-type,.link-type:focus{color:#337ab7;cursor:pointer}.link-type:focus:hover,.link-type:hover{color:#20a0ff}.filter-container{padding-bottom:10px}.filter-container .filter-item{display:inline-block;vertical-align:middle;margin-bottom:10px}.multiselect{line-height:16px}.multiselect--active{z-index:1000!important}.pt5{padding-top:5px}.pr5{padding-right:5px}.pb5{padding-bottom:5px}.mt5{margin-top:5px}.mr5{margin-right:5px}.mb5{margin-bottom:5px}.mb8{margin-bottom:8px}.ml5{margin-left:5px}.mt10{margin-top:10px}.mr10{margin-right:10px}.mb10{margin-bottom:10px}.ml0{margin-left:10px}.mt20{margin-top:20px}.mr20{margin-right:20px}.mb20{margin-bottom:20px}.m20{margin-left:20px}.el-table .el-table__header-wrapper th{word-break:break-word;background-color:#f8f8f9;color:#515a6e;height:40px;font-size:13px}.form-header{font-size:15px;color:#6379bb;border-bottom:1px solid #ddd;margin:8px 10px 25px 10px;padding-bottom:5px}.pagination-container{position:relative;height:25px;margin-bottom:10px;margin-top:15px;padding:10px 20px!important}.pagination-container .el-pagination{right:0;position:absolute}.el-table .fixed-width .el-button--mini{color:#409eff;padding-left:0;padding-right:0;width:inherit}.el-tree-node__content>.el-checkbox{margin-right:8px}.list-group-striped>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.list-group{padding-left:0;list-style:none}.list-group-item{border-bottom:1px solid #e7eaec;border-top:1px solid #e7eaec;margin-bottom:-1px;padding:11px 0;font-size:13px}.pull-right{float:right!important}.el-card__header{padding:14px 15px 7px;min-height:40px}.remove-padding-bottom>.el-card__body{padding-bottom:5px}.card-box{padding-right:15px;padding-left:15px;margin-bottom:10px}.text-navy{color:#1ab394}.text-primary{color:inherit}.text-success{color:#1c84c6}.text-info{color:#23c6c8}.text-warning{color:#f8ac59}.text-danger{color:#ed5565}.text-muted{color:#888}.img-circle{border-radius:50%}.img-lg{width:120px;height:120px}.avatar-upload-preview{position:absolute;top:50%;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);width:180px;height:180px;border-radius:50%;-webkit-box-shadow:0 0 4px #ccc;box-shadow:0 0 4px #ccc;overflow:hidden}.showRightPanel{overflow:hidden;position:relative;width:calc(100% - 15px)}.rightPanel-background[data-v-7ce91d5a]{position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity .3s cubic-bezier(.7,.3,.1,1);transition:opacity .3s cubic-bezier(.7,.3,.1,1);background:rgba(0,0,0,.2);z-index:-1}.rightPanel[data-v-7ce91d5a]{width:100%;max-width:260px;height:100vh;position:fixed;top:0;right:0;-webkit-box-shadow:0 0 15px 0 rgba(0,0,0,.05);box-shadow:0 0 15px 0 rgba(0,0,0,.05);-webkit-transition:all .25s cubic-bezier(.7,.3,.1,1);transition:all .25s cubic-bezier(.7,.3,.1,1);-webkit-transform:translate(100%);transform:translate(100%);background:#fff;z-index:40000}.show[data-v-7ce91d5a]{-webkit-transition:all .3s cubic-bezier(.7,.3,.1,1);transition:all .3s cubic-bezier(.7,.3,.1,1)}.show .rightPanel-background[data-v-7ce91d5a]{z-index:20000;opacity:1;width:100%;height:100%}.show .rightPanel[data-v-7ce91d5a]{-webkit-transform:translate(0);transform:translate(0)}.handle-button[data-v-7ce91d5a]{width:48px;height:48px;position:absolute;left:-48px;text-align:center;font-size:24px;border-radius:6px 0 0 6px!important;z-index:0;pointer-events:auto;cursor:pointer;color:#fff;line-height:48px}.handle-button i[data-v-7ce91d5a]{font-size:24px;line-height:48px}.app-main[data-v-92459f82]{min-height:calc(100vh - 50px);width:100%;position:relative;overflow:hidden}.fixed-header+.app-main[data-v-92459f82]{padding-top:50px}.hasTagsView .app-main[data-v-92459f82]{min-height:calc(100vh - 84px)}.hasTagsView .fixed-header+.app-main[data-v-92459f82]{padding-top:84px}.el-popup-parent--hidden .fixed-header{padding-right:15px}.app-breadcrumb.el-breadcrumb[data-v-60fc2e42]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-60fc2e42]{color:#97a8be;cursor:text}.hamburger[data-v-49e15297]{display:inline-block;vertical-align:middle;width:20px;height:20px}.hamburger.is-active[data-v-49e15297]{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.message-title[data-v-be34583a]{font-size:16px;color:#333;font-weight:700;padding-right:8px}.screenfull-svg[data-v-1d75d652]{display:inline-block;cursor:pointer;fill:#5a5e66;width:20px;height:20px;vertical-align:10px}.header-search[data-v-60e4cb60]{font-size:0!important}.header-search .search-icon[data-v-60e4cb60]{cursor:pointer;font-size:18px;vertical-align:middle}.header-search .header-search-select[data-v-60e4cb60]{font-size:18px;-webkit-transition:width .2s;transition:width .2s;width:0;overflow:hidden;background:transparent;border-radius:0;display:inline-block;vertical-align:middle}.header-search .header-search-select[data-v-60e4cb60] .el-input__inner{border-radius:0;border:0;padding-left:0;padding-right:0;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:1px solid #d9d9d9;vertical-align:middle}.header-search.show .header-search-select[data-v-60e4cb60]{width:210px;margin-left:10px}.navbar[data-v-c8149618]{height:50px;overflow:hidden;position:relative;background:#fff;-webkit-box-shadow:0 1px 4px rgba(0,21,41,.08);box-shadow:0 1px 4px rgba(0,21,41,.08)}.navbar .hamburger-container[data-v-c8149618]{line-height:46px;height:100%;float:left;cursor:pointer;-webkit-transition:background .3s;transition:background .3s;-webkit-tap-highlight-color:transparent}.navbar .hamburger-container[data-v-c8149618]:hover{background:rgba(0,0,0,.025)}.navbar .breadcrumb-container[data-v-c8149618]{float:left}.navbar .errLog-container[data-v-c8149618]{display:inline-block;vertical-align:top}.navbar .right-menu[data-v-c8149618]{float:right;height:100%;line-height:50px}.navbar .right-menu[data-v-c8149618]:focus{outline:none}.navbar .right-menu .right-menu-item[data-v-c8149618]{display:inline-block;padding:0 8px;height:100%;font-size:18px;color:#5a5e66;vertical-align:text-bottom}.navbar .right-menu .right-menu-item.hover-effect[data-v-c8149618]{cursor:pointer;-webkit-transition:background .3s;transition:background .3s}.navbar .right-menu .right-menu-item.hover-effect[data-v-c8149618]:hover{background:rgba(0,0,0,.025)}.navbar .right-menu .avatar-container[data-v-c8149618]{margin-right:30px}.navbar .right-menu .avatar-container .avatar-wrapper[data-v-c8149618]{margin-top:5px;position:relative}.navbar .right-menu .avatar-container .avatar-wrapper .user-avatar[data-v-c8149618]{cursor:pointer;width:40px;height:40px;border-radius:10px}.navbar .right-menu .avatar-container .avatar-wrapper .el-icon-caret-bottom[data-v-c8149618]{cursor:pointer;position:absolute;right:-20px;top:25px;font-size:12px}.theme-message,.theme-picker-dropdown{z-index:99999!important}.theme-picker .el-color-picker__trigger{height:26px!important;width:26px!important;padding:2px}.theme-picker-dropdown .el-color-dropdown__link-btn{display:none}.drawer-container[data-v-4e90c272]{padding:24px;font-size:14px;line-height:1.5;word-wrap:break-word}.drawer-container .drawer-title[data-v-4e90c272]{margin-bottom:12px;color:rgba(0,0,0,.85);font-size:14px;line-height:22px}.drawer-container .drawer-item[data-v-4e90c272]{color:rgba(0,0,0,.65);font-size:14px;padding:12px 0}.drawer-container .drawer-switch[data-v-4e90c272]{float:right}.sidebarLogoFade-enter-active[data-v-7f84893a]{-webkit-transition:opacity 1.5s;transition:opacity 1.5s}.sidebarLogoFade-enter[data-v-7f84893a],.sidebarLogoFade-leave-to[data-v-7f84893a]{opacity:0}.sidebar-logo-container[data-v-7f84893a]{position:relative;width:100%;height:50px;line-height:50px;background:#2b2f3a;text-align:center;overflow:hidden}.sidebar-logo-container .sidebar-logo-link[data-v-7f84893a]{height:100%;width:100%}.sidebar-logo-container .sidebar-logo-link .sidebar-logo[data-v-7f84893a]{width:38px;height:38px;vertical-align:middle;margin-right:12px}.sidebar-logo-container .sidebar-logo-link .sidebar-title[data-v-7f84893a]{display:inline-block;margin:0;color:#fff;font-weight:600;line-height:50px;font-size:14px;font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;vertical-align:middle;margin-right:10px}.sidebar-logo-container.collapse .sidebar-logo[data-v-7f84893a]{margin-right:0}.scroll-container[data-v-2dda9ac4]{white-space:nowrap;position:relative;overflow:hidden;width:100%}.scroll-container[data-v-2dda9ac4] .el-scrollbar__bar{bottom:0}.scroll-container[data-v-2dda9ac4] .el-scrollbar__wrap{height:49px}.tags-view-container[data-v-19d3bba2]{height:34px;width:100%;background:#fff;border-bottom:1px solid #d8dce5;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.12),0 0 3px 0 rgba(0,0,0,.04);box-shadow:0 1px 3px 0 rgba(0,0,0,.12),0 0 3px 0 rgba(0,0,0,.04)}.tags-view-container .tags-view-wrapper .tags-view-item[data-v-19d3bba2]{display:inline-block;position:relative;cursor:pointer;height:26px;line-height:26px;border:1px solid #d8dce5;color:#495060;background:#fff;padding:0 8px;font-size:12px;margin-left:5px;margin-top:4px}.tags-view-container .tags-view-wrapper .tags-view-item[data-v-19d3bba2]:first-of-type{margin-left:15px}.tags-view-container .tags-view-wrapper .tags-view-item[data-v-19d3bba2]:last-of-type{margin-right:15px}.tags-view-container .tags-view-wrapper .tags-view-item.active[data-v-19d3bba2]{background-color:#42b983;color:#fff;border-color:#42b983}.tags-view-container .tags-view-wrapper .tags-view-item.active[data-v-19d3bba2]:before{content:"";background:#fff;display:inline-block;width:8px;height:8px;border-radius:50%;position:relative;margin-right:2px}.tags-view-container .contextmenu[data-v-19d3bba2]{margin:0;background:#fff;z-index:3000;position:absolute;list-style-type:none;padding:5px 0;border-radius:4px;font-size:12px;font-weight:400;color:#333;-webkit-box-shadow:2px 2px 3px 0 rgba(0,0,0,.3);box-shadow:2px 2px 3px 0 rgba(0,0,0,.3)}.tags-view-container .contextmenu li[data-v-19d3bba2]{margin:0;padding:7px 16px;cursor:pointer}.tags-view-container .contextmenu li[data-v-19d3bba2]:hover{background:#eee}.tags-view-wrapper .tags-view-item .el-icon-close{width:16px;height:16px;vertical-align:2px;border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tags-view-wrapper .tags-view-item .el-icon-close:before{-webkit-transform:scale(.6);transform:scale(.6);display:inline-block;vertical-align:-3px}.tags-view-wrapper .tags-view-item .el-icon-close:hover{background-color:#b4bccc;color:#fff}[data-v-b97fba7a]:export{menuText:#bfcbd9;menuActiveText:#409eff;subMenuActiveText:#f4f4f5;menuBg:#304156;menuHover:#263445;subMenuBg:#1f2d3d;subMenuHover:#001528;sideBarWidth:210px}.app-wrapper[data-v-b97fba7a]{position:relative;height:100%;width:100%}.app-wrapper[data-v-b97fba7a]:after{content:"";display:table;clear:both}.app-wrapper.mobile.openSidebar[data-v-b97fba7a]{position:fixed;top:0}.drawer-bg[data-v-b97fba7a]{background:#000;opacity:.3;width:100%;top:0;height:100%;position:absolute;z-index:999}.fixed-header[data-v-b97fba7a]{position:fixed;top:0;right:0;z-index:9;width:calc(100% - 210px);-webkit-transition:width .28s;transition:width .28s}.hideSidebar .fixed-header[data-v-b97fba7a]{width:calc(100% - 54px)}.mobile .fixed-header[data-v-b97fba7a]{width:100%}.svg-icon[data-v-4342976c]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.svg-external-icon[data-v-4342976c]{background-color:currentColor;-webkit-mask-size:cover!important;mask-size:cover!important;display:inline-block}.pagination-container[data-v-6af373ef]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-6af373ef]{display:none} \ No newline at end of file diff --git a/static/web/css/chunk-05a99c67.d0296c60.css b/static/web/css/chunk-05a99c67.d0296c60.css new file mode 100644 index 0000000..3e4a9d7 --- /dev/null +++ b/static/web/css/chunk-05a99c67.d0296c60.css @@ -0,0 +1 @@ +.errPage-container[data-v-35ca77fc]{width:800px;max-width:100%;margin:100px auto}.errPage-container .pan-back-btn[data-v-35ca77fc]{background:#008489;color:#fff;border:none!important}.errPage-container .pan-gif[data-v-35ca77fc]{margin:0 auto;display:block}.errPage-container .pan-img[data-v-35ca77fc]{display:block;margin:0 auto;width:100%}.errPage-container .text-jumbo[data-v-35ca77fc]{font-size:60px;font-weight:700;color:#484848}.errPage-container .list-unstyled[data-v-35ca77fc]{font-size:14px}.errPage-container .list-unstyled li[data-v-35ca77fc]{padding-bottom:5px}.errPage-container .list-unstyled a[data-v-35ca77fc]{color:#008489;text-decoration:none}.errPage-container .list-unstyled a[data-v-35ca77fc]:hover{text-decoration:underline} \ No newline at end of file diff --git a/static/web/css/chunk-07066085.225eed1b.css b/static/web/css/chunk-07066085.225eed1b.css new file mode 100644 index 0000000..f298bf2 --- /dev/null +++ b/static/web/css/chunk-07066085.225eed1b.css @@ -0,0 +1 @@ +.panel-group .card-panel-col[data-v-634acd46]{margin-bottom:32px}.panel-group .card-panel[data-v-634acd46]{height:108px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.panel-group .card-panel:hover .card-panel-icon-wrapper[data-v-634acd46]{color:#fff}.panel-group .card-panel:hover .icon-people[data-v-634acd46]{background:#40c9c6}.panel-group .card-panel:hover .icon-message[data-v-634acd46]{background:#36a3f7}.panel-group .card-panel:hover .icon-money[data-v-634acd46]{background:#f4516c}.panel-group .card-panel:hover .icon-shopping[data-v-634acd46]{background:#34bfa3}.panel-group .card-panel .icon-people[data-v-634acd46]{color:#40c9c6}.panel-group .card-panel .icon-message[data-v-634acd46]{color:#36a3f7}.panel-group .card-panel .icon-money[data-v-634acd46]{color:#f4516c}.panel-group .card-panel .icon-shopping[data-v-634acd46]{color:#34bfa3}.panel-group .card-panel .card-panel-icon-wrapper[data-v-634acd46]{float:left;margin:14px 0 0 14px;padding:16px;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px}.panel-group .card-panel .card-panel-icon[data-v-634acd46]{float:left;font-size:48px}.panel-group .card-panel .card-panel-description[data-v-634acd46]{float:right;font-weight:700;margin:26px;margin-left:0}.panel-group .card-panel .card-panel-description .card-panel-text[data-v-634acd46]{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.panel-group .card-panel .card-panel-description .card-panel-num[data-v-634acd46]{font-size:20px}@media (max-width:550px){.card-panel-description[data-v-634acd46]{display:none}.card-panel-icon-wrapper[data-v-634acd46]{float:none!important;width:100%;height:100%;margin:0!important}.card-panel-icon-wrapper .svg-icon[data-v-634acd46]{display:block;margin:14px auto!important;float:none!important}}.dashboard-editor-container[data-v-0d1abac5]{padding-top:32px;padding-left:32px;padding-right:32px;background-color:#f0f2f5;position:relative}.dashboard-editor-container .github-corner[data-v-0d1abac5]{position:absolute;top:0;border:0;right:0}.dashboard-editor-container .chart-wrapper[data-v-0d1abac5]{background:#fff;padding:16px 16px 0;margin-bottom:32px}@media (max-width:1024px){.chart-wrapper[data-v-0d1abac5]{padding:8px}} \ No newline at end of file diff --git a/static/web/css/chunk-1feb7e04.f249e4b9.css b/static/web/css/chunk-1feb7e04.f249e4b9.css new file mode 100644 index 0000000..9f37fa0 --- /dev/null +++ b/static/web/css/chunk-1feb7e04.f249e4b9.css @@ -0,0 +1 @@ +.login-container[data-v-853cf330]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;margin:0 auto;background:url(../../../static/web/img/login.ede1cdb8.png) no-repeat;background-color:#304175;position:relative;background-size:cover;height:100vh;background-position:50%}#particles-js[data-v-853cf330]{z-index:1;width:100%;height:100%;position:absolute}.login-weaper[data-v-853cf330]{margin:0 auto;width:1000px;-webkit-box-shadow:-4px 5px 10px rgba(0,0,0,.4);box-shadow:-4px 5px 10px rgba(0,0,0,.4);z-index:1000}.login-left[data-v-853cf330]{border-top-left-radius:5px;border-bottom-left-radius:5px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:rgba(64,158,255,0);color:#fff;float:left;width:50%;position:relative;min-height:500px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.login-left .login-time[data-v-853cf330]{position:absolute;left:25px;top:25px;width:100%;color:#fff;opacity:.9;font-size:18px;overflow:hidden;font-weight:500}.login-left .img[data-v-853cf330]{width:120px;height:120px;border-radius:3px}.login-left .title[data-v-853cf330]{text-align:center;color:#fff;letter-spacing:2px;font-size:30px;font-weight:600}.login-border[data-v-853cf330]{position:relative;min-height:500px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;border-left:none;border-top-right-radius:5px;border-bottom-right-radius:5px;color:#fff;background-color:hsla(0,0%,100%,.9);width:50%;float:left}.login-main[data-v-853cf330]{margin:0 auto;width:65%}.login-title[data-v-853cf330]{color:#333;margin-bottom:40px;font-weight:500;font-size:22px;text-align:center;letter-spacing:4px}@supports (-webkit-mask:none) and (not (cater-color:#fff)){.login-container .el-input input[data-v-853cf330]{color:#fff}}.login-container[data-v-853cf330] .el-input{display:inline-block;height:47px;width:85%}.login-container[data-v-853cf330] .el-input input{background:transparent;border:0;-webkit-appearance:none;border-radius:0;padding:12px 5px 12px 15px;color:#333;height:47px;caret-color:#333}.login-container[data-v-853cf330] .el-input input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #283443 inset!important;box-shadow:inset 0 0 0 1000px #283443!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item[data-v-853cf330]{border:1px solid rgba(0,0,0,.1);background:hsla(0,0%,100%,.8);border-radius:5px;color:#454545}.login-container .tips[data-v-853cf330]{font-size:14px;color:#fff;margin-bottom:10px}.login-container .tips span[data-v-853cf330]:first-of-type{margin-right:16px}.login-container .svg-container[data-v-853cf330]{padding:6px 5px 6px 15px;color:#889aa4;vertical-align:middle;width:30px;display:inline-block}.login-container .title-container[data-v-853cf330]{position:relative}.login-container .title-container .title[data-v-853cf330]{font-size:26px;color:#eee;margin:0 auto 40px auto;text-align:center;font-weight:700}.login-container .show-pwd[data-v-853cf330]{position:absolute;right:10px;top:7px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.login-container .thirdparty-button[data-v-853cf330]{position:absolute;right:0;bottom:6px}@media only screen and (max-width:470px){.login-container .thirdparty-button[data-v-853cf330]{display:none}} \ No newline at end of file diff --git a/static/web/css/chunk-39b1e937.3556198d.css b/static/web/css/chunk-39b1e937.3556198d.css new file mode 100644 index 0000000..4c8ff50 --- /dev/null +++ b/static/web/css/chunk-39b1e937.3556198d.css @@ -0,0 +1 @@ +.wscn-http404-container[data-v-171d498a]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;top:40%;left:50%}.wscn-http404[data-v-171d498a]{position:relative;width:1200px;padding:0 50px;overflow:hidden}.wscn-http404 .pic-404[data-v-171d498a]{position:relative;float:left;width:600px;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-171d498a]{width:100%}.wscn-http404 .pic-404__child[data-v-171d498a]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-171d498a]{width:80px;top:17px;left:220px;opacity:0;-webkit-animation-name:cloudLeft-data-v-171d498a;animation-name:cloudLeft-data-v-171d498a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}.wscn-http404 .pic-404__child.mid[data-v-171d498a]{width:46px;top:10px;left:420px;opacity:0;-webkit-animation-name:cloudMid-data-v-171d498a;animation-name:cloudMid-data-v-171d498a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1.2s;animation-delay:1.2s}.wscn-http404 .pic-404__child.right[data-v-171d498a]{width:62px;top:100px;left:500px;opacity:0;-webkit-animation-name:cloudRight-data-v-171d498a;animation-name:cloudRight-data-v-171d498a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}@-webkit-keyframes cloudLeft-data-v-171d498a{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@keyframes cloudLeft-data-v-171d498a{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@-webkit-keyframes cloudMid-data-v-171d498a{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@keyframes cloudMid-data-v-171d498a{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@-webkit-keyframes cloudRight-data-v-171d498a{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}@keyframes cloudRight-data-v-171d498a{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}.wscn-http404 .bullshit[data-v-171d498a]{position:relative;float:left;width:300px;padding:30px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-171d498a]{font-size:32px;line-height:40px;color:#1482f0;margin-bottom:20px;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__headline[data-v-171d498a],.wscn-http404 .bullshit__oops[data-v-171d498a]{font-weight:700;opacity:0;-webkit-animation-name:slideUp-data-v-171d498a;animation-name:slideUp-data-v-171d498a;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__headline[data-v-171d498a]{font-size:20px;line-height:24px;color:#222;margin-bottom:10px;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-171d498a]{font-size:13px;line-height:21px;color:grey;margin-bottom:30px;-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-171d498a],.wscn-http404 .bullshit__return-home[data-v-171d498a]{opacity:0;-webkit-animation-name:slideUp-data-v-171d498a;animation-name:slideUp-data-v-171d498a;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__return-home[data-v-171d498a]{display:block;float:left;width:110px;height:36px;background:#1482f0;border-radius:100px;text-align:center;color:#fff;font-size:14px;line-height:36px;cursor:pointer;-webkit-animation-delay:.3s;animation-delay:.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes slideUp-data-v-171d498a{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp-data-v-171d498a{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}} \ No newline at end of file diff --git a/static/web/css/chunk-4bef97e6.efbef20a.css b/static/web/css/chunk-4bef97e6.efbef20a.css new file mode 100644 index 0000000..a5c70e9 --- /dev/null +++ b/static/web/css/chunk-4bef97e6.efbef20a.css @@ -0,0 +1 @@ +.toolbar[data-v-12b37731]{text-align:left;width:100%;padding:8px 0;background-color:#fff;border:1px solid #e9e9e9;-webkit-box-shadow:0 8px 12px 0 rgba(0,52,107,.04);box-shadow:0 8px 12px 0 rgba(0,52,107,.04)}.toolbar .command[data-v-12b37731]{display:inline-block;margin:0 6px;line-height:27px;border:1px solid rgba(2,2,2,0);border-radius:2px}.toolbar .command span[data-v-12b37731]{margin:0 6px}.toolbar .command[data-v-12b37731]:first-of-type{margin-left:24px}.toolbar .command[data-v-12b37731]:hover{border:1px solid #e9e9e9;cursor:pointer}.toolbar .separator[data-v-12b37731]{margin:4px;border-left:1px solid #e9e9e9}.toolbar .icon-select.disable[data-v-12b37731]{background:#eee}.toolbar .disable[data-v-12b37731]{color:rgba(0,0,0,.25)}.toolbar .disable[data-v-12b37731]:hover{border:1px solid rgba(2,2,2,0);cursor:default}@font-face{font-family:iconfont;src:url(data:application/vnd.ms-fontobject;base64,PA8AAJQOAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAcpUqHQAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI+QUqbAAABfAAAAFZjbWFwuouvFgAAAgQAAAIMZ2x5ZtCIyQUAAAQsAAAHYGhlYWQWLCWbAAAA4AAAADZoaGVhB+sDmAAAALwAAAAkaG10eDAe//8AAAHUAAAAMGxvY2EK+gkOAAAEEAAAABptYXhwAR0AbgAAARgAAAAgbmFtZT5U/n0AAAuMAAACbXBvc3SNlhz9AAAN/AAAAJgAAQAAA4D/gABcBAz/////BA0AAQAAAAAAAAAAAAAAAAAAAAwAAQAAAAEAAB0qlXJfDzz1AAsEAAAAAADZgHDvAAAAANmAcO////+ABA0DQAAAAAgAAgAAAAAAAAABAAAADABiAAcAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQDAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA58vopgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQGAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEDP//BAwAAAQAAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAXgAAQAAAAAAcgADAAEAAAAsAAMACgAAAXgABABGAAAACAAIAAIAAOfS6KLopv//AADny+ii6KX//wAAAAAAAAABAAgAFgAWAAAABAAFAAYABwAIAAkACgALAAEAAgADAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAACUAAAAAAAAAAsAAOfLAADnywAAAAQAAOfMAADnzAAAAAUAAOfNAADnzQAAAAYAAOfOAADnzgAAAAcAAOfPAADnzwAAAAgAAOfQAADn0AAAAAkAAOfRAADn0QAAAAoAAOfSAADn0gAAAAsAAOiiAADoogAAAAEAAOilAADopQAAAAIAAOimAADopgAAAAMAAAAAAEgAegDcAPwBLgG4AfwCgAL8A2ADsAAAAAUAAP+ABAcDQAANABAAFgAnACoAAAUhIiYnET4BNyEXEQ4BAxUzFSM1IREhASERIRUhNSchIgYVERQWFyETFyMD5v36Cg8BAREOAWDABRGwgMD/AAHA/cD/AAEAAQDA/qAPERAKASZAgICAEAoCRgoPAcD+WQUNAj+AQMD+AAEAAkDAQMAQCv16Cg8BAnqAAAEAAAAAA8cCQAAdAAATPgE3HgEXLgEnDgEHFxYUBw4BIyEiJicRNDMyFhXAO7RroeckMbhwXJ06bAUFBAQE/sYKDwEUBQcBmk1YAQO/mF1vAQFORG0FEQoEAg8KAToTAgQAAAADAAD/3AOxAzoAHAAzAD8AAAEUBisBFRQGIiY9ASMiJjQ2OwE1NDYyFh0BMzIWAQYmLwEOASMuASc+ATceARcUBgcXFgYlPgE3LgEnDgEHHgECgBEPYBEeEWAPEREPYBEeEWAPEQEgDyALuSxnOpTIBATIlJTIBCwnuQoC/jJ7ogMDont7ogMDogHgDxFgDxERD2ARHhFgDxERD2AR/fcJAg7TIiQEyJSUyAQEyJREczDZBh7KA6J7e6IDA6J7e6IAAAAABAAAAAADQAMAAAMABwALAA8AAAEzESMBMxEjATMVIxUzFSMBAEBAAgBAQP8AQEBAQAMA/QADAP0AAkBAwEAAAAEAAAAAA7oCQAAdAAABLgEnDgEHPgE3HgEXBwYUFx4BMyEyNjcRNCMiBhUDQDu0a6HnJDG4cFydOmwFBQQEBAE6Cg8BFAUHAZpNWAEDv5hdbwEBTkRtBREKBAIPCgE6EwIEAAAFAAAAAAOAA0AAFAAqAD8AVQBhAAABNTQ2MhYdATMyFhQGKwEiJicjNCYlIgYdASMiBhQWOwEyNjczPgE9ATQmASMiBgcjDgEdARQWMjY9ATMyNjQmBSYXLgErASIGFBY7ARUUFjI2PQE0JhMOAQceARc+ATcuAQKAER4RoA8REQ/ABQkFBwb+oA8RoA8REQ/ABQkFBwQCEQIxwAUJBQcEAhEeEaAPERH9ywoKCgsFwA8REQ+gER4RBqY2SQEBSTY2SQEBSQJgwA8REQ+gER4RAgQKC+URD6ARHhECBAUKBcATE/3AAgQFCgXADhERDpoRHhENCgoFCBEeEaAPEREPwAUJATIBSTY2SQEBSTY2SQAAAAAFAAD/wAO6AwAAGwAfACMAJwArAAABERQGIyEiJjURIzQ2OwE1NDY7ATIWHQEzMhYXJSMVMxchESElIxEzASMRMwOAHR39uh0jQCMdwCMdwB0juh0iAf7GxsbA/boCRv6AOjoBAEBAAkD9wB0jIx0CQB0jQB0jIx1AIx2AQED9wMABAP8AAQAABP////8EDQK6ADUAPgBHAFIAAAEuASMnNz4BJy4BIyc3PgEnLgEjJSIGBwUOARUeATMXBw4BFR4BMxcHDgEVHgEzBTI2NwE+ASUXMjY/ARcHJQUlNxcyNj8BFzcXIw4BBz4BNzUjAwAFCwpmcwUGBAUMCWZzBQYFBAwJ/owFDwX+wAUIAQ0Fc3kFCAENBXN5BQgBDQUBhwUPBQEzEwj92cwGDwWGVPr+wAFG/sBtzQUPBoZT7Y1gBmBNJiwBYAEtCQoNZgUQBQkKDWYFEAUJCjoCBeYFEAUJChpZBRAFCQoaWQUQBQkKYAIEAQ0FEFI0AgV5DNpN80xNMwIEeg3ntFeIJzV9SAwABAAAAAAEDQK6ADQAOABBAEwAAAEnNz4BJzQmIyc3PgEnNCYjJSIGBwUOARUUFjMXBw4BFBYfAQcOARUeATMFMjY3AT4BJzYmAQUHJR8BMjY/ARcHJQUzByczNTQmJx4BAtpgcwUGBQ8KYHMFBgUPCv6TBQoE/sAFCA4FbXoFBw0GbHkFCAENBQGABRAFAS0FBQQJBf6JAS36/sZ0zAYPBYZU+v7GA0dgjY1gLCdOXgFADWYFEAUJCg1mBRAFCQo6AgXmBRAFCQoaWQUQCg0BGlkFEAUJCloCBQENBQ8FBQgBRizaTVM0AgV5DNpNOrOzDUh9NSiMAAAHAAD/ggN6A0AACAAWACQAKAA2ADkAPwAAASM1MzIWHQEjASMRMzUjIgYVERQWFzMBITUzNT4BNzMeARcVMycjFTMBESchIgYVERQWFyEWNgMjNRMhESEVMwMGRmYKEDr9+kZGZgoQEApgAYb+wEABIBlGGSABRoBGRgF6uv6gDxEQCgIADhE/gIb+OgEGwAKGOhAKYP20Aow6EAr9OgoPAQJ6gEYZIAEBIBlGRkb82gGmwBAK/boKDwEEDQGkjf3zAg3GAAAAAAMAAP/cA7EDOgAMACMALwAAARQGIyEiJjQ2MyEyFgEGJi8BDgEjLgEnPgE3HgEXFAYHFxYGJT4BNy4BJw4BBx4BAoARD/8ADxERDwEADxEBIA8gC7ksZzqUyAQEyJSUyAQsJ7kKAv4ye6IDA6J7e6IDA6IB4A8RER4REf33CQIO0yIkBMiUlMgEBMiURHMw2QYeygOie3uiAwOie3uiAAAAABIA3gABAAAAAAAAABUAAAABAAAAAAABAAgAFQABAAAAAAACAAcAHQABAAAAAAADAAgAJAABAAAAAAAEAAgALAABAAAAAAAFAAsANAABAAAAAAAGAAgAPwABAAAAAAAKACsARwABAAAAAAALABMAcgADAAEECQAAACoAhQADAAEECQABABAArwADAAEECQACAA4AvwADAAEECQADABAAzQADAAEECQAEABAA3QADAAEECQAFABYA7QADAAEECQAGABABAwADAAEECQAKAFYBEwADAAEECQALACYBaQpDcmVhdGVkIGJ5IGljb25mb250Cmljb25mb250UmVndWxhcmljb25mb250aWNvbmZvbnRWZXJzaW9uIDEuMGljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0ABmNvcHktbwR1bmRvCXpvb20taW4tbw1hY3R1YWwtc2l6ZS1vBHJlZG8DZml0CGRlbGV0ZS1vCHRvLWZyb250B3RvLWJhY2sIcGFzdGVyLW8Kem9vbS1vdXQtbwAA);src:url(data:application/vnd.ms-fontobject;base64,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#iefix) format("embedded-opentype"),url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2"),url(data:font/woff;base64,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) format("woff"),url(data:font/ttf;base64,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) format("truetype"),url(../../../static/web/img/iconfont.6c66fc36.svg#iconfont) format("svg")}.iconfont[data-v-12b37731]{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-copy-o[data-v-12b37731]:before{content:"\E8A2"}.icon-undo[data-v-12b37731]:before{content:"\E8A5"}.icon-zoom-in-o[data-v-12b37731]:before{content:"\E8A6"}.icon-actual-size-o[data-v-12b37731]:before{content:"\E7CB"}.icon-redo[data-v-12b37731]:before{content:"\E7CC"}.icon-fit[data-v-12b37731]:before{content:"\E7CD"}.icon-delete-o[data-v-12b37731]:before{content:"\E7CE"}.icon-to-front[data-v-12b37731]:before{content:"\E7CF"}.icon-to-back[data-v-12b37731]:before{content:"\E7D0"}.icon-paster-o[data-v-12b37731]:before{content:"\E7D1"}.icon-zoom-out-o[data-v-12b37731]:before{content:"\E7D2"}.itemPanel{float:left;width:10%;background:#f0f2f5;overflow-y:auto;border-left:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9}.itemPanel img{width:92px;height:96px;padding:4px;border:1px solid transparent;border-radius:2px}.itemPanel img:hover{border:1px solid #ccc;cursor:move}.itemPanel .el-collapse{border:0}.itemPanel .el-collapse .el-collapse-item>div[role=tab]>div{padding-left:10px;border:1px solid #e9e9e9;border-left:0}.itemPanel .el-collapse .el-collapse-item:first-child>div[role=tab]>div{border-top:0}.itemPanel .el-collapse .el-collapse-item:last-child>div[role=tab]>div{border-bottom:1px solid #e9e9e9}.itemPanel .el-collapse .el-collapse-item .el-collapse-item__wrap{border-top:0;background:#f0f2f5;text-align:center}.detailPanel{height:100%;background:#f0f2f5;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left;width:20%;border-right:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9}.detailPanel .panelTitle{text-align:left;height:32px;padding-left:12px;color:#000;line-height:28px;background:#ebeef2;border-bottom:1px solid #dce3e8}.detailPanel .panelBody .panelRow{text-align:left;display:inline-block;font-size:12px;width:100%;padding:5px 12px}.root[data-v-1250141f]{width:100%;height:100%;background-color:#fff;display:block}.canvasPanel[data-v-1250141f]{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;float:left;width:70%;background-color:#fff;border-bottom:1px solid #e9e9e9}.panelRow>div:first-child{line-height:18px} \ No newline at end of file diff --git a/static/web/css/chunk-722029dc.8082f0a2.css b/static/web/css/chunk-722029dc.8082f0a2.css new file mode 100644 index 0000000..a82b171 --- /dev/null +++ b/static/web/css/chunk-722029dc.8082f0a2.css @@ -0,0 +1,26 @@ +/*! + * Viewer.js v1.6.1 + * https://fengyuanchen.github.io/viewerjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2020-06-14T07:47:15.792Z + */.viewer-container::-moz-selection,.viewer-container ::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container ::selection{background-color:transparent}.viewer-player,.viewer-player>img{left:0;position:absolute;top:0} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none} + +/*! + * Viewer.js v1.3.5 + * https://fengyuanchen.github.io/viewerjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2019-07-04T11:00:13.705Z + */.viewer-close:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen-exit:before,.viewer-fullscreen:before,.viewer-next:before,.viewer-one-to-one:before,.viewer-play:before,.viewer-prev:before,.viewer-reset:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-zoom-in:before,.viewer-zoom-out:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAUCAYAAABWOyJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAQPSURBVHic7Zs/iFxVFMa/0U2UaJGksUgnIVhYxVhpjDbZCBmLdAYECxsRFBTUamcXUiSNncgKQbSxsxH8gzAP3FU2jY0kKKJNiiiIghFlccnP4p3nPCdv3p9778vsLOcHB2bfveeb7955c3jvvNkBIMdxnD64a94GHMfZu3iBcRynN7zAOI7TG15gHCeeNUkr8zaxG2lbYDYsdgMbktBsP03jdQwljSXdtBhLOmtjowC9Mg9L+knSlcD8TNKpSA9lBpK2JF2VdDSR5n5J64m0qli399hNFMUlpshQii5jbXTbHGviB0nLNeNDSd9VO4A2UdB2fp+x0eCnaXxWXGA2X0au/3HgN9P4LFCjIANOJdrLr0zzZ+BEpNYDwKbpnQMeAw4m8HjQtM6Z9qa917zPQwFr3M5KgA6J5rTJCdFZJj9/lyvGhsDvwFNVuV2MhhjrK6b9bFiE+j1r87eBl4HDwCF7/U/k+ofAX5b/EXBv5JoLMuILzf3Ap6Z3EzgdqHMCuF7hcQf4HDgeoHnccncqdK/TvSDWffFXI/exICY/xZyqc6XLWF1UFZna4gJ7q8BsRvgd2/xXpo6P+D9dfT7PpECtA3cnWPM0GXGFZh/wgWltA+cDNC7X+AP4GzjZQe+k5dRxuYPeiuXU7e1qwLpDz7dFjXKRaSwuMLvAlG8zZlG+YmiK1HoFqT7wP2z+4Q45TfEGcMt01xLoNZEBTwRqD4BLpnMLeC1A41UmVxsXgXeBayV/Wx20rpTyrpnWRft7p6O/FdqzGrDukPNtkaMoMo3FBdBSQMOnYBCReyf05s126fU9ytfX98+mY54Kxnp7S9K3kj6U9KYdG0h6UdLbkh7poFXMfUnSOyVvL0h6VtIXHbS6nOP+s/Zm9mvyXW1uuC9ohZ72E9uDmXWLJOB1GxsH+DxPftsB8B6wlGDN02TAkxG6+4D3TWsbeC5CS8CDFce+AW500LhhOW2020TRjK3b21HEmgti9m0RonxbdMZeVzV+/4tF3cBpP7E9mKHNL5q8h5g0eYsCMQz0epq8gQrwMXAgcs0FGXGFRcB9wCemF9PkbYqM/Bas7fxLwNeJPdTdpo4itQti8lPMqTpXuozVRVXPpbHI3KkNTB1NfkL81j2mvhDp91HgV9MKuRIqrykj3WPq4rHyL+axj8/qGPmTqi6F9YDlHOvJU6oYcTsh/TYSzWmTE6JT19CtLTJt32D6CmHe0eQn1O8z5AXgT4sx4Vcu0/EQecMydB8z0hUWkTd2t4CrwNEePqMBcAR4mrBbwyXLPWJa8zrXmmLEhNBmfpkuY2102xxrih+pb+ieAb6vGhuA97UcJ5KR8gZ77K+99xxeYBzH6Q3/Z0fHcXrDC4zjOL3hBcZxnN74F+zlvXFWXF9PAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.viewer-container::-moz-selection,.viewer-container ::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container ::selection{background-color:transparent}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:rgba(0,0,0,.5);overflow:hidden}.viewer-list{-webkit-box-sizing:content-box;box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;-webkit-transition:opacity .15s;transition:opacity .15s;width:30px}.viewer-list>li:hover{opacity:.75}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;right:0}.viewer-player,.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:3px 0}.viewer-toolbar>ul>li{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;-webkit-transition:background-color .15s;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:hover{background-color:rgba(0,0,0,.8)}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:rgba(0,0,0,.8);border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1;margin:0 5% 5px;max-width:90%;opacity:.8;overflow:hidden;text-overflow:ellipsis;-webkit-transition:opacity .15s;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;-webkit-transition:background-color .15s;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:rgba(0,0,0,.8)}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:rgba(0,0,0,.5)}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:-webkit-grab;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{-webkit-transition:all .3s;transition:all .3s}@-webkit-keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.viewer-loading:after{-webkit-animation:viewer-spinner 1s linear infinite;animation:viewer-spinner 1s linear infinite;border:4px solid hsla(0,0%,100%,.1);border-left-color:hsla(0,0%,100%,.5);border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width:767px){.viewer-hide-xs-down{display:none}}@media (max-width:991px){.viewer-hide-sm-down{display:none}}@media (max-width:1199px){.viewer-hide-md-down{display:none}}.fm-uplaod-container .is-disabled{position:relative}.fm-uplaod-container .is-disabled:after{position:absolute;top:0;bottom:0;left:0;right:0;content:"";display:block;cursor:not-allowed}.fm-uplaod-container .upload-file{margin:0 10px 10px 0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:top}.fm-uplaod-container .upload-file:hover .uplaod-action{display:-webkit-box;display:-ms-flexbox;display:flex}.fm-uplaod-container .upload-file .uplaod-action{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.6);display:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-uplaod-container .upload-file .uplaod-action i{color:#fff;cursor:pointer;margin:0 5px}.fm-uplaod-container .upload-file.is-success .item-status{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.fm-uplaod-container .upload-file.is-success .item-status>i{font-size:12px;margin-top:11px;color:#fff;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.fm-uplaod-container .upload-file.uploading:before{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3)}.fm-uplaod-container .upload-file .upload-progress{position:absolute}.fm-uplaod-container .upload-file .upload-progress .el-progress__text{color:#fff;font-size:16px!important}.fm-uplaod-container .upload-file img{max-width:100%;max-height:100%;vertical-align:middle}.fm-uplaod-container .el-upload--picture-card{position:relative;overflow:hidden}.fm-uplaod-container .el-upload--picture-card .el-icon-plus{position:absolute;top:50%;left:50%}.fm-uplaod-container .upload-input{position:absolute;top:0;left:0;right:0;bottom:0;display:block;opacity:0;cursor:pointer}.fm-uplaod-container .drag-img-list{display:inline}.fm-uplaod-container .drag-img-list .ghost{position:relative}.fm-uplaod-container .drag-img-list .ghost:after{width:100%;height:100%;display:block;content:"";background:#fbfdff;position:absolute;top:0;bottom:0;left:0;right:0;border:1px dashed #3bb3c2}.fm-uplaod-container .drag-img-list>div{cursor:move}.viewer-container{z-index:9999!important}.cus-dialog-container .el-dialog__footer{margin:0 20px;padding:15px 0 16px;text-align:center;position:relative}.cus-dialog-container .el-dialog__footer .dialog-footer{display:block}.cus-dialog-container .el-dialog__footer .dialog-footer .circular{display:inline-block;vertical-align:middle;margin-right:5px;width:24px;height:24px}.cus-dialog-container .el-dialog__footer .dialog-footer .el-loading-text{display:inline-block;vertical-align:middle}.cus-dialog-container .el-dialog__footer .dialog-footer .el-loading-spinner{margin-top:-12px}.widget-empty{background-position:50%}@font-face{font-family:iconfont;src:url(../../../static/web/fonts/iconfont.8efbc988.8efbc988.eot);src:url(../../../static/web/fonts/iconfont.8efbc988.8efbc988.eot#iefix) format("embedded-opentype"),url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2"),url(../../../static/web/fonts/iconfont.34ea3475.34ea3475.woff) format("woff"),url(../../../static/web/fonts/iconfont.4d5a9051.4d5a9051.ttf) format("truetype"),url(../../../static/web/img/iconfont.f0e930ef.f0e930ef.svg#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-clear:before{content:"\E6D1"}.icon-weibiaoti46:before{content:"\E63C"}.icon-delete:before{content:"\E616"}.icon-fabu:before{content:"\E630"}.icon-qingkonghuishouzhan:before{content:"\E642"}.icon-code:before{content:"\E65B"}.icon-table:before{content:"\E713"}.icon-diy-com-textarea:before{content:"\E91F"}.icon-zidingyishuju:before{content:"\E634"}.icon-json:before{content:"\E7BD"}.icon-jilianxuanze:before{content:"\E695"}.icon-icon_clone:before{content:"\E606"}.icon-wenjianshangchuan:before{content:"\E617"}.icon-fengexian:before{content:"\E66E"}.icon-tupianyulan:before{content:"\E67D"}.icon-time:before{content:"\E600"}.icon-icon-test:before{content:"\E605"}.icon-tupian:before{content:"\E65E"}.icon-ad-icon-tooltip:before{content:"\E63E"}.icon-check-box:before{content:"\E60E"}.icon-switch:before{content:"\E660"}.icon-pingfen:before{content:"\E640"}.icon-input:before{content:"\E6B2"}.icon-radio-active:before{content:"\E615"}.icon-color:before{content:"\E62F"}.icon-slider:before{content:"\E60D"}.icon-icon_bars:before{content:"\E7C4"}.icon-fuwenbenkuang:before{content:"\E682"}.icon-date:before{content:"\E69F"}.icon-ic:before{content:"\E621"}.icon-trash:before{content:"\E60F"}.icon-grid-:before{content:"\E6AD"}.icon-drag:before{content:"\E842"}.icon-shangchuan:before{content:"\E645"}.icon-zhage:before{content:"\E63F"}.icon-number:before{content:"\E76B"}.icon-yulan:before{content:"\E668"}.icon-select:before{content:"\E920"}.icon-wenzishezhi-:before{content:"\E67C"}.icon-pingfen1:before{content:"\E661"}.icon-RectangleCopy:before{content:"\E620"}.icon-sync1:before{content:"\E631"}.icon-tabs:before{content:"\E65F"}.el-radio+.el-radio{margin-left:0!important}.el-radio{margin-right:30px}.el-checkbox+.el-checkbox{margin-left:0!important}.el-checkbox{margin-right:30px}.el-form-item--small .el-radio{line-height:32px!important}.el-form-item--small .el-rate{margin-top:6px}.el-form-item--mini .el-radio{line-height:28px!important}.el-form-item--mini .el-rate{margin-top:4px}.el-form-item--medium .el-radio{line-height:36px!important}.el-form-item--medium .el-rate{margin-top:8px}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}.fa-icon{width:auto;height:1em;max-width:100%;max-height:100%;vertical-align:middle}.fm2-container{background:#fff;height:100%;border:1px solid #e0e0e0}.fm2-container .el-container{height:100%!important}.fm2-container>.el-container{background:#fff}.fm2-container .fm2-main{position:relative}.fm2-container .fm2-main>.el-container{position:absolute;top:0;bottom:0;left:0;right:0}.fm2-container main{padding:0}.fm2-container footer{height:30px;line-height:30px;border-top:1px solid #e0e0e0;font-size:12px;text-align:right;color:#409eff;background:#fafafa}.fm2-container footer a{color:#409eff}.center-container{border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0}.center-container .btn-bar{height:45px;line-height:45px;font-size:18px;border-bottom:2px solid #e4e7ed;text-align:right}.center-container .el-main{padding:0;position:relative;background:#fafafa}.components-list{padding:8px 0;width:100%;height:100%}.components-list .widget-cate{padding:8px 12px;font-size:13px}.components-list ul{position:relative;overflow:hidden;padding:0 10px 10px;margin:0}.components-list .form-edit-widget-label{font-size:12px;display:block;width:48%;line-height:26px;position:relative;float:left;left:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:1%;color:#333;border:1px solid #f4f6fc}.components-list .form-edit-widget-label:hover{color:#409eff;border:1px dashed #409eff}.components-list .form-edit-widget-label>a{display:block;cursor:move;background:#f4f6fc;border:1px solid #f4f6fc}.components-list .form-edit-widget-label>a .icon{margin-right:6px;margin-left:8px;font-size:14px;display:inline-block;vertical-align:middle}.components-list .form-edit-widget-label>a span{display:inline-block;vertical-align:middle}.widget-form-container{position:absolute;top:0;left:0;right:0;bottom:0}.widget-form-container .widget-form-list{background:#fff;border:1px dashed #999;min-height:600px;margin:10px}.widget-form-container .widget-form-list .widget-col-list{min-height:50px;border:1px dashed #ccc;background:#fff}.widget-form-container .widget-form-list .widget-view{padding-bottom:18px;position:relative;border:1px dashed hsla(0,0%,66.7%,.7);background-color:rgba(236,245,255,.3);margin:2px}.widget-form-container .widget-form-list .widget-view .el-form-item__content{position:unset}.widget-form-container .widget-form-list .widget-view.is_req .el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.widget-form-container .widget-form-list .widget-view .widget-view-description{height:15px;line-height:15px;font-size:13px;margin-top:6px;color:#909399}.widget-form-container .widget-form-list .widget-view .widget-view-action{position:absolute;right:0;bottom:0;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-view .widget-view-action i{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.widget-form-container .widget-form-list .widget-view .widget-view-drag{position:absolute;left:-2px;top:-2px;bottom:-18px;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-view .widget-view-drag i{font-size:14px;color:#fff;margin:0 5px;cursor:move}.widget-form-container .widget-form-list .widget-view:after{position:absolute;left:0;right:0;top:0;bottom:0;display:block}.widget-form-container .widget-form-list .widget-view:hover{background:#ecf5ff;outline:1px solid #409eff;outline-offset:0}.widget-form-container .widget-form-list .widget-view:hover.active{outline:2px solid #409eff;border:1px solid #409eff;outline-offset:0}.widget-form-container .widget-form-list .widget-view:hover .widget-view-drag{display:block}.widget-form-container .widget-form-list .widget-view.active{outline:2px solid #409eff;border:1px solid #409eff}.widget-form-container .widget-form-list .widget-view.ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .widget-form-list .widget-table{padding-bottom:0;padding:5px;background-color:rgba(253,246,236,.3)}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper{min-height:50px;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-row td{border-bottom:0}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-left{width:51px;border-left:1px solid #ebeef5;border-right:1px solid #ebeef5;border-top:1px solid #ebeef5;-webkit-box-flex:0;-ms-flex:none;flex:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view{border:1px solid #ebeef5;width:200px;float:left;height:100%;position:relative;display:block}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .el-table{height:100%}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.is_req .el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-description{height:15px;line-height:15px;font-size:13px;margin-top:6px;color:#909399}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-action{position:absolute;right:0;bottom:0;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-action i{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-drag{position:absolute;left:-2px;top:-2px;bottom:-18px;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-drag i{font-size:14px;color:#fff;margin:0 5px;cursor:move}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:after{position:absolute;left:0;right:0;top:0;bottom:0;display:block;content:""}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:before{display:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:hover{background:#ecf5ff;outline:1px solid #409eff;outline-offset:-1px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:hover.active{border:1px solid #409eff;outline:1px solid #409eff;outline-offset:-1px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:hover .widget-view-drag{display:block}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.active{outline:1px solid #409eff;border:1px solid #409eff;outline-offset:-1px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.ghost{background:#f56c6c;outline-width:0;width:5px!important;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0;position:relative;outline:none!important;border:0!important}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.ghost:after{background:#f56c6c;position:absolute;top:0;left:0;bottom:0;right:0;z-index:9999;content:"";outline:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content{width:100%;outline:1px dashed #ccc;background:#fff;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 1px;overflow:auto}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content .widget-table-col,.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content>div{height:100%}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content .widget-table-col .ghost{background:#f56c6c;position:relative;content:"";float:left;height:100%;width:5px!important;list-style:none;font-size:0;overflow:hidden;outline:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content .widget-table-col .ghost:after{background:#f56c6c;position:absolute;top:0;left:0;bottom:0;right:0;z-index:9999;content:"";outline:none}.widget-form-container .widget-form-list .widget-table.active{outline:2px solid #e6a23c;border:1px solid #e6a23c}.widget-form-container .widget-form-list .widget-table:hover{background:#fdf6ec;outline:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-table:hover.active{outline:2px solid #e6a23c;border:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-table .widget-view-action.widget-col-action,.widget-form-container .widget-form-list .widget-table .widget-view-drag.widget-col-drag{background:#e6a23c}.widget-form-container .widget-form-list .widget-table:after{display:none}.widget-form-container .widget-form-list .widget-table.ghost{background:#f56c6c;outline-width:0;height:5px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0;position:relative;outline:none;border:0}.widget-form-container .widget-form-list .widget-table.ghost:after{background:#f56c6c;position:absolute;top:0;left:0;right:0;bottom:0;content:"";display:block;z-index:999}.widget-form-container .widget-form-list .widget-col{padding-bottom:0;padding:5px;background-color:rgba(253,246,236,.3)}.widget-form-container .widget-form-list .widget-col.active{outline:2px solid #e6a23c;border:1px solid #e6a23c}.widget-form-container .widget-form-list .widget-col:hover{background:#fdf6ec;outline:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-col:hover.active{outline:2px solid #e6a23c;border:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-col .el-col{min-height:50px}.widget-form-container .widget-form-list .widget-col.ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .widget-form-list .widget-col .widget-view-action.widget-col-action,.widget-form-container .widget-form-list .widget-col .widget-view-drag.widget-col-drag{background:#e6a23c}.widget-form-container .widget-form-list .widget-col:after{display:none}.widget-form-container .widget-form-list .ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .widget-grid{background:#f4f6fc;position:relative;border-left:5px solid transparent;padding:5px;margin:0!important}.widget-form-container .widget-grid.active{border-left:5px solid #409eff;background:#b3d8ff}.widget-form-container .widget-grid-container.ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .ghost{background:#f56c6c;border:2px solid #f56c6c;position:relative}.widget-form-container .ghost:after{background:#f56c6c}.widget-form-container li.ghost{height:5px;list-style:none;font-size:0;overflow:hidden}.widget-config-container{position:relative}.widget-config-container .el-header{border-bottom:2px solid #e4e7ed;padding:0 5px}.widget-config-container .config-tab{height:45px;line-height:45px;display:inline-block;width:145px;text-align:center;font-size:14px;font-weight:500;position:relative;cursor:pointer}.widget-config-container .config-tab.active{border-bottom:2px solid #409eff}.widget-config-container .config-content{padding:10px}.widget-config-container .config-content .el-form-item__label{padding:0;font-weight:500}.widget-config-container .config-content .el-form-item{border-bottom:1px solid #e1e1e1;padding-bottom:10px}.widget-config-container .ghost{background:#fff;border:1px dashed #409eff}.widget-config-container .ghost:after{background:#fff;display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0}.widget-config-container ul{margin:0;padding:0}.widget-config-container li.ghost{list-style:none;font-size:0;display:block;position:relative}.viewer-container{z-index:99999!important}.form-empty{position:absolute;text-align:center;width:300px;font-size:20px;top:200px;left:50%;margin-left:-150px;color:#ccc} +/*! + * vue-treeselect v0.4.0 | (c) 2017-2019 Riophae Lee + * Released under the MIT License. + * https://vue-treeselect.js.org/ + */.vue-treeselect-helper-hide{display:none}.vue-treeselect-helper-zoom-effect-off{-webkit-transform:none!important;transform:none!important}@-webkit-keyframes vue-treeselect-animation-fade-in{0%{opacity:0}}@keyframes vue-treeselect-animation-fade-in{0%{opacity:0}}@-webkit-keyframes vue-treeselect-animation-bounce{0%,to{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes vue-treeselect-animation-bounce{0%,to{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes vue-treeselect-animation-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes vue-treeselect-animation-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.vue-treeselect__multi-value-item--transition-enter-active,.vue-treeselect__multi-value-item--transition-leave-active{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}.vue-treeselect__multi-value-item--transition-enter-active{-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.vue-treeselect__multi-value-item--transition-leave-active{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);position:absolute}.vue-treeselect__multi-value-item--transition-enter,.vue-treeselect__multi-value-item--transition-leave-to{-webkit-transform:scale(.7);transform:scale(.7);opacity:0}.vue-treeselect__multi-value-item--transition-move{-webkit-transition:-webkit-transform .2s cubic-bezier(.165,.84,.44,1);transition:-webkit-transform .2s cubic-bezier(.165,.84,.44,1);transition:transform .2s cubic-bezier(.165,.84,.44,1);transition:transform .2s cubic-bezier(.165,.84,.44,1),-webkit-transform .2s cubic-bezier(.165,.84,.44,1)}.vue-treeselect{position:relative;text-align:left}[dir=rtl] .vue-treeselect{text-align:right}.vue-treeselect div,.vue-treeselect span{-webkit-box-sizing:border-box;box-sizing:border-box}.vue-treeselect svg{fill:currentColor}.vue-treeselect__control{padding-left:5px;padding-right:5px;display:table;table-layout:fixed;width:100%;height:36px;border:1px solid #ddd;border-radius:5px;background:#fff;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:border-color,width,height,background-color,opacity,-webkit-box-shadow;transition-property:border-color,width,height,background-color,opacity,-webkit-box-shadow;transition-property:border-color,box-shadow,width,height,background-color,opacity;transition-property:border-color,box-shadow,width,height,background-color,opacity,-webkit-box-shadow;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.vue-treeselect:not(.vue-treeselect--disabled):not(.vue-treeselect--focused) .vue-treeselect__control:hover{border-color:#cfcfcf}.vue-treeselect--focused:not(.vue-treeselect--open) .vue-treeselect__control{border-color:#039be5;-webkit-box-shadow:0 0 0 3px rgba(3,155,229,.1);box-shadow:0 0 0 3px rgba(3,155,229,.1)}.vue-treeselect--disabled .vue-treeselect__control{background-color:#f9f9f9}.vue-treeselect--open .vue-treeselect__control{border-color:#cfcfcf}.vue-treeselect--open.vue-treeselect--open-below .vue-treeselect__control{border-bottom-left-radius:0;border-bottom-right-radius:0}.vue-treeselect--open.vue-treeselect--open-above .vue-treeselect__control{border-top-left-radius:0;border-top-right-radius:0}.vue-treeselect__multi-value,.vue-treeselect__value-container{width:100%;vertical-align:middle}.vue-treeselect__value-container{display:table-cell;position:relative}.vue-treeselect--searchable:not(.vue-treeselect--disabled) .vue-treeselect__value-container{cursor:text}.vue-treeselect__multi-value{display:inline-block}.vue-treeselect--has-value .vue-treeselect__multi-value{margin-bottom:5px}.vue-treeselect__placeholder,.vue-treeselect__single-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:5px;padding-right:5px;position:absolute;top:0;right:0;bottom:0;left:0;line-height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.vue-treeselect__placeholder{color:#bdbdbd}.vue-treeselect__single-value{color:#333}.vue-treeselect--focused.vue-treeselect--searchable .vue-treeselect__single-value{color:#bdbdbd}.vue-treeselect--disabled .vue-treeselect__single-value{position:static}.vue-treeselect__multi-value-item-container{display:inline-block;padding-top:5px;padding-right:5px;vertical-align:top}[dir=rtl] .vue-treeselect__multi-value-item-container{padding-right:0;padding-left:5px}.vue-treeselect__multi-value-item{display:inline-table;padding:2px 0;border:1px solid transparent;border-radius:2px;font-size:12px;vertical-align:top}.vue-treeselect:not(.vue-treeselect--disabled) .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-disabled):hover .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-new) .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-new):hover,.vue-treeselect__multi-value-item{cursor:pointer;background:#e3f2fd;color:#039be5}.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-disabled{cursor:default;background:#f5f5f5;color:#757575}.vue-treeselect--disabled .vue-treeselect__multi-value-item{cursor:default;background:#fff;border-color:#e5e5e5;color:#555}.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-new,.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-new:hover{background:#e8f5e9}.vue-treeselect__multi-value-label,.vue-treeselect__value-remove{display:table-cell;padding:0 5px;vertical-align:middle}.vue-treeselect__value-remove{color:#039be5;padding-left:5px;border-left:1px solid #fff;line-height:0}[dir=rtl] .vue-treeselect__value-remove{border-left:0 none;border-right:1px solid #fff}.vue-treeselect__multi-value-item:hover .vue-treeselect__value-remove{color:#e53935}.vue-treeselect--disabled .vue-treeselect__value-remove,.vue-treeselect__multi-value-item-disabled .vue-treeselect__value-remove{display:none}.vue-treeselect__value-remove>svg{width:6px;height:6px}.vue-treeselect__multi-value-label{padding-right:5px;white-space:pre-line;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vue-treeselect__limit-tip{display:inline-block;padding-top:5px;padding-right:5px;vertical-align:top}[dir=rtl] .vue-treeselect__limit-tip{padding-right:0;padding-left:5px}.vue-treeselect__limit-tip-text{cursor:default;display:block;margin:2px 0;padding:1px 0;color:#bdbdbd;font-size:12px;font-weight:600}.vue-treeselect__input-container{display:block;max-width:100%;outline:none}.vue-treeselect--single .vue-treeselect__input-container{font-size:inherit;height:100%}.vue-treeselect--multi .vue-treeselect__input-container{display:inline-block;font-size:12px;vertical-align:top}.vue-treeselect--searchable .vue-treeselect__input-container{padding-left:5px;padding-right:5px}.vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value .vue-treeselect__input-container{padding-top:5px;padding-left:0}[dir=rtl] .vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value .vue-treeselect__input-container{padding-left:5px;padding-right:0}.vue-treeselect--disabled .vue-treeselect__input-container{display:none}.vue-treeselect__input,.vue-treeselect__sizer{margin:0;line-height:inherit;font-family:inherit;font-size:inherit}.vue-treeselect__input{max-width:100%;margin:0;padding:0;border:0;outline:none;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-box-shadow:none;box-shadow:none;background:none transparent;line-height:1;vertical-align:middle}.vue-treeselect__input::-ms-clear{display:none}.vue-treeselect--single .vue-treeselect__input{width:100%;height:100%}.vue-treeselect--multi .vue-treeselect__input{padding-top:3px;padding-bottom:3px}.vue-treeselect--has-value .vue-treeselect__input{line-height:inherit;vertical-align:top}.vue-treeselect__sizer{position:absolute;top:0;left:0;visibility:hidden;height:0;overflow:scroll;white-space:pre}.vue-treeselect__x-container{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0;cursor:pointer;color:#ccc;-webkit-animation:vue-treeselect-animation-fade-in .2s cubic-bezier(.075,.82,.165,1);animation:vue-treeselect-animation-fade-in .2s cubic-bezier(.075,.82,.165,1)}.vue-treeselect__x-container:hover{color:#e53935}.vue-treeselect__x{width:8px;height:8px}.vue-treeselect__control-arrow-container{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0;cursor:pointer}.vue-treeselect--disabled .vue-treeselect__control-arrow-container{cursor:default}.vue-treeselect__control-arrow{width:9px;height:9px;color:#ccc}.vue-treeselect:not(.vue-treeselect--disabled) .vue-treeselect__control-arrow-container:hover .vue-treeselect__control-arrow{color:#616161}.vue-treeselect--disabled .vue-treeselect__control-arrow{opacity:.35}.vue-treeselect__control-arrow--rotated{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vue-treeselect__menu-container{position:absolute;left:0;width:100%;overflow:visible;-webkit-transition:0s;transition:0s}.vue-treeselect--open-below:not(.vue-treeselect--append-to-body) .vue-treeselect__menu-container{top:100%}.vue-treeselect--open-above:not(.vue-treeselect--append-to-body) .vue-treeselect__menu-container{bottom:100%}.vue-treeselect__menu{cursor:default;padding-top:5px;padding-bottom:5px;display:block;position:absolute;overflow-x:hidden;overflow-y:auto;width:auto;border:1px solid #cfcfcf;background:#fff;line-height:180%;-webkit-overflow-scrolling:touch}.vue-treeselect--open-below .vue-treeselect__menu{border-bottom-left-radius:5px;border-bottom-right-radius:5px;top:0;margin-top:-1px;border-top-color:#f2f2f2;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.06);box-shadow:0 1px 0 rgba(0,0,0,.06)}.vue-treeselect--open-above .vue-treeselect__menu{border-top-left-radius:5px;border-top-right-radius:5px;bottom:0;margin-bottom:-1px;border-bottom-color:#f2f2f2}.vue-treeselect__indent-level-0 .vue-treeselect__option{padding-left:5px}[dir=rtl] .vue-treeselect__indent-level-0 .vue-treeselect__option{padding-left:5px;padding-right:5px}.vue-treeselect__indent-level-0 .vue-treeselect__tip{padding-left:25px}[dir=rtl] .vue-treeselect__indent-level-0 .vue-treeselect__tip{padding-left:5px;padding-right:25px}.vue-treeselect__indent-level-1 .vue-treeselect__option{padding-left:25px}[dir=rtl] .vue-treeselect__indent-level-1 .vue-treeselect__option{padding-left:5px;padding-right:25px}.vue-treeselect__indent-level-1 .vue-treeselect__tip{padding-left:45px}[dir=rtl] .vue-treeselect__indent-level-1 .vue-treeselect__tip{padding-left:5px;padding-right:45px}.vue-treeselect__indent-level-2 .vue-treeselect__option{padding-left:45px}[dir=rtl] .vue-treeselect__indent-level-2 .vue-treeselect__option{padding-left:5px;padding-right:45px}.vue-treeselect__indent-level-2 .vue-treeselect__tip{padding-left:65px}[dir=rtl] .vue-treeselect__indent-level-2 .vue-treeselect__tip{padding-left:5px;padding-right:65px}.vue-treeselect__indent-level-3 .vue-treeselect__option{padding-left:65px}[dir=rtl] .vue-treeselect__indent-level-3 .vue-treeselect__option{padding-left:5px;padding-right:65px}.vue-treeselect__indent-level-3 .vue-treeselect__tip{padding-left:85px}[dir=rtl] .vue-treeselect__indent-level-3 .vue-treeselect__tip{padding-left:5px;padding-right:85px}.vue-treeselect__indent-level-4 .vue-treeselect__option{padding-left:85px}[dir=rtl] .vue-treeselect__indent-level-4 .vue-treeselect__option{padding-left:5px;padding-right:85px}.vue-treeselect__indent-level-4 .vue-treeselect__tip{padding-left:105px}[dir=rtl] .vue-treeselect__indent-level-4 .vue-treeselect__tip{padding-left:5px;padding-right:105px}.vue-treeselect__indent-level-5 .vue-treeselect__option{padding-left:105px}[dir=rtl] .vue-treeselect__indent-level-5 .vue-treeselect__option{padding-left:5px;padding-right:105px}.vue-treeselect__indent-level-5 .vue-treeselect__tip{padding-left:125px}[dir=rtl] .vue-treeselect__indent-level-5 .vue-treeselect__tip{padding-left:5px;padding-right:125px}.vue-treeselect__indent-level-6 .vue-treeselect__option{padding-left:125px}[dir=rtl] .vue-treeselect__indent-level-6 .vue-treeselect__option{padding-left:5px;padding-right:125px}.vue-treeselect__indent-level-6 .vue-treeselect__tip{padding-left:145px}[dir=rtl] .vue-treeselect__indent-level-6 .vue-treeselect__tip{padding-left:5px;padding-right:145px}.vue-treeselect__indent-level-7 .vue-treeselect__option{padding-left:145px}[dir=rtl] .vue-treeselect__indent-level-7 .vue-treeselect__option{padding-left:5px;padding-right:145px}.vue-treeselect__indent-level-7 .vue-treeselect__tip{padding-left:165px}[dir=rtl] .vue-treeselect__indent-level-7 .vue-treeselect__tip{padding-left:5px;padding-right:165px}.vue-treeselect__indent-level-8 .vue-treeselect__option{padding-left:165px}[dir=rtl] .vue-treeselect__indent-level-8 .vue-treeselect__option{padding-left:5px;padding-right:165px}.vue-treeselect__indent-level-8 .vue-treeselect__tip{padding-left:185px}[dir=rtl] .vue-treeselect__indent-level-8 .vue-treeselect__tip{padding-left:5px;padding-right:185px}.vue-treeselect__option{padding-left:5px;padding-right:5px;display:table;table-layout:fixed;width:100%}.vue-treeselect__option--highlight{background:#f5f5f5}.vue-treeselect--single .vue-treeselect__option--selected{background:#e3f2fd;font-weight:600}.vue-treeselect--single .vue-treeselect__option--selected:hover{background:#e3f2fd}.vue-treeselect__option--hide{display:none}.vue-treeselect__option-arrow-container,.vue-treeselect__option-arrow-placeholder{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0}.vue-treeselect__option-arrow-container{cursor:pointer}.vue-treeselect__option-arrow{display:inline-block;width:9px;height:9px;color:#ccc;vertical-align:middle;-webkit-transition:-webkit-transform .2s cubic-bezier(.19,1,.22,1);transition:-webkit-transform .2s cubic-bezier(.19,1,.22,1);transition:transform .2s cubic-bezier(.19,1,.22,1);transition:transform .2s cubic-bezier(.19,1,.22,1),-webkit-transform .2s cubic-bezier(.19,1,.22,1);-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}[dir=rtl] .vue-treeselect__option-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.vue-treeselect--branch-nodes-disabled .vue-treeselect__option:hover .vue-treeselect__option-arrow,.vue-treeselect__option-arrow-container:hover .vue-treeselect__option-arrow{color:#616161}.vue-treeselect__option-arrow--rotated,[dir=rtl] .vue-treeselect__option-arrow--rotated{-webkit-transform:rotate(0);transform:rotate(0)}.vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter{-webkit-transform:rotate(-90deg)!important;transform:rotate(-90deg)!important}[dir=rtl] .vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter{-webkit-transform:rotate(90deg)!important;transform:rotate(90deg)!important}.vue-treeselect__label-container{display:table-cell;vertical-align:middle;cursor:pointer;display:table;width:100%;table-layout:fixed;color:inherit}.vue-treeselect__option--disabled .vue-treeselect__label-container{cursor:not-allowed;color:rgba(0,0,0,.25)}.vue-treeselect__checkbox-container{display:table-cell;width:20px;min-width:20px;height:100%;text-align:center;vertical-align:middle}.vue-treeselect__checkbox{display:block;margin:auto;width:12px;height:12px;border-width:1px;border-style:solid;border-radius:2px;position:relative;-webkit-transition:all .2s cubic-bezier(.075,.82,.165,1);transition:all .2s cubic-bezier(.075,.82,.165,1)}.vue-treeselect__check-mark,.vue-treeselect__minus-mark{display:block;position:absolute;left:1px;top:1px;background-repeat:no-repeat;opacity:0;-webkit-transition:all .2s ease;transition:all .2s ease}.vue-treeselect__minus-mark{width:8px;height:8px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAgMAAAC5YVYYAAAACVBMVEUAAAD///////9zeKVjAAAAAnRSTlMAuLMp9oYAAAAPSURBVAjXY4CDrJUgBAMAGaECJ9dz3BAAAAAASUVORK5CYII=);background-size:8px 8px}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAAD///////////84wDuoAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAAD///////////84wDuoAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAD1BMVEUAAAD///////////////+PQt5oAAAABHRSTlMAy2EFIuWxUgAAACRJREFUGNNjGBBgJOICBY7KDCoucODEAJSAS6FwUJShGjAQAADBPRGrK2/FhgAAAABJRU5ErkJggg==)}}.vue-treeselect__checkbox--indeterminate>.vue-treeselect__minus-mark{opacity:1}.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAgMAAAC5YVYYAAAACVBMVEUAAADi4uLh4eHOxeSRAAAAAnRSTlMAuLMp9oYAAAAPSURBVAjXY4CDrJUgBAMAGaECJ9dz3BAAAAAASUVORK5CYII=)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAADi4uLi4uLh4eE5RQaIAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAADi4uLi4uLh4eE5RQaIAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAD1BMVEUAAADh4eHg4ODNzc3h4eEYfw2wAAAABHRSTlMAy2EFIuWxUgAAACRJREFUGNNjGBBgJOICBY7KDCoucODEAJSAS6FwUJShGjAQAADBPRGrK2/FhgAAAABJRU5ErkJggg==)}}.vue-treeselect__check-mark{width:8px;height:8px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAQlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////8IX9KGAAAAFXRSTlMA8u24NxILB+Tawb6jiH1zRz0xIQIIP3GUAAAAMklEQVQI1y3FtQEAMQDDQD+EGbz/qkEVOpyEOP6PudKjZNSXn4Jm2CKRdBKzSLsFWl8fMG0Bl6Jk1rMAAAAASUVORK5CYII=);background-size:8px 8px;-webkit-transform:scaleY(.125);transform:scaleY(.125)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98JRy6AAAAH3RSTlMAzu4sDenl38fBvo1OMyIdEQrj1cSihX5hYFpHNycIcQOASAAAAF9JREFUGNN9zEcOgDAMRFHTS0LvNfe/JRmHKAIJ/mqeLJn+k9uDtaeUeFnFziGsBucUTirrprfe81RqZ3Bb6hPWeuZwDFOHyf+ig9CCzQ7INBn7bG5kF+QSt13BHNJnF7AaCT4Y+CW7AAAAAElFTkSuQmCC)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98JRy6AAAAH3RSTlMAzu4sDenl38fBvo1OMyIdEQrj1cSihX5hYFpHNycIcQOASAAAAF9JREFUGNN9zEcOgDAMRFHTS0LvNfe/JRmHKAIJ/mqeLJn+k9uDtaeUeFnFziGsBucUTirrprfe81RqZ3Bb6hPWeuZwDFOHyf+ig9CCzQ7INBn7bG5kF+QSt13BHNJnF7AaCT4Y+CW7AAAAAElFTkSuQmCC)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAWlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////9ZMre9AAAAHXRSTlMA/PiJhGNI9XlEHJB/b2ldV08+Oibk49vPp6QhAYgGBuwAAACCSURBVCjPrdHdDoIwDAXgTWAqCigo/+f9X5OwnoUwtis4V92XNWladUl+rzQPeQJAN2EHxoOnsPn7/oYk8fxBv08Rr/deOH/aZ2Nm8ZJ+s573QGfWKnNuZGzWm3+lv2V3pcU1XQ385/yjmBoM3Z+dXvlbYLLD3ujhTaOM3KaIXvNkFkuSEvYy1LqOAAAAAElFTkSuQmCC)}}.vue-treeselect__checkbox--checked>.vue-treeselect__check-mark{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAP1BMVEUAAADj4+Pf39/h4eHh4eHh4eHk5OTh4eHg4ODi4uLh4eHh4eHg4ODh4eHh4eHg4ODh4eHh4eHp6en////h4eFqcyvUAAAAFHRSTlMAOQfy7bgS5NrBvqOIfXNHMSELAgQ/iFsAAAA2SURBVAjXY4AANjYIzcjMAaVFuBkY+RkEWERYmRjYRXjANAOfiIgIFxNIAa8IpxBEi6AwiAQAK2MBd7xY8csAAAAASUVORK5CYII=)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAADh4eHh4eHh4eHi4uLb29vh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLj4+Pi4uLk5OTo6Ojh4eHh4eHi4uLg4ODg4ODh4eHg4ODh4eHf39/g4OD////h4eEzIk+wAAAAHnRSTlMAzu6/LA3p5eLZx8ONTjYiHRIKooV+YWBaRzEnCANnm5rnAAAAZElEQVQY033P2wqAIAyA4VWaaWrnc/n+j5mbhBjUf7WPoTD47TJb4i5zTr/sRDRHuyFaoWX7uK/RlbctlPEuyI1f4WY9yQINEkf6rzzo8YIzmUFoCs7J1EjeIaa9bXIEmzl8dgOZEAj/+2IvzAAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAADh4eHh4eHh4eHi4uLb29vh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLj4+Pi4uLk5OTo6Ojh4eHh4eHi4uLg4ODg4ODh4eHg4ODh4eHf39/g4OD////h4eEzIk+wAAAAHnRSTlMAzu6/LA3p5eLZx8ONTjYiHRIKooV+YWBaRzEnCANnm5rnAAAAZElEQVQY033P2wqAIAyA4VWaaWrnc/n+j5mbhBjUf7WPoTD47TJb4i5zTr/sRDRHuyFaoWX7uK/RlbctlPEuyI1f4WY9yQINEkf6rzzo8YIzmUFoCs7J1EjeIaa9bXIEmzl8dgOZEAj/+2IvzAAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAUVBMVEUAAADh4eHh4eHh4eHh4eHi4uLi4uLh4eHh4eHh4eHf39/j4+Ph4eHh4eHh4eHg4ODi4uLh4eHh4eHi4uLh4eHh4eHh4eHh4eHh4eH////h4eF3FMFTAAAAGnRSTlMA+/eJhGhfSHE9JBzz5KaQf3pXT0Xbz0I5AYDw8F0AAAB+SURBVCjPrdHbDoMgEEVRKAii1dZe9fz/hxplTiKIT7qfYCWTEEZdUvOwbckNAD2WHeh3brHW5f5EzGQ+iN+b1Gt6KPvtv16Dn6JX9M9ya3/A1yfu5dlyduL6Hec7mXY6ddXLPP2lpABGZ8PWXfYLTJxZekVhhl7eTX24zZPNKXoRC7zQLjUAAAAASUVORK5CYII=)}}.vue-treeselect__checkbox--unchecked{border-color:#e0e0e0;background:#fff}.vue-treeselect__label-container:hover .vue-treeselect__checkbox--unchecked{border-color:#039be5;background:#fff}.vue-treeselect__checkbox--checked,.vue-treeselect__checkbox--indeterminate,.vue-treeselect__label-container:hover .vue-treeselect__checkbox--checked,.vue-treeselect__label-container:hover .vue-treeselect__checkbox--indeterminate{border-color:#039be5;background:#039be5}.vue-treeselect__checkbox--disabled,.vue-treeselect__label-container:hover .vue-treeselect__checkbox--disabled{border-color:#e0e0e0;background-color:#f7f7f7}.vue-treeselect__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:table-cell;padding-left:5px;max-width:100%;vertical-align:middle;cursor:inherit}[dir=rtl] .vue-treeselect__label{padding-left:0;padding-right:5px}.vue-treeselect__count{margin-left:5px;font-weight:400;opacity:.6}[dir=rtl] .vue-treeselect__count{margin-left:0;margin-right:5px}.vue-treeselect__tip{padding-left:5px;padding-right:5px;display:table;table-layout:fixed;width:100%;color:#757575}.vue-treeselect__tip-text{display:table-cell;vertical-align:middle;padding-left:5px;padding-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:12px}.vue-treeselect__error-tip .vue-treeselect__retry{cursor:pointer;margin-left:5px;font-style:normal;font-weight:600;text-decoration:none;color:#039be5}[dir=rtl] .vue-treeselect__error-tip .vue-treeselect__retry{margin-left:0;margin-right:5px}.vue-treeselect__icon-container{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0}.vue-treeselect--single .vue-treeselect__icon-container{padding-left:5px}[dir=rtl] .vue-treeselect--single .vue-treeselect__icon-container{padding-left:0;padding-right:5px}.vue-treeselect__icon-warning{display:block;margin:auto;border-radius:50%;position:relative;width:12px;height:12px;background:#fb8c00}.vue-treeselect__icon-warning:after{display:block;position:absolute;content:"";left:5px;top:2.5px;width:2px;height:1px;border:0 solid #fff;border-top-width:5px;border-bottom-width:1px}.vue-treeselect__icon-error{display:block;margin:auto;border-radius:50%;position:relative;width:12px;height:12px;background:#e53935}.vue-treeselect__icon-error:after,.vue-treeselect__icon-error:before{display:block;position:absolute;content:"";background:#fff;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.vue-treeselect__icon-error:before{width:6px;height:2px;left:3px;top:5px}.vue-treeselect__icon-error:after{width:2px;height:6px;left:5px;top:3px}.vue-treeselect__icon-loader{display:block;margin:auto;position:relative;width:12px;height:12px;text-align:center;-webkit-animation:vue-treeselect-animation-rotate 1.6s linear infinite;animation:vue-treeselect-animation-rotate 1.6s linear infinite}.vue-treeselect__icon-loader:after,.vue-treeselect__icon-loader:before{border-radius:50%;position:absolute;content:"";left:0;top:0;display:block;width:100%;height:100%;opacity:.6;-webkit-animation:vue-treeselect-animation-bounce 1.6s ease-in-out infinite;animation:vue-treeselect-animation-bounce 1.6s ease-in-out infinite}.vue-treeselect__icon-loader:before{background:#039be5}.vue-treeselect__icon-loader:after{background:#b3e5fc;-webkit-animation-delay:-.8s;animation-delay:-.8s}.vue-treeselect__menu-placeholder{display:none}.vue-treeselect__portal-target{position:absolute;display:block;left:0;top:0;height:0;width:0;padding:0;margin:0;border:0;overflow:visible;-webkit-box-sizing:border-box;box-sizing:border-box} \ No newline at end of file diff --git a/static/web/css/chunk-a6becd9c.6f7ef42c.css b/static/web/css/chunk-a6becd9c.6f7ef42c.css new file mode 100644 index 0000000..b15ab08 --- /dev/null +++ b/static/web/css/chunk-a6becd9c.6f7ef42c.css @@ -0,0 +1,13 @@ +.panel-group .card-panel-col[data-v-634acd46]{margin-bottom:32px}.panel-group .card-panel[data-v-634acd46]{height:108px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.panel-group .card-panel:hover .card-panel-icon-wrapper[data-v-634acd46]{color:#fff}.panel-group .card-panel:hover .icon-people[data-v-634acd46]{background:#40c9c6}.panel-group .card-panel:hover .icon-message[data-v-634acd46]{background:#36a3f7}.panel-group .card-panel:hover .icon-money[data-v-634acd46]{background:#f4516c}.panel-group .card-panel:hover .icon-shopping[data-v-634acd46]{background:#34bfa3}.panel-group .card-panel .icon-people[data-v-634acd46]{color:#40c9c6}.panel-group .card-panel .icon-message[data-v-634acd46]{color:#36a3f7}.panel-group .card-panel .icon-money[data-v-634acd46]{color:#f4516c}.panel-group .card-panel .icon-shopping[data-v-634acd46]{color:#34bfa3}.panel-group .card-panel .card-panel-icon-wrapper[data-v-634acd46]{float:left;margin:14px 0 0 14px;padding:16px;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px}.panel-group .card-panel .card-panel-icon[data-v-634acd46]{float:left;font-size:48px}.panel-group .card-panel .card-panel-description[data-v-634acd46]{float:right;font-weight:700;margin:26px;margin-left:0}.panel-group .card-panel .card-panel-description .card-panel-text[data-v-634acd46]{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.panel-group .card-panel .card-panel-description .card-panel-num[data-v-634acd46]{font-size:20px}@media (max-width:550px){.card-panel-description[data-v-634acd46]{display:none}.card-panel-icon-wrapper[data-v-634acd46]{float:none!important;width:100%;height:100%;margin:0!important}.card-panel-icon-wrapper .svg-icon[data-v-634acd46]{display:block;margin:14px auto!important;float:none!important}}.dashboard-editor-container[data-v-0d1abac5]{padding-top:32px;padding-left:32px;padding-right:32px;background-color:#f0f2f5;position:relative}.dashboard-editor-container .github-corner[data-v-0d1abac5]{position:absolute;top:0;border:0;right:0}.dashboard-editor-container .chart-wrapper[data-v-0d1abac5]{background:#fff;padding:16px 16px 0;margin-bottom:32px}@media (max-width:1024px){.chart-wrapper[data-v-0d1abac5]{padding:8px}}.errPage-container[data-v-35ca77fc]{width:800px;max-width:100%;margin:100px auto}.errPage-container .pan-back-btn[data-v-35ca77fc]{background:#008489;color:#fff;border:none!important}.errPage-container .pan-gif[data-v-35ca77fc]{margin:0 auto;display:block}.errPage-container .pan-img[data-v-35ca77fc]{display:block;margin:0 auto;width:100%}.errPage-container .text-jumbo[data-v-35ca77fc]{font-size:60px;font-weight:700;color:#484848}.errPage-container .list-unstyled[data-v-35ca77fc]{font-size:14px}.errPage-container .list-unstyled li[data-v-35ca77fc]{padding-bottom:5px}.errPage-container .list-unstyled a[data-v-35ca77fc]{color:#008489;text-decoration:none}.errPage-container .list-unstyled a[data-v-35ca77fc]:hover{text-decoration:underline}.wscn-http404-container[data-v-171d498a]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;top:40%;left:50%}.wscn-http404[data-v-171d498a]{position:relative;width:1200px;padding:0 50px;overflow:hidden}.wscn-http404 .pic-404[data-v-171d498a]{position:relative;float:left;width:600px;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-171d498a]{width:100%}.wscn-http404 .pic-404__child[data-v-171d498a]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-171d498a]{width:80px;top:17px;left:220px;opacity:0;-webkit-animation-name:cloudLeft-data-v-171d498a;animation-name:cloudLeft-data-v-171d498a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}.wscn-http404 .pic-404__child.mid[data-v-171d498a]{width:46px;top:10px;left:420px;opacity:0;-webkit-animation-name:cloudMid-data-v-171d498a;animation-name:cloudMid-data-v-171d498a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1.2s;animation-delay:1.2s}.wscn-http404 .pic-404__child.right[data-v-171d498a]{width:62px;top:100px;left:500px;opacity:0;-webkit-animation-name:cloudRight-data-v-171d498a;animation-name:cloudRight-data-v-171d498a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}@-webkit-keyframes cloudLeft-data-v-171d498a{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@keyframes cloudLeft-data-v-171d498a{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@-webkit-keyframes cloudMid-data-v-171d498a{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@keyframes cloudMid-data-v-171d498a{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@-webkit-keyframes cloudRight-data-v-171d498a{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}@keyframes cloudRight-data-v-171d498a{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}.wscn-http404 .bullshit[data-v-171d498a]{position:relative;float:left;width:300px;padding:30px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-171d498a]{font-size:32px;line-height:40px;color:#1482f0;margin-bottom:20px;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__headline[data-v-171d498a],.wscn-http404 .bullshit__oops[data-v-171d498a]{font-weight:700;opacity:0;-webkit-animation-name:slideUp-data-v-171d498a;animation-name:slideUp-data-v-171d498a;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__headline[data-v-171d498a]{font-size:20px;line-height:24px;color:#222;margin-bottom:10px;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-171d498a]{font-size:13px;line-height:21px;color:grey;margin-bottom:30px;-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-171d498a],.wscn-http404 .bullshit__return-home[data-v-171d498a]{opacity:0;-webkit-animation-name:slideUp-data-v-171d498a;animation-name:slideUp-data-v-171d498a;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__return-home[data-v-171d498a]{display:block;float:left;width:110px;height:36px;background:#1482f0;border-radius:100px;text-align:center;color:#fff;font-size:14px;line-height:36px;cursor:pointer;-webkit-animation-delay:.3s;animation-delay:.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes slideUp-data-v-171d498a{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp-data-v-171d498a{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.excel-upload-input[data-v-d2407dd6]{display:none;z-index:-9999}.drop[data-v-d2407dd6]{border:2px dashed #bbb;width:600px;height:160px;line-height:160px;margin:0 auto;font-size:24px;border-radius:5px;text-align:center;color:#bbb;position:relative}.login-container[data-v-853cf330]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;margin:0 auto;background:url(../../../static/web/img/login.ede1cdb8.png) no-repeat;background-color:#304175;position:relative;background-size:cover;height:100vh;background-position:50%}#particles-js[data-v-853cf330]{z-index:1;width:100%;height:100%;position:absolute}.login-weaper[data-v-853cf330]{margin:0 auto;width:1000px;-webkit-box-shadow:-4px 5px 10px rgba(0,0,0,.4);box-shadow:-4px 5px 10px rgba(0,0,0,.4);z-index:1000}.login-left[data-v-853cf330]{border-top-left-radius:5px;border-bottom-left-radius:5px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:rgba(64,158,255,0);color:#fff;float:left;width:50%;position:relative;min-height:500px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.login-left .login-time[data-v-853cf330]{position:absolute;left:25px;top:25px;width:100%;color:#fff;opacity:.9;font-size:18px;overflow:hidden;font-weight:500}.login-left .img[data-v-853cf330]{width:120px;height:120px;border-radius:3px}.login-left .title[data-v-853cf330]{text-align:center;color:#fff;letter-spacing:2px;font-size:30px;font-weight:600}.login-border[data-v-853cf330]{position:relative;min-height:500px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;border-left:none;border-top-right-radius:5px;border-bottom-right-radius:5px;color:#fff;background-color:hsla(0,0%,100%,.9);width:50%;float:left}.login-main[data-v-853cf330]{margin:0 auto;width:65%}.login-title[data-v-853cf330]{color:#333;margin-bottom:40px;font-weight:500;font-size:22px;text-align:center;letter-spacing:4px}@supports (-webkit-mask:none) and (not (cater-color:#fff)){.login-container .el-input input[data-v-853cf330]{color:#fff}}.login-container[data-v-853cf330] .el-input{display:inline-block;height:47px;width:85%}.login-container[data-v-853cf330] .el-input input{background:transparent;border:0;-webkit-appearance:none;border-radius:0;padding:12px 5px 12px 15px;color:#333;height:47px;caret-color:#333}.login-container[data-v-853cf330] .el-input input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #283443 inset!important;box-shadow:inset 0 0 0 1000px #283443!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item[data-v-853cf330]{border:1px solid rgba(0,0,0,.1);background:hsla(0,0%,100%,.8);border-radius:5px;color:#454545}.login-container .tips[data-v-853cf330]{font-size:14px;color:#fff;margin-bottom:10px}.login-container .tips span[data-v-853cf330]:first-of-type{margin-right:16px}.login-container .svg-container[data-v-853cf330]{padding:6px 5px 6px 15px;color:#889aa4;vertical-align:middle;width:30px;display:inline-block}.login-container .title-container[data-v-853cf330]{position:relative}.login-container .title-container .title[data-v-853cf330]{font-size:26px;color:#eee;margin:0 auto 40px auto;text-align:center;font-weight:700}.login-container .show-pwd[data-v-853cf330]{position:absolute;right:10px;top:7px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.login-container .thirdparty-button[data-v-853cf330]{position:absolute;right:0;bottom:6px}@media only screen and (max-width:470px){.login-container .thirdparty-button[data-v-853cf330]{display:none}}.social-signup-container[data-v-7309fbbb]{margin:20px 0}.social-signup-container .sign-btn[data-v-7309fbbb]{display:inline-block;cursor:pointer}.social-signup-container .icon[data-v-7309fbbb]{color:#fff;font-size:24px;margin-top:8px}.social-signup-container .qq-svg-container[data-v-7309fbbb],.social-signup-container .wx-svg-container[data-v-7309fbbb]{display:inline-block;width:40px;height:40px;line-height:40px;text-align:center;padding-top:1px;border-radius:4px;margin-bottom:20px;margin-right:5px}.social-signup-container .wx-svg-container[data-v-7309fbbb]{background-color:#24da70}.social-signup-container .qq-svg-container[data-v-7309fbbb]{background-color:#6ba2d6;margin-left:50px}.codemirror[data-v-cbc51eae]{line-height:150%}.codemirror-div[data-v-cbc51eae]{border:1px solid #dcdfe6;border-radius:4px;overflow:hidden}.custom-tree-node[data-v-deb34b76]{-webkit-box-flex:1;-ms-flex:1;flex:1;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;font-size:14px;padding-right:8px}.previewEditorDiv>p{margin:0}.preview-cascader-class .el-input.is-disabled .el-input__inner{background-color:#fff;border:none;color:#303133}.preview-cascader-class .el-input.is-disabled .el-input__suffix .el-input__suffix-inner .el-input__icon.el-icon-arrow-down:before{content:""}aside{background:#fff;padding:0;margin-bottom:0}aside a{color:#333}@font-face{font-family:iconfont;src:url(../../../static/web/fonts/iconfont.8efbc988.eot);src:url(../../../static/web/fonts/iconfont.8efbc988.eot#iefix) format("embedded-opentype"),url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2"),url(../../../static/web/fonts/iconfont.34ea3475.woff) format("woff"),url(../../../static/web/fonts/iconfont.4d5a9051.ttf) format("truetype"),url(../../../static/web/img/iconfont.f0e930ef.svg#iconfont) format("svg")}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content .widget-table-col,.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content>div{height:100%}.widget-form-container .widget-form-list .widget-col .widget-view-action.widget-col-action,.widget-form-container .widget-form-list .widget-col .widget-view-drag.widget-col-drag,.widget-form-container .widget-form-list .widget-table .widget-view-action.widget-col-action,.widget-form-container .widget-form-list .widget-table .widget-view-drag.widget-col-drag{background:#e6a23c}.widget-config-container .config-tab{width:143px} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none} + +/*! + * Viewer.js v1.3.5 + * https://fengyuanchen.github.io/viewerjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2019-07-04T11:00:13.705Z + */.viewer-close:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen-exit:before,.viewer-fullscreen:before,.viewer-next:before,.viewer-one-to-one:before,.viewer-play:before,.viewer-prev:before,.viewer-reset:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-zoom-in:before,.viewer-zoom-out:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAUCAYAAABWOyJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAQPSURBVHic7Zs/iFxVFMa/0U2UaJGksUgnIVhYxVhpjDbZCBmLdAYECxsRFBTUamcXUiSNncgKQbSxsxH8gzAP3FU2jY0kKKJNiiiIghFlccnP4p3nPCdv3p9778vsLOcHB2bfveeb7955c3jvvNkBIMdxnD64a94GHMfZu3iBcRynN7zAOI7TG15gHCeeNUkr8zaxG2lbYDYsdgMbktBsP03jdQwljSXdtBhLOmtjowC9Mg9L+knSlcD8TNKpSA9lBpK2JF2VdDSR5n5J64m0qli399hNFMUlpshQii5jbXTbHGviB0nLNeNDSd9VO4A2UdB2fp+x0eCnaXxWXGA2X0au/3HgN9P4LFCjIANOJdrLr0zzZ+BEpNYDwKbpnQMeAw4m8HjQtM6Z9qa917zPQwFr3M5KgA6J5rTJCdFZJj9/lyvGhsDvwFNVuV2MhhjrK6b9bFiE+j1r87eBl4HDwCF7/U/k+ofAX5b/EXBv5JoLMuILzf3Ap6Z3EzgdqHMCuF7hcQf4HDgeoHnccncqdK/TvSDWffFXI/exICY/xZyqc6XLWF1UFZna4gJ7q8BsRvgd2/xXpo6P+D9dfT7PpECtA3cnWPM0GXGFZh/wgWltA+cDNC7X+AP4GzjZQe+k5dRxuYPeiuXU7e1qwLpDz7dFjXKRaSwuMLvAlG8zZlG+YmiK1HoFqT7wP2z+4Q45TfEGcMt01xLoNZEBTwRqD4BLpnMLeC1A41UmVxsXgXeBayV/Wx20rpTyrpnWRft7p6O/FdqzGrDukPNtkaMoMo3FBdBSQMOnYBCReyf05s126fU9ytfX98+mY54Kxnp7S9K3kj6U9KYdG0h6UdLbkh7poFXMfUnSOyVvL0h6VtIXHbS6nOP+s/Zm9mvyXW1uuC9ohZ72E9uDmXWLJOB1GxsH+DxPftsB8B6wlGDN02TAkxG6+4D3TWsbeC5CS8CDFce+AW500LhhOW2020TRjK3b21HEmgti9m0RonxbdMZeVzV+/4tF3cBpP7E9mKHNL5q8h5g0eYsCMQz0epq8gQrwMXAgcs0FGXGFRcB9wCemF9PkbYqM/Bas7fxLwNeJPdTdpo4itQti8lPMqTpXuozVRVXPpbHI3KkNTB1NfkL81j2mvhDp91HgV9MKuRIqrykj3WPq4rHyL+axj8/qGPmTqi6F9YDlHOvJU6oYcTsh/TYSzWmTE6JT19CtLTJt32D6CmHe0eQn1O8z5AXgT4sx4Vcu0/EQecMydB8z0hUWkTd2t4CrwNEePqMBcAR4mrBbwyXLPWJa8zrXmmLEhNBmfpkuY2102xxrih+pb+ieAb6vGhuA97UcJ5KR8gZ77K+99xxeYBzH6Q3/Z0fHcXrDC4zjOL3hBcZxnN74F+zlvXFWXF9PAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.viewer-container::-moz-selection,.viewer-container ::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container ::selection{background-color:transparent}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:rgba(0,0,0,.5);overflow:hidden}.viewer-list{-webkit-box-sizing:content-box;box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;-webkit-transition:opacity .15s;transition:opacity .15s;width:30px}.viewer-list>li:hover{opacity:.75}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;right:0}.viewer-player,.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:3px 0}.viewer-toolbar>ul>li{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;-webkit-transition:background-color .15s;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:hover{background-color:rgba(0,0,0,.8)}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:rgba(0,0,0,.8);border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1;margin:0 5% 5px;max-width:90%;opacity:.8;overflow:hidden;text-overflow:ellipsis;-webkit-transition:opacity .15s;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;-webkit-transition:background-color .15s;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:rgba(0,0,0,.8)}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:rgba(0,0,0,.5)}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:-webkit-grab;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{-webkit-transition:all .3s;transition:all .3s}@-webkit-keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.viewer-loading:after{-webkit-animation:viewer-spinner 1s linear infinite;animation:viewer-spinner 1s linear infinite;border:4px solid hsla(0,0%,100%,.1);border-left-color:hsla(0,0%,100%,.5);border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width:767px){.viewer-hide-xs-down{display:none}}@media (max-width:991px){.viewer-hide-sm-down{display:none}}@media (max-width:1199px){.viewer-hide-md-down{display:none}}.fm-uplaod-container .is-disabled{position:relative}.fm-uplaod-container .is-disabled:after{position:absolute;top:0;bottom:0;left:0;right:0;content:"";display:block;cursor:not-allowed}.fm-uplaod-container .upload-file{margin:0 10px 10px 0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:top}.fm-uplaod-container .upload-file:hover .uplaod-action{display:-webkit-box;display:-ms-flexbox;display:flex}.fm-uplaod-container .upload-file .uplaod-action{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.6);display:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-uplaod-container .upload-file .uplaod-action i{color:#fff;cursor:pointer;margin:0 5px}.fm-uplaod-container .upload-file.is-success .item-status{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.fm-uplaod-container .upload-file.is-success .item-status>i{font-size:12px;margin-top:11px;color:#fff;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.fm-uplaod-container .upload-file.uploading:before{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3)}.fm-uplaod-container .upload-file .upload-progress{position:absolute}.fm-uplaod-container .upload-file .upload-progress .el-progress__text{color:#fff;font-size:16px!important}.fm-uplaod-container .upload-file img{max-width:100%;max-height:100%;vertical-align:middle}.fm-uplaod-container .el-upload--picture-card{position:relative;overflow:hidden}.fm-uplaod-container .el-upload--picture-card .el-icon-plus{position:absolute;top:50%;left:50%}.fm-uplaod-container .upload-input{position:absolute;top:0;left:0;right:0;bottom:0;display:block;opacity:0;cursor:pointer}.fm-uplaod-container .drag-img-list{display:inline}.fm-uplaod-container .drag-img-list .ghost{position:relative}.fm-uplaod-container .drag-img-list .ghost:after{width:100%;height:100%;display:block;content:"";background:#fbfdff;position:absolute;top:0;bottom:0;left:0;right:0;border:1px dashed #3bb3c2}.fm-uplaod-container .drag-img-list>div{cursor:move}.viewer-container{z-index:9999!important}.cus-dialog-container .el-dialog__footer{margin:0 20px;padding:15px 0 16px;text-align:center;position:relative}.cus-dialog-container .el-dialog__footer .dialog-footer{display:block}.cus-dialog-container .el-dialog__footer .dialog-footer .circular{display:inline-block;vertical-align:middle;margin-right:5px;width:24px;height:24px}.cus-dialog-container .el-dialog__footer .dialog-footer .el-loading-text{display:inline-block;vertical-align:middle}.cus-dialog-container .el-dialog__footer .dialog-footer .el-loading-spinner{margin-top:-12px}.widget-empty{background-position:50%}@font-face{font-family:iconfont;src:url(../../../static/web/fonts/iconfont.8efbc988.8efbc988.eot);src:url(../../../static/web/fonts/iconfont.8efbc988.8efbc988.eot#iefix) format("embedded-opentype"),url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2"),url(../../../static/web/fonts/iconfont.34ea3475.34ea3475.woff) format("woff"),url(../../../static/web/fonts/iconfont.4d5a9051.4d5a9051.ttf) format("truetype"),url(../../../static/web/img/iconfont.f0e930ef.f0e930ef.svg#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-clear:before{content:"\E6D1"}.icon-weibiaoti46:before{content:"\E63C"}.icon-delete:before{content:"\E616"}.icon-fabu:before{content:"\E630"}.icon-qingkonghuishouzhan:before{content:"\E642"}.icon-code:before{content:"\E65B"}.icon-table:before{content:"\E713"}.icon-diy-com-textarea:before{content:"\E91F"}.icon-zidingyishuju:before{content:"\E634"}.icon-json:before{content:"\E7BD"}.icon-jilianxuanze:before{content:"\E695"}.icon-icon_clone:before{content:"\E606"}.icon-wenjianshangchuan:before{content:"\E617"}.icon-fengexian:before{content:"\E66E"}.icon-tupianyulan:before{content:"\E67D"}.icon-time:before{content:"\E600"}.icon-icon-test:before{content:"\E605"}.icon-tupian:before{content:"\E65E"}.icon-ad-icon-tooltip:before{content:"\E63E"}.icon-check-box:before{content:"\E60E"}.icon-switch:before{content:"\E660"}.icon-pingfen:before{content:"\E640"}.icon-input:before{content:"\E6B2"}.icon-radio-active:before{content:"\E615"}.icon-color:before{content:"\E62F"}.icon-slider:before{content:"\E60D"}.icon-icon_bars:before{content:"\E7C4"}.icon-fuwenbenkuang:before{content:"\E682"}.icon-date:before{content:"\E69F"}.icon-ic:before{content:"\E621"}.icon-trash:before{content:"\E60F"}.icon-grid-:before{content:"\E6AD"}.icon-drag:before{content:"\E842"}.icon-shangchuan:before{content:"\E645"}.icon-zhage:before{content:"\E63F"}.icon-number:before{content:"\E76B"}.icon-yulan:before{content:"\E668"}.icon-select:before{content:"\E920"}.icon-wenzishezhi-:before{content:"\E67C"}.icon-pingfen1:before{content:"\E661"}.icon-RectangleCopy:before{content:"\E620"}.icon-sync1:before{content:"\E631"}.icon-tabs:before{content:"\E65F"}.el-radio+.el-radio{margin-left:0!important}.el-radio{margin-right:30px}.el-checkbox+.el-checkbox{margin-left:0!important}.el-checkbox{margin-right:30px}.el-form-item--small .el-radio{line-height:32px!important}.el-form-item--small .el-rate{margin-top:6px}.el-form-item--mini .el-radio{line-height:28px!important}.el-form-item--mini .el-rate{margin-top:4px}.el-form-item--medium .el-radio{line-height:36px!important}.el-form-item--medium .el-rate{margin-top:8px}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}.fa-icon{width:auto;height:1em;max-width:100%;max-height:100%;vertical-align:middle}.fm2-container{background:#fff;height:100%;border:1px solid #e0e0e0}.fm2-container .el-container{height:100%!important}.fm2-container>.el-container{background:#fff}.fm2-container .fm2-main{position:relative}.fm2-container .fm2-main>.el-container{position:absolute;top:0;bottom:0;left:0;right:0}.fm2-container main{padding:0}.fm2-container footer{height:30px;line-height:30px;border-top:1px solid #e0e0e0;font-size:12px;text-align:right;color:#409eff;background:#fafafa}.fm2-container footer a{color:#409eff}.center-container{border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0}.center-container .btn-bar{height:45px;line-height:45px;font-size:18px;border-bottom:2px solid #e4e7ed;text-align:right}.center-container .el-main{padding:0;position:relative;background:#fafafa}.components-list{padding:8px 0;width:100%;height:100%}.components-list .widget-cate{padding:8px 12px;font-size:13px}.components-list ul{position:relative;overflow:hidden;padding:0 10px 10px;margin:0}.components-list .form-edit-widget-label{font-size:12px;display:block;width:48%;line-height:26px;position:relative;float:left;left:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:1%;color:#333;border:1px solid #f4f6fc}.components-list .form-edit-widget-label:hover{color:#409eff;border:1px dashed #409eff}.components-list .form-edit-widget-label>a{display:block;cursor:move;background:#f4f6fc;border:1px solid #f4f6fc}.components-list .form-edit-widget-label>a .icon{margin-right:6px;margin-left:8px;font-size:14px;display:inline-block;vertical-align:middle}.components-list .form-edit-widget-label>a span{display:inline-block;vertical-align:middle}.widget-form-container{position:absolute;top:0;left:0;right:0;bottom:0}.widget-form-container .widget-form-list{background:#fff;border:1px dashed #999;min-height:600px;margin:10px}.widget-form-container .widget-form-list .widget-col-list{min-height:50px;border:1px dashed #ccc;background:#fff}.widget-form-container .widget-form-list .widget-view{padding-bottom:18px;position:relative;border:1px dashed hsla(0,0%,66.7%,.7);background-color:rgba(236,245,255,.3);margin:2px}.widget-form-container .widget-form-list .widget-view .el-form-item__content{position:unset}.widget-form-container .widget-form-list .widget-view.is_req .el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.widget-form-container .widget-form-list .widget-view .widget-view-description{height:15px;line-height:15px;font-size:13px;margin-top:6px;color:#909399}.widget-form-container .widget-form-list .widget-view .widget-view-action{position:absolute;right:0;bottom:0;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-view .widget-view-action i{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.widget-form-container .widget-form-list .widget-view .widget-view-drag{position:absolute;left:-2px;top:-2px;bottom:-18px;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-view .widget-view-drag i{font-size:14px;color:#fff;margin:0 5px;cursor:move}.widget-form-container .widget-form-list .widget-view:after{position:absolute;left:0;right:0;top:0;bottom:0;display:block}.widget-form-container .widget-form-list .widget-view:hover{background:#ecf5ff;outline:1px solid #409eff;outline-offset:0}.widget-form-container .widget-form-list .widget-view:hover.active{outline:2px solid #409eff;border:1px solid #409eff;outline-offset:0}.widget-form-container .widget-form-list .widget-view:hover .widget-view-drag{display:block}.widget-form-container .widget-form-list .widget-view.active{outline:2px solid #409eff;border:1px solid #409eff}.widget-form-container .widget-form-list .widget-view.ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .widget-form-list .widget-table{padding-bottom:0;padding:5px;background-color:rgba(253,246,236,.3)}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper{min-height:50px;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-row td{border-bottom:0}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-left{width:51px;border-left:1px solid #ebeef5;border-right:1px solid #ebeef5;border-top:1px solid #ebeef5;-webkit-box-flex:0;-ms-flex:none;flex:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view{border:1px solid #ebeef5;width:200px;float:left;height:100%;position:relative;display:block}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .el-table{height:100%}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.is_req .el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-description{height:15px;line-height:15px;font-size:13px;margin-top:6px;color:#909399}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-action{position:absolute;right:0;bottom:0;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-action i{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-drag{position:absolute;left:-2px;top:-2px;bottom:-18px;height:28px;line-height:28px;background:#409eff;z-index:9}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view .widget-view-drag i{font-size:14px;color:#fff;margin:0 5px;cursor:move}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:after{position:absolute;left:0;right:0;top:0;bottom:0;display:block;content:""}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:before{display:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:hover{background:#ecf5ff;outline:1px solid #409eff;outline-offset:-1px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:hover.active{border:1px solid #409eff;outline:1px solid #409eff;outline-offset:-1px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view:hover .widget-view-drag{display:block}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.active{outline:1px solid #409eff;border:1px solid #409eff;outline-offset:-1px}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.ghost{background:#f56c6c;outline-width:0;width:5px!important;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0;position:relative;outline:none!important;border:0!important}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-view.ghost:after{background:#f56c6c;position:absolute;top:0;left:0;bottom:0;right:0;z-index:9999;content:"";outline:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content{width:100%;outline:1px dashed #ccc;background:#fff;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 1px;overflow:auto}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content .widget-table-col,.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content>div{height:100%}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content .widget-table-col .ghost{background:#f56c6c;position:relative;content:"";float:left;height:100%;width:5px!important;list-style:none;font-size:0;overflow:hidden;outline:none}.widget-form-container .widget-form-list .widget-table .widget-table-wrapper .widget-table-content .widget-table-col .ghost:after{background:#f56c6c;position:absolute;top:0;left:0;bottom:0;right:0;z-index:9999;content:"";outline:none}.widget-form-container .widget-form-list .widget-table.active{outline:2px solid #e6a23c;border:1px solid #e6a23c}.widget-form-container .widget-form-list .widget-table:hover{background:#fdf6ec;outline:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-table:hover.active{outline:2px solid #e6a23c;border:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-table .widget-view-action.widget-col-action,.widget-form-container .widget-form-list .widget-table .widget-view-drag.widget-col-drag{background:#e6a23c}.widget-form-container .widget-form-list .widget-table:after{display:none}.widget-form-container .widget-form-list .widget-table.ghost{background:#f56c6c;outline-width:0;height:5px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0;position:relative;outline:none;border:0}.widget-form-container .widget-form-list .widget-table.ghost:after{background:#f56c6c;position:absolute;top:0;left:0;right:0;bottom:0;content:"";display:block;z-index:999}.widget-form-container .widget-form-list .widget-col{padding-bottom:0;padding:5px;background-color:rgba(253,246,236,.3)}.widget-form-container .widget-form-list .widget-col.active{outline:2px solid #e6a23c;border:1px solid #e6a23c}.widget-form-container .widget-form-list .widget-col:hover{background:#fdf6ec;outline:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-col:hover.active{outline:2px solid #e6a23c;border:1px solid #e6a23c;outline-offset:0}.widget-form-container .widget-form-list .widget-col .el-col{min-height:50px}.widget-form-container .widget-form-list .widget-col.ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .widget-form-list .widget-col .widget-view-action.widget-col-action,.widget-form-container .widget-form-list .widget-col .widget-view-drag.widget-col-drag{background:#e6a23c}.widget-form-container .widget-form-list .widget-col:after{display:none}.widget-form-container .widget-form-list .ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .widget-grid{background:#f4f6fc;position:relative;border-left:5px solid transparent;padding:5px;margin:0!important}.widget-form-container .widget-grid.active{border-left:5px solid #409eff;background:#b3d8ff}.widget-form-container .widget-grid-container.ghost{background:#f56c6c;border:2px solid #f56c6c;outline-width:0;height:3px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;content:"";overflow:hidden;padding:0}.widget-form-container .ghost{background:#f56c6c;border:2px solid #f56c6c;position:relative}.widget-form-container .ghost:after{background:#f56c6c}.widget-form-container li.ghost{height:5px;list-style:none;font-size:0;overflow:hidden}.widget-config-container{position:relative}.widget-config-container .el-header{border-bottom:2px solid #e4e7ed;padding:0 5px}.widget-config-container .config-tab{height:45px;line-height:45px;display:inline-block;width:145px;text-align:center;font-size:14px;font-weight:500;position:relative;cursor:pointer}.widget-config-container .config-tab.active{border-bottom:2px solid #409eff}.widget-config-container .config-content{padding:10px}.widget-config-container .config-content .el-form-item__label{padding:0;font-weight:500}.widget-config-container .config-content .el-form-item{border-bottom:1px solid #e1e1e1;padding-bottom:10px}.widget-config-container .ghost{background:#fff;border:1px dashed #409eff}.widget-config-container .ghost:after{background:#fff;display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0}.widget-config-container ul{margin:0;padding:0}.widget-config-container li.ghost{list-style:none;font-size:0;display:block;position:relative}.viewer-container{z-index:99999!important}.form-empty{position:absolute;text-align:center;width:300px;font-size:20px;top:200px;left:50%;margin-left:-150px;color:#ccc}.workflow-classify-title[data-v-f0f2acce]{border-left:3px solid #409eff;padding-left:5px}.workflow-classify-button[data-v-f0f2acce]{margin-left:0;margin-right:12px;margin-top:12px}.el-card__body[data-v-f0f2acce]{padding-bottom:0}.process-button-div[data-v-f0f2acce]{width:180px;height:50px}.process-div-icon[data-v-f0f2acce]{float:left;width:50px;height:100%;margin-right:10px}.process-div-el-icon[data-v-f0f2acce]{font-size:32px;line-height:50px;color:#606266}.process-div-body[data-v-f0f2acce]{float:left;width:120px;height:100%;text-align:left}.process-div-title[data-v-f0f2acce]{font-size:15px;margin-top:10px;color:#606266}.process-div-remarks[data-v-f0f2acce]{color:#999;margin-top:6px;font-size:12px}.ellipsis[data-v-f0f2acce]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-activity .user-block .description[data-v-1066d76c],.user-activity .user-block .username[data-v-1066d76c]{display:block;margin-left:50px;padding:2px 0}.user-activity .user-block .username[data-v-1066d76c]{font-size:16px;color:#000}.user-activity .user-block[data-v-1066d76c] :after{clear:both}.user-activity .user-block .img-circle[data-v-1066d76c]{border-radius:50%;width:40px;height:40px;float:left}.user-activity .user-block span[data-v-1066d76c]{font-weight:500;font-size:12px}.user-activity .post[data-v-1066d76c]{font-size:14px;border-bottom:1px solid #d2d6de;margin-bottom:15px;padding-bottom:15px;color:#666}.user-activity .post .image[data-v-1066d76c]{width:100%;height:100%}.user-activity .post .user-images[data-v-1066d76c]{padding-top:20px}.user-activity .list-inline[data-v-1066d76c]{padding-left:0;margin-left:-5px;list-style:none}.user-activity .list-inline li[data-v-1066d76c]{display:inline-block;padding-right:5px;padding-left:5px;font-size:13px}.user-activity .list-inline .link-black[data-v-1066d76c]:focus,.user-activity .list-inline .link-black[data-v-1066d76c]:hover{color:#999}.box-center[data-v-1066d76c]{margin:0 auto;display:table}.text-muted[data-v-1066d76c]{color:#777}.pan-item[data-v-799537af]{width:200px;height:200px;border-radius:50%;display:inline-block;position:relative;cursor:default;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.pan-info-roles-container[data-v-799537af]{padding:20px;text-align:center}.pan-thumb[data-v-799537af]{width:100%;height:100%;background-position:50%;background-size:cover;border-radius:50%;overflow:hidden;position:absolute;-webkit-transform-origin:95% 40%;transform-origin:95% 40%;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.pan-info[data-v-799537af]{position:absolute;width:inherit;height:inherit;border-radius:50%;overflow:hidden;-webkit-box-shadow:inset 0 0 0 5px rgba(0,0,0,.05);box-shadow:inset 0 0 0 5px rgba(0,0,0,.05)}.pan-info h3[data-v-799537af]{color:#fff;text-transform:uppercase;position:relative;letter-spacing:2px;font-size:18px;margin:0 60px;padding:22px 0 0 0;height:85px;font-family:Open Sans,Arial,sans-serif;text-shadow:0 0 1px #fff,0 1px 2px rgba(0,0,0,.3)}.pan-info p[data-v-799537af]{color:#fff;padding:10px 5px;font-style:italic;margin:0 30px;font-size:12px;border-top:1px solid hsla(0,0%,100%,.5)}.pan-info p a[data-v-799537af]{display:block;color:#333;width:80px;height:80px;background:hsla(0,0%,100%,.3);border-radius:50%;color:#fff;font-style:normal;font-weight:700;text-transform:uppercase;font-size:9px;letter-spacing:1px;padding-top:24px;margin:7px auto 0;font-family:Open Sans,Arial,sans-serif;opacity:0;-webkit-transition:opacity .3s ease-in-out .2s,background .2s linear 0s,-webkit-transform .3s ease-in-out .2s;transition:opacity .3s ease-in-out .2s,background .2s linear 0s,-webkit-transform .3s ease-in-out .2s;transition:transform .3s ease-in-out .2s,opacity .3s ease-in-out .2s,background .2s linear 0s;transition:transform .3s ease-in-out .2s,opacity .3s ease-in-out .2s,background .2s linear 0s,-webkit-transform .3s ease-in-out .2s;-webkit-transform:translateX(60px) rotate(90deg);transform:translateX(60px) rotate(90deg)}.pan-info p a[data-v-799537af]:hover{background:hsla(0,0%,100%,.5)}.pan-item:hover .pan-thumb[data-v-799537af]{-webkit-transform:rotate(-110deg);transform:rotate(-110deg)}.pan-item:hover .pan-info p a[data-v-799537af]{opacity:1;-webkit-transform:translateX(0) rotate(0deg);transform:translateX(0) rotate(0deg)}.box-center[data-v-0b95296e]{margin:0 auto;display:table}.text-muted[data-v-0b95296e]{color:#777}.user-profile .user-name[data-v-0b95296e]{font-weight:700}.user-profile .box-center[data-v-0b95296e]{padding-top:10px}.user-profile .user-role[data-v-0b95296e]{padding-top:10px;font-weight:400;font-size:14px}.user-profile .box-social[data-v-0b95296e]{padding-top:30px}.user-profile .box-social .el-table[data-v-0b95296e]{border-top:1px solid #dfe6ec}.user-profile .user-follow[data-v-0b95296e]{padding-top:20px}.user-bio[data-v-0b95296e]{margin-top:20px;color:#606266}.user-bio span[data-v-0b95296e]{padding-left:4px}.user-bio .user-bio-section[data-v-0b95296e]{font-size:14px;padding:15px 0}.user-bio .user-bio-section .user-bio-section-header[data-v-0b95296e]{border-bottom:1px solid #dfe6ec;padding-bottom:10px;margin-bottom:10px;font-weight:700}.icon-body[data-v-29eae0d6]{width:100%;padding:10px}.icon-body .icon-list[data-v-29eae0d6]{height:200px;overflow-y:scroll}.icon-body .icon-list div[data-v-29eae0d6]{height:30px;line-height:30px;margin-bottom:-5px;cursor:pointer;width:33%;float:left}.icon-body .icon-list span[data-v-29eae0d6]{display:inline-block;vertical-align:-.15em;fill:currentColor;overflow:hidden}.avatar-uploader .el-upload{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer;position:relative;overflow:hidden}.avatar-uploader .el-upload:hover{border-color:#409eff}.avatar-uploader-icon{font-size:28px;color:#8c939d;width:178px;height:178px;line-height:178px;text-align:center}.avatar{width:178px;height:178px;display:block} \ No newline at end of file diff --git a/static/web/css/chunk-libs.70d0db3f.css b/static/web/css/chunk-libs.70d0db3f.css new file mode 100644 index 0000000..a29bcfe --- /dev/null +++ b/static/web/css/chunk-libs.70d0db3f.css @@ -0,0 +1 @@ +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}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{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;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 #29d,0 0 5px #29d;box-shadow:0 0 10px #29d,0 0 5px #29d;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:#29d;border-left-color:#29d;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)}}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5)}.cm-animate-fat-cursor,.cm-fat-cursor-mark{-webkit-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;background-color:#7e7}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-webkit-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.icon[data-v-1e4dd17a]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.fas-icon-list[data-v-953e221e]{list-style-type:none;margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.ui-fas .el-input__inner[data-v-953e221e]{cursor:pointer}.fas-icon-list li[data-v-953e221e]{width:30px;height:30px;margin:5px}.fas-icon-list li i[data-v-953e221e],.fas-icon-list li svg[data-v-953e221e]{font-size:20px;cursor:pointer}.el-icon-popper[data-v-953e221e]{max-height:400px;overflow:auto;overflow-x:hidden;overflow-y:hidden}.el-icon-popper[x-placement^=bottom][data-v-953e221e]{margin-top:5px}.fas-no-data[data-v-953e221e]{display:block}.e-icon[data-v-953e221e]{font-size:16px}[class^=fa]{vertical-align:middle;text-align:center}.el-submenu [class^=fa]{margin-right:5px;width:24px}.iconfont{font-family:iconfont!important}@font-face{font-family:eiconfont;src:url(../../../static/web/fonts/eiconfont.ae6bc167.eot);src:url(../../../static/web/fonts/eiconfont.ae6bc167.eot#iefix) format("embedded-opentype"),url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2"),url(../../../static/web/fonts/eiconfont.016bbe3f.woff) format("woff"),url(../../../static/web/fonts/eiconfont.0ff67604.ttf) format("truetype"),url(../../../static/web/img/eiconfont.30cb46e7.svg#eiconfont) format("svg")}.eiconfont,.iconfont{font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.eiconfont{font-family:eiconfont!important}.e-icon-xianxingbenzitubiao1:before{content:"\E6FF"}.e-icon-xianxinganquansuotubiao:before{content:"\E700"}.e-icon-xianxingbenzitubiao2:before{content:"\E701"}.e-icon-xianxingdianzantubiao:before{content:"\E702"}.e-icon-xianxingdiannaotubiao:before{content:"\E703"}.e-icon-xianxingjishibentubiao:before{content:"\E704"}.e-icon-xianxingdianhuatubiao:before{content:"\E705"}.e-icon-xianxinghuishouzhantubiao:before{content:"\E706"}.e-icon-xianxingWIFItubiao:before{content:"\E707"}.e-icon-xianxingduihuakuangtubiao:before{content:"\E708"}.e-icon-xianxinglajitongtubiao:before{content:"\E709"}.e-icon-xianxingjiangpaitubiao2:before{content:"\E70A"}.e-icon-xianxingjiaoyoutubiao:before{content:"\E70B"}.e-icon-xianxingquerentubiao:before{content:"\E70C"}.e-icon-xianxingrenwutubiao:before{content:"\E70D"}.e-icon-xianxingjiangpaitubiao1:before{content:"\E70E"}.e-icon-xianxingshoujitubiao:before{content:"\E70F"}.e-icon-xianxinglianxirentubiao:before{content:"\E710"}.e-icon-xianxingrenyuantubiao:before{content:"\E711"}.e-icon-xianxinggongjutubiao:before{content:"\E712"}.e-icon-xianxingshenfentubiao:before{content:"\E713"}.e-icon-xianxingxiangjitubiao:before{content:"\E714"}.e-icon-xianxingwendatubiao:before{content:"\E715"}.e-icon-xianxingyanjingtubiao:before{content:"\E716"}.e-icon-xianxingxinxitubiao:before{content:"\E717"}.e-icon-xianxingxinjiantubiao:before{content:"\E718"}.e-icon-xianxingtudingtubiao:before{content:"\E719"}.e-icon-xianxingshijiantubiao:before{content:"\E71A"}.e-icon-xianxingqianbaotubiao:before{content:"\E71B"}.e-icon-xianxingtupiantubiao:before{content:"\E71C"}.e-icon-xianxingzhifubaotubiao:before{content:"\E71D"}.e-icon-xianxingyoujiantubiao:before{content:"\E71E"}.e-icon-xianxingzhifeijitubiao:before{content:"\E71F"}.e-icon-xianxingyuantubiao:before{content:"\E720"}.e-icon-xianxingxiangfatubiao:before{content:"\E721"}.e-icon-diannao-01:before{content:"\E601"}.e-icon-jiaojuan-01:before{content:"\E602"}.e-icon-shuji-01:before{content:"\E603"}.e-icon-gujianzhu-01:before{content:"\E604"}.e-icon-simiao-01:before{content:"\E605"}.e-icon-yundong-yumaoqiu:before{content:"\E606"}.e-icon-sanjiaojia-01:before{content:"\E607"}.e-icon-zhaoxiangji-01:before{content:"\E608"}.e-icon-shuihu-01:before{content:"\E609"}.e-icon-yumaopai-01:before{content:"\E60A"}.e-icon-yanjing-01:before{content:"\E60B"}.e-icon-chalaoban-01:before{content:"\E60C"}.e-icon-shouji-01:before{content:"\E60D"}.e-icon-yinzhang-01:before{content:"\E60E"}.e-icon-xiangyan-01:before{content:"\E60F"}.e-icon-guangpan-01:before{content:"\E610"}.e-icon-kafei-01:before{content:"\E611"}.e-icon-erji-01:before{content:"\E612"}.e-icon-foling-01:before{content:"\E613"}.e-icon-xiong-01:before{content:"\E614"}.e-icon-bingxiang:before{content:"\E616"}.e-icon-diannao:before{content:"\E617"}.e-icon-chufangcheng:before{content:"\E618"}.e-icon-biludianshi:before{content:"\E619"}.e-icon-dayinji:before{content:"\E61A"}.e-icon-guangpan:before{content:"\E61B"}.e-icon-jiashiqi:before{content:"\E61C"}.e-icon-fengshan:before{content:"\E61D"}.e-icon-kongtiao:before{content:"\E61E"}.e-icon-dianfanbao:before{content:"\E61F"}.e-icon-fengrenji:before{content:"\E620"}.e-icon-dianzicheng:before{content:"\E621"}.e-icon-mensuo:before{content:"\E622"}.e-icon-shexiangji:before{content:"\E623"}.e-icon-saodijiqiren:before{content:"\E624"}.e-icon-lvshuiji:before{content:"\E625"}.e-icon-shuzhuodeng:before{content:"\E626"}.e-icon-kafeiji:before{content:"\E627"}.e-icon-jisuanqi:before{content:"\E628"}.e-icon-xiyiji:before{content:"\E629"}.e-icon-shexiangtou:before{content:"\E62A"}@font-face{font-family:FontAwesome;src:url(../../../static/web/fonts/fontawesome-webfont.674f50d2.eot);src:url(../../../static/web/fonts/fontawesome-webfont.674f50d2.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(../../../static/web/fonts/fontawesome-webfont.af7ae505.woff2) format("woff2"),url(../../../static/web/fonts/fontawesome-webfont.fee66e71.woff) format("woff"),url(../../../static/web/fonts/fontawesome-webfont.b06871f2.ttf) format("truetype"),url(../../../static/web/img/fontawesome-webfont.912ec66d.svg#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\F000"}.fa-music:before{content:"\F001"}.fa-search:before{content:"\F002"}.fa-envelope-o:before{content:"\F003"}.fa-heart:before{content:"\F004"}.fa-star:before{content:"\F005"}.fa-star-o:before{content:"\F006"}.fa-user:before{content:"\F007"}.fa-film:before{content:"\F008"}.fa-th-large:before{content:"\F009"}.fa-th:before{content:"\F00A"}.fa-th-list:before{content:"\F00B"}.fa-check:before{content:"\F00C"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\F00D"}.fa-search-plus:before{content:"\F00E"}.fa-search-minus:before{content:"\F010"}.fa-power-off:before{content:"\F011"}.fa-signal:before{content:"\F012"}.fa-cog:before,.fa-gear:before{content:"\F013"}.fa-trash-o:before{content:"\F014"}.fa-home:before{content:"\F015"}.fa-file-o:before{content:"\F016"}.fa-clock-o:before{content:"\F017"}.fa-road:before{content:"\F018"}.fa-download:before{content:"\F019"}.fa-arrow-circle-o-down:before{content:"\F01A"}.fa-arrow-circle-o-up:before{content:"\F01B"}.fa-inbox:before{content:"\F01C"}.fa-play-circle-o:before{content:"\F01D"}.fa-repeat:before,.fa-rotate-right:before{content:"\F01E"}.fa-refresh:before{content:"\F021"}.fa-list-alt:before{content:"\F022"}.fa-lock:before{content:"\F023"}.fa-flag:before{content:"\F024"}.fa-headphones:before{content:"\F025"}.fa-volume-off:before{content:"\F026"}.fa-volume-down:before{content:"\F027"}.fa-volume-up:before{content:"\F028"}.fa-qrcode:before{content:"\F029"}.fa-barcode:before{content:"\F02A"}.fa-tag:before{content:"\F02B"}.fa-tags:before{content:"\F02C"}.fa-book:before{content:"\F02D"}.fa-bookmark:before{content:"\F02E"}.fa-print:before{content:"\F02F"}.fa-camera:before{content:"\F030"}.fa-font:before{content:"\F031"}.fa-bold:before{content:"\F032"}.fa-italic:before{content:"\F033"}.fa-text-height:before{content:"\F034"}.fa-text-width:before{content:"\F035"}.fa-align-left:before{content:"\F036"}.fa-align-center:before{content:"\F037"}.fa-align-right:before{content:"\F038"}.fa-align-justify:before{content:"\F039"}.fa-list:before{content:"\F03A"}.fa-dedent:before,.fa-outdent:before{content:"\F03B"}.fa-indent:before{content:"\F03C"}.fa-video-camera:before{content:"\F03D"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\F03E"}.fa-pencil:before{content:"\F040"}.fa-map-marker:before{content:"\F041"}.fa-adjust:before{content:"\F042"}.fa-tint:before{content:"\F043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\F044"}.fa-share-square-o:before{content:"\F045"}.fa-check-square-o:before{content:"\F046"}.fa-arrows:before{content:"\F047"}.fa-step-backward:before{content:"\F048"}.fa-fast-backward:before{content:"\F049"}.fa-backward:before{content:"\F04A"}.fa-play:before{content:"\F04B"}.fa-pause:before{content:"\F04C"}.fa-stop:before{content:"\F04D"}.fa-forward:before{content:"\F04E"}.fa-fast-forward:before{content:"\F050"}.fa-step-forward:before{content:"\F051"}.fa-eject:before{content:"\F052"}.fa-chevron-left:before{content:"\F053"}.fa-chevron-right:before{content:"\F054"}.fa-plus-circle:before{content:"\F055"}.fa-minus-circle:before{content:"\F056"}.fa-times-circle:before{content:"\F057"}.fa-check-circle:before{content:"\F058"}.fa-question-circle:before{content:"\F059"}.fa-info-circle:before{content:"\F05A"}.fa-crosshairs:before{content:"\F05B"}.fa-times-circle-o:before{content:"\F05C"}.fa-check-circle-o:before{content:"\F05D"}.fa-ban:before{content:"\F05E"}.fa-arrow-left:before{content:"\F060"}.fa-arrow-right:before{content:"\F061"}.fa-arrow-up:before{content:"\F062"}.fa-arrow-down:before{content:"\F063"}.fa-mail-forward:before,.fa-share:before{content:"\F064"}.fa-expand:before{content:"\F065"}.fa-compress:before{content:"\F066"}.fa-plus:before{content:"\F067"}.fa-minus:before{content:"\F068"}.fa-asterisk:before{content:"\F069"}.fa-exclamation-circle:before{content:"\F06A"}.fa-gift:before{content:"\F06B"}.fa-leaf:before{content:"\F06C"}.fa-fire:before{content:"\F06D"}.fa-eye:before{content:"\F06E"}.fa-eye-slash:before{content:"\F070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\F071"}.fa-plane:before{content:"\F072"}.fa-calendar:before{content:"\F073"}.fa-random:before{content:"\F074"}.fa-comment:before{content:"\F075"}.fa-magnet:before{content:"\F076"}.fa-chevron-up:before{content:"\F077"}.fa-chevron-down:before{content:"\F078"}.fa-retweet:before{content:"\F079"}.fa-shopping-cart:before{content:"\F07A"}.fa-folder:before{content:"\F07B"}.fa-folder-open:before{content:"\F07C"}.fa-arrows-v:before{content:"\F07D"}.fa-arrows-h:before{content:"\F07E"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\F080"}.fa-twitter-square:before{content:"\F081"}.fa-facebook-square:before{content:"\F082"}.fa-camera-retro:before{content:"\F083"}.fa-key:before{content:"\F084"}.fa-cogs:before,.fa-gears:before{content:"\F085"}.fa-comments:before{content:"\F086"}.fa-thumbs-o-up:before{content:"\F087"}.fa-thumbs-o-down:before{content:"\F088"}.fa-star-half:before{content:"\F089"}.fa-heart-o:before{content:"\F08A"}.fa-sign-out:before{content:"\F08B"}.fa-linkedin-square:before{content:"\F08C"}.fa-thumb-tack:before{content:"\F08D"}.fa-external-link:before{content:"\F08E"}.fa-sign-in:before{content:"\F090"}.fa-trophy:before{content:"\F091"}.fa-github-square:before{content:"\F092"}.fa-upload:before{content:"\F093"}.fa-lemon-o:before{content:"\F094"}.fa-phone:before{content:"\F095"}.fa-square-o:before{content:"\F096"}.fa-bookmark-o:before{content:"\F097"}.fa-phone-square:before{content:"\F098"}.fa-twitter:before{content:"\F099"}.fa-facebook-f:before,.fa-facebook:before{content:"\F09A"}.fa-github:before{content:"\F09B"}.fa-unlock:before{content:"\F09C"}.fa-credit-card:before{content:"\F09D"}.fa-feed:before,.fa-rss:before{content:"\F09E"}.fa-hdd-o:before{content:"\F0A0"}.fa-bullhorn:before{content:"\F0A1"}.fa-bell:before{content:"\F0F3"}.fa-certificate:before{content:"\F0A3"}.fa-hand-o-right:before{content:"\F0A4"}.fa-hand-o-left:before{content:"\F0A5"}.fa-hand-o-up:before{content:"\F0A6"}.fa-hand-o-down:before{content:"\F0A7"}.fa-arrow-circle-left:before{content:"\F0A8"}.fa-arrow-circle-right:before{content:"\F0A9"}.fa-arrow-circle-up:before{content:"\F0AA"}.fa-arrow-circle-down:before{content:"\F0AB"}.fa-globe:before{content:"\F0AC"}.fa-wrench:before{content:"\F0AD"}.fa-tasks:before{content:"\F0AE"}.fa-filter:before{content:"\F0B0"}.fa-briefcase:before{content:"\F0B1"}.fa-arrows-alt:before{content:"\F0B2"}.fa-group:before,.fa-users:before{content:"\F0C0"}.fa-chain:before,.fa-link:before{content:"\F0C1"}.fa-cloud:before{content:"\F0C2"}.fa-flask:before{content:"\F0C3"}.fa-cut:before,.fa-scissors:before{content:"\F0C4"}.fa-copy:before,.fa-files-o:before{content:"\F0C5"}.fa-paperclip:before{content:"\F0C6"}.fa-floppy-o:before,.fa-save:before{content:"\F0C7"}.fa-square:before{content:"\F0C8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\F0C9"}.fa-list-ul:before{content:"\F0CA"}.fa-list-ol:before{content:"\F0CB"}.fa-strikethrough:before{content:"\F0CC"}.fa-underline:before{content:"\F0CD"}.fa-table:before{content:"\F0CE"}.fa-magic:before{content:"\F0D0"}.fa-truck:before{content:"\F0D1"}.fa-pinterest:before{content:"\F0D2"}.fa-pinterest-square:before{content:"\F0D3"}.fa-google-plus-square:before{content:"\F0D4"}.fa-google-plus:before{content:"\F0D5"}.fa-money:before{content:"\F0D6"}.fa-caret-down:before{content:"\F0D7"}.fa-caret-up:before{content:"\F0D8"}.fa-caret-left:before{content:"\F0D9"}.fa-caret-right:before{content:"\F0DA"}.fa-columns:before{content:"\F0DB"}.fa-sort:before,.fa-unsorted:before{content:"\F0DC"}.fa-sort-desc:before,.fa-sort-down:before{content:"\F0DD"}.fa-sort-asc:before,.fa-sort-up:before{content:"\F0DE"}.fa-envelope:before{content:"\F0E0"}.fa-linkedin:before{content:"\F0E1"}.fa-rotate-left:before,.fa-undo:before{content:"\F0E2"}.fa-gavel:before,.fa-legal:before{content:"\F0E3"}.fa-dashboard:before,.fa-tachometer:before{content:"\F0E4"}.fa-comment-o:before{content:"\F0E5"}.fa-comments-o:before{content:"\F0E6"}.fa-bolt:before,.fa-flash:before{content:"\F0E7"}.fa-sitemap:before{content:"\F0E8"}.fa-umbrella:before{content:"\F0E9"}.fa-clipboard:before,.fa-paste:before{content:"\F0EA"}.fa-lightbulb-o:before{content:"\F0EB"}.fa-exchange:before{content:"\F0EC"}.fa-cloud-download:before{content:"\F0ED"}.fa-cloud-upload:before{content:"\F0EE"}.fa-user-md:before{content:"\F0F0"}.fa-stethoscope:before{content:"\F0F1"}.fa-suitcase:before{content:"\F0F2"}.fa-bell-o:before{content:"\F0A2"}.fa-coffee:before{content:"\F0F4"}.fa-cutlery:before{content:"\F0F5"}.fa-file-text-o:before{content:"\F0F6"}.fa-building-o:before{content:"\F0F7"}.fa-hospital-o:before{content:"\F0F8"}.fa-ambulance:before{content:"\F0F9"}.fa-medkit:before{content:"\F0FA"}.fa-fighter-jet:before{content:"\F0FB"}.fa-beer:before{content:"\F0FC"}.fa-h-square:before{content:"\F0FD"}.fa-plus-square:before{content:"\F0FE"}.fa-angle-double-left:before{content:"\F100"}.fa-angle-double-right:before{content:"\F101"}.fa-angle-double-up:before{content:"\F102"}.fa-angle-double-down:before{content:"\F103"}.fa-angle-left:before{content:"\F104"}.fa-angle-right:before{content:"\F105"}.fa-angle-up:before{content:"\F106"}.fa-angle-down:before{content:"\F107"}.fa-desktop:before{content:"\F108"}.fa-laptop:before{content:"\F109"}.fa-tablet:before{content:"\F10A"}.fa-mobile-phone:before,.fa-mobile:before{content:"\F10B"}.fa-circle-o:before{content:"\F10C"}.fa-quote-left:before{content:"\F10D"}.fa-quote-right:before{content:"\F10E"}.fa-spinner:before{content:"\F110"}.fa-circle:before{content:"\F111"}.fa-mail-reply:before,.fa-reply:before{content:"\F112"}.fa-github-alt:before{content:"\F113"}.fa-folder-o:before{content:"\F114"}.fa-folder-open-o:before{content:"\F115"}.fa-smile-o:before{content:"\F118"}.fa-frown-o:before{content:"\F119"}.fa-meh-o:before{content:"\F11A"}.fa-gamepad:before{content:"\F11B"}.fa-keyboard-o:before{content:"\F11C"}.fa-flag-o:before{content:"\F11D"}.fa-flag-checkered:before{content:"\F11E"}.fa-terminal:before{content:"\F120"}.fa-code:before{content:"\F121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\F122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\F123"}.fa-location-arrow:before{content:"\F124"}.fa-crop:before{content:"\F125"}.fa-code-fork:before{content:"\F126"}.fa-chain-broken:before,.fa-unlink:before{content:"\F127"}.fa-question:before{content:"\F128"}.fa-info:before{content:"\F129"}.fa-exclamation:before{content:"\F12A"}.fa-superscript:before{content:"\F12B"}.fa-subscript:before{content:"\F12C"}.fa-eraser:before{content:"\F12D"}.fa-puzzle-piece:before{content:"\F12E"}.fa-microphone:before{content:"\F130"}.fa-microphone-slash:before{content:"\F131"}.fa-shield:before{content:"\F132"}.fa-calendar-o:before{content:"\F133"}.fa-fire-extinguisher:before{content:"\F134"}.fa-rocket:before{content:"\F135"}.fa-maxcdn:before{content:"\F136"}.fa-chevron-circle-left:before{content:"\F137"}.fa-chevron-circle-right:before{content:"\F138"}.fa-chevron-circle-up:before{content:"\F139"}.fa-chevron-circle-down:before{content:"\F13A"}.fa-html5:before{content:"\F13B"}.fa-css3:before{content:"\F13C"}.fa-anchor:before{content:"\F13D"}.fa-unlock-alt:before{content:"\F13E"}.fa-bullseye:before{content:"\F140"}.fa-ellipsis-h:before{content:"\F141"}.fa-ellipsis-v:before{content:"\F142"}.fa-rss-square:before{content:"\F143"}.fa-play-circle:before{content:"\F144"}.fa-ticket:before{content:"\F145"}.fa-minus-square:before{content:"\F146"}.fa-minus-square-o:before{content:"\F147"}.fa-level-up:before{content:"\F148"}.fa-level-down:before{content:"\F149"}.fa-check-square:before{content:"\F14A"}.fa-pencil-square:before{content:"\F14B"}.fa-external-link-square:before{content:"\F14C"}.fa-share-square:before{content:"\F14D"}.fa-compass:before{content:"\F14E"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\F150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\F151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\F152"}.fa-eur:before,.fa-euro:before{content:"\F153"}.fa-gbp:before{content:"\F154"}.fa-dollar:before,.fa-usd:before{content:"\F155"}.fa-inr:before,.fa-rupee:before{content:"\F156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\F157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\F158"}.fa-krw:before,.fa-won:before{content:"\F159"}.fa-bitcoin:before,.fa-btc:before{content:"\F15A"}.fa-file:before{content:"\F15B"}.fa-file-text:before{content:"\F15C"}.fa-sort-alpha-asc:before{content:"\F15D"}.fa-sort-alpha-desc:before{content:"\F15E"}.fa-sort-amount-asc:before{content:"\F160"}.fa-sort-amount-desc:before{content:"\F161"}.fa-sort-numeric-asc:before{content:"\F162"}.fa-sort-numeric-desc:before{content:"\F163"}.fa-thumbs-up:before{content:"\F164"}.fa-thumbs-down:before{content:"\F165"}.fa-youtube-square:before{content:"\F166"}.fa-youtube:before{content:"\F167"}.fa-xing:before{content:"\F168"}.fa-xing-square:before{content:"\F169"}.fa-youtube-play:before{content:"\F16A"}.fa-dropbox:before{content:"\F16B"}.fa-stack-overflow:before{content:"\F16C"}.fa-instagram:before{content:"\F16D"}.fa-flickr:before{content:"\F16E"}.fa-adn:before{content:"\F170"}.fa-bitbucket:before{content:"\F171"}.fa-bitbucket-square:before{content:"\F172"}.fa-tumblr:before{content:"\F173"}.fa-tumblr-square:before{content:"\F174"}.fa-long-arrow-down:before{content:"\F175"}.fa-long-arrow-up:before{content:"\F176"}.fa-long-arrow-left:before{content:"\F177"}.fa-long-arrow-right:before{content:"\F178"}.fa-apple:before{content:"\F179"}.fa-windows:before{content:"\F17A"}.fa-android:before{content:"\F17B"}.fa-linux:before{content:"\F17C"}.fa-dribbble:before{content:"\F17D"}.fa-skype:before{content:"\F17E"}.fa-foursquare:before{content:"\F180"}.fa-trello:before{content:"\F181"}.fa-female:before{content:"\F182"}.fa-male:before{content:"\F183"}.fa-gittip:before,.fa-gratipay:before{content:"\F184"}.fa-sun-o:before{content:"\F185"}.fa-moon-o:before{content:"\F186"}.fa-archive:before{content:"\F187"}.fa-bug:before{content:"\F188"}.fa-vk:before{content:"\F189"}.fa-weibo:before{content:"\F18A"}.fa-renren:before{content:"\F18B"}.fa-pagelines:before{content:"\F18C"}.fa-stack-exchange:before{content:"\F18D"}.fa-arrow-circle-o-right:before{content:"\F18E"}.fa-arrow-circle-o-left:before{content:"\F190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\F191"}.fa-dot-circle-o:before{content:"\F192"}.fa-wheelchair:before{content:"\F193"}.fa-vimeo-square:before{content:"\F194"}.fa-try:before,.fa-turkish-lira:before{content:"\F195"}.fa-plus-square-o:before{content:"\F196"}.fa-space-shuttle:before{content:"\F197"}.fa-slack:before{content:"\F198"}.fa-envelope-square:before{content:"\F199"}.fa-wordpress:before{content:"\F19A"}.fa-openid:before{content:"\F19B"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\F19C"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\F19D"}.fa-yahoo:before{content:"\F19E"}.fa-google:before{content:"\F1A0"}.fa-reddit:before{content:"\F1A1"}.fa-reddit-square:before{content:"\F1A2"}.fa-stumbleupon-circle:before{content:"\F1A3"}.fa-stumbleupon:before{content:"\F1A4"}.fa-delicious:before{content:"\F1A5"}.fa-digg:before{content:"\F1A6"}.fa-pied-piper-pp:before{content:"\F1A7"}.fa-pied-piper-alt:before{content:"\F1A8"}.fa-drupal:before{content:"\F1A9"}.fa-joomla:before{content:"\F1AA"}.fa-language:before{content:"\F1AB"}.fa-fax:before{content:"\F1AC"}.fa-building:before{content:"\F1AD"}.fa-child:before{content:"\F1AE"}.fa-paw:before{content:"\F1B0"}.fa-spoon:before{content:"\F1B1"}.fa-cube:before{content:"\F1B2"}.fa-cubes:before{content:"\F1B3"}.fa-behance:before{content:"\F1B4"}.fa-behance-square:before{content:"\F1B5"}.fa-steam:before{content:"\F1B6"}.fa-steam-square:before{content:"\F1B7"}.fa-recycle:before{content:"\F1B8"}.fa-automobile:before,.fa-car:before{content:"\F1B9"}.fa-cab:before,.fa-taxi:before{content:"\F1BA"}.fa-tree:before{content:"\F1BB"}.fa-spotify:before{content:"\F1BC"}.fa-deviantart:before{content:"\F1BD"}.fa-soundcloud:before{content:"\F1BE"}.fa-database:before{content:"\F1C0"}.fa-file-pdf-o:before{content:"\F1C1"}.fa-file-word-o:before{content:"\F1C2"}.fa-file-excel-o:before{content:"\F1C3"}.fa-file-powerpoint-o:before{content:"\F1C4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\F1C5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\F1C6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\F1C7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\F1C8"}.fa-file-code-o:before{content:"\F1C9"}.fa-vine:before{content:"\F1CA"}.fa-codepen:before{content:"\F1CB"}.fa-jsfiddle:before{content:"\F1CC"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\F1CD"}.fa-circle-o-notch:before{content:"\F1CE"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\F1D0"}.fa-empire:before,.fa-ge:before{content:"\F1D1"}.fa-git-square:before{content:"\F1D2"}.fa-git:before{content:"\F1D3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\F1D4"}.fa-tencent-weibo:before{content:"\F1D5"}.fa-qq:before{content:"\F1D6"}.fa-wechat:before,.fa-weixin:before{content:"\F1D7"}.fa-paper-plane:before,.fa-send:before{content:"\F1D8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\F1D9"}.fa-history:before{content:"\F1DA"}.fa-circle-thin:before{content:"\F1DB"}.fa-header:before{content:"\F1DC"}.fa-paragraph:before{content:"\F1DD"}.fa-sliders:before{content:"\F1DE"}.fa-share-alt:before{content:"\F1E0"}.fa-share-alt-square:before{content:"\F1E1"}.fa-bomb:before{content:"\F1E2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\F1E3"}.fa-tty:before{content:"\F1E4"}.fa-binoculars:before{content:"\F1E5"}.fa-plug:before{content:"\F1E6"}.fa-slideshare:before{content:"\F1E7"}.fa-twitch:before{content:"\F1E8"}.fa-yelp:before{content:"\F1E9"}.fa-newspaper-o:before{content:"\F1EA"}.fa-wifi:before{content:"\F1EB"}.fa-calculator:before{content:"\F1EC"}.fa-paypal:before{content:"\F1ED"}.fa-google-wallet:before{content:"\F1EE"}.fa-cc-visa:before{content:"\F1F0"}.fa-cc-mastercard:before{content:"\F1F1"}.fa-cc-discover:before{content:"\F1F2"}.fa-cc-amex:before{content:"\F1F3"}.fa-cc-paypal:before{content:"\F1F4"}.fa-cc-stripe:before{content:"\F1F5"}.fa-bell-slash:before{content:"\F1F6"}.fa-bell-slash-o:before{content:"\F1F7"}.fa-trash:before{content:"\F1F8"}.fa-copyright:before{content:"\F1F9"}.fa-at:before{content:"\F1FA"}.fa-eyedropper:before{content:"\F1FB"}.fa-paint-brush:before{content:"\F1FC"}.fa-birthday-cake:before{content:"\F1FD"}.fa-area-chart:before{content:"\F1FE"}.fa-pie-chart:before{content:"\F200"}.fa-line-chart:before{content:"\F201"}.fa-lastfm:before{content:"\F202"}.fa-lastfm-square:before{content:"\F203"}.fa-toggle-off:before{content:"\F204"}.fa-toggle-on:before{content:"\F205"}.fa-bicycle:before{content:"\F206"}.fa-bus:before{content:"\F207"}.fa-ioxhost:before{content:"\F208"}.fa-angellist:before{content:"\F209"}.fa-cc:before{content:"\F20A"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\F20B"}.fa-meanpath:before{content:"\F20C"}.fa-buysellads:before{content:"\F20D"}.fa-connectdevelop:before{content:"\F20E"}.fa-dashcube:before{content:"\F210"}.fa-forumbee:before{content:"\F211"}.fa-leanpub:before{content:"\F212"}.fa-sellsy:before{content:"\F213"}.fa-shirtsinbulk:before{content:"\F214"}.fa-simplybuilt:before{content:"\F215"}.fa-skyatlas:before{content:"\F216"}.fa-cart-plus:before{content:"\F217"}.fa-cart-arrow-down:before{content:"\F218"}.fa-diamond:before{content:"\F219"}.fa-ship:before{content:"\F21A"}.fa-user-secret:before{content:"\F21B"}.fa-motorcycle:before{content:"\F21C"}.fa-street-view:before{content:"\F21D"}.fa-heartbeat:before{content:"\F21E"}.fa-venus:before{content:"\F221"}.fa-mars:before{content:"\F222"}.fa-mercury:before{content:"\F223"}.fa-intersex:before,.fa-transgender:before{content:"\F224"}.fa-transgender-alt:before{content:"\F225"}.fa-venus-double:before{content:"\F226"}.fa-mars-double:before{content:"\F227"}.fa-venus-mars:before{content:"\F228"}.fa-mars-stroke:before{content:"\F229"}.fa-mars-stroke-v:before{content:"\F22A"}.fa-mars-stroke-h:before{content:"\F22B"}.fa-neuter:before{content:"\F22C"}.fa-genderless:before{content:"\F22D"}.fa-facebook-official:before{content:"\F230"}.fa-pinterest-p:before{content:"\F231"}.fa-whatsapp:before{content:"\F232"}.fa-server:before{content:"\F233"}.fa-user-plus:before{content:"\F234"}.fa-user-times:before{content:"\F235"}.fa-bed:before,.fa-hotel:before{content:"\F236"}.fa-viacoin:before{content:"\F237"}.fa-train:before{content:"\F238"}.fa-subway:before{content:"\F239"}.fa-medium:before{content:"\F23A"}.fa-y-combinator:before,.fa-yc:before{content:"\F23B"}.fa-optin-monster:before{content:"\F23C"}.fa-opencart:before{content:"\F23D"}.fa-expeditedssl:before{content:"\F23E"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\F240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\F241"}.fa-battery-2:before,.fa-battery-half:before{content:"\F242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\F243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\F244"}.fa-mouse-pointer:before{content:"\F245"}.fa-i-cursor:before{content:"\F246"}.fa-object-group:before{content:"\F247"}.fa-object-ungroup:before{content:"\F248"}.fa-sticky-note:before{content:"\F249"}.fa-sticky-note-o:before{content:"\F24A"}.fa-cc-jcb:before{content:"\F24B"}.fa-cc-diners-club:before{content:"\F24C"}.fa-clone:before{content:"\F24D"}.fa-balance-scale:before{content:"\F24E"}.fa-hourglass-o:before{content:"\F250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\F251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\F252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\F253"}.fa-hourglass:before{content:"\F254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\F255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\F256"}.fa-hand-scissors-o:before{content:"\F257"}.fa-hand-lizard-o:before{content:"\F258"}.fa-hand-spock-o:before{content:"\F259"}.fa-hand-pointer-o:before{content:"\F25A"}.fa-hand-peace-o:before{content:"\F25B"}.fa-trademark:before{content:"\F25C"}.fa-registered:before{content:"\F25D"}.fa-creative-commons:before{content:"\F25E"}.fa-gg:before{content:"\F260"}.fa-gg-circle:before{content:"\F261"}.fa-tripadvisor:before{content:"\F262"}.fa-odnoklassniki:before{content:"\F263"}.fa-odnoklassniki-square:before{content:"\F264"}.fa-get-pocket:before{content:"\F265"}.fa-wikipedia-w:before{content:"\F266"}.fa-safari:before{content:"\F267"}.fa-chrome:before{content:"\F268"}.fa-firefox:before{content:"\F269"}.fa-opera:before{content:"\F26A"}.fa-internet-explorer:before{content:"\F26B"}.fa-television:before,.fa-tv:before{content:"\F26C"}.fa-contao:before{content:"\F26D"}.fa-500px:before{content:"\F26E"}.fa-amazon:before{content:"\F270"}.fa-calendar-plus-o:before{content:"\F271"}.fa-calendar-minus-o:before{content:"\F272"}.fa-calendar-times-o:before{content:"\F273"}.fa-calendar-check-o:before{content:"\F274"}.fa-industry:before{content:"\F275"}.fa-map-pin:before{content:"\F276"}.fa-map-signs:before{content:"\F277"}.fa-map-o:before{content:"\F278"}.fa-map:before{content:"\F279"}.fa-commenting:before{content:"\F27A"}.fa-commenting-o:before{content:"\F27B"}.fa-houzz:before{content:"\F27C"}.fa-vimeo:before{content:"\F27D"}.fa-black-tie:before{content:"\F27E"}.fa-fonticons:before{content:"\F280"}.fa-reddit-alien:before{content:"\F281"}.fa-edge:before{content:"\F282"}.fa-credit-card-alt:before{content:"\F283"}.fa-codiepie:before{content:"\F284"}.fa-modx:before{content:"\F285"}.fa-fort-awesome:before{content:"\F286"}.fa-usb:before{content:"\F287"}.fa-product-hunt:before{content:"\F288"}.fa-mixcloud:before{content:"\F289"}.fa-scribd:before{content:"\F28A"}.fa-pause-circle:before{content:"\F28B"}.fa-pause-circle-o:before{content:"\F28C"}.fa-stop-circle:before{content:"\F28D"}.fa-stop-circle-o:before{content:"\F28E"}.fa-shopping-bag:before{content:"\F290"}.fa-shopping-basket:before{content:"\F291"}.fa-hashtag:before{content:"\F292"}.fa-bluetooth:before{content:"\F293"}.fa-bluetooth-b:before{content:"\F294"}.fa-percent:before{content:"\F295"}.fa-gitlab:before{content:"\F296"}.fa-wpbeginner:before{content:"\F297"}.fa-wpforms:before{content:"\F298"}.fa-envira:before{content:"\F299"}.fa-universal-access:before{content:"\F29A"}.fa-wheelchair-alt:before{content:"\F29B"}.fa-question-circle-o:before{content:"\F29C"}.fa-blind:before{content:"\F29D"}.fa-audio-description:before{content:"\F29E"}.fa-volume-control-phone:before{content:"\F2A0"}.fa-braille:before{content:"\F2A1"}.fa-assistive-listening-systems:before{content:"\F2A2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\F2A3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\F2A4"}.fa-glide:before{content:"\F2A5"}.fa-glide-g:before{content:"\F2A6"}.fa-sign-language:before,.fa-signing:before{content:"\F2A7"}.fa-low-vision:before{content:"\F2A8"}.fa-viadeo:before{content:"\F2A9"}.fa-viadeo-square:before{content:"\F2AA"}.fa-snapchat:before{content:"\F2AB"}.fa-snapchat-ghost:before{content:"\F2AC"}.fa-snapchat-square:before{content:"\F2AD"}.fa-pied-piper:before{content:"\F2AE"}.fa-first-order:before{content:"\F2B0"}.fa-yoast:before{content:"\F2B1"}.fa-themeisle:before{content:"\F2B2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\F2B3"}.fa-fa:before,.fa-font-awesome:before{content:"\F2B4"}.fa-handshake-o:before{content:"\F2B5"}.fa-envelope-open:before{content:"\F2B6"}.fa-envelope-open-o:before{content:"\F2B7"}.fa-linode:before{content:"\F2B8"}.fa-address-book:before{content:"\F2B9"}.fa-address-book-o:before{content:"\F2BA"}.fa-address-card:before,.fa-vcard:before{content:"\F2BB"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\F2BC"}.fa-user-circle:before{content:"\F2BD"}.fa-user-circle-o:before{content:"\F2BE"}.fa-user-o:before{content:"\F2C0"}.fa-id-badge:before{content:"\F2C1"}.fa-drivers-license:before,.fa-id-card:before{content:"\F2C2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\F2C3"}.fa-quora:before{content:"\F2C4"}.fa-free-code-camp:before{content:"\F2C5"}.fa-telegram:before{content:"\F2C6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\F2C7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\F2C8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\F2C9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\F2CA"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\F2CB"}.fa-shower:before{content:"\F2CC"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\F2CD"}.fa-podcast:before{content:"\F2CE"}.fa-window-maximize:before{content:"\F2D0"}.fa-window-minimize:before{content:"\F2D1"}.fa-window-restore:before{content:"\F2D2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\F2D3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\F2D4"}.fa-bandcamp:before{content:"\F2D5"}.fa-grav:before{content:"\F2D6"}.fa-etsy:before{content:"\F2D7"}.fa-imdb:before{content:"\F2D8"}.fa-ravelry:before{content:"\F2D9"}.fa-eercast:before{content:"\F2DA"}.fa-microchip:before{content:"\F2DB"}.fa-snowflake-o:before{content:"\F2DC"}.fa-superpowers:before{content:"\F2DD"}.fa-wpexplorer:before{content:"\F2DE"}.fa-meetup:before{content:"\F2E0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/static/web/fonts/eiconfont.016bbe3f.woff b/static/web/fonts/eiconfont.016bbe3f.woff new file mode 100644 index 0000000000000000000000000000000000000000..f9929ba49a1b585d09c210950a5e37d6065176cc GIT binary patch literal 25192 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 i%I7QtRN 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�$T0kbTg&}?6(iEz(G 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

%#5t+7yTm^Z{)9pPFdh-)p? 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 literal 0 HcmV?d00001 diff --git a/static/web/fonts/fontawesome-webfont.b06871f2.ttf b/static/web/fonts/fontawesome-webfont.b06871f2.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 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 z zq1_(l4SX+ekaM;bY|YgEqv2RAEE}e-Im8<@oEZ?Z81Y?3(z-@nRbq?!xD9Hyn|7Gx z-NUw`yOor_DJLC1aqkf2(!i=2$ULNfg|s8bV^xB!_rY+bHA;KsWR@aB=!7n&LJq(} z!pqD3Wkvo-Goy zx1edGgnc}u5V8cw&nvWyWU+wXqwinB#x7(uc>H44lXZQkk*w_q#i2O!s_A?a*?`Rx zoZW6Qtj)L1T^4kDeD7;%G5dS816OPqAqPx~(_-jZ`bo-MR_kd&sJv{A^ zs@18qv!kD;U z5Evv$C*bD~m z+x@>Oo>;7%QCxfp-rOkNgx4j-(o*e5`6lW^X^{qpQo~SMWD`Gxyv6)+k)c@o6j`Yd z8c&XSiYbcmoCKe+82}>^CPM+?p@o&i(J*j0zsk}!P?!W%T5`ppk%)?&GxA`%4>0VX zKu?YB6Z)hFtj@u-icb&t5A1}BX!;~SqG5ARpVB>FEWPLW+C+QOf~G-Jj0r`0D6|0w zQUs5sE6PYc)!HWi))NeRvSZB3kWIW|R^A%RfamB2jCbVX(Fn>y%#b1W%}W%qc)XVrwuvM!>Qur!Ooy2`n@?qMe3$`F2vx z9<=L}wP7@diWhCYTD?x)LZ>F6F?z8naL18P%1T9&P_d4p;u=(XW1LO3-< z`{|5@&Y=}7sx3t1Zs zr9ZBmp}YpHLq7lwu?CXL8$Q65$Q29AlDCBJSxu5;p0({^4skD z+4se#9)xg8qnEh|WnPdgQ&+te7@`9WlzAwMit$Julp+d80n+VM1JxwqS5H6*MPKA` zlJ*Z77B;K~;4JkO5eq(@D}tezez*w6g3ZSn?J1d9Z~&MKbf=b6F9;8H22TxRl%y1r z<-6(lJiLAw>r^-=F-AIEd1y|Aq2MggNo&>7Ln)S~iAF1;-4`A*9KlL*vleLO3vhEd(@RsIWp~O@>N4p91SI zb~+*jP?8B~MwmI0W$>ksF8DC*2y8K0o#te?D$z8nrfK{|B1L^TR5hlugr|o=-;>Yn zmL6Yt=NZ2%cAsysPA)D^gkz2Vvh|Z9RJdoH$L$+6a^|>UO=3fBBH0UidA&_JQz9K~ zuo1Z_(cB7CiQ}4loOL3DsdC<+wYysw@&UMl21+LY-(z=6j8fu5%ZQg-z6Bor^M}LX z9hxH}aVC%rodtoGcTh)zEd=yDfCu5mE)qIjw~K+zwn&5c!L-N+E=kwxVEewN#vvx2WGCf^;C9^mmTlYc*kz$NUdQ=gDzLmf z!LXG7{N$Mi3n}?5L&f9TlCzzrgGR*6>MhWBR=lS)qP$&OMAQ2 z`$23{zM%a@9EPdjV|Y1zVVGf?mINO)i-q6;_Ev|n_JQ^Zy&BnUgV>NbY9xba1DlY@ zrg$_Kn?+^_+4V4^xS94tX2oLKAEiuU0<2S#v$WSDt0P^A+d-+M?XlR**u_Xdre&aY zNi~zJk9aLQUqaFZxCNRmu*wnxB_u*M6V0xVCtBhtpGUK)#Dob6DWm-n^~Vy)m~?Yg zO0^+v~`x6Vqtjl4I5;=^o2jyOb~m+ER;lNwO$iN ziH4vk>E`OTRx~v#B|ifef|ceH)%hgqOy|#f=Q|VlN6i{!0CRndN~x8wS6Ppqq7NSH zO5hX{k5T{4ib@&8t)u=V9nY+2RC^75jU%TRix}FDTB%>t;5jpNRv;(KB|%{AI7Jc= zd%t9-AjNUAs?8m40SLOhrjbC_yZoznU$(rnT2);Rr`2e6$k!zwlz!d|sZ3%x@$Nw? zVn?i%t!J+9SF@^ zO&TGun2&?VIygfH5ePk|!e&G3Zm-GUP(imiWzZu$9JU)Wot`}*RHV<-)vUhc6J6{w&PQIaSZ_N<(d>`C$yo#Ly&0Sr5gCkDY(4f@fY5!fLe57sH54#FF4 zg&hda`KjtJ8cTzz;DwFa#{$!}j~g$9zqFBC@To^}i#`b~xhU;p{x{^f1krbEFNqV^ zEq5c!C5XT0o_q{%p&0F@!I;9ejbs#P4q?R!i$?vl3~|GSyq4@q#3=wgsz+zkrIB<< z=HMWEBz?z??GvvT54YsDSnRLcEf!n>^0eKf4(CIT{qs4y$7_4e=JoIkq%~H9$z-r* zZ?`xgwL+DNAJE`VB;S+w#NvBT{3;}{CD&@Ig*Ka2Acx)2Qx zL)V#$n@%vf1Zzms4Th~fS|(DKDT`?BKfX3tkCBvKZLg^hUh|_Gz8?%#d(ANnY`5U1 zo;qjq=5tn!OQ*-JqA&iG-Tg#6Ka|O64eceRrSgggD%%QBX$t=6?hPEK2|lL1{?|>I^Toc>rQU7a_`RSM^EPVl{_&OG-P;|z0?v{3o#pkl zC6Y;&J7;#5N#+H2J-4RqiSK^rj<_Z6t%?`N$A_FUESt{TcayIew5oWi=jxT*aPIP6 z?MG`?k5p%-x>D73irru{R?lu7<54DCT9Q}%=4%@wZij4+M=fzzz`SJ3I%*#AikLUh zn>k=5%IKUP4TrvZ!A{&Oh;BR}6r3t3cpzS(&|cEe&e{MQby|1#X`?17e9?|=i`sPG zL|OOsh`j@PD4sc6&Y3rT`r?-EH0QPR*IobE@_fkB8*(886ZkjkcO{K8Sz$H`^D-8P zjKG9G9A`O!>|!ivAeteRVIcyIGa#O<6I$^O7}9&*8mHd@Gw!WDU*@;*L;SYvlV#p( zzFSsPw&^UdyxO}%i)W8$@f}|84*mz&i2q@SlzMOd%B!BHOJ<(FYUTR(Ui$DuX>?85 zcdzl5m3hzFr2S@c_20C2x&N)|$<=RhzxI!}NN+yS16X^(_mtqY)g*Q%Fux5}bP3q$ zxQD|TB{+4C1gL>zI>g~-ajKMb{2s_cFhN2(I(q^X!$H(GFxpc6oCV9#maj|OhFZaI z;umX6E*fQVTQ@lyZauuv>%E)5z-?zQZne18V5A}}JEQmCz>7^h0r)!zhinBG6 zMQghGt!Do5h%HmAQl~%m+!pr-&wlrcwW;qw)S$6*f}ZvXd;cHw=xm|y~mHbT3yX>?hoYKfy--h+6w9%@_4ukf0Et^zr-DbPwFdyj0VJHi}4bqRetSNR`DoWd( z(%n5>8MQl+>3SeL-DB@IaM{NDwd{{v_HMIO)PKO}v{{##c@ihB0w$aaPTSP4^>n3Z zC8Il%(3dCLLX$-|SwWx1u7KVztXpzNhrOZQ78c$jd{B9lqsNHLr*9h;N9$i+vsrM1 zKzLB_gVdMCfxceejpIZat!MbR)GNZ%^n|fEQo?Xtq#Qa_gEWKTFxSL4b{g}kJNd{QcoQ}HUP-A)Rq;U(***IA*V_0B5mr}Xp$q{YSYs-b2q~DHh z?+muRGn~std!VXuT>P9TL_8Km9G{doqRb-W0B&%d> z^3@hs6y5jaEq%P}dmr(8=f}x~^ z*{I{tkBgYk@Td|Z{csd23pziZlPYt2RJW7D_C#&)OONEWyN`I19_cM;`Aa=y_)ldH z^co(O-xWIN0{y|@?wx@Y!MeVg3Ln%4ORu5~Dl6$h>AGSXrK3!pH%cpM?D|6#*6+A# zlsj;J0_~^?DHIceRC~0iMq)SJ&?R&if{fsdIb>y;H@M4AE`z8~dvz)(e}BqUWK^U~ zFy`PX+z*Bmv9VxAN;%CvMk(#kGBEMP;a-GgGZf~r$(ei(%yGqHa2dS3hxdTT!r>La zUrW2dCTZ!SjD_D(?9$SK02e_#ZOxdAhO%hgVhq54U=2$Hm+1^O^nH<>wS|&<)2TtD zN_MN@O>?A@_&l;U)*GY*5F_a~cgQb_3p`#77ax1iRxIx!r0HkDnA2G*{l|*}g_yI% zZdHt2`Hx^MA#VH7@BEN68Y_;sAcCNgCY7S&dcQsp*$+uW7Dm@$Vl7!YA^51bi} z*Vy8uTj{neIhIL|PhditfC1Jeub(uy}w|wV5 zsQz)04y;BY2$7U4$~P{k)b`hZb>gv1RkD)L#g~$*N^1N1GfNMS)4r|pT*V<&KE1M9 zTh}rzSW#Kcci_#(^qf0gTW3&QN&zsW%VAQ+AZ%-3?E)kMdgL)kY~@mC>l?RH28u;Y zt-@_u^5(W>mDdtqoe){#t;3NA7c@{WoY9bYFNoq+sj&ru;Z`x>4ddY0y*`HRtHFEN% z@mFkp=x0C6zDGgA0s|mP^WNEwE4O}S?%DOtce3At%?ThxRp@`zCH6MyzM)dA9C7IP zI}t;YUV(Jcnw$4LoD4H(EM#!{L-Z|&fhNYnBlKcQ$UScR#HH>scYBTf2u|7Fd8q$R zy5Cbt=Pvf^e}m4?VVL@#Pi3z*q-Q0MG8pGTcbS|eeW%R5bRzKsHSH#G(#$9hj9}0O7lXsC zbZ7#UjJM^FcvdKK3MOEl+Pb-93Px}F$ID&jcvZdJ{d(D)x|*`=vi%1hdg(dd-1E>& zoB4U&a${9!xyxoT%$7gFp{M<_q z9oVnk*Dcp$k#jA#7-pZbXd=L8nDhe<*t_*%gj^Vx>(~KyEY~i&(?@R~L_e^txnUyh z64-dU=Lc;eQ}vPX;g{GitTVZben7||wttapene^dB|oSGB~tmAGqE^`1Jxt$4uXUL zz5?7GEqvmLa{#mgN6la^gYO#}`eXyUJ)lFyTO8*iL~P z$A`A_X^V#!SJyU8Dl%J*6&s9;Jl54CiyfA`ExxmjrZ1P8E%rJ7hFCFo6%{5mRa|LY zk^x76W8M0tQBa1Q(&L`|!e zrczv>+#&b2bt zuD1Bfoe>oW0&!ju$-LI)$URptI!inJ^Dz|<@S1hk+!(n2PWfi-AMb5*F03&_^29MB zgJP7yn#Fw4n&Rod*>LlF+qPx5ZT$80;+m*0X5ffa3d-;F72#5un;L$}RfmR5&xbOf(KNeD|gT1x6bw5t;~j}(oMHcSzkCgcpbd>5UN z7e8CV*di9kpyJAo1YyE9XtfV1Q8^?ViwrKgtK$H60 z%~xgAifVV#>j>4SN10>bP9OV9m`EA-H{bzMimEQ_3@VZH%@KZzjDu` zRCG*Ax6B^%%dyLs2Cw{bePFWM9750@SIoZoff4mJvyxIeIjeZ{tYpbmTk4_{wy!_uygk4J;wwSiK&OpZWguG$O082g z^a3rw)F1Q!*)rNy!Sqz9bk0u-kftk^q{FPl4N+eS@0p1= zhaBFdyShSMz97B%x3GE|Sst~8Le6+?q@g6HwE1hJ#X)o^?{1!x-m`LlQ+4%?^IPIo zHATgqrm-s`+6SW3LjHB>=Pp{i<6FE#j+sX(Vl-kJt6sug<4UG9SH_|( zOb(+Vn|4R4lc8pHa-japR|c0ZAN$KOvzss6bKW^uPM$I$8eTr{EMN2N%{Yrl{Z`Y^ zaQ`-S_6omm((Fih26~Bjf^W$wm1J`8N+(=0ET@KFDy;S%{mF@!2&1UMxk>jTk49;@ z*g#0?*iga;P7abx1bh^d3MoAy*XQp{Hl*t(buU@DamDmvcc;5}`ihM!mvm36|GqRu zn*3}UmnOSUai6mM*y&f#XmqyBo>b=dmra`8;%uC8_33-RpM6;x`Rrc0RM~y9>y~ry zVnGanZLDD_lC%6!F%Jzk##j%?nW>JEaJ#U89t`?mGJS_kO5+5U1Gh;Lb3`{w<-DW; z;USPAm%*aQJ)UeYnLVb2V3MJ2vrxAZ@&#?W$vW)7$+L7~7HSzuF&0V95FC4H6Dy<( z!#o7mJKLMHTNn5)Lyn5l4oh2$s~VI~tlIjn09jE~8C#Ooei=J?K;D+-<8Cb>8RPx8 z-~O0ST{mOeXg+qjG~?}E8@JAo-j?OJjgF3nb^K5v>$yq#-Ybd8lM^jdru2WE-*V6W z>sL(7?%-Qu?&?wZNmmqdn?$FXlE!>2BAa^bWfD69lP0?L3kopYkc4>{m#H6t2dLIEE47|jcI$tEuWzwjmRgqBPkzk zM+(?6)=);W6q<2z95fHMDFKxbhPD-r0IjdX_3EH*BFL|t3))c7d~8v;{wU5p8nHUz9I?>l zVfn$bENo_I3JOh1^^ z+un~MSwCyixbj%C?y{G@G7mSZg_cf~&@djVX_vn8;IF&q?ESd=*AJHOJ(!-hbKPlb zYi-r+me!ezr_eCiQ&SetY;BocRokkbwr=ONGzW2U@X=AUvS^E9eM^w~aztd4h$Q&kF;6EJ1O*M7tJfFi}R1 z6X@asDjL5w+#QEKQE5V48#ASm?H7u5j%nDqi)iO@a1@F z*^R+bGpEOs#pRx9CBZQ}#uQa|dCH5EW%a3Xv1;ye-}5|Yh4g~YH5gI1(b#B|6_ZI; zMkxwTjmkKoZIp~AqhXp+k&SSQ)9C=jCWTKCM?(&MUHex;c3Knl(A%3UgJT_BEixIE zQh!;Q(J<0)C`q0-^|UdaGYzFqr^{vZR~Tk?jyY}gf@H+0RHkZ{OID|x;6>6+g)|BK zs6zLY0U>bcbRd6kU;cgkomCZdBSC8$a1H`pcu;XqH=5 z+$oO3i&T_WpcYnVu*lchi>wxt#iE!!bG#kzjIFqb)`s?|OclRAnzUyW5*Py!P@srDXI}&s2lVYf2ZCG`F`H-9;60 zb<=6weckNk=DC&Q6QxU*uJ9FkaT>}qb##eRS8n%qG`G9WrS>Xm+w)!AXSASfd%5fg z#fqxk(5L9@fM};~Gk^Sgb;7|krF-an$kIROPt4HLqq6+EL+62d@~4Hsy9nIU?=Ue4 zJ69;q+5+73nU|TQu}$>#v(M&Vx1RD=6Lu`d?>zHN?P7J&XWwsvwJt|rr?CZu+l>m4 zTi^VLh6Uu2s392u(5DLaM%)Dr$%h3hRB>V7a9XG`B{ZsWgh4IyTO9R~TAR^h^~>ko z(k|Hy#@bP}7OyN92TKE%qNZfyWL32p-BJf1{jj0QU0V`yj=tRospvSewxGxoC=C|N zve$zAMuSaiyY)QTk9!VmwUK&<#b2fxMl_DX|5x$dKH3>6sdYCQ9@c)^A-Rn9vG?s)0)lCR76kgoR>S;B=kl(v zzM}o+G41dh)%9=ezv$7*a9Mrb+S@13nK-B6D!%vy(}5dzbg$`-UUZJKa`_Z{*$rCu zga2G}o3dTHW|>+P_>c8UOm4Vk-ojaTeAg0-+<4#u-{>pGTYz(%ojZ`0e*nHo=)XZS zpp=$zi4|RBMGJDX{Db?>>fq71rX3t$122E;cJ(9elj+kBXs>3?(tq=s*PeL^<(M$8 zUl;u9e6|EP5Us-A>Lzvr+ln|?*}wt;+gUmd>%?@Wl@m%Qm{>Q0JqTcxtB`ROhd6TB z$VY<7t$^N6IC(s*Z@x2?Gi%eB8%(hYaC zKfY5M-9MeR-@5h zZ?V`qr%%FlPQlW5v_Bp^Q?^)S*%Y#Z$|{!Lpju=$s702T z(P}foXu(uuHN!cJRK*W-8=F*QlYB*zT#WI-SmQ_VYEgKw+>wHhm`ECQS`r3VKw`wi zxlcnn26L*U;F-BC9u{Csy#e%+2uD$He5?mc55)ot>1w`?lr$J zsrI^qGB@!5dglADaHlvWto@|S>kF5>#i#hCNXbp*ZkO$*%P-Sjf3Vc+tuFaJ-^|Ou zW8=}1TOlafUitnrTA2D0<3}&zZz^%y5+t2`Tk`vBI93FqU`W!zY;M%AUoN1V1-I2I zPTVFqaw3Pr-`5HcEFWuD?!8Ybw)Y>g7c0tt=soTHiEBxlY;RlQ`iYY-qdd94zWjyD zFcskM^S{_!E?f3mEh9waR7tb6G&yl%GW%e&Sc5i;y@N)U5ZFLcAsma^K?Cg^%d{PO z=SHQq4a|l`AakzEY;A{n6Rn1u`7v~#ufV*6GZ$`Ef)d2%6apsU6^>QJl0@U& zq|wIBlBAgf0j!YaozAgmhAy0uy;AjRA2%(!`#&e>`V` zg`MfSf5gWvJY#?8%&|`Aj0<@aZ;-q#tCx=-zkGE|_C4)TqKjr-SE6po?cX?Z^B%62 zdA!75;$my<*q)n@eB<^dfFGwRaWB25UL#~PNEV>F^c+e2Be*Df(-rIVBJo2o*an$1*1 zD$bsUC-BvObdmkKlhW<59G9{d=@bAu8a05VWCO=@_~oP=G3SmO91AK_F`#5 zwXLRVay<~JYok|rdQM-~C?dcq?Yfz_*)fIte zkE_g4CeLj1oza=9zH!s!4k%H@-n{6aB&Z;Cs8MK?#Jxl`?wD>^{fTL&eQHAQFtJ_% zNEfs|gGYh+39S{-@#MrPA!XpgWD;NLlne0-Vey1n0?=ww18{L)7G|$1kjI(sjs z@|alUMcx*04*>=BWHv_W-t=rCAy0q6&*;kW&ImkwWTe$lzHJRZJ{-{ zl-mK6+j}V`wobm^^B&2Tl?1r=yWbz;v-F<#y!(CT?-4K(($wWtmD631MN9?trDG zMI7;9U7|UsC;urLP%eH1h%U`LJxT3oM4=gpi%X@lpVR9N6Q(uhJ00RWXeL-Z*V(O8 zsIyyVUvf=RXLBKX`!peifjIMvMs1YT0n$0*B;K^yZf&HN8$N%e=EgOejqihLPBT|< zs)z`nNU}BOdT7wYLy}R10eXUksn9o)jG)&=qteGc|XNI~h5R6UBfaPeIHbA32@*>orZsCB4`Q79}A=z@najfekt-_eTg7a}Mcas^D1ELlN6(y28c{ur|tmueFvIDOQxXs1)_lKrA`L2-^^VNC#miFvO%l6w5uK2bFyu?hyNLCjTCNRRVW^i+GX``giwc&TpV~OHu(yN&o)r2$K$1kjh@>iP z^&`?sCk#?xdFX+ilAb(;I7<$BQ#6j*jKsu%LEhQKe=>ki^ZICepr3#_2#pE`32i4Z zu%eXsgL)3x3Q-^OPPRhm<^!TEPoek6?O^j+qLQ*~#TBw4Aq~M2>U{>{jfojVPADAi zurKpW{7Ii5yqy6_1iXw3$aa!GLn|$~cnvQnv7{LMIFn!&d6K=3kH8+e90Zq5K%6YfdLv}ZdQmTk7SZ7}>rJ9TW)6>NY{uEZ zY^9PI1UqUFm|h0Vqe60Ny=wCFBtKb zXtqOa3M?2OEN=zDX7z}2$Y{2@WJjr?N`auMDVG9kSH~FjfJRNfsR@yJQp4cQ8zaFkT4>5XQqSVt5c}`-A#Z=3-_mGZ^)Hqayei zhJ}wgZ5UDln%)!;Wz@u=m(6C_P@r9*IMPe7Db`CSqad3ky-5-EcG=*v8J&{RtLJ(E zw2h-ghGYcDtqj4Z^nU7ChgEXO0kox=oGaY;0EPqeW89T6htbZg4z!uU1hi;omVj+3 z0B%$+k$`oH5*SeoG`Ay&BAA%nAUjQxsMlNdq8%;SbEAPVC#qm!r7j75W=A)&a6)3% zdQq$fCN;@RqI!KPfl9l=vmBFSFpD1cAxb@~K-$ZIlIL3W}?#3+|2p{|vZVq`YA zMbx|Xl57kJVwoetAo+opiewCkCIO=uBLEaG+!0U$MRdReNsx>+PIJWN6dW)pfeZ(u zQ8ei-Ht69)ZV`qv=vmorhOkF)Squ;)8AUfh<7A_xI8FGHMRW>~%o`1Wt3|8IMrM%& z8)|@=#ssro9=f9HtN0F#O085{Bf6PJnurfzS_yg?qqszmnQIYDP{N=xqPfvl;VNsK^qpoy2&App~Fe(MB7KCI)$p1!&YEB&%$9gTk zmvlt?t7!>_paNt_fYJvw^~LCqX{4opLy!n)md7}<_s?`gytfSAdoScQWTy&Tbr&~( zg9myGVv)l|4-umFBL0)Y(d}Rvt11)(O4ij#zeao~K$vh~JDn0_@3RjP2M0|79T&9+ z?>Vx&M30Sb15&<{RtpeYUf|n7n5GHyc+-FtA=7H$p6Mh=&M0O!so)tze7#WT>pp|x zfWae>0++DfscU2%>|@oiCQj+6O827)1}KsN^a>NSI*4?#ylfG-{q?3MMXX$dUH^S6Ni=Ve1d0(janpz@WqGJ?cG&sewpq294Qa zL{huwuoARdt5F4Dbh#?<2ruzSS{VeDAOtY+52t^xJW=!(0f3P&G3Cs^%~Q~~Wq{YA z!QrEk#>oXK{sc&Z7VB1_>fA1^#YyU1Ff<^9G(!V0!JW`n@EDdj$$2SVK6*7$!BvXP zmAC;h-W75(Nnzpro3CE9eV=~Lp7yS(vXnk@$g3{R`!(UG013==W*Hj{-*F!ujl+np%IX?E0*I&-K^u zY1z1I!`iOu+Ll`UtL|F6Vb?~vk=x9w6}eE^*<)O?pZQ#8YKE#b($x>w$3E*F0Kfk zfnyCo#zOpX1(P2yeHG@fP7}}~GB|&S27%6=@G^V=rmeTB$(w9rC6J@uQmcAMq zQ=Ce?Z0RkF_gu30<;5#jEW32il2?}$-6PZ?au16Y)?kUFy3L?ia1A@%S3G-M`{qn8 ze+|6jh0vqfkhdSb0MvIr!;;*AL}QX^gkc+q0RJ4i9IyOo+qAyHblI+$VuZ3UT7&iIG7640a)fe&>NOVU@xZ*YE`oy!JGMY%j}bGq!= z`R5xY(8TK&AH4b6WoKCo>lPh6vbfu1yYy02g^t9bDbexN!A`*$M5`u&}WqF?+*m?ZoW85&MFmXqQ1J{i;_Oz>3*#0?lWa zf?{tv`_JzP7D3x2gX&ICRn(aR$#>;ciH#pO?<*}!<}cYh_r{hb6*kkXSteV>l9n6i zwx63=u%!9MdE>@2X)3$YXh=DuRh~mN2bQFEH&_nHWfU{q+4=t07pt+Jfj90Or;6JX{BCQrE8bZe&wi3fwEXHRp zz8{VAmxsWU)3nT;;77X7@GCm7_fL1p_xKEG&6G~luO;Bc3ZIa?2b(*uH7qJ!es71c z{Buj4(;Jds$o78u<3df_2~DLq`e9*$SGmrR9p2OoVB5Q(KL3M{1>eq+;+lHK9N?xvyBPHni<#j$sZK{QrKEcdR9+eQD0V? zGPaq!#<-c#a>t4bt+R#Hu_|}dlIGeve@SR!d((u)Ga45+BuhHfA88G0cPrw>>(`ID zZ;aIyn|qmhuDXBthoW{J(WN+`Yud=y(wvd0rm&1*4>6?#8&)Fz z&@V=a0w4)F{^!&W_l6<5xg|-0F!~>aCALbeVsZTd*)M*^tr*!)O8w)mzKThWyQW@X zw%BFs5_@CIic5EPcTJu8=CmynV;``)3}gJ`Vl#VY_3Yib@P-KvBk_%!9OVu#8tG|Nc4I~A>8ch-~X%M@!>yk~ERI|QEcwzgI66IaaY>gx0~lm<@f z5-k^OY#SGC80Yr-tDRP(-FEJ{@_4LHsGJ=)PKZ@`eW75-r0ylN%0Q>&*M;@uZLdJ$ z)rw7Dt5ajr;P;~1P>jID!><(7R;w|Yf}qI&8klT?1dTfc@us5mKEe;qw;YKR(cp-D z6NmUMP8x7cM%~ytE@l*Mp^oN*mCF`gRNhw3gpO1PVi_^JzCJo>#mX(q+iJ(Ts$5=! z13b45gILEULS!=)SmZ{qsC1)$8-4eADGR?v z>~4k_SvdvPHAC}=4(!I^OLgQ@9EMDE7d$PvJbi+K%-HTh`P0#Ea|Jm6zj> z?R)(YWtZoIRx>AqzlG1UjT@6ba>yE z{Wf<5moh^-hu;ptAtPG}`h$4PWcOn>vy`#bH#Ss>OoAEE1gIbQwH#eG8+RHG0~TJ$ z>`C`c7KyM^gqsVNDXxT|1s;nTR&cCg6kd<-msrdE5Ofk=1BGDMlP2!93%0c@rg~4` zq)UFVW%s|`xb>;aR@L^*D>nkSLGNmM?cv)WzHZy3*>+*xAJSX;>))*XRT0r9<#zIpug(}{rSC9T$42@gb zy8eb6)~}wl<=or)2L}4T{vum>-g)QaKjtnp5fyd^;|BxHtx~2W^YbKq1HfB7@>Hw@U5)?b^H=uNOpli?w6O#~V`eG;`irLcC(&Uxz`L_Cl zS8r24e*U71o@dV6Soupo-}Ttu*Dk&EwY`h4KdY-k55DSqR&o7nufO)%>%s-Es^5Q_ z60#cReEy=$4|nW)bLh=|4bxW4j}A?qOle+wjn88oAeYb~!eA+EQ;8Ggp-UldAt$3M z7*E590amz>YB9L(z?Xx&?I37XYw?Os-t+05x6Z4vkzBE6-hrbB=GAB?p{DQXV4CKg zls@_wh*&XC<3R(CEZxg8*Y(6a>cIOq9Nss7{=UQ7Nv%O_WxSyBqnH{@(<>A&2on@z zn57W4Dh*E)o#rJ2#tyxV2;C5#rl8%%As$4qB=IbMt-z|jnWi>>7Ymq37;AW!6Y4nx z1Ogx#!WVdA92mEipgUxzy_?ddg|x)KOCyK)P5v@usc;0sN3{=0slt4CuwaxK@20eO zhdp~Z8iJ7GWrkq_-X`~(eBpthn9|`tZEUCIGiFpJjjxPVE9I)#z3Q$3tw`a69qxjuf+~ z*?v>d5~pcH-AQ~0)8PyIjumD^?SM8!Wb>KZoD7hOlc2nA0_(eG!in>}Ru}>6)>5 z@*}T`Hw{I^-?PS9>(#UFBQpW72* zsfj(2+_9@5x+57aN!`e`f(Mp_I(D>}p8)@&g^g+X1%d{ z%X5boE?hEoj0CiwTh9)#8^?~;|wgor_=Z1BI9_dI{ z&t*f95n?ZgZ5CnQa!v(p|JT?y0%KKgi`Smi9k5r!+!Mkz=&Z$%CFl;?AOzV`YBKrY z0#Y6~J6&dA=m>T@TYb8ukaV4z^Z?VX*MCKcp13-ye1*`gAj_Tm@r{fpm?K!U@Xg2AfndEo6jZN} z=XK0GRNXVLW2c?}B)rH^yR>u}b?|p(W$!TkQTAgu1AIG>MFfNchMQB_^-AQxRE$Th5-E_tBP@v(Cy|ojjP5LEU|JrM8 zVF5;$>Hl^jlHWDPChrTH(vh%bARyj5#TPb>omAs-)4zN z9?9(wybd0$Z5s+}Fiytv}-8U`IC<{6U2_NqEAkv;7lys5Qcq3EKt z0-!^Xy3idllgZ~qX^QTe=i*oGUCJNk>Y26?+9U(Ks|C81S{-v+6ebc`c(yibQbuB% zxM7mk>}dI-TfUi5Jqdu6b`4SqF)y5humuCaHhssdcR(jKf5ZGprx;Oe7VG#G6TA1+ z8oZLl<+ey(L+$Qsck^4fi{I|)p15MX73gHFUU!l${lN{)Ht_Wb%j#UE6cZ9}Wq^>+1wz z9TBA@%f~tby^0YWafmn&8Ppjn1Ng{d;S01WImtMzV<`!zU7;+8e-Xko>qM^OfOZ`Y zEZG#vcm>EGF??&G6+v(3l`X(xMn8ESv=@LdMfdcxFi%g1?0HDPG>blldR`OLlWN80 zz<$t+MM9%1K~JT@#aBZjOu9*G{W$u7cqTM|&a1)0wR8R^*r$<&AhuCq1Z{-aUhc5P zdyaaK{$P=Y6R{40FrWmLbDOCijqB(1PrKlnL)Tm|t=l}toVLAZOXJ*~-dx|_A&o65 zskcpT@bs+d@ia`f)t8ivl{(t%H?O?;=^s3O^GXqopx7E3kz06f^UQq<>gyNmo4Ij; zrOxuzn{WOqP75~PwPXC;3mZ#YW1xy&DEXsl~)u4`-v_{*B%R6xNH3* zJElz8@d#i4`#JV(ko%x;u{LMqLEEDmwD*(ccB9Wp;u*9I?=sC7g>%L{%$4m#zhbjm z)gK{LWQvE1>_yl|4T$nYKNVZ<)vza7FKU5*W~4)KNgN@;SA<9&ERxIfA&UZnB=r%N z5YD4fY$9Mkzy}!G+`KUy>3l(FSi1 zw)t)*w$E4#ZSxfm3cZLC(o3aQQ7uHk>_@fMTHoM0=quh%mfN6%{`O($pyzg0kPf=2 zjA%M7bRl4BhV5{{d4HbnTh`HM&YKw@N~47e7NFGr*9Yzi(7XQl-FJb4hPEKOC!K2x$nWy>8=PJYE)T$=Cqe(n*ChZE zklF{Ms}h0Jd|@o;Gz(~b;9d&c#0O^j{1?tF5dtMj9dG`|j0qZi^aF1r{<7KC5hZ`E zNX2nxJYEr@>u86|tPjTDet;fLn1R+IOm6&3b*}TOyNpIaid@W9c9!jIfiJOgK-aw=xb5Kpb)`E9x%CU82 zEQg_v`e+tWYClJHl=_EsSW?LZO3)o#ox(#2UW9|V7I8fYnz5fRtph`u)dywWL9}UV z*hdU9-BBK5G&}j~O6&dSdWDIpFX;&Or5wNbm^Y+A-x6(K$$Of6JTVl9n0gFY&=T5p zZX?pCxA&w{J)eDSfb?Zh*LT#AdiPlB;A%p|-`Aw6RP2mYTh zLmL~zM^VS0V@*4LkOEG~nQR)HyRB+;*KWli%QqKt&%16HWyMXRhtwdCgyoTm*5#itgp(Wap66 zyr-dgKgjl&t?JLMuw}!Boz)TOa2|37p^FAcPmxX0apWmfp$B1WF_@-dsK+?1F6~yY zEwi!-))Q_CbOP%?p%bx|=d^nLBig-_$e!nh19^Ps`s{SNq{nnW)V-qnz3y+Ipd7HS zsb}z%!+}y8izoy>Nyyj4m_br&8TGFcze#gP4?v*NEdl zzGBLM4qpvdu;5vCFi9^zXU;sW`>pPi|NFD# ze=$xI@7q9B4WPsw4CAO~UJ(S)s@u41E>#9D>!?=*N5m$%^0E` z<0RjkAj02TN9RLX3Js+GArg=Nu>E5z zPa!vMuMV06#7$1dLbwv+VGT(5V_&A~Uy3T^+|y~Q2>lA|=hZZ)ex%G`rhkN54C5gq z>w?qN=A+LgB0-@s{OJs7Da|z%dK)uDH4?m5Y=K(N5KWL)uqDxwBt>QmOk(h~1u6_s z>9x>G_+@bJhBQ;(Rr?20>Tjn}^Y`|rQvI3Ua5$aGq{HFf4BhwAFVk2oHNbk)hmAri zjQ_!g*-c^AKM>A@je&H)i1PsJ5929F<8bLXvONK4;-n6d;Zm7Q=G|k6Fp*AY!b1a`eoS*c zF413z6`x;!NZV1k5)sv;-Dqjt?t&|JLNGSA2yWhU-RYC^oiWI1+idw;6*>m1&Io`^iPgF6c$sN zw9j3KFYs@%*HNz1Jr?F^RiLV%@DyQ^Dnc1h&59pWKhD#AMQV~3k7}>c@gdw=dyRf5 zHGNU7bA_hHWUnI-9SXtjM~LT>U5!uS#{ zKSOhB>l^nUa&S8kEFoAUIDG}(Lr#|uJCGb%29Xr>1S4yk0d)9hoJ7#4xNbi?5Dt?N zBp45evje1L)A;&Smy9J8MJe@1#HwBFoYPv$=k%GOaq!kd58)tzBI~EkGG3Rqy>GOTce-p>jH0rb~c(K z1|9q=$3)Vdgcwyvy&>S3p(f~O;~?XK{)Kch&2!gs=%kNH#-Ee-i}S+a@DNWR(Xnv< zv7kIUUD(c?RS|JmPeXBC6cbxUl6qRxl;fFAiK%!>EzFa zJ$-mz?G%WqC+P-l!DLX&nfxzGAnLaFsOg^Vq~gaW2QQ<(qixj#J=;Y{m`?kHkfO)i zdxQ*`2Jr3iXdj4QE%|AlQ;|Wx~pKrr7xuNnTe=t-AO)iha6xDYpH}>yZ z+FD^H2VS0x4us;Wo_95^kElZ$>j2HW@wyeLi3i%Q28NXxQT7V1{iHY}Llc~!Dkv8* zM><6X$}-pv0N#?+N%W`5%}K0Is%8kCOC~LuR6+;gtHYPi9=dqUoin~Q^MhE;TSIe$6dEI=Xs(`oTlj_C-3c4KT+wJvpu4Kkn_RZVg5jE+RF`XNx?0xmaV~bW?v}wVTXn4{5 zO&2X+*pF%!%qu@3SLRk-npU5?`f_cV9;|pa#ktlD9VuvRx;TK+fWUv_$vC8-@TcO4 zN_-D6?7|-4!VWMEgQ}TUe(c3w4{eyxe8C5t7pS0MFe;X@U&B?sVDIGR;u>?mPyb2F zV5WLiQ2mX&1v=E#B`oe9yk4Y2^CFRk8*rV6k1!uW{m47&7E!m%(ANz&+ixrB^ng(;#RLHnX%tfsjJWM- zyBo5Of=eNl8*;gm`ozE0weGdP7~Iz5$$pI`$C5 z`U46T|8cnpt;J+VO?%~H_`Ph??bcn%Jzu`2`z~tc^PoA?r znJlfFuxIeRC?a>J?C!EC2Bn;dnhn3XeZ}sbjb-10*a7A?aS00$P{m0wm zO_v_`nJOwO*k6S$tHR@xmt`N`;fR%l>^^ZvbfRm}PUBtryK5pTwRdIZgj<#_irORP zr7I?yj7m&+KkD(;PKtLXmF-s9=>`j_AFjI$YN7_w1g7hD(md1~ysZj9;u_Y4i3Ssz zgRH~g_UH9AHR4A!67Z@2zch=Odh*4WzWc2=ekK0-ueW&=xy{z7Gz9CSbv}Pk+4ST# z#ZxnW&!Z1tS0A}`@LT_*wh{sv=f-Dy+2cPoUi{nzYTGjx)eit9s#G5^D0+(|iNBlJ zV$vUX35MrZ8K19VAN|i75_}Z#DO`R~MZQy~2$6gqOvN0Js%d70SzJm|ER&Jy5k>-I z!fh9^fC*zr22w0EG6&Uqo`eqC7_L8gi(#?!A>;y86ak0F7|oHQIhmW!15hHkZ(*|o zF+vd5r!A(imA-b0}qc4-&FS58}j>!?PW$SEg*;W8H~a^e%b?2`O8 z*`i%!x17FmIo=X;^83K2Y3Hja(b_rMns6%ts^>=(bA-9V<9O1I>564?R3a}v1yYtH z*l6T7AY0T66-95WtZgaP8(}|MBGlfNdh@=~Y1m!IA7($BPUtE`qT@h@;M3Hd z;_dtQw^?1x7-WaPK4XDxuqd5+qVz|PQlALGw|x}&MFa4RtVSK`(e|RtFN=u%s&M?) z7+HD3$diG_iYZuX{0ijc(*2C7cTX)p*3LRRtn3r@wq>%<@A9jY)yX*dv zSq7pIH0)jCA$)wa^7RfPVlWXzzoH}vzHmu4?W&f|zEC#fi<;dYS!Z*G+=!O(wLx7} zkfS~!6{@R-(Uw86L(mJl7`6&&tfKDx<)c+WIlqL)3pSX=7*`N5ysyr`8ap$bd^E3w89)ZgPiCBi|f{Ji^U)|AMCk%95n_gVk3|_XmE_Z6(keo8NCgI|@0sfZs3_s1} z$KK|ZCF;AE#cQiOrv*z^HWTBHM`H8Hwdx20FDq8lu^{(Q!@5s%Urrmi_ZX=7)j%7* z2x#|wO+pMI^e#2DpLkU+erWUorFxiNlu1s>XIg^5wIEm|joek2Rd2IsPtNkBRLQTFsnoh4v_<(`f@uV0I_G*I9RD+?L~j{1bx`#0ta zEeZiTNBzhh^|GEN+1vl7{w)Wm!`yhLKAuC&Ve`GhjRo0c|E^`tZXfkQW;&_kBLS|M z7!XYb?!E&&=u`h5Ld{_dyivFMQHW{aI!yVS7oS=ttZ_4U4sb{P=wmO6wCrO3g8Cir zRxN0ht{}^=kNOy`2fdgiLzr_8?$^fWMSdbcHb<)&+4+$`i%$>mB*aF7fv0tiFWhcK zRThLy0Mtx?A6Q34Vn$tJOcHkv?-ldg8_%9Jr8YX#=C;}%u*pWq^?L5VVi61EUkC^@ zTi3LAgna%bC9aB?Qos0?XlUZtnp9cISx)1AbGeO~JGb1<*DpHId@iRrT4e7+!$h07 zWDZ4FAXQ;*hdB%9)8U`#Aq1XW1`G)sm$Ol@ZCv2#2r5~I^BXuYJm%NgOkCQOAufat z)Mo2&C`TDc7EDz1sE;V{`=Bx<#5gYrDb+@@FE3>Yx=pZB79-7UjD-g%Z#qc&td6cl zI`S1u2Q2b!m^1LOg{LEV_eV*@cFW|i{!+a94itA#8 z2;?I%3?C8LQn5B+Ac|?$1Ejde^`AH_B}3`>#H=np*@XDR^y^=fZDd~Fz;wS>e@!M7JaPvv zPU?=U|2$6iw_+;&j{0oiARgl1!2p}_PMTg!Yxs?H%{HmJgU62_ghA}_;}{7x*brZc z@>!rSz|M}1YPdKizI;?B3~2O%LY`8A1SF;-m z+Oxu{+PYOU-V9O}bVd$T!;AU2M<2*KtciMEC29!H9V-u9ZUJ$M-4#Nb$5QVy@LP8HyfiyK->WR(e1g77J;isq@ zxu$>@C(@*mf}RY@L8hJXBrWMOEKDqt3i8iwFSwpR$W>G_j=iMN>(!1>S7GdmXt%UH zpfdn%XxP3S<>d1=1{yBn9c@?(YZkyNN1 zQx^M4-32#mo8SKR;r8t_CV3=RwbSNzS!Jbd%GS0L=qT*0!ERw05x~DzSsUKHYQ||Y zuwKD!+2nux!l3~g>0-F=;qnW{w$F|jqXuhZz#N`4WtzLDj_MYvu(*X@fb3G;s!oPE z?QMW|e7J7#=?C#3QWQRp-~(1;_=?J(Y^}oNmHRoN$^y4Pv2Z8cL)EmwWVNJh@>2ER z)el6y-IQ`!2h2{kx3}jwTf$_!N75)(mi|n=?Ylj_>QzqjfMiO67Wc4{rOcF4JS+{j z&z%duf1`r(U@ZlI{F=sZFnCGJv}cN<(cA|5AP8m+HUK z@vG9%#_zOu)ChxFSxmKsBSSO9XX%g4SU79e4=G!|Cgo(;VeA8dsRxIZ$Eqhj(brh0 z>Jh)P2`<<#u_i^?L>%2jxXAxZX%?<7l073C+~1p!t{Dj_9ZxL$sz|_G{C#{Hv@t=B zP}EsMr62u$;U#=d%MRJHCiNv=5OI3(_o-A=G_9B~AsrRui@pzUDE@tHg#6PmWEuT^ ziPt|@8=kjTNmkqdOlyJS!m{E9I87hqn;%9rT0<0-L99QeURoyK-&OxH^mcao3^t~WeS^K zH`XC|VCLo6*duA78O!ugN@5Elxkhd!CmdSX&*f=utfmDFD9PkBHMk3&aFB&)R8NL4 zD&i)OQLO z(Z_o2Zs~o#^$zu`{XU~$I{T&vAH3;ofJ*ZpJ&JR~s{J0}8cw}`t#a3NvWA?#tMY67 zLG}{Q{#6^CipQ$*V2|W$g2v->Y9+4=(K+K`;I4$BFUb9!Nrk0B*fL+v z_lcdO1uEs@|8I@xoKCB{68@q=)}90JCVF33Lb?M@bC5mog<2~vPXXzk7B$|75Lya& zL)t=%E&Pk`S-PznN<)4iAI;NU!@f0_V&wOND{4!~b@1&pAN$Goqzvq>;o=lr=43Xx{tUtEaN3B>CWZ)Uac%%Y9--wFCA~Ek7aAC_APm}b zpXAnlNOIF+;t%pPlAxIkvv1neXa8*XxNLX6ZDDR(+U5bi-=^>US$+3TyUFaf{gSPI z&A@*!TUbRQ-p-3$KUDc=Hp9j|c+t%)Z{KNid2DyGia&p6lgtpOkDeM{Qy=)H&22V` zFBRKM=Etf98a&;o2pD`R2ctkyWxz`aTDZXBjY52aOspy*2=?xDIZi>&&))8y?Pe*( zt;DkFm|`@cFI!Kx=wFn7fh&cqy-f1RZb2KRCK7JNBsApYHWk=M5J&|wBQOdb+2_^g z*;b(s3o^wX$sWZHhUhNh^+UU2+hPaWw)eN~kHy66akHOp4#cDm_4zDetK1Mqx+sR1`nMz9wwQP*hL>=&Kei3+FtV>|yg%{T(6f`N5BR!MdXj8xHG^3) zqCJiEswQF>ZLP}3Hs3ciKciD63}0Z^MFL6+`V473sGm^=U1^Mx3`Y|Mrl>H0pEcT6 zg^H5MH*WeRUNMs9VN5fcZQ=>}GHBs};LS}+P-y~P#IlYJ0P8ym@R(0L;jYe*1D4ll zwDy~vES0HtyCCI2411OeiC>SA#1wX;8DRXzVihdy^T9BjrZUmN_=b)~n*!R4%Wps~ zkbFH!%W;I*pJZ#8%)c_#RUtKlOksrV!Y3i%vh>?b076sjL-)-NtH_t7E8;OBZOPa@ zAofQ3jdT&<%k!kzaG)7qW3j4HcvQe1&&jd+f8}J3!f+>UDx7H_B8^6hA&r*!PDQ-B za5jys`+BVIUd>7lmgi)Y&fyh!`yosPQAwyIh?7D-h2#b7);pTpdfDrCm->#&W_JPe zRvi?=>OgitOs_62y`!|JbhXf5STOdjJDPjj*#EK7D|Q>bl1&L=hPkN@2)(QE#vP@l zt9uJeTG&n{WG78N)aYu19%#`y%8i44oVsSwNLRxgR6hF`tsw;8VRy)COB4`B4i4SsLAa4`Y(WRazi3X`Vv!fMiDilJX?r1a{9%U3-*f6J-iKJh{i^La~ z$yJ?ASG(MP>=IKImh$g9bD7xJqR}YghlfIHszUwEmoF2yQ`Xet0HgZCGNmYge2TvH z+d^IF=q3{GD`-m8K+R-7AdPA64e{l|c4AofbmD)4hUvwM1bw^%@mXLok{H%R#q;qz z+gU3h@JZH-G^8$-2?T_&a!E51(fhSa5Q$w^j>=mA9b7)O1^G1VKyM1v8fOAgDLfFwlSN7aDkBbh=1Vofi; z{_|sQ`!zOY>fWC264~Y0Y;ZbE!j3Cqv4wlfV?E8SiTe3tr;ceTaXo*JV!Oufp0KT} z!>xB&7aARQo9It=F0Wa;$5j)X(=fKBtv5LhYKFC6eJA)BwZ>zny85O7zI6@a-&ln8 zLF2LorHz$i{9dO!8mb#Jp?&t4L$8*9&!)KTkLxQVHBP8FA!bZwX zC$1xtlqa{pU|8*e#v_V+#E4OT zjwi(7(vGZ$V!mG>tD`=FtRvSqWZ9$*B?GPmVd1ek!0@{$s=gg&_gx>I&W_E$e<7Y+ z5K(_sDS$qH^8rKPSita&*B->#;u88_rMf;Axsguitwh`|=XF8(EVlU^L*PKbu#TN~ zwj8|9X*SENE}$egSAG|3#!^5By}_`$$?RM3+{=QMMid7b`V01GIvvI+&E63R2wQNp zn}sc$*2c&2oUL%!tO4~7wk4n)tpFT)D3<_3R0r=|=}&0KCf!VqIpm|jC(z<~qb-#Q zZxk@2wJZtt%hiN1;J9w_Hzt9B+S-HzVkb8@NIl-+0XLm`=_dDWyDqXB zn&w}0*`hmpYVLH;R9>jKpbgr%Tssmku7 zB4?i;DJ=yE$6)n>a-tiWd=_(RksK=Y6Abz5;b5mLI|>)(FA9o zGzACes-Q@1Vend}5C)iY7*G)}1M%Udge?eW(1HnSXri;yq(~2bXQq`x;Yrz#0k&ke zS%JGlk~lDWC_ny*-Pvc@4#dzy&@`+2PkV%% zOIv<3)+u>drFF184*~^AoZL$_J<;#J>d$8hF1HEz)8d7HT$%mI=(a%Fw_CitukY~T zzCPh-wvU#V(e-YoddEiUO$O~Gr_8a91@$Jc+rpZOpW6;!qTct6s-1GiRv51Kzn!ku z>d;8_q{~ie0yF5Z-59^#vLXATUx*cq!zD=G$XZeu&u5Te*HqWE4IIDJ=3 z;X=s*MnE=AeJ9|E8#P5YEW>Y3>i7+gy{D`72zWgEJ6_;p$$k1u>hqEMJ4WhXT+1`J z2UoHdw1-mEKE?MEYBN#+HGKNk5c-SiJgPNDBrxIO3hq2zQ?Q-Gzn`%I_?VYp&dv2M zvIvf0jiNBnpf1lm=3_A6ApuPS)>4!*8O26GMgpxwaM6T-up7}x$fShgk;qe5v^RIo z>TaB#z4r{2{wUbivuj#sL%^MIIAif88=Zo8VO`(VhtJ#lK)G7`AVbhecjuza-rrB| zo4s>x>$20;IoY}UyhY=kM#Bz+WZSjeUwYHVtw){{#_rt79ybJJr`6`3xa`^N&f)n! zT=yimh90T==dW``)l)vNIle^QUoEWPPd=w1q+I0(zj?aa4;5EaZaQsy5FJ4LeF}5{ z$zg##sP#GwKG2!Ph}IYe2=jqBViZeEZy;=DiXR5O3_2O25Y~Q9y=cg)D}9l1=&&Xw&3l?g{8))$`(k@{a1p3a{ens7utuI^2=vshxrlD-kY-br`D+hAM=))3(PZ zpyB3*357l{^D%K-(OTUkjEoJ4X>x<^UfmPAA7hlXG?QgK21ybCZk1lxS0Sifv<291 zEjcA#Q%-#E!a(4PJtQIWk)#atL{s*GU*JZt07Zc#S!1%fwV7fXkwZu$LI=?Jii9b& z9N7&))d3Vh8fPHy4GD@Ijl7yD&?%NGuJ_OccYXkIaDN7{Ux?ntALbeUyb?sbz03s# zLfJD@r)GcJGkZS!PFErpG3low5RJ#jCL63{qLHqyaMc*AVNejQp_b+{ucvHN$a_^~ zK+n|6Qz^l#n5WiWi;#UEURyWC?C}74{5m0i9bm^jS=(82np)-?!p5j&Hj8-6#y5q$ z-cZx{GVhaJT^!E3OK(B$?9)Oq;h*nmgonr@l}$~5ny#*74^BUz-dtT@>WZ;S_3r_} zQNaQi9BKB}jHzND-dA1Yeacj3_qnU%q4vw$L-Baogt=3ig3Ri*h;4T_HQn8u6~D8% zu3dIGR>z7KUO$}07IDA zm>ULZ#zLtQpB=zl`Xly=k@2w#_&57?*Xi!kJ;wQT>Y(diU_s7c9> zJt9NLo6(QTdY?<&%(7s~gGuhxX6Ia@TxNd)1c%NSn z1vg!?!9F%t+BbteRT}T^ikFtgySn40Y{9CQ#s-^l6%*Z|a#r=PT|QRt>uzZ1KDuU2 z_UG&)_39e07-r|Hmy8d@CawADtYBN~ud`dnC6l4WwkC7cwB?%@#G0C73m(O(B@{A= zKYo4MwAZI+m;dFW_8z_0tM6&w{t;apJRSqCB|8-3|G^xy4{cteem4EFg?KyO^H>jM zvPiWhJ7a++c1XQBBKT_Aev;X1adZCx?O6i7i}=MPVM!{DFhM1no>Vgi=FJObSSzE4 z!cz06q4?jt9&?tl`>Ym||8Lbn@fQ|L_G8v#F`IpVs|l!&x&>B}_z$1B(XGyIsHAWY znA8qOJ=@^)4xPoaU-h^g^}_jK@kTQ7$?aFf|5I6D)sIC2%qiC(coF8shYu$ie*)ue ze%G2{U`NRIn<&=&^cNmI;H`MZjd~?#3I1s@KF{obqiu%g9@l{o^DS=Z{*u!j)-EktzHk%L~ zUeueNeuutfbuxAHnCfe9zB#!P8?xVF){CM-QK}``94{Bxq4Q=lI*@*(t$ z0*llTSuC3*FY_i0Esz=DU(#!`f?@wi{if=Z>r@~3asMrB8H6RvvkTcW)vbP8ZeWX4 zzxps+&i<@^TXl<*)K}C$u*vFs=c>O<uva_OepgZ3^mp(p%~u)K{5Z{k!@f>W^5N zctHJ;`gb-C%!>u<(kED#4A{XPx$+SHa}?%+(O6P8P)JhxL-2PKS-#1p!TbB=d;5nL zMMOs=yP`{Yvn%^wn}ki9e$C!VtI_NeVz`$Lz%L_RchA@F7J^6AM{gFM+M7MOSKOPu ztXH`F#C^w(VO);r;56Hd1-i|6n#b*T>ceqoYd9adu&Oc+x`?PF5k{oi7$_HEV@K2z zymA4)N+`DI{|3bN<-4D@&N)YxIVoqR5q@8N=Kc5COtz?XZfomYb%y==nU^drYn>b!5Ctr?PZ$sZJGC4(Lx<*GmYK3@9};69v2?xCz*86!x1fq z9-^Oe{|eU+0lSwM-%%oRlZiDYBcsgabpN8BFSM>vThx{{TLd#395z2-=dkJ; zUPumj_0A`QOXa%S$dG#HKaV)PHrXJUqTZlMEURp*D&K#c?PX)`>TojQ>yzh(U5ggE z+}3v2ww-mQmrPrgHX82`E)7LZ#9*S)OrYMVHZ2*%Ix2 z-f6n^R()lg_{@W9puD-%bs!$vZY>)VYBn{#u=iUtgZ1U*4oibOw!C4kr;~&cIo+d? zul5rmlh}%uY=)i|^mJ>IyR&mweFZIu_7x~{W-C@zr5Q1cK^!y+OU~frPEZqXZ04#L0$|tY}D-NPT^J>z!>2 zLk;VdDSg7vTYSmLjc%I1lCVSm>+G7BEY6w@(XH|*G{ zSt~)o`-!M-5J4aV2N@%gOd!0FRFIBn|vW}Drt z-eWVGJOi3H9hf$!nudR8+Nmhg011-@!@NC3DA2QVhVsnWtq@_vVUsn7Lgo{)!})lf zHnxUxXX|Z}q6~&9Cutz=WXN1iJCP;&D8)pBPR#N=xfBTp2pd7-lFF5XXBc!;f}%nR z1Ca6zjC^CAo!5Zpsbiu(lgpE2dZaZQmR3Pl1Nu#$p&}HOO1KhD0hr0cDxiUoC%PDR zz2y;b(?1FUenyXAUfrc`fgeIi%?Q>s#3O>1`S`d7)!ab-ztxcdp zi(oNgfzqrSy+Qa-h~$kCFl>tV#u zT0yo>Sj8|%X=Z5eLYl_j3H$wFA3GlQ`NIC8!J3ZtWgQ*Tf>iySj%6K(I%;b=*zAUs z@a=8sq4nu=XBezD!_2jBtet7FSqQn zIF@m`p^X#2_+Y@)f(;Nc7NdxOl%T-$NRFKpzZ*Diiyv-9$byI~Y_VA7@fF$z4H|Dx5g*3@-my-zW{NS^+s=4LU=S;5ULvFYRU7E$thNp8*A(h3CX5s zqQ~5@=c+ot#VX*Ndavjg1ef4*RI#r4+51F`-Xy>#L9~eMYl6w8mrb%>5bZT?ljVD6 ztEdNv0*uOqR@o*xU>7I~%q&O{-x-#ny*Sp3}O21M?Rd(O98C84<|F{P!iYQi+&Y*nsLu5^Ihu$V)k)=GECZL$l#xZCMb z%xz~?w@;eYGR~3+M_}0ce(?P zl902^TxqD4$DQx-Ouql3YC)>Mv?0+^0b7X9MdejK@03cTh{%+U%}ktHqQF-^C6`xw zO``FD0}P~L0z_&PDjancf@m?ZGR0TUYN{lM-RfudpltLzU;yJ{R+GzQ*P|q&zCuzY zP@pguLKr`*Q*oFilK?v&y$CF+j-b`jSz!_lC6mW>m+2px;ND~mcq=BCmMTz-PuXY< zOa5z2j)rQ{(LTN*&~0=Yh5whf_W+NhI=_eaPTAgjUu|FYx>|LuiX}^yT;wh{;oiU% z_p&Z@Y`}m`FN5C~v?rUXJU2@qOB4H#QH{+~N5*}@@#Jm2%V%+B2D zcW!yhdC$u$WMz8Y@Q7Sm;An!nZCaUSSuojY3}>m>9D|bq{)XtxPsx!lnpMKJ$>l0=VE#0Q${LhbVQ?(avB~M5H(A<6VIs~Hmen|XCr57cj;wDg~y7PjIZR* zau8CZLCaPfRJMsKeNi~1P;*LSAkgMF^Q=afBekooDqXYIppZJ`(kv}2%`0n&8lEg` z4=C(+1ET{^|A%kM#z zXK7m|9Wcfc3=~;>1jcJfX#rU|Ppz!j;7pMyJxd%-z##=(QTY&BIZl!@lVSAb*KE2t zsC)F&?X{LH;g7;@GHGHi9oIy36f@s3g3 zRt#I$TBG}b-9;4UrV$&5Ij9vP)Y;Np6VLT3k-c!=P<<;z&y-p^C+_T2?PjhnuA3&) zZg_w4iMx50MTey|GHd-~Qvv|JOonzEpncEx-PZbcYu(#|MF)Yep>~>mY?NK)j*MDlofYp2?IA zdWFjqQYB^@4u{F4kONMK_E=?Xxs$LThk3UpU19S{Nzmr?e_{2qb`9sV2yanqH0d@5 zKGJp8aZ;((RpJ-E(g5Ey-P)#3bab(6W+bgQb9J5E$fs<9fcfNuxIvFo=h1Dgwcy+w zPuTU(HesXi2ZPm;XEiGog3BROSUdQwi5UwQ_J3+1m1G-UYluB@01JOMr|AGf`7CDG z0ig`8Ee4)kL6qbPGy~CNdwL7bt`jNhr{b~f<0Mqx@25+$lS$DH(Vxp|&m0t?&qQTw z7?k*9V*W>p{DU=}4O&dJVTtJY(^>`^lPL~F6O|IFf&j!DWck6E9}tqnNz(gl(B;1+U04#Mx7H@PM!jr;8}`p8X5AFzRgZ z`H&lBbVagpDgs^cAL}3%1zD$XOne$PNmH;OFF;TKQt?TS2u1Xly;A5E%X>i&LS8)c z94WDnS|omqYiN=XeK3B}x+|c@HmfZ(WQ<~YG9AvJ!q|jbd#I*5WUrl&T>ys=H|eYa z=2P;fwY|sZguD`qxdX)M>uI;{{E0Cl55B`!K{}wLHeN|4VH*YnBfJf$tm5E77<2U`gq>@HG1qNC7Hcyb!M;d687pf$B(PUZ=T|xM7)L(EmRVw z;~E{-q~ZvOOr2pdE3KGuy*wmJ%9P@R0*A2yuAhIFS3E2{e{lXEPa&La>y?-W>-8zjMwKGjQ$BzcAdCp)p^-It?U!LP5Hxpchm^Keq$?$57$5a!Z+()BJRD{ z6WgCQN}23z-^iC&TytVqsnMs6p-*RQ(ixw2F8vzfP=&GB|8F?{vwhrLatNCSGk0hY z#-0-r+MT6XGIxqGf<)4vq(!0^mfU%UhXXyCkz}3fmG;0s&`8l>X!W^JfDuz9HUo@{ zuuFqpp>Uv)!psk76{RqQDF$&!v^n_ECT`}V@{zZoqC)oA7_w~`M~N|5Q|_k zJ;Up>vyh*=Kjn%>HQJW}(v6${w!9Z%lq8ZlF>@K=Ek<&|IT4DB~B~Y_O;v9%9bdID;FI$4}a;O}@l!+Yy zZ67)fU;`NEa8WOT7DH7N_&*q17&?q>qwQXMcFgOOnF<0N*-^sEWbzzvC)kr_vv+i5 zgPm2{O*$B>IAd@{>+WUK><(pc@%$Y%QkK)@5Tn}4^Ln|tOsDsh=f>O`Mru?jc?N+S zjv9?oZ;e0J6*s%IG6n*@)S#6c137i!nnDgDIU_YINmjH(${tUCloc<{sdVK)q-C~s z^SX%F!SQCb+A?8SAq-ab;ILesL&}?2F1w-0Zdb;3_7dq1y_J`mAZv20%2Kk(?Wvhm z?BgJojYahs`X@A7)HA9Qm5P}EkW30FIDr{C1ON{u z1g5dIMr=}b5GjQLE~kiOEsekhAqGW;iWew{c8QDP()f-j!!>b}0<_?aiq6~yI>*3B zi`CdXW~Cg76+JS8SL=N!|F26HjVUaAW#N(;&=GruQ@h?1{-Ra%60++(*a{-;SN={& z3m*yJzP9zU)P6F#y&<2IYIRcSWv>_H=QF%ksji&bymFkwB+s?s!OWBD?KvFpwAYaF z6HB9tl5(fq9jdFlXQI1E?Q^gHxncuVOg#lH7*|HYd$Tnnm)HD6gV_v+Ekb4 zp_-m+TC}!*?8^M?Y`$XK{JN&qk1Sq6xYYg&+mlym)o2Awb#46$jTWSN#;OI(jOptu zaCbaIeUAorw`cR3Q9bDuE~l}?)pf9WSllS}RTN5{AmKP8TP%l##64O+ z<9w~)>KD$L^#-v&PKLdn&JjL-V;0%hPd@a%E}(nDen@49b&%5#O-QsX6;-7Ym_{)3 zVl37&u%3X?ma&!7b)K&CFgV2vcWds-QvlU}1h5qyxV^(mlpUfHjzhVqKa?A?iY8<~>_=ad! zk8dO`rvOwQj>Y9oP2*Ot9wKK_hBC~WVtf!r`yU%(p%oD8e+cg4QUi%h2a{}O5}EG* zZ-HLS&Y#FkWd<|*0G}o#4taLmE^k0-iGxUlg8Xl6I@jpH*%~?tx@JuRJn#pu1 z@%_I=rNM%Y&`YFTCG|8jY9=GAaO%H4EqhwG9gJlaZKg1oi{db>rau>VdE^b)^5%>b8}?cL9itw!Y(Bor%WpI?%Pj4J{j!bwjl?n=A z?##%PqWmuA8zS)5vCxk(#bC(9jFU0xQk5C=7R7TRzMFn&JpLe}gI6mL{C!MbWW0*I zJeV8RWO=t%FK{h(m362pOLR55=AN7W`u2&T{v&qlpQUo)8&gl^+xyG^_=H+E&E8{g zDtj>Tm&AiGOuNYD{?mSBc+fDm!jX{TQ=#IZQaQll|>^G`1^D^SV zM+ZBRqk?)b(96%pKAv6kG#;Gx_9RUJOrL=Ch#REmXQRXa?RfD@|1DZPOH<>K-+Z~L-ZeSdCe_=8y zv$DFgjbD+f$Xn5p?QtF#T$_pgT|@$@QGPJGo8D>TeAt8fg6onA*w0M>p@iDdM_^a=-IIAa==ijmLcDs$P+!j}iuEj;;q_SK-hF(6t&u*(3 zU!LE)pqCz!$h##W9aWv*rYjeIUm+JxEFjgC8ezyBN-_G-vS}?09R$E(jR6BMU5U^@ z(V0P0B}3^eADjeW+@$S6T2jX+!gXXQh=c{DMBthD%*Muwk`k2(;0!J{>|O2$aekt_pC0cNlWBQj*NqU$H3%h)ui z?qoV$6o>@NL$D;;M02ATJ{}%ng;dfcXd{fw1p6fDH854f8 zL_5c+rAD;odO-?4m`z)jE@0QsIP#m%s{3yxi%G|qJ9mC592Bk*4$?J5vvrf&4==v> zL*Z%RPT^^~#-wiB-EW#fR>F=Qt#Nm25b;_CbGzR|l<+O7jV3LT3y%tNHaS?@`}o41 zF$uNZFw7Y~77Aa>jb2bAph2cqyb2hF{`0@kc^4I@JroH*5@Ck{3%HA7J ze{=QfTZrXPG(~C3e0zG=<=@}#yeD$(it9e|@}t3Eyl(l}7SBEY4FhdhBIcb^!*gCl znFlPvfq4vU4akQLkM!yPH0F@Xp4CK5WGsrIY#-Z~%66Yny0cS6LL^vZ{#CoPf547v zDOQeSMJf?e5Ldtea!LXg_#yu@^rU^*gZ%^VuaIC)(1`K^c$#TLNtk$0pons6AR0!$ zLUWQKxeJ{spst%xMbvmTKy*u_|1@&<2(Jsb3$Ne98JRk3nUx!DJ=x2tx%A513Tb^+ z6{A$>`g952ZR_y#^#BMQ;Q?NEWr8Kwqc!wGt6zh&EFKrvp{{ zN~{S=Y!iu^0Jos91XK~^De&WAO?3BQ!NF<=uyq~mg=ar(~#oOa0#k@s$PSzc6DGpZY zT%MiJKfg1}p{soS^vIIw;22}*cuMOjV++=yo`T|dD%z@Ov!(S!t0^oRsA=_x^+YR- zRun2H5=~%|fM4gQs|vMD>7n5f8#?tsN@5RaH1W^l8V#@Kb6(2f^@31PSCF5~CtaD} zHvqx#ExV!o0Lk}Jze|zj2?JMi!xC>^ZcUbx|8oD`UrHT5QaV&bC3|pDTvIB|$&v2% z6%>eP4*a&})c8hn-$b+WaF^U1-Y9%4?aZpl@s?;DwsrU3yUt6`1&HKhr(r4L3qt&ZY~Ue$d;q9YOJv}hM+5p1Omb%T%HEakh-=S^t}!cIW|NCt zvYY;N*Q~sC1sQXeEuA^!svEU*$tdANv&&^(v#x9Tve5*SsoPZk-nva@m)o@7>0Un? z!Atj^ZD6Nk^lh>fKMh(sMon0&1|FKqIv6qslh=z6Ed%72Dy!IIOJsI&k(zNe{r5j` zk_^X6`ZxFWKTWP6!%seNfB&|pQNmWNqVSmX-rpQQ`2bN0Cje~8WfmX!`rCUhuDV6| z?tzm(+(*>4Rl?Uf)zvuzW2UIDP+k<|WI}{Ib%x>RC*r31(n%p}+BT+-9GkW+IrRJX zl4DHYwrN6EI=PMW4E<6fuero2mvA4UMJq5i)7)epXyn;=e>z3@9f-LGcf5hMl*Uci zj^i)l8w{96&a4mrQ~GllC9!c~%TH#{M$B;EW?N3ttH6-F_R*bkE z%xs+9eK>1JJlEyUi3|T4SYbBZx6y2}B_?h-TH3hruKPE(H$8SVQM-|~4Xr_@In|BW zVgnhInnHim#YFuiJF;qqG`&6hB@?p%o1y+ku}Y5rxPFzA>{ANaiBNe-q$cmhZ(g6f}5CD+Sf>5JC1{YNhE(3F0!pqbX3(RwM@_N|c zFzw=ol!l+B7sM0Mdy|AsMx{HQl(76 z$#hO*p?1?0eXP0O(<)bIWm(nM?>D&fvK;|!P?al}G1;T~4{9s&3~cWA(L?15m&fK{ z)~>Hj3O^K`+eU6-gO#NfAS4*o;1-7UNR|0&(@~!?n_WwQKqAZxwyrJL|JM&?c06U%ORPS!-dO@oAf`H*?OVR=v)~F4S5z zN+5)YCd&}E8gy1RrguKlTO10oX1m^K%4>6G=~)DM_>yi%EXJsGuk#kUP6`2@0mFH& z*Y7NFja4Y}-Gp?I88a-Qs4d@6Y3k4^;uG$8HkVZ>6{d2Ts(+j_*H>Op!RM>kkox{2 z;Rsw5Iu&f8xr|1}tTY4tlHM>@EiDGFo?bbl;~Fu({1Z6Pa>+DgRgwURk+FuLorv&p zv=R76sC6XM%S1>W=qad%1G_wM3Sh6nDM0zsc0|E!6pSFE;zY!kd0?&wr8l1tn`~l0 zKjN<7P2T10Tav&7>10G6STwUFdt$Ckoo6!J;)Qlku~Vxs*jOESa`jr1$`w?}mAukM zx|OzkuRpal^rsm`;TczAm!Ag(3+p`9y^Z2s;Xjy+&E`xnc2|LnIxpPt&XsPg6uUf-7ft7w~JT& zfw+4o-?d@ch@?j;51V6l_vA4*Mm!^38vC%}t2Q0LXa*LS0U5%JS+ZNQ2IGMa4z4Ku z1XMXlM4({XWT3mXmejMX4KfvQpFUQG=p6zh1P(#hx0TaeK{z8y&FKjo3kEhe;iDcE zfcF9NrmRd+z#75I#zyOzI${$C4z8egkGJ98@%p80)mt99&dA=tEGF*_>L9oaR=CWYsR-P*G_o6S+z$z#(P~a{(6#ymX0~h z+zw|!lNvkPaUB%ja-FB?(Fv**Bgd~HFZW*OO%_;My4Q{$zEnTq*A43HRN?uNFg=hl z(mS>Jp)!boM~Ci|rMz6Z8QFl};xW z+VC;%K?kAOOY{Zm7ozQ4hK7!RFs`B9d6c9mQ-&9ZPv@IOdauhoi;5;SiiX_ zWHK;M)?aq=IP-A2oqKccL$m)pH~*+mz|;ySZZ3~)-BsluH|nc;xl+!#{ao9QcRBNG&Y@@wdtJbh8!GYyZ)Aw zzW!rQ{z;Ot{z+k{O^#r%wLyJLxwd z^XJOJx5eNf7|~5`*>4^z8HR_EXsbFq6_{Qh=&*U_cl%k zwM=iU2Q-PXbe70@^dA>Q@*j7JJAQ6|4-hly6bGu#Guf4I3#=NJmMq+jRMnDLMGTM8 z6FZqoQTr`j5OI0-s_>JgLyrB~1ISJSSW>S5iIM8Fd`kT8G)kmiG74kB5_qw%knBSo z@oyzBOWuPdb_$`9K7a)3Pq%~9W`D>*IUiM@0O!f@)4ww;cr6QD5gESP1B%!6;MicH!*-Y@P77+wB?U{(vm~ z0JN-bp*I7tds}$B|2Yv_ml9GUw621L=mG8zKA?tYOyL8Y$OA*gF20al| zE!BG;U}OpgXwsPQkfX7WgsEmUAWlI(Q%5G%c5JA@ zvU7cnaQC>*j%_XCf?T?a7#|JPH|92fQQw$ue`M)hN67HnNs*fMopiZ@%w_PtA1jc&hb32b{w#B}vxOro)&kk4QYrL#`LlzCOWDbu%nMm`flvZfG|KV$j$ z-FNRE&whE;GvWRhXt!eH;b*Q&eRI=I-{8}UJ`2g|xFh(1d6<`@`9woMA|kP%%i+S5 zK1F0WhSZW`Qt4EZc`V(MZsAXaeCedS(Vb5ELclEaS@QrmjTB5H)0hpPEE5EQNlSt? z21ITlh|EwEWF@giEs@COAQx(+_op}^iJXqHgKDa5asPlpLpVlbgj@6s?#6S zYL9`li=n^zx)AA&B=wJxE3xcTD*N=wh_LiAeKO-y5#$mc`A=Xw@xj(!AZfrCg?F2! z%%%|*5?(3e55O%Be>hdJWqz|Y>@NYc35+My#uxNsQ%rG0cZ281FRKs`l-S?BR7$Qh z-dVrO@Xl=E(CcZ!zjWz~bC~pbD^8Y^*o%J<{*O3DPI*%37d~UUCSH7g{XNT97LQ$? zYDwS3-Mc~fzXjb-ryofsKuafo;|MWb{O%5q#oGdD3s3+{Gu!C$mzxRqo(e`nj_uaPooI_7+V3f_n$&KXNEvegYzVOAmOI2;f z%Txl_vJgS~zx%NlOt`B5A1jvKoKv>6a#W5%cB9YQE}Ng#F-&RRe*ZmNFS`A= zffzY&T}2~NcH;d+T}$M2l)?WJg&c4iEkTi+0V>Z^9RNlas=*@uckms`6J|+}MwkVl zE*N-dTsD!&Rw6C9;`uACcs{*j*L;_2erJQvcU_02%bc~Ubv}FK!A+YVd~oxo2X_nq zIxLJ(Kec`BV~&r=1*4{GtdwIw_4r|;;(YY{D^5OnWS2C@x2K~s>682AHEryBn;yjZ z4?M8>3E?~8cUvB~Zsk;R?@dJv+4DFYRsX`H578avc%LRj22up7SnVaEaV$dP+@Mb2 zq4CIrhOkSI?M#gOW_%ee~$=YyOXUUtta- z@3Q5iMlTbdyK_ZVk=cxE)U2`ldFI@H5%zHXu&HYiR*LHY$S&l*@|^Pwk?pbS!QI|E{fuLT9l>Vn41g5I@&W>ri?f&GFo z2Mvui(Ha1iNH}VO&gaA?EjuED!@2g}wMSvNZckt@^ zbBcT{_aqY7%7ddWm!=M@i%rJXYvdmtmEHZ<%5=2wE#Ya?`{vOxdvUPHUc~Hq)u^&+ zVxd}piz@JUQn_L0+rqRxfv#aS1_Qa)SFTn?$r9m8tB0)&yDHj4Q)OzVO1NO^@T(S# zL(0QB&KiTUe&dAnr^5A~AR?Oh+sP8L@Ls*u%05spT>iM4%=WoC#%#@Vlnc)Y*M>(1 z%>k=bX=I0!#ZUiZtZ{s3P3^i(18oF$Y@`P&pb7q@ zvO&%Rinll&IO>Nvk;2BP83HY%nxOt@^RQ6}1388?OVhV+Wsgs0?25ERVP|+&EE0^` z9;D*zmtfJOHEx^cUSPX*CM%hFt8IaM+BUL@o;Mw^gE?}ONuG9OHsL}9goCExOl6k9 zcBF9hZPPbzo-Rz=Cbo417-4=XMb6q`w5^}k)dn8)rye-Nvy7(}Gh*3HgK@Lu%)3+n z3oI%!*v)_P(IJ#lCcqSZfges}9(VST_vZX!8Iyu_9WRljFOkeF&%DGjD#;zAuOeiL z)kL;tDxm*yaTD@D7Ic(j;`>P;SyBFLyqBneU^?`pM<(c}IK9OD2nZ!U*T9lL1{g;P zQHC5spChCsLWwhCBD+2mm(S2;iqgWTOcCcZWEYknl3hS(8+Jq-!Js3u!vGXFx%%`X z1GZyXL7}pT{gaax|rmpxnPf6C{R0 zTib|2S=j5#k%yaW)!9?dat0A=*X;8^v`SQ&KeDAp3DgrAcLuh@xA;PZBR zg`=d<4p03_tdo51mGomi;T*5W zBR30JjLniAk}JV|c8{b_@+!PN3ED$3pu<0a5gVJRMq0Nr)(md5j3YKqt%Cs={mM&V zt(QUujwTQ>MqnxgM4FbD0^omUM`j%X;ov|kMM@GAVteUvCTv*~XK!V8i8e-rGO=_w zoddypK}UkYEyU(oO|oKfA7hGR%Au_RIi%5mMX8P!NNn^DF#hO?MyUXe5YZ^CBuAyz zAaoLmQ4tEOMf%#4pPP{;jWHM)?Ifp@kt=LAg`7AKI~*z{W3ezw)pVPUQEMy~jk*Wh zTB*WpR!FsEi}0SsqLk?wqmj|el+#Tnl^ko>maAr>%xuC2=oZxEl4o@~9aI9XR%h1D z(rWcqJyENP-l}^|YjhfkRH_Dq0Csag*5}@Ne*Zr;M)&xhr-|1PuRQ|g&-ss8aV zHQ)cOM)PgI#`o!W$Vm6yr&5JrWzH40eATw{n%~Tk@(&l_f~OwphL< zCqVa}HZY$G%oj?XR`mrDRG?uJ%%7|Dde!ITbG2SC$p5Y}8a2z$XEq>ISjNkZ>1)ov zgE4B@ZHNjMe(1B_iMB^&AdI3IXEcx*Chj7 zB70ZAgoM~V!p$$OCVPKo`w;0RGhZ4!{v}p2VcgvrJjUJQ`tKgHL2`y{a5*?8l{pSS zVw`E_9ZV7@{DRZbcUGeBT!b+Rqb4RXao8LXXKXTqpXO606l_ghxNxwE%@d7RW#3 z3UEXjf7lI6*9ic+0Pae`^tPR>QL2SMsL3oEYnGOP$E&ou>S`~7xQVo(=)(GU4qQK3 zr?C@W$tk9f*D9E@M03cl(WrbDVpAIxG#Fl;5L{*BOWVj61YAL>qYM>lvf-j@87tpW z>ZJvtU!o^7M2?;aC>6H~*pz?_@A_f43oiSGu}SQ@oNif|jUiqc=UP!8 z=>_F32*pk3PFPZ*vcpA%CN-p;Wxmn4U-oTG7E0BO+K-oF$b+b15-I&yI4^>TevPA| z*`O%f1ySQ{Y5ZqvdO^$W`%*F%#Lt9hQ~Pdj5nk<{#WM`}1&EZna`}}EkJxL5;b(RK zf@)(^i_(k8hi0cS63J zs|Oki5QJx-ntFo~>>H%pY^E}xqM$b5MkoYvA@~kW?9WyLsNftU=J84%FU=uI1-qz& z1e^PwZW2CepU0^YenL2@YGH@)Zu1jQ{eo)vbm78VWF|Q$<=}w5W#K|%AkIaL_Q^~f zi|eTOp-#ROKBVnH#1e_)P3HY8s08{;dZ}0gP%Po!hLQr;BV~334uMWAl-Bd--#Lr4 zPP?Qdr)gAseNmTiQDw`*c6`PC1Bk z|3&YFAt(-S5J%N3gxme>D{!fPNgp+SjP6|uarzfLH$e)iK6*+D$1m-L*m8QjAGFH^ z!4#H29_}tYGe9>0-gpLnEkFNVf|O((Fhz0>mN{pkLJV{|+nAL!+nm@Nc5q(1;$0 zM^XlI4futW(0Z&+Dmx`;z%>=+F$`--08{c%b07caoO2rfcx&P4E_cI%*(-V`x`@j; zY3;gE`&aF}^~k{oo~)8NnyMR&zN(UV^8aqFW1e}|cCqmFEzbNRLwxxa?}InfKOla<+Aw3N@!C?SkfJo8^8o_ zI-fw6;_#rs8M>Q+4?{*lf6ip$gGD1_2)F*3nIb$OJoLNYv87o1MtGo;=rMVHc^Mg* zzJq)5cfvzNlfHv34fMZg$+Pso7znVXSU~|SIp>ji?}fH(>3^H-I{4m&4?q0ywD-t7 z&`*A`g)pImWS4M#Zu;G9Tl!s%h6&iR8RREo0+8h2rQ~oF4^Cf%UjrF-Vx~<}RSZ*I zE(2MIVn4)+wu!iV_&KCBJ7WozHtAvFJ})oAL?hICnfWHzmC33lUvkOkcX2xQWGg~> z@BaL}sp{L$pV2vjL?679*l!~z{`9L2m(0`GtD8C#ot^Q#F%1oEW0p0nz3W%&ub4Tl zv7>Bsdu8sZhQ_w8CH3p>X8H^MuC2*;raREK{(9zN$DD5BT3H_a=?1Nud0!pn*^pUZupA z00^Tj5tSm3ES7<&%$QX!=9c9_0)sU3X6E^ShyF8t!uA7Cb=}?d)XA@&a=V}EW*W(c zOu_RclPZ>-{Zx1NQ$Vf%1X5Uw9d3Fmy}|)ud-_SSfJENUoGgFpK<0AjCt1h|evE%Z z;>VXe18_1@Fu#N{v}Dy$lYcahh+FBgOa3nO3B5w!-!FNJjDG1I;T;eXh*@fdciwr4 zjDCtq-A8v`@^_NF?=`aGOWz0iLhnbEgMcy@d_;QkKk$7ipcWA}i23ZFsLEMr>E*^m zNiljMCxS`D0CtQRk`;cwZFtH2PC&AwZk-Esg4y{wTFw0ENVACmqI*lPKgx2}QEvCVye^Z; z7cdw4Cy!~hT58(tTvkqTwpOE+DP#Ggikowbz?sCpE1Y-gkZ|y`3z*$+64-JWdFkBM z*Ij#OYe`h^Gw4gVEuZc6IEwvFsdR;*#pxI9Sj47n+C_64wj)Xcy{3t;pT-^ zp1g)@-ZnI(|2o#{s+>8q(rfAp^75*M!p%o28Vqk=(~!6B6Rq}RU(=z=?xM1(WkubU zhnjpJYqg*F8xK`aD#}}&S2U^mP@|C3P(crm1S=Pk9!@{A(q$bR3U-;imDb8&gx;j0 z;T429XfFCd_&s7}e*eKm7kxl#5W7Zh_&9LS%OJK_PssaKWeGE7bk2mF(NjBbZ8CnPRDNY_y0vqvSTwEU)@I|E zO68Zv=36_MNF$?~kh8xcr^0{F%jpBc+=KqI8uz?&m(F%qRQMx)?AV_(LB-(KX^Hq` zc*ZkN%k29pbUyV*rbJ(s3^CW0uoy3ptf1(|FpOf9QHdS+wI<@yAcjwBu(VmQ6c=8m z6b?EH45R20DOnSoM;S*<`PnH@ znU-mbX3h<@cXoy%caE$qshO~gkdgW$q6rpc|}mM zfW4fn2@zHg?ak<`h$MyQiiQ`Lv=lS5hhmgJXsl0?YsZi4E)8$=c$QBnnXh9F&2c*$ zo}1qk)E{n2YI&bMPp&&}lpO)v=eQDNTY=41B&;b>thIE#&z#?7w)+at2l>OB;qvN; zop}qqD&bJPd~C*5L)|+2Gh=x(#-YO)hiLs$8|GplsgTtp7@+wT*fLZpU7J+vUEW}w38eItqmZNf`rIh|C45G*4gvtuv2ThuDXc4 z_`F(~o4xr#n>-TrA-kYAe{7|2#8J7Z{f-(gd;Ga>&c1)lWrqs;pUj`koHIS(pOU_D z^8LS$#%g*dRg)QD^LVnOJea-VNlv(W8>d}4abi{VBvc^g{(<%>=A~8;kSobx+W^dd z&`(FbE}}m!n<$swWH;yBxQ58)FmSG&`4)_se1oQtH6u;oagR#y4*UV% z$RlzEQQ?Bxx~KCmCdnIwnIbM2*apCK_K0`0o;qZC^gB zrnD~peLitnc+7HIOQfYaR@=5i$KjSiQ`sTL}ZLR4Z5zHCAtN>{bMsjN!6PEI-ku9@ESMg(;v}J0-^JMuS7w0b5 znX@cD7-?=8W)2tRaCYfAMyrX35sT!5f6!STjzv9;6_lBvK768%HD@<*NHttQXnIdk z?y7^F`IN{L?uU%rCUVHqK1zo@akLs-EoXkZnBZUz#7i_Tpn#3a5+TYeLYd_#dc{U1 z(h#`k#S*5uBs;gUF*loal*U~7`L0;$=f#;4=AN=BEs2&1-}$2Zg%57C1^v#VI#-t> zJzRMAY0~-3eWdazv*eQV6Mxve+y^*iS4kA#R|fn- zu&3e;qG3vLMn`=l-=NG{P!dW@q#yXDaL&2329-vr{@Uo%C`>lC=j2i0{4mP|q$wR{ zgn!v%CnO%Y0uBjp+Bjf5$TTk4KkHU)cFe@~QB_pz^SCGfJ*?JQKf0@!=#AcW;GQ7N zoi;maX8SBB zw0v&=GnX)%`~NoZ44HYcOdJ!a{DCi*(Pc}iWH`|I(H=k{g-Q{v<}ma?m=r%QWf!J} z8H0%E83q-u1cZqn?7c^L{#>B=FH!3BvbI-O&wt|5F=H-$V*bp7Etk-A)B;d}v8Z?J zB4WCFFCq`qCkDZL$3!R|>lU7)++0^}S32aEDj4OA`8fRuuF~3gDH32)EFsOzy=Bgl zbuV3)$8@b(Z6hmq6?u zdXVtQzxf91Fn&M9rzk%aFfXVsQ6;NGq(q#$=}<**)WJ{ZWib+A-;a)nqTVnf6_5cn z4t)>}4PzEXog;w~#$Z1ki{Lk<(qh}xw}&MofCb9!BjRB5?P=tIsR5L1!lWmvIA=!w|rhUdd}Y5$nj z@Zd2XuQLzdk4WtBzY3^hY>D1*R4J-QL@7{T4h1Gs&|F;1!b2qrcn-4Ri{yl`y@Yd0 z*^pzgBXmX3x!4)Jdgi9aQKc`rW~P=gL~>^9sMO=stc>u zp1E|DPH z1|+>G%%}<4&@;lb7~m`>2842kdFnKRX;3oaB^xJ=tNn^$zN#HJY2(KGHZfn-jm65O zv2|Y|sE=$MDk`P#+f=niuhp-qLb%_?NizMK%8mDJtX!j)P1?vF8!9)6SVmEIG{8bp z2aE9}WF=dHrxwk=qJ>vZKCOv%Yh zo)At7f2FjnBAx2PwiC{psVaa#f^a&N&m&A4FlmWM^^S9%ZFIKlfmIcYLA zle~cwab?#R3c6H?C69~O?j5+5(Ku}I{&=DcPF1X14!C@Ld06RKKXaA|hyZ9WLm+u1 zYU9HRsSL0LRFN&gn`8*8j+(;EIWTVc&J}Lr|J??}oqO%vFY7Pd{Y6}OUwA+M#qNvh zzMOllm$Y2A^8D}4UwIj6VU8R*BHYKNenP=LIsAo_?BrvlN&QmChJE`sbiAY%o;Ws{ zJ^8}+nDF|rXml9KiJ>Kc>Yu7U7@IPDQ1zHiY1R;GVYn5!>kiY=A@hYZ6D5!jXKm9F zjgDUbX@8jR^5dZ3&mH;m`~C4Uo)bA9>NwaLyc_};espuXotf1sT)&St6D)?TGRdDT zPCw<2Figb7ochV#|KTi>N(;hPVQX42l#brCNgD1 zvWp5s5{;f&-4$_d+2V?%|A$k^r5fdYhRjiF3}qc7I;+Crs?HH`C`>$a*KxQcE=)hS z=pzx^E@g3}=pCRZL~ZT#1ON~Xut5lx&eUcc*{uON08|U3d`6q&Pp<)B?F42E1NRRy zJM%GAHH^}96C?Sr?6UqhDb*1YaDnW1aE>TLszQtvMYxNSj>v)_3QAO@Im7ql1+=foE6>vkVT=e zML-E2DW}+g0qxjgNR(UI1)Cq(jDO_2P2H0>Z=T$}>HXxWlfN2Uojavei`8=j+%dd!-BCV*E({dFq=jrOQYQES*I7_41O!tkCj<#5M2QaG8ryvdqK7=gu9TZr8csspKTHAy4i_ol!q6 z<&!|m64QwpObHr;Z$XeC@yn?D)x@T*VtiL!l|DIvw7dzSd8F_dSYno+%Z(I9k_YJj zv|M0aC;$HDo7~;~Dq$pkFC_j<8=icM@OSfRWQ@v%95YffhmKT`I%QJSENWZSf?);l z!poo|oEX;_!8Rr%>f(a^n0^QrUm-z17`_DZ-=T;mxdE-G&1&Sa35xRsy&xnq5mJN0 zK!wb!qvfZ98jkQ>%^p&%D|XmjyV>G3!aoc_lNykvoS^23*1T~x2U{uIUmA95?=I9L z*Jlw~^}!~T5!peeSTkrd+Vf# zRppW?oSGxi$X>^L&`5?#8hsNQ=(QGe0tSE&-C`W$&(dQ$TdnBh+>We?VZv27Gv#S`x zZY2OyBt_P2SMC;6st1M5LWQvTL6yp|2gJf0<7BwUm3uT-o3rxrvdkMw@MpJCqwJhC zsZ*&j?k0Nqf?0WWb$PpuYUTD_yS6LUDAXx#+PCi}1wHVwKmF-3dLTu?Q9A&nV6oSo z@k-UhPdpYrmPL~F=$s-#*jh4}6K)VM{Y!r-HzX`A;+Gyg=WM=6{lGoW=DZ`R5fm3e zUJ!qT%nyqa{2SQ%$wGES$NUcb69&&849DX!S%_!9&{1|m^t$s{#zpXjSU!ThAZ`em zpMkBPEKH+)mURqx;F(k6X~?W8PDi4?A>1LBv62%KdYqIl(To)^r+k4rkHRibtuKrp z+A+}kFuI9BP}DF9=o3}v!~q124L~~#QGm2Yp#;K80}BN8x{HW(2&G>btrLYno+H9@ z35Jh4PFn1&B4`XL_{g>k=KW^r+_+su5K}zr`hwB#F1xI|d$y4oOH{&}z~X<*=X;n5 zfz3sWma*%`tr432PLpt_&gu7BDvm9EuOiIYq6=p1X{ncj7rFYuMO!}UiUBs)BTs*) z1o`Z5JrSoV`*u2pM+f-Tl<-D7;B|slWs{gddl4xwg@uU$RM2QL(h>#HgZf$A;YVLG zl0$wIQT7Opo4-^W&Ft;P9i#4#aYx_(jN}G|+H66>&7adGyzLmnne=3yCCIN}dz^55 z%q53NnLa4o_=l&E4%Pk62f{t%3gK|tBrIdDXQSypVUnQ#)ZYSK&Dbq7n*`JDF?m)27D?iLX(kMOA%T@ zfiG0Ffqf_p6^<=Uz=~9Qb}N=Wa;dfq39?xAiLF(tr0^|+?3lV+4bD}=FZvDP!*|ZV zleuo#==FO+)Lay)iB4#-+S-?Fy@|QJIIp+>9J{11)nNVZ*TGkL-3_oO9~YaG97`l8 z*{J|YePRu82%1q-h4#rUt33k4Y)Nlow(4E0rq3O23t7Bbe$|x$vS#+eW=Ftc^%IBu z#`5&R9&0=M)JgGTyx2DFr|X7BOXMQjAPG%>5=Me~z-OXC8J2#zo#gSvuEokmLq13>Ks;moLJ;z3yyYjIm? zg0+BGvYJ>*qa~#P6T$wBIE>PGX-G8vh!q|}3>8NeL~*NpU@c$^L@~tDK^DVraY>x& z?bc$O#cGkc2@KvrDU$WVlNFHR@nrPQ)cb{S2>N5OmC_7h^vhB+a6Q4DaVe_5(lU!# zw4+1&r_Wz*i%LbWS3HQz&{u#fCNW?^PSAZ(dZ*GecfnPx^t#xIhor9}Uia*q{^*2( zor4b~3k1>VM86!(%Z+PMc6V6DU}B5XdIGL@P}a@}*xZcN_4A&%c+8lK56{0owQc&0 z+cr&|vU&5AsnfR3n7%D_{rtmp-xKq$XXeNZGSNw8Bf?kHe2W-ikXB#O|-cKR7uZ5(TT(GVQ1;IKD*BA^?N;j z@0}ix!ATR1xOEQ{YHbdiSq;J%Z=uHSbC@*_zsJ8-uF;r^io9-jp=FLI67~A6TB9W( zn-kh*Q+vJO4pAtKQNPEeH5!aIo6)4#n%(}Fki*jDi6SSb_5z#QlcAS z@#%&1i23tyME{#Ci!?+UvreNCDv`Mgsb5hG8a^*#cNk6fiCMnPiX-Hp+aBztPl4Oh zyHn6D*0IHn$3DB=tiNbPC^UlpZ*J0?V|6jJJs@Q`rA}qn+Rc8tYS7vYi29IOYhBsd zuG*5FF<(~HWYziASy7zd5#-z)PSo2q#2&G$?fT0GFSTxP_hrrNTFu!t*=E!SBi0Cg z2=SRH$2YzncHm7u96A(;d=Z&(Qi-??nsK-hIGvf`4q1jA~oib#XKO7tb8)6w1$r@c;e$bb_`&F~Ni2jzvZn2Fw$ zz~B)d_)khjggJGS~kwcJ`S$EEhn$FG)b)C?Be?Rg4{?f);@1;dk*(~!#;TB_6ue~koujG{(Beh zUbt{KVXkcLp4__g$fK)QtXTahxoGr)j=G9-8WhCenK&*7rYIphp6F!0FZDa$cKI}A zbC$PH6CR9|P9~in$MVcdqgHQm<%JWmV76W(Ra?!jyjZd}yEEKSQq&abG|$;JC;bSc zi%r_Ko|C*fHU5MMZZ-d!_K;<@%9@Wx|6OFrky`ijgBLxNotf;yC;P z19KdM9L-wjp>Ck8BG5)h!T0r&0%+sf$hTN2Lv zkjxKXirD2~To#O4g3+K1RK6xdDPT%wEeGp9$`BglwrgN{jB|EL-iaRh)`YmW(^uJ7uLBa*m(&$7XGI-Ke zN;nA09{>_C7UNiom=;}hVi~*+tXPQjh2p-!$Alh2G7T7~LDWZk#B@Y`_||eS0j5c8 z+}MXS8)x<*jNC9-9f5cm&Im-bpfa@rDJ#}aeD&mfrlGy%ww*gk?W`wa$f&eubjT!agn2CWzTsF$9FQLv-MyCyzdwe%0(XgSv}M>Fy@F$&>plh^`XnrC<3lF=|wT zxwE#mprEjD7ST?yA%cmit*xpe>+d> ze4^cc(iT%F0-o}GzhxHDd0~0Nw%;391a(%WY$gC>p7cuGwE}l#_6uJTU3%q&Du-Sv z1BNQ6(xHc+GOV2wta51Ju2zM;w9pK?-$vo<7hb5Tx!}@jjIK(9#}tXZhOa3(4AZCt zeR8mWs=yNvM86y>IS;5hz*qP;0}qHi0D~PqBaSeil!iUQlCV3>8lbEi7?siLw38X7Ay0^wp7>Q~U9X90Kmz9u zGh;-Yf!@kam`UQaU~ zKC^g{E;aY>7jX`w7r}f$FY=D2T_qmcXkvb7<8v^QFe+0lBwIdIEMQiJi?iI}QvaG9 zFIlAGEc-(x;`Yw!xJj5VRhrI|!-jRvUkNW&`eTdRs$1-4wL%XTJcV-aZoPtMmT%{l z$~8)|v|`{C&B}j2h3Jt^>K>w12|Y-kXd!bQUbiuM2zE$ z5%+bOo?z+mdio*1I#~xKh1Nl9@bD{9rvijuq<*AxPY@W|#D%3Lf z|LDW95-oJ%uc7PzKjz*$Fsdr;AD?r})J$)wlbIwl6Vlsc5+KPWKp=z?2qjWO?+|(s zVdyBJ6hQ>RtcW5iifb1!x@%WfU2)a5#9eiDS6yFsbs@=IzMtn#5`yBo@BZFDewoaj z+wVE&p7WfiejXa4W`Z0o=tf#%Y#8W@tEJz+IKR>U~HRPH7}){FA_g z2@RTRpp84qzJ|6Tbl~m%2s1O8`iyqZ5(?E!d*MNCf_fBIp0pN>Y$)^p^{g6c-qdT) z2G|`q!rdp`_EOQ1xd-;oeZW1skI7UsOBvE8XfB>qbJ|9n@GEyp#)N$*zuR$;iHTMl zMb6o*mJJixJe)xE3Q6_4>)`+&0VYGZT=+r_+-_y*&qQ=9TDu^?KY|vD9{9zI3DK(5 zME=Du$arMS#9PPZ2`ya}-Oqi0SJ|R6){pAu>P}GuxC!H>S(E&)JRvc zK(%pLIt!%_Ggh;J!P3mN(C&zQ%b!{2zgdp>O3i+p(=nue_40cDaryCg10&jdx17tO z(^oG`_H-m)1cDqwb`64b;Smyx)_@t0hzGhdMCC4<9`|!TD8jm$rK?L{m%e7ES5xX| zjVv*(Fl`#N^Ymjk_TQ;du2gC}db*#$3;ZWOD(u{Xf?=5$H@|z8nKTK#24ycWnW{7M zAKQD&^LZK7DvgHE{3S1zo_>f1NH&P+M;%Csfl8EPu7x`aIkw>Sb*g?XAd3zsX^HUS z;UC1y6~<^aDLl9k{x&4~;8i-HtfOnX;mQ^KYx5>mteILiZ%SkHXs&4RwL5E-R@LO( zM6u}hNxwS1`A=KMZudb^r4d&kLjbo*jB_XUZm7xw()$Npp75WZModdD;0bDHwr`R1 z_{sVCpn^HUU7WwBZ2nzSn$~Q2(Y)xssf8Q^yiQfaGpCL)?csqTYl$*OC+Z@HVq^XB zOye(GF$~=Qgsvvqt>JX}F)?~g{W!WMD}jH~8i`yrp|6CFShk_1l1@(nOjnF*SpCVK zPZ>c(Klp(l_zKcZz|T@YCZ0yA0EZ^D{lW`$b84Z^U^;j-tpQBvB00=t(w>;jRGNw zHbmPcyBkeUMyN*Dp&<=!4Z*9_kr2sB-A2w*DIcMAtDSr>qu8;Cw5OT*sv9K9fcGOK zSm!4y(a2K=dfsK5;!ihJii?WuI$xqIGc`8d;YdoW%gL@wbJ?B#*wjo{qOWdT^k9m- zk==Ptc1~SdlEaZs=lt{%`6zA(m=DT}5dFZ2(yka(5~#H%rX*T@>g=_aAidv5RVz4Y)D3sGFSTS2r^}yJIAKH`4lg%ntx|R z@g|#cj@ugfX#OhfWp`jJqBtUbHkZ4DSHKDHin0O4ELt|2GH9gHaP!L}3}X%RMu9^v zuS(%Jt&VKN;Q3N&Y~gBXg}t%bWVW+k1Gq)5L#s5@ZkEsLIw^XNABqBodZ8Z+V-=0W zNfK@`WLS{B9Hl>p2R#J6Cms(mA4-IIVD5qlOg);Cpn%vztqY4NIw=`LQ{iB&^7#Wa z7a&uV)>V||WdnY{zt5auLkdb=`8s!>hE*dQPt81kI ziO)fk1BII*_SGJx{lTuOLY^sHz={3|Pb?n%Yie4$M&R<(ilKI}PV{R%0}AWba;7QM zlhO+kSbd)<)y`7?fZ^f#8IR88g^8yYJUP*(>zlFUnxzNtoZYl6N1f{El@=@+k}>b# z?4Dj;?9= zS6nw@ob*rWHR+$@M%;ibXjl5MM&Dm&83`?45etEsp3Zfah6&wn{SbZWiSl#g2s8QF z!b4X)kx8BIv0a|9d#)&qO#jKn1JeLSU&g}PO{iQL9$?_n`%N@9{Doli;kV#$3Nk1^ z#U4_1qX>;tNcxH3ovQtK_!)Q;noSJxssaap?qI9Elad>s5bi2j#ytCs3 za>OCS+>#mBw~`ecHs)WC{zzU^cx+5Je#R3lToHj6;g(tCOO%@6wkpq&GX4R1 zbtJ>0R7-sa=3topyX?tUg83mJE@(3F#$*?KY=Y=`;PXg{F}hsA=r60uXOmHR?c0m~v#F!u!V#*&AI! zFCAz1AzPG%yv`L)O!?wt1!(?ra)UJ3BIHo!{9Yy?_5{>Guyf`FChX$Fc_I zzkl<0r)IOI1!D?xv z|1Xy@#d)U%ppGeWtaJ{l2B)wBCoHNdN?uM*O~xylSFjm1X(4SGMWdi;NKxSuf(5t$ z(yq)xWA3qIH}GW;dPcJn8YKu5f;{oiO;wizg-JCFwS~i3j<8^y&6ATjN8`%xe@W3ZTPIsDF&xo?<=iJvK1bU>vQqQpAR2|98e;? zywn>Lli7c4!^k9)D%NBa68o3AL)UnD;d+hQ!;L5&d5@<^J+vey>4Buo;w7UeC9Ww; z>UC`7uuab)c08w7zw+VUfg^7(8}2hqI@xh>QPckSg{{)#cJ`ZoB^^z5>Wnx}rQ)|t zm9Bv?Y4QiD9p9(jwKLujJIq}-HB>Ae=~c1k&Xe~rE;Db4B|o4OT`5J0Rv@-mt!atz zj@X>-1Cp1zVgT55j#C)|HMfmO@q}V#n`2Twx+XYdZTw(Y`5GfTH>Yk!#zc-pZW=AdnU&ctSGLmPRA#Yl%*st2 zE5@3|99PQ)1!p??$QLg?_qS8cq3YGk^9J=x+wtQaLmvIzOJ(X93s+Gg81?GDFTVN4 zi)CtqLG-vQfkdF``vU)J8+thXfiD0dYXo1A1iUiY;}P;M1b7IG9)w;9FLlWY2N_j$6R}D_C#tuFLyR zQg?8Y>?h+f4n;=rDT>*O1&SreUa?-W86MDk6bIlb(X6-=xcVo7u>QE>DaBdEvx-;o zHejCOiI7E?piCY_R(m?>8YV(eH+fkc1o9v@DE}J~P!EEwJy^lDDl0jm&=M6(WjI1} zhsug1OnxZaJWem}2`>S^DmBPMa~QOGSg}|L3CHQ+J#ajM_k+p-7#qsBCaS65;S<0J2iW7)(J59wVcB6%k{?6%EJ!OsS@Utz_$(y8; zY_=t%V?5*DFrIlzZ{ki!YtM2>w{6Pe9$-Sq>~eHS?^dvtrb=lv8>;ST64@AOhk#MC zHzd7!sHq55P!v@j9C-9X0WZ0+LTk2bC|f@z1F_*7DLz zruI=vvH$QnNO|>oNZOsqiluu5BhEgp6xpgOR(aQlPoGxv0hs4a`qNCWlU_c;dVlqi zTDma!WiF=mlT6^9KFbP?yQEJ)%wpTyIW&YF?FBzULCQyRsUJR;KJU0*`iv#~`OnpC z4l-gG(E_)Pgd|FRRmT4(%sYi_RPEM6;$3%-Z%5%{n>c_iJhrLhpPL>N-gq#SBPHg9 zDzo{9P0z5IZB?7kp52`GFuR8^%q3e+zbL)g1bTBFEEJU4yBB)6py1I-C^!=N&1nNd zCbKBK(G8K1;))gUZ+7rVPAR3Vw7t$6-x$fJPaG&+8+m@w#PTMtSUR>8IWwlE8>A1U z(8^i-@18xi?eGFN_%(Z7r8sxBlq5ZS&Db~Cl-F;l9Je^~taR<5acm>kyS*=)&e>K> zn6*kON8)>1LFFjt>#TO+!OahJ(gx)D`j_ncOO%}4G{JPx7gXF@3{UmqLN~)yN9>Bc zpC>`rSsX-oGVPMHLph6`su_njt$XR&Kiz!upPqdwyjDEi%D68N9r}`S(*JBYcVz9o z&$k{p(E9wnYv-(faNH~R-S=Ja_ctH>=)vYCYu{Y{=JESp5mvRUOUK`Q^Y~KX!uq*$ z+wUr^XJ)0&pP$0-5Nl^v=I{ zJj$bjzVt*|k!cGIjUTvd6KyVeA${ty&7gHGB<#Q1y14zTyV}$4`fA-A?XMQk9G1;8 zp5EWF&#>*jJebfrN6kWh2{r0A9OgK6uv*5?N2oX#x;mx`pR@Uo*GrC8yA6OX273VP`NcBT5$Qr0j?G(M{{P7piqRt*) zN=el73s(VL`SV{oUT6>g%o)xA9Yvu3PritOk*PmT7!2X&#aO|Vk=pG~2a{1WGXR_p zgE>l4UMm$H7b0r$wzikJ{oJv(mqs9+QS`6EILDZbuS@=&Z5%$wIA;~Ut2=)?DwiM7V8y|a2de7gte_wyolz2Y5-{hoV zNoufec(7NxJ*CD7ZahunGQ>M#l7ayb)Ka^pQ*2}^2^dYOPAi<uj~;F1rK7F4-`>hvE3z-Vn_W?n%^t`Kao>fq*aO)WY&#u0N+&ig zJ}Q*7oyn@G$P)Y0@>jpY5>F&PG#&KoJ^YRX^+K*%Ss=<$$y_-}L{UXErgc(E5-&jp znr?_BbPwuI#L%IiL?tQGQxhLhEFNIO&2PPbbo8M$OJ>hnvg%;{q2Ii5`}B85i|$0V z!QOX<^!@rRpKN0Z=T@CRx@XJQI$o|_piwYoJ1MS+k z4@{;Nph^J0Rz&vw*R{6pWnO9y>5qG@xbr22mF}0)L#gr~)}4H_qp>6$<~$925GmFS z&0^K?9>3KCfKji9ml=9*)MPGa_6R~d<|%laTO_^BzGM?4)z`l!wMngf1bd$Dc#b>y zn)D5~h>eq4r8agA3&T>^5wi5Qbc9S$4}>iqA?)E5ky+fW9UZ(72IOS8<1gH;@(K&j zloXa+bBDra6BOoL3kUoHL_@>&^ECv-8f4FE#sp1A{n>?AMziib z$qd)|3UYAtV1Drc0u&k(6_1!N+06DIJd)YHfVjlPDl1-ccwBwGrPxwmkM*Bj&`JO9 zczs)T=dI|h&|7Ak>vWhY=o3EevYFqaC&{Tq z)3qak!8J0(ysUS8nYK5}M38q_I^SDc7B9UZ{n3JhIN{&iL_m^m`s*5hGQUi*X#Er` z6bg?OrWdP`5fltDi&4H2EUat@&_IR9LpUa5W4Rg%4tUpe(;Ger9WZ1j`qB}QTf#b^ z3yJPJRD~)R&xINrsUgCROu=#5G1XI4iK;2pV}O@}KOO%07*Vf-`?EeR$EwxqVsv_~ zH78B)v;dStjN$1NIP~7JcXh{s)q6EbIU@q&-f?ixy=5Md=FW1>?>pa>4E#k(Gs<^oc+1PZ8N16fN=wp54FANlzWFAaH=&b{ zfQAnN$J&Hh3yED}MWOIH7)ogV@}!cEsZ;SyN(m5WYD~`QDI`rOS`C|IRmP8uznuy3 z6YU4j3nT_Wj2)#Thq^tT0U!@=r>Blx9f|3`@u^wA`q~sTeE7h|h2DfqiUHkf@F7ED zuYDvW)BRyvr)4E^ilw7Jav_Gs7aQ@|s+U+3X3)W3FWt2JrdKY!z4Sq+^g^o5V&0dV z1qHkqhFbheojd#ItY@|lQRzNyUi9L?d3B#|Oz?MU#uKs^g5D++Bss#_E~hJT&JrXc zz?^emMMC_0k@h`{lHJLW=t%Jn&Ha_?_9*|MfFDXLc--MM6MEpA;3i*GXw={t1haxc zP`O~@;Da)-23idkDiZUq^f)0+6fq@S=PW6PuYLV{sqOpMudQ0PYG8bpASTE6ZY)hl zG*aHwjnBOO%*LsCJTs=3HujEB7KN<%fvc8PNnxb6k3uS-^=bnQO7TWH*Hy)gvgG8l z85Q}%i&JB8E8I|<5bHDvy5v-s&E`r=ju8y8&IB#)g!{#$77yo#OK1lAl0AaH(6h4> z(VSQ$yN2aB^90#@%0m!-u!JJq(ht2_FagGX;(L(h1it7V^eiZib?`=sRIu_INiKC4V|*i)2yOAx9uOS);1I@Ox3+wfauYF3K4 zOuA;4)LOn_QC(VE-J%WUtrDkDYIq@X0)YDCI7@<^#YJY=;(>PkSyL*zZ_nWm%{ET# zC5_}x+2RxIQr_V`A6&?+38kflYBDbn563}g9u_;~*cxbq6e@C1CRBO&B}a9MFmZHg z>&!U}3RApc!IDO{B7B9g^xk`|r1yg^5$eF`>Vbc3h|%r%WXnmGaS946*%m{#AHL;7 z=?R!_dYl?{EfP$pnC0-+&-WUwd!@fx$VwEwO6D^=?VyBEslcEkgpa6}lN3z`4yHZX z0PJK?bdvJ0Fj_W+No&{9n%>9*>{puinPiN$s+-au%71qGl-(Z(C}l zy-X=>xb4;D(X;8Ib!?q{o3`-fx)3Rmbs0h!^KMx*b`G$h3KiVGf3^t&K3Le`N(YJq z`T??m-Xc>Hm9neQeEFW!XjHi*jq+ootM5tgo!)c20)egr?CPwRuUfLyNo8iMvLbTl z7wD>#prGjauD7x7YW3UykBu=V=6-d>2Mvl# zTMd@Tw#(HL(Xa4!u(TMqUOM{n)hmcjWIp^F%XAv5s*(Aoy|L%plHZjaTRM->L;jn( z(Yu2hvm0`_bA)sevFNaIg4T5+6&Jg&Yy|O_8v!qQUC|6pyf#nEG;`oi7ov(2?tsOx zW$u{H1LI1Mvb{(D%T}Up@bb~XA}v#AsS~tIo6y!hUe3Hpod>3stXub!RwUgIXogZk z%z6oQ`n9kwl4ZuhA>I2=`@QF9hzRu%%$g3QTQ>nzmM@SQ5=@t%DGc~QxEVaeP4Jqc zE{Alb9FSjsl+J($zLMM^QvCIE_uhN%b>{Eb2iB!!>8wMCW-XNs%-qH6SFXIC z3q3(Y{R#O1|M$bvH>XTjkfI*9XHkN54q(mprAzIAYmU6KiOt`%2|=Delpg<6>)oYM zq5=0I!8m-lQR)EeDAT#pyIcQs9D(S9f?ZOoh&EIM?{pHpqp#BEz&v%nL&nrW6Gbh|z9nE=Zz&d4Rf@@`|1|q{5LbefQW~ z(y@Na-`H2D*4*%?Z7cqGjog2Fym_fl%A@S)Jyb3{)5Cj6+>5ufz_Gs;=VK3ci$ultSBF&OH3*5JvSrRY&ov&|RRcDKAZ z(cw&Ty~QfLtM*D4J5(^?V^3o8Thg=GgEmxl+BF8F4JW{^@$+qnKJ#x0Zx>;LPPL%3 zDdoN=vwA^5&Z75q_c;@~T)1b`pb6d5zaIJc$>lpxad^4*pst56UgwNs`X^hT+WSqu4jr1Y{0Y7^+WF+oE2$aU?qR7TA!Y3_<4M?r;FMCY> z>^ypYr$&JXSqv) zJkOTO`5Ya&wv_O*k&sroHp^$Wtud4XmQ7u&@r=;Yy;MG736DQB|-Wj=&+b6p7iRe>0zW&L)D!&`j4@G&%F8+)rOvC}XxURy=?4n#mJfM>!i*&PxL}F-W zkK9IO;HJ||)yaiLUj5NCL14o|7!omTpTvmD-|p^AUS5hQg_f_|cA5JFKL-naH`m7n zI=RB=4=O-BzC3o)xxBqV0Xqb!Tu66N_d)rAQ6f+M;=QQ_1*y{N7hRv__Fq%6 zbo;TFUW#~VpBOGkZ9AD-z}0_ob4dyNou+y3yBady!b zsk!m-lN*MHO8omWr)7?;DG;?sk|%t|#pff(gj0?OGPsDT8jDC;_neTvuR;&>6WRxhYVu;z}Q4(tjcOss|yB*Dg8?( z$7qdB>%TlPefo(nCH$-!{@qcKb>@6!)v8ydFK_+LNon%-`Kw;x3K}$`)|2TElxOd4 znm1NGzMq5F+ilxb_8P59T@woAsifhZH^I;PSC4-=bhbE?ZX%tNzIxlhm1xPGGD9ey)#?$3zhFH_?bxWu38Tp`)Pc?nRWaOu>(v7H@ zlDf9o9vj%k|G|rRTJ#G<8O$^XX>W<(?povI(@G+4a&HDuP4}|f?kLjO$)v~`g&X*S zz!hZRIEaPq;YHFl4|uw~M=0fi$Bt7-bx&?hoe~UINb3*u)8{@Rbbc6V9X8E&&~9{n*uB*L8l|I+P0y*hf| zNK4U>ZwhW$9hk9v`s9A;<}&=58;4Mm8R~;!)xYHW6)Fhbu&aL56A>mLqh-iT)S*Hi zVh9wVw0xuvlQ9-lBDsDgKH@D7cZu={LF`@K&_guDLmGUhP(n_=q-cY(TUG*b23?^S5*O33rKQWp`|kc5{)N;`2O~X&znq+_Ev|3VnupxP#M8lT)F{tXa(Ls#n=<(4Vni86uEij zxr*|XIyD@2Vjt;y08EWu4f$gMAVxChP$i+o2Wl3vT ze{-rKhD#EJ@$K`FxbsVGu2WcMOEg|m@UuFOGA&o#{-?NP{RjMKe8)2bxiy?IQ7L@~ zEfdOxcE*?_JT62j^u$+(_uY>$)saQ&N+fmRWYqgDRx#?5Qhg_K4@cvaa~1tzS?^#< zW`Xyt7j(Wa8^}hmNx-38$$rhAWADKLBXMvj6bUJf)Gkm>Ad7i46SLo^49e>yI{B2* zb1>K990uf+PH-K6bk+q9Dnu<+IR{;@1H7{%dPl))ptQ$`M*zGUTr;9ez`u}u>kM>G zdt?g*8%I+e)b4ngzX&&rURUgJB1?hOLAO9)H9pXprr|v~f`#QgMR(BzNda6c;P(@r z03L%p=H<{f(h)kKOoh=j`b@ino(y9E)c&-jn&BEcOpjEmQv41l;wO9}o`;I#a@++C zlTUGFbVU%HM*z_j)J`r69t!#tAQWWU3>5J`RR9)gdB0CAhvqY&gwCAycq!YK3^4~= zgvuc}i__2?MdiRTvCB_ZqTYCjI#r4M&?vJKP&BlM1bzo!Ovr*hl!mHR9HfHCSApxH z_%)>}6=iY?K;_1Ud`+soz)RIq6(jc}KB$j;D-mGp)GFlBi{i77)ILjGfMX*QP^lu7 z&l(5Uruqbjqf|dOC42C;y!70*CHgVZ)g10+)+;q3rPx=LC^ij82I1Ce|5%%_=(-gn zxbM_f6&oKe&TDW)Mnrz=9GeeJT~4&Bm2rjyl}4ACISiqiVXrP|R(u;|{6mGadqmF3^XjRN+iBC;*8a(j{I;}cU z@07mRjC2VJi8lAJ)Hr=VmtN#c3XOwZh76tEVRBtO>l&%?SQ8V{lltr9QoY8)prCou z(8rpVof99&zo$0yyxyFi#bTw_FYdbQi@S>F%w;NV(uQP>AWGk<0n_p}Cn%M=l&#W1 zQ?F8^1u*a8faiGcX6C%>K4w4c0nm)O${1f#2u;08%PBRg8040<3Uf<^7?%ksjlYiN zigUAK)MicZBsK!MG5oz&H;Abliwno-ox*RPpL%?X(#a)jVzRVWpmSMAb2e^;|)N>Gz+l?B(pIZGYpz!&J^?7uV3IA#fDWGz5!-lJEpLB;|`NorHQjTszjmC z-ebKXp;DtqKHLSOI69@rx=>|QXD6fq?ta z-5z8G>m>ry0eLfV$5^$`?5;@f6{yy5`LRZHqQn?YqRFDyXcJv_HU9u$kEVOCO|l9r zGPd;AyA6iW43kmImagUdZ_S_Xj!Uu#)}(89BpZ5f$xs?i(<{xDYZnP<%WLNGe%~&u zMWwcF>dSGPjxSq&{P^-^k`Em*VFd=2jvv(TNui+u&2AetQZ#Ze^;sFGR$5FqCvh8{ z`du#s^Pjs_ZwGu6VGOC*xC{(QwLV`|1K0^SVH%s+ssr4bxwJx~&e7|W($FlC%?8uJ z6}p(fyy8F|$MyZ7qGWMd(e^1woB-f1t5c`f)%Qzz-EQBPpX%Uwdt%=(%Pp?*dDze) z=s&SGi-0^1XD9X9Sv)Tgqgz>RGUTK9NQ_N9Lq83GlELp9$zvM%ysz-gU@o*P>@ot8 zBvrYXgP*h~k1U+C^6S?vCHzG9{bO7&w3J&?jaj zO`h0T?TZV?l6?;3_||BI3Sl44qHHcOwkQ$U=jhB-M2LSD|0j}cLI< z(l?ECuyNw1O%tPQd(WNgxDj3x#L3bUEsH+V89N2YUfIe7UX1~7qNg`14158Zng(zOWHZZB`0%GAORjEQ%lLEDZf_T|T3sl8!I;#U` zLC?`F!N%B3r}6U1%@mY$MVS)1%M?`#QxHb|q%`cV#bNea923nMVrzz3v?}Ns3Lcz1d|VaGZ6{zYv(1C0 z+pqM%ZPX1Mi9n&bNM3gq;|L#;TA-r{g+kJ|O$amzg;)r_FfI5sH8n9)NDQ}1jp0aZ zYk2S8a4Y8yvu1fU+MIZv9M{m5?SZ7OAgFjHo=>Bx?N1NlS0B$s*YYK&MZ+^&$qq(y;2J`Akhi`c2ew>|nRVJ|Sf!+aP6 z1uA_3C6dCF3pjd}fa9HiZMXut9k>Xpb%|a}7jksHyp5k|E3{*c{y2Oi_|PAG zh`OFh4RBc&G$TqC@@WrJis+;irPD*bRt2ROlCzhji^!QyY1+f=I%C1(1tSq(+8Eti zlHSo+GH4`rLZ(DJcgdJa%=4rhKoU48cD#7g_!Jcr?WTl_Jqf3{>OxY?6EV_v%-xQT zUBX^UPkbEd+B+0ok7kMsTAXo&M~7hU^b)=q#~N`GGPzUHO7LiUnVon@I@HOJ-Z=_6 zDirXC>;@!6f{D&`N1+2C+EK9_`LL3i+Z(_!_!&XEfd~XsfPsT%7pdMLl?I|2w}EMg zTKqJ4TXlP~Q?0%AR;}8pcRBf(9XpU=*4aMi(;@xluMTYQmB9vauS}aUf6bctGp6Ou zPE1_?*wn17sgJFn!PktbDh-XS0y`;{vcC6PhqjmsMA(v`xE#REiM-7hCt#Y66{;ft@pA0iz} zSjM^~tb=&Orj}C=FhH${=v%+Jm=XiYNEry&a0^Th zBfXyf>(lt}6&c)%y(v8>eTO@|xAJyoIC4Z9vg7-^8t;(adGcQAk0)o`^A)eWqB?S) zQ*`rc;4Q@;&B8y9Oe4?x%k#91=@+#jfR9jyt@?H-ORah#q_>7ARkh39fB@D3W3KC1 zv&<;a&PF<|bGI<`^2w7}d9$oZp~+O} zUY+{il&BYt2mU@3DjYROmt#gF2W44BEOhDDq81nEf`JhYWw1aXHH381y+hdo+Nrn* zGQlg@BZi7}u929YwicQ7X-uy$NOoFff3r_rJJrtqMjMfes@&YFTw(Xb8~1JAcjLtB zCDUgMmLV2l_Vgvy?TV}I6+)DKArj)lxMkb-GKVQIL>(R~uayoQSSqiWaPQozjwvmWi`5;Z$A2@%HvTz`RJQFbywZnQ^%PNos)tAUBF@Ka(SRW84X)B!CJ#z22<*6 zFILV6JQ&l^M}Q6(c)JH(8`__uVljNax%qswO+r-n#_nxVZllNzLw7H&?od=O-96Om zbXsXk=-Lv)$T_oU?p$e+)PA|jkP`P`MC@VW<$aO9N$Vf_Zu92v9$KHI@}zrIS8hh> zCproGM>Y@@;Nkzjs$nMc*boqi&}q(}iu(OxwOTtA8vYwi|HV6pd_H97;{N}6O{&Vv z+WKw$`|0(`$?H%5eIwCdqWzc4PO((~o43=5~p6-pOh*OVS)S?o$2~{+?jdTqg(ywmH0_V zD%`WDkb2Y=@4*P`b`9v^k4Q=o4#_!czsI0fAd?iXC@_o9#e0#hy+pL-V29`mXdqPPkfAXtkqjNQ(vnVrWf-TBTXy%VpThV+J86Ln zRRp#Xoy1s_v=%@m47R+Ohj8Q$<>ge#i&R$ZM_w6-#oGB=d2fN=puxe)0#QAxvb3tt z?34ue^qu+z%BH$Vc+`C9wIREv=|ts@$wfJXgfPG%Cg$}+WMsYTKKgCVO_kpDSCH5n z*DH-ZoYw0H+U>qBy;99p<%HK14i#CrAf-58b<^}83QMISvAK0k%SW;FnwhQBcCpDD z?E`46QTr&Aji3|xKw?*rVpx`w@f!#AEj1H04z&!L1u};mB|_q9*O}dIf%q}x+2Err znV;|_NIW5zU}}w{6RO-*6RHmRLV;Rx#SL)}rWC7&h}cK_-4AbHnrwAW+coDF^$^2# zBO-Nu7op@XQJ@X$hVgiuNT$^GE*c)VO9#;?@nOf$#J9K zcAdcO&UtQNnXqe`S-EqLWJu4H<`178%;gmQ$ILyD!XBEoODLoI%RG#1>xFj%ydpNI*<~C9GFl(tM$4k0N>uX1e^R$82$DfY?lLM-#^|M8<&5`68_?lI zW}+zONRW(_aFD}MYD}OJQ}BB<$_SQq*+!ufh5XaUDxBptqSQY3z=64ovj&epFgGWg zTZWn7!2B`N{S$6Fe9V^`4k@*!YL~GJViIz;0siMG!tc|X;FCr^q9f8_xFK39z z5-I2WGH22Jku|J7vluFZ*S4ooyO$OX$ni<9gm>i!MAz~GJ}qp4=EO~Pa}SvReqe57 zdczL;XeamLz`=%~C#On#NLyEMNr9EkdUd?r>nI3mnhinTd_i3sNUt)y6hfHK+!rb` zXLcy8qjdwaxZ47?>pc0=yE*06Id8mCouwWT$QWb>#q8{RvOJh3vil}EG_c8|{0VqtyR!Zfb$ zil#aV30s_eQu;?G-UNINjDl>lDw0u-0?ouQGHIr^Rfa<9+R@KVF55$ zL9={*3VN0oWRD^8lK`fee&v8#z7vuJ@%hSBp1jjjG5tlyuC>Q18Vqs$7|RH0l1ZNm zcn$F|c17tRF2fKn^08NkuC~t5i_27NCz>~nt>0*?pJm%vf6W%dgjK3*wLwQ-N`Bm& z1EmF$*nf1suS|32`aPO5UtWmc96wD{?#r#>m#GBxbaj!3do&}3wU^WuVW_?y8pI2s zTz{EnS^NRM;*w%=E!$ICnC)O6Cb%YU*N&b)YlL(syKls-rDL@>OpHyH6sk;-CEeXEy{d`^M~UA#LiWpps$zpKvy!{UCw86PWiw7no zP1=|^!8E%nQV=DC`{xYobKtLT=B9rU^MRz0!mkt$p_Ww?B37WOaq4@$`j(`Z(L4|u z7aU$2XykeahldZ(`+yr@AFJ9n>AhtOq}`zrQ8GB^mQ*fv?g2RGft&C8cD51mja~(1 zv7Mp-OGapv@?00KVgP|-Q5U9UB8o&0sS$u?X_TP|8;v#u+1bLLF4)iOV(`qOG z_+Z!c5$&Z+J^^45xIOwhq5%T9hKM7@C1MbZ>b|+VoTKeK8Y0u@9{9WYz}&h`iDnS0 z1p9#HPkMre!2^Q@b)ZdE4>-K`c(s1Bwkij^n>C^KO7(@AnH4X9D%FNwGE}8QZ=0Ak zKsVaD%RDF}FhZSG{l*(P)#W+TyZN4VwE=#$v*Ot4NfV^|$IL$frkh)qoiq2q_`z9= zi4aTeVofm3b?k6OJ{xI^&#BsGGG$s4rH^Pm&BYomHehAXa>Pbf3|N%&CFdmlC=^Bp zZ+30l--!od%UJJtpe*)(UenI&eMUaJ{~-y3b3542idFMO!6?b2KL*5!Ij$J_G7Sr+|rgT<=t zsL<=Q<``~>G#0^__eLIyF>AF3{@EC_HF6;~L6xdO(3hF2gbH=ySZWa2+&dbFKp^3e zwTe+xxh{U56e!Uk5YTuaB}C^z2aFt77)hW|=r)j$!9=k1^^Cgqj;cXLuOmT+^`K4t z++l9Xd(sZG!DMC& zq&w(71cMWseA~_!yk3%~qR#;naQ4Kj;5Z<%w`pUifwy#_ugmdESS=N;VdElD$UO9S3EG< z^u$wyF14y!M7QiyqR!sd&7JEVJjVu68>}5{r%k;7QkgHVkQADXZ z8=k=_bYU2mRIwLu>Hpw%&){~rumKQyKkbyHtNsA`x-_(n6?TPamdyb`avHBdMaWsO zt54Qu4p-qWPhP7B zf;c!c(gu=82Sjrs^=VKnkxz(6PJYhqfFn&1ZtFo|V{lk7IIP3JxOp-Dg$;}AhA&y% z+%e$T(q+f){QQ`(@z}DZ$FR}yvGhOBT=(|cwQpbd41cdAAGJjgY=W z7F48EVCw|7KC4`_@Q`%j@Rl#?a!2Y$yX(H(a#*@>XrZP&i!IpCZu?U!yMarHK0e6N z(~Bq3GZ!yrav56W2OndfA3OH>F)5v`W5%`T+s>~Qbc+^_KlJwUrEeab1kY#e#%sW1 z1)*?#;Vn+n&4y`=>8%LZ6ul2fRa=XEk^i@E2CN;a!ad zLb7BsK+ZYv2%?eA~Kv}WS~~$IVP{89HcxWKO`4m{y;*=fr#%bZI^yvS|Imm zr2~&|+VuD)mZcZ;>Dm6JFV!%e%N3J6Cb{2B()Y<@u$s(tgI-N9 zYAPLnm)GYB<)v}Ukzx7_?)1Z%r`X|56DMriG+|=o?u6{LUY@ub`ylx)dY7v|{EuBO zy=x5J&t4Pf>6Mn9U~?HP@q!^W-hrIw@fL$io(saV-c6`NQhcNa(eFK6<(5t8fviTe2ViJK=*+{_BKX?>ElzO@@yBqSvF zNz*#g`_dQso>?*!OO31{6cAu<(q3FiE&KoQp620ZwB10gn54_f5&eGl37agIM_uR9RZ^068 zmiYOw@^LW?KR)u|lLbf_jS&FekOCpqT;|9%GQOuQbSsl8$8G;idiH?_rDs3iJ|VBZkLUMlL=mwS2y9+vhCwAg2mVXn)s30E_tpJkl$y z*fSu%FhyERIvs|x90U!RMSV_0WD!gih+;(WMJf=%Jaz-H^c2Xf2DK-8TR^l&9k}3@ za?<-kgq;!0Yef+X4#trn3C^E&f>#~#I zcUa#^@*U$?-+p$_eD}hN*#47Q==?rw`4Z20{bwrngkfNxc=j4&JIW*9d1i5sSO+*FW&%vPA*H>)gG#i^0hLJ*21Q<1YGUj9u$uxPlPzLa=~j;p(&6w0j|L+ zS^q(P!zq4BFh?|wXqPN68A-trBv@WZOt~0*LGpUX%neqUQlCHr0C5Y_z0Fa9fobB% z!=ooNa|I*AKjMjt_oWnoH<+YZzIDfBUOJ{)wRz_x?uOZXVw|AwGx)7Q(WgKmaY(sufE+i9hOTeI~Wzvk|}?8NQ&OYpx(+-~s6w>BC6< z76Z3v6RTLE#1*I8Xj~zV5_+VUWov?40ZdQ`)3ig zD>3e{*bD1=6;7)0mX&HCJ~?{D_r2%3!Ka(|&r8Tu_sbqTJ;Au=dIpjraHH>dSNigj zf@NRW#740JEOVmt7Xxn|v4qS1U0*eLL?(_%RXOvtPxs3lS_1FKLO&<;PUBP-y_%mq zLRXfVTr)E;{?$`HU;V(7Y}}%u(md(;^_LVM+&8V0#-aY0&r)I0R}c{s$Y&EKQGjz| zFc4@EU|0#>8?duTKq@c*n$yrK2BItHr(uKi#^;YecUbyrX6-eCa82z@W;^`c@zv7n z_aqq}kbe8=R^qWALW^|ox{6UHZ0e_fW>ZV+E3cF8L%B&lG2y*^3onlV>?GAh z6;vKl>Hz=(uK@)_A<5SwXz?m}ivrRK(C1|69|uod5tMf1oQo@D2Uq6FA=L|rV*7?a z-aPI80(N)FXVSS7Pu=tBU0-LLC%njPkN=|rsYT;lM#ZIvLbFHb)y}A%J8J&k)vpdH zy!gVDF-vb*^H|PQc7c0WeD|i^f8fTJra!*Haxu&~K& zd3Uj4$PD=Lq^=Jk;J18h({2%8Y6Ds~_sB6=z^7_BUrp?G6 zT%8{iUzO1R?6G4n4fFL1>0@-x+sQbsIx~uaN~w| zd9+gKA|&h41|$UX>Y>0*d5PJCqE~_#2Nb#j&t^)>Yal@%pFk=(qQm9f+!=92Mh841 zSWLm`=&O{olfYx_X7odvtfHF`HL0~aU!x5w1^AiMGf)EHb%IKE6_qZg`_Vx>e6@1% z-b2TZAG~?d;_{3bp{P(~mc)XYQ^T8g-?Sw>MX5E$*wZ9?RfRp#Y}9JXt3<8Q#97o; zRVJ53uT)i5T3iY2#hmOBb?B0DEpqtnIf zHLAHY!Z&Z(kYEAn({H@z&V$$Ml#9zlp^B!ay|cz7s?~{%A2(p_%&EmCB|(%};H_S6 zq+DWcS(Rwwj0TmqvdWZX5vwZAu7trW7S0(_H(^5E$k`rMg4vWftv{>hwl~f?w|Czg zCS5_Hn&*`_&6-g?ux?O;G_7CF)(0oQuxsbeKnjQS=W5Yucy7%YzsSdmLWT!Ev3+G(b#j%Fj>TBSu>f^ zpw__F0smj++=867(&hxO&!GQv`Y@|iXYj4uzI)T`@{)$@R_&ZtU{4vVwD&FQYmwg1 z8n^EB%;|Sbsf>#>R#(-GavA!}UQpRrsZ6q(f+PCnmycgQv6sdOggjw+{)1!E-!je1 zukU5hTC;C;s5Cr)iK5A3InI=)RK>7+lB)_bbh=jWP@7HX=rcB5nOA?)_)$A2*7Qo$ zaO*4G0nXta8BFNAV*bedf|`lLQzA#lGi!P#y-z zl9w(wls=@q58ZI?bE1^#wBlgX7XKVt@AV>*=n26tghev}h|K z49Acbsu>qTZYYI_ssb#nyBT=J<#h&UrmM7CxM&D##>LSSBX0?cmY>wwAlHA`)f=OXtB?`4oRisQZ4=|BwuRxG^w2{Z{!MGYh`{_h${bV>?josn9j zE%O13HdTA$f7dKrUr7PbWp}i_aX0z4k>3ABV~{Kz<$04j=?Dpb;8r?+FhzHU z-72GEc6M{Q9QHYionTo|*EUFRa|#+Hd(T-CE%&e%V`MQsn!8EJj~<3v{KOC(JGYlk zTS+PlJll(L@ke=%@=}~dR0Y*tAx}4P1V41{3Y zb3@UnR7HAX#~FtDqpEy}jiG8i15RE?NGR0)(x9MQ3GA`4H;@>?i%F*Q6un*M8VW`$=60JJjrr3({3V6f+6E?_ zXIK%zv(tMgdB_cUh$2^v;LFJ&wo?b(l~JYZ7aDC@IueOP0qa<er^N)+%bc*@!y_d=@)A1hV&Y`*M#|WlEr?!!7C(z4)c>-EE zpq9Zhrvcs%0%=!;NKYN`75gBWmy6Ja!2^<^UM_akntdtFmX5r6)5ft0u{j5?%`6>I z_8Ob^=9_E;Rk*tL1*t8+QZ&X2yojLM7*3UE?-lFP9eL!k$%uQTM~$PkXW<=RUElQT z;DW~SBP!~LDB9cdLiEuuqtzg9Xc{ra;Tr)D(_ z8f{rHH1A@gRZ519o0R9v4Ahw=+5h5r*Q^hr$K^pAYa45O%)_JW!dBpq#2?hMh1s_ zNS)-d1Kf}l;-q2RVAu!lE@1XRlIuK=%E9l9sZEZXH!m)^HfD0b9gq&V#`}VRPuER2}!z+-;9AM#K$N(^$dr~Cf#Vz za2h}+P~E4?x|v+~@r{7BhipAjgAC%wWFrj7Ir%bpVMBI`Q1V6Rmv&2a(w_6W!t!PHqx-(kdM)E)4Q#Px zP-b~U!`iXZL$g`dAA66kU)FZV*tHD}#*n6!@*Q>d?xtGqR)#);Cnba`p7RTDL z4Q1sG+(W%5$K@2jXmcy{0MJ0?lQJ~u#~R3rEIzM7x^I# zQlrkL(`qx)(=)VMZL%)2K%*(RKo1+c7JY+ElPhpPBBke;u550~+o(>)t6n8i#jmf8nW1XBHhB>5lJLC~XT4=89`r<8QxX zqo(%VG->F%p(XKvpA?60yrrwZ%D(kcH2MUE0zD1Ak!E1(kZ^knV785N)rA@bqOc%O zP!I=&sVE@{{0sZsTw|meq5(^x*bM>FMr&&o+{dHyl3e#>)E@J@7ph2zpCI6rl)!;} zbZJoGMHSW{k6`f>o*oHDoqQ^Sg`fw6_kl9+{lVYw+IM01=shnk-1Oy;KP;4Pf8|%w z`){vX_crtW>O5O4g}6tS!BGCqqg|HrN0IE}_;t7Y8@Ic&W3<^nELwHL?hAVtzPM-f z>iO5*)3WYu>3vWS+~OUsT566+u-JE**QM{jl$JF!1d)`aqi?&xr?lc75>`tm9zoE< z{APq=n1Sfb#C?%N6Zo-hk325iZrd06icOGWI__c90jj(4mX42>@#7+Kjgvd>V#B%h z9UpOM3VF^}hM^NAd+v4UC~`(}NOzE4kg^8SU36W<8;LqX;upt~5M_!Mid`J8y?hPsg=j2!n+uy7P56f~wevR;29`yHc6Wcp z7?p{+Jy{-iw$DD)WbUgnRVP?#tmy^Jq>2%{&!hX8T1}V#BPJFihc&5%`_^P?;+n9K zze*Ja{BAR*{=e$p13ZrE>KosCXJ&hocD1XnRa^D8+FcdfvYO>?%e`AxSrw~V#f@Tt zu?;rW*bdEw&|3&4)Iba*Ku9Pdv_L|PA%!HAkP5cO-|x(fY}t^!$@f0r^MC%fcIM8V z+veVL&pr3tQ@lQ(H{B5hU3cf}4x7V@V;L~v)I?6_*wq6t@dtRqF(&Zxdh`_-87jFo zg{9(bQc^a6km*oxBtb82j0+|3Gt$9d#X?J%2b?W%t;(wOlfeAIqtZ25;A4nbqKVe@ z8qq%asL^OLI8WZ5S?G*P@uv8q)`9n^>;UDX_ULuK%KXB_tZ0`vF~1;IzRt6IISK77 z-|gv)Eyz#wx}viZ3-c>|-7zgy^wCu`W4o?X0{{rKZ1(}3OoJ%xgbRfJ&Tt)B>$;bt~Ya)oH02^A> z?zHL{FI=YWUC4L_u%Zs96<+WowQSBTzrv!*aGs7Lwv$2y=zHr!2B#q>)@n^jG<&zc ze%{XG;hsiMezkXY7Y&E#ncsi?kFPxOhr2$1aeo!7dhU;Gm3R31ubRC%u~1x$o<2R= z8k`#4%yc`wIbK)1ExM;C+7=&Q70n)*)D%-t6q_iRE0U+rIPYg$_ijm?=dI57%-;XT z{{DGazWCW)*MH=B>?8TP-^D$-<^HQvZBbL>I~nhcugb8+Us*55zK~{%u8P0)+2_6; zKQ$`angE(21O97%3H)Kw^?{5e3Q?J>K!-R4#1|JrMzTtP{cS}&H-*?hL0I&l<9B)i z6o@xu<10Ov6^e?+7tRS`%uDbl8>L@f`0%!E4`2B4(2c2kKkj|(ycU=)HYFA;TE8$q z!RSrw$;uu&5M2;nyJlvhWBAIBoSaoVU)Z|&#fw(@lk>v)QC#ne4`vi5x*f|iGwWM( z&Hnlem(96g&CKF7mzmpEY}>YC<+g1 z-E18(f+jMBv@km*uT?$Ws`}>>XgO8h2Io!Cra!F>uk%$gXCXL2%;_N?C)hp_*NI3p zLO*9c^P;nL+SwtN{ng&RU&-&_%08v`D05%sR4GB}+=id{&fc$1=bESTv%dZrXyY0B zl{^}LttWv8RCRvzoLD`v1a|b__0`w<=ggRC@<{)xcgob>IE|eDZEy5ZXQ)H;UvvRJ zdjbx$K;{Ty_n9R3hq1t>(ZxW(1Ldb;KSs(Ir|$s|xUMuAwG~zi!?c^=p=Xxp=9N5eEhR^|KX^olF;(A#aC4bl_-Q$^6);{6eB9CdQM8S1*_Np2I_X^o_%P!ZYABl3X2mGHCDR>zQW zM&Suv;SA%DgXBtCBtD({cutV6nQ`n0z7>Datx)gle30qL!MpT$DK7KGg=;Q}xGrCL zhbpgr$I8oHkxSNCrWGK9?4#dNFioHy99v&Fd2%5?fZ)kv93s_6;?u<(n9`0*t40`| zB(GDt>P$EW@i}5Ty~yEd;=6Jidwh96CF)-;PiHsfms7YL@Sh4?@@vou0_@DgLsq&# zhhK2HffFY(<(4WC=bWG-{d9<+MByX3&V*<_x!eGAnboY! zVK$59QoQ{50z>REr`aUTlM(s=hgAsum~KePrdLx~Ny(-!FvJ~G-=7XqIVNI9;pqII z$6`h} zUU)nZq6Cr^WSIYowj~UDC{{Lwnfvzd-?yE;CcnZ0a`CA(tXe+0Mt6$8THSy5Gk<^P z?*8iW0Q+#?e&O={`%X5q*H{4mUmH89JGBO)3O_&wHUI?r!jI1{DLMbgtO5wHLJg~P zGaEJlV5LoKmoBp`3*P!%#3>-bN!W00}QqoFh(U5 z_I3)fCvSpLkO+H)?~@-H`}}!1@Vqe~6-Nv>$hb*}RUVB()kzcIXv>RX!ILKas?#Y8)jb>rWA^~=6v($U zWv7;bzCwQyw=J5D9yuaR>)f;J%XMt|KlfcEXDhZ1Mq5|NV~=fprP4LWRr$)+$KUT=ltlgu{Ty{aMm#cPR0)3*R$@YWTsR5O zIA6&3uq7mxJGM^9vKoEz&eva;clwN0t5JN%h%MXW@_N4KSGXKsT6H43YU$D{@tvxr ze8cFd?$owzGFd;+so|5iQjSx)d+x!UG@i&t8RFUl2M)N;WFt$Gv>s#A2-r`dRf$Bi z>AxOF>X6ofSS6jCQVeH>63_Bk5f4s)J_ddop~SgAl^4$0uxL_c;p{9-qi0y?N@4$dG>VPyZ;IP+7B1L zH0+AXb|$CfMJ`#pILf$q_uUtd_-ge+T1HGIX8whfFFttPFP~?DOJ@u`aOZFC{&3Uc z#a=jNOyaR{(}54sc%S$VvZg_HCpz$Th0GxOa8#?DCEGdhE2#WZ5~D0D1?v+*oGL@y z5~4St@wFK#p0gJL8!tbqFgW?1{-==hxP0QN{{E++Ft;7OwL)25*Re+~}0H_}6{CX*0oRXs#@+*Y&tIGCWw(8|;cD7%( z`BrA!|Gm`Zm6GqX`1)k_`wVMT-pgz#XJ2RMzOIw+u3x!l?^F9u>>b`S`DOn1hN7`w zU@^4~_>H@!av%5N}n6I9m zvS)bjSNp!dZ_o1HYhK1z(VlUf-X{s&m6#W&542T6n!zXlB-zx%Zsmv@<^mME79>ML zJ3cXrLWL~$buQ;TKC1C5o*G0`w)>7%&%^hp`% zPFq|?O75ft_f)HXp&{OU^dVM<;wBa=KYGqq1O1V8N|07y+)a?xn6F!hKB9F>;pTuu zgG6>AWXypxT=3$F|H{5PfuwtsIfqT6p!g_fblgBT7%}xo@&{5J>HaLZjs@h9%YqV%e4vbA=;aBYfUvbgnw@=pZFuUNz%ud1nDwW_*iEIp78 zsneHMX_ zOssGM6bn=xAm$numq;aA5H6YM&=B$gPUVSqYj_0A35IkspBaRNOlh)^@*l)_*+1`L z!t%(vaBx-6*t5)Kf5+~Ue^q9Vmj4#xvhjRVG@E003zJT~Ab(+ZyY0;SBD;<`5~t*q z`YYmL8HL&7%l&ydRY_6&al}`hiH{qPhcZr+qvu&HZRLV_`A)#~k&iZ*wwh>!m-}4xID_ zG^|!*hXR=*3CtZ5mh)o)CdLgc0m4fdEPG&&LCBw^P{FgO_mH~-?9zsr#KP#mvO2hc zvxrHAjG%kK*wcGJjUx&SASDKl6_f~UxKWN0g>ATjcg2IUFv4DDhIegjnoVz(j4U&g z86~scmKM9#o8d5-jErZ*FY~#vuc(+mH7P|el=%H6I9dNlEq>- zCKQOK&1)^5DOO{2RMC>MI;)}kUHOZ5ySHYo%3v(oXq_V50rfescC*N3;p{hNyS_($ z<_6j1L5esaFF)`iMXdS*)BRx;MfGCI`>FhUYz4v5ql z6V~H?*!H|}6V`n|7DZcb6R+jmIa+B5D*-w%hIi}vUr*BND`6?@Q1GX~hzUw=5E#tG_8d-|q?Y7r{^tJ9yvIzVGg7UAc>DpVJI{$37J zKpTy)c84=_2JI+igw)j%EJDmdjF=*-sZBi{Y5Ne1L-ndKJ{HihqBxqi+G{X96iGlL z|G{@8Be)RJB-ucc0UeJ}_x-rqMQFffI}}py(;M-K+BG>`$TJwnFg_$_(V_dU zLeDGQZ8H51d)NtVcac%BMhudDsp>4h$Wvc*%4@ zB_<3{JjklBxfQ`oWI|$avv5WXcfRUy;5Gb@BO}I239C$V8ZsbNLdEKfQiTN%)(V`vnnc%4~>T=X>a7EQFGF(W|S5SHevO_?5Ko{=$M%3jD)D{ zgRAvU=plb*cVtH$vDiI7+ZVNeOUnF!A*G?{ysNXPic)d*;@O3vp^l7r;epdB;?oO~ z;?y*vF{5l^s_1`H6|*O@bgGM2bJ)b59V$;XrevjsF4pc`iDl90@lh#JtZh-o>?o5d zYIeq=HqH|^8`4>|x5T!IS#D%eZE=RGdGV8`EsjD9(N1%LIS@VjeEBG)kpFh0{8^hP zJw;8yiZf29$oLm!1Gf?ltM2PuuqZx{B-E7iYs@JhQQXAA2mQw3r&xPZW+JwBFm*)p zlny~C5zSLD`3o7iGvs22^zN_>I^cC4q*_4q(FB3rQ`|0j?2=CMIf5W2Km3toWM!vi zlzI=WCm25bfy1AalAaOtuDWsT+2dnRS<|d{TCMtOTt1GUUVG81S8Zwhs0QwPHSlL2 zl6yOPQ0GZmbFeV0cu8}`dWEfdIH$JCpPo~+ymb<0&)DTuEJ{tY>h-wVK8~Ayeb=g2 z!F@Wz4|c=GODFXP0G$2^7||CBNkB(Kevkr?=O9%lQ26Ma(f}5Hq)bnvvkt6}G@~@5 zCpaQkML$Sj9Q}2!bu^*H27(Y&q1#d!Y^YE4CPuN}&a=hXR_)?K$rrKtYxmE(`Pw)p zdhD|ca$}N`J%-q6Dd`n)9m^K(T@j;qNrGi#Z}EI4NT$cmQqCJos0+Lpu)rd9YxVMb z{q|J3!hW7)oXb7OYd+RTUGx2>y@&KXZBekLD7MHKhskO1B-JlWTi&yNZ=+|0$Eu$k z%}m^J@+>tyP^pl4lir0r`Z&<3I4dJT5Q855Kx$qdKm#EG;>&`pqBlw}67LtCL#LKr zP^n6%fyx4~<*FiG1V-UfAAC0&yp#+mgZ~~%Q{JqsuAZojX+>h9)otd^YNv~T;V|kw zjnyf4Jm%1wlZ@WA+aFxF>u}bxu>V$;T3G1A0dHd{&m$Qi&%i$XYT9{E^}!V4#yOG@ zxn-#*#kEy@H8v^5;jNVaaasPNc}0*Xu$t$x(A-sHcNlC;aGKT_T^V~)Ry}at+B+@{ zjds-~GH+I3hCelX>Y9z~a!p)de>>iD{Mjp9Ci%J+`P&&nMU~C)1Hcf&Ir}!q*G++s zxLxQS5{1Pd?SfIV21sPH1yE61Ks!KUYfG?yMm_;z`P__1pOuD?$VxJ=s`*pE`x!CslJ5wr>oJ+y}lyT%s!BB_805*;dH&79sLC)5WEie6Y2K2gqSDZl`=kM z0*kfyQf4Jw$@R<^E!^f19mUqN^*m>9sQUf1+|tZH#@W+S=f*-K_N$nf%=FprKVRyI zNz0rU^-RQ=91A7V@|>)4p(%P_cE#O=ljT-lo>=ZH&xX9AZ*opnkX1|7Iq3zH*P5qh zW)$#snXJ%ufpGPsoaB|xGLx<#c9?O}`6n}NPQ^}BrYr$x(!G2%> zr!KVMK$Rp|rN>f;J5Bo(?6!P5qU|vT%3c)Pch0badE&A0SC%xadgP)DLtKPqj?|r8 z?o4ln3%Y;A8_*G&Kvo5>0)u2`c_B+7F1@WH1_DY3yFQvf#;ko&!`5i?`K#NYoc!vw zZuhEF-$IndWj?=Jt~XTX2><-lWSdk0{(V+nEIZ#~zf4?zEI*C=4Br)kB`oTJhvkp! zW~`O_65UI;CT1r-cp*$5nG6r}itnyY&N8{3ZmY-W6;2F3Z*!TeoxgF(pZq>$PRf

QmLRL5V<>*hw;#DrHv{G3+DcNl9~aM7vJz^@p8|sX ztgEy*y-#u)Pt3Z3a`E1Q<-=E5b2SqN$i}?GcE=sKD#pSm{h!QU1J6W*9v<-SfivT8 zND&@GL|oI}K?YOI_XYUm@64|_o(8XoRs-DOjF^wwLYzBrfamkrSkZ;dp`s!6>S@d5 zb10xq#YIV7PG%>=CcsW%2U3w|w6Eb+T9=jhwB{jF$!L#%%8~+7sES>4ITwM#9+O>~ zOF#b|06IDrh%+R{8(oKzZebK3x`1)Pcs=Y^tmgIqH z{$`yNr0T(IPo8rsYVmzyat|D#4cJhPgH=`7!u36uMwS#V0uB^>`(dr8-VnYEdk>tb zhfsW~ze_p!mIGEX`MltRRfv$^yO`V%*=ob@9^xLKa$g7H8sd*dF%#@p;hWEr|xP=qtQ9Tyvk^?8jcXr8S22mlQ8W%e=r^FBjEml`+U)v5Xc zU<_Tnc{$f&=4J6VMhQ*?woe_{H(uq`KA=yNGApr$U$~;l8CcMH?~^~R@Vy%^Qe13Y z18j++ZbgO9(7y6U1Jo9Y?>U%NM+zfI1tcF83*kmwwbCY%bcrOvgB(nxO%4R?#l9|+ zt28!^aSKd9+4)%Ih4PkTLrBg!D4$}ou!hfiHaQoy1@!@wm_0#NV`WPtNl}I^;AB5Q zQD=?wx^p??=m;JMh$?8vl4N5(fA}5EB&X38wIAY|y^~cD3gNCZb<6w!Qe$}>&Q+TA zSa)zgYCWR-X&;;3S?5f;5t*x$03n6t()cqxaShIudIdF!u=IpmrBkuzGhwY|p?)wJ zlw|d^(krvFbCkP_0!M@ZX@I)2QdI@r`7T**WvmXcaA3Y^=LTBq8SF-*-Up5Kla#Tc zutj>(lAA8o&cM(#d3ojOY~ZG&jU?9eOpn}7k93<1pJBN!gW$i6@C0Qwm;Y)w9*RPd zofem(VzE-P>kzeRkJkZ%uc_`&Ri2K!A{mJfVkNcy7KL{aS@B7C|U-}Iv3>}CeJ+zII^)C4ZX)SKX3HeQ(y^+YU19*`N9CyQ2$EE=L@;*1rhqNU6Xk5P+9S? z2dJX(u}NZ0y+p$)q`a;WZ64{9&yG6hdt0*sKR(I>Xw^L+I0LQcf7fzs`p^Y&rK*SSO!olryr>|XVMS2#HIG(@0Cr+v^ zd{+_hfz5uD1m@`X(%q=-<*v0Z0m~piA@z8QAL|a5cpue7Nah$fb-5w2)kl^-;u;HO zXGDmr!dTLEv#w6i7ur0}aXhAYczUbLX2$CDsM@8e8=!5EynJW@1Yrsm#%Pm9neIvF zEP|)2XiSP|{br;$X3hNZkW`vx5Ngq;!-{9CQkyB}Q*&06aZQOMbOXpi#2-!pr(r0cmTJg4aDRTenq03|y}m4x4O?-K+(Ko^EPXCm zQ#I}97~mXG&yjcNaQUsAl1@Qk4CHVLwN%8}p13<>;ge6<3|aapWOF0`*cksOyDuYg zyow-wv8NV+w!>Cl{O0-qwMZ8N+xeY~Yx>e8gtbLjc#*bmEpG8IqhIlTEem(sla|3` zO-oqmTj~v$Yk?ky+z!;1KtrXL-V>9!HfmF%3sE1=m>V6@U_T41wf?g{5&U-w=od7B zoBiABpkk)3>}-X{Dm^Y zjQr7zizh@h)>gwDsKrQcS>EBuJ3o{{gBlBl)$E(}!NNy6*(KGVn}anhFybfe0{xX6 z*+rJ*#>tf2DaBf7SR-^=n#MTrMWyT+)biixgbcAt7Kg11bm?5Vu~hK6Os3fnUuQ7r zr8$8ncxW~a#SmUQML0F3yf3#4v{czj9txm6v-?*q*M}ErbA)X^bX!l$z~tN(vX6@l zXA|MubiQNf_k>M`kf}D8l^Bucdi{`zi}(4B-p_ofNk9EX< zn%fC0-cal*%i+JhiXPBtB)4M!?qOZg@Nv%WnoiH=EU)aIUDrz*79jc!k=FLTn7d=b zS1w4hYwZ^32{rL8?h%X!iFRjop*7lweOT0IUZMD2rJ5d1iY6RL@2Zq36=U>cs*?O_ z1vuXClr}v_oWwpd<7=j=dC}UWki1rqo6F^i+v9)@5A+C`Y`AA@-)eVV)p-&pC}356ymcw{Nv~XXcQSlDskELP zjD^I_+NdFJZG-w^G*J}KZeAt}?wx9JcWD$BzIuDKvT{;baHcDviL-RHWI%YTf3Q`$ z5E9qF4^-#dE$dZo8*HG~xxPDJdMiKAVNF|uGHybqK7luF(t$be)6HbW#OL_Z**P6( z>hVTk{Gpc&v2L3s}2_mj7ZE8eZ2jq&{3j!szx0~kE1-_h5r&u{( z_;WNA1i~@3^w8G%x_^bS)lf%*_B#lmZslp^7u63q4UE2|0YAf4CU{k-oGm*e>4r)lV7HR z-)N2gKtUvoMuFTzT2{6Gs~5D + + + +decision_1 + + + + + + + + + diff --git a/static/web/img/receive-task.e1131038.svg b/static/web/img/receive-task.e1131038.svg new file mode 100644 index 0000000..a547c5e --- /dev/null +++ b/static/web/img/receive-task.e1131038.svg @@ -0,0 +1,21 @@ + + + + +task_1 + + + + + diff --git a/static/web/img/start.894f1842.svg b/static/web/img/start.894f1842.svg new file mode 100644 index 0000000..58af501 --- /dev/null +++ b/static/web/img/start.894f1842.svg @@ -0,0 +1,19 @@ + + + + +start_1 + + + + + + + + diff --git a/static/web/img/user-task.90bd34cf.svg b/static/web/img/user-task.90bd34cf.svg new file mode 100644 index 0000000..760e645 --- /dev/null +++ b/static/web/img/user-task.90bd34cf.svg @@ -0,0 +1,20 @@ + + + + +task_1 + + + + + + + diff --git a/static/web/js/app.28494f00.js b/static/web/js/app.28494f00.js new file mode 100644 index 0000000..6acbfa6 --- /dev/null +++ b/static/web/js/app.28494f00.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["app"],{0:function(t,e,n){t.exports=n("56d7")},"028b":function(t,e,n){"use strict";var c=n("f12c"),a=n.n(c);a.a},"0304":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-swagger",use:"icon-swagger-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"031b":function(t,e,n){},"03ab":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-color",use:"icon-color-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"0411":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-network",use:"icon-network-usage",viewBox:"0 0 60 60",content:'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'});s.a.add(o);e["default"]=o},"064a":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-select",use:"icon-select-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"06c2":function(t,e,n){"use strict";var c=n("92a6"),a=n.n(c);a.a},"0781":function(t,e,n){"use strict";n.r(e);var c=n("24ab"),a=n.n(c),i=n("83d6"),s=n.n(i),o=s.a.showSettings,r=s.a.tagsView,l=s.a.fixedHeader,u=s.a.sidebarLogo,d={theme:a.a.theme,showSettings:o,tagsView:r,fixedHeader:l,sidebarLogo:u},h={CHANGE_SETTING:function(t,e){var n=e.key,c=e.value;t.hasOwnProperty(n)&&(t[n]=c)}},v={changeSetting:function(t,e){var n=t.commit;n("CHANGE_SETTING",e)}};e["default"]={namespaced:!0,state:d,mutations:h,actions:v}},"0870":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-calendar",use:"icon-calendar-usage",viewBox:"0 0 60 60",content:'\n\n\t\n\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'});s.a.add(o);e["default"]=o},"096e":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-skill",use:"icon-skill-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"0f9a":function(t,e,n){"use strict";n.r(e);n("96cf");var c=n("3b8d"),a=(n("7f7f"),n("b775"));function i(t){return Object(a["a"])({url:"/login",method:"post",data:t})}function s(t){return Object(a["a"])({url:"/refreshtoken",method:"post",data:t})}function o(){return Object(a["a"])({url:"/api/v1/getinfo",method:"get"})}function r(){return Object(a["a"])({url:"/api/v1/logout",method:"post"})}var l=n("5f87"),u=n("a18c"),d={token:Object(l["a"])(),name:"",avatar:"",introduction:"",roles:[],permissions:[],permisaction:[]},h={SET_TOKEN:function(t,e){t.token=e},SET_INTRODUCTION:function(t,e){t.introduction=e},SET_NAME:function(t,e){t.name=e},SET_USERID:function(t,e){t.userId=e},SET_AVATAR:function(t,e){-1!==e.indexOf("http")?t.avatar=e:t.avatar="http://localhost:8002"+e},SET_ROLES:function(t,e){t.roles=e},SET_PERMISSIONS:function(t,e){t.permisaction=e}},v={login:function(t,e){var n=t.commit;return new Promise((function(t,c){i(e).then((function(e){var c=e.token;n("SET_TOKEN",c),Object(l["c"])(c),t()})).catch((function(t){c(t)}))}))},getInfo:function(t){var e=t.commit;t.state;return new Promise((function(t,n){o().then((function(c){c&&c.data||(e("SET_TOKEN",""),Object(l["b"])(),t());var a=c.data,i=a.userId,s=a.roles,o=a.name,r=a.avatar,u=a.introduction,d=a.permissions;(!s||s.length<=0)&&n("getInfo: roles must be a non-null array!"),e("SET_PERMISSIONS",d),e("SET_ROLES",s),e("SET_NAME",o),e("SET_USERID",i),e("SET_AVATAR",r),e("SET_INTRODUCTION",u),t(c)})).catch((function(t){n(t)}))}))},LogOut:function(t){var e=t.commit,n=t.state;return new Promise((function(t,c){r(n.token).then((function(){e("SET_TOKEN",""),e("SET_ROLES",[]),e("SET_PERMISSIONS",[]),Object(l["b"])(),t()})).catch((function(t){c(t)}))}))},refreshToken:function(t){var e=t.commit,n=t.state;return new Promise((function(t,c){s({token:n.token}).then((function(n){var c=n.token;e("SET_TOKEN",c),Object(l["c"])(c),t()})).catch((function(t){c(t)}))}))},resetToken:function(t){var e=t.commit;return new Promise((function(t){e("SET_TOKEN",""),Object(l["b"])(),t()}))},changeRoles:function(t,e){var n=t.commit,a=t.dispatch;return new Promise(function(){var t=Object(c["a"])(regeneratorRuntime.mark((function t(c){var i,s,o,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e+"-token",n("SET_TOKEN",i),Object(l["c"])(i),t.next=5,a("getInfo");case 5:return s=t.sent,o=s.roles,Object(u["d"])(),t.next=10,a("permission/generateRoutes",o,{root:!0});case 10:r=t.sent,u["c"].addRoutes(r),a("tagsView/delAllViews",null,{root:!0}),c();case 14:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())}};e["default"]={namespaced:!0,state:d,mutations:h,actions:v}},"105d":function(t,e,n){},"128d":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-textarea",use:"icon-textarea-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},1296:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-vip",use:"icon-vip-usage",viewBox:"0 0 512.004 512.004",content:'\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'});s.a.add(o);e["default"]=o},"12a5":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-shopping",use:"icon-shopping-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},1430:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-qq",use:"icon-qq-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},1779:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-bug",use:"icon-bug-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"17df":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-international",use:"icon-international-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"181e":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-Assets",use:"icon-Assets-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"186a":function(t,e,n){"use strict";var c=n("dc52"),a=n.n(c);a.a},"18f0":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-link",use:"icon-link-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"199c":function(t,e){(function(){var t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?1d2d61263f13e4b288c8da19ad3ff56d";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)})()},"1e64":function(t,e,n){},"1eba":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-dict",use:"icon-dict-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"1fce":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-number",use:"icon-number-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},2156:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-gongdanshuju",use:"icon-gongdanshuju-usage",viewBox:"0 0 1056 1024",content:''});s.a.add(o);e["default"]=o},"235f":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-date",use:"icon-date-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},2384:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-switch",use:"icon-switch-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"23be":function(t,e,n){"use strict";var c=n("199c"),a=n.n(c);e["default"]=a.a},"24ab":function(t,e,n){t.exports={theme:"#1890ff"}},2580:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-language",use:"icon-language-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"2a3d":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-password",use:"icon-password-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"2a53":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-yonghu",use:"icon-yonghu-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"2f11":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-peoples",use:"icon-peoples-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},3046:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-money",use:"icon-money-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"30a7":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-dictionary",use:"icon-dictionary-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"30a9":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-system",use:"icon-system-usage",viewBox:"0 0 1084 1024",content:''});s.a.add(o);e["default"]=o},"30c3":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-example",use:"icon-example-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"31c2":function(t,e,n){"use strict";n.r(e),n.d(e,"generaMenu",(function(){return l})),n.d(e,"loadView",(function(){return u})),n.d(e,"filterAsyncRoutes",(function(){return d})),n.d(e,"filterAsyncPathRoutes",(function(){return h}));var c=n("db72"),a=(n("ac6a"),n("6762"),n("2fdb"),n("a18c")),i=n("3528"),s=n("c1f7");function o(t,e){return!e.meta||!e.meta.roles||t.some((function(t){return e.meta.roles.includes(t)}))}function r(t,e){return!e.path||t.some((function(t){return e.path===t.path}))}function l(t,e){e.forEach((function(e){var n={path:e.path,component:"Layout"===e.component?s["a"]:u(e.component),hidden:"0"!==e.visible,children:[],name:e.menuName,meta:{title:e.title,icon:e.icon,noCache:!0}};e.children&&l(n.children,e.children),t.push(n)}))}var u=function(t){return function(e){return Promise.all([n.e("chunk-77c80c5a"),n.e("chunk-67636666"),n.e("chunk-2d0e2366"),n.e("chunk-722029dc"),n.e("chunk-a6becd9c")]).then(function(){var c=[n("a8c4")("./views"+t)];e.apply(null,c)}.bind(this)).catch(n.oe)}};function d(t,e){var n=[];return t.forEach((function(t){var a=Object(c["a"])({},t);o(e,a)&&(a.children&&(a.children=d(a.children,e)),n.push(a))})),n}function h(t,e){var n=[];return t.forEach((function(t){var a=Object(c["a"])({},t);r(e,a)&&(a.children&&(a.children=h(a.children,e)),n.push(a))})),n}var v={routes:[],addRoutes:[]},f={SET_ROUTES:function(t,e){t.addRoutes=e,t.routes=a["b"].concat(e)}},g={generateRoutes:function(t,e){var n=this,c=t.commit;return new Promise((function(t){var e=[];Object(i["f"])().then((function(i){var s=i;200!==i.code?n.$message({message:"菜单数据加载异常",type:0}):(s=i.data,Object.assign(e,s),l(a["a"],e),a["a"].push({path:"*",redirect:"/404",hidden:!0}),c("SET_ROUTES",a["a"]),t(a["a"]))})).catch((function(t){console.log(t)}))}))}};e["default"]={namespaced:!0,state:v,mutations:f,actions:g}},3289:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-list",use:"icon-list-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},3495:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-tool",use:"icon-tool-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},3528:function(t,e,n){"use strict";n.d(e,"g",(function(){return a})),n.d(e,"e",(function(){return i})),n.d(e,"a",(function(){return s})),n.d(e,"h",(function(){return o})),n.d(e,"c",(function(){return r})),n.d(e,"b",(function(){return l})),n.d(e,"d",(function(){return u})),n.d(e,"f",(function(){return d}));var c=n("b775");function a(t){return Object(c["a"])({url:"/api/v1/rolelist",method:"get",params:t})}function i(t){return Object(c["a"])({url:"/api/v1/role/"+t,method:"get"})}function s(t){return Object(c["a"])({url:"/api/v1/role",method:"post",data:t})}function o(t){return Object(c["a"])({url:"/api/v1/role",method:"put",data:t})}function r(t){return Object(c["a"])({url:"/api/v1/roledatascope",method:"put",data:t})}function l(t,e){var n={roleId:t,status:e};return Object(c["a"])({url:"/api/v1/role",method:"put",data:n})}function u(t){return Object(c["a"])({url:"/api/v1/role/"+t,method:"delete"})}function d(){return Object(c["a"])({url:"/api/v1/menurole",method:"get"})}},3561:function(t,e,n){},"3a6d":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-drag copy",use:"icon-drag copy-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"3add":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-time",use:"icon-time-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"3dfd":function(t,e,n){"use strict";var c=n("d888"),a=n("23be"),i=n("2877"),s=Object(i["a"])(a["default"],c["a"],c["b"],!1,null,null,null);e["default"]=s.exports},"3fdc":function(t,e,n){},4360:function(t,e,n){"use strict";n("a481"),n("ac6a");var c=n("2b0e"),a=n("2f62"),i=(n("7f7f"),{sidebar:function(t){return t.app.sidebar},size:function(t){return t.app.size},device:function(t){return t.app.device},visitedViews:function(t){return t.tagsView.visitedViews},cachedViews:function(t){return t.tagsView.cachedViews},token:function(t){return t.user.token},avatar:function(t){return t.user.avatar},name:function(t){return t.user.name},userId:function(t){return t.user.userId},introduction:function(t){return t.user.introduction},roles:function(t){return t.user.roles},permisaction:function(t){return t.user.permisaction},permission_routes:function(t){return t.permission.routes},errorLogs:function(t){return t.errorLog.logs}}),s=i;c["default"].use(a["a"]);var o=n("c653"),r=o.keys().reduce((function(t,e){var n=e.replace(/^\.\/(.*)\.\w+$/,"$1"),c=o(e);return t[n]=c.default,t}),{}),l=new a["a"].Store({modules:r,getters:s});e["a"]=l},"46ea":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-chaoqigongdan",use:"icon-chaoqigongdan-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"47f1":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-table",use:"icon-table-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"47ff":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-message",use:"icon-message-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"48fd":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-validCode",use:"icon-validCode-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"4d49":function(t,e,n){"use strict";n.r(e);var c={logs:[]},a={ADD_ERROR_LOG:function(t,e){t.logs.push(e)},CLEAR_ERROR_LOG:function(t){t.logs.splice(0)}},i={addErrorLog:function(t,e){var n=t.commit;n("ADD_ERROR_LOG",e)},clearErrorLog:function(t){var e=t.commit;e("CLEAR_ERROR_LOG")}};e["default"]={namespaced:!0,state:c,mutations:a,actions:i}},"4dae":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-download",use:"icon-download-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"4df5":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-eye",use:"icon-eye-usage",viewBox:"0 0 128 64",content:''});s.a.add(o);e["default"]=o},"51ff":function(t,e,n){var c={"./404.svg":"a14a","./Assets.svg":"181e","./bug.svg":"1779","./build.svg":"84c3","./calendar.svg":"0870","./cascader.svg":"a393","./chaoqigongdan.svg":"46ea","./chart.svg":"c829","./checkbox.svg":"8963","./clipboard.svg":"bc35","./code.svg":"d7a5","./color.svg":"03ab","./component.svg":"56d6","./dashboard.svg":"f782","./date-range.svg":"e6df","./date.svg":"235f","./dict.svg":"1eba","./dictionary.svg":"30a7","./documentation.svg":"90fb","./download.svg":"4dae","./drag copy.svg":"3a6d","./drag.svg":"9bbf","./druid.svg":"9f46","./edit.svg":"aa46","./education.svg":"ad1c","./email.svg":"cbb7","./example.svg":"30c3","./excel.svg":"6599","./exit-fullscreen.svg":"dbc7","./eye-open.svg":"d7ec","./eye.svg":"4df5","./form.svg":"eb1b","./fullscreen.svg":"9921","./fuwuqi.svg":"5b07","./github.svg":"558d","./gongdanshuju.svg":"2156","./guide.svg":"6683","./heart.svg":"c40a","./icon.svg":"9d91","./input.svg":"81d6","./international.svg":"17df","./job.svg":"52d5","./language.svg":"2580","./link.svg":"18f0","./list.svg":"3289","./lock.svg":"ab00","./log.svg":"fea0","./logininfor.svg":"622a","./message.svg":"47ff","./money.svg":"3046","./monitor.svg":"cdec","./nested.svg":"dcf8","./network.svg":"0411","./number.svg":"1fce","./online.svg":"a3a7","./pass.svg":"9ade","./password.svg":"2a3d","./pdf.svg":"f9a1","./people.svg":"d056","./peoples.svg":"2f11","./phone.svg":"dd82","./post.svg":"5c26","./qq.svg":"1430","./question.svg":"ae00","./radio.svg":"d8dc","./rate.svg":"6786","./row.svg":"c95d","./search.svg":"8e8d","./select.svg":"064a","./server.svg":"cda5","./shopping.svg":"12a5","./size.svg":"8644","./skill.svg":"096e","./slider.svg":"eb1c","./star.svg":"708a","./swagger.svg":"0304","./switch.svg":"2384","./system.svg":"30a9","./tab.svg":"8fb7","./table.svg":"47f1","./textarea.svg":"128d","./theme.svg":"e534","./time-range.svg":"861c","./time.svg":"3add","./tool.svg":"3495","./tree-table.svg":"e7c8","./tree.svg":"93cd","./upload.svg":"9d82","./user.svg":"b3b5","./validCode.svg":"48fd","./vip.svg":"1296","./wechat.svg":"80da","./wodegongdan.svg":"adfa","./yonghu.svg":"2a53","./zip.svg":"8aa6"};function a(t){var e=i(t);return n(e)}function i(t){var e=c[t];if(!(e+1)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return e}a.keys=function(){return Object.keys(c)},a.resolve=i,t.exports=a,a.id="51ff"},"52d5":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-job",use:"icon-job-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"558d":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-github",use:"icon-github-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"559d":function(t,e,n){"use strict";var c=n("6c53"),a=n.n(c);a.a},"56d6":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-component",use:"icon-component-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"56d7":function(t,e,n){"use strict";n.r(e);var c={};n.r(c),n.d(c,"parseTime",(function(){return q["e"]})),n.d(c,"formatTime",(function(){return q["d"]})),n.d(c,"timeAgo",(function(){return W})),n.d(c,"numberFormatter",(function(){return G})),n.d(c,"toThousandFilter",(function(){return U})),n.d(c,"uppercaseFirst",(function(){return K}));n("456d"),n("ac6a"),n("cadf"),n("551c"),n("f751"),n("097d");var a=n("2b0e"),i=n("a78e"),s=n.n(i),o=(n("f5df"),n("5c96")),r=n.n(o),l=(n("24ab"),n("b20f"),n("3fdc"),n("3dfd")),u=n("4360"),d=n("a18c"),h=(n("6762"),n("2fdb"),{inserted:function(t,e,n){var c=e.value,a=u["a"].getters&&u["a"].getters.roles;if(!(c&&c instanceof Array&&c.length>0))throw new Error("need roles! Like v-permission=\"['admin','editor']\"");var i=c,s=a.some((function(t){return i.includes(t)}));s||t.parentNode&&t.parentNode.removeChild(t)}}),v={inserted:function(t,e,n){var c=e.value,a="*:*:*",i=u["a"].getters&&u["a"].getters.permisaction;if(!(c&&c instanceof Array&&c.length>0))throw new Error("请设置操作权限标签值");var s=c,o=i.some((function(t){return a===t||s.includes(t)}));o||t.parentNode&&t.parentNode.removeChild(t)}},f=function(t){t.directive("permission",h),t.directive("permisaction",v)};window.Vue&&(window["permission"]=h,window["permisaction"]=v,Vue.use(f)),h.install=f;var g=h,m=(n("a481"),n("6b54"),n("7618"));function w(t,e){if(0===arguments.length||!t)return null;var n,c=e||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(m["a"])(t)?n=t:("string"===typeof t&&/^[0-9]+$/.test(t)&&(t=parseInt(t)),"number"===typeof t&&10===t.toString().length&&(t*=1e3),n=new Date(t));var a={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},i=c.replace(/{(y|m|d|h|i|s|a)+}/g,(function(t,e){var n=a[e];return"a"===e?["日","一","二","三","四","五","六"][n]:(t.length>0&&n<10&&(n="0"+n),n||0)}));return i}function p(t){this.$refs[t]&&this.$refs[t].resetFields()}function b(t,e){var n=t;return n.beginTime="",n.endTime="",null!=e&&""!==e&&(n.beginTime=this.dateRange[0],n.endTime=this.dateRange[1]),n}function x(t,e){var n=[];return Object.keys(t).map((function(c){if(t[c].dictValue===""+e)return n.push(t[c].dictLabel),!1})),n.join("")}var y=function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isExternal?n("div",t._g({staticClass:"svg-external-icon svg-icon",style:t.styleExternalIcon},t.$listeners)):n("svg",t._g({class:t.svgClass,attrs:{"aria-hidden":"true"}},t.$listeners),[n("use",{attrs:{href:t.iconName}})])},z=[],V=n("61f7"),M={name:"SvgIcon",props:{iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExternal:function(){return Object(V["b"])(this.iconClass)},iconName:function(){return"#icon-".concat(this.iconClass)},svgClass:function(){return this.className?"svg-icon "+this.className:"svg-icon"},styleExternalIcon:function(){return{mask:"url(".concat(this.iconClass,") no-repeat 50% 50%"),"-webkit-mask":"url(".concat(this.iconClass,") no-repeat 50% 50%")}}}},C=M,H=(n("d1a7"),n("2877")),k=Object(H["a"])(C,y,z,!1,null,"4342976c",null),L=k.exports;a["default"].component("svg-icon",L);var _=n("51ff"),B=function(t){return t.keys().map(t)};B(_);var S=n("db72"),E=(n("96cf"),n("3b8d")),O=n("323e"),T=n.n(O),j=(n("a5d8"),n("5f87")),$=n("83d6"),A=n.n($),I=A.a.title||"Vue Element Admin";function D(t){return t?"".concat(t," - ").concat(I):"".concat(I)}T.a.configure({showSpinner:!1});var P=["/login","/auth-redirect"];d["c"].beforeEach(function(){var t=Object(E["a"])(regeneratorRuntime.mark((function t(e,n,c){var a,i,s,r,l;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(T.a.start(),document.title=D(e.meta.title),a=Object(j["a"])(),!a){t.next=33;break}if("/login"!==e.path){t.next=9;break}c({path:"/"}),T.a.done(),t.next=31;break;case 9:if(i=u["a"].getters.roles&&u["a"].getters.roles.length>0,!i){t.next=14;break}c(),t.next=31;break;case 14:return t.prev=14,t.next=17,u["a"].dispatch("user/getInfo");case 17:return s=t.sent,r=s.roles,t.next=21,u["a"].dispatch("permission/generateRoutes",r);case 21:l=t.sent,d["c"].addRoutes(l),c(Object(S["a"])(Object(S["a"])({},e),{},{replace:!0})),t.next=31;break;case 26:t.prev=26,t.t0=t["catch"](14),o["Message"].error(t.t0||"Has Error"),c("/login?redirect=".concat(e.path)),T.a.done();case 31:t.next=34;break;case 33:-1!==P.indexOf(e.path)?c():(c("/login?redirect=".concat(e.path)),T.a.done());case 34:case"end":return t.stop()}}),t,null,[[14,26]])})));return function(e,n,c){return t.apply(this,arguments)}}()),d["c"].afterEach((function(){T.a.done()}));var R=A.a.errorLog;function N(){var t="production";return Object(V["c"])(R)?t===R:!!Object(V["a"])(R)&&R.includes(t)}N()&&(a["default"].config.errorHandler=function(t,e,n,c){a["default"].nextTick((function(){u["a"].dispatch("errorLog/addErrorLog",{err:t,vm:e,info:n,url:window.location.href}),console.error(t,n)}))});n("c5f6");var q=n("ed08");function F(t,e){return 1===t?t+e:t+e+"s"}function W(t){var e=Date.now()/1e3-Number(t);return e<3600?F(~~(e/60)," minute"):e<86400?F(~~(e/3600)," hour"):F(~~(e/86400)," day")}function G(t,e){for(var n=[{value:1e18,symbol:"E"},{value:1e15,symbol:"P"},{value:1e12,symbol:"T"},{value:1e9,symbol:"G"},{value:1e6,symbol:"M"},{value:1e3,symbol:"k"}],c=0;c=n[c].value)return(t/n[c].value).toFixed(e).replace(/\.0+$|(\.[0-9]*[1-9])0+$/,"$1")+n[c].symbol;return t.toString()}function U(t){return(+t||0).toString().replace(/^-?\d+/g,(function(t){return t.replace(/(?=(?!\b)(\d{3})+$)/g,",")}))}function K(t){return t.charAt(0).toUpperCase()+t.slice(1)}var Z=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pagination-container",class:{hidden:t.hidden}},[n("el-pagination",t._b({attrs:{background:t.background,"current-page":t.currentPage,"page-size":t.pageSize,layout:t.layout,"page-sizes":t.pageSizes,total:t.total},on:{"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e},"update:pageSize":function(e){t.pageSize=e},"update:page-size":function(e){t.pageSize=e},"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}},"el-pagination",t.$attrs,!1))],1)},Y=[];Math.easeInOutQuad=function(t,e,n,c){return t/=c/2,t<1?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)};var J=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function Q(t){document.documentElement.scrollTop=t,document.body.parentNode.scrollTop=t,document.body.scrollTop=t}function X(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function tt(t,e,n){var c=X(),a=t-c,i=20,s=0;e="undefined"===typeof e?500:e;var o=function t(){s+=i;var o=Math.easeInOutQuad(s,c,a,e);Q(o),s'});s.a.add(o);e["default"]=o},"5c26":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-post",use:"icon-post-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"5d7c":function(t,e,n){},"5f87":function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"c",(function(){return o})),n.d(e,"b",(function(){return r}));var c=n("a78e"),a=n.n(c),i="Admin-Token";function s(){return a.a.get(i)}function o(t){return a.a.set(i,t)}function r(){return a.a.remove(i)}},"61f7":function(t,e,n){"use strict";n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}));n("6b54");function c(t){return/^(https?:|mailto:|tel:)/.test(t)}function a(t){return"string"===typeof t||t instanceof String}function i(t){return"undefined"===typeof Array.isArray?"[object Array]"===Object.prototype.toString.call(t):Array.isArray(t)}},"622a":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-logininfor",use:"icon-logininfor-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},6599:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-excel",use:"icon-excel-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},6683:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-guide",use:"icon-guide-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},6786:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-rate",use:"icon-rate-usage",viewBox:"0 0 1069 1024",content:''});s.a.add(o);e["default"]=o},6952:function(t,e,n){},"69d8":function(t,e,n){"use strict";var c=n("c3a3"),a=n.n(c);a.a},"6c53":function(t,e,n){},"708a":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-star",use:"icon-star-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},7456:function(t,e,n){},7509:function(t,e,n){"use strict";n.r(e);var c=n("75fc"),a=n("768b"),i=(n("ac6a"),n("2d63")),s=(n("7f7f"),n("6762"),n("2fdb"),{visitedViews:[],cachedViews:[]}),o={ADD_VISITED_VIEW:function(t,e){t.visitedViews.some((function(t){return t.path===e.path}))||t.visitedViews.push(Object.assign({},e,{title:e.meta.title||"no-name"}))},ADD_CACHED_VIEW:function(t,e){t.cachedViews.includes(e.name)||e.meta.noCache||t.cachedViews.push(e.name)},DEL_VISITED_VIEW:function(t,e){var n,c=Object(i["a"])(t.visitedViews.entries());try{for(c.s();!(n=c.n()).done;){var s=Object(a["a"])(n.value,2),o=s[0],r=s[1];if(r.path===e.path){t.visitedViews.splice(o,1);break}}}catch(l){c.e(l)}finally{c.f()}},DEL_CACHED_VIEW:function(t,e){var n=t.cachedViews.indexOf(e.name);n>-1&&t.cachedViews.splice(n,1)},DEL_OTHERS_VISITED_VIEWS:function(t,e){t.visitedViews=t.visitedViews.filter((function(t){return t.meta.affix||t.path===e.path}))},DEL_OTHERS_CACHED_VIEWS:function(t,e){var n=t.cachedViews.indexOf(e.name);t.cachedViews=n>-1?t.cachedViews.slice(n,n+1):[]},DEL_ALL_VISITED_VIEWS:function(t){var e=t.visitedViews.filter((function(t){return t.meta.affix}));t.visitedViews=e},DEL_ALL_CACHED_VIEWS:function(t){t.cachedViews=[]},UPDATE_VISITED_VIEW:function(t,e){var n,c=Object(i["a"])(t.visitedViews);try{for(c.s();!(n=c.n()).done;){var a=n.value;if(a.path===e.path){a=Object.assign(a,e);break}}}catch(s){c.e(s)}finally{c.f()}}},r={addView:function(t,e){var n=t.dispatch;n("addVisitedView",e),n("addCachedView",e)},addVisitedView:function(t,e){var n=t.commit;n("ADD_VISITED_VIEW",e)},addCachedView:function(t,e){var n=t.commit;n("ADD_CACHED_VIEW",e)},delView:function(t,e){var n=t.dispatch,a=t.state;return new Promise((function(t){n("delVisitedView",e),n("delCachedView",e),t({visitedViews:Object(c["a"])(a.visitedViews),cachedViews:Object(c["a"])(a.cachedViews)})}))},delVisitedView:function(t,e){var n=t.commit,a=t.state;return new Promise((function(t){n("DEL_VISITED_VIEW",e),t(Object(c["a"])(a.visitedViews))}))},delCachedView:function(t,e){var n=t.commit,a=t.state;return new Promise((function(t){n("DEL_CACHED_VIEW",e),t(Object(c["a"])(a.cachedViews))}))},delOthersViews:function(t,e){var n=t.dispatch,a=t.state;return new Promise((function(t){n("delOthersVisitedViews",e),n("delOthersCachedViews",e),t({visitedViews:Object(c["a"])(a.visitedViews),cachedViews:Object(c["a"])(a.cachedViews)})}))},delOthersVisitedViews:function(t,e){var n=t.commit,a=t.state;return new Promise((function(t){n("DEL_OTHERS_VISITED_VIEWS",e),t(Object(c["a"])(a.visitedViews))}))},delOthersCachedViews:function(t,e){var n=t.commit,a=t.state;return new Promise((function(t){n("DEL_OTHERS_CACHED_VIEWS",e),t(Object(c["a"])(a.cachedViews))}))},delAllViews:function(t,e){var n=t.dispatch,a=t.state;return new Promise((function(t){n("delAllVisitedViews",e),n("delAllCachedViews",e),t({visitedViews:Object(c["a"])(a.visitedViews),cachedViews:Object(c["a"])(a.cachedViews)})}))},delAllVisitedViews:function(t){var e=t.commit,n=t.state;return new Promise((function(t){e("DEL_ALL_VISITED_VIEWS"),t(Object(c["a"])(n.visitedViews))}))},delAllCachedViews:function(t){var e=t.commit,n=t.state;return new Promise((function(t){e("DEL_ALL_CACHED_VIEWS"),t(Object(c["a"])(n.cachedViews))}))},updateVisitedView:function(t,e){var n=t.commit;n("UPDATE_VISITED_VIEW",e)}};e["default"]={namespaced:!0,state:s,mutations:o,actions:r}},7610:function(t,e,n){"use strict";var c=n("105d"),a=n.n(c);a.a},7967:function(t,e,n){},"79b8":function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"a",(function(){return i}));var c=n("b775");function a(t){return Object(c["a"])({url:"/api/v1/settings",method:"post",data:t})}function i(t){return Object(c["a"])({url:"/api/v1/settings",method:"get",params:t})}},"7dfa":function(t,e,n){},"80da":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-wechat",use:"icon-wechat-usage",viewBox:"0 0 128 110",content:''});s.a.add(o);e["default"]=o},"81d6":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-input",use:"icon-input-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"83d6":function(t,e){t.exports={title:"ferry",showSettings:!1,tagsView:!1,fixedHeader:!1,sidebarLogo:!0,errorLog:"production"}},"84c3":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-build",use:"icon-build-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"861c":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-time-range",use:"icon-time-range-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},8644:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-size",use:"icon-size-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},8963:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-checkbox",use:"icon-checkbox-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"8aa6":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-zip",use:"icon-zip-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"8e8d":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-search",use:"icon-search-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"8fb7":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-tab",use:"icon-tab-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"8ff2":function(t,e,n){"use strict";var c=n("a5f5"),a=n.n(c);a.a},"90fb":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-documentation",use:"icon-documentation-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"92a6":function(t,e,n){},"93cd":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-tree",use:"icon-tree-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},9921:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-fullscreen",use:"icon-fullscreen-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"9a1c":function(t,e,n){},"9ade":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-pass",use:"icon-pass-usage",viewBox:"0 0 60 60",content:'\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'});s.a.add(o);e["default"]=o},"9bbf":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-drag",use:"icon-drag-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"9d82":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-upload",use:"icon-upload-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},"9d91":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-icon",use:"icon-icon-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},"9f46":function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-druid",use:"icon-druid-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},a14a:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-404",use:"icon-404-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},a18c:function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"a",(function(){return o})),n.d(e,"d",(function(){return u}));var c=n("2b0e"),a=n("8c4f"),i=n("c1f7");c["default"].use(a["a"]);var s=[{path:"/redirect",component:i["a"],hidden:!0,children:[{path:"/redirect/:path*",component:function(){return n.e("chunk-2d230fe7").then(n.bind(null,"ef3c"))}}]},{path:"/login",component:function(){return Promise.all([n.e("chunk-67636666"),n.e("chunk-1feb7e04")]).then(n.bind(null,"9ed6"))},hidden:!0},{path:"/auth-redirect",component:function(){return n.e("chunk-2d2105d3").then(n.bind(null,"b829"))},hidden:!0},{path:"/404",component:function(){return n.e("chunk-39b1e937").then(n.bind(null,"1db4"))},hidden:!0},{path:"/401",component:function(){return n.e("chunk-05a99c67").then(n.bind(null,"24e2"))},hidden:!0},{path:"/",component:i["a"],redirect:"/dashboard",children:[{path:"dashboard",component:function(){return Promise.all([n.e("chunk-77c80c5a"),n.e("chunk-07066085")]).then(n.bind(null,"9406"))},name:"首页",meta:{title:"首页",icon:"dashboard",affix:!0}}]},{path:"/profile",component:i["a"],redirect:"/profile/index",hidden:!0,children:[{path:"index",component:function(){return Promise.all([n.e("chunk-2d0e2366"),n.e("chunk-192165dd")]).then(n.bind(null,"ecac"))},name:"个人中心",meta:{title:"个人中心",icon:"user",noCache:!0}}]}],o=[],r=function(){return new a["a"]({scrollBehavior:function(){return{y:0}},routes:s})},l=r();function u(){var t=r();l.matcher=t.matcher}e["c"]=l},a393:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-cascader",use:"icon-cascader-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},a3a7:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-online",use:"icon-online-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},a5f5:function(t,e,n){},aa46:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-edit",use:"icon-edit-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},ab00:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-lock",use:"icon-lock-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},ad1c:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-education",use:"icon-education-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},adfa:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-wodegongdan",use:"icon-wodegongdan-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},ae00:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-question",use:"icon-question-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},b057:function(t,e,n){},b1fc:function(t,e,n){"use strict";var c=n("7967"),a=n.n(c);a.a},b20f:function(t,e,n){t.exports={menuText:"#bfcbd9",menuActiveText:"#409EFF",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},b3b5:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-user",use:"icon-user-usage",viewBox:"0 0 130 130",content:''});s.a.add(o);e["default"]=o},b3b6:function(t,e,n){},b775:function(t,e,n){"use strict";var c=n("bc3a"),a=n.n(c),i=n("5c96"),s=n("4360"),o=n("5f87"),r=a.a.create({baseURL:"http://localhost:8002",timeout:1e4});r.interceptors.request.use((function(t){return s["a"].getters.token&&(t.headers["Authorization"]="Bearer "+Object(o["a"])()),t}),(function(t){return Promise.reject(t)})),r.interceptors.response.use((function(t){var e=t.data.code;if(401!==e)return 6401===e?(s["a"].dispatch("user/resetToken"),i["MessageBox"].confirm("登录状态已过期,您可以继续留在该页面,或者重新登录","系统提示",{confirmButtonText:"重新登录",cancelButtonText:"取消",type:"warning"}).then((function(){location.reload()})),!1):400===e||403===e?(Object(i["Message"])({message:t.data.msg,type:"error",duration:5e3}),Promise.reject("error")):200!==e?(i["Notification"].error({title:t.data.msg}),Promise.reject("error")):t.data;s["a"].dispatch("user/resetToken"),-1!==location.href.indexOf("login")?location.reload():i["MessageBox"].confirm("登录状态已过期,您可以继续留在该页面,或者重新登录","系统提示",{confirmButtonText:"重新登录",cancelButtonText:"取消",type:"warning"}).then((function(){location.reload()}))}),(function(t){if("Network Error"!==t.message)return Object(i["Message"])({message:t.message,type:"error",duration:5e3}),Promise.reject(t);Object(i["Message"])({message:"服务器连接异常,请检查服务器!",type:"error",duration:5e3})})),e["a"]=r},bb54:function(t,e,n){"use strict";var c=n("6952"),a=n.n(c);a.a},bc35:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-clipboard",use:"icon-clipboard-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},c1f7:function(t,e,n){"use strict";var c,a,i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"app-wrapper",class:t.classObj},["mobile"===t.device&&t.sidebar.opened?n("div",{staticClass:"drawer-bg",on:{click:t.handleClickOutside}}):t._e(),t._v(" "),n("sidebar",{staticClass:"sidebar-container"}),t._v(" "),n("div",{staticClass:"main-container",class:{hasTagsView:t.needTagsView}},[n("div",{class:{"fixed-header":t.fixedHeader}},[n("navbar"),t._v(" "),t.needTagsView?n("tags-view"):t._e()],1),t._v(" "),n("app-main"),t._v(" "),t.showSettings?n("right-panel",[n("settings")],1):t._e()],1)],1)},s=[],o=n("db72"),r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"rightPanel",staticClass:"rightPanel-container",class:{show:t.show}},[n("div",{staticClass:"rightPanel-background"}),t._v(" "),n("div",{staticClass:"rightPanel"},[n("div",{staticClass:"handle-button",style:{top:t.buttonTop+"px","background-color":t.theme},on:{click:function(e){t.show=!t.show}}},[n("i",{class:t.show?"el-icon-close":"el-icon-setting"})]),t._v(" "),n("div",{staticClass:"rightPanel-items"},[t._t("default")],2)])])},l=[],u=(n("c5f6"),n("ed08")),d={name:"RightPanel",props:{clickNotClose:{default:!1,type:Boolean},buttonTop:{default:250,type:Number}},data:function(){return{show:!1}},computed:{theme:function(){return this.$store.state.settings.theme}},watch:{show:function(t){t&&!this.clickNotClose&&this.addEventClick(),t?Object(u["a"])(document.body,"showRightPanel"):Object(u["f"])(document.body,"showRightPanel")}},mounted:function(){this.insertToBody()},beforeDestroy:function(){var t=this.$refs.rightPanel;t.remove()},methods:{addEventClick:function(){window.addEventListener("click",this.closeSidebar)},closeSidebar:function(t){var e=t.target.closest(".rightPanel");e||(this.show=!1,window.removeEventListener("click",this.closeSidebar))},insertToBody:function(){var t=this.$refs.rightPanel,e=document.querySelector("body");e.insertBefore(t,e.firstChild)}}},h=d,v=(n("fab5"),n("bb54"),n("2877")),f=Object(v["a"])(h,r,l,!1,null,"7ce91d5a",null),g=f.exports,m=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"app-main"},[n("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[n("keep-alive",{attrs:{include:t.cachedViews}},[n("router-view",{key:t.key})],1)],1)],1)},w=[],p={name:"AppMain",computed:{cachedViews:function(){return this.$store.state.tagsView.cachedViews},key:function(){return this.$route.path}}},b=p,x=(n("c968"),n("028b"),Object(v["a"])(b,m,w,!1,null,"92459f82",null)),y=x.exports,z=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"navbar"},[n("hamburger",{staticClass:"hamburger-container",attrs:{id:"hamburger-container","is-active":t.sidebar.opened},on:{toggleClick:t.toggleSideBar}}),t._v(" "),n("breadcrumb",{staticClass:"breadcrumb-container",attrs:{id:"breadcrumb-container"}}),t._v(" "),n("div",{staticClass:"right-menu"},["mobile"!==t.device?[n("search",{staticClass:"right-menu-item",attrs:{id:"header-search"}}),t._v(" "),n("error-log",{staticClass:"errLog-container right-menu-item hover-effect"}),t._v(" "),n("screenfull",{staticClass:"right-menu-item hover-effect",attrs:{id:"screenfull"}})]:t._e(),t._v(" "),n("el-dropdown",{staticClass:"avatar-container right-menu-item hover-effect",attrs:{trigger:"click"}},[n("div",{staticClass:"avatar-wrapper"},[n("img",{staticClass:"user-avatar",attrs:{src:t.avatar+"?imageView2/1/w/80/h/80"}}),t._v(" "),n("span",{staticStyle:{"font-size":"14px",position:"relative",bottom:"15px"}},[t._v(t._s(t.name))]),t._v(" "),n("i",{staticClass:"el-icon-caret-bottom",staticStyle:{position:"absolute",top:"13px"}})]),t._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("router-link",{attrs:{to:"/profile/index"}},[n("el-dropdown-item",[t._v("个人中心")])],1),t._v(" "),n("el-dropdown-item",{attrs:{divided:""}},[n("span",{staticStyle:{display:"block"},on:{click:t.logout}},[t._v("退出登录")])])],1)],1)],2)],1)},V=[],M=(n("96cf"),n("3b8d")),C=n("2f62"),H=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[n("transition-group",{attrs:{name:"breadcrumb"}},t._l(t.levelList,(function(e,c){return n("el-breadcrumb-item",{key:e.path},["noRedirect"===e.redirect||c==t.levelList.length-1?n("span",{staticClass:"no-redirect"},[t._v(t._s(e.meta.title))]):n("a",{on:{click:function(n){return n.preventDefault(),t.handleLink(e)}}},[t._v(t._s(e.meta.title))])])})),1)],1)},k=[],L=(n("7f7f"),n("f559"),n("bd11")),_=n.n(L),B={data:function(){return{levelList:null}},watch:{$route:function(t){t.path.startsWith("/redirect/")||this.getBreadcrumb()}},created:function(){this.getBreadcrumb()},methods:{getBreadcrumb:function(){var t=this.$route.matched.filter((function(t){return t.meta&&t.meta.title})),e=t[0];this.isDashboard(e)||(t=[{path:"/dashboard",meta:{title:"首页"}}].concat(t)),this.levelList=t.filter((function(t){return t.meta&&t.meta.title&&!1!==t.meta.breadcrumb}))},isDashboard:function(t){var e=t&&t.name;return!!e&&"首页"===e.trim()},pathCompile:function(t){var e=this.$route.params,n=_.a.compile(t);return n(e)},handleLink:function(t){var e=t.redirect,n=t.path;e?this.$router.push(e):this.$router.push(this.pathCompile(n))}}},S=B,E=(n("f7b7"),Object(v["a"])(S,H,k,!1,null,"60fc2e42",null)),O=E.exports,T=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticStyle:{padding:"0 15px"},on:{click:t.toggleClick}},[n("svg",{staticClass:"hamburger",class:{"is-active":t.isActive},attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64"}},[n("path",{attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"}})])])},j=[],$={name:"Hamburger",props:{isActive:{type:Boolean,default:!1}},methods:{toggleClick:function(){this.$emit("toggleClick")}}},A=$,I=(n("186a"),Object(v["a"])(A,T,j,!1,null,"49e15297",null)),D=I.exports,P=function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.errorLogs.length>0?n("div",[n("el-badge",{staticStyle:{"line-height":"25px","margin-top":"-5px"},attrs:{"is-dot":!0},nativeOn:{click:function(e){t.dialogTableVisible=!0}}},[n("el-button",{staticStyle:{padding:"8px 10px"},attrs:{size:"small",type:"danger"}},[n("svg-icon",{attrs:{"icon-class":"bug"}})],1)],1),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogTableVisible,width:"80%","append-to-body":""},on:{"update:visible":function(e){t.dialogTableVisible=e}}},[n("div",{attrs:{slot:"title"},slot:"title"},[n("span",{staticStyle:{"padding-right":"10px"}},[t._v("Error Log")]),t._v(" "),n("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-delete"},on:{click:t.clearAll}},[t._v("Clear All")])],1),t._v(" "),n("el-table",{attrs:{data:t.errorLogs,border:""}},[n("el-table-column",{attrs:{label:"Message"},scopedSlots:t._u([{key:"default",fn:function(e){var c=e.row;return[n("div",[n("span",{staticClass:"message-title"},[t._v("Msg:")]),t._v(" "),n("el-tag",{attrs:{type:"danger"}},[t._v("\n "+t._s(c.err.message)+"\n ")])],1),t._v(" "),n("br"),t._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"10px"}},[t._v("Info: ")]),t._v(" "),n("el-tag",{attrs:{type:"warning"}},[t._v("\n "+t._s(c.vm.$vnode.tag)+" error in "+t._s(c.info)+"\n ")])],1),t._v(" "),n("br"),t._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"16px"}},[t._v("Url: ")]),t._v(" "),n("el-tag",{attrs:{type:"success"}},[t._v("\n "+t._s(c.url)+"\n ")])],1)]}}],null,!1,3621415002)}),t._v(" "),n("el-table-column",{attrs:{label:"Stack"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.err.stack)+"\n ")]}}],null,!1,1726869048)})],1)],1)],1):t._e()},R=[],N={name:"ErrorLog",data:function(){return{dialogTableVisible:!1}},computed:{errorLogs:function(){return this.$store.getters.errorLogs}},methods:{clearAll:function(){this.dialogTableVisible=!1,this.$store.dispatch("errorLog/clearErrorLog")}}},q=N,F=(n("69d8"),Object(v["a"])(q,P,R,!1,null,"be34583a",null)),W=F.exports,G=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("svg-icon",{attrs:{"icon-class":t.isFullscreen?"exit-fullscreen":"fullscreen"},on:{click:t.click}})],1)},U=[],K=n("93bf"),Z=n.n(K),Y={name:"Screenfull",data:function(){return{isFullscreen:!1}},mounted:function(){this.init()},beforeDestroy:function(){this.destroy()},methods:{click:function(){if(!Z.a.enabled)return this.$message({message:"you browser can not work",type:"warning"}),!1;Z.a.toggle()},change:function(){this.isFullscreen=Z.a.isFullscreen},init:function(){Z.a.enabled&&Z.a.on("change",this.change)},destroy:function(){Z.a.enabled&&Z.a.off("change",this.change)}}},J=Y,Q=(n("7610"),Object(v["a"])(J,G,U,!1,null,"1d75d652",null)),X=Q.exports,tt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"header-search",class:{show:t.show}},[n("svg-icon",{attrs:{"class-name":"search-icon","icon-class":"search"},on:{click:function(e){return e.stopPropagation(),t.click(e)}}}),t._v(" "),n("el-select",{ref:"headerSearchSelect",staticClass:"header-search-select",attrs:{"remote-method":t.querySearch,filterable:"","default-first-option":"",remote:"",placeholder:"Search"},on:{change:t.change},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}},t._l(t.options,(function(t){return n("el-option",{key:t.path,attrs:{value:t,label:t.title.join(" > ")}})})),1)],1)},et=[],nt=(n("386d"),n("75fc")),ct=n("2d63"),at=n("ffe7"),it=n.n(at),st=n("df7c"),ot=n.n(st),rt={name:"HeaderSearch",data:function(){return{search:"",options:[],searchPool:[],show:!1,fuse:void 0}},computed:{routes:function(){return this.$store.getters.permission_routes}},watch:{routes:function(){this.searchPool=this.generateRoutes(this.routes)},searchPool:function(t){this.initFuse(t)},show:function(t){t?document.body.addEventListener("click",this.close):document.body.removeEventListener("click",this.close)}},mounted:function(){this.searchPool=this.generateRoutes(this.routes)},methods:{click:function(){this.show=!this.show,this.show&&this.$refs.headerSearchSelect&&this.$refs.headerSearchSelect.focus()},close:function(){this.$refs.headerSearchSelect&&this.$refs.headerSearchSelect.blur(),this.options=[],this.show=!1},change:function(t){var e=this;this.$router.push(t.path),this.search="",this.options=[],this.$nextTick((function(){e.show=!1}))},initFuse:function(t){this.fuse=new it.a(t,{shouldSort:!0,threshold:.4,location:0,distance:100,maxPatternLength:32,minMatchCharLength:1,keys:[{name:"title",weight:.7},{name:"path",weight:.3}]})},generateRoutes:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=[],i=Object(ct["a"])(t);try{for(i.s();!(e=i.n()).done;){var s=e.value;if(!s.hidden){var o={path:ot.a.resolve(n,s.path),title:Object(nt["a"])(c)};if(s.meta&&s.meta.title&&(o.title=[].concat(Object(nt["a"])(o.title),[s.meta.title]),"noRedirect"!==s.redirect&&a.push(o)),s.children){var r=this.generateRoutes(s.children,o.path,o.title);r.length>=1&&(a=[].concat(Object(nt["a"])(a),Object(nt["a"])(r)))}}}}catch(l){i.e(l)}finally{i.f()}return a},querySearch:function(t){this.options=""!==t?this.fuse.search(t):[]}}},lt=rt,ut=(n("b1fc"),Object(v["a"])(lt,tt,et,!1,null,"60e4cb60",null)),dt=ut.exports,ht={components:{Breadcrumb:O,Hamburger:D,ErrorLog:W,Screenfull:X,Search:dt},computed:Object(o["a"])({},Object(C["b"])(["sidebar","avatar","device","name"])),methods:{toggleSideBar:function(){this.$store.dispatch("app/toggleSideBar")},logout:function(){var t=Object(M["a"])(regeneratorRuntime.mark((function t(){var e=this;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:this.$confirm("确定注销并退出系统吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){e.$store.dispatch("user/LogOut").then((function(){location.reload()}))}));case 1:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}()}},vt=ht,ft=(n("cb44"),Object(v["a"])(vt,z,V,!1,null,"c8149618",null)),gt=ft.exports,mt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"drawer-container"},[n("div",[n("h3",{staticClass:"drawer-title"},[t._v("页面设置")]),t._v(" "),n("div",{staticClass:"drawer-item"},[n("span",[t._v("主题颜色")]),t._v(" "),n("theme-picker",{staticStyle:{float:"right",height:"26px",margin:"-3px 8px 0 0"},on:{change:t.themeChange}})],1),t._v(" "),n("div",{staticClass:"drawer-item"},[n("span",[t._v("开启任务栏")]),t._v(" "),n("el-switch",{staticClass:"drawer-switch",model:{value:t.tagsView,callback:function(e){t.tagsView=e},expression:"tagsView"}})],1),t._v(" "),n("div",{staticClass:"drawer-item"},[n("span",[t._v("Header 固定")]),t._v(" "),n("el-switch",{staticClass:"drawer-switch",model:{value:t.fixedHeader,callback:function(e){t.fixedHeader=e},expression:"fixedHeader"}})],1),t._v(" "),n("div",{staticClass:"drawer-item"},[n("span",[t._v("侧边栏Logo")]),t._v(" "),n("el-switch",{staticClass:"drawer-switch",model:{value:t.sidebarLogo,callback:function(e){t.sidebarLogo=e},expression:"sidebarLogo"}})],1)])])},wt=[],pt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-color-picker",{staticClass:"theme-picker",attrs:{predefine:["#409EFF","#1890ff","#304156","#212121","#11a983","#13c2c2","#6959CD","#f5222d"],"popper-class":"theme-picker-dropdown"},model:{value:t.theme,callback:function(e){t.theme=e},expression:"theme"}})},bt=[],xt=(n("6b54"),n("ac6a"),n("3b2b"),n("a481"),n("f6f8").version),yt="#409EFF",zt={data:function(){return{chalk:"",theme:""}},computed:{defaultTheme:function(){return this.$store.state.settings.theme}},watch:{defaultTheme:{handler:function(t,e){this.theme=t},immediate:!0},theme:function(){var t=Object(M["a"])(regeneratorRuntime.mark((function t(e){var n,c,a,i,s,o,r,l,u=this;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(n=this.chalk?this.theme:yt,"string"===typeof e){t.next=3;break}return t.abrupt("return");case 3:if(c=this.getThemeCluster(e.replace("#","")),a=this.getThemeCluster(n.replace("#","")),i=this.$message({message:" Compiling the theme",customClass:"theme-message",type:"success",duration:0,iconClass:"el-icon-loading"}),s=function(t,e){return function(){var n=u.getThemeCluster(yt.replace("#","")),a=u.updateStyle(u[t],n,c),i=document.getElementById(e);i||(i=document.createElement("style"),i.setAttribute("id",e),document.head.appendChild(i)),i.innerText=a}},this.chalk){t.next=11;break}return o="https://unpkg.com/element-ui@".concat(xt,"/lib/theme-chalk/index.css"),t.next=11,this.getCSSString(o,"chalk");case 11:r=s("chalk","chalk-style"),r(),l=[].slice.call(document.querySelectorAll("style")).filter((function(t){var e=t.innerText;return new RegExp(n,"i").test(e)&&!/Chalk Variables/.test(e)})),l.forEach((function(t){var e=t.innerText;"string"===typeof e&&(t.innerText=u.updateStyle(e,a,c))})),this.$emit("change",e),i.close();case 17:case"end":return t.stop()}}),t,this)})));function e(e){return t.apply(this,arguments)}return e}()},methods:{updateStyle:function(t,e,n){var c=t;return e.forEach((function(t,e){c=c.replace(new RegExp(t,"ig"),n[e])})),c},getCSSString:function(t,e){var n=this;return new Promise((function(c){var a=new XMLHttpRequest;a.onreadystatechange=function(){4===a.readyState&&200===a.status&&(n[e]=a.responseText.replace(/@font-face{[^}]+}/,""),c())},a.open("GET",t),a.send()}))},getThemeCluster:function(t){for(var e=function(t,e){var n=parseInt(t.slice(0,2),16),c=parseInt(t.slice(2,4),16),a=parseInt(t.slice(4,6),16);return 0===e?[n,c,a].join(","):(n+=Math.round(e*(255-n)),c+=Math.round(e*(255-c)),a+=Math.round(e*(255-a)),n=n.toString(16),c=c.toString(16),a=a.toString(16),"#".concat(n).concat(c).concat(a))},n=function(t,e){var n=parseInt(t.slice(0,2),16),c=parseInt(t.slice(2,4),16),a=parseInt(t.slice(4,6),16);return n=Math.round((1-e)*n),c=Math.round((1-e)*c),a=Math.round((1-e)*a),n=n.toString(16),c=c.toString(16),a=a.toString(16),"#".concat(n).concat(c).concat(a)},c=[t],a=0;a<=9;a++)c.push(e(t,Number((a/10).toFixed(2))));return c.push(n(t,.1)),c}}},Vt=zt,Mt=(n("06c2"),Object(v["a"])(Vt,pt,bt,!1,null,null,null)),Ct=Mt.exports,Ht={components:{ThemePicker:Ct},data:function(){return{}},computed:{fixedHeader:{get:function(){return this.$store.state.settings.fixedHeader},set:function(t){this.$store.dispatch("settings/changeSetting",{key:"fixedHeader",value:t})}},tagsView:{get:function(){return this.$store.state.settings.tagsView},set:function(t){this.$store.dispatch("settings/changeSetting",{key:"tagsView",value:t})}},sidebarLogo:{get:function(){return this.$store.state.settings.sidebarLogo},set:function(t){this.$store.dispatch("settings/changeSetting",{key:"sidebarLogo",value:t})}}},methods:{themeChange:function(t){this.$store.dispatch("settings/changeSetting",{key:"theme",value:t})}}},kt=Ht,Lt=(n("559d"),Object(v["a"])(kt,mt,wt,!1,null,"4e90c272",null)),_t=Lt.exports,Bt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:{"has-logo":t.showLogo}},[t.showLogo?n("logo",{attrs:{collapse:t.isCollapse}}):t._e(),t._v(" "),n("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[n("el-menu",{attrs:{"default-active":t.activeMenu,collapse:t.isCollapse,"background-color":t.variables.menuBg,"text-color":t.variables.menuText,"unique-opened":!1,"active-text-color":t.variables.menuActiveText,"collapse-transition":!1,mode:"vertical"}},t._l(t.permission_routes,(function(t){return n("sidebar-item",{key:t.path,attrs:{item:t,"base-path":t.path}})})),1)],1)],1)},St=[],Et=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-logo-container",class:{collapse:t.collapse}},[n("transition",{attrs:{name:"sidebarLogoFade"}},[t.collapse?n("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[t.sysInfo.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:t.sysInfo.logo}}):n("h1",{staticClass:"sidebar-title"},[t._v(t._s(t.sysInfo.name)+" ")])]):n("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[t.sysInfo.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:t.sysInfo.logo}}):t._e(),t._v(" "),n("h1",{staticClass:"sidebar-title"},[t._v(t._s(t.sysInfo.name)+" ")])])],1)],1)},Ot=[],Tt=n("79b8"),jt={name:"SidebarLogo",props:{collapse:{type:Boolean,required:!0}},data:function(){return{sysInfo:{name:"",logo:""}}},created:function(){var t=this;Object(Tt["a"])({classify:1}).then((function(e){t.sysInfo=e.data[0].content}))}},$t=jt,At=(n("d689"),Object(v["a"])($t,Et,Ot,!1,null,"7f84893a",null)),It=At.exports,Dt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.item.hidden?t._e():n("div",{staticClass:"menu-wrapper"},[!t.hasOneShowingChild(t.item.children,t.item)||t.onlyOneChild.children&&!t.onlyOneChild.noShowingChildren||t.item.alwaysShow?n("el-submenu",{ref:"subMenu",attrs:{index:t.resolvePath(t.item.path),"popper-append-to-body":""}},[n("template",{slot:"title"},[t.item.meta?n("item",{attrs:{icon:t.item.meta&&t.item.meta.icon,title:t.item.meta.title}}):t._e()],1),t._v(" "),t._l(t.item.children,(function(e){return n("sidebar-item",{key:e.path,staticClass:"nest-menu",attrs:{"is-nest":!0,item:e,"base-path":t.resolvePath(e.path)}})}))],2):[t.onlyOneChild.meta?n("app-link",{attrs:{to:t.resolvePath(t.onlyOneChild.path)}},[n("el-menu-item",{class:{"submenu-title-noDropdown":!t.isNest},attrs:{index:t.resolvePath(t.onlyOneChild.path)}},[n("item",{attrs:{icon:t.onlyOneChild.meta.icon||t.item.meta&&t.item.meta.icon,title:t.onlyOneChild.meta.title}})],1)],1):t._e()]],2)},Pt=[],Rt=n("61f7"),Nt={name:"MenuItem",functional:!0,props:{icon:{type:String,default:""},title:{type:String,default:""}},render:function(t,e){var n=e.props,c=n.icon,a=n.title,i=[];return c&&i.push(t("svg-icon",{attrs:{"icon-class":c}})),a&&i.push(t("span",{slot:"title"},[a])),i}},qt=Nt,Ft=Object(v["a"])(qt,c,a,!1,null,null,null),Wt=Ft.exports,Gt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("component",t._b({},"component",t.linkProps(t.to),!1),[t._t("default")],2)},Ut=[],Kt={props:{to:{type:String,required:!0}},methods:{linkProps:function(t){return Object(Rt["b"])(t)?{is:"a",href:t,target:"_blank",rel:"noopener"}:{is:"router-link",to:t}}}},Zt=Kt,Yt=Object(v["a"])(Zt,Gt,Ut,!1,null,null,null),Jt=Yt.exports,Qt={computed:{device:function(){return this.$store.state.app.device}},mounted:function(){this.fixBugIniOS()},methods:{fixBugIniOS:function(){var t=this,e=this.$refs.subMenu;if(e){var n=e.handleMouseleave;e.handleMouseleave=function(e){"mobile"!==t.device&&n(e)}}}}},Xt={name:"SidebarItem",components:{Item:Wt,AppLink:Jt},mixins:[Qt],props:{item:{type:Object,required:!0},isNest:{type:Boolean,default:!1},basePath:{type:String,default:""}},data:function(){return this.onlyOneChild=null,{}},methods:{hasOneShowingChild:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,c=e.filter((function(e){return!e.hidden&&(t.onlyOneChild=e,!0)}));return 1===c.length||0===c.length&&(this.onlyOneChild=Object(o["a"])(Object(o["a"])({},n),{},{path:"",noShowingChildren:!0}),!0)},resolvePath:function(t){return Object(Rt["b"])(t)?t:Object(Rt["b"])(this.basePath)?this.basePath:ot.a.resolve(this.basePath,t)}}},te=Xt,ee=Object(v["a"])(te,Dt,Pt,!1,null,null,null),ne=ee.exports,ce=n("cf1e"),ae=n.n(ce),ie={components:{SidebarItem:ne,Logo:It},computed:Object(o["a"])(Object(o["a"])({},Object(C["b"])(["permission_routes","sidebar"])),{},{activeMenu:function(){var t=this.$route,e=t.meta,n=t.path;return e.activeMenu?e.activeMenu:n},showLogo:function(){return this.$store.state.settings.sidebarLogo},variables:function(){return ae.a},isCollapse:function(){return!this.sidebar.opened}})},se=ie,oe=Object(v["a"])(se,Bt,St,!1,null,null,null),re=oe.exports,le=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"tags-view-container",attrs:{id:"tags-view-container"}},[n("scroll-pane",{ref:"scrollPane",staticClass:"tags-view-wrapper"},t._l(t.visitedViews,(function(e){return n("router-link",{key:e.path,ref:"tag",refInFor:!0,staticClass:"tags-view-item",class:t.isActive(e)?"active":"",attrs:{to:{path:e.path,query:e.query,fullPath:e.fullPath},tag:"span"},nativeOn:{mouseup:function(n){if("button"in n&&1!==n.button)return null;!t.isAffix(e)&&t.closeSelectedTag(e)},contextmenu:function(n){return n.preventDefault(),t.openMenu(e,n)}}},[t._v("\n "+t._s(e.title)+"\n "),t.isAffix(e)?t._e():n("span",{staticClass:"el-icon-close",on:{click:function(n){return n.preventDefault(),n.stopPropagation(),t.closeSelectedTag(e)}}})])})),1),t._v(" "),n("ul",{directives:[{name:"show",rawName:"v-show",value:t.visible,expression:"visible"}],staticClass:"contextmenu",style:{left:t.left+"px",top:t.top+"px"}},[n("li",{on:{click:function(e){return t.refreshSelectedTag(t.selectedTag)}}},[t._v("Refresh")]),t._v(" "),t.isAffix(t.selectedTag)?t._e():n("li",{on:{click:function(e){return t.closeSelectedTag(t.selectedTag)}}},[t._v("Close")]),t._v(" "),n("li",{on:{click:t.closeOthersTags}},[t._v("Close Others")]),t._v(" "),n("li",{on:{click:function(e){return t.closeAllTags(t.selectedTag)}}},[t._v("Close All")])])],1)},ue=[],de=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-scrollbar",{ref:"scrollContainer",staticClass:"scroll-container",attrs:{vertical:!1},nativeOn:{wheel:function(e){return e.preventDefault(),t.handleScroll(e)}}},[t._t("default")],2)},he=[],ve=(n("20d6"),4),fe={name:"ScrollPane",data:function(){return{left:0}},computed:{scrollWrapper:function(){return this.$refs.scrollContainer.$refs.wrap}},methods:{handleScroll:function(t){var e=t.wheelDelta||40*-t.deltaY,n=this.scrollWrapper;n.scrollLeft=n.scrollLeft+e/4},moveToTarget:function(t){var e=this.$refs.scrollContainer.$el,n=e.offsetWidth,c=this.scrollWrapper,a=this.$parent.$refs.tag,i=null,s=null;if(a.length>0&&(i=a[0],s=a[a.length-1]),i===t)c.scrollLeft=0;else if(s===t)c.scrollLeft=c.scrollWidth-n;else{var o=a.findIndex((function(e){return e===t})),r=a[o-1],l=a[o+1],u=l.$el.offsetLeft+l.$el.offsetWidth+ve,d=r.$el.offsetLeft-ve;u>c.scrollLeft+n?c.scrollLeft=u-n:d1&&void 0!==arguments[1]?arguments[1]:"/",c=[];return t.forEach((function(t){if(t.meta&&t.meta.affix){var a=ot.a.resolve(n,t.path);c.push({fullPath:a,path:a,name:t.name,meta:Object(o["a"])({},t.meta)})}if(t.children){var i=e.filterAffixTags(t.children,t.path);i.length>=1&&(c=[].concat(Object(nt["a"])(c),Object(nt["a"])(i)))}})),c},initTags:function(){var t,e=this.affixTags=this.filterAffixTags(this.routes),n=Object(ct["a"])(e);try{for(n.s();!(t=n.n()).done;){var c=t.value;c.name&&this.$store.dispatch("tagsView/addVisitedView",c)}}catch(a){n.e(a)}finally{n.f()}},addTags:function(){var t=this.$route.name;return t&&this.$store.dispatch("tagsView/addView",this.$route),!1},moveToCurrentTag:function(){var t=this,e=this.$refs.tag;this.$nextTick((function(){var n,c=Object(ct["a"])(e);try{for(c.s();!(n=c.n()).done;){var a=n.value;if(a.to.path===t.$route.path){t.$refs.scrollPane.moveToTarget(a),a.to.fullPath!==t.$route.fullPath&&t.$store.dispatch("tagsView/updateVisitedView",t.$route);break}}}catch(i){c.e(i)}finally{c.f()}}))},refreshSelectedTag:function(t){var e=this;this.$store.dispatch("tagsView/delCachedView",t).then((function(){var n=t.fullPath;e.$nextTick((function(){e.$router.replace({path:"/redirect"+n})}))}))},closeSelectedTag:function(t){var e=this;this.$store.dispatch("tagsView/delView",t).then((function(n){var c=n.visitedViews;e.isActive(t)&&e.toLastView(c,t)}))},closeOthersTags:function(){var t=this;this.$router.push(this.selectedTag),this.$store.dispatch("tagsView/delOthersViews",this.selectedTag).then((function(){t.moveToCurrentTag()}))},closeAllTags:function(t){var e=this;this.$store.dispatch("tagsView/delAllViews").then((function(n){var c=n.visitedViews;e.affixTags.some((function(e){return e.path===t.path}))||e.toLastView(c,t)}))},toLastView:function(t,e){var n=t.slice(-1)[0];n?this.$router.push(n.fullPath):"Dashboard"===e.name?this.$router.replace({path:"/redirect"+e.fullPath}):this.$router.push("/")},openMenu:function(t,e){var n=105,c=this.$el.getBoundingClientRect().left,a=this.$el.offsetWidth,i=a-n,s=e.clientX-c+15;this.left=s>i?i:s,this.top=e.clientY,this.visible=!0,this.selectedTag=t},closeMenu:function(){this.visible=!1}}},be=pe,xe=(n("dc1a"),n("cfaa"),Object(v["a"])(be,le,ue,!1,null,"19d3bba2",null)),ye=xe.exports,ze=n("4360"),Ve=document,Me=Ve.body,Ce=992,He={watch:{$route:function(t){"mobile"===this.device&&this.sidebar.opened&&ze["a"].dispatch("app/closeSideBar",{withoutAnimation:!1})}},beforeMount:function(){window.addEventListener("resize",this.$_resizeHandler)},beforeDestroy:function(){window.removeEventListener("resize",this.$_resizeHandler)},mounted:function(){var t=this.$_isMobile();t&&(ze["a"].dispatch("app/toggleDevice","mobile"),ze["a"].dispatch("app/closeSideBar",{withoutAnimation:!0}))},methods:{$_isMobile:function(){var t=Me.getBoundingClientRect();return t.width-1'});s.a.add(o);e["default"]=o},c653:function(t,e,n){var c={"./app.js":"d9cd","./errorLog.js":"4d49","./permission.js":"31c2","./settings.js":"0781","./tagsView.js":"7509","./user.js":"0f9a"};function a(t){var e=i(t);return n(e)}function i(t){var e=c[t];if(!(e+1)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return e}a.keys=function(){return Object.keys(c)},a.resolve=i,t.exports=a,a.id="c653"},c829:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-chart",use:"icon-chart-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},c95d:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-row",use:"icon-row-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},c968:function(t,e,n){"use strict";var c=n("9a1c"),a=n.n(c);a.a},cb44:function(t,e,n){"use strict";var c=n("7dfa"),a=n.n(c);a.a},cbb7:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-email",use:"icon-email-usage",viewBox:"0 0 128 96",content:''});s.a.add(o);e["default"]=o},cda5:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-server",use:"icon-server-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},cdec:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-monitor",use:"icon-monitor-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},cf1e:function(t,e,n){t.exports={menuText:"#bfcbd9",menuActiveText:"#409EFF",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},cfaa:function(t,e,n){"use strict";var c=n("3561"),a=n.n(c);a.a},d056:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-people",use:"icon-people-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},d1a7:function(t,e,n){"use strict";var c=n("031b"),a=n.n(c);a.a},d689:function(t,e,n){"use strict";var c=n("b057"),a=n.n(c);a.a},d7a5:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-code",use:"icon-code-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},d7ec:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-eye-open",use:"icon-eye-open-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},d888:function(t,e,n){"use strict";var c=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("router-view")],1)},a=[];n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return a}))},d8dc:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-radio",use:"icon-radio-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},d9cd:function(t,e,n){"use strict";n.r(e);var c=n("a78e"),a=n.n(c),i={sidebar:{opened:!a.a.get("sidebarStatus")||!!+a.a.get("sidebarStatus"),withoutAnimation:!1},device:"desktop",size:a.a.get("size")||"medium"},s={TOGGLE_SIDEBAR:function(t){t.sidebar.opened=!t.sidebar.opened,t.sidebar.withoutAnimation=!1,t.sidebar.opened?a.a.set("sidebarStatus",1):a.a.set("sidebarStatus",0)},CLOSE_SIDEBAR:function(t,e){a.a.set("sidebarStatus",0),t.sidebar.opened=!1,t.sidebar.withoutAnimation=e},TOGGLE_DEVICE:function(t,e){t.device=e},SET_SIZE:function(t,e){t.size=e,a.a.set("size",e)}},o={toggleSideBar:function(t){var e=t.commit;e("TOGGLE_SIDEBAR")},closeSideBar:function(t,e){var n=t.commit,c=e.withoutAnimation;n("CLOSE_SIDEBAR",c)},toggleDevice:function(t,e){var n=t.commit;n("TOGGLE_DEVICE",e)},setSize:function(t,e){var n=t.commit;n("SET_SIZE",e)}};e["default"]={namespaced:!0,state:i,mutations:s,actions:o}},dbc7:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-exit-fullscreen",use:"icon-exit-fullscreen-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},dc1a:function(t,e,n){"use strict";var c=n("1e64"),a=n.n(c);a.a},dc52:function(t,e,n){},dcd8:function(t,e,n){"use strict";var c=n("fa5b"),a=n.n(c);a.a},dcf8:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-nested",use:"icon-nested-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},dd82:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-phone",use:"icon-phone-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},e498:function(t,e,n){"use strict";var c=n("7456"),a=n.n(c);a.a},e534:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-theme",use:"icon-theme-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},e6df:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-date-range",use:"icon-date-range-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},e7c8:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-tree-table",use:"icon-tree-table-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},eb1b:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-form",use:"icon-form-usage",viewBox:"0 0 128 128",content:''});s.a.add(o);e["default"]=o},eb1c:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-slider",use:"icon-slider-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},ed08:function(t,e,n){"use strict";n.d(e,"e",(function(){return a})),n.d(e,"d",(function(){return i})),n.d(e,"b",(function(){return s})),n.d(e,"a",(function(){return r})),n.d(e,"f",(function(){return l})),n.d(e,"c",(function(){return u}));n("3b2b"),n("4917"),n("4f7f"),n("5df3"),n("1c4c"),n("28a5"),n("ac6a"),n("456d"),n("f576"),n("a481"),n("6b54");var c=n("7618");function a(t,e){if(0===arguments.length)return null;var n,a=e||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(c["a"])(t)?n=t:("string"===typeof t&&/^[0-9]+$/.test(t)&&(t=parseInt(t)),"number"===typeof t&&10===t.toString().length&&(t*=1e3),n=new Date(t));var i={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},s=a.replace(/{([ymdhisa])+}/g,(function(t,e){var n=i[e];return"a"===e?["日","一","二","三","四","五","六"][n]:n.toString().padStart(2,"0")}));return s}function i(t,e){t=10===(""+t).length?1e3*parseInt(t):+t;var n=new Date(t),c=Date.now(),i=(c-n)/1e3;return i<30?"刚刚":i<3600?Math.ceil(i/60)+"分钟前":i<86400?Math.ceil(i/3600)+"小时前":i<172800?"1天前":e?a(t,e):n.getMonth()+1+"月"+n.getDate()+"日"+n.getHours()+"时"+n.getMinutes()+"分"}function s(t,e,n){var c,a,i,s,o,r=function r(){var l=+new Date-s;l0?c=setTimeout(r,e-l):(c=null,n||(o=t.apply(i,a),c||(i=a=null)))};return function(){for(var a=arguments.length,l=new Array(a),u=0;u'});s.a.add(o);e["default"]=o},f7b7:function(t,e,n){"use strict";var c=n("5d7c"),a=n.n(c);a.a},f9a1:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-pdf",use:"icon-pdf-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o},fa5b:function(t,e,n){},fab5:function(t,e,n){"use strict";var c=n("b3b6"),a=n.n(c);a.a},fea0:function(t,e,n){"use strict";n.r(e);var c=n("e017"),a=n.n(c),i=n("21a1"),s=n.n(i),o=new a.a({id:"icon-log",use:"icon-log-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(o);e["default"]=o}},[[0,"runtime","chunk-elementUI","chunk-libs"]]]); \ No newline at end of file diff --git a/static/web/js/chunk-05a99c67.bc0bb6be.js b/static/web/js/chunk-05a99c67.bc0bb6be.js new file mode 100644 index 0000000..c5226f8 --- /dev/null +++ b/static/web/js/chunk-05a99c67.bc0bb6be.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-05a99c67"],{"1a27":function(t,a,i){"use strict";var e=i("37a3"),s=i.n(e);s.a},"24e2":function(t,a,i){"use strict";i.r(a);var e=function(){var t=this,a=t.$createElement,i=t._self._c||a;return i("div",{staticClass:"errPage-container"},[i("el-button",{staticClass:"pan-back-btn",attrs:{icon:"el-icon-arrow-left"},on:{click:t.back}},[t._v("\n 返回\n ")]),t._v(" "),i("el-row",[i("el-col",{attrs:{span:12}},[i("h1",{staticClass:"text-jumbo text-ginormous"},[t._v("\n Oops!\n ")]),t._v("\n gif来源"),i("a",{attrs:{href:"https://zh.airbnb.com/",target:"_blank"}},[t._v("airbnb")]),t._v(" 页面\n "),i("h2",[t._v("你没有权限去该页面")]),t._v(" "),i("h6",[t._v("如有不满请联系你领导")]),t._v(" "),i("ul",{staticClass:"list-unstyled"},[i("li",[t._v("或者你可以去:")]),t._v(" "),i("li",{staticClass:"link-type"},[i("router-link",{attrs:{to:"/dashboard"}},[t._v("\n 回首页\n ")])],1),t._v(" "),i("li",{staticClass:"link-type"},[i("a",{attrs:{href:"https://www.taobao.com/"}},[t._v("随便看看")])]),t._v(" "),i("li",[i("a",{attrs:{href:"#"},on:{click:function(a){a.preventDefault(),t.dialogVisible=!0}}},[t._v("点我看图")])])])]),t._v(" "),i("el-col",{attrs:{span:12}},[i("img",{attrs:{src:t.errGif,width:"313",height:"428",alt:"Girl has dropped her ice cream."}})])],1),t._v(" "),i("el-dialog",{attrs:{visible:t.dialogVisible,title:"随便看"},on:{"update:visible":function(a){t.dialogVisible=a}}},[i("img",{staticClass:"pan-img",attrs:{src:t.ewizardClap}})])],1)},s=[],n=i("cc6c"),r=i.n(n),c={name:"Page401",data:function(){return{errGif:r.a+"?"+ +new Date,ewizardClap:"https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646",dialogVisible:!1}},methods:{back:function(){this.$route.query.noGoBack?this.$router.push({path:"/dashboard"}):this.$router.go(-1)}}},l=c,o=(i("1a27"),i("2877")),u=Object(o["a"])(l,e,s,!1,null,"35ca77fc",null);a["default"]=u.exports},"37a3":function(t,a,i){},cc6c:function(t,a,i){t.exports=i.p+"static/web/img/401.089007e7.gif"}}]); \ No newline at end of file diff --git a/static/web/js/chunk-07066085.4abdd204.js b/static/web/js/chunk-07066085.4abdd204.js new file mode 100644 index 0000000..60d4898 --- /dev/null +++ b/static/web/js/chunk-07066085.4abdd204.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-07066085"],{"0431":function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{class:t.className,style:{height:t.height,width:t.width}})},i=[],n=e("313e"),r=e.n(n),c=e("a7dc");e("817d");var l={mixins:[c["default"]],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"300px"},processOrderList:{type:Object,required:!0}},data:function(){return{chart:null}},mounted:function(){var t=this;this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{initChart:function(){this.chart=r.a.init(this.$el,"macarons"),this.chart.setOption({title:{text:"最受欢迎的流程 TOP10",textStyle:{fontSize:15}},tooltip:{trigger:"axis"},grid:{top:45,left:30,right:"5%",bottom:20,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:this.processOrderList.title},yAxis:{type:"value"},series:[{data:this.processOrderList.submit_count,type:"line",areaStyle:{}}]})}}},o=l,d=e("2877"),u=Object(d["a"])(o,s,i,!1,null,null,null);a["default"]=u.exports},"1e54":function(t,a,e){"use strict";var s=e("f2cc"),i=e.n(s);i.a},"36ef":function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{class:t.className,style:{height:t.height,width:t.width}})},i=[],n=e("313e"),r=e.n(n),c=e("a7dc");e("817d");var l={mixins:[c["default"]],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"350px"},autoResize:{type:Boolean,default:!0},statisticsData:{type:Object,required:!0}},data:function(){return{chart:null}},watch:{statisticsData:{deep:!0,handler:function(t){this.setOptions(t)}}},mounted:function(){var t=this;this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{initChart:function(){this.chart=r.a.init(this.$el,"macarons"),this.setOptions(this.statisticsData)},setOptions:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.expectedData,t.actualData;this.chart.setOption({title:{text:"最近7天工单统计",textStyle:{fontSize:15}},tooltip:{trigger:"axis"},legend:{data:["工单总数","待办工单","已完成工单"]},grid:{left:"25",right:"45",bottom:"20",top:"50",containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:this.statisticsData.datetime},yAxis:{type:"value"},series:[{name:"工单总数",type:"line",data:this.statisticsData.total},{name:"待办工单",type:"line",data:this.statisticsData.processing},{name:"已完成工单",type:"line",data:this.statisticsData.overs}]})}}},o=l,d=e("2877"),u=Object(d["a"])(o,s,i,!1,null,null,null);a["default"]=u.exports},"3f2c":function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"dashboard-editor-container"},[e("panel-group",{attrs:{"panel-group-value":t.dashboardValue.panelGroup}}),t._v(" "),e("el-row",{staticStyle:{background:"#fff",padding:"16px 16px 0","margin-bottom":"32px"}},[e("line-chart",{attrs:{"statistics-data":t.dashboardValue.statisticsData}})],1),t._v(" "),e("el-row",{attrs:{gutter:32}},[e("el-col",{attrs:{xs:24,sm:24,lg:8}},[e("div",{staticClass:"chart-wrapper"},[e("TicketSubmissionRanking",{attrs:{"submit-ranking-data":t.dashboardValue.submitRankingData}})],1)]),t._v(" "),e("el-col",{attrs:{xs:24,sm:24,lg:16}},[e("div",{staticClass:"chart-wrapper"},[e("processOrderList",{attrs:{"process-order-list":t.dashboardValue.processOrderList}})],1)])],1)],1)},i=[],n=e("6768"),r=e("36ef"),c=e("ed66"),l=e("0431"),o={name:"DashboardAdmin",components:{PanelGroup:n["default"],LineChart:r["default"],TicketSubmissionRanking:c["default"],processOrderList:l["default"]},props:["dashboardValue"],data:function(){return{}}},d=o,u=(e("1e54"),e("2877")),h=Object(u["a"])(d,s,i,!1,null,"0d1abac5",null);a["default"]=h.exports},6768:function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("el-row",{staticClass:"panel-group",attrs:{gutter:40}},[e("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[e("div",{staticClass:"card-panel"},[e("div",{staticClass:"card-panel-icon-wrapper"},[e("svg-icon",{attrs:{"icon-class":"yonghu","class-name":"card-panel-icon"}})],1),t._v(" "),e("div",{staticClass:"card-panel-description"},[e("div",{staticClass:"card-panel-text"},[t._v("\n 用户总数\n ")]),t._v(" "),e("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.panelGroupValue.user_total_count,duration:2e3}})],1)])]),t._v(" "),e("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[e("div",{staticClass:"card-panel"},[e("div",{staticClass:"card-panel-icon-wrapper icon-gongdanshuju"},[e("svg-icon",{attrs:{"icon-class":"gongdanshuju","class-name":"card-panel-icon"}})],1),t._v(" "),e("div",{staticClass:"card-panel-description"},[e("div",{staticClass:"card-panel-text"},[t._v("\n 工单总数\n ")]),t._v(" "),e("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.panelGroupValue.work_order_total_count,duration:2200}})],1)])]),t._v(" "),e("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[e("div",{staticClass:"card-panel"},[e("div",{staticClass:"card-panel-icon-wrapper"},[e("svg-icon",{attrs:{"icon-class":"chaoqigongdan","class-name":"card-panel-icon"}})],1),t._v(" "),e("div",{staticClass:"card-panel-description"},[e("div",{staticClass:"card-panel-text"},[t._v("\n 待办总数\n ")]),t._v(" "),e("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.panelGroupValue.upcoming_total_count,duration:2400}})],1)])]),t._v(" "),e("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[e("div",{staticClass:"card-panel"},[e("div",{staticClass:"card-panel-icon-wrapper"},[e("svg-icon",{attrs:{"icon-class":"wodegongdan","class-name":"card-panel-icon"}})],1),t._v(" "),e("div",{staticClass:"card-panel-description"},[e("div",{staticClass:"card-panel-text"},[t._v("\n 个人待办\n ")]),t._v(" "),e("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.panelGroupValue.my_upcoming_count,duration:2800}})],1)])])],1)},i=[],n=e("ec1b"),r=e.n(n),c={components:{CountTo:r.a},props:["panelGroupValue"]},l=c,o=(e("7d8e"),e("2877")),d=Object(o["a"])(l,s,i,!1,null,"634acd46",null);a["default"]=d.exports},"7d8e":function(t,a,e){"use strict";var s=e("94c4"),i=e.n(s);i.a},9406:function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"dashboard-container"},[t.dashboardStatus?e("adminDashboard",{attrs:{"dashboard-value":t.dashboardValue}}):t._e()],1)},i=[],n=e("3f2c"),r=e("b775");function c(t){return Object(r["a"])({url:"/api/v1/dashboard",method:"get",params:t})}var l={name:"Dashboard",components:{adminDashboard:n["default"]},data:function(){return{dashboardStatus:!1}},created:function(){var t=this;c().then((function(a){t.dashboardValue=a.data,t.dashboardStatus=!0}))}},o=l,d=e("2877"),u=Object(d["a"])(o,s,i,!1,null,null,null);a["default"]=u.exports},"94c4":function(t,a,e){},a7dc:function(t,a,e){"use strict";e.r(a);var s=e("ed08");a["default"]={data:function(){return{$_sidebarElm:null,$_resizeHandler:null}},mounted:function(){var t=this;this.$_resizeHandler=Object(s["b"])((function(){t.chart&&t.chart.resize()}),100),this.$_initResizeEvent(),this.$_initSidebarResizeEvent()},beforeDestroy:function(){this.$_destroyResizeEvent(),this.$_destroySidebarResizeEvent()},activated:function(){this.$_initResizeEvent(),this.$_initSidebarResizeEvent()},deactivated:function(){this.$_destroyResizeEvent(),this.$_destroySidebarResizeEvent()},methods:{$_initResizeEvent:function(){window.addEventListener("resize",this.$_resizeHandler)},$_destroyResizeEvent:function(){window.removeEventListener("resize",this.$_resizeHandler)},$_sidebarResizeHandler:function(t){"width"===t.propertyName&&this.$_resizeHandler()},$_initSidebarResizeEvent:function(){this.$_sidebarElm=document.getElementsByClassName("sidebar-container")[0],this.$_sidebarElm&&this.$_sidebarElm.addEventListener("transitionend",this.$_sidebarResizeHandler)},$_destroySidebarResizeEvent:function(){this.$_sidebarElm&&this.$_sidebarElm.removeEventListener("transitionend",this.$_sidebarResizeHandler)}}}},ed66:function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{class:t.className,style:{height:t.height,width:t.width}})},i=[],n=e("313e"),r=e.n(n),c=e("a7dc");e("817d");var l={mixins:[c["default"]],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"300px"},submitRankingData:{type:Object,required:!0}},data:function(){return{chart:null}},mounted:function(){var t=this;this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{initChart:function(){this.chart=r.a.init(this.$el,"macarons"),this.chart.setOption({title:{text:"工单提交排名",textStyle:{fontSize:15}},tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},grid:{top:45,left:"3%",right:"5%",bottom:"20",containLabel:!0},xAxis:{type:"value",boundaryGap:[0,.01]},yAxis:{type:"category",data:this.submitRankingData.nickname},series:[{type:"bar",barWidth:20,data:this.submitRankingData.rankingCount}]})}}},o=l,d=e("2877"),u=Object(d["a"])(o,s,i,!1,null,null,null);a["default"]=u.exports},f2cc:function(t,a,e){}}]); \ No newline at end of file diff --git a/static/web/js/chunk-192165dd.7d0f452c.js b/static/web/js/chunk-192165dd.7d0f452c.js new file mode 100644 index 0000000..c37679b --- /dev/null +++ b/static/web/js/chunk-192165dd.7d0f452c.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-192165dd"],{"2dde":function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("el-form",{ref:"form",attrs:{model:e.user,rules:e.rules,"label-width":"80px"}},[r("el-form-item",{attrs:{label:"用户昵称",prop:"nickName"}},[r("el-input",{model:{value:e.user.nickName,callback:function(t){e.$set(e.user,"nickName",t)},expression:"user.nickName"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"手机号码",prop:"phone"}},[r("el-input",{attrs:{maxlength:"11"},model:{value:e.user.phone,callback:function(t){e.$set(e.user,"phone",t)},expression:"user.phone"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"邮箱",prop:"email"}},[r("el-input",{attrs:{maxlength:"50"},model:{value:e.user.email,callback:function(t){e.$set(e.user,"email",t)},expression:"user.email"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"性别"}},[r("el-radio-group",{model:{value:e.user.sex,callback:function(t){e.$set(e.user,"sex",t)},expression:"user.sex"}},[r("el-radio",{attrs:{label:"0"}},[e._v("男")]),e._v(" "),r("el-radio",{attrs:{label:"1"}},[e._v("女")])],1)],1),e._v(" "),r("el-form-item",[r("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.submit}},[e._v("保存")]),e._v(" "),r("el-button",{attrs:{type:"danger",size:"mini"},on:{click:e.close}},[e._v("关闭")])],1)],1)},a=[],o=r("b150"),i={props:{user:{type:Object}},data:function(){return{rules:{nickName:[{required:!0,message:"用户昵称不能为空",trigger:"blur"}],email:[{required:!0,message:"邮箱地址不能为空",trigger:"blur"},{type:"email",message:"'请输入正确的邮箱地址",trigger:["blur","change"]}],phone:[{required:!0,message:"手机号码不能为空",trigger:"blur"},{pattern:/^1[3|4|5|6|7|8|9][0-9]\d{8}$/,message:"请输入正确的手机号码",trigger:"blur"}]}}},methods:{submit:function(){var e=this;this.$refs["form"].validate((function(t){t&&Object(o["k"])(e.user).then((function(t){200===t.code?e.msgSuccess("修改成功"):e.msgError(t.msg)}))}))},close:function(){this.$store.dispatch("tagsView/delView",this.$route),this.$router.push({path:"/dashboard"})}}},l=i,n=r("2877"),u=Object(n["a"])(l,s,a,!1,null,null,null);t["default"]=u.exports},3823:function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("el-form",{ref:"form",attrs:{model:e.user,rules:e.rules,"label-width":"80px"}},[r("el-form-item",{attrs:{label:"旧密码",prop:"oldPassword"}},[r("el-input",{attrs:{placeholder:"请输入旧密码",type:"password"},model:{value:e.user.oldPassword,callback:function(t){e.$set(e.user,"oldPassword",t)},expression:"user.oldPassword"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"新密码",prop:"newPassword"}},[r("el-input",{attrs:{placeholder:"请输入新密码",type:"password"},model:{value:e.user.newPassword,callback:function(t){e.$set(e.user,"newPassword",t)},expression:"user.newPassword"}})],1),e._v(" "),r("el-form-item",{staticStyle:{"/* margin-bottom":"10px */"},attrs:{label:"确认密码",prop:"confirmPassword"}},[r("el-input",{attrs:{placeholder:"请确认密码",type:"password"},model:{value:e.user.confirmPassword,callback:function(t){e.$set(e.user,"confirmPassword",t)},expression:"user.confirmPassword"}})],1),e._v(" "),r("el-form-item",[r("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.submit}},[e._v("保存")]),e._v(" "),r("el-button",{attrs:{type:"danger",size:"mini"},on:{click:e.close}},[e._v("关闭")])],1)],1)},a=[],o=r("b150"),i={data:function(){var e=this,t=function(t,r,s){e.user.newPassword!==r?s(new Error("两次输入的密码不一致")):s()};return{passwordTyleStatus:!0,user:{oldPassword:void 0,newPassword:void 0,confirmPassword:void 0,passwordType:1},rules:{oldPassword:[{required:!0,message:"旧密码不能为空",trigger:"blur"}],newPassword:[{required:!0,message:"新密码不能为空",trigger:"blur"},{min:6,max:20,message:"长度在 6 到 20 个字符",trigger:"blur"}],confirmPassword:[{required:!0,message:"确认密码不能为空",trigger:"blur"},{required:!0,validator:t,trigger:"blur"}]}}},methods:{submit:function(){var e=this;this.$refs["form"].validate((function(t){t&&(e.passwordTyleStatus||(e.user.passwordType=0),e.user.passwordType=0,Object(o["l"])(e.user.oldPassword,e.user.newPassword,e.user.passwordType).then((function(t){200===t.code?e.msgSuccess("修改成功"):e.msgError(t.msg)})))}))},close:function(){this.$store.dispatch("tagsView/delView",this.$route),this.$router.push({path:"/index"})}}},l=i,n=r("2877"),u=Object(n["a"])(l,s,a,!1,null,null,null);t["default"]=u.exports},"88c9":function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("img",{staticClass:"img-circle img-lg",attrs:{src:e.options.img,title:"点击上传头像"},on:{click:function(t){return e.editCropper()}}}),e._v(" "),r("el-dialog",{attrs:{title:e.title,visible:e.open,width:"800px"},on:{"update:visible":function(t){e.open=t}}},[r("el-row",[r("el-col",{style:{height:"350px"},attrs:{xs:24,md:12}},[r("vue-cropper",{ref:"cropper",attrs:{img:e.options.img,info:!0,"auto-crop":e.options.autoCrop,"auto-crop-width":e.options.autoCropWidth,"auto-crop-height":e.options.autoCropHeight,"fixed-box":e.options.fixedBox},on:{realTime:e.realTime}})],1),e._v(" "),r("el-col",{style:{height:"350px"},attrs:{xs:24,md:12}},[r("div",{staticClass:"avatar-upload-preview"},[r("img",{style:e.previews.img,attrs:{src:e.previews.url}})])])],1),e._v(" "),r("br"),e._v(" "),r("el-row",[r("el-col",{attrs:{lg:2,md:2}},[r("el-upload",{attrs:{action:"#","http-request":e.requestUpload,"show-file-list":!1,"before-upload":e.beforeUpload}},[r("el-button",{attrs:{size:"small"}},[e._v("\n 上传\n "),r("i",{staticClass:"el-icon-upload el-icon--right"})])],1)],1),e._v(" "),r("el-col",{attrs:{lg:{span:1,offset:2},md:2}},[r("el-button",{attrs:{icon:"el-icon-plus",size:"small"},on:{click:function(t){return e.changeScale(1)}}})],1),e._v(" "),r("el-col",{attrs:{lg:{span:1,offset:1},md:2}},[r("el-button",{attrs:{icon:"el-icon-minus",size:"small"},on:{click:function(t){return e.changeScale(-1)}}})],1),e._v(" "),r("el-col",{attrs:{lg:{span:1,offset:1},md:2}},[r("el-button",{attrs:{icon:"el-icon-refresh-left",size:"small"},on:{click:function(t){return e.rotateLeft()}}})],1),e._v(" "),r("el-col",{attrs:{lg:{span:1,offset:1},md:2}},[r("el-button",{attrs:{icon:"el-icon-refresh-right",size:"small"},on:{click:function(t){return e.rotateRight()}}})],1),e._v(" "),r("el-col",{attrs:{lg:{span:2,offset:6},md:2}},[r("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){return e.uploadImg()}}},[e._v("提 交")])],1)],1)],1)],1)},a=[],o=r("4360"),i=r("7e79"),l=r("b150"),n={components:{VueCropper:i["VueCropper"]},props:{user:{type:Object}},data:function(){return{open:!1,title:"修改头像",options:{img:o["a"].getters.avatar,autoCrop:!0,autoCropWidth:200,autoCropHeight:200,fixedBox:!0},previews:{}}},methods:{editCropper:function(){this.open=!0},requestUpload:function(){},rotateLeft:function(){this.$refs.cropper.rotateLeft()},rotateRight:function(){this.$refs.cropper.rotateRight()},changeScale:function(e){e=e||1,this.$refs.cropper.changeScale(e)},beforeUpload:function(e){var t=this;if(-1===e.type.indexOf("image/"))this.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。");else{var r=new FileReader;r.readAsDataURL(e),r.onload=function(){t.options.img=r.result}}},uploadImg:function(){var e=this;this.$refs.cropper.getCropBlob((function(t){var r=new FormData;r.append("upload[]",t),Object(l["m"])(r).then((function(t){200===t.code?(e.open=!1,e.options.img="http://localhost:8002/"+t.data,e.msgSuccess("修改成功")):e.msgError(t.msg),e.$refs.cropper.clearCrop()}))}))},realTime:function(e){this.previews=e}}},u=n,c=r("2877"),p=Object(c["a"])(u,s,a,!1,null,null,null);t["default"]=p.exports},b150:function(e,t,r){"use strict";r.d(t,"i",(function(){return a})),r.d(t,"e",(function(){return o})),r.d(t,"f",(function(){return i})),r.d(t,"a",(function(){return l})),r.d(t,"k",(function(){return n})),r.d(t,"c",(function(){return u})),r.d(t,"d",(function(){return c})),r.d(t,"j",(function(){return p})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return m})),r.d(t,"l",(function(){return f})),r.d(t,"m",(function(){return v})),r.d(t,"h",(function(){return g}));var s=r("b775");function a(e){return Object(s["a"])({url:"/api/v1/sysUserList",method:"get",params:e})}function o(e){return Object(s["a"])({url:"/api/v1/sysUser/"+e,method:"get"})}function i(){return Object(s["a"])({url:"/api/v1/sysUser/",method:"get"})}function l(e){return Object(s["a"])({url:"/api/v1/sysUser",method:"post",data:e})}function n(e){return Object(s["a"])({url:"/api/v1/sysUser",method:"put",data:e})}function u(e){return Object(s["a"])({url:"/api/v1/sysUser/"+e,method:"delete"})}function c(e){return Object(s["a"])({url:"/api/v1/sysUser/export",method:"get",params:e})}function p(e,t){var r={userId:e,password:t};return Object(s["a"])({url:"/api/v1/sysUser",method:"put",data:r})}function d(e,t){var r={userId:e,status:t};return Object(s["a"])({url:"/api/v1/sysUser",method:"put",data:r})}function m(){return Object(s["a"])({url:"/api/v1/user/profile",method:"get"})}function f(e,t,r){var a={oldPassword:e,newPassword:t,passwordType:r};return Object(s["a"])({url:"/api/v1/user/pwd",method:"put",data:a})}function v(e){return Object(s["a"])({url:"/api/v1/user/avatar",method:"post",data:e})}function g(){return Object(s["a"])({url:"/api/v1/sysUser/importTemplate",method:"get"})}},ecac:function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"app-container"},[r("el-row",{attrs:{gutter:20}},[r("el-col",{attrs:{span:6,xs:24}},[r("el-card",{staticClass:"box-card"},[r("div",{staticClass:"clearfix",attrs:{slot:"header"},slot:"header"},[r("span",[e._v("个人信息")])]),e._v(" "),r("div",[r("div",{staticClass:"text-center"},[r("userAvatar",{attrs:{user:e.user}})],1),e._v(" "),r("ul",{staticClass:"list-group list-group-striped"},[r("li",{staticClass:"list-group-item"},[r("svg-icon",{attrs:{"icon-class":"user"}}),e._v(" 用户名称\n "),r("div",{staticClass:"pull-right"},[e._v(e._s(e.user.username))])],1),e._v(" "),r("li",{staticClass:"list-group-item"},[r("svg-icon",{attrs:{"icon-class":"phone"}}),e._v(" 手机号码\n "),r("div",{staticClass:"pull-right"},[e._v(e._s(e.user.phone))])],1),e._v(" "),r("li",{staticClass:"list-group-item"},[r("svg-icon",{attrs:{"icon-class":"email"}}),e._v(" 用户邮箱\n "),r("div",{staticClass:"pull-right"},[e._v(e._s(e.user.email))])],1),e._v(" "),r("li",{staticClass:"list-group-item"},[r("svg-icon",{attrs:{"icon-class":"tree"}}),e._v(" 所属部门\n "),r("div",{staticClass:"pull-right"},[e._v(e._s(e.deptName))])],1),e._v(" "),r("li",{staticClass:"list-group-item"},[r("svg-icon",{attrs:{"icon-class":"peoples"}}),e._v(" 所属角色\n "),r("div",{staticClass:"pull-right"},[e._v(e._s(e.roleName))])],1),e._v(" "),r("li",{staticClass:"list-group-item"},[r("svg-icon",{attrs:{"icon-class":"date"}}),e._v(" 创建日期\n "),r("div",{staticClass:"pull-right"},[e._v(e._s(e.parseTime(e.user.create_time)))])],1)])])])],1),e._v(" "),r("el-col",{attrs:{span:18,xs:24}},[r("el-card",[r("div",{staticClass:"clearfix",attrs:{slot:"header"},slot:"header"},[r("span",[e._v("基本资料")])]),e._v(" "),r("el-tabs",{model:{value:e.activeTab,callback:function(t){e.activeTab=t},expression:"activeTab"}},[r("el-tab-pane",{attrs:{label:"基本资料",name:"userinfo"}},[r("userInfo",{attrs:{user:e.user}})],1),e._v(" "),r("el-tab-pane",{attrs:{label:"修改密码",name:"resetPwd"}},[r("resetPwd",{attrs:{user:e.user}})],1)],1)],1)],1)],1)],1)},a=[],o=r("88c9"),i=r("2dde"),l=r("3823"),n=r("b150"),u={name:"Profile",components:{userAvatar:o["default"],userInfo:i["default"],resetPwd:l["default"]},data:function(){return{user:{},roleGroup:{},postGroup:{},deptGroup:{},activeTab:"userinfo",roleIds:void 0,postIds:void 0,roleName:void 0,postName:void 0,dept:{},deptName:void 0}},created:function(){this.getUser()},methods:{getUser:function(){var e=this;Object(n["g"])().then((function(t){if(e.user=t.data,e.roleIds=t.roleIds,e.roleGroup=t.roles,e.roleIds[0])for(var r in e.roleGroup)e.roleIds[0]===e.roleGroup[r].roleId&&(e.roleName=e.roleGroup[r].roleName);else e.roleName="暂无";e.dept=t.dept,e.deptName=e.dept.deptName}))}}},c=u,p=r("2877"),d=Object(p["a"])(c,s,a,!1,null,null,null);t["default"]=d.exports}}]); \ No newline at end of file diff --git a/static/web/js/chunk-1feb7e04.17b2a605.js b/static/web/js/chunk-1feb7e04.17b2a605.js new file mode 100644 index 0000000..e0f301d --- /dev/null +++ b/static/web/js/chunk-1feb7e04.17b2a605.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1feb7e04"],{4678:function(e,s,t){var a={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"73332","./en-il.js":"73332","./en-in":"ec2e","./en-in.js":"ec2e","./en-nz":"6f50","./en-nz.js":"6f50","./en-sg":"b7e9","./en-sg.js":"b7e9","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df48","./fa.js":"8df48","./fi":"81e9","./fi.js":"81e9","./fil":"d69a","./fil.js":"d69a","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b46","./gd.js":"f6b46","./gl":"8840","./gl.js":"8840","./gom-deva":"aaf2","./gom-deva.js":"aaf2","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./oc-lnc":"167b","./oc-lnc.js":"167b","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e9","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e9","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tk":"5aff","./tk.js":"5aff","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf75","./tlh.js":"cf75","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-mo":"3a6c","./zh-mo.js":"3a6c","./zh-tw":"90ea","./zh-tw.js":"90ea"};function n(e){var s=o(e);return t(s)}function o(e){var s=a[e];if(!(s+1)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s}n.keys=function(){return Object.keys(a)},n.resolve=o,e.exports=n,n.id="4678"},"9ed6":function(e,s,t){"use strict";t.r(s);var a=function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("div",{staticClass:"login-container"},[t("div",{attrs:{id:"particles-js"}},[t("vue-particles",{attrs:{color:"#dedede","particle-opacity":.7,"particles-number":80,"shape-type":"circle","particle-size":4,"lines-color":"#dedede","lines-width":1,"line-linked":!0,"line-opacity":.4,"lines-distance":150,"move-speed":3,"hover-effect":!0,"hover-mode":"grab","click-effect":!0,"click-mode":"push"}})],1),e._v(" "),t("div",{staticClass:"login-weaper animated bounceInDown"},[t("div",{staticClass:"login-left"},[t("div",{staticClass:"login-time",domProps:{textContent:e._s(e.currentTime)}}),e._v(" "),t("img",{staticClass:"img",attrs:{src:""!==e.sysInfo.logo?e.sysInfo.logo:"https://www.fdevops.com/wp-content/uploads/2020/08/1597815294-ferry_logo_white.png",alt:""}}),e._v(" "),t("p",{staticClass:"title",domProps:{textContent:e._s(""!==e.sysInfo.name?e.sysInfo.name:"ferry 管理平台")}})]),e._v(" "),t("div",{staticClass:"login-border"},[t("div",{staticClass:"login-main"},[t("div",{staticClass:"login-title"},[e._v(" 用户登录 ")]),e._v(" "),t("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.loginForm,rules:e.loginRules,autocomplete:"on","label-position":"left"}},[t("el-form-item",{attrs:{prop:"username"}},[t("span",{staticClass:"svg-container"},[t("i",{staticClass:"el-icon-user"})]),e._v(" "),t("el-input",{ref:"username",attrs:{placeholder:"用户名",name:"username",type:"text",tabindex:"1",autocomplete:"on"},model:{value:e.loginForm.username,callback:function(s){e.$set(e.loginForm,"username",s)},expression:"loginForm.username"}})],1),e._v(" "),t("el-tooltip",{attrs:{content:"Caps lock is On",placement:"right",manual:""},model:{value:e.capsTooltip,callback:function(s){e.capsTooltip=s},expression:"capsTooltip"}},[t("el-form-item",{attrs:{prop:"password"}},[t("span",{staticClass:"svg-container"},[t("svg-icon",{attrs:{"icon-class":"password"}})],1),e._v(" "),t("el-input",{key:e.passwordType,ref:"password",attrs:{type:e.passwordType,placeholder:"密码",name:"password",tabindex:"2",autocomplete:"on"},on:{blur:function(s){e.capsTooltip=!1}},nativeOn:{keyup:[function(s){return e.checkCapslock(s)},function(s){return!s.type.indexOf("key")&&e._k(s.keyCode,"enter",13,s.key,"Enter")?null:e.handleLogin(s)}]},model:{value:e.loginForm.password,callback:function(s){e.$set(e.loginForm,"password",s)},expression:"loginForm.password"}}),e._v(" "),t("span",{staticClass:"show-pwd",on:{click:e.showPwd}},[t("svg-icon",{attrs:{"icon-class":"password"===e.passwordType?"eye":"eye-open"}})],1)],1)],1),e._v(" "),t("el-form-item",{staticStyle:{width:"66%",float:"left","margin-bottom":"13px"},attrs:{prop:"code"}},[t("span",{staticClass:"svg-container"},[t("svg-icon",{attrs:{"icon-class":"validCode"}})],1),e._v(" "),t("el-input",{ref:"username",staticStyle:{width:"75%"},attrs:{placeholder:"验证码",name:"username",type:"text",tabindex:"3",maxlength:"5",autocomplete:"off"},nativeOn:{keyup:function(s){return!s.type.indexOf("key")&&e._k(s.keyCode,"enter",13,s.key,"Enter")?null:e.handleLogin(s)}},model:{value:e.loginForm.code,callback:function(s){e.$set(e.loginForm,"code",s)},expression:"loginForm.code"}})],1),e._v(" "),t("div",{staticClass:"login-code",staticStyle:{cursor:"pointer",width:"30%",height:"48px",float:"right","background-color":"#f0f1f5"}},[t("img",{staticStyle:{height:"48px",width:"100%",border:"1px solid rgba(0,0,0, 0.1)","border-radius":"5px"},attrs:{src:e.codeUrl},on:{click:e.getCode}})]),e._v(" "),t("div",{staticStyle:{width:"100%",float:"left","margin-bottom":"13px"},attrs:{prop:"code"}},[t("el-checkbox",{model:{value:e.sysInfo.is_ldap,callback:function(s){e.$set(e.sysInfo,"is_ldap",s)},expression:"sysInfo.is_ldap"}},[e._v("LDAP登陆")])],1),e._v(" "),t("el-button",{staticStyle:{width:"100%",padding:"12px 20px","margin-bottom":"30px"},attrs:{loading:e.loading,type:"primary"},nativeOn:{click:function(s){return s.preventDefault(),e.handleLogin(s)}}},[e.loading?t("span",[e._v("登 录 中...")]):t("span",[e._v("登 录")])])],1)],1)])])])},n=[],o=(t("ac6a"),t("456d"),t("b775"));function i(){return Object(o["a"])({url:"/api/v1/getCaptcha",method:"get"})}var r=t("79b8"),c=t("c1df"),l=t.n(c),d={name:"Login",data:function(){return{codeUrl:"",cookiePassword:"",loginForm:{username:"",password:"",rememberMe:!1,code:"",uuid:"",loginType:1},loginRules:{username:[{required:!0,trigger:"blur",message:"用户名不能为空"}],password:[{required:!0,trigger:"blur",message:"密码不能为空"}],code:[{required:!0,trigger:"change",message:"验证码不能为空"}]},passwordType:"password",capsTooltip:!1,loading:!1,redirect:void 0,otherQuery:{},currentTime:null,sysInfo:{logo:"",name:"",is_ldap:!1}}},watch:{$route:{handler:function(e){var s=e.query;s&&(this.redirect=s.redirect,this.otherQuery=this.getOtherQuery(s))},immediate:!0}},created:function(){this.getCode(),this.getCurrentTime(),this.getSystemSetting()},mounted:function(){""===this.loginForm.username?this.$refs.username.focus():""===this.loginForm.password&&this.$refs.password.focus()},destroyed:function(){clearInterval(this.timer)},methods:{getSystemSetting:function(){var e=this;Object(r["a"])({classify:1}).then((function(s){e.sysInfo=s.data[0].content}))},getCurrentTime:function(){var e=this;this.timer=setInterval((function(s){e.currentTime=l()().format("YYYY-MM-DD HH时mm分ss秒")}),1e3)},getCode:function(){var e=this;i().then((function(s){void 0!==s&&(e.codeUrl=s.data,e.loginForm.uuid=s.id)}))},checkCapslock:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=e.shiftKey,t=e.key;t&&1===t.length&&(this.capsTooltip=!!(s&&t>="a"&&t<="z"||!s&&t>="A"&&t<="Z")),"CapsLock"===t&&!0===this.capsTooltip&&(this.capsTooltip=!1)},showPwd:function(){var e=this;"password"===this.passwordType?this.passwordType="":this.passwordType="password",this.$nextTick((function(){e.$refs.password.focus()}))},handleLogin:function(){var e=this;this.$refs.loginForm.validate((function(s){if(!s)return!1;e.sysInfo.is_ldap?e.loginForm.loginType=1:e.loginForm.loginType=0,e.loading=!0,e.$store.dispatch("user/login",e.loginForm).then((function(){e.$router.push({path:"/"}),e.loading=!1})).catch((function(){e.loading=!1,e.getCode()}))}))},getOtherQuery:function(e){return Object.keys(e).reduce((function(s,t){return"redirect"!==t&&(s[t]=e[t]),s}),{})}}},f=d,u=(t("f9c6"),t("2877")),p=Object(u["a"])(f,a,n,!1,null,"853cf330",null);s["default"]=p.exports},ef8d:function(e,s,t){},f9c6:function(e,s,t){"use strict";var a=t("ef8d"),n=t.n(a);n.a}}]); \ No newline at end of file diff --git a/static/web/js/chunk-2d0e2366.340e6654.js b/static/web/js/chunk-2d0e2366.340e6654.js new file mode 100644 index 0000000..1def947 --- /dev/null +++ b/static/web/js/chunk-2d0e2366.340e6654.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0e2366"],{"7e79":function(t,e,o){!function(e,o){t.exports=o()}(window,(function(){return function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=6)}([function(t,e,o){var n=o(2);"string"==typeof n&&(n=[[t.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(4)(n,r),n.locals&&(t.exports=n.locals)},function(t,e,o){"use strict";var n=o(0);o.n(n).a},function(t,e,o){(t.exports=o(3)(!1)).push([t.i,'\n.vue-cropper[data-v-6dae58fd] {\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n direction: ltr;\n touch-action: none;\n text-align: left;\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC");\n}\n.cropper-box[data-v-6dae58fd],\n.cropper-box-canvas[data-v-6dae58fd],\n.cropper-drag-box[data-v-6dae58fd],\n.cropper-crop-box[data-v-6dae58fd],\n.cropper-face[data-v-6dae58fd] {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n user-select: none;\n}\n.cropper-box-canvas img[data-v-6dae58fd] {\n position: relative;\n text-align: left;\n user-select: none;\n transform: none;\n max-width: none;\n max-height: none;\n}\n.cropper-box[data-v-6dae58fd] {\n overflow: hidden;\n}\n.cropper-move[data-v-6dae58fd] {\n cursor: move;\n}\n.cropper-crop[data-v-6dae58fd] {\n cursor: crosshair;\n}\n.cropper-modal[data-v-6dae58fd] {\n background: rgba(0, 0, 0, 0.5);\n}\n.cropper-crop-box[data-v-6dae58fd] {\n /*border: 2px solid #39f;*/\n}\n.cropper-view-box[data-v-6dae58fd] {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n user-select: none;\n}\n.cropper-view-box img[data-v-6dae58fd] {\n user-select: none;\n text-align: left;\n max-width: none;\n max-height: none;\n}\n.cropper-face[data-v-6dae58fd] {\n top: 0;\n left: 0;\n background-color: #fff;\n opacity: 0.1;\n}\n.crop-info[data-v-6dae58fd] {\n position: absolute;\n left: 0px;\n min-width: 65px;\n text-align: center;\n color: white;\n line-height: 20px;\n background-color: rgba(0, 0, 0, 0.8);\n font-size: 12px;\n}\n.crop-line[data-v-6dae58fd] {\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0.1;\n}\n.line-w[data-v-6dae58fd] {\n top: -3px;\n left: 0;\n height: 5px;\n cursor: n-resize;\n}\n.line-a[data-v-6dae58fd] {\n top: 0;\n left: -3px;\n width: 5px;\n cursor: w-resize;\n}\n.line-s[data-v-6dae58fd] {\n bottom: -3px;\n left: 0;\n height: 5px;\n cursor: s-resize;\n}\n.line-d[data-v-6dae58fd] {\n top: 0;\n right: -3px;\n width: 5px;\n cursor: e-resize;\n}\n.crop-point[data-v-6dae58fd] {\n position: absolute;\n width: 8px;\n height: 8px;\n opacity: 0.75;\n background-color: #39f;\n border-radius: 100%;\n}\n.point1[data-v-6dae58fd] {\n top: -4px;\n left: -4px;\n cursor: nw-resize;\n}\n.point2[data-v-6dae58fd] {\n top: -5px;\n left: 50%;\n margin-left: -3px;\n cursor: n-resize;\n}\n.point3[data-v-6dae58fd] {\n top: -4px;\n right: -4px;\n cursor: ne-resize;\n}\n.point4[data-v-6dae58fd] {\n top: 50%;\n left: -4px;\n margin-top: -3px;\n cursor: w-resize;\n}\n.point5[data-v-6dae58fd] {\n top: 50%;\n right: -4px;\n margin-top: -3px;\n cursor: e-resize;\n}\n.point6[data-v-6dae58fd] {\n bottom: -5px;\n left: -4px;\n cursor: sw-resize;\n}\n.point7[data-v-6dae58fd] {\n bottom: -5px;\n left: 50%;\n margin-left: -3px;\n cursor: s-resize;\n}\n.point8[data-v-6dae58fd] {\n bottom: -5px;\n right: -4px;\n cursor: se-resize;\n}\n@media screen and (max-width: 500px) {\n.crop-point[data-v-6dae58fd] {\n position: absolute;\n width: 20px;\n height: 20px;\n opacity: 0.45;\n background-color: #39f;\n border-radius: 100%;\n}\n.point1[data-v-6dae58fd] {\n top: -10px;\n left: -10px;\n}\n.point2[data-v-6dae58fd],\n .point4[data-v-6dae58fd],\n .point5[data-v-6dae58fd],\n .point7[data-v-6dae58fd] {\n display: none;\n}\n.point3[data-v-6dae58fd] {\n top: -10px;\n right: -10px;\n}\n.point4[data-v-6dae58fd] {\n top: 0;\n left: 0;\n}\n.point6[data-v-6dae58fd] {\n bottom: -10px;\n left: -10px;\n}\n.point8[data-v-6dae58fd] {\n bottom: -10px;\n right: -10px;\n}\n}\n',""])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var o=function(t,e){var o=t[1]||"",n=t[3];if(!n)return o;if(e&&"function"==typeof btoa){var r=function(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}(n),i=n.sources.map((function(t){return"/*# sourceURL="+n.sourceRoot+t+" */"}));return[o].concat(i).concat([r]).join("\n")}return[o].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o})).join("")},e.i=function(t,o){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},r=0;r=0&&c.splice(e,1)}function f(t){var e=document.createElement("style");if(void 0===t.attrs.type&&(t.attrs.type="text/css"),void 0===t.attrs.nonce){var n=function(){return o.nc}();n&&(t.attrs.nonce=n)}return g(e,t.attrs),d(t,e),e}function g(t,e){Object.keys(e).forEach((function(o){t.setAttribute(o,e[o])}))}function v(t,e){var o,n,r,i;if(e.transform&&t.css){if(!(i="function"==typeof e.transform?e.transform(t.css):e.transform.default(t.css)))return function(){};t.css=i}if(e.singleton){var c=a++;o=s||(s=f(e)),n=w.bind(null,o,c,!1),r=w.bind(null,o,c,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(t){var e=document.createElement("link");return void 0===t.attrs.type&&(t.attrs.type="text/css"),t.attrs.rel="stylesheet",g(e,t.attrs),d(t,e),e}(e),n=function(t,e,o){var n=o.css,r=o.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(n=h(n)),r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var s=new Blob([n],{type:"text/css"}),a=t.href;t.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}.bind(null,o,e),r=function(){l(o),o.href&&URL.revokeObjectURL(o.href)}):(o=f(e),n=function(t,e){var o=e.css,n=e.media;if(n&&t.setAttribute("media",n),t.styleSheet)t.styleSheet.cssText=o;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(o))}}.bind(null,o),r=function(){l(o)});return n(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;n(t=e)}else r()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=r()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var o=u(t,e);return p(o,e),function(t){for(var r=[],i=0;i=8&&(a=o+n))),a)for(u=p.getUint16(a,r),h=0;h21?"-21px":"0px",t.width=this.cropW>0?this.cropW:0,t.height=this.cropH>0?this.cropH:0,this.infoTrue){var e=1;this.high&&!this.full&&(e=window.devicePixelRatio),1!==this.enlarge&!this.full&&(e=Math.abs(Number(this.enlarge))),t.width=t.width*e,t.height=t.height*e,this.full&&(t.width=t.width/this.scale,t.height=t.height/this.scale)}return t.width=t.width.toFixed(0),t.height=t.height.toFixed(0),t},isIE:function(){navigator.userAgent;var t=!!window.ActiveXObject||"ActiveXObject"in window;return t},passive:function(){return this.isIE?null:{passive:!1}}},watch:{img:function(){this.checkedImg()},imgs:function(t){""!==t&&this.reload()},cropW:function(){this.showPreview()},cropH:function(){this.showPreview()},cropOffsertX:function(){this.showPreview()},cropOffsertY:function(){this.showPreview()},scale:function(t,e){this.showPreview()},x:function(){this.showPreview()},y:function(){this.showPreview()},autoCrop:function(t){t&&this.goAutoCrop()},autoCropWidth:function(){this.autoCrop&&this.goAutoCrop()},autoCropHeight:function(){this.autoCrop&&this.goAutoCrop()},mode:function(){this.checkedImg()},rotate:function(){this.showPreview(),(this.autoCrop||this.cropW>0||this.cropH>0)&&this.goAutoCrop(this.cropW,this.cropH)}},methods:{getVersion:function(t){for(var e=navigator.userAgent.split(" "),o="",n=new RegExp(t,"i"),r=0;r=81)e=-1;else if(this.getVersion("safari")[0]>=605){var i=this.getVersion("version");i[0]>13&&i[1]>1&&(e=-1)}else this.getVersion("appleWebkit")[0]>=605&&(e=-1);var s=document.createElement("canvas"),a=s.getContext("2d");switch(a.save(),e){case 2:s.width=o,s.height=n,a.translate(o,0),a.scale(-1,1);break;case 3:s.width=o,s.height=n,a.translate(o/2,n/2),a.rotate(180*Math.PI/180),a.translate(-o/2,-n/2);break;case 4:s.width=o,s.height=n,a.translate(0,n),a.scale(1,-1);break;case 5:s.height=o,s.width=n,a.rotate(.5*Math.PI),a.scale(1,-1);break;case 6:s.width=n,s.height=o,a.translate(n/2,o/2),a.rotate(90*Math.PI/180),a.translate(-o/2,-n/2);break;case 7:s.height=o,s.width=n,a.rotate(.5*Math.PI),a.translate(o,-n),a.scale(-1,1);break;case 8:s.height=o,s.width=n,a.translate(n/2,o/2),a.rotate(-90*Math.PI/180),a.translate(-o/2,-n/2);break;default:s.width=o,s.height=n}a.drawImage(t,0,0,o,n),a.restore(),s.toBlob((function(t){var e=URL.createObjectURL(t);URL.revokeObjectURL(r.imgs),r.imgs=e}),"image/"+this.outputType,1)},checkedImg:function(){var t=this;if(null===this.img||""===this.img)return this.imgs="",void this.clearCrop();this.loading=!0,this.scale=1,this.rotate=0,this.clearCrop();var e=new Image;if(e.onload=function(){if(""===t.img)return t.$emit("imgLoad","error"),t.$emit("img-load","error"),!1;var o=e.width,n=e.height;i.getData(e).then((function(r){t.orientation=r.orientation||1;var i=t.maxImgSize;!t.orientation&&oi&&(n=n/o*i,o=i),n>i&&(o=o/n*i,n=i),t.checkOrientationImage(e,t.orientation,o,n))}))},e.onerror=function(){t.$emit("imgLoad","error"),t.$emit("img-load","error")},"data"!==this.img.substr(0,4)&&(e.crossOrigin=""),this.isIE){var o=new XMLHttpRequest;o.onload=function(){var t=URL.createObjectURL(this.response);e.src=t},o.open("GET",this.img,!0),o.responseType="blob",o.send()}else e.src=this.img},startMove:function(t){if(t.preventDefault(),this.move&&!this.crop){if(!this.canMove)return!1;this.moveX=(t.clientX?t.clientX:t.touches[0].clientX)-this.x,this.moveY=(t.clientY?t.clientY:t.touches[0].clientY)-this.y,t.touches?(window.addEventListener("touchmove",this.moveImg),window.addEventListener("touchend",this.leaveImg),2==t.touches.length&&(this.touches=t.touches,window.addEventListener("touchmove",this.touchScale),window.addEventListener("touchend",this.cancelTouchScale))):(window.addEventListener("mousemove",this.moveImg),window.addEventListener("mouseup",this.leaveImg)),this.$emit("imgMoving",{moving:!0,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!0,axis:this.getImgAxis()})}else this.cropping=!0,window.addEventListener("mousemove",this.createCrop),window.addEventListener("mouseup",this.endCrop),window.addEventListener("touchmove",this.createCrop),window.addEventListener("touchend",this.endCrop),this.cropOffsertX=t.offsetX?t.offsetX:t.touches[0].pageX-this.$refs.cropper.offsetLeft,this.cropOffsertY=t.offsetY?t.offsetY:t.touches[0].pageY-this.$refs.cropper.offsetTop,this.cropX=t.clientX?t.clientX:t.touches[0].clientX,this.cropY=t.clientY?t.clientY:t.touches[0].clientY,this.cropChangeX=this.cropOffsertX,this.cropChangeY=this.cropOffsertY,this.cropW=0,this.cropH=0},touchScale:function(t){var e=this;t.preventDefault();var o=this.scale,n=this.touches[0].clientX,r=this.touches[0].clientY,i=t.touches[0].clientX,s=t.touches[0].clientY,a=this.touches[1].clientX,c=this.touches[1].clientY,h=t.touches[1].clientX,p=t.touches[1].clientY,u=Math.sqrt(Math.pow(n-a,2)+Math.pow(r-c,2)),d=Math.sqrt(Math.pow(i-h,2)+Math.pow(s-p,2))-u,l=1,f=(l=(l=l/this.trueWidth>l/this.trueHeight?l/this.trueHeight:l/this.trueWidth)>.1?.1:l)*d;if(!this.touchNow){if(this.touchNow=!0,d>0?o+=Math.abs(f):d<0&&o>Math.abs(f)&&(o-=Math.abs(f)),this.touches=t.touches,setTimeout((function(){e.touchNow=!1}),8),!this.checkoutImgAxis(this.x,this.y,o))return!1;this.scale=o}},cancelTouchScale:function(t){window.removeEventListener("touchmove",this.touchScale)},moveImg:function(t){var e=this;if(t.preventDefault(),t.touches&&2===t.touches.length)return this.touches=t.touches,window.addEventListener("touchmove",this.touchScale),window.addEventListener("touchend",this.cancelTouchScale),window.removeEventListener("touchmove",this.moveImg),!1;var o,n,r=t.clientX?t.clientX:t.touches[0].clientX,i=t.clientY?t.clientY:t.touches[0].clientY;o=r-this.moveX,n=i-this.moveY,this.$nextTick((function(){if(e.centerBox){var t,r,i,s,a=e.getImgAxis(o,n,e.scale),c=e.getCropAxis(),h=e.trueHeight*e.scale,p=e.trueWidth*e.scale;switch(e.rotate){case 1:case-1:case 3:case-3:t=e.cropOffsertX-e.trueWidth*(1-e.scale)/2+(h-p)/2,r=e.cropOffsertY-e.trueHeight*(1-e.scale)/2+(p-h)/2,i=t-h+e.cropW,s=r-p+e.cropH;break;default:t=e.cropOffsertX-e.trueWidth*(1-e.scale)/2,r=e.cropOffsertY-e.trueHeight*(1-e.scale)/2,i=t-p+e.cropW,s=r-h+e.cropH}a.x1>=c.x1&&(o=t),a.y1>=c.y1&&(n=r),a.x2<=c.x2&&(o=i),a.y2<=c.y2&&(n=s)}e.x=o,e.y=n,e.$emit("imgMoving",{moving:!0,axis:e.getImgAxis()}),e.$emit("img-moving",{moving:!0,axis:e.getImgAxis()})}))},leaveImg:function(t){window.removeEventListener("mousemove",this.moveImg),window.removeEventListener("touchmove",this.moveImg),window.removeEventListener("mouseup",this.leaveImg),window.removeEventListener("touchend",this.leaveImg),this.$emit("imgMoving",{moving:!1,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!1,axis:this.getImgAxis()})},scaleImg:function(){this.canScale&&window.addEventListener(this.support,this.changeSize,this.passive)},cancelScale:function(){this.canScale&&window.removeEventListener(this.support,this.changeSize)},changeSize:function(t){var e=this;t.preventDefault();var o=this.scale,n=t.deltaY||t.wheelDelta;n=navigator.userAgent.indexOf("Firefox")>0?30*n:n,this.isIE&&(n=-n);var r=this.coe,i=(r=r/this.trueWidth>r/this.trueHeight?r/this.trueHeight:r/this.trueWidth)*n;i<0?o+=Math.abs(i):o>Math.abs(i)&&(o-=Math.abs(i));var s=i<0?"add":"reduce";if(s!==this.coeStatus&&(this.coeStatus=s,this.coe=.2),this.scaling||(this.scalingSet=setTimeout((function(){e.scaling=!1,e.coe=e.coe+=.01}),50)),this.scaling=!0,!this.checkoutImgAxis(this.x,this.y,o))return!1;this.scale=o},changeScale:function(t){var e=this.scale;t=t||1;var o=20;if((t*=o=o/this.trueWidth>o/this.trueHeight?o/this.trueHeight:o/this.trueWidth)>0?e+=Math.abs(t):e>Math.abs(t)&&(e-=Math.abs(t)),!this.checkoutImgAxis(this.x,this.y,e))return!1;this.scale=e},createCrop:function(t){var e=this;t.preventDefault();var o=t.clientX?t.clientX:t.touches?t.touches[0].clientX:0,n=t.clientY?t.clientY:t.touches?t.touches[0].clientY:0;this.$nextTick((function(){var t=o-e.cropX,r=n-e.cropY;if(t>0?(e.cropW=t+e.cropChangeX>e.w?e.w-e.cropChangeX:t,e.cropOffsertX=e.cropChangeX):(e.cropW=e.w-e.cropChangeX+Math.abs(t)>e.w?e.cropChangeX:Math.abs(t),e.cropOffsertX=e.cropChangeX+t>0?e.cropChangeX+t:0),e.fixed){var i=e.cropW/e.fixedNumber[0]*e.fixedNumber[1];i+e.cropOffsertY>e.h?(e.cropH=e.h-e.cropOffsertY,e.cropW=e.cropH/e.fixedNumber[1]*e.fixedNumber[0],e.cropOffsertX=t>0?e.cropChangeX:e.cropChangeX-e.cropW):e.cropH=i,e.cropOffsertY=e.cropOffsertY}else r>0?(e.cropH=r+e.cropChangeY>e.h?e.h-e.cropChangeY:r,e.cropOffsertY=e.cropChangeY):(e.cropH=e.h-e.cropChangeY+Math.abs(r)>e.h?e.cropChangeY:Math.abs(r),e.cropOffsertY=e.cropChangeY+r>0?e.cropChangeY+r:0)}))},changeCropSize:function(t,e,o,n,r){t.preventDefault(),window.addEventListener("mousemove",this.changeCropNow),window.addEventListener("mouseup",this.changeCropEnd),window.addEventListener("touchmove",this.changeCropNow),window.addEventListener("touchend",this.changeCropEnd),this.canChangeX=e,this.canChangeY=o,this.changeCropTypeX=n,this.changeCropTypeY=r,this.cropX=t.clientX?t.clientX:t.touches[0].clientX,this.cropY=t.clientY?t.clientY:t.touches[0].clientY,this.cropOldW=this.cropW,this.cropOldH=this.cropH,this.cropChangeX=this.cropOffsertX,this.cropChangeY=this.cropOffsertY,this.fixed&&this.canChangeX&&this.canChangeY&&(this.canChangeY=0),this.$emit("change-crop-size",{width:this.cropW,height:this.cropH})},changeCropNow:function(t){var e=this;t.preventDefault();var o=t.clientX?t.clientX:t.touches?t.touches[0].clientX:0,n=t.clientY?t.clientY:t.touches?t.touches[0].clientY:0,r=this.w,i=this.h,s=0,a=0;if(this.centerBox){var c=this.getImgAxis(),h=c.x2,p=c.y2;s=c.x1>0?c.x1:0,a=c.y1>0?c.y1:0,r>h&&(r=h),i>p&&(i=p)}this.$nextTick((function(){var t=o-e.cropX,c=n-e.cropY;if(e.canChangeX&&(1===e.changeCropTypeX?e.cropOldW-t>0?(e.cropW=r-e.cropChangeX-t<=r-s?e.cropOldW-t:e.cropOldW+e.cropChangeX-s,e.cropOffsertX=r-e.cropChangeX-t<=r-s?e.cropChangeX+t:s):(e.cropW=Math.abs(t)+e.cropChangeX<=r?Math.abs(t)-e.cropOldW:r-e.cropOldW-e.cropChangeX,e.cropOffsertX=e.cropChangeX+e.cropOldW):2===e.changeCropTypeX&&(e.cropOldW+t>0?(e.cropW=e.cropOldW+t+e.cropOffsertX<=r?e.cropOldW+t:r-e.cropOffsertX,e.cropOffsertX=e.cropChangeX):(e.cropW=r-e.cropChangeX+Math.abs(t+e.cropOldW)<=r-s?Math.abs(t+e.cropOldW):e.cropChangeX-s,e.cropOffsertX=r-e.cropChangeX+Math.abs(t+e.cropOldW)<=r-s?e.cropChangeX-Math.abs(t+e.cropOldW):s))),e.canChangeY&&(1===e.changeCropTypeY?e.cropOldH-c>0?(e.cropH=i-e.cropChangeY-c<=i-a?e.cropOldH-c:e.cropOldH+e.cropChangeY-a,e.cropOffsertY=i-e.cropChangeY-c<=i-a?e.cropChangeY+c:a):(e.cropH=Math.abs(c)+e.cropChangeY<=i?Math.abs(c)-e.cropOldH:i-e.cropOldH-e.cropChangeY,e.cropOffsertY=e.cropChangeY+e.cropOldH):2===e.changeCropTypeY&&(e.cropOldH+c>0?(e.cropH=e.cropOldH+c+e.cropOffsertY<=i?e.cropOldH+c:i-e.cropOffsertY,e.cropOffsertY=e.cropChangeY):(e.cropH=i-e.cropChangeY+Math.abs(c+e.cropOldH)<=i-a?Math.abs(c+e.cropOldH):e.cropChangeY-a,e.cropOffsertY=i-e.cropChangeY+Math.abs(c+e.cropOldH)<=i-a?e.cropChangeY-Math.abs(c+e.cropOldH):a))),e.canChangeX&&e.fixed){var h=e.cropW/e.fixedNumber[0]*e.fixedNumber[1];h+e.cropOffsertY>i?(e.cropH=i-e.cropOffsertY,e.cropW=e.cropH/e.fixedNumber[1]*e.fixedNumber[0]):e.cropH=h}if(e.canChangeY&&e.fixed){var p=e.cropH/e.fixedNumber[1]*e.fixedNumber[0];p+e.cropOffsertX>r?(e.cropW=r-e.cropOffsertX,e.cropH=e.cropW/e.fixedNumber[0]*e.fixedNumber[1]):e.cropW=p}}))},checkCropLimitSize:function(){this.cropW,this.cropH;var t=this.limitMinSize,e=new Array;return e=Array.isArray[t]?t:[t,t],[parseFloat(e[0]),parseFloat(e[1])]},changeCropEnd:function(t){window.removeEventListener("mousemove",this.changeCropNow),window.removeEventListener("mouseup",this.changeCropEnd),window.removeEventListener("touchmove",this.changeCropNow),window.removeEventListener("touchend",this.changeCropEnd)},endCrop:function(){0===this.cropW&&0===this.cropH&&(this.cropping=!1),window.removeEventListener("mousemove",this.createCrop),window.removeEventListener("mouseup",this.endCrop),window.removeEventListener("touchmove",this.createCrop),window.removeEventListener("touchend",this.endCrop)},startCrop:function(){this.crop=!0},stopCrop:function(){this.crop=!1},clearCrop:function(){this.cropping=!1,this.cropW=0,this.cropH=0},cropMove:function(t){if(t.preventDefault(),!this.canMoveBox)return this.crop=!1,this.startMove(t),!1;if(t.touches&&2===t.touches.length)return this.crop=!1,this.startMove(t),this.leaveCrop(),!1;window.addEventListener("mousemove",this.moveCrop),window.addEventListener("mouseup",this.leaveCrop),window.addEventListener("touchmove",this.moveCrop),window.addEventListener("touchend",this.leaveCrop);var e,o,n=t.clientX?t.clientX:t.touches[0].clientX,r=t.clientY?t.clientY:t.touches[0].clientY;e=n-this.cropOffsertX,o=r-this.cropOffsertY,this.cropX=e,this.cropY=o,this.$emit("cropMoving",{moving:!0,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!0,axis:this.getCropAxis()})},moveCrop:function(t,e){var o=this,n=0,r=0;t&&(t.preventDefault(),n=t.clientX?t.clientX:t.touches[0].clientX,r=t.clientY?t.clientY:t.touches[0].clientY),this.$nextTick((function(){var t,i,s=n-o.cropX,a=r-o.cropY;if(e&&(s=o.cropOffsertX,a=o.cropOffsertY),t=s<=0?0:s+o.cropW>o.w?o.w-o.cropW:s,i=a<=0?0:a+o.cropH>o.h?o.h-o.cropH:a,o.centerBox){var c=o.getImgAxis();t<=c.x1&&(t=c.x1),t+o.cropW>c.x2&&(t=c.x2-o.cropW),i<=c.y1&&(i=c.y1),i+o.cropH>c.y2&&(i=c.y2-o.cropH)}o.cropOffsertX=t,o.cropOffsertY=i,o.$emit("cropMoving",{moving:!0,axis:o.getCropAxis()}),o.$emit("crop-moving",{moving:!0,axis:o.getCropAxis()})}))},getImgAxis:function(t,e,o){t=t||this.x,e=e||this.y,o=o||this.scale;var n={x1:0,x2:0,y1:0,y2:0},r=this.trueWidth*o,i=this.trueHeight*o;switch(this.rotate){case 0:n.x1=t+this.trueWidth*(1-o)/2,n.x2=n.x1+this.trueWidth*o,n.y1=e+this.trueHeight*(1-o)/2,n.y2=n.y1+this.trueHeight*o;break;case 1:case-1:case 3:case-3:n.x1=t+this.trueWidth*(1-o)/2+(r-i)/2,n.x2=n.x1+this.trueHeight*o,n.y1=e+this.trueHeight*(1-o)/2+(i-r)/2,n.y2=n.y1+this.trueWidth*o;break;default:n.x1=t+this.trueWidth*(1-o)/2,n.x2=n.x1+this.trueWidth*o,n.y1=e+this.trueHeight*(1-o)/2,n.y2=n.y1+this.trueHeight*o}return n},getCropAxis:function(){var t={x1:0,x2:0,y1:0,y2:0};return t.x1=this.cropOffsertX,t.x2=t.x1+this.cropW,t.y1=this.cropOffsertY,t.y2=t.y1+this.cropH,t},leaveCrop:function(t){window.removeEventListener("mousemove",this.moveCrop),window.removeEventListener("mouseup",this.leaveCrop),window.removeEventListener("touchmove",this.moveCrop),window.removeEventListener("touchend",this.leaveCrop),this.$emit("cropMoving",{moving:!1,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!1,axis:this.getCropAxis()})},getCropChecked:function(t){var e=this,o=document.createElement("canvas"),n=new Image,r=this.rotate,i=this.trueWidth,s=this.trueHeight,a=this.cropOffsertX,c=this.cropOffsertY;function h(t,e){o.width=Math.round(t),o.height=Math.round(e)}n.onload=function(){if(0!==e.cropW){var p=o.getContext("2d"),u=1;e.high&!e.full&&(u=window.devicePixelRatio),1!==e.enlarge&!e.full&&(u=Math.abs(Number(e.enlarge)));var d=e.cropW*u,l=e.cropH*u,f=i*e.scale*u,g=s*e.scale*u,v=(e.x-a+e.trueWidth*(1-e.scale)/2)*u,m=(e.y-c+e.trueHeight*(1-e.scale)/2)*u;switch(h(d,l),p.save(),r){case 0:e.full?(h(d/e.scale,l/e.scale),p.drawImage(n,v/e.scale,m/e.scale,f/e.scale,g/e.scale)):p.drawImage(n,v,m,f,g);break;case 1:case-3:e.full?(h(d/e.scale,l/e.scale),v=v/e.scale+(f/e.scale-g/e.scale)/2,m=m/e.scale+(g/e.scale-f/e.scale)/2,p.rotate(90*r*Math.PI/180),p.drawImage(n,m,-v-g/e.scale,f/e.scale,g/e.scale)):(v+=(f-g)/2,m+=(g-f)/2,p.rotate(90*r*Math.PI/180),p.drawImage(n,m,-v-g,f,g));break;case 2:case-2:e.full?(h(d/e.scale,l/e.scale),p.rotate(90*r*Math.PI/180),v/=e.scale,m/=e.scale,p.drawImage(n,-v-f/e.scale,-m-g/e.scale,f/e.scale,g/e.scale)):(p.rotate(90*r*Math.PI/180),p.drawImage(n,-v-f,-m-g,f,g));break;case 3:case-1:e.full?(h(d/e.scale,l/e.scale),v=v/e.scale+(f/e.scale-g/e.scale)/2,m=m/e.scale+(g/e.scale-f/e.scale)/2,p.rotate(90*r*Math.PI/180),p.drawImage(n,-m-f/e.scale,v,f/e.scale,g/e.scale)):(v+=(f-g)/2,m+=(g-f)/2,p.rotate(90*r*Math.PI/180),p.drawImage(n,-m-f,v,f,g));break;default:e.full?(h(d/e.scale,l/e.scale),p.drawImage(n,v/e.scale,m/e.scale,f/e.scale,g/e.scale)):p.drawImage(n,v,m,f,g)}p.restore()}else{var w=i*e.scale,x=s*e.scale,C=o.getContext("2d");switch(C.save(),r){case 0:h(w,x),C.drawImage(n,0,0,w,x);break;case 1:case-3:h(x,w),C.rotate(90*r*Math.PI/180),C.drawImage(n,0,-x,w,x);break;case 2:case-2:h(w,x),C.rotate(90*r*Math.PI/180),C.drawImage(n,-w,-x,w,x);break;case 3:case-1:h(x,w),C.rotate(90*r*Math.PI/180),C.drawImage(n,-w,0,w,x);break;default:h(w,x),C.drawImage(n,0,0,w,x)}C.restore()}t(o)},"data"!==this.img.substr(0,4)&&(n.crossOrigin="Anonymous"),n.src=this.imgs},getCropData:function(t){var e=this;this.getCropChecked((function(o){t(o.toDataURL("image/"+e.outputType,e.outputSize))}))},getCropBlob:function(t){var e=this;this.getCropChecked((function(o){o.toBlob((function(e){return t(e)}),"image/"+e.outputType,e.outputSize)}))},showPreview:function(){var t=this;if(!this.isCanShow)return!1;this.isCanShow=!1,setTimeout((function(){t.isCanShow=!0}),16);var e=this.cropW,o=this.cropH,n=this.scale,r={};r.div={width:"".concat(e,"px"),height:"".concat(o,"px")};var i=(this.x-this.cropOffsertX)/n,s=(this.y-this.cropOffsertY)/n;r.w=e,r.h=o,r.url=this.imgs,r.img={width:"".concat(this.trueWidth,"px"),height:"".concat(this.trueHeight,"px"),transform:"scale(".concat(n,")translate3d(").concat(i,"px, ").concat(s,"px, ").concat(0,"px)rotateZ(").concat(90*this.rotate,"deg)")},r.html='\n

'),this.$emit("realTime",r),this.$emit("real-time",r)},reload:function(){var t=this,e=new Image;e.onload=function(){t.w=parseFloat(window.getComputedStyle(t.$refs.cropper).width),t.h=parseFloat(window.getComputedStyle(t.$refs.cropper).height),t.trueWidth=e.width,t.trueHeight=e.height,t.original?t.scale=1:t.scale=t.checkedMode(),t.$nextTick((function(){t.x=-(t.trueWidth-t.trueWidth*t.scale)/2+(t.w-t.trueWidth*t.scale)/2,t.y=-(t.trueHeight-t.trueHeight*t.scale)/2+(t.h-t.trueHeight*t.scale)/2,t.loading=!1,t.autoCrop&&t.goAutoCrop(),t.$emit("img-load","success"),t.$emit("imgLoad","success"),setTimeout((function(){t.showPreview()}),20)}))},e.onerror=function(){t.$emit("imgLoad","error"),t.$emit("img-load","error")},e.src=this.imgs},checkedMode:function(){var t=1,e=(this.trueWidth,this.trueHeight),o=this.mode.split(" ");switch(o[0]){case"contain":this.trueWidth>this.w&&(t=this.w/this.trueWidth),this.trueHeight*t>this.h&&(t=this.h/this.trueHeight);break;case"cover":(e*=t=this.w/this.trueWidth)o?o:s,a=a>n?n:a,this.fixed&&(a=s/this.fixedNumber[0]*this.fixedNumber[1]),a>this.h&&(s=(a=this.h)/this.fixedNumber[1]*this.fixedNumber[0]),this.changeCrop(s,a)}},changeCrop:function(t,e){var o=this;if(this.centerBox){var n=this.getImgAxis();t>n.x2-n.x1&&(e=(t=n.x2-n.x1)/this.fixedNumber[0]*this.fixedNumber[1]),e>n.y2-n.y1&&(t=(e=n.y2-n.y1)/this.fixedNumber[1]*this.fixedNumber[0])}this.cropW=t,this.cropH=e,this.checkCropLimitSize(),this.$nextTick((function(){o.cropOffsertX=(o.w-o.cropW)/2,o.cropOffsertY=(o.h-o.cropH)/2,o.centerBox&&o.moveCrop(null,!0)}))},refresh:function(){var t=this;this.img,this.imgs="",this.scale=1,this.crop=!1,this.rotate=0,this.w=0,this.h=0,this.trueWidth=0,this.trueHeight=0,this.clearCrop(),this.$nextTick((function(){t.checkedImg()}))},rotateLeft:function(){this.rotate=this.rotate<=-3?0:this.rotate-1},rotateRight:function(){this.rotate=this.rotate>=3?0:this.rotate+1},rotateClear:function(){this.rotate=0},checkoutImgAxis:function(t,e,o){t=t||this.x,e=e||this.y,o=o||this.scale;var n=!0;if(this.centerBox){var r=this.getImgAxis(t,e,o),i=this.getCropAxis();r.x1>=i.x1&&(n=!1),r.x2<=i.x2&&(n=!1),r.y1>=i.y1&&(n=!1),r.y2<=i.y2&&(n=!1)}return n}},mounted:function(){this.support="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";var t=this,e=navigator.userAgent;this.isIOS=!!e.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,o,n){for(var r=atob(this.toDataURL(o,n).split(",")[1]),i=r.length,s=new Uint8Array(i),a=0;a{r.set(t.id,t),i.set(t.id,e)}),t.nodeMap=r,t.nodeIndexMap=i,t.run(),t.graph.refreshPositions();const a=t.customGroup,o=a.get("children"),s=t.groupController,u=t.graph.get("groupType");o.forEach(e=>{const n=e.get("id"),r=t.groupMap.get(n);r.item=e;const i=s.getGroupPadding(n),{x:a,y:o,width:c,height:h}=s.calculationGroupPosition(r.nodeIds),f=e.findByClassName("group-title"),l=e.get("children")[0];let d=0,p=0;if("circle"===u){const t=c>h?c/2:h/2,e=(c+2*a)/2,n=(h+2*o)/2;l.attr({x:e,y:n,r:t+i}),r.x=e,r.y=n,r.size=2*(t+i),d=e,p=n-t-i}else if("rect"===u){const{default:t}=s.styles,e=i*t.disCoefficient,n=c+2*e,u=h+2*e,f=a-e,g=o-e;l.attr({x:f,y:g,width:n,height:u}),r.x=f,r.y=g,r.size=[n,u],d=a,p=o}if(f){const t=r.groupData.title;let e=0,n=0;t&&(e=t.offsetox||0,n=t.offsetoy||0,t.offsetX=e,t.offsetY=n,"rect"===u&&(t.offsetX=0,t.offsetY=0));let i=d+e,a=p+n;"rect"===u&&(i=d,a=p),f.attr({x:i,y:a}),r.titlePos=[i,a]}}),t.graph.paint()},run(){const t=this,e=t.nodes,n=t.groupsData,r=t.edges,i=t.maxIteration;let a=t.width;a||"undefined"===typeof window||(a=window.innerWidth);let s=t.height;s||"undefined"===typeof s||(s=window.innerHeight);const u=t.center,c=t.nodeMap,h=t.nodeIndexMap,f=a/10,l=Math.sqrt(a*s/(e.length+1)),d=t.gravity,p=t.speed,g=new Map;t.groupMap=g,e.forEach(t=>{if(void 0===g.get(t.groupId)){let e,r;n.forEach(n=>{n.id===t.groupId&&(e=n.parentId,r=n)});const i={name:t.groupId,cx:0,cy:0,count:0,parentId:e,nodeIds:[],groupData:r};g.set(t.groupId,i)}const e=g.get(t.groupId);e.nodeIds.push(t.id),e.cx+=t.x,e.cy+=t.y,e.count++}),g.forEach(t=>{t.cx/=t.count,t.cy/=t.count}),t.DFSSetGroups();for(let v=0;v{n[e]={x:0,y:0}}),t.getDisp(e,r,c,h,n,l);const i=t.groupGravity||d;e.forEach((e,r)=>{const a=g.get(e.groupId),o=Math.sqrt((e.x-a.cx)*(e.x-a.cx)+(e.y-a.cy)*(e.y-a.cy)),s=t.groupAttractiveCoefficient*l*i;n[r].x-=s*(e.x-a.cx)/o,n[r].y-=s*(e.y-a.cy)/o}),g.forEach(t=>{t.cx=0,t.cy=0,t.count=0}),e.forEach(t=>{const e=g.get(t.groupId);e.cx+=t.x,e.cy+=t.y,e.count++}),g.forEach(t=>{t.cx/=t.count,t.cy/=t.count}),e.forEach((t,e)=>{const r=.01*l*d;n[e].x-=r*(t.x-u[0]),n[e].y-=r*(t.y-u[1])}),e.forEach((t,e)=>{n[e].dx*=p/o,n[e].dy*=p/o}),e.forEach((t,e)=>{const r=Math.sqrt(n[e].x*n[e].x+n[e].y*n[e].y);if(r>0){const i=Math.min(f*(p/o),r);t.x+=n[e].x/r*i,t.y+=n[e].y/r*i}})}},getDisp(t,e,n,r,i,a){const o=this;o.calRepulsive(t,i,a),o.calAttractive(e,n,r,i,a),o.calGroupRepulsive(i,a)},calRepulsive(t,e,n){const r=this;t.forEach((i,a)=>{e[a]={x:0,y:0},t.forEach((t,o)=>{if(a===o)return;const s=i.x-t.x,u=i.y-t.y;let c=s*s+u*u;0===c&&(c=1);const h=r.nodeRepulsiveCoefficient*(n*n)/c;e[a].x+=s*h,e[a].y+=u*h})})},calAttractive(t,e,n,r,i){const a=this;t.forEach(t=>{const o=n.get(t.source),s=n.get(t.target);if(o===s)return;const u=e.get(t.source),c=e.get(t.target),h=c.x-u.x,f=c.y-u.y,l=Math.sqrt(h*h+f*f),d=a.nodeAttractiveCoefficient*l*l/i;r[s].x-=h/l*d,r[s].y-=f/l*d,r[o].x+=h/l*d,r[o].y+=f/l*d})},calGroupRepulsive(t,e){const n=this,r=n.groupMap,i=n.nodeIndexMap;r.forEach((a,o)=>{const s={x:0,y:0};r.forEach((t,r)=>{if(o===r)return;const i=a.cx-t.cx,u=a.cy-t.cy;let c=i*i+u*u;0===c&&(c=1);const h=n.groupRepulsiveCoefficient*(e*e)/c;s.x+=i*h,s.y+=u*h});const u=a.nodeIds;u.forEach(e=>{const n=i.get(e);t[n].x+=s.x,t[n].y+=s.y})})},DFSSetGroups(){const t=this,e=t.groupMap;e.forEach(n=>{const r=n.parentId;if(r){let i;t.groupsData.forEach(t=>{t.id===n.groupId&&(i=t.parentId)});const a=e.get(r);if(a)n.nodeIds.forEach(t=>{a.nodeIds.push(t)});else{const t={name:r,cx:0,cy:0,count:0,parentId:i,nodeIds:n.nodeIds};e.set(r,t)}}})},BFSDivide(t,e,n){const i=this,a=r.forceManyBody();a.strength(30);const o=r.forceSimulation().nodes(n).force("center",r.forceCenter(t/2,e/2)).force("charge",a).alpha(.3).alphaDecay(.01).alphaMin(.001).on("tick",()=>{n.forEach(t=>{const e=t.nodes;e.forEach(e=>{e.x+=t.x-t.ox,e.y+=t.y-t.oy}),t.ox=t.x,t.oy=t.y;const n=t.item,r=n.get("children")[0];r.attr({x:t.x,y:t.y})}),i.graph.refreshPositions()}).on("end",()=>{});i.groupOverlapProcess(o)},groupOverlapProcess(t){const e=this;let n=e.nodeSize;const i=e.groupCollideStrength;if(n)if(isNaN(n)){if(2===n.length){const t=n[0]>n[1]?n[0]:n[1];n=t/2}}else n/=2;else n=t=>t.size?a(t.size)?t.size[0]/2:t.size/2:10;t.force("collisionForce",r.forceCollide(n).strength(i))}})},"004e":function(t,e,n){var r=n("76e9"),i=n("8d20"),a=n("cd9d");function o(t){return t&&t.length?r(t,a,i):void 0}t.exports=o},"00d0":function(t,e){var n={}.toString,r=function(t,e){return n.call(t)==="[object "+e+"]"};t.exports=r},"01ce":function(t,e,n){t.exports={Graph:n("9671"),version:n("c3cd")}},"01eb":function(t,e,n){var r=n("33de");function i(){this._arr=[],this._keyIndices={}}t.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map((function(t){return t.key}))},i.prototype.has=function(t){return r.has(this._keyIndices,t)},i.prototype.priority=function(t){var e=this._keyIndices[t];if(void 0!==e)return this._arr[e].priority},i.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(t,e){var n=this._keyIndices;if(t=String(t),!r.has(n,t)){var i=this._arr,a=i.length;return n[t]=a,i.push({key:t,priority:e}),this._decrease(a),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},i.prototype.decrease=function(t,e){var n=this._keyIndices[t];if(e>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},i.prototype._heapify=function(t){var e=this._arr,n=2*t,r=n+1,i=t;n>1,n[e].priority-1)r.call(t,s,1)}return t};t.exports=o},"02db":function(t,e,n){var r=n("1c6a");t.exports={canFill:!1,canStroke:!1,initAttrs:function(t){return this._attrs={opacity:1,fillOpacity:1,strokeOpacity:1,matrix:[1,0,0,0,1,0,0,0,1]},this.attr(r.assign(this.getDefaultAttrs(),t)),this},getDefaultAttrs:function(){return{}},attr:function(t,e){var n=this;if(0===arguments.length)return n._attrs;if(r.isObject(t)){for(var i in t)this._setAttr(i,t[i]);return n.clearBBox(),this._cfg.hasUpdate=!0,n}return 2===arguments.length?(this._setAttr(t,e),n.clearBBox(),this._cfg.hasUpdate=!0,n):n._attrs[t]},_setAttr:function(t,e){var n=this,r=this._attrs;r[t]=e,"fill"!==t&&"stroke"!==t?"opacity"!==t?"clip"===t&&e?n._setClip(e):"path"===t&&n._afterSetAttrPath?n._afterSetAttrPath(e):"transform"!==t?"rotate"===t&&n.rotateAtStart(e):n.transform(e):r.globalAlpha=e:r[t+"Style"]=e},clearBBox:function(){this.setSilent("box",null)},hasFill:function(){return this.canFill&&this._attrs.fillStyle},hasStroke:function(){return this.canStroke&&this._attrs.strokeStyle},_setClip:function(t){t._cfg.renderer=this._cfg.renderer,t._cfg.canvas=this._cfg.canvas,t._cfg.parent=this._cfg.parent,t.hasFill=function(){return!0}}}},"03dd":function(t,e,n){var r=n("eac5"),i=n("57a5"),a=Object.prototype,o=a.hasOwnProperty;function s(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))o.call(t,n)&&"constructor"!=n&&e.push(n);return e}t.exports=s},"0519":function(t,e,n){(function(e,n){t.exports=n()})("undefined"!==typeof self&&self,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=31)}([function(t,e,n){"use strict";var r=n(4);e["a"]=function(t){return Array.isArray?Array.isArray(t):Object(r["a"])(t,"Array")}},function(t,e,n){"use strict";var r=function(t){return null!==t&&"function"!==typeof t&&isFinite(t.length)};e["a"]=r},function(t,e,n){"use strict";var r=n(0),i=n(13);function a(t,e){var n;if(t)if(Object(r["a"])(t)){for(var a=0,o=t.length;a-1};e["a"]=i},function(t,e,n){"use strict";e["a"]=function(t){var e=typeof t;return null!==t&&"object"===e||"function"===e}},function(t,e,n){"use strict";var r=n(2),i=n(1),a=function(t,e){if(!Object(i["a"])(t))return t;var n=[];return Object(r["a"])(t,(function(t,r){e(t,r)&&n.push(t)})),n};e["a"]=a},function(t,e,n){"use strict";var r=function(t){return"object"===typeof t&&null!==t};e["a"]=r},function(t,e,n){"use strict";function r(t,e){for(var n in e)e.hasOwnProperty(n)&&"constructor"!==n&&void 0!==e[n]&&(t[n]=e[n])}function i(t,e,n,i){return e&&r(t,e),n&&r(t,n),i&&r(t,i),t}e["a"]=i},function(t,e,n){var r=n(30),i=["LR","RL","TB","BT","H","V"],a=["LR","RL","H"],o=function(t){return a.indexOf(t)>-1},s=i[0];t.exports=function(t,e,n){var a=e.direction||s;if(e.isHorizontal=o(a),a&&-1===i.indexOf(a))throw new TypeError("Invalid direction: "+a);if(a===i[0])n(t,e);else if(a===i[1])n(t,e),t.right2left();else if(a===i[2])n(t,e);else if(a===i[3])n(t,e),t.bottom2top();else if(a===i[4]||a===i[5]){var u=r(t,e),c=u.left,h=u.right;n(c,e),n(h,e),e.isHorizontal?c.right2left():c.bottom2top(),h.translate(c.x-h.x,c.y-h.y),t.x=c.x,t.y=h.y;var f=t.getBoundingBox();e.isHorizontal?f.top<0&&t.translate(0,-f.top):f.left<0&&t.translate(-f.left,0)}var l=e.fixedRoot;return void 0===l&&(l=!0),l&&t.translate(-(t.x+t.width/2+t.hgap),-(t.y+t.height/2+t.vgap)),t}},function(t,e,n){var r=n(7),i=18,a=2*i,o=i,s={getId:function(t){return t.id||t.name},getHGap:function(t){return t.hgap||o},getVGap:function(t){return t.vgap||o},getChildren:function(t){return t.children},getHeight:function(t){return t.height||a},getWidth:function(t){var e=t.label||" ";return t.width||e.split("").length*i}};function u(t,e){var n=this;if(n.vgap=n.hgap=0,t instanceof u)return t;n.data=t;var r=e.getHGap(t),i=e.getVGap(t);return n.width=e.getWidth(t),n.height=e.getHeight(t),n.id=e.getId(t),n.x=n.y=0,n.depth=0,n.children||(n.children=[]),n.addGap(r,i),n}function c(t,e,n){void 0===e&&(e={}),e=r.assign({},s,e);var i,a=new u(t,e),o=[a];if(!n&&!t.collapsed)while(i=o.pop())if(!i.data.collapsed){var c=e.getChildren(i.data),h=c?c.length:0;if(i.children=new Array(h),c&&h)for(var f=0;f-1)i.call(t,s,1)}return t};e["a"]=o},function(t,e,n){"use strict";var r=n(2),i=n(0),a=n(9),o=function(t,e,n){if(!Object(i["a"])(t)&&!Object(a["a"])(t))return t;var o=n;return Object(r["a"])(t,(function(t,n){o=e(o,t,n)})),o};e["a"]=o},function(t,e,n){"use strict";var r=n(1),i=n(21),a=function(t,e){var n=[];if(!Object(r["a"])(t))return n;var a=-1,o=[],s=t.length;while(++ae[r])return 1;if(t[r]n?n:t};e["a"]=r},function(t,e,n){"use strict";var r=function(t,e){var n=e.toString(),r=n.indexOf(".");if(-1===r)return Math.round(t);var i=n.substr(r+1).length;return i>20&&(i=20),parseFloat(t.toFixed(i))};e["a"]=r},function(t,e,n){"use strict";var r=n(5),i=function(t){return Object(r["a"])(t)&&t%1!==0};e["a"]=i},function(t,e,n){"use strict";var r=n(5),i=function(t){return Object(r["a"])(t)&&t%2===0};e["a"]=i},function(t,e,n){"use strict";var r=n(5),i=Number.isInteger?Number.isInteger:function(t){return Object(r["a"])(t)&&t%1===0};e["a"]=i},function(t,e,n){"use strict";var r=n(5),i=function(t){return Object(r["a"])(t)&&t<0};e["a"]=i},function(t,e,n){"use strict";e["a"]=i;var r=1e-5;function i(t,e,n){return void 0===n&&(n=r),Math.abs(t-e)0};e["a"]=i},function(t,e,n){"use strict";var r=n(2),i=n(0),a=n(3);e["a"]=function(t,e){if(Object(i["a"])(t)){var n,o,s=t[0];return n=Object(a["a"])(e)?e(t[0]):t[0][e],Object(r["a"])(t,(function(t){o=Object(a["a"])(e)?e(t):t[e],o>n&&(s=t,n=o)})),s}}},function(t,e,n){"use strict";var r=n(2),i=n(0),a=n(3);e["a"]=function(t,e){if(Object(i["a"])(t)){var n,o,s=t[0];return n=Object(a["a"])(e)?e(t[0]):t[0][e],Object(r["a"])(t,(function(t){o=Object(a["a"])(e)?e(t):t[e],oe?(r&&(clearTimeout(r),r=null),s=c,o=t.apply(i,a),r||(i=a=null)):r||!1===n.trailing||(r=setTimeout(u,h)),o};return c.cancel=function(){clearTimeout(r),s=0,r=i=a=null},c}},function(t,e,n){"use strict";var r=n(1);e["a"]=function(t){return Object(r["a"])(t)?Array.prototype.slice.call(t):[]}},function(t,e,n){"use strict";var r={};e["a"]=function(t){return t=t||"g",r[t]?r[t]+=1:r[t]=1,t+r[t]}},function(t,e,n){"use strict";e["a"]=function(){}},function(t,e,n){"use strict";e["a"]=function(t){return t}},function(t,e,n){"use strict";e["a"]=a;var r=n(6),i=n(1);function a(t){return Object(r["a"])(t)?0:Object(i["a"])(t)?t.length:Object.keys(t).length}},function(t,e,n){"use strict";var r=function(){function t(){this.map={}}return t.prototype.has=function(t){return void 0!==this.map[t]},t.prototype.get=function(t,e){var n=this.map[t];return void 0===n?e:n},t.prototype.set=function(t,e){this.map[t]=e},t.prototype.clear=function(){this.map={}},t.prototype.delete=function(t){delete this.map[t]},t.prototype.size=function(){return Object.keys(this.map).length},t}();e["a"]=r},function(t,e){function n(t,e,n,r){void 0===r&&(r=[]);var i=this;i.w=t||0,i.h=e||0,i.y=n||0,i.x=0,i.c=r||[],i.cs=r.length,i.prelim=0,i.mod=0,i.shift=0,i.change=0,i.tl=null,i.tr=null,i.el=null,i.er=null,i.msel=0,i.mser=0}function r(t,e,n){n?t.y+=e:t.x+=e,t.children.forEach((function(t){r(t,e,n)}))}function i(t,e){var n=e?t.y:t.x;return t.children.forEach((function(t){n=Math.min(i(t,e),n)})),n}function a(t,e){var n=i(t,e);r(t,-n,e)}function o(t,e,n){n?e.y=t.x:e.x=t.x,t.c.forEach((function(t,r){o(t,e.children[r],n)}))}function s(t,e,n){void 0===n&&(n=0),e?(t.x=n,n+=t.width):(t.y=n,n+=t.height),t.children.forEach((function(t){s(t,e,n)}))}n.fromNode=function(t,e){if(!t)return null;var r=[];return t.children.forEach((function(t){r.push(n.fromNode(t,e))})),e?new n(t.height,t.width,t.x,r):new n(t.width,t.height,t.y,r)},t.exports=function(t,e){void 0===e&&(e={});var r=e.isHorizontal;function i(t){if(0!==t.cs){i(t.c[0]);for(var e=b(d(t.c[0].el),0,null),n=1;nn.low&&(n=n.nxt);var s=i+r.prelim+r.w-(o+a.prelim);s>0&&(o+=s,h(t,e,n.index,s));var u=d(r),c=d(a);u<=c&&(r=l(r),null!==r&&(i+=r.mod)),u>=c&&(a=f(a),null!==a&&(o+=a.mod))}!r&&a?p(t,e,a,o):r&&!a&&g(t,e,r,i)}function h(t,e,n,r){t.c[e].mod+=r,t.c[e].msel+=r,t.c[e].mser+=r,y(t,e,n,r)}function f(t){return 0===t.cs?t.tl:t.c[0]}function l(t){return 0===t.cs?t.tr:t.c[t.cs-1]}function d(t){return t.y+t.h}function p(t,e,n,r){var i=t.c[0].el;i.tl=n;var a=r-n.mod-t.c[0].msel;i.mod+=a,i.prelim-=a,t.c[0].el=t.c[e].el,t.c[0].msel=t.c[e].msel}function g(t,e,n,r){var i=t.c[e].er;i.tr=n;var a=r-n.mod-t.c[e].mser;i.mod+=a,i.prelim-=a,t.c[e].er=t.c[e-1].er,t.c[e].mser=t.c[e-1].mser}function v(t){t.prelim=(t.c[0].prelim+t.c[0].mod+t.c[t.cs-1].mod+t.c[t.cs-1].prelim+t.c[t.cs-1].w)/2-t.w/2}function m(t,e){e+=t.mod,t.x=t.prelim+e,x(t);for(var n=0;n=n.low)n=n.nxt;return{low:t,index:e,nxt:n}}s(t,r);var w=n.fromNode(t,r);return i(w),m(w,0),o(w,t,r),a(t,r),t}},function(t,e,n){function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var i=n(11),a=n(115),o=n(17),s=n(7),u=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.execute=function(){var t=this;return t.rootNode.width=0,o(t.rootNode,t.options,a)},e}(i),c={};function h(t,e){return e=s.assign({},c,e),new u(t,e).execute()}t.exports=h},function(t,e,n){var r=n(7);function i(t,e){void 0===t&&(t=0),void 0===e&&(e=[]);var n=this;n.x=n.y=0,n.leftChild=n.rightChild=null,n.height=0,n.children=e}var a={isHorizontal:!0,nodeSep:20,nodeSize:20,rankSep:200,subTreeSep:10};function o(t,e,n){n?(e.x=t.x,e.y=t.y):(e.x=t.y,e.y=t.x),t.children.forEach((function(t,r){o(t,e.children[r],n)}))}t.exports=function(t,e){void 0===e&&(e={}),e=r.assign({},a,e);var n,s=0;function u(t){if(!t)return null;t.width=0,t.depth&&t.depth>s&&(s=t.depth);var e=t.children,n=e.length,r=new i(t.height,[]);return e.forEach((function(t,e){var i=u(t);r.children.push(i),0===e&&(r.leftChild=i),e===n-1&&(r.rightChild=i)})),r.originNode=t,r.isLeaf=t.isLeaf(),r}function c(t){if(t.isLeaf||0===t.children.length)t.drawingDepth=s;else{var e=t.children.map((function(t){return c(t)})),n=Math.min.apply(null,e);t.drawingDepth=n-1}return t.drawingDepth}function h(t){t.x=t.drawingDepth*e.rankSep,t.isLeaf?(t.y=0,n&&(t.y=n.y+n.height+e.nodeSep,t.originNode.parent!==n.originNode.parent&&(t.y+=e.subTreeSep)),n=t):(t.children.forEach((function(t){h(t)})),t.y=(t.leftChild.y+t.rightChild.y)/2)}var f=u(t);return c(f),h(f),o(f,t,e.isHorizontal),t}},function(t,e,n){function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var i=n(11),a=n(117),o=n(30),s=n(7),u=["LR","RL","H"],c=u[0],h=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.execute=function(){var t=this,e=t.options,n=t.rootNode;e.isHorizontal=!0;var r=e.indent,i=void 0===r?20:r,s=e.dropCap,h=void 0===s||s,f=e.direction||c;if(f&&-1===u.indexOf(f))throw new TypeError("Invalid direction: "+f);if(f===u[0])a(n,i,h);else if(f===u[1])a(n,i,h),n.right2left();else if(f===u[2]){var l=o(n,e),d=l.left,p=l.right;a(d,i,h),d.right2left(),a(p,i,h);var g=d.getBoundingBox();p.translate(g.width,0),n.x=p.x-n.width/2}return n},e}(i),f={};function l(t,e){return e=s.assign({},f,e),new h(t,e).execute()}t.exports=l},function(t,e){function n(t,e,n,r){if(!r)try{if(t.id===t.parent.children[t.parent.children.length-1].id)return t.x+=n*t.depth,void(t.y=e?e.y:0)}catch(i){}t.x+=n*t.depth,t.y=e?e.y+e.height:0}t.exports=function(t,e,r){var i=null;t.eachNode((function(t){n(t,i,e,r),i=t}))}},function(t,e,n){function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var i=n(11),a=n(119),o=n(17),s=n(7),u=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.execute=function(){var t=this;return o(t.rootNode,t.options,a)},e}(i),c={};function h(t,e){return e=s.assign({},c,e),new u(t,e).execute()}t.exports=h},function(t,e,n){var r=n(7);function i(t,e){var n=0;return t.children.length?t.children.forEach((function(t){n+=i(t,e)})):n=t.height,t._subTreeSep=e.getSubTreeSep(t.data),t.totalHeight=Math.max(t.height,n)+2*t._subTreeSep,t.totalHeight}function a(t){var e=t.children,n=e.length;if(n){e.forEach((function(t){a(t)}));var r=e[0],i=e[n-1],o=i.y-r.y+i.height,s=0;if(e.forEach((function(t){s+=t.totalHeight})),o>t.height)t.y=r.y+o/2-t.height/2;else if(1!==e.length||t.height>s){var u=t.y+(t.height-o)/2-r.y;e.forEach((function(t){t.translate(0,u)}))}else t.y=(r.y+r.height/2+i.y+i.height/2)/2-t.height/2}}var o={getSubTreeSep:function(){return 0}};t.exports=function(t,e){void 0===e&&(e={}),e=r.assign({},o,e),t.parent={x:0,width:0,height:0,y:0},t.BFTraverse((function(t){t.x=t.parent.x+t.parent.width})),t.parent=null,i(t,e),t.startY=0,t.y=t.totalHeight/2-t.height/2,t.eachNode((function(t){var e=t.children,n=e.length;if(n){var r=e[0];if(r.startY=t.startY+t._subTreeSep,1===n)r.y=t.y+t.height/2-r.height/2;else{r.y=r.startY+r.totalHeight/2-r.height/2;for(var i=1;i=(a=(g+m)/2))?g=a:m=a,(h=n>=(o=(v+y)/2))?v=o:y=o,i=d,!(d=d[f=h<<1|c]))return i[f]=p,t;if(s=+t._x.call(null,d.data),u=+t._y.call(null,d.data),e===s&&n===u)return p.next=d,i?i[f]=p:t._root=p,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=e>=(a=(g+m)/2))?g=a:m=a,(h=n>=(o=(v+y)/2))?v=o:y=o}while((f=h<<1|c)===(l=(u>=o)<<1|s>=a));return i[l]=d,i[f]=p,t}function o(t){var e,n,r,i,o=t.length,s=new Array(o),u=new Array(o),c=1/0,h=1/0,f=-1/0,l=-1/0;for(n=0;nf&&(f=r),il&&(l=i));if(c>f||h>l)return this;for(this.cover(c,h).cover(f,l),n=0;nt||t>=i||r>e||e>=a)switch(s=(ed||(a=u.y0)>p||(o=u.x1)=y)<<1|t>=m)&&(u=g[g.length-1],g[g.length-1]=g[g.length-1-c],g[g.length-1-c]=u)}else{var x=t-+this._x.call(null,v.data),b=e-+this._y.call(null,v.data),w=x*x+b*b;if(w=(s=(p+v)/2))?p=s:v=s,(h=o>=(u=(g+m)/2))?g=u:m=u,e=d,!(d=d[f=h<<1|c]))return this;if(!d.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(n=e,l=f)}while(d.data!==t)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):e?(i?e[f]=i:delete e[f],(d=e[0]||e[1]||e[2]||e[3])&&d===(e[3]||e[2]||e[1]||e[0])&&!d.length&&(n?n[l]=d:this._root=d),this):(this._root=i,this)};function d(t){for(var e=0,n=t.length;eu+d||ic+d||as.index){var p=u-o.x-o.vx,g=c-o.y-o.vy,v=p*p+g*g;vt.r&&(t.r=t[e].r)}function s(){if(e){var r,i,a=e.length;for(n=new Array(a),r=0;r[o(t,e,r),t]));for(s=0,i=new Array(c);s=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function R(t,e){for(var n,r=0,i=t.length;r0)for(var n,r,i=new Array(n),a=0;a1?(null==n?s.delete(t):s.set(t,d(n)),e):s.get(t)},find:function(e,n,r){var i,a,o,s,u,c=0,h=t.length;for(null==r?r=1/0:r*=r,c=0;c1?(c.on(t,n),e):c.on(t)}}},V=function(){var t,e,n,r,i=A(-30),a=1,o=1/0,s=.81;function u(r){var i,a=t.length,o=_(t,z,X).visitAfter(h);for(n=r,i=0;i=o)){(t.data!==e||t.next)&&(0===h&&(h=P(),d+=h*h),0===f&&(f=P(),d+=f*f),d{const{x:e,y:n}=t;return{centerX:e,centerY:n,minX:e,minY:n,maxX:e,maxY:n,height:0,width:0}},a=(t=[])=>{const e=[],n=[];t.forEach(t=>{e.push(t.x),n.push(t.y)});const r=Math.min.apply(Math,e),i=Math.max.apply(Math,e),a=Math.min.apply(Math,n),o=Math.max.apply(Math,n);return{centerX:(r+i)/2,centerY:(a+o)/2,maxX:i,maxY:o,minX:r,minY:a,height:o-a,width:i-r}},o=(t,e)=>2*Math.abs(t.centerX-e.centerX){const e=[],n={};return t.forEach(t=>{const e=t.id=`${t.x}-${t.y}`;n[e]=t}),r.each(n,t=>{e.push(t)}),e},u=t=>(t=s(t),t),c=(t,e)=>[t,{x:t.x,y:e.y},e],h=(t,e)=>0===t.width&&0===t.height?t:{centerX:t.centerX,centerY:t.centerY,minX:t.minX-e,minY:t.minY-e,maxX:t.maxX+e,maxY:t.maxY+e,height:t.height+2*e,width:t.width+2*e},f=(t,e)=>{const n=Math.abs(t.x-e.centerX),r=Math.abs(t.y-e.centerY);return n/e.width>r/e.height},l=(t,e)=>{const n=f(e,t);return n?{x:e.x>t.centerX?t.maxX:t.minX,y:e.y}:{x:e.x,y:e.y>t.centerY?t.maxY:t.minY}},d=(t,e)=>{const n=Math.min(t.minX,e.minX),r=Math.min(t.minY,e.minY),i=Math.max(t.maxX,e.maxX),a=Math.max(t.maxY,e.maxY);return{centerX:(n+i)/2,centerY:(r+a)/2,minX:n,minY:r,maxX:i,maxY:a,height:a-r,width:i-n}},p=t=>{const{minX:e,minY:n,maxX:r,maxY:i}=t;return[{x:e,y:n},{x:r,y:n},{x:r,y:i},{x:e,y:i}]},g=(t,e)=>{const{x:n,y:r}=t;return ne.maxX||re.maxY},v=(t,e)=>et.maxX?[]:[{x:e,y:t.minY},{x:e,y:t.maxY}],m=(t,e)=>et.maxY?[]:[{x:t.minX,y:e},{x:t.maxX,y:e}],y=(t,e)=>v(t,e.x).concat(m(t,e.y)),x=(t,e)=>Math.abs(t.x-e.x)+Math.abs(t.y-e.y),b=(t,e)=>{const n=-2;let r=0;return e.forEach(e=>{e&&(t.x===e.x&&(r+=n),t.y===e.y&&(r+=n))}),r},w=(t,e,n,r,i)=>x(t,e)+x(t,n)+b(t,[e,n,r,i]),_=(t,e,n,r,i=0)=>{t.unshift(e[r]),n[r]&&n[r]!==r&&i<=100&&_(t,e,n,n[r],i+1)},M=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},S=(t,e,n,r)=>{const i=e.x-t.x,a=e.y-t.y,o=r.x-n.x,s=r.y-n.y,u=(-a*(t.x-n.x)+i*(t.y-n.y))/(-o*a+i*s),c=(o*(t.y-n.y)-s*(t.x-n.x))/(-o*a+i*s);return u>=0&&u<=1&&c>=0&&c<=1},k=(t,e,n)=>{if(n.width===n.height===0)return!1;const[r,i,a,o]=p(n);return S(t,e,r,i)||S(t,e,r,o)||S(t,e,i,a)||S(t,e,a,o)},A=(t,e,n,r)=>{const i=[];return t.forEach(t=>{t!==e&&(t.x!==e.x&&t.y!==e.y||k(t,e,n)||k(t,e,r)||i.push(t))}),s(i)},P=(t,e,n,r,i,a,o)=>{const s=[],u=[e],c={},h={},f={};h[e.id]=0,f[e.id]=w(e,n,e);const l={};t.forEach(t=>{l[t.id]=t});while(u.length){let d,p=1/0;if(u.forEach(t=>{f[t.id]{if(-1!==s.indexOf(t))return;-1===u.indexOf(t)&&u.push(t);const r=f[d.id]+x(d,t);h[t.id]&&r>=h[t.id]||(c[t.id]=d.id,h[t.id]=r,f[t.id]=h[t.id]+w(t,n,e,a,o))})}return[e,n]},C=(t,e,n)=>!(t.x===e.x===n.x||t.y===e.y===n.y),E=(t,e,n,r)=>{const i=x(t,e),a=x(n,e);i{const n=[],r=t[0];return n.push(`M${r.x} ${r.y}`),t.forEach((r,i)=>{const a=t[i+1],o=t[i+2];if(a&&o)if(C(r,a,o)){const[t,i]=E(r,a,o,e);n.push(`L${t.x} ${t.y}`),n.push(`Q${a.x} ${a.y} ${i.x} ${i.y}`),n.push(`L${i.x} ${i.y}`)}else n.push(`L${a.x} ${a.y}`);else a&&n.push(`L${a.x} ${a.y}`)}),n.join("")},O=(t,e,n,r,f)=>{const v=n&&n.getBBox()?n.getBBox():i(t),m=r&&r.getBBox()?r.getBBox():i(e);if(o(v,m))return u(c(t,e));const x=h(v,f),b=h(m,f);if(o(x,b))return u(c(t,e));const w=l(x,t),_=l(b,e),M=a([w,_]),S=d(x,b),k=d(x,M),A=d(b,M);let C=[];C=C.concat(p(k)),C=C.concat(p(A));const E={x:(t.x+e.x)/2,y:(t.y+e.y)/2};[M,k,A].forEach(t=>{C=C.concat(y(t,E).filter(t=>g(t,x)&&g(t,b)))}),[{x:w.x,y:_.y},{x:_.x,y:w.y}].forEach(t=>{g(t,x)&&g(t,b)&&C.push(t)}),C.unshift(w),C.push(_),C=s(C,x,b,S);const I=P(C,w,_,v,m,t,e);return I.unshift(t),I.push(e),u(I)}},"0b07":function(t,e,n){var r=n("34ac"),i=n("3698");function a(t,e){var n=i(t,e);return r(n)?n:void 0}t.exports=a},"0b8b":function(t,e,n){"use strict";var r=n("e849"),i=r.longestPath,a=n("1845"),o=n("74e8");function s(t){switch(t.graph().ranker){case"network-simplex":h(t);break;case"tight-tree":c(t);break;case"longest-path":u(t);break;default:h(t)}}t.exports=s;var u=i;function c(t){i(t),a(t)}function h(t){o(t)}},"0d24":function(t,e,n){(function(t){var r=n("2b3e"),i=n("07c7"),a=e&&!e.nodeType&&e,o=a&&"object"==typeof t&&t&&!t.nodeType&&t,s=o&&o.exports===a,u=s?r.Buffer:void 0,c=u?u.isBuffer:void 0,h=c||i;t.exports=h}).call(this,n("62e4")(t))},"0e151":function(t,e){t.exports=function(t,e,n){if(t){if(t.addEventListener)return t.addEventListener(e,n,!1),{remove:function(){t.removeEventListener(e,n,!1)}};if(t.attachEvent)return t.attachEvent("on"+e,n),{remove:function(){t.detachEvent("on"+e,n)}}}}},"0e3c":function(t,e,n){n("d33f")},"0eee":function(t,e,n){var r=n("1c6a"),i={shadowColor:"color",shadowOpacity:"opacity",shadowBlur:"blur",shadowOffsetX:"dx",shadowOffsetY:"dy"},a={x:"-40%",y:"-40%",width:"200%",height:"200%"},o=function(){function t(t){this.type="filter";var e=document.createElementNS("http://www.w3.org/2000/svg","filter");return r.each(a,(function(t,n){e.setAttribute(n,t)})),this.el=e,this.id=r.uniqueId("filter_"),this.el.id=this.id,this.cfg=t,this._parseShadow(t,e),this}var e=t.prototype;return e.match=function(t,e){if(this.type!==t)return!1;var n=!0,i=this.cfg;return r.each(Object.keys(i),(function(t){if(i[t]!==e[t])return n=!1,!1})),n},e.update=function(t,e){var n=this.cfg;return n[i[t]]=e,this._parseShadow(n,this.el),this},e._parseShadow=function(t,e){var n='';e.innerHTML=n},t}();t.exports=o},"0f0f":function(t,e,n){var r=n("8eeb"),i=n("9934");function a(t,e){return t&&r(e,i(e),t)}t.exports=a},"0fe1":function(t,e,n){const r=n("3421"),i=n("1b95");class a{getDefaultCfg(){return{default:{lineWidth:1,stroke:"#A3B1BF",strokeOpacity:.9,fill:"#F3F9FF",fillOpacity:.8,opacity:.8,disCoefficient:.6,minDis:40,maxDis:100},hover:{stroke:"#faad14",fill:"#ffe58f",fillOpacity:.3,opacity:.3,lineWidth:3},collapse:{r:30,width:80,height:40,stroke:"#A3B1BF",lineWidth:3,fill:"#F3F9FF",offsetX:-15,offsetY:5},icon:"https://gw.alipayobjects.com/zos/rmsportal/MXXetJAxlqrbisIuZxDO.svg",operatorBtn:{collapse:{img:"https://gw.alipayobjects.com/zos/rmsportal/uZVdwjJGqDooqKLKtvGA.svg",width:16,height:16},expand:{width:16,height:16,img:"https://gw.alipayobjects.com/zos/rmsportal/MXXetJAxlqrbisIuZxDO.svg"}},visible:!1}}constructor(t){this.graph=t;const e=t.get("groupStyle");this.styles=i({},this.getDefaultCfg(),e),this.customGroup={},this.delegateInGroup={},this.nodePoint=[]}create(t,e,n="circle",r=0,i=!1,a={}){const o=this.graph,s=o.get("customGroup"),u=s.get("children").map(t=>t.get("id"));if(u.indexOf(t)>-1)return console.warn(`已经存在ID为 ${t} 的分组,请重新设置分组ID!`);const c=s.addGroup({id:t,zIndex:r}),h=o.get("autoPaint");o.setAutoPaint(!1);const{default:f}=this.styles,{x:l,y:d,width:p,height:g,maxX:v}=this.calculationGroupPosition(e),m=this.getGroupPadding(t),y=o.get("groupBBoxs");y[t]={x:l,y:d,width:p,height:g,maxX:v};let x=null;if(i){const n=o.get("groups");e.forEach(e=>{const n=o.findById(e),r=n.getModel();r.groupId||(r.groupId=t)}),n.find(e=>e.id===t)||(n.push({id:t,title:a}),o.set({groups:n}))}const b=o.get("groups").filter(e=>e.id===t);b&&b.length>0&&(x=b[0].title);let w=0,_=0,M=null;if("circle"===n){const e=p>g?p/2:g/2,n=(p+2*l)/2,i=(g+2*d)/2,a=e+m;M=c.addShape("circle",{attrs:{...f,x:n,y:i,r:a},capture:!0,zIndex:r,groupId:t}),w=n,_=i-a,this.setDeletageGroupByStyle(t,c,{width:p,height:g,x:n,y:i,r:a})}else{const e=m*f.disCoefficient;M=c.addShape("rect",{attrs:{...f,x:l-e,y:d-e,width:p+2*e,height:g+2*e},capture:!0,zIndex:r,groupId:t}),w=l-e+15,_=d-e+15,this.setDeletageGroupByStyle(t,c,{x:l-e,y:d-e,width:p+e,height:g+e,btnOffset:v-3})}if(x){const{offsetX:t=0,offsetY:e=0,text:n=x,...r}=x,i=c.addShape("text",{attrs:{text:n,stroke:"#444",x:w+t,y:_+e,...r},className:"group-title"});i.set("capture",!1)}c.set("keyShape",M),o.get("groupNodes")[t]=e,o.setAutoPaint(h),o.paint()}setGroupStyle(t,e){if(!t||t.get("destroyed"))return;let n={};const{hover:a,default:o}=this.styles;r(e)?"default"===e?n=i({},o):"hover"===e&&(n=i({},a)):n=i({},o,e);for(const r in n)t.attr(r,n[r])}calculationGroupPosition(t){const e=this.graph;let n=1/0,i=-1/0,a=1/0,o=-1/0;for(const f of t){const t=r(f)?e.findById(f):f,s=t.getBBox(),{minX:u,minY:c,maxX:h,maxY:l}=s;ui&&(i=h),l>o&&(o=l)}const s=Math.floor(n),u=Math.floor(a),c=Math.ceil(i)-s,h=Math.ceil(o)-u;return{x:s,y:u,width:c,height:h,maxX:Math.ceil(i)}}getGroupPadding(t){const e=this.graph,{default:n}=this.styles,r=e.get("groups"),i=!!r.filter(e=>e.parentId===t).length>0,a=i?n.maxDis:n.minDis;return a}setDeletageGroupByStyle(t,e,n){const{width:r,height:a,x:o,y:s,r:u,btnOffset:c}=n,h=this.customGroup[t];if(h){const{groupStyle:r}=h,a=i({},r,n);this.customGroup[t]={nodeGroup:e,groupStyle:a}}else this.customGroup[t]={nodeGroup:e,groupStyle:{width:r,height:a,x:o,y:s,r:u,btnOffset:c}}}getDeletageGroupById(t){return this.customGroup[t]}collapseExpandGroup(t){const e=this.getDeletageGroupById(t),{nodeGroup:n}=e,r=n.get("hasHidden");r?(n.set("hasHidden",!1),this.expandGroup(t)):(n.set("hasHidden",!0),this.collapseGroup(t))}setGroupTmpNode(t,e){const n=this.graph,r=n.get("groupNodes"),i=n.get("groups");r[t].indexOf(e)<0&&r[t].push(e);const a=i.filter(e=>e.id===t);let o=null;a.length>0&&(o=a[0].parentId),o&&this.setGroupTmpNode(o,e)}collapseGroup(t){const e=this.getDeletageGroupById(t),{nodeGroup:n}=e,{collapse:r}=this.styles,i=this.graph,a=i.get("groupType"),o=i.get("autoPaint");i.setAutoPaint(!1);const s=i.get("groupNodes")[t],{width:u,height:c}=this.calculationGroupPosition(s),h=n.get("keyShape"),{r:f,width:l,height:d,offsetX:p,offsetY:g,...v}=r;for(const M in v)h.attr(M,v[M]);let m={groupId:t,id:t+"-custom-node",x:h.attr("x"),y:h.attr("y"),style:{r:f},shape:"circle"};const y=n.findByClassName("group-title");if("circle"===a){const t=h.attr("r");h.animate({onFrame(e){return{r:t-e*(t-f)}}},500,"easeCubic"),y&&y.attr({x:h.attr("x")+p,y:h.attr("y")+g})}else"rect"===a&&(h.animate({onFrame(t){return{width:u-t*(u-l),height:c-t*(c-d)}}},500,"easeCubic"),y&&y.attr({x:h.attr("x")+10,y:h.attr("y")+d/2+5}),m={groupId:t,id:t+"-custom-node",x:h.attr("x")+l/2,y:h.attr("y")+d/2,size:[l,d],shape:"rect"});const x=i.getEdges(),b=x.filter(t=>{const e=t.getModel();return!s.includes(e.source)&&s.includes(e.target)}),w=x.filter(t=>{const e=t.getModel();return s.includes(e.source)&&!s.includes(e.target)}),_=x.filter(t=>{const e=t.getModel();return s.includes(e.source)&&s.includes(e.target)});if(s.forEach(e=>{const n=i.findById(e),r=n.getModel(),{groupId:a}=r;if(a&&a!==t){const t=this.getDeletageGroupById(a),{nodeGroup:e}=t;e.hide()}n.hide()}),_.forEach(t=>{const e=t.getSource(),n=t.getTarget();e.isVisible()&&n.isVisible()?t.show():t.hide()}),b.length>0||w.length>0){const e=i.add("node",m);e.set("capture",!1),e.hide(),this.delegateInGroup[t]={delegateNode:e},this.setGroupTmpNode(t,t+"-custom-node"),this.updateEdgeInGroupLinks(t,b,w)}i.paint(),i.setAutoPaint(o)}updateEdgeInGroupLinks(t,e,n){const r=this.graph,a={};e.map(e=>{const n=e.getModel(),i=e.get("id"),{target:o}=n;return a[i]=o,r.updateItem(e,{target:t+"-custom-node"}),!0});const o={};n.map(e=>{const n=e.getModel(),i=e.get("id"),{source:a}=n;return o[i]=a,r.updateItem(e,{source:t+"-custom-node"}),!0}),this.delegateInGroup[t]=i({sourceOutTargetInEdges:e,sourceInTargetOutEdges:n,edgesOuts:a,edgesIn:o},this.delegateInGroup[t])}expandGroup(t){const e=this.graph,n=e.get("groupType"),r=e.get("autoPaint");e.setAutoPaint(!1);const i=e.get("groupNodes")[t],a=i.filter(t=>-1===t.indexOf("custom-node")),{width:o,height:s}=this.calculationGroupPosition(a),{nodeGroup:u}=this.getDeletageGroupById(t),c=u.get("keyShape"),{default:h,collapse:f}=this.styles;for(const g in h)c.attr(g,h[g]);const l=u.findByClassName("group-title"),d=this.getGroupPadding(t);if("circle"===n){const t=o>s?o/2:s/2;c.animate({onFrame(e){return{r:f.r+e*(t-f.r+d)}}},500,"easeCubic")}else if("rect"===n){const{width:t,height:e}=f;c.animate({onFrame(n){return{width:t+n*(o-t+d*h.disCoefficient*2),height:e+n*(s-e+d*h.disCoefficient*2)}}},500,"easeCubic")}if(l){let r=null;const i=e.get("groups").filter(e=>e.id===t);i&&i.length>0&&(r=i[0].title);const{offsetX:a=0,offsetY:o=0}=r;"circle"===n?l.animate({onFrame(t){return{x:c.attr("x")+a,y:c.attr("y")-t*c.attr("r")+o}}},600,"easeCubic"):"rect"===n&&l.animate({onFrame(t){return{x:c.attr("x")+t*(15+a),y:c.attr("y")+t*(15+o)}}},600,"easeCubic")}setTimeout(()=>{i.forEach(n=>{const r=e.findById(n),i=r.getModel(),{groupId:a}=i;if(a&&a!==t){const t=this.getDeletageGroupById(a),{nodeGroup:e}=t;e.show();const n=e.get("hasHidden");n||r.show()}else r.show()});const n=e.getEdges(),r=n.filter(t=>{const e=t.getModel();return i.includes(e.source)||i.includes(e.target)});r.forEach(t=>{const e=t.getSource(),n=t.getTarget();e.isVisible()&&n.isVisible()&&t.show()})},300);const p=this.delegateInGroup[t];if(p){const{sourceOutTargetInEdges:n,sourceInTargetOutEdges:r,edgesOuts:i,edgesIn:a,delegateNode:o}=p;n.map(t=>{const n=t.get("id"),r=i[n];return e.updateItem(t,{target:r}),!0}),r.map(t=>{const n=t.get("id"),r=a[n];return e.updateItem(t,{source:r}),!0});const s=o.getModel();this.deleteTmpNode(t,s.id),e.remove(o),delete this.delegateInGroup[t]}e.setAutoPaint(r),e.paint()}deleteTmpNode(t,e){const n=this.graph,r=n.get("groups"),i=n.get("groupNodes")[t],a=i.indexOf(e);i.splice(a,1);const o=r.filter(e=>e.id===t);let s=null;o.length>0&&(s=o[0].parentId),s&&this.deleteTmpNode(s,e)}remove(t){const e=this.graph,n=this.getDeletageGroupById(t);if(!n)return void console.warn(`请确认输入的groupId ${t} 是否有误!`);const{nodeGroup:r}=n,i=e.get("autoPaint");e.setAutoPaint(!1);const a=e.get("groupNodes"),o=a[t];o.forEach(n=>{const r=e.findById(n),i=r.getModel(),a=i.groupId;a&&t===a&&(delete i.groupId,e.updateItem(r,i))}),r.destroy(),delete this.customGroup[t];const s=e.get("groups");if(s.length>0){const n=s.filter(e=>e.id!==t);e.set("groups",n)}let u=null,c=null;for(const h of s)if(t===h.id){u=h.parentId,c=h;break}c&&delete c.parentId,delete a[t],u&&(a[u]=a[u].filter(t=>!o.includes(t))),e.setAutoPaint(i),e.paint()}updateGroup(t,e){const n=this.graph,r=n.get("groupType");this.updateItemInGroup(t,e);const{groups:i}=n.save();let a=null,o=null;for(const s of i)if(t===s.id){a=s.parentId,o=s;break}if(a){const{nodeGroup:e}=this.getDeletageGroupById(a),i=e.get("keyShape");this.setGroupStyle(i,"default");const s=i.getBBox(),{minX:u,minY:c,maxX:h,maxY:f}=s,{nodeGroup:l}=this.getDeletageGroupById(t),d=l.get("keyShape"),p=d.getBBox(),{x:g,y:v}=p;if(!(gu&&vc)){delete o.parentId;const s=n.get("groupNodes"),u=s[t],c=s[a];s[a]=c.filter(t=>-1===u.indexOf(t));const{x:h,y:f,width:l,height:d}=this.calculationGroupPosition(s[a]),p=this.getGroupPadding(a),g=e.findByClassName("group-title");let v=0,m=0;if("circle"===r){const t=l>d?l/2:d/2,e=(l+2*h)/2,n=(d+2*f)/2;i.attr({r:t+p,x:e,y:n}),v=e,m=n-i.attr("r")}else if("rect"===r){const{default:t}=this.styles,e=p*t.disCoefficient;i.attr({x:h-e,y:f-e}),v=h-e+15,m=f-e+15}if(g){const t=o.title;let e=0,n=0;t&&(e=t.offsetX,n=t.offsetY),g.attr({x:v+e,y:m+n})}}}}updateItemInGroup(t,e){const n=this.graph,r=n.get("groupType"),i=n.get("groupNodes"),a=i[t],{nodeGroup:o}=this.getDeletageGroupById(t),s=o.getBBox(),u=[];a.forEach((t,r)=>{const i=n.findById(t),a=i.getModel(),o=a.groupId;o&&!u.includes(o)&&u.push(o),this.nodePoint[r]||(this.nodePoint[r]={x:a.x,y:a.y});const c=e.x-s.x+this.nodePoint[r].x,h=e.y-s.y+this.nodePoint[r].y;this.nodePoint[r]={x:c,y:h},n.updateItem(i,{x:c,y:h})}),u.includes(t)||u.push(t),u.forEach(t=>{const{nodeGroup:e}=this.getDeletageGroupById(t),n=e.get("keyShape"),a=i[t].filter(t=>-1===t.indexOf("custom-node")),{x:o,y:s,width:u,height:c}=this.calculationGroupPosition(a);let h=0,f=0;if("circle"===r){const t=(u+2*o)/2,e=(c+2*s)/2;n.attr({x:t,y:e}),h=t,f=e-n.attr("r")}else if("rect"===r){const r=e.get("hasHidden"),i=this.getGroupPadding(t);let a={};const{default:l}=this.styles,d=i*l.disCoefficient;h=o-d+15,f=s-d+15,r?(a={x:o-d,y:s-d},f+=10):a={x:o-d,y:s-d,width:u+2*d,height:c+2*d},n.attr(a)}this.updateGroupTitle(e,t,h,f)})}updateGroupTitle(t,e,n,r){const i=this.graph,a=t.findByClassName("group-title");if(a){let t=null;const o=i.get("groups").filter(t=>t.id===e);o&&o.length>0&&(t=o[0].title);let s=0,u=0;t&&(s=t.offsetX||0,u=t.offsetY||0),a.attr({x:n+s,y:r+u})}}dynamicChangeGroupSize(t,e,n){const{item:r}=t,i=r.getModel(),{groupId:a}=i,o=this.graph,s=o.get("groupType"),u=o.get("groupNodes"),c=u[a];if(0===c.length){delete u[a];const t=o.get("groups");o.set("groups",t.filter(t=>t.id!==a)),e.remove()}else{const{x:t,y:r,width:i,height:o}=this.calculationGroupPosition(c),u=this.getGroupPadding(a);let h=0,f=0;if("circle"===s){const e=i>o?i/2:o/2,a=(i+2*t)/2,s=(o+2*r)/2;n.attr({r:e+u,x:a,y:s}),h=a,f=s-n.attr("r")}else if("rect"===s){const{default:e}=this.styles,a=u*e.disCoefficient;n.attr({x:t-a,y:r-a,width:i+2*a,height:o+2*a}),h=t-a+15,f=r-a+15}this.updateGroupTitle(e,a,h,f)}this.setGroupStyle(n,"default")}resetNodePoint(){this.nodePoint.length=0}destroy(){this.graph=null,this.styles={},this.customGroup={},this.delegateInGroup={},this.resetNodePoint()}}t.exports=a},"100e":function(t,e,n){var r=n("cd9d"),i=n("2286"),a=n("c1c9");function o(t,e){return a(i(t,e,r),t+"")}t.exports=o},1041:function(t,e,n){var r=n("8eeb"),i=n("a029");function a(t,e){return r(t,i(t),e)}t.exports=a},1127:function(t,e,n){const r=n("1bb5"),i=["click","mousedown","mouseup","dblclick","contextmenu","mouseenter","mouseout","mouseover","mousemove","mouseleave","dragstart","dragend","drag","dragenter","dragleave","drop"];function a(t){while(t&&!t.get("item"))t=t.get("parent");return t}const o=[1,0,0,0,1,0,0,0,1],s=9;function u(t){for(let e=0;e{n.on(t,s)}),this.canvasHandler=s,o.push(r.addEventListener(a,"DOMMouseScroll",c)),o.push(r.addEventListener(a,"mousewheel",c)),"undefined"!==typeof window&&(o.push(r.addEventListener(window,"keydown",u)),o.push(r.addEventListener(window,"keyup",u)))}_onCanvasEvents(t){const e=this,n=e.graph,r=n.get("canvas"),i=r.get("pixelRatio"),o=t.target,s=t.type;t.canvasX=t.x/i,t.canvasY=t.y/i;let c={x:t.canvasX,y:t.canvasY};if(u(n.get("group").getMatrix())&&(c=n.getPointByCanvas(t.canvasX,t.canvasY)),t.x=c.x,t.y=c.y,t.currentTarget=n,o===r)return"mousemove"===s&&e._handleMouseMove(t,"canvas"),t.target=r,t.item=null,n.emit(s,t),void n.emit("canvas:"+s,t);const h=a(o);if(!h)return void n.emit(s,t);const f=h.get("item");if(f.destroyed)return;const l=f.getType();t.target=o,t.item=f,n.emit(s,t),"mouseenter"!==s&&"mouseleave"!==s&&"dragenter"!==s&&"dragleave"!==s&&(n.emit(l+":"+s,t),"dragstart"===s&&(e.dragging=!0),"dragend"===s&&(e.dragging=!1),"mousemove"===s&&e._handleMouseMove(t,l))}_onExtendEvents(t){this.graph.emit(t.type,t)}_onWheelEvent(t){r.isNil(t.wheelDelta)&&(t.wheelDelta=-t.detail),this.graph.emit("wheel",t)}_handleMouseMove(t,e){const n=this,i=this.graph.get("canvas"),a=t.target===i?null:t.item,o=this.preItem;t=r.cloneEvent(t),o&&o!==a&&!o.destroyed&&(t.item=o,n._emitCustomEvent(o.getType(),"mouseleave",t),n.dragging&&n._emitCustomEvent(o.getType(),"dragleave",t)),a&&o!==a&&(t.item=a,n._emitCustomEvent(e,"mouseenter",t),n.dragging&&n._emitCustomEvent(e,"dragenter",t)),this.preItem=a}_emitCustomEvent(t,e,n){n.type=e,this.graph.emit(t+":"+e,n)}destroy(){const t=this.graph,e=this.canvasHandler,n=t.get("canvas");r.each(i,t=>{n.off(t,e)}),r.each(this.extendEvents,t=>{t.remove()})}}t.exports=c},1249:function(t,e,n){const r=n("1bb5");n("70e1");const i={},a={};function o(t){return a[t]||r.upperFirst(t)}const s={defaultShapeType:null,getShape(t){const e=this,n=e[t]||e[e.defaultShapeType];return n},draw(t,e,n){const r=this.getShape(t),i=r.draw(e,n);return r.afterDraw(e,n,i),i},update(t,e,n){const r=this.getShape(t);r.update&&(r.update(e,n),r.afterUpdate(e,n))},setState(t,e,n,r){const i=this.getShape(t);i.setState(e,n,r)},shouldUpdate(t){const e=this.getShape(t);return!!e.update},getControlPoints(t,e){const n=this.getShape(t);return n.getControlPoints(e)},getAnchorPoints(t,e){const n=this.getShape(t);return n.getAnchorPoints(e)}},u={options:{},getCustomConfig(){},draw(){},afterDraw(){},afterUpdate(){},setState(){},getControlPoints(t){return t.controlPoints},getAnchorPoints(t){const e=this.getCustomConfig(t)||{},{anchorPoints:n}=this.options,{anchorPoints:r}=e,i=t.anchorPoints||r||n;return i}};function c(t){const e="register"+t.className;i[e]=function(e,n,i){const a=i?t.getShape(i):u,o=r.mix({},a,n);return o.type=e,t[e]=o,o}}i.registerFactory=function(t,e){const n=o(t),a=r.mix({},s,e);return i[n]=a,a.className=n,c(a),a},i.getFactory=function(t){const e=this;return t=o(t),e[t]},t.exports=i},1290:function(t,e){function n(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}t.exports=n},"12d7":function(t,e,n){const r=n("1bb5"),i=n("9ceb");t.exports=r.mix({getDefaultCfg(){return{item:"edge",formatText(t){return"source:"+t.source+" target:"+t.target}}},getEvents(){return{"edge:mouseenter":"onMouseEnter","edge:mouseleave":"onMouseLeave","edge:mousemove":"onMouseMove"}}},i)},1304:function(t,e,n){var r=n("cd9d");function i(t){return"function"==typeof t?t:r}t.exports=i},1368:function(t,e,n){var r=n("da03"),i=function(){var t=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function a(t){return!!i&&i in t}t.exports=a},"13ea":function(t,e,n){var r=n("03dd"),i=n("42a2"),a=n("d370"),o=n("6747"),s=n("30c9"),u=n("0d24"),c=n("eac5"),h=n("73ac"),f="[object Map]",l="[object Set]",d=Object.prototype,p=d.hasOwnProperty;function g(t){if(null==t)return!0;if(s(t)&&(o(t)||"string"==typeof t||"function"==typeof t.splice||u(t)||h(t)||a(t)))return!t.length;var e=i(t);if(e==f||e==l)return!t.size;if(c(t))return!r(t).length;for(var n in t)if(p.call(t,n))return!1;return!0}t.exports=g},"14c8":function(t,e){function n(t,e){if(t["_wrap_"+e])return t["_wrap_"+e];var n=function(n){t[e](n)};return t["_wrap_"+e]=n,n}t.exports=n},"158c":function(t,e){var n=document.createElement("table"),r=document.createElement("tr"),i=/^\s*<(\w+|!)[^>]*>/,a={tr:document.createElement("tbody"),tbody:n,thead:n,tfoot:n,td:r,th:r,"*":document.createElement("div")};t.exports=function(t){var e=i.test(t)&&RegExp.$1;e in a||(e="*");var n=a[e];t=t.replace(/(^\s*)|(\s*$)/g,""),n.innerHTML=""+t;var r=n.childNodes[0];return n.removeChild(r),r}},"159a":function(t,e,n){var r=n("32b3"),i=n("e2e4"),a=n("c0983"),o=n("1a8c"),s=n("f4d6");function u(t,e,n,u){if(!o(t))return t;e=i(e,t);var c=-1,h=e.length,f=h-1,l=t;while(null!=l&&++c{t[n]||(t[n]=null)}),r.attr(t)}},getStateStyle(t,e,n){const r=n.getModel(),i=this.getCustomConfig(r)||{},{style:u,stateStyles:c}=this.options,{style:h,stateStyles:f}=i,l=s({},c,f);let d=u;if(l[t]&&(d=l[t]),e)return s({},d,r.style);const p=n.getStates(),g=s({},u,h),v=o(g);return p.forEach(t=>{s(v,a(u,t,{}),a(h,t,{}),r.style)}),v}};t.exports=h},"15f3":function(t,e,n){var r=n("89d9"),i=n("8604");function a(t,e){return r(t,e,(function(e,n){return i(t,n)}))}t.exports=a},"17d5":function(t,e,n){var r;try{r=n("e008")}catch(i){}r||(r=window.graphlib),t.exports=r},1838:function(t,e,n){var r=n("c05f"),i=n("9b02"),a=n("8604"),o=n("f608"),s=n("08cc"),u=n("20ec"),c=n("f4d6"),h=1,f=2;function l(t,e){return o(t)&&s(e)?u(c(t),e):function(n){var o=i(n,t);return void 0===o&&o===e?a(n,t):r(e,o,h|f)}}t.exports=l},1845:function(t,e,n){"use strict";var r=n("6f9c"),i=n("17d5").Graph,a=n("e849").slack;function o(t){var e,n,r=new i({directed:!1}),o=t.nodes()[0],h=t.nodeCount();r.setNode(o,{});while(s(r,t)=u)return c;var h=n[i];return c*("desc"==h?-1:1)}}return t.index-e.index}t.exports=i},2172:function(t,e,n){var r=n("1c6a"),i=/[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/gi,a=/[^\s\,]+/gi,o=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,s=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,u=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,c=/[\d.]+:(#[^\s]+|[^\)]+\))/gi;function h(t,e){var n=t.match(c);r.each(n,(function(t){t=t.split(":"),e.addColorStop(t[0],t[1])}))}function f(t,e,n){var i,a,s=o.exec(t),u=r.mod(r.toRadian(parseFloat(s[1])),2*Math.PI),c=s[2],f=e.getBBox();u>=0&&u<.5*Math.PI?(i={x:f.minX,y:f.minY},a={x:f.maxX,y:f.maxY}):.5*Math.PI<=u&&u1){var i=e[0].charAt(0);e.splice(1,0,e[0].substr(1)),e[0]=i}r.each(e,(function(t,n){isNaN(t)||(e[n]=+t)})),t[n]=e})),t):void 0},parseStyle:function(t,e,n){if(r.isString(t)){if("("===t[1]||"("===t[2]){if("l"===t[0])return f(t,e,n);if("r"===t[0])return l(t,e,n);if("p"===t[0])return d(t,e,n)}return t}}}},"220e":function(t,e,n){var r=n("6f9c"),i=n("b50e");function a(t){function e(n){var i=t.children(n),a=t.node(n);if(i.length&&r.forEach(i,e),r.has(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var s=a.minRank,u=a.maxRank+1;s{f.call(e,n)||(r.isObject(t)?e[n]=r.clone(t):e[n]=g[n])});if(n.emit("beforeadditem",{type:t,model:e}),t===s){let t=e.source,a=e.target;if(t&&r.isString(t)&&(t=n.findById(t)),a&&r.isString(a)&&(a=n.findById(a)),!t||!a)return void console.warn("The source or target node of edge "+e.id+" does not exist!");d=new i[l]({model:e,source:t,target:a,styles:p,linkCenter:n.get("linkCenter"),group:o.addGroup()})}else d=new i[l]({model:e,styles:p,group:o.addGroup()});return n.get(t+"s").push(d),n.get("itemMap")[d.get("id")]=d,n.autoPaint(),n.emit("afteradditem",{item:d,model:e}),d}updateItem(t,e){const n=this.graph;if(r.isString(t)&&(t=n.findById(t)),!t||t.destroyed)return;const i=n.get(t.getType()+c),u=t.getModel();if(i){const n=a({},u,e),o=i(n),s=a({},u,o,e);o[h]&&(t.set("styles",s[h]),delete s[h]),r.each(s,(t,n)=>{e[n]=t})}else r.each(e,(t,n)=>{u[n]&&r.isObject(t)&&!r.isArray(t)&&(e[n]=r.mix({},u[n],e[n]))});if(n.emit("beforeupdateitem",{item:t,cfg:e}),t.getType()===s){if(e.source){let i=e.source;r.isString(i)&&(i=n.findById(i)),t.setSource(i)}if(e.target){let i=e.target;r.isString(i)&&(i=n.findById(i)),t.setTarget(i)}}if(t.update(e),t.getType()===o){const e=n.get("autoPaint");n.setAutoPaint(!1),r.each(t.getEdges(),t=>{n.refreshItem(t)}),n.setAutoPaint(e)}n.autoPaint(),n.emit("afterupdateitem",{item:t,cfg:e})}removeItem(t){const e=this.graph;if(r.isString(t)&&(t=e.findById(t)),!t||t.destroyed)return;e.emit("beforeremoveitem",{item:t});const n=t.getType(),i=e.get(t.getType()+"s"),a=i.indexOf(t);if(i.splice(a,1),delete e.get("itemMap")[t.get("id")],n===o){const n=t.getEdges();for(let t=n.length;t>=0;t--)e.removeItem(n[t])}t.destroy(),e.autoPaint(),e.emit("afterremoveitem",{item:t})}setItemState(t,e,n){const r=this.graph;t.hasState(e)!==n&&(r.emit("beforeitemstatechange",{item:t,state:e,enabled:n}),t.setState(e,n),r.autoPaint(),r.emit("afteritemstatechange",{item:t,state:e,enabled:n}))}clearItemStates(t,e){const n=this.graph;r.isString(t)&&(t=n.findById(t)),n.emit("beforeitemstatesclear",{item:t,states:e}),t.clearStates(e),n.autoPaint(),n.emit("afteritemstatesclear",{item:t,states:e})}refreshItem(t){const e=this.graph;r.isString(t)&&(t=e.findById(t)),e.emit("beforeitemrefresh",{item:t}),t.refresh(),e.autoPaint(),e.emit("afteritemrefresh",{item:t})}changeItemVisibility(t,e){const n=this,i=n.graph;if(r.isString(t)&&(t=i.findById(t)),i.emit("beforeitemvisibilitychange",{item:t,visible:e}),t.changeVisibility(e),t.getType()===o){const a=i.get("autoPaint");i.setAutoPaint(!1),r.each(t.getEdges(),t=>{(!e||t.get("source").isVisible()&&t.get("target").isVisible())&&n.changeItemVisibility(t,e)}),i.setAutoPaint(a)}i.autoPaint(),i.emit("afteritemvisibilitychange",{item:t,visible:e})}destroy(){this.graph=null,this.destroyed=!0}}t.exports=l},"242e":function(t,e,n){var r=n("72af"),i=n("ec69");function a(t,e){return t&&r(t,e,i)}t.exports=a},2474:function(t,e,n){var r=n("2b3e"),i=r.Uint8Array;t.exports=i},2478:function(t,e,n){var r=n("4245");function i(t){return r(this,t).get(t)}t.exports=i},"24db":function(t,e,n){var r=n("1c6a"),i=n("adff"),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={x:0,y:0,r:0,lineWidth:1},r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"circle",getDefaultAttrs:function(){return{lineWidth:1}},calculateBox:function(){var t=this._attrs,e=t.x,n=t.y,r=t.r,i=this.getHitLineWidth(),a=i/2+r;return{minX:e-a,minY:n-a,maxX:e+a,maxY:n+a}},createPath:function(t){var e=this._attrs,n=e.x,r=e.y,i=e.r;t.beginPath(),t.arc(n,r,i,0,2*Math.PI,!1),t.closePath()}}),t.exports=a},"251a":function(t,e,n){var r=n("6f9c"),i=n("b50e");function a(t){var e=i.addDummyNode(t,"root",{},"_root"),n=s(t),a=r.max(r.values(n))-1,c=2*a+1;t.graph().nestingRoot=e,r.forEach(t.edges(),(function(e){t.edge(e).minlen*=c}));var h=u(t)+1;r.forEach(t.children(),(function(r){o(t,e,c,h,a,n,r)})),t.graph().nodeRankFactor=c}function o(t,e,n,a,s,u,c){var h=t.children(c);if(h.length){var f=i.addBorderNode(t,"_bt"),l=i.addBorderNode(t,"_bb"),d=t.node(c);t.setParent(f,c),d.borderTop=f,t.setParent(l,c),d.borderBottom=l,r.forEach(h,(function(r){o(t,e,n,a,s,u,r);var i=t.node(r),h=i.borderTop?i.borderTop:r,d=i.borderBottom?i.borderBottom:r,p=i.borderTop?a:2*a,g=h!==d?1:s-u[c]+1;t.setEdge(f,h,{weight:p,minlen:g,nestingEdge:!0}),t.setEdge(d,l,{weight:p,minlen:g,nestingEdge:!0})})),t.parent(c)||t.setEdge(e,f,{weight:0,minlen:s+u[c]})}else c!==e&&t.setEdge(e,c,{weight:0,minlen:n})}function s(t){var e={};function n(i,a){var o=t.children(i);o&&o.length&&r.forEach(o,(function(t){n(t,a+1)})),e[i]=a}return r.forEach(t.children(),(function(t){n(t,1)})),e}function u(t){return r.reduce(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)}function c(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,r.forEach(t.edges(),(function(e){var n=t.edge(e);n.nestingEdge&&t.removeEdge(e)}))}t.exports={run:a,cleanup:c}},2524:function(t,e,n){var r=n("6044"),i="__lodash_hash_undefined__";function a(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?i:e,this}t.exports=a},"253c":function(t,e,n){var r=n("3729"),i=n("1310"),a="[object Arguments]";function o(t){return i(t)&&r(t)==a}t.exports=o},2593:function(t,e,n){var r=n("15f3"),i=n("c6cf"),a=i((function(t,e){return null==t?{}:r(t,e)}));t.exports=a},2599:function(t,e){const n={RUN:"LAYOUT_RUN",END:"LAYOUT_END",ERROR:"LAYOUT_ERROR",TICK:"LAYOUT_TICK"};t.exports={LAYOUT_MESSAGE:n}},2620:function(t,e,n){var r=n("1c6a"),i=n("9f57"),a=["mousedown","mouseup","dblclick","mouseenter","mouseout","mouseover","mousemove","mouseleave"],o=function(){var t=new Date;return t.getTime()},s=40,u=0,c=null,h=null,f={},l=null,d=0;t.exports={registerEvent:function(){var t=this,e=this.get("el");r.each(a,(function(n){e.addEventListener(n,(function(e){t._triggerEvent(n,e)}),!1)})),e.addEventListener("touchstart",(function(e){r.isEmpty(e.touches)||t._triggerEvent("touchstart",e.touches[0])}),!1),e.addEventListener("touchmove",(function(e){r.isEmpty(e.touches)||t._triggerEvent("touchmove",e.touches[0])}),!1),e.addEventListener("touchend",(function(e){r.isEmpty(e.changedTouches)||t._triggerEvent("touchend",e.changedTouches[0])}),!1),e.addEventListener("contextmenu",(function(e){t._triggerEvent("contextmenu",e),e.preventDefault()}),!1)},_getEmitter:function(t,e){if(t){if(!r.isEmpty(t._getEvents()))return t;var n=t.get("parent");if(n&&!e.propagationStopped)return this._getEmitter(n,e)}},_getEventObj:function(t,e,n,r){var a=new i(t,e,!0,!0);return a.x=n.x,a.y=n.y,a.clientX=e.clientX,a.clientY=e.clientY,a.currentTarget=r,a.target=r,a},_triggerEvent:function(t,e){var n=this,r=n.getPointByEvent(e),i=n.getShape(r.x,r.y,e),a=n.get("el");if(l&&"svg"===n.getRenderer()&&(i=n.getShape(r.x,r.y)),"mousemove"===t){if(c&&c!==i&&(n._emitEvent("mouseout",e,r,c),n._emitEvent("mouseleave",e,r,c),l&&n._emitEvent("dragleave",e,r,c),i&&!i.destroyed||(a.style.cursor="default")),l&&(n._emitEvent("drag",e,r,l),n._emitEvent("mousemove",e,r,i)),i){if(!l)if(h===i){var p=o(),g=p-d,v=f.x-e.clientX,m=f.y-e.clientY,y=v*v+m*m;g>120||y>s?(l=i,h=null,this._emitEvent("dragstart",e,r,i)):n._emitEvent("mousemove",e,r,i)}else n._emitEvent("mousemove",e,r,i);c!==i&&(n._emitEvent("mouseenter",e,r,i),n._emitEvent("mouseover",e,r,i),l&&n._emitEvent("dragenter",e,r,i))}else{var x=n._getEventObj("mousemove",e,r,n);n.emit("mousemove",x)}c=i}else if(this._emitEvent(t,e,r,i||this),l||"mousedown"!==t||e.button!==u||(h=i,f={x:e.clientX,y:e.clientY},d=o()),"mouseup"===t&&e.button===u){var b=f.x-e.clientX,w=f.y-e.clientY,_=b*b+w*w,M=o(),S=M-d;(_0;--s)if(r=e[s].dequeue(),r){i=i.concat(c(t,e,n,r,!0));break}}return i}function c(t,e,n,i,a){var o=a?[]:void 0;return r.forEach(t.inEdges(i.v),(function(r){var i=t.edge(r),s=t.node(r.v);a&&o.push({v:r.v,w:r.w}),s.out-=i,f(e,n,s)})),r.forEach(t.outEdges(i.v),(function(r){var i=t.edge(r),a=r.w,o=t.node(a);o["in"]-=i,f(e,n,o)})),t.removeNode(i.v),o}function h(t,e){var n=new i,o=0,s=0;r.forEach(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),r.forEach(t.edges(),(function(t){var r=n.edge(t.v,t.w)||0,i=e(t),a=r+i;n.setEdge(t.v,t.w,a),s=Math.max(s,n.node(t.v).out+=i),o=Math.max(o,n.node(t.w)["in"]+=i)}));var u=r.range(s+o+3).map((function(){return new a})),c=o+1;return r.forEach(n.nodes(),(function(t){f(u,c,n.node(t))})),{graph:n,buckets:u,zeroIdx:c}}function f(t,e,n){n.out?n["in"]?t[n.out-n["in"]+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}},"2a9f":function(t,e,n){"use strict";var r=n("6f9c"),i=n("e632"),a=n("d780"),o=n("38e2"),s=n("8817"),u=n("d4f3"),c=n("17d5").Graph,h=n("b50e");function f(t){var e=h.maxRank(t),n=l(t,r.range(1,e+1),"inEdges"),o=l(t,r.range(e-1,-1,-1),"outEdges"),s=i(t);p(t,s);for(var u,c=Number.POSITIVE_INFINITY,f=0,g=0;g<4;++f,++g){d(f%2?n:o,f%4>=2),s=h.buildLayerMatrix(t);var v=a(t,s);v=c){var v=e?null:s(t);if(v)return u(v);d=!1,f=o,g=new r}else g=e?[]:p;t:while(++h1?n[a-1]:void 0,s=a>2?n[2]:void 0;o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);while(++r + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(){var a,o="4.17.19",s=200,u="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",h="__lodash_hash_undefined__",f=500,l="__lodash_placeholder__",d=1,p=2,g=4,v=1,m=2,y=1,x=2,b=4,w=8,_=16,M=32,S=64,k=128,A=256,P=512,C=30,E="...",I=800,O=16,T=1,N=2,j=3,B=1/0,L=9007199254740991,D=17976931348623157e292,R=NaN,F=4294967295,Y=F-1,q=F>>>1,z=[["ary",k],["bind",y],["bindKey",x],["curry",w],["curryRight",_],["flip",P],["partial",M],["partialRight",S],["rearg",A]],X="[object Arguments]",G="[object Array]",W="[object AsyncFunction]",U="[object Boolean]",V="[object Date]",H="[object DOMException]",Z="[object Error]",$="[object Function]",Q="[object GeneratorFunction]",K="[object Map]",J="[object Number]",tt="[object Null]",et="[object Object]",nt="[object Promise]",rt="[object Proxy]",it="[object RegExp]",at="[object Set]",ot="[object String]",st="[object Symbol]",ut="[object Undefined]",ct="[object WeakMap]",ht="[object WeakSet]",ft="[object ArrayBuffer]",lt="[object DataView]",dt="[object Float32Array]",pt="[object Float64Array]",gt="[object Int8Array]",vt="[object Int16Array]",mt="[object Int32Array]",yt="[object Uint8Array]",xt="[object Uint8ClampedArray]",bt="[object Uint16Array]",wt="[object Uint32Array]",_t=/\b__p \+= '';/g,Mt=/\b(__p \+=) '' \+/g,St=/(__e\(.*?\)|\b__t\)) \+\n'';/g,kt=/&(?:amp|lt|gt|quot|#39);/g,At=/[&<>"']/g,Pt=RegExp(kt.source),Ct=RegExp(At.source),Et=/<%-([\s\S]+?)%>/g,It=/<%([\s\S]+?)%>/g,Ot=/<%=([\s\S]+?)%>/g,Tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Nt=/^\w*$/,jt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Bt=/[\\^$.*+?()[\]{}|]/g,Lt=RegExp(Bt.source),Dt=/^\s+|\s+$/g,Rt=/^\s+/,Ft=/\s+$/,Yt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,qt=/\{\n\/\* \[wrapped with (.+)\] \*/,zt=/,? & /,Xt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Gt=/\\(\\)?/g,Wt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ut=/\w*$/,Vt=/^[-+]0x[0-9a-f]+$/i,Ht=/^0b[01]+$/i,Zt=/^\[object .+?Constructor\]$/,$t=/^0o[0-7]+$/i,Qt=/^(?:0|[1-9]\d*)$/,Kt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Jt=/($^)/,te=/['\n\r\u2028\u2029\\]/g,ee="\\ud800-\\udfff",ne="\\u0300-\\u036f",re="\\ufe20-\\ufe2f",ie="\\u20d0-\\u20ff",ae=ne+re+ie,oe="\\u2700-\\u27bf",se="a-z\\xdf-\\xf6\\xf8-\\xff",ue="\\xac\\xb1\\xd7\\xf7",ce="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",he="\\u2000-\\u206f",fe=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",le="A-Z\\xc0-\\xd6\\xd8-\\xde",de="\\ufe0e\\ufe0f",pe=ue+ce+he+fe,ge="['’]",ve="["+ee+"]",me="["+pe+"]",ye="["+ae+"]",xe="\\d+",be="["+oe+"]",we="["+se+"]",_e="[^"+ee+pe+xe+oe+se+le+"]",Me="\\ud83c[\\udffb-\\udfff]",Se="(?:"+ye+"|"+Me+")",ke="[^"+ee+"]",Ae="(?:\\ud83c[\\udde6-\\uddff]){2}",Pe="[\\ud800-\\udbff][\\udc00-\\udfff]",Ce="["+le+"]",Ee="\\u200d",Ie="(?:"+we+"|"+_e+")",Oe="(?:"+Ce+"|"+_e+")",Te="(?:"+ge+"(?:d|ll|m|re|s|t|ve))?",Ne="(?:"+ge+"(?:D|LL|M|RE|S|T|VE))?",je=Se+"?",Be="["+de+"]?",Le="(?:"+Ee+"(?:"+[ke,Ae,Pe].join("|")+")"+Be+je+")*",De="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Re="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Fe=Be+je+Le,Ye="(?:"+[be,Ae,Pe].join("|")+")"+Fe,qe="(?:"+[ke+ye+"?",ye,Ae,Pe,ve].join("|")+")",ze=RegExp(ge,"g"),Xe=RegExp(ye,"g"),Ge=RegExp(Me+"(?="+Me+")|"+qe+Fe,"g"),We=RegExp([Ce+"?"+we+"+"+Te+"(?="+[me,Ce,"$"].join("|")+")",Oe+"+"+Ne+"(?="+[me,Ce+Ie,"$"].join("|")+")",Ce+"?"+Ie+"+"+Te,Ce+"+"+Ne,Re,De,xe,Ye].join("|"),"g"),Ue=RegExp("["+Ee+ee+ae+de+"]"),Ve=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,He=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ze=-1,$e={};$e[dt]=$e[pt]=$e[gt]=$e[vt]=$e[mt]=$e[yt]=$e[xt]=$e[bt]=$e[wt]=!0,$e[X]=$e[G]=$e[ft]=$e[U]=$e[lt]=$e[V]=$e[Z]=$e[$]=$e[K]=$e[J]=$e[et]=$e[it]=$e[at]=$e[ot]=$e[ct]=!1;var Qe={};Qe[X]=Qe[G]=Qe[ft]=Qe[lt]=Qe[U]=Qe[V]=Qe[dt]=Qe[pt]=Qe[gt]=Qe[vt]=Qe[mt]=Qe[K]=Qe[J]=Qe[et]=Qe[it]=Qe[at]=Qe[ot]=Qe[st]=Qe[yt]=Qe[xt]=Qe[bt]=Qe[wt]=!0,Qe[Z]=Qe[$]=Qe[ct]=!1;var Ke={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},Je={"&":"&","<":"<",">":">",'"':""","'":"'"},tn={"&":"&","<":"<",">":">",""":'"',"'":"'"},en={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},nn=parseFloat,rn=parseInt,an="object"==typeof t&&t&&t.Object===Object&&t,on="object"==typeof self&&self&&self.Object===Object&&self,sn=an||on||Function("return this")(),un=e&&!e.nodeType&&e,cn=un&&"object"==typeof r&&r&&!r.nodeType&&r,hn=cn&&cn.exports===un,fn=hn&&an.process,ln=function(){try{var t=cn&&cn.require&&cn.require("util").types;return t||fn&&fn.binding&&fn.binding("util")}catch(e){}}(),dn=ln&&ln.isArrayBuffer,pn=ln&&ln.isDate,gn=ln&&ln.isMap,vn=ln&&ln.isRegExp,mn=ln&&ln.isSet,yn=ln&&ln.isTypedArray;function xn(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function bn(t,e,n,r){var i=-1,a=null==t?0:t.length;while(++i-1}function An(t,e,n){var r=-1,i=null==t?0:t.length;while(++r-1);return n}function Kn(t,e){var n=t.length;while(n--&&Dn(e,t[n],0)>-1);return n}function Jn(t,e){var n=t.length,r=0;while(n--)t[n]===e&&++r;return r}var tr=zn(Ke),er=zn(Je);function nr(t){return"\\"+en[t]}function rr(t,e){return null==t?a:t[e]}function ir(t){return Ue.test(t)}function ar(t){return Ve.test(t)}function or(t){var e,n=[];while(!(e=t.next()).done)n.push(e.value);return n}function sr(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function ur(t,e){return function(n){return t(e(n))}}function cr(t,e){var n=-1,r=t.length,i=0,a=[];while(++n-1}function Yr(t,e){var n=this.__data__,r=ui(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function qr(t){var e=-1,n=null==t?0:t.length;this.clear();while(++e=e?t:e)),t}function gi(t,e,n,r,i,o){var s,u=e&d,c=e&p,h=e&g;if(n&&(s=i?n(t,r,i,o):n(t)),s!==a)return s;if(!_h(t))return t;var f=oh(t);if(f){if(s=Jo(t),!u)return eo(t,s)}else{var l=Zo(t),v=l==$||l==Q;if(fh(t))return Wa(t,u);if(l==et||l==X||v&&!i){if(s=c||v?{}:ts(t),!u)return c?io(t,fi(s,t)):ro(t,hi(s,t))}else{if(!Qe[l])return i?t:{};s=es(t,l,u)}}o||(o=new $r);var m=o.get(t);if(m)return m;o.set(t,s),Bh(t)?t.forEach((function(r){s.add(gi(r,e,n,r,t,o))})):Sh(t)&&t.forEach((function(r,i){s.set(i,gi(r,e,n,i,t,o))}));var y=h?c?Ro:Do:c?_f:wf,x=f?a:y(t);return wn(x||t,(function(r,i){x&&(i=r,r=t[i]),si(s,i,gi(r,e,n,i,t,o))})),s}function vi(t){var e=wf(t);return function(n){return mi(n,t,e)}}function mi(t,e,n){var r=n.length;if(null==t)return!r;t=ne(t);while(r--){var i=n[r],o=e[i],s=t[i];if(s===a&&!(i in t)||!o(s))return!1}return!0}function yi(t,e,n){if("function"!=typeof t)throw new ae(c);return Ms((function(){t.apply(a,n)}),e)}function xi(t,e,n,r){var i=-1,a=kn,o=!0,u=t.length,c=[],h=e.length;if(!u)return c;n&&(e=Pn(e,Hn(n))),r?(a=An,o=!1):e.length>=s&&(a=$n,o=!1,e=new Vr(e));t:while(++ii?0:i+n),r=r===a||r>i?i:Uh(r),r<0&&(r+=i),r=n>r?0:Vh(r);while(n0&&n(s)?e>1?Ai(s,e-1,n,r,i):Cn(i,s):r||(i[i.length]=s)}return i}var Pi=uo(),Ci=uo(!0);function Ei(t,e){return t&&Pi(t,e,wf)}function Ii(t,e){return t&&Ci(t,e,wf)}function Oi(t,e){return Sn(e,(function(e){return xh(t[e])}))}function Ti(t,e){e=qa(e,t);var n=0,r=e.length;while(null!=t&&ne}function Li(t,e){return null!=t&&fe.call(t,e)}function Di(t,e){return null!=t&&e in ne(t)}function Ri(t,e,n){return t>=qe(e,n)&&t=120&&l.length>=120)?new Vr(u&&l):a}l=t[0];var d=-1,p=c[0];t:while(++d-1)s!==t&&ke.call(s,u,1),ke.call(t,u,1)}return t}function pa(t,e){var n=t?e.length:0,r=n-1;while(n--){var i=e[n];if(n==r||i!==a){var a=i;is(i)?ke.call(t,i,1):Na(t,i)}}return t}function ga(t,e){return t+je(Ue()*(e-t+1))}function va(t,e,r,i){var a=-1,o=Ye(Ne((e-t)/(r||1)),0),s=n(o);while(o--)s[i?o:++a]=t,t+=r;return s}function ma(t,e){var n="";if(!t||e<1||e>L)return n;do{e%2&&(n+=t),e=je(e/2),e&&(t+=t)}while(e);return n}function ya(t,e){return Ss(ys(t,e,El),t+"")}function xa(t){return ri(Yf(t))}function ba(t,e){var n=Yf(t);return Ps(n,pi(e,0,n.length))}function wa(t,e,n,r){if(!_h(t))return t;e=qa(e,t);var i=-1,o=e.length,s=o-1,u=t;while(null!=u&&++ia?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;var o=n(a);while(++i>>1,o=t[a];null!==o&&!Dh(o)&&(n?o<=e:o=s){var h=e?null:Po(t);if(h)return hr(h);o=!1,i=$n,c=new Vr}else c=e?[]:u;t:while(++r=r?t:ka(t,e,n)}var Ga=Ie||function(t){return sn.clearTimeout(t)};function Wa(t,e){if(e)return t.slice();var n=t.length,r=we?we(n):new t.constructor(n);return t.copy(r),r}function Ua(t){var e=new t.constructor(t.byteLength);return new be(e).set(new be(t)),e}function Va(t,e){var n=e?Ua(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}function Ha(t){var e=new t.constructor(t.source,Ut.exec(t));return e.lastIndex=t.lastIndex,e}function Za(t){return mr?ne(mr.call(t)):{}}function $a(t,e){var n=e?Ua(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Qa(t,e){if(t!==e){var n=t!==a,r=null===t,i=t===t,o=Dh(t),s=e!==a,u=null===e,c=e===e,h=Dh(e);if(!u&&!h&&!o&&t>e||o&&s&&c&&!u&&!h||r&&s&&c||!n&&c||!i)return 1;if(!r&&!o&&!h&&t=s)return u;var c=n[r];return u*("desc"==c?-1:1)}}return t.index-e.index}function Ja(t,e,r,i){var a=-1,o=t.length,s=r.length,u=-1,c=e.length,h=Ye(o-s,0),f=n(c+h),l=!i;while(++u1?n[i-1]:a,s=i>2?n[2]:a;o=t.length>3&&"function"==typeof o?(i--,o):a,s&&as(n[0],n[1],s)&&(o=i<3?a:o,i=1),e=ne(e);while(++r-1?i[o?e[s]:s]:a}}function vo(t){return Lo((function(e){var n=e.length,r=n,i=Sr.prototype.thru;t&&e.reverse();while(r--){var o=e[r];if("function"!=typeof o)throw new ae(c);if(i&&!s&&"wrapper"==Yo(o))var s=new Sr([],!0)}r=s?r:n;while(++r1&&y.reverse(),l&&hu))return!1;var h=o.get(t),f=o.get(e);if(h&&f)return h==e&&f==t;var l=-1,d=!0,p=n&m?new Vr:a;o.set(t,e),o.set(e,t);while(++l1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Yt,"{\n/* [wrapped with "+e+"] */\n")}function rs(t){return oh(t)||ah(t)||!!(Ae&&t&&t[Ae])}function is(t,e){var n=typeof t;return e=null==e?L:e,!!e&&("number"==n||"symbol"!=n&&Qt.test(t))&&t>-1&&t%1==0&&t0){if(++e>=I)return arguments[0]}else e=0;return t.apply(a,arguments)}}function Ps(t,e){var n=-1,r=t.length,i=r-1;e=e===a?r:e;while(++n1?t[e-1]:a;return n="function"==typeof n?(t.pop(),n):a,ju(t,n)}));function Xu(t){var e=br(t);return e.__chain__=!0,e}function Gu(t,e){return e(t),t}function Wu(t,e){return e(t)}var Uu=Lo((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,i=function(e){return di(e,t)};return!(e>1||this.__actions__.length)&&r instanceof kr&&is(n)?(r=r.slice(n,+n+(e?1:0)),r.__actions__.push({func:Wu,args:[i],thisArg:a}),new Sr(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(a),t}))):this.thru(i)}));function Vu(){return Xu(this)}function Hu(){return new Sr(this.value(),this.__chain__)}function Zu(){this.__values__===a&&(this.__values__=Gh(this.value()));var t=this.__index__>=this.__values__.length,e=t?a:this.__values__[this.__index__++];return{done:t,value:e}}function $u(){return this}function Qu(t){var e,n=this;while(n instanceof Mr){var r=Ts(n);r.__index__=0,r.__values__=a,e?i.__wrapped__=r:e=r;var i=r;n=n.__wrapped__}return i.__wrapped__=t,e}function Ku(){var t=this.__wrapped__;if(t instanceof kr){var e=t;return this.__actions__.length&&(e=new kr(this)),e=e.reverse(),e.__actions__.push({func:Wu,args:[lu],thisArg:a}),new Sr(e,this.__chain__)}return this.thru(lu)}function Ju(){return La(this.__wrapped__,this.__actions__)}var tc=ao((function(t,e,n){fe.call(t,n)?++t[n]:li(t,n,1)}));function ec(t,e,n){var r=oh(t)?Mn:_i;return n&&as(t,e,n)&&(e=a),r(t,zo(e,3))}function nc(t,e){var n=oh(t)?Sn:ki;return n(t,zo(e,3))}var rc=go(Gs),ic=go(Ws);function ac(t,e){return Ai(pc(t,e),1)}function oc(t,e){return Ai(pc(t,e),B)}function sc(t,e,n){return n=n===a?1:Uh(n),Ai(pc(t,e),n)}function uc(t,e){var n=oh(t)?wn:bi;return n(t,zo(e,3))}function cc(t,e){var n=oh(t)?_n:wi;return n(t,zo(e,3))}var hc=ao((function(t,e,n){fe.call(t,n)?t[n].push(e):li(t,n,[e])}));function fc(t,e,n,r){t=uh(t)?t:Yf(t),n=n&&!r?Uh(n):0;var i=t.length;return n<0&&(n=Ye(i+n,0)),Lh(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&Dn(t,e,n)>-1}var lc=ya((function(t,e,r){var i=-1,a="function"==typeof e,o=uh(t)?n(t.length):[];return bi(t,(function(t){o[++i]=a?xn(e,t,r):qi(t,e,r)})),o})),dc=ao((function(t,e,n){li(t,n,e)}));function pc(t,e){var n=oh(t)?Pn:ra;return n(t,zo(e,3))}function gc(t,e,n,r){return null==t?[]:(oh(e)||(e=null==e?[]:[e]),n=r?a:n,oh(n)||(n=null==n?[]:[n]),ca(t,e,n))}var vc=ao((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));function mc(t,e,n){var r=oh(t)?En:Xn,i=arguments.length<3;return r(t,zo(e,4),n,i,bi)}function yc(t,e,n){var r=oh(t)?In:Xn,i=arguments.length<3;return r(t,zo(e,4),n,i,wi)}function xc(t,e){var n=oh(t)?Sn:ki;return n(t,Fc(zo(e,3)))}function bc(t){var e=oh(t)?ri:xa;return e(t)}function wc(t,e,n){e=(n?as(t,e,n):e===a)?1:Uh(e);var r=oh(t)?ii:ba;return r(t,e)}function _c(t){var e=oh(t)?ai:Sa;return e(t)}function Mc(t){if(null==t)return 0;if(uh(t))return Lh(t)?pr(t):t.length;var e=Zo(t);return e==K||e==at?t.size:ta(t).length}function Sc(t,e,n){var r=oh(t)?On:Aa;return n&&as(t,e,n)&&(e=a),r(t,zo(e,3))}var kc=ya((function(t,e){if(null==t)return[];var n=e.length;return n>1&&as(t,e[0],e[1])?e=[]:n>2&&as(e[0],e[1],e[2])&&(e=[e[0]]),ca(t,Ai(e,1),[])})),Ac=Oe||function(){return sn.Date.now()};function Pc(t,e){if("function"!=typeof e)throw new ae(c);return t=Uh(t),function(){if(--t<1)return e.apply(this,arguments)}}function Cc(t,e,n){return e=n?a:e,e=t&&null==e?t.length:e,Eo(t,k,a,a,a,a,e)}function Ec(t,e){var n;if("function"!=typeof e)throw new ae(c);return t=Uh(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=a),n}}var Ic=ya((function(t,e,n){var r=y;if(n.length){var i=cr(n,qo(Ic));r|=M}return Eo(t,r,e,n,i)})),Oc=ya((function(t,e,n){var r=y|x;if(n.length){var i=cr(n,qo(Oc));r|=M}return Eo(e,r,t,n,i)}));function Tc(t,e,n){e=n?a:e;var r=Eo(t,w,a,a,a,a,a,e);return r.placeholder=Tc.placeholder,r}function Nc(t,e,n){e=n?a:e;var r=Eo(t,_,a,a,a,a,a,e);return r.placeholder=Nc.placeholder,r}function jc(t,e,n){var r,i,o,s,u,h,f=0,l=!1,d=!1,p=!0;if("function"!=typeof t)throw new ae(c);function g(e){var n=r,o=i;return r=i=a,f=e,s=t.apply(o,n),s}function v(t){return f=t,u=Ms(x,e),l?g(t):s}function m(t){var n=t-h,r=t-f,i=e-n;return d?qe(i,o-r):i}function y(t){var n=t-h,r=t-f;return h===a||n>=e||n<0||d&&r>=o}function x(){var t=Ac();if(y(t))return b(t);u=Ms(x,m(t))}function b(t){return u=a,p&&r?g(t):(r=i=a,s)}function w(){u!==a&&Ga(u),f=0,r=h=i=u=a}function _(){return u===a?s:b(Ac())}function M(){var t=Ac(),n=y(t);if(r=arguments,i=this,h=t,n){if(u===a)return v(h);if(d)return Ga(u),u=Ms(x,e),g(h)}return u===a&&(u=Ms(x,e)),s}return e=Hh(e)||0,_h(n)&&(l=!!n.leading,d="maxWait"in n,o=d?Ye(Hh(n.maxWait)||0,e):o,p="trailing"in n?!!n.trailing:p),M.cancel=w,M.flush=_,M}var Bc=ya((function(t,e){return yi(t,1,e)})),Lc=ya((function(t,e,n){return yi(t,Hh(e)||0,n)}));function Dc(t){return Eo(t,P)}function Rc(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ae(c);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(Rc.Cache||qr),n}function Fc(t){if("function"!=typeof t)throw new ae(c);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Yc(t){return Ec(2,t)}Rc.Cache=qr;var qc=za((function(t,e){e=1==e.length&&oh(e[0])?Pn(e[0],Hn(zo())):Pn(Ai(e,1),Hn(zo()));var n=e.length;return ya((function(r){var i=-1,a=qe(r.length,n);while(++i=e})),ah=zi(function(){return arguments}())?zi:function(t){return Mh(t)&&fe.call(t,"callee")&&!Se.call(t,"callee")},oh=n.isArray,sh=dn?Hn(dn):Xi;function uh(t){return null!=t&&wh(t.length)&&!xh(t)}function ch(t){return Mh(t)&&uh(t)}function hh(t){return!0===t||!1===t||Mh(t)&&ji(t)==U}var fh=Le||Vl,lh=pn?Hn(pn):Gi;function dh(t){return Mh(t)&&1===t.nodeType&&!Th(t)}function ph(t){if(null==t)return!0;if(uh(t)&&(oh(t)||"string"==typeof t||"function"==typeof t.splice||fh(t)||Rh(t)||ah(t)))return!t.length;var e=Zo(t);if(e==K||e==at)return!t.size;if(fs(t))return!ta(t).length;for(var n in t)if(fe.call(t,n))return!1;return!0}function gh(t,e){return Wi(t,e)}function vh(t,e,n){n="function"==typeof n?n:a;var r=n?n(t,e):a;return r===a?Wi(t,e,a,n):!!r}function mh(t){if(!Mh(t))return!1;var e=ji(t);return e==Z||e==H||"string"==typeof t.message&&"string"==typeof t.name&&!Th(t)}function yh(t){return"number"==typeof t&&De(t)}function xh(t){if(!_h(t))return!1;var e=ji(t);return e==$||e==Q||e==W||e==rt}function bh(t){return"number"==typeof t&&t==Uh(t)}function wh(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=L}function _h(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Mh(t){return null!=t&&"object"==typeof t}var Sh=gn?Hn(gn):Vi;function kh(t,e){return t===e||Hi(t,e,Go(e))}function Ah(t,e,n){return n="function"==typeof n?n:a,Hi(t,e,Go(e),n)}function Ph(t){return Oh(t)&&t!=+t}function Ch(t){if(hs(t))throw new i(u);return Zi(t)}function Eh(t){return null===t}function Ih(t){return null==t}function Oh(t){return"number"==typeof t||Mh(t)&&ji(t)==J}function Th(t){if(!Mh(t)||ji(t)!=et)return!1;var e=_e(t);if(null===e)return!0;var n=fe.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&he.call(n)==ge}var Nh=vn?Hn(vn):$i;function jh(t){return bh(t)&&t>=-L&&t<=L}var Bh=mn?Hn(mn):Qi;function Lh(t){return"string"==typeof t||!oh(t)&&Mh(t)&&ji(t)==ot}function Dh(t){return"symbol"==typeof t||Mh(t)&&ji(t)==st}var Rh=yn?Hn(yn):Ki;function Fh(t){return t===a}function Yh(t){return Mh(t)&&Zo(t)==ct}function qh(t){return Mh(t)&&ji(t)==ht}var zh=So(na),Xh=So((function(t,e){return t<=e}));function Gh(t){if(!t)return[];if(uh(t))return Lh(t)?gr(t):eo(t);if(Pe&&t[Pe])return or(t[Pe]());var e=Zo(t),n=e==K?sr:e==at?hr:Yf;return n(t)}function Wh(t){if(!t)return 0===t?t:0;if(t=Hh(t),t===B||t===-B){var e=t<0?-1:1;return e*D}return t===t?t:0}function Uh(t){var e=Wh(t),n=e%1;return e===e?n?e-n:e:0}function Vh(t){return t?pi(Uh(t),0,F):0}function Hh(t){if("number"==typeof t)return t;if(Dh(t))return R;if(_h(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=_h(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Dt,"");var n=Ht.test(t);return n||$t.test(t)?rn(t.slice(2),n?2:8):Vt.test(t)?R:+t}function Zh(t){return no(t,_f(t))}function $h(t){return t?pi(Uh(t),-L,L):0===t?t:0}function Qh(t){return null==t?"":Oa(t)}var Kh=oo((function(t,e){if(fs(e)||uh(e))no(e,wf(e),t);else for(var n in e)fe.call(e,n)&&si(t,n,e[n])})),Jh=oo((function(t,e){no(e,_f(e),t)})),tf=oo((function(t,e,n,r){no(e,_f(e),t,r)})),ef=oo((function(t,e,n,r){no(e,wf(e),t,r)})),nf=Lo(di);function rf(t,e){var n=_r(t);return null==e?n:hi(n,e)}var af=ya((function(t,e){t=ne(t);var n=-1,r=e.length,i=r>2?e[2]:a;i&&as(e[0],e[1],i)&&(r=1);while(++n1),e})),no(t,Ro(t),n),r&&(n=gi(n,d|p|g,To));var i=e.length;while(i--)Na(n,e[i]);return n}));function Cf(t,e){return If(t,Fc(zo(e)))}var Ef=Lo((function(t,e){return null==t?{}:ha(t,e)}));function If(t,e){if(null==t)return{};var n=Pn(Ro(t),(function(t){return[t]}));return e=zo(e),fa(t,n,(function(t,n){return e(t,n[0])}))}function Of(t,e,n){e=qa(e,t);var r=-1,i=e.length;i||(i=1,t=a);while(++re){var r=t;t=e,e=r}if(n||t%1||e%1){var i=Ue();return qe(t+i*(e-t+nn("1e-"+((i+"").length-1))),e)}return ga(t,e)}var Wf=fo((function(t,e,n){return e=e.toLowerCase(),t+(n?Uf(e):e)}));function Uf(t){return xl(Qh(t).toLowerCase())}function Vf(t){return t=Qh(t),t&&t.replace(Kt,tr).replace(Xe,"")}function Hf(t,e,n){t=Qh(t),e=Oa(e);var r=t.length;n=n===a?r:pi(Uh(n),0,r);var i=n;return n-=e.length,n>=0&&t.slice(n,i)==e}function Zf(t){return t=Qh(t),t&&Ct.test(t)?t.replace(At,er):t}function $f(t){return t=Qh(t),t&&Lt.test(t)?t.replace(Bt,"\\$&"):t}var Qf=fo((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),Kf=fo((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Jf=ho("toLowerCase");function tl(t,e,n){t=Qh(t),e=Uh(e);var r=e?pr(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return wo(je(i),n)+t+wo(Ne(i),n)}function el(t,e,n){t=Qh(t),e=Uh(e);var r=e?pr(t):0;return e&&r>>0,n?(t=Qh(t),t&&("string"==typeof e||null!=e&&!Nh(e))&&(e=Oa(e),!e&&ir(t))?Xa(gr(t),0,n):t.split(e,n)):[]}var ul=fo((function(t,e,n){return t+(n?" ":"")+xl(e)}));function cl(t,e,n){return t=Qh(t),n=null==n?0:pi(Uh(n),0,t.length),e=Oa(e),t.slice(n,n+e.length)==e}function hl(t,e,n){var r=br.templateSettings;n&&as(t,e,n)&&(e=a),t=Qh(t),e=tf({},e,r,Io);var i,o,s=tf({},e.imports,r.imports,Io),u=wf(s),c=Zn(s,u),h=0,f=e.interpolate||Jt,l="__p += '",d=re((e.escape||Jt).source+"|"+f.source+"|"+(f===Ot?Wt:Jt).source+"|"+(e.evaluate||Jt).source+"|$","g"),p="//# sourceURL="+(fe.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ze+"]")+"\n";t.replace(d,(function(e,n,r,a,s,u){return r||(r=a),l+=t.slice(h,u).replace(te,nr),n&&(i=!0,l+="' +\n__e("+n+") +\n'"),s&&(o=!0,l+="';\n"+s+";\n__p += '"),r&&(l+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),h=u+e.length,e})),l+="';\n";var g=fe.call(e,"variable")&&e.variable;g||(l="with (obj) {\n"+l+"\n}\n"),l=(o?l.replace(_t,""):l).replace(Mt,"$1").replace(St,"$1;"),l="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var v=wl((function(){return Xt(u,p+"return "+l).apply(a,c)}));if(v.source=l,mh(v))throw v;return v}function fl(t){return Qh(t).toLowerCase()}function ll(t){return Qh(t).toUpperCase()}function dl(t,e,n){if(t=Qh(t),t&&(n||e===a))return t.replace(Dt,"");if(!t||!(e=Oa(e)))return t;var r=gr(t),i=gr(e),o=Qn(r,i),s=Kn(r,i)+1;return Xa(r,o,s).join("")}function pl(t,e,n){if(t=Qh(t),t&&(n||e===a))return t.replace(Ft,"");if(!t||!(e=Oa(e)))return t;var r=gr(t),i=Kn(r,gr(e))+1;return Xa(r,0,i).join("")}function gl(t,e,n){if(t=Qh(t),t&&(n||e===a))return t.replace(Rt,"");if(!t||!(e=Oa(e)))return t;var r=gr(t),i=Qn(r,gr(e));return Xa(r,i).join("")}function vl(t,e){var n=C,r=E;if(_h(e)){var i="separator"in e?e.separator:i;n="length"in e?Uh(e.length):n,r="omission"in e?Oa(e.omission):r}t=Qh(t);var o=t.length;if(ir(t)){var s=gr(t);o=s.length}if(n>=o)return t;var u=n-pr(r);if(u<1)return r;var c=s?Xa(s,0,u).join(""):t.slice(0,u);if(i===a)return c+r;if(s&&(u+=c.length-u),Nh(i)){if(t.slice(u).search(i)){var h,f=c;i.global||(i=re(i.source,Qh(Ut.exec(i))+"g")),i.lastIndex=0;while(h=i.exec(f))var l=h.index;c=c.slice(0,l===a?u:l)}}else if(t.indexOf(Oa(i),u)!=u){var d=c.lastIndexOf(i);d>-1&&(c=c.slice(0,d))}return c+r}function ml(t){return t=Qh(t),t&&Pt.test(t)?t.replace(kt,vr):t}var yl=fo((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),xl=ho("toUpperCase");function bl(t,e,n){return t=Qh(t),e=n?a:e,e===a?ar(t)?xr(t):jn(t):t.match(e)||[]}var wl=ya((function(t,e){try{return xn(t,a,e)}catch(n){return mh(n)?n:new i(n)}})),_l=Lo((function(t,e){return wn(e,(function(e){e=Es(e),li(t,e,Ic(t[e],t))})),t}));function Ml(t){var e=null==t?0:t.length,n=zo();return t=e?Pn(t,(function(t){if("function"!=typeof t[1])throw new ae(c);return[n(t[0]),t[1]]})):[],ya((function(n){var r=-1;while(++rL)return[];var n=F,r=qe(t,F);e=zo(e),t-=F;var i=Un(r,e);while(++n0||e<0)?new kr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==a&&(e=Uh(e),n=e<0?n.dropRight(-e):n.take(e-t)),n)},kr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},kr.prototype.toArray=function(){return this.take(F)},Ei(kr.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=br[r?"take"+("last"==e?"Right":""):e],o=r||/^find/.test(e);i&&(br.prototype[e]=function(){var e=this.__wrapped__,s=r?[1]:arguments,u=e instanceof kr,c=s[0],h=u||oh(e),f=function(t){var e=i.apply(br,Cn([t],s));return r&&l?e[0]:e};h&&n&&"function"==typeof c&&1!=c.length&&(u=h=!1);var l=this.__chain__,d=!!this.__actions__.length,p=o&&!l,g=u&&!d;if(!o&&h){e=g?e:new kr(this);var v=t.apply(e,s);return v.__actions__.push({func:Wu,args:[f],thisArg:a}),new Sr(v,l)}return p&&g?t.apply(this,s):(v=this.thru(f),p?r?v.value()[0]:v.value():v)})})),wn(["pop","push","shift","sort","splice","unshift"],(function(t){var e=oe[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);br.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(oh(i)?i:[],t)}return this[n]((function(n){return e.apply(oh(n)?n:[],t)}))}})),Ei(kr.prototype,(function(t,e){var n=br[e];if(n){var r=n.name+"";fe.call(cn,r)||(cn[r]=[]),cn[r].push({name:e,func:n})}})),cn[mo(a,x).name]=[{name:"wrapper",func:a}],kr.prototype.clone=Ar,kr.prototype.reverse=Pr,kr.prototype.value=Cr,br.prototype.at=Uu,br.prototype.chain=Vu,br.prototype.commit=Hu,br.prototype.next=Zu,br.prototype.plant=Qu,br.prototype.reverse=Ku,br.prototype.toJSON=br.prototype.valueOf=br.prototype.value=Ju,br.prototype.first=br.prototype.head,Pe&&(br.prototype[Pe]=$u),br},wr=br();sn._=wr,i=function(){return wr}.call(e,n,e,r),i===a||(r.exports=i)}).call(this)}).call(this,n("c8ba"),n("62e4")(t))},"2efd":function(t,e){const n="click",r=["click","dblclick"];t.exports={getDefaultCfg(){return{trigger:n,onChange(){}}},getEvents(){let t;return r.includes(this.trigger)?t=this.trigger:(t=n,console.warn("Behavior collapse-expand的trigger参数不合法,请输入click或dblclick")),{["node:"+t]:"onNodeClick"}},onNodeClick(t){const e=t.item,n=this.graph.findDataById(e.get("id")),r=n.children;if(!r||0===r.length)return;const i=!n.collapsed;if(this.shouldBegin(t,i)&&(n.collapsed=i,e.getModel().collapsed=i,this.graph.emit("itemcollapsed",{item:t.item,collapsed:i}),this.shouldUpdate(t,i))){try{this.onChange(e,i)}catch(t){console.warn("G6 自 3.0.4 版本支持直接从 item.getModel() 获取源数据(临时通知,将在3.2.0版本中清除)",t)}this.graph.refreshLayout()}}}},"2fcc":function(t,e){function n(t){var e=this.__data__,n=e["delete"](t);return this.size=e.size,n}t.exports=n},"30c9":function(t,e,n){var r=n("9520"),i=n("b218");function a(t){return null!=t&&i(t.length)&&!r(t)}t.exports=a},"321c":function(t,e,n){var r=n("1c6a"),i=n("adff"),a=n("5134"),o=n("c4bc"),s=function t(e){t.superclass.constructor.call(this,e)};s.ATTRS={points:null,lineWidth:1,startArrow:!1,endArrow:!1,tCache:null},r.extend(s,i),r.augment(s,{canStroke:!0,type:"polyline",tCache:null,getDefaultAttrs:function(){return{lineWidth:1,startArrow:!1,endArrow:!1}},calculateBox:function(){var t=this,e=t._attrs,n=this.getHitLineWidth(),i=e.points;if(!i||0===i.length)return null;var a=1/0,o=1/0,s=-1/0,u=-1/0;r.each(i,(function(t){var e=t[0],n=t[1];es&&(s=e),nu&&(u=n)}));var c=n/2;return{minX:a-c,minY:o-c,maxX:s+c,maxY:u+c}},_setTcache:function(){var t,e,n=this,i=n._attrs,a=i.points,s=0,u=0,c=[];a&&0!==a.length&&(r.each(a,(function(t,e){a[e+1]&&(s+=o.len(t[0],t[1],a[e+1][0],a[e+1][1]))})),s<=0||(r.each(a,(function(n,r){a[r+1]&&(t=[],t[0]=u/s,e=o.len(n[0],n[1],a[r+1][0],a[r+1][1]),u+=e,t[1]=u/s,c.push(t))})),this.tCache=c))},createPath:function(t){var e,n=this,r=n._attrs,i=r.points;if(!(i.length<2)){var o=i.length-1,s=i[0][0],u=i[0][1],c=i[o][0],h=i[o][1];if(r.startArrow&&r.startArrow.d){var f=a.getShortenOffset(i[0][0],i[0][1],i[1][0],i[1][1],r.startArrow.d);s+=f.dx,u+=f.dy}if(r.endArrow&&r.endArrow.d){var l=a.getShortenOffset(i[o-1][0],i[o-1][1],i[o][0],i[o][1],r.endArrow.d);c-=l.dx,h-=l.dy}for(t=t||n.get("context"),t.beginPath(),t.moveTo(s,u),e=1;e=r[0]&&t<=r[1]&&(e=(t-r[0])/(r[1]-r[0]),n=i)})),{x:o.at(a[n][0],a[n+1][0],e),y:o.at(a[n][1],a[n+1][1],e)}}}),t.exports=s},"32b3":function(t,e,n){var r=n("872a"),i=n("9638"),a=Object.prototype,o=a.hasOwnProperty;function s(t,e,n){var a=t[e];o.call(t,e)&&i(a,n)&&(void 0!==n||e in t)||r(t,e,n)}t.exports=s},"32f4":function(t,e,n){var r=n("2d7c"),i=n("d327"),a=Object.prototype,o=a.propertyIsEnumerable,s=Object.getOwnPropertySymbols,u=s?function(t){return null==t?[]:(t=Object(t),r(s(t),(function(e){return o.call(t,e)})))}:i;t.exports=u},3380:function(t,e,n){var r=n("1c6a"),i=r.vec2;function a(t,e,n,r){var i=1-r;return i*(i*t+2*r*e)+r*r*n}function o(t,e,n,r,o,s,u,c,h){var f,l,d,p,g,v,m,y=.005,x=1/0,b=1e-4,w=[u,c];for(g=0;g<1;g+=.05)d=[a(t,n,o,g),a(e,r,s,g)],l=i.squaredDistance(w,d),l=0&&l=0?[a]:[]}t.exports={at:a,projectPoint:function(t,e,n,r,i,a,s,u){var c={};return o(t,e,n,r,i,a,s,u,c),c},pointDistance:o,extrema:s}},"339d":function(t,e){var n=function(){var t={};return function(e){return e=e||"g",t[e]?t[e]+=1:t[e]=1,e+t[e]}}();t.exports=n},"33de":function(t,e,n){var r;try{r={clone:n("b8ce"),constant:n("72f0"),each:n("c641"),filter:n("9380"),has:n("3852"),isArray:n("6747"),isEmpty:n("13ea"),isFunction:n("9520"),isUndefined:n("4cfe"),keys:n("ec69"),map:n("dd61"),reduce:n("c5a2"),size:n("d623"),transform:n("50ca"),union:n("bfc7"),values:n("3ff1")}}catch(i){}r||(r=window._),t.exports=r},3421:function(t,e,n){var r=n("00d0"),i=function(t){return r(t,"String")};t.exports=i},3494:function(t,e,n){const r=n("1249"),i=n("1b95"),a=n("1bb5"),o=n("9ed2");r.registerNode("ellipse",{options:{size:[120,60],style:{x:0,y:0,stroke:o.defaultShapeStrokeColor,fill:o.defaultShapeFillColor,lineWidth:1},labelCfg:{style:{fill:"#595959"}},stateStyles:{hover:{fillOpacity:.8},selected:{lineWidth:3}},linkPoints:{top:!1,right:!1,bottom:!1,left:!1,size:3,lineWidth:1,fill:"#72CC4A",stroke:"#72CC4A"},icon:{show:!1,img:"https://gw.alipayobjects.com/zos/basement_prod/012bcf4f-423b-4922-8c24-32a89f8c41ce.svg",width:36,height:36}},shapeType:"ellipse",labelPosition:"center",drawShape(t,e){const n=this.getCustomConfig(t)||{},{icon:r}=this.options,{icon:a}=n,o=this.getShapeStyle(t),s=i({},r,a,t.icon),u=e.addShape("ellipse",{attrs:o}),{width:c,height:h,show:f}=s;if(f){const t=e.addShape("image",{attrs:{x:-c/2,y:-h/2,...s},className:"ellipse-icon"});t.set("capture",!1)}return this.drawLinkPoints(t,e),u},drawLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r}=this.options,{linkPoints:a}=n,o=i({},r,a,t.linkPoints),{top:s,left:u,right:c,bottom:h,size:f,...l}=o,d=this.getSize(t),p=d[0]/2,g=d[1]/2;u&&e.addShape("circle",{attrs:{...l,x:-p,y:0,r:f},className:"ellipse-mark-left",isAnchorPoint:!0}),c&&e.addShape("circle",{attrs:{...l,x:p,y:0,r:f},className:"ellipse-mark-right",isAnchorPoint:!0}),s&&e.addShape("circle",{attrs:{...l,x:0,y:-g,r:f},className:"ellipse-mark-top",isAnchorPoint:!0}),h&&e.addShape("circle",{attrs:{...l,x:0,y:g,r:f},className:"ellipse-mark-bottom",isAnchorPoint:!0})},getShapeStyle(t){const e=this.getCustomConfig(t)||{},{style:n}=this.options,{style:r}=e,o={stroke:t.color},s=i({},n,r,o,t.style),u=this.getSize(t),c=u[0]/2,h=u[1]/2,f=a.mix({},{x:0,y:0,rx:c,ry:h},s);return f},update(t,e){const n=this.getCustomConfig(t)||{},{style:r,icon:a,labelCfg:o}=this.options,{style:s,icon:u,labelCfg:c}=n,h=i({},r,s,t.style),f=i({},a,u,t.icon),l=this.getSize(t),d=l[0]/2,p=l[1]/2,g=e.get("keyShape");g.attr({...h,rx:d,ry:p});const v=e.getContainer(),m=i({},o,c,t.labelCfg),y=this.getLabelStyle(t,m,v),x=v.findByClassName("node-label");x&&x.attr({...y});const b=v.findByClassName("ellipse-icon"),{width:w,height:_}=f;b&&b.attr({x:-w/2,y:-_/2,...f}),this.updateLinkPoints(t,v)},updateLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r}=this.options,{linkPoints:a}=n,o=i({},r,a,t.linkPoints),{size:s,...u}=o,c=this.getSize(t),h=c[0]/2,f=c[1]/2,l=e.findByClassName("ellipse-mark-left");l&&l.attr({...u,x:-h,y:0,r:s});const d=e.findByClassName("ellipse-mark-right");d&&d.attr({...u,x:h,y:0,r:s});const p=e.findByClassName("ellipse-mark-top");p&&p.attr({...u,x:0,y:-f,r:s});const g=e.findByClassName("ellipse-mark-bottom");g&&g.attr({...u,x:0,y:f,r:s})}},"single-shape")},"34ac":function(t,e,n){var r=n("9520"),i=n("1368"),a=n("1a8c"),o=n("dc57"),s=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,c=Function.prototype,h=Object.prototype,f=c.toString,l=h.hasOwnProperty,d=RegExp("^"+f.call(l).replace(s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(t){if(!a(t)||i(t))return!1;var e=r(t)?d:u;return e.test(o(t))}t.exports=p},3501:function(t,e,n){const r=n("0519"),i=n("1bb5"),a=n("c02a");function o(t,e){let n=-1;return i.each(t,(t,r)=>{if(e.id===t.id)return n=r,!1}),n}class s extends a{constructor(t){super(t),this.set("removeList",[]),this.set("layoutMethod",this._getLayout())}getDefaultCfg(){const t=super.getDefaultCfg();return t.animate=!0,t}render(){const t=this,e=t.get("data");if(!e)throw new Error("data must be defined first");t.clear(),t.emit("beforerender"),t.refreshLayout(this.get("fitView")),t.emit("afterrender")}addChild(t,e){const n=this;i.isString(e)||(e=e.get("id"));const r=n.findDataById(e);r.children||(r.children=[]),r.children.push(t),n.changeData()}_addChild(t,e,n){const r=this,a=t.data;a.x=t.x,a.y=t.y,a.depth=t.depth;const o=r.addItem("node",a);if(e){if(o.set("parent",e),n){const t=e.get("origin");if(t)o.set("origin",t);else{const t=e.getModel();o.set("origin",{x:t.x,y:t.y})}}const t=e.get("children");t?t.push(o):e.set("children",[o]),r.addItem("edge",{source:e,target:o,id:e.get("id")+":"+o.get("id")})}return i.each(t.children,t=>{r._addChild(t,o,n)}),o}changeData(t){const e=this;t?(e.data(t),e.render()):e.refreshLayout(this.get("fitView"))}updateChild(t,e){const n=this;if(!e||!n.findById(e))return void n.changeData(t);const r=n.findById(e).getModel(),i=n.findById(t.id);if(i){const e=o(r.children,t);r.children[e]=t}else r.children?r.children.push(t):r.children=[i];n.changeData()}_updateChild(t,e,n){const r=this,a=r.findById(t.id);if(!a)return void r._addChild(t,e,n);i.each(t.children,t=>{r._updateChild(t,a,n)});const s=a.get("children");if(s){const e=s.length;if(e>0){let e;for(let i=s.length-1;i>=0;i--)e=s[i].getModel(),-1===o(t.children,e)&&(r._removeChild(e.id,{x:t.x,y:t.y},n),s.splice(i,1))}}const u=a.getModel();n&&a.set("origin",{x:u.x,y:u.y}),a.set("model",t.data),a.updatePosition({x:t.x,y:t.y})}removeChild(t){const e=this,n=e.findById(t);if(!n)return;const r=n.get("parent");if(r&&!r.destroyed){const t=e.findDataById(r.get("id")).children,i=o(t,n.getModel());t.splice(i,1)}e.changeData()}_removeChild(t,e,n){const r=this,a=r.findById(t);if(a)if(i.each(a.get("children"),t=>{r._removeChild(t.getModel().id,e,n)}),n){const t=a.getModel();a.set("to",e),a.set("origin",{x:t.x,y:t.y}),r.get("removeList").push(a)}else r.removeItem(a)}save(){return this.get("data")}findDataById(t,e){const n=this;if(e||(e=n.get("data")),t===e.id)return e;let r=null;return i.each(e.children,e=>e.id===t?(r=e,!1):(r=n.findDataById(t,e),!r&&void 0)),r}changeLayout(t){const e=this;t?(e.set("layout",t),e.set("layoutMethod",e._getLayout()),e.refreshLayout()):console.warn("layout cannot be null")}refreshLayout(t){const e=this,n=e.get("data"),r=e.get("layoutMethod")(n,e.get("layout")),i=e.get("animate"),a=e.get("autoPaint");e.emit("beforerefreshlayout",{data:n,layoutData:r}),e.setAutoPaint(!1),e._updateChild(r,null,i),t&&e.get("viewController")._fitView(),i?e.layoutAnimate(r,null):(e.refresh(),e.paint()),e.setAutoPaint(a),e.emit("afterrefreshlayout",{data:n,layoutData:r})}layoutAnimate(t,e){const n=this;this.setAutoPaint(!1);const r=this.get("animateCfg");n.emit("beforeanimate",{data:t}),n.getEdges().forEach(t=>{const e=t.get("model");e.sourceAnchor||(e.sourceAnchor=t.get("sourceAnchorIndex"))}),this.get("canvas").animate({onFrame(r){i.traverseTree(t,a=>{const o=n.findById(a.id);if(o){let n=o.get("origin");const s=o.get("model");if(n||(n={x:s.x,y:s.y},o.set("origin",n)),e){const a=e(o,r,n,t);o.set("model",i.mix(s,a))}else s.x=n.x+(a.x-n.x)*r,s.y=n.y+(a.y-n.y)*r}}),i.each(n.get("removeList"),t=>{const e=t.getModel(),n=t.get("origin"),i=t.get("to");e.x=n.x+(i.x-n.x)*r,e.y=n.y+(i.y-n.y)*r}),n.refreshPositions()}},r.duration,r.ease,()=>{i.each(n.getNodes(),t=>{t.set("origin",null)}),i.each(n.get("removeList"),t=>{n.removeItem(t)}),n.set("removeList",[]),r.callback&&r.callback(),n.paint(),this.setAutoPaint(!0),n.emit("afteranimate",{data:t})},r.delay)}stopLayoutAnimate(){this.get("canvas").stopAnimate(),this.emit("layoutanimateend",{data:this.get("data")}),this.layoutAnimating=!1}isLayoutAnimating(){return this.layoutAnimating}_getLayout(){const t=this.get("layout");return t?"function"===typeof t?t:(t.type||(t.type="dendrogram"),t.direction||(t.direction="TB"),t.radial?function(e){const n=r[t.type](e,t);return i.radialLayout(n),n}:function(e){return r[t.type](e,t)}):null}}t.exports=s},3698:function(t,e){function n(t,e){return null==t?void 0:t[e]}t.exports=n},"36bd":function(t,e,n){"use strict";var r=n("4bf8"),i=n("77f1"),a=n("9def");t.exports=function(t){var e=r(this),n=a(e.length),o=arguments.length,s=i(o>1?arguments[1]:void 0,n),u=o>2?arguments[2]:void 0,c=void 0===u?n:i(u,n);while(c>s)e[s++]=t;return e}},"36e0":function(t,e,n){const r={mix:n("503e"),augment:n("8d88"),isString:n("3421"),getAdjMatrix(t,e){const n=t.nodes,r=t.edges,i=[],a=new Map;return n.forEach((t,e)=>{a.set(t.id,e);const n=[];i.push(n)}),r.forEach(t=>{const n=t.source,r=t.target,o=a.get(n),s=a.get(r);i[o][s]=1,e||(i[s][o]=1)}),i},floydWarshall(t){const e=[],n=t.length;for(let r=0;re[t][r]+e[r][i]&&(e[t][i]=e[t][r]+e[r][i]);return e},getEDistance(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))},scaleMatrix(t,e){const n=[];return t.forEach(t=>{const r=[];t.forEach(t=>{r.push(t*e)}),n.push(r)}),n}};t.exports=r},3818:function(t,e,n){var r=n("7e64"),i=n("8057"),a=n("32b3"),o=n("5b01"),s=n("0f0f"),u=n("e538"),c=n("4359"),h=n("54eb"),f=n("1041"),l=n("a994"),d=n("1bac"),p=n("42a2"),g=n("c87c"),v=n("c2b6"),m=n("fa21"),y=n("6747"),x=n("0d24"),b=n("cc45"),w=n("1a8c"),_=n("d7ee"),M=n("ec69"),S=1,k=2,A=4,P="[object Arguments]",C="[object Array]",E="[object Boolean]",I="[object Date]",O="[object Error]",T="[object Function]",N="[object GeneratorFunction]",j="[object Map]",B="[object Number]",L="[object Object]",D="[object RegExp]",R="[object Set]",F="[object String]",Y="[object Symbol]",q="[object WeakMap]",z="[object ArrayBuffer]",X="[object DataView]",G="[object Float32Array]",W="[object Float64Array]",U="[object Int8Array]",V="[object Int16Array]",H="[object Int32Array]",Z="[object Uint8Array]",$="[object Uint8ClampedArray]",Q="[object Uint16Array]",K="[object Uint32Array]",J={};function tt(t,e,n,C,E,I){var O,j=e&S,B=e&k,D=e&A;if(n&&(O=E?n(t,C,E,I):n(t)),void 0!==O)return O;if(!w(t))return t;var R=y(t);if(R){if(O=g(t),!j)return c(t,O)}else{var F=p(t),Y=F==T||F==N;if(x(t))return u(t,j);if(F==L||F==P||Y&&!E){if(O=B||Y?{}:m(t),!j)return B?f(t,s(O,t)):h(t,o(O,t))}else{if(!J[F])return E?t:{};O=v(t,F,j)}}I||(I=new r);var q=I.get(t);if(q)return q;I.set(t,O),_(t)?t.forEach((function(r){O.add(tt(r,e,n,r,t,I))})):b(t)&&t.forEach((function(r,i){O.set(i,tt(r,e,n,i,t,I))}));var z=D?B?d:l:B?keysIn:M,X=R?void 0:z(t);return i(X||t,(function(r,i){X&&(i=r,r=t[i]),a(O,i,tt(r,e,n,i,t,I))})),O}J[P]=J[C]=J[z]=J[X]=J[E]=J[I]=J[G]=J[W]=J[U]=J[V]=J[H]=J[j]=J[B]=J[L]=J[D]=J[R]=J[F]=J[Y]=J[Z]=J[$]=J[Q]=J[K]=!0,J[O]=J[T]=J[q]=!1,t.exports=tt},3852:function(t,e,n){var r=n("96f3"),i=n("e2c0");function a(t,e){return null!=t&&i(t,e,r)}t.exports=a},"38e2":function(t,e,n){var r=n("6f9c"),i=n("1f3a"),a=n("d9f3"),o=n("f352");function s(t,e,n,h){var f=t.children(e),l=t.node(e),d=l?l.borderLeft:void 0,p=l?l.borderRight:void 0,g={};d&&(f=r.filter(f,(function(t){return t!==d&&t!==p})));var v=i(t,f);r.forEach(v,(function(e){if(t.children(e.v).length){var i=s(t,e.v,n,h);g[e.v]=i,r.has(i,"barycenter")&&c(e,i)}}));var m=a(v,n);u(m,g);var y=o(m,h);if(d&&(y.vs=r.flatten([d,y.vs,p],!0),t.predecessors(d).length)){var x=t.node(t.predecessors(d)[0]),b=t.node(t.predecessors(p)[0]);r.has(y,"barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+x.order+b.order)/(y.weight+2),y.weight+=2}return y}function u(t,e){r.forEach(t,(function(t){t.vs=r.flatten(t.vs.map((function(t){return e[t]?e[t].vs:t})),!0)}))}function c(t,e){r.isUndefined(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}t.exports=s},"39ff":function(t,e,n){var r=n("0b07"),i=n("2b3e"),a=r(i,"WeakMap");t.exports=a},"3a21":function(t,e,n){var r=n("00d0"),i=Array.isArray?Array.isArray:function(t){return r(t,"Array")};t.exports=i},"3a95":function(t,e,n){const r=n("1249"),i=n("1b95"),a=n("9ed2");r.registerNode("triangle",{options:{size:40,direction:"up",style:{stroke:a.defaultShapeStrokeColor,fill:a.defaultShapeFillColor,lineWidth:1},labelCfg:{style:{fill:"#595959"},offset:15},stateStyles:{hover:{fillOpacity:.8},selected:{lineWidth:3}},linkPoints:{top:!1,right:!1,bottom:!1,left:!1,size:5,lineWidth:1,fill:"#fff",stroke:"#72CC4A"},icon:{show:!1,img:"https://gw.alipayobjects.com/zos/basement_prod/012bcf4f-423b-4922-8c24-32a89f8c41ce.svg",width:16,height:16,offset:6}},shapeType:"triangle",labelPosition:"bottom",drawShape(t,e){const n=this.getCustomConfig(t)||{},{icon:r,direction:a}=this.options,{icon:o,direction:s}=n,u=this.getShapeStyle(t),c=i({},r,o,t.icon),h=t.direction||s||a,f=e.addShape("path",{attrs:u}),{width:l,height:d,show:p,offset:g}=c;if(p){let t=-l/2,n=-d/2;"up"!==h&&"down"!==h||(n+=g),"left"!==h&&"right"!==h||(t+=g);const r=e.addShape("image",{attrs:{x:t,y:n,...c},className:"triangle-icon"});r.set("capture",!1)}return this.drawLinkPoints(t,e),f},drawLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r,direction:a}=this.options,{linkPoints:o,direction:s}=n,u=i({},r,o,t.linkPoints),c=t.direction||s||a,{top:h,left:f,right:l,bottom:d,size:p,...g}=u,v=this.getSize(t),m=v[0];if(f){let t=null;const n=m*Math.sin(1/3*Math.PI),r=m*Math.sin(1/3*Math.PI);"up"===c?t=[-r,n]:"down"===c?t=[-r,-n]:"left"===c&&(t=[-r,r-n]),t&&e.addShape("circle",{attrs:{...g,x:t[0],y:t[1],r:p},className:"triangle-mark-left"})}if(l){let t=null;const n=m*Math.sin(1/3*Math.PI),r=m*Math.sin(1/3*Math.PI);"up"===c?t=[r,n]:"down"===c?t=[r,-n]:"right"===c&&(t=[r,r-n]),t&&e.addShape("circle",{attrs:{...g,x:t[0],y:t[1],r:p},className:"triangle-mark-right"})}if(h){let t=null;const n=m*Math.sin(1/3*Math.PI),r=m*Math.sin(1/3*Math.PI);"up"===c?t=[r-n,-n]:"left"===c?t=[r,-n]:"right"===c&&(t=[-r,-n]),t&&e.addShape("circle",{attrs:{...g,x:t[0],y:t[1],r:p},className:"triangle-mark-top"})}if(d){let t=null;const n=m*Math.sin(1/3*Math.PI),r=m*Math.sin(1/3*Math.PI);"down"===c?t=[-r+n,n]:"left"===c?t=[r,n]:"right"===c&&(t=[-r,n]),t&&e.addShape("circle",{attrs:{...g,x:t[0],y:t[1],r:p},className:"triangle-mark-bottom"})}},getPath(t){const e=this.getCustomConfig(t)||{},{direction:n}=this.options,{direction:r}=e,i=t.direction||r||n,a=this.getSize(t),o=a[0],s=o*Math.sin(1/3*Math.PI),u=o*Math.sin(1/3*Math.PI);let c=[["M",-u,s],["L",0,-s],["L",u,s],["Z"]];return"down"===i?c=[["M",-u,-s],["L",u,-s],["L",0,s],["Z"]]:"left"===i?c=[["M",-u,u-s],["L",u,-u],["L",u,u],["Z"]]:"right"===i&&(c=[["M",u,u-s],["L",-u,u],["L",-u,-u],["Z"]]),c},getShapeStyle(t){const e=this.getCustomConfig(t)||{},{style:n}=this.options,{style:r}=e,a={stroke:t.color},o=i({},n,r,a,t.style),s=this.getPath(t),u={path:s,...o};return u},update(t,e){const n=e.getContainer(),r=this.getCustomConfig(t)||{},{style:a,icon:o,labelCfg:s}=this.options,{style:u,icon:c,labelCfg:h}=r,f=i({},a,u,t.style),l=i({},o,c,t.icon),d=e.get("keyShape"),p=this.getPath(t);d.attr({path:p,...f});const g=i({},s,h,t.labelCfg),v=this.getLabelStyle(t,g,n),m=n.findByClassName("node-label");m&&m.attr({...v});const y=n.findByClassName("triangle-icon");if(y){const{width:t,height:e}=l;y.attr({x:-t/2,y:-e/2,...l})}this.updateLinkPoints(t,n)},updateLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r,direction:a}=this.options,{linkPoints:o,direction:s}=n,u=i({},r,o,t.linkPoints),c=t.direction||s||a,{size:h,...f}=u,l=this.getSize(t),d=l[0],p=e.findByClassName("triangle-mark-left");if(p){let t=null;const e=d*Math.sin(1/3*Math.PI),n=d*Math.sin(1/3*Math.PI);"up"===c?t=[-n,e]:"down"===c?t=[-n,-e]:"left"===c&&(t=[-n,n-e]),t&&p.attr({...f,x:t[0],y:t[1],r:h})}const g=e.findByClassName("triangle-mark-right");if(g){let t=null;const e=d*Math.sin(1/3*Math.PI),n=d*Math.sin(1/3*Math.PI);"up"===c?t=[n,e]:"down"===c?t=[n,-e]:"right"===c&&(t=[n,n-e]),t&&g.attr({...f,x:t[0],y:t[1],r:h})}const v=e.findByClassName("triangle-mark-top");if(v){let t=null;const e=d*Math.sin(1/3*Math.PI),n=d*Math.sin(1/3*Math.PI);"up"===c?t=[n-e,-e]:"left"===c?t=[n,-e]:"right"===c&&(t=[-n,-e]),t&&v.attr({...f,x:t[0],y:t[1],r:h})}const m=e.findByClassName("triangle-mark-bottom");if(m){let t=null;const e=d*Math.sin(1/3*Math.PI),n=d*Math.sin(1/3*Math.PI);"down"===c?t=[-n+e,e]:"left"===c?t=[n,e]:"right"===c&&(t=[-n,e]),t&&m.attr({...f,x:t[0],y:t[1],r:h})}}},"single-shape")},"3b0b":function(t,e,n){const r=n("1bb5"),i=n("c424"),a={"drag-canvas":n("594f"),"zoom-canvas":n("e916"),"drag-node":n("7c8f"),"click-select":n("a560"),tooltip:n("59ca"),"edge-tooltip":n("12d7"),"collapse-expand":n("2efd"),"activate-relations":n("7a60"),"brush-select":n("a5d3"),"drag-group":n("e310"),"drag-node-with-group":n("fe51"),"collapse-expand-group":n("f4c8")};r.each(a,(t,e)=>{i.registerBehavior(e,t)}),t.exports=i},"3b4a":function(t,e,n){var r=n("0b07"),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();t.exports=i},"3b54":function(t,e,n){var r=n("e0ef"),i=n("72fb"),a=n("6dcf");t.exports=function(t,e){return t=r(t),i(e,(function(e){switch(e[0]){case"t":a.translate(t,t,[e[1],e[2]]);break;case"s":a.scale(t,t,[e[1],e[2]]);break;case"r":a.rotate(t,t,e[1]);break;case"m":a.multiply(t,t,e[1]);break;default:return!1}})),t}},"3bb4":function(t,e,n){var r=n("08cc"),i=n("ec69");function a(t){var e=i(t),n=e.length;while(n--){var a=e[n],o=t[a];e[n]=[a,o,r(o)]}return e}t.exports=a},"3c9b":function(t,e,n){"use strict";n.r(e),n.d(e,"calcStrLen",(function(){return r})),n.d(e,"fittingString",(function(){return i}));const r=t=>{let e=0;for(let n=0;n0&&t.charCodeAt(n)<128?e++:e+=2;return e},i=(t,e,n)=>{const i=1.3*n;e*=2;const a=r(t)*i,o="…";if(a>e){const n=Math.floor((e-10)/i),r=t.substring(0,n)+o;return r}return t}},"3cbc":function(t,e,n){var r=n("1c6a"),i=n("adff"),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={x:0,y:0,text:null,fontSize:12,fontFamily:"sans-serif",fontStyle:"normal",fontWeight:"normal",fontVariant:"normal",textAlign:"start",textBaseline:"bottom",lineHeight:null,textArr:null},r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"text",getDefaultAttrs:function(){return{lineWidth:1,lineCount:1,fontSize:12,fontFamily:"sans-serif",fontStyle:"normal",fontWeight:"normal",fontVariant:"normal",textAlign:"start",textBaseline:"bottom"}},initTransform:function(){var t=this._attrs.fontSize;t&&+t<12&&this.transform([["t",-1*this._attrs.x,-1*this._attrs.y],["s",+t/12,+t/12],["t",this._attrs.x,this._attrs.y]])},_assembleFont:function(){var t=this._attrs,e=t.fontSize,n=t.fontFamily,r=t.fontWeight,i=t.fontStyle,a=t.fontVariant;t.font=[i,a,r,e+"px",n].join(" ")},_setAttrText:function(){var t=this._attrs,e=t.text,n=null;if(r.isString(e))if(-1!==e.indexOf("\n")){n=e.split("\n");var i=n.length;t.lineCount=i}else t.lineCount=1;t.textArr=n},_getTextHeight:function(){var t=this._attrs,e=t.lineCount,n=1*t.fontSize;if(e>1){var r=this._getSpaceingY();return n*e+r*(e-1)}return n},isHitBox:function(){return!1},calculateBox:function(){var t=this,e=t._attrs,n=this._cfg;n.attrs&&!n.hasUpdate||(this._assembleFont(),this._setAttrText()),e.textArr||this._setAttrText();var r=e.x,i=e.y,a=t.measureText();if(!a)return{minX:r,minY:i,maxX:r,maxY:i};var o=t._getTextHeight(),s=e.textAlign,u=e.textBaseline,c=t.getHitLineWidth(),h={x:r,y:i-o};s&&("end"===s||"right"===s?h.x-=a:"center"===s&&(h.x-=a/2)),u&&("top"===u?h.y+=o:"middle"===u&&(h.y+=o/2)),this.set("startPoint",h);var f=c/2;return{minX:h.x-f,minY:h.y-f,maxX:h.x+a+f,maxY:h.y+o+f}},_getSpaceingY:function(){var t=this._attrs,e=t.lineHeight,n=1*t.fontSize;return e?e-n:.14*n},drawInner:function(t){var e=this,n=e._attrs,i=this._cfg;i.attrs&&!i.hasUpdate||(this._assembleFont(),this._setAttrText()),t.font=n.font;var a=n.text;if(a){var o=n.textArr,s=n.x,u=n.y;if(t.beginPath(),e.hasStroke()){var c=n.strokeOpacity;r.isNil(c)||1===c||(t.globalAlpha=c),o?e._drawTextArr(t,!1):t.strokeText(a,s,u),t.globalAlpha=1}if(e.hasFill()){var h=n.fillOpacity;r.isNil(h)||1===h||(t.globalAlpha=h),o?e._drawTextArr(t,!0):t.fillText(a,s,u)}i.hasUpdate=!1}},_drawTextArr:function(t,e){var n,i=this._attrs.textArr,a=this._attrs.textBaseline,o=1*this._attrs.fontSize,s=this._getSpaceingY(),u=this._attrs.x,c=this._attrs.y,h=this.getBBox(),f=h.maxY-h.minY;r.each(i,(function(r,i){n=c+i*(s+o)-f+o,"middle"===a&&(n+=f-o-(f-o)/2),"top"===a&&(n+=f-o),e?t.fillText(r,u,n):t.strokeText(r,u,n)}))},measureText:function(){var t,e=this,n=e._attrs,i=n.text,a=n.font,o=n.textArr,s=0;if(!r.isNil(i)){var u=document.createElement("canvas").getContext("2d");return u.save(),u.font=a,o?r.each(o,(function(e){t=u.measureText(e).width,s{f(t,e)})}const l={getBBox(t,e){const n=t.getBBox();let i={x:n.minX,y:n.minY},a={x:n.maxX,y:n.maxY};if(e){const t=e.getMatrix();i=r.applyMatrix(i,t),a=r.applyMatrix(a,t)}return{minX:i.x,minY:i.y,maxX:a.x,maxY:a.y}},getLoopCfgs(t){const e=t.sourceNode||t.targetNode,n=e.get("group").getMatrix(),r=e.getKeyShape().getBBox(),o=t.loopCfg||{},s=o.dist||2*Math.max(r.width,r.height),u=o.position||a.loopPosition,f=Math.max(r.width,r.height)/2,l=(f+s)/f,d=[n[6],n[7]],p=f*c,g=f*h;let v=[t.startPoint.x,t.startPoint.y],m=[t.endPoint.x,t.endPoint.y];if(v[0]===m[0]&&v[1]===m[1]){switch(u){case"top":v=[d[0]-p,d[1]-g],m=[d[0]+p,d[1]-g];break;case"top-right":v=[d[0]+p,d[1]-g],m=[d[0]+g,d[1]-p];break;case"right":v=[d[0]+g,d[1]-p],m=[d[0]+g,d[1]+p];break;case"bottom-right":v=[d[0]+g,d[1]+p],m=[d[0]+p,d[1]+g];break;case"bottom":v=[d[0]+p,d[1]+g],m=[d[0]-p,d[1]+g];break;case"bottom-left":v=[d[0]-p,d[1]+g],m=[d[0]-g,d[1]+p];break;case"left":v=[d[0]-g,d[1]+p],m=[d[0]-g,d[1]-p];break;case"top-left":v=[d[0]-g,d[1]-p],m=[d[0]-p,d[1]-g];break;default:v=[d[0]-p,d[1]-g],m=[d[0]+p,d[1]-g]}if(!1===o.clockwise){const t=[v[0],v[1]];v=[m[0],m[1]],m=[t[0],t[1]]}}const y=[v[0]-d[0],v[1]-d[1]],x=i.vec2.scale([],y,l),b=[d[0]+x[0],d[1]+x[1]],w=[m[0]-d[0],m[1]-d[1]],_=i.vec2.scale([],w,l),M=[d[0]+_[0],d[1]+_[1]];return t.startPoint={x:v[0],y:v[1]},t.endPoint={x:m[0],y:m[1]},t.controlPoints=[{x:b[0],y:b[1]},{x:M[0],y:M[1]}],t},traverseTree(t,e){"function"===typeof e&&f(t,e)},radialLayout(t,e){const n=["V","TB","BT"],r={x:1/0,y:1/0},i={x:-1/0,y:-1/0};let a="x",s="y";e&&n.indexOf(e)>=0&&(s="x",a="y");let u=0;this.traverseTree(t,t=>{u++,t.x>i.x&&(i.x=t.x),t.xi.y&&(i.y=t.y),t.y{const n=(e[s]-r[s])/h*(2*o-c)+c,i=Math.abs("x"===a?e.x-t.x:e.y-t.y);e.x=i*Math.cos(n),e.y=i*Math.sin(n)}),t},getLabelPosition(t,e,n,r,i){const a=1e-4;let c=[];const h=t.getPoint(e);if(null===h)return{x:0,y:0,angle:0};if(e1-a)c=t.getEndTangent();else{const n=t.getPoint(e+a);c.push([h.x,h.y]),c.push([n.x,n.y])}let f=Math.atan2(c[1][1]-c[0][1],c[1][0]-c[0][0]);if(f<0&&(f+=2*o),n&&(h.x+=u(f)*n,h.y+=s(f)*n),r){let t=f-o/2;f>.5*o&&f<1.5*o&&(t-=o),h.x+=u(t)*r,h.y+=s(t)*r}const l={x:h.x,y:h.y,angle:f};return i?(f>.5*o&&f<1.5*o&&(f-=o),{rotate:f,...l}):l}};t.exports=l},"3ff1":function(t,e,n){var r=n("266a"),i=n("ec69");function a(t){return null==t?[]:r(t,i(t))}t.exports=a},"41c3":function(t,e,n){var r=n("1a8c"),i=n("eac5"),a=n("ec8c"),o=Object.prototype,s=o.hasOwnProperty;function u(t){if(!r(t))return a(t);var e=i(t),n=[];for(var o in t)("constructor"!=o||!e&&s.call(t,o))&&n.push(o);return n}t.exports=u},4245:function(t,e,n){var r=n("1290");function i(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}t.exports=i},42454:function(t,e,n){var r=n("f909"),i=n("2ec1"),a=i((function(t,e,n){r(t,e,n)}));t.exports=a},4284:function(t,e){function n(t,e){var n=-1,r=null==t?0:t.length;while(++n1&&(a*=Math.sqrt(m),o*=Math.sqrt(m));var y=a*a*(v*v)+o*o*(d*d),x=Math.sqrt((a*a*(o*o)-y)/y);n===i&&(x*=-1),isNaN(x)&&(x=0);var b=x*a*v/o,w=x*-o*d/a,_=(c+f)/2+Math.cos(u)*b-Math.sin(u)*w,M=(h+l)/2+Math.sin(u)*b+Math.cos(u)*w,S=g([1,0],[(d-b)/a,(v-w)/o]),k=[(d-b)/a,(v-w)/o],A=[(-1*d-b)/a,(-1*v-w)/o],P=g(k,A);return p(k,A)<=-1&&(P=Math.PI),p(k,A)>=1&&(P=0),0===i&&P>0&&(P-=2*Math.PI),1===i&&P<0&&(P+=2*Math.PI),[t,_,M,a,o,S,P,u,i]}var m=function(t,e,n){this.preSegment=e,this.isLast=n,this.init(t,e)};r.augment(m,{init:function(t,e){var n=t[0];e=e||{endPoint:{x:0,y:0}};var i,a,o,s,u=h.indexOf(n)>=0,c=u?n.toUpperCase():n,d=t,p=e.endPoint,g=d[1],m=d[2];switch(c){default:break;case"M":s=u?f(g,m,p):{x:g,y:m},this.command="M",this.params=[p,s],this.subStart=s,this.endPoint=s;break;case"L":s=u?f(g,m,p):{x:g,y:m},this.command="L",this.params=[p,s],this.subStart=e.subStart,this.endPoint=s,this.endTangent=function(){return[s.x-p.x,s.y-p.y]},this.startTangent=function(){return[p.x-s.x,p.y-s.y]};break;case"H":s=u?f(g,0,p):{x:g,y:p.y},this.command="L",this.params=[p,s],this.subStart=e.subStart,this.endPoint=s,this.endTangent=function(){return[s.x-p.x,s.y-p.y]},this.startTangent=function(){return[p.x-s.x,p.y-s.y]};break;case"V":s=u?f(0,g,p):{x:p.x,y:g},this.command="L",this.params=[p,s],this.subStart=e.subStart,this.endPoint=s,this.endTangent=function(){return[s.x-p.x,s.y-p.y]},this.startTangent=function(){return[p.x-s.x,p.y-s.y]};break;case"Q":u?(i=f(g,m,p),a=f(d[3],d[4],p)):(i={x:g,y:m},a={x:d[3],y:d[4]}),this.command="Q",this.params=[p,i,a],this.subStart=e.subStart,this.endPoint=a,this.endTangent=function(){return[a.x-i.x,a.y-i.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]};break;case"T":a=u?f(g,m,p):{x:g,y:m},"Q"===e.command?(i=l(e.params[1],p),this.command="Q",this.params=[p,i,a],this.subStart=e.subStart,this.endPoint=a,this.endTangent=function(){return[a.x-i.x,a.y-i.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]}):(this.command="TL",this.params=[p,a],this.subStart=e.subStart,this.endPoint=a,this.endTangent=function(){return[a.x-p.x,a.y-p.y]},this.startTangent=function(){return[p.x-a.x,p.y-a.y]});break;case"C":u?(i=f(g,m,p),a=f(d[3],d[4],p),o=f(d[5],d[6],p)):(i={x:g,y:m},a={x:d[3],y:d[4]},o={x:d[5],y:d[6]}),this.command="C",this.params=[p,i,a,o],this.subStart=e.subStart,this.endPoint=o,this.endTangent=function(){return[o.x-a.x,o.y-a.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]};break;case"S":u?(a=f(g,m,p),o=f(d[3],d[4],p)):(a={x:g,y:m},o={x:d[3],y:d[4]}),"C"===e.command?(i=l(e.params[2],p),this.command="C",this.params=[p,i,a,o],this.subStart=e.subStart,this.endPoint=o,this.endTangent=function(){return[o.x-a.x,o.y-a.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]}):(this.command="SQ",this.params=[p,a,o],this.subStart=e.subStart,this.endPoint=o,this.endTangent=function(){return[o.x-a.x,o.y-a.y]},this.startTangent=function(){return[p.x-a.x,p.y-a.y]});break;case"A":var y=g,x=m,b=d[3],w=d[4],_=d[5];s=u?f(d[6],d[7],p):{x:d[6],y:d[7]},this.command="A";var M=v(p,s,w,_,y,x,b);this.params=M;var S=e.subStart;this.subStart=S,this.endPoint=s;var k=M[5]%(2*Math.PI);r.isNumberEqual(k,2*Math.PI)&&(k=0);var A=M[6]%(2*Math.PI);r.isNumberEqual(A,2*Math.PI)&&(A=0);var P=.001;this.startTangent=function(){0===_&&(P*=-1);var t=M[3]*Math.cos(k-P)+M[1],e=M[4]*Math.sin(k-P)+M[2];return[t-S.x,e-S.y]},this.endTangent=function(){var t=M[6];t-2*Math.PI<1e-4&&(t=0);var e=M[3]*Math.cos(k+t+P)+M[1],n=M[4]*Math.sin(k+t-P)+M[2];return[p.x-e,p.y-n]};break;case"Z":this.command="Z",this.params=[p,e.subStart],this.subStart=e.subStart,this.endPoint=e.subStart}},isInside:function(t,e,n){var r=this,a=r.command,o=r.params,s=r.box;if(s&&!i.box(s.minX,s.maxX,s.minY,s.maxY,t,e))return!1;switch(a){default:break;case"M":return!1;case"TL":case"L":case"Z":return i.line(o[0].x,o[0].y,o[1].x,o[1].y,n,t,e);case"SQ":case"Q":return i.quadraticline(o[0].x,o[0].y,o[1].x,o[1].y,o[2].x,o[2].y,n,t,e);case"C":return i.cubicline(o[0].x,o[0].y,o[1].x,o[1].y,o[2].x,o[2].y,o[3].x,o[3].y,n,t,e);case"A":var h=o,f=h[1],l=h[2],d=h[3],p=h[4],g=h[5],v=h[6],m=h[7],y=h[8],x=d>p?d:p,b=d>p?1:d/p,w=d>p?p/d:1;h=[t,e,1];var _=[1,0,0,0,1,0,0,0,1];return c.translate(_,_,[-f,-l]),c.rotate(_,_,-m),c.scale(_,_,[1/b,1/w]),u.transformMat3(h,h,_),i.arcline(0,0,x,g,g+v,1-y,n,h[0],h[1])}return!1},draw:function(t){var e,n,r,i=this.command,a=this.params;switch(i){default:break;case"M":t.moveTo(a[1].x,a[1].y);break;case"TL":case"L":t.lineTo(a[1].x,a[1].y);break;case"SQ":case"Q":e=a[1],n=a[2],t.quadraticCurveTo(e.x,e.y,n.x,n.y);break;case"C":e=a[1],n=a[2],r=a[3],t.bezierCurveTo(e.x,e.y,n.x,n.y,r.x,r.y);break;case"A":var o=a,s=o[1],u=o[2],c=s,h=u,f=o[3],l=o[4],d=o[5],p=o[6],g=o[7],v=o[8],m=f>l?f:l,y=f>l?1:f/l,x=f>l?l/f:1;t.translate(c,h),t.rotate(g),t.scale(y,x),t.arc(0,0,m,d,d+p,1-v),t.scale(1/y,1/x),t.rotate(-g),t.translate(-c,-h);break;case"Z":t.closePath();break}},shortenDraw:function(t,e,n){var r,i,a,o=this.command,s=this.params;switch(o){default:break;case"M":t.moveTo(s[1].x-e,s[1].y-n);break;case"TL":case"L":t.lineTo(s[1].x-e,s[1].y-n);break;case"SQ":case"Q":r=s[1],i=s[2],t.quadraticCurveTo(r.x,r.y,i.x-e,i.y-n);break;case"C":r=s[1],i=s[2],a=s[3],t.bezierCurveTo(r.x,r.y,i.x,i.y,a.x-e,a.y-n);break;case"A":var u=s,c=u[1],h=u[2],f=c,l=h,d=u[3],p=u[4],g=u[5],v=u[6],m=u[7],y=u[8],x=d>p?d:p,b=d>p?1:d/p,w=d>p?p/d:1;t.translate(f,l),t.rotate(m),t.scale(b,w),t.arc(0,0,x,g,g+v,1-y),t.scale(1/b,1/w),t.rotate(-m),t.translate(-f,-l);break;case"Z":t.closePath();break}},getBBox:function(t){var e,n,r,i,u=t/2,c=this.params;switch(this.command){default:case"M":case"Z":break;case"TL":case"L":this.box={minX:Math.min(c[0].x,c[1].x)-u,maxX:Math.max(c[0].x,c[1].x)+u,minY:Math.min(c[0].y,c[1].y)-u,maxY:Math.max(c[0].y,c[1].y)+u};break;case"SQ":case"Q":for(n=o.extrema(c[0].x,c[1].x,c[2].x),r=0,i=n.length;rM&&(M=A)}var P=s.yExtrema(m,d,p),C=1/0,E=-1/0,I=[x,b];for(r=2*-Math.PI;r<=2*Math.PI;r+=Math.PI){var O=P+r;1===y?xE&&(E=T)}this.box={minX:_-u,maxX:M+u,minY:C-u,maxY:E+u};break}}}),t.exports=m},"49f4":function(t,e,n){var r=n("6044");function i(){this.__data__=r?r(null):{},this.size=0}t.exports=i},"4a80":function(t,e,n){var r=n("5eec"),i="\t\n\v\f\r   ᠎              \u2028\u2029",a=new RegExp("([a-z])["+i+",]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?["+i+"]*,?["+i+"]*)+)","ig"),o=new RegExp("(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)["+i+"]*,?["+i+"]*","ig"),s=function(t){if(!t)return null;if(typeof t===typeof[])return t;var e={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},n=[];return String(t).replace(a,(function(t,r,i){var a=[],s=r.toLowerCase();if(i.replace(o,(function(t,e){e&&a.push(+e)})),"m"===s&&a.length>2&&(n.push([r].concat(a.splice(0,2))),s="l",r="m"===r?"l":"L"),"o"===s&&1===a.length&&n.push([r,a[0]]),"r"===s)n.push([r].concat(a));else while(a.length>=e[s])if(n.push([r].concat(a.splice(0,e[s]))),!e[s])break})),n},u=function(t,e){for(var n=[],r=0,i=t.length;i-2*!e>r;r+=2){var a=[{x:+t[r-2],y:+t[r-1]},{x:+t[r],y:+t[r+1]},{x:+t[r+2],y:+t[r+3]},{x:+t[r+4],y:+t[r+5]}];e?r?i-4===r?a[3]={x:+t[0],y:+t[1]}:i-2===r&&(a[2]={x:+t[0],y:+t[1]},a[3]={x:+t[2],y:+t[3]}):a[0]={x:+t[i-2],y:+t[i-1]}:i-4===r?a[3]=a[2]:r||(a[0]={x:+t[r],y:+t[r+1]}),n.push(["C",(-a[0].x+6*a[1].x+a[2].x)/6,(-a[0].y+6*a[1].y+a[2].y)/6,(a[1].x+6*a[2].x-a[3].x)/6,(a[1].y+6*a[2].y-a[3].y)/6,a[2].x,a[2].y])}return n},c=function(t,e,n,r,i){var a=[];if(null===i&&null===r&&(r=n),t=+t,e=+e,n=+n,r=+r,null!==i){var o=Math.PI/180,s=t+n*Math.cos(-r*o),u=t+n*Math.cos(-i*o),c=e+n*Math.sin(-r*o),h=e+n*Math.sin(-i*o);a=[["M",s,c],["A",n,n,0,+(i-r>180),0,u,h]]}else a=[["M",t,e],["m",0,-r],["a",n,r,0,1,1,0,2*r],["a",n,r,0,1,1,0,-2*r],["z"]];return a},h=function(t){if(t=s(t),!t||!t.length)return[["M",0,0]];var e,n,r=[],i=0,a=0,o=0,h=0,f=0;"M"===t[0][0]&&(i=+t[0][1],a=+t[0][2],o=i,h=a,f++,r[0]=["M",i,a]);for(var l,d,p=3===t.length&&"M"===t[0][0]&&"R"===t[1][0].toUpperCase()&&"Z"===t[2][0].toUpperCase(),g=f,v=t.length;g1&&(_=Math.sqrt(_),r*=_,i*=_);var M=r*r,S=i*i,k=(o===s?-1:1)*Math.sqrt(Math.abs((M*S-M*w*w-S*b*b)/(M*w*w+S*b*b)));p=k*r*w/i+(e+u)/2,g=k*-i*b/r+(n+c)/2,l=Math.asin(((n-g)/i).toFixed(9)),d=Math.asin(((c-g)/i).toFixed(9)),l=ed&&(l-=2*Math.PI),!s&&d>l&&(d-=2*Math.PI)}var A=d-l;if(Math.abs(A)>v){var P=d,C=u,E=c;d=l+v*(s&&d>l?1:-1),u=p+r*Math.cos(d),c=g+i*Math.sin(d),y=t(u,c,r,i,a,0,s,C,E,[d,P,p,g])}A=d-l;var I=Math.cos(l),O=Math.sin(l),T=Math.cos(d),N=Math.sin(d),j=Math.tan(A/4),B=4/3*r*j,L=4/3*i*j,D=[e,n],R=[e+B*O,n-L*I],F=[u+B*N,c-L*T],Y=[u,c];if(R[0]=2*D[0]-R[0],R[1]=2*D[1]-R[1],h)return[R,F,Y].concat(y);y=[R,F,Y].concat(y).join().split(",");for(var q=[],z=0,X=y.length;z7){t[e].shift();var a=t[e];while(a.length)s[e]="A",i&&(u[e]="A"),t.splice(e++,0,["C"].concat(a.splice(0,6)));t.splice(e,1),n=Math.max(r.length,i&&i.length||0)}},m=function(t,e,a,o,s){t&&e&&"M"===t[s][0]&&"M"!==e[s][0]&&(e.splice(s,0,["M",o.x,o.y]),a.bx=0,a.by=0,a.x=t[s][1],a.y=t[s][2],n=Math.max(r.length,i&&i.length||0))};n=Math.max(r.length,i&&i.length||0);for(var y=0;y1?1:u<0?0:u;for(var c=u/2,h=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],l=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,p=0;p0&&f<1&&l.push(f)}else{var g=c*c-4*h*u,v=Math.sqrt(g);if(!(g<0)){var m=(-c+v)/(2*u);m>0&&m<1&&l.push(m);var y=(-c-v)/(2*u);y>0&&y<1&&l.push(y)}}var x,b=l.length,w=b;while(b--)f=l[b],x=1-f,d[0][b]=x*x*x*t+3*x*x*f*n+3*x*f*f*i+f*f*f*o,d[1][b]=x*x*x*e+3*x*x*f*r+3*x*f*f*a+f*f*f*s;return d[0][w]=t,d[1][w]=e,d[0][w+1]=o,d[1][w+1]=s,d[0].length=d[1].length=w+2,{min:{x:Math.min.apply(0,d[0]),y:Math.min.apply(0,d[1])},max:{x:Math.max.apply(0,d[0]),y:Math.max.apply(0,d[1])}}},b=function(t,e,n,r,i,a,o,s){if(!(Math.max(t,n)Math.max(i,o)||Math.max(e,r)Math.max(a,s))){var u=(t*r-e*n)*(i-o)-(t-n)*(i*s-a*o),c=(t*r-e*n)*(a-s)-(e-r)*(i*s-a*o),h=(t-n)*(a-s)-(e-r)*(i-o);if(h){var f=u/h,l=c/h,d=+f.toFixed(2),p=+l.toFixed(2);if(!(d<+Math.min(t,n).toFixed(2)||d>+Math.max(t,n).toFixed(2)||d<+Math.min(i,o).toFixed(2)||d>+Math.max(i,o).toFixed(2)||p<+Math.min(e,r).toFixed(2)||p>+Math.max(e,r).toFixed(2)||p<+Math.min(a,s).toFixed(2)||p>+Math.max(a,s).toFixed(2)))return{x:f,y:l}}}},w=function(t,e,n){return e>=t.x&&e<=t.x+t.width&&n>=t.y&&n<=t.y+t.height},_=function(t,e,n,r,i){if(i)return[["M",+t+ +i,e],["l",n-2*i,0],["a",i,i,0,0,1,i,i],["l",0,r-2*i],["a",i,i,0,0,1,-i,i],["l",2*i-n,0],["a",i,i,0,0,1,-i,-i],["l",0,2*i-r],["a",i,i,0,0,1,i,-i],["z"]];var a=[["M",t,e],["l",n,0],["l",0,r],["l",-n,0],["z"]];return a.parsePathArray=v,a},M=function(t,e,n,r){return null===t&&(t=e=n=r=0),null===e&&(e=t.y,n=t.width,r=t.height,t=t.x),{x:t,y:e,width:n,w:n,height:r,h:r,x2:t+n,y2:e+r,cx:t+n/2,cy:e+r/2,r1:Math.min(n,r)/2,r2:Math.max(n,r)/2,r0:Math.sqrt(n*n+r*r)/2,path:_(t,e,n,r),vb:[t,e,n,r].join(" ")}},S=function(t,e){return t=M(t),e=M(e),w(e,t.x,t.y)||w(e,t.x2,t.y)||w(e,t.x,t.y2)||w(e,t.x2,t.y2)||w(t,e.x,e.y)||w(t,e.x2,e.y)||w(t,e.x,e.y2)||w(t,e.x2,e.y2)||(t.xe.x||e.xt.x)&&(t.ye.y||e.yt.y)},k=function(t,e,n,i,a,o,s,u){r.isArray(t)||(t=[t,e,n,i,a,o,s,u]);var c=x.apply(null,t);return M(c.min.x,c.min.y,c.max.x-c.min.x,c.max.y-c.min.y)},A=function(t,e,n,r,i,a,o,s,u){var c=1-u,h=Math.pow(c,3),f=Math.pow(c,2),l=u*u,d=l*u,p=h*t+3*f*u*n+3*c*u*u*i+d*o,g=h*e+3*f*u*r+3*c*u*u*a+d*s,v=t+2*u*(n-t)+l*(i-2*n+t),m=e+2*u*(r-e)+l*(a-2*r+e),y=n+2*u*(i-n)+l*(o-2*i+n),x=r+2*u*(a-r)+l*(s-2*a+r),b=c*t+u*n,w=c*e+u*r,_=c*i+u*o,M=c*a+u*s,S=90-180*Math.atan2(v-y,m-x)/Math.PI;return{x:p,y:g,m:{x:v,y:m},n:{x:y,y:x},start:{x:b,y:w},end:{x:_,y:M},alpha:S}},P=function(t,e,n){var r=k(t),i=k(e);if(!S(r,i))return n?0:[];for(var a=y.apply(0,t),o=y.apply(0,e),s=~~(a/8),u=~~(o/8),c=[],h=[],f={},l=n?0:[],d=0;d=0&&O<=1&&T>=0&&T<=1&&(n?l++:l.push({x:I.x,y:I.y,t1:O,t2:T}))}}return l},C=function(t,e,n){var r,i,a,o,s,u,c,h,f,l;t=p(t),e=p(e);for(var d=n?0:[],g=0,v=t.length;g=3&&(3===t.length&&e.push("Q"),e=e.concat(t[1])),2===t.length&&e.push("L"),e=e.concat(t[t.length-1]),e}));return h}var T=function(t,e,n){if(1===n)return[[].concat(t)];var r=[];if("L"===e[0]||"C"===e[0]||"Q"===e[0])r=r.concat(O(t,e,n));else{var i=[].concat(t);"M"===i[0]&&(i[0]="L");for(var a=0;a<=n-1;a++)r.push(i)}return r},N=function(t,e){if(1===t.length)return t;var n=t.length-1,r=e.length-1,i=n/r,a=[];if(1===t.length&&"M"===t[0][0]){for(var o=0;o=0;f--)o=a[f].index,"add"===a[f].type?t.splice(o,0,[].concat(t[o])):t.splice(o,1)}r=t.length;var l=i-r;if(r0)){t[r]=e[r];break}n=R(n,t[r-1],1)}t[r]=["Q"].concat(n.reduce((function(t,e){return t.concat(e)}),[]));break;case"T":t[r]=["T"].concat(n[0]);break;case"C":if(n.length<3){if(!(r>0)){t[r]=e[r];break}n=R(n,t[r-1],2)}t[r]=["C"].concat(n.reduce((function(t,e){return t.concat(e)}),[]));break;case"S":if(n.length<2){if(!(r>0)){t[r]=e[r];break}n=R(n,t[r-1],1)}t[r]=["S"].concat(n.reduce((function(t,e){return t.concat(e)}),[]));break;default:t[r]=e[r]}return t};t.exports={parsePathString:s,parsePathArray:v,pathTocurve:p,pathToAbsolute:h,catmullRomToBezier:u,rectPath:_,fillPath:N,fillPathByDiff:D,formatPath:Y,intersection:E}},"4cfe":function(t,e){function n(t){return void 0===t}t.exports=n},"4d8c":function(t,e,n){var r=n("5c69");function i(t){var e=null==t?0:t.length;return e?r(t,1):[]}t.exports=i},"4edf":function(t,e,n){var r=n("d63e"),i=n("9719"),a=function(t,e){var n=[];if(!r(t))return n;var a=-1,o=[],s=t.length;while(++as&&(s=e),nu&&(u=n)}));var c=i/2;return{minX:a-c,minY:o-c,maxX:s+c,maxY:u+c}},createPath:function(t){var e=this,n=e._attrs,i=n.points;i.length<2||(t=t||e.get("context"),t.beginPath(),r.each(i,(function(e,n){0===n?t.moveTo(e[0],e[1]):t.lineTo(e[0],e[1])})),t.closePath())}}),t.exports=a},"4f17":function(t,e,n){var r=n("df2e");function i(t,e){return r(t,e,"post")}t.exports=i},"4f50":function(t,e,n){var r=n("b760"),i=n("e538"),a=n("c8fe"),o=n("4359"),s=n("fa21"),u=n("d370"),c=n("6747"),h=n("dcbe"),f=n("0d24"),l=n("9520"),d=n("1a8c"),p=n("60ed"),g=n("73ac"),v=n("8adb"),m=n("8de2");function y(t,e,n,y,x,b,w){var _=v(t,n),M=v(e,n),S=w.get(M);if(S)r(t,n,S);else{var k=b?b(_,M,n+"",t,e,w):void 0,A=void 0===k;if(A){var P=c(M),C=!P&&f(M),E=!P&&!C&&g(M);k=M,P||C||E?c(_)?k=_:h(_)?k=o(_):C?(A=!1,k=i(M,!0)):E?(A=!1,k=a(M,!0)):k=[]:p(M)||u(M)?(k=_,u(_)?k=m(_):d(_)&&!l(_)||(k=s(M))):A=!1}A&&(w.set(M,k),x(k,M,y,b,w),w["delete"](M)),r(t,n,k)}}t.exports=y},"4fef":function(t,e,n){const r=n("4651"),i=800;r.registerLayout("fruchterman",{getDefaultCfg(){return{maxIteration:1e3,center:[0,0],gravity:10,speed:1,clustering:!1,clusterGravity:10}},execute(){const t=this,e=t.nodes,n=t.center;if(0===e.length)return;if(1===e.length)return e[0].x=n[0],void(e[0].y=n[1]);const r=new Map,i=new Map;e.forEach((t,e)=>{r.set(t.id,t),i.set(t.id,e)}),t.nodeMap=r,t.nodeIndexMap=i,t.run()},run(){const t=this,e=t.nodes,n=t.edges,r=t.maxIteration;let a=t.width;a||"undefined"===typeof window||(a=window.innerWidth);let o=t.height;o||"undefined"===typeof o||(o=window.innerHeight);const s=t.center,u=t.nodeMap,c=t.nodeIndexMap,h=a/10,f=Math.sqrt(a*o/(e.length+1)),l=t.gravity,d=t.speed,p=t.clustering,g=new Map;p&&(e.forEach(t=>{if(void 0===g.get(t.cluster)){const e={name:t.cluster,cx:0,cy:0,count:0};g.set(t.cluster,e)}const e=g.get(t.cluster);e.cx+=t.x,e.cy+=t.y,e.count++}),g.forEach(t=>{t.cx/=t.count,t.cy/=t.count}));for(let v=0;v{r[e]={x:0,y:0}}),t.getDisp(e,n,u,c,r,f),p){const n=t.clusterGravity||l;e.forEach((t,e)=>{const i=g.get(t.cluster),a=Math.sqrt((t.x-i.cx)*(t.x-i.cx)+(t.y-i.cy)*(t.y-i.cy)),o=f*n;r[e].x-=o*(t.x-i.cx)/a,r[e].y-=o*(t.y-i.cy)/a}),g.forEach(t=>{t.cx=0,t.cy=0,t.count=0}),e.forEach(t=>{const e=g.get(t.cluster);e.cx+=t.x,e.cy+=t.y,e.count++}),g.forEach(t=>{t.cx/=t.count,t.cy/=t.count})}e.forEach((t,e)=>{const n=.01*f*l;r[e].x-=n*(t.x-s[0]),r[e].y-=n*(t.y-s[1])}),e.forEach((t,e)=>{r[e].dx*=d/i,r[e].dy*=d/i}),e.forEach((t,e)=>{const n=Math.sqrt(r[e].x*r[e].x+r[e].y*r[e].y);if(n>0){const a=Math.min(h*(d/i),n);t.x+=r[e].x/n*a,t.y+=r[e].y/n*a}})}},getDisp(t,e,n,r,i,a){const o=this;o.calRepulsive(t,i,a),o.calAttractive(e,n,r,i,a)},calRepulsive(t,e,n){t.forEach((r,i)=>{e[i]={x:0,y:0},t.forEach((t,a)=>{if(i===a)return;const o=r.x-t.x,s=r.y-t.y;let u=o*o+s*s;0===u&&(u=1);const c=n*n/u;e[i].x+=o*c,e[i].y+=s*c})})},calAttractive(t,e,n,r,i){t.forEach(t=>{const a=n.get(t.source),o=n.get(t.target);if(a===o)return;const s=e.get(t.source),u=e.get(t.target),c=u.x-s.x,h=u.y-s.y,f=Math.sqrt(c*c+h*h),l=f*f/i;r[o].x-=c/f*l,r[o].y-=h/f*l,r[a].x+=c/f*l,r[a].y+=h/f*l})}})},"503e":function(t,e){function n(t,e){for(var n in e)e.hasOwnProperty(n)&&"constructor"!==n&&void 0!==e[n]&&(t[n]=e[n])}var r=function(t,e,r,i){return e&&n(t,e),r&&n(t,r),i&&n(t,i),t};t.exports=r},"50ca":function(t,e,n){var r=n("8057"),i=n("7530"),a=n("242e"),o=n("badf"),s=n("2dcb"),u=n("6747"),c=n("0d24"),h=n("9520"),f=n("1a8c"),l=n("73ac");function d(t,e,n){var d=u(t),p=d||c(t)||l(t);if(e=o(e,4),null==n){var g=t&&t.constructor;n=p?d?new g:[]:f(t)&&h(g)?i(s(t)):{}}return(p?r:a)(t,(function(t,r,i){return e(n,t,r,i)})),n}t.exports=d},"50d8":function(t,e){function n(t,e){var n=-1,r=Array(t);while(++nn?n:t};t.exports=n},5134:function(t,e,n){var r=n("78af"),i=n("4980"),a=Math.PI,o=Math.sin,s=Math.cos,u=Math.atan2,c=10,h=a/3;function f(t,e,n,r,i,f,l){var d,p,g,v,m,y,x;if(!e.fill){var b=e.arrowLength||c,w=e.arrowAngle?e.arrowAngle*a/180:h;x=u(r-f,n-i),m=Math.abs(e.lineWidth*s(x))/2,y=Math.abs(e.lineWidth*o(x))/2,l&&(m=-m,y=-y),d=i+b*s(x+w/2),p=f+b*o(x+w/2),g=i+b*s(x-w/2),v=f+b*o(x-w/2),t.beginPath(),t.moveTo(d-m,p-y),t.lineTo(i-m,f-y),t.lineTo(g-m,v-y),t.moveTo(i-m,f-y),t.lineTo(i+m,f+y),t.moveTo(i,f),t.stroke()}}function l(t){var e,n=[],a=r.parsePath(t.path);if(!Array.isArray(a)||0===a.length||"M"!==a[0][0]&&"m"!==a[0][0])return!1;for(var o=a.length,s=0;s=0&&n[t].splice(i,1),0===n[t].length&&delete n[t]}}},removeEvent:function(t){return"undefined"===typeof t?this._cfg._events={}:delete this._cfg._events[t],this},_getEvents:function(){return this._cfg._events||{}}}),t.exports=o},"51f5":function(t,e,n){var r=n("2b03"),i=n("badf"),a=n("4b17"),o=Math.max;function s(t,e,n){var s=null==t?0:t.length;if(!s)return-1;var u=null==n?0:a(n);return u<0&&(u=o(s+u,0)),r(t,i(e,3),u)}t.exports=s},5378:function(t,e){const n=800;class r{constructor(t){this.positions=t.positions,this.adjMatrix=t.adjMatrix,this.focusID=t.focusID,this.radii=t.radii,this.iterations=t.iterations||10,this.height=t.height||10,this.width=t.width||10,this.speed=t.speed||100,this.gravity=t.gravity||10,this.nodeSizeFunc=t.nodeSizeFunc,this.k=t.k||5,this.strictRadial=t.strictRadial,this.nodes=t.nodes}layout(){const t=this,e=t.positions,n=[],r=t.iterations,i=t.width/10;t.maxDisplace=i,t.disp=n;for(let a=0;a{n[e]={x:0,y:0}}),t.getRepulsion(),t.updatePositions();return e}getRepulsion(){const t=this,e=t.positions,n=t.nodes,r=t.disp,i=t.k,a=t.radii;e.forEach((o,s)=>{r[s]={x:0,y:0},e.forEach((e,u)=>{if(s===u)return;if(a[s]!==a[u])return;const c=o[0]-e[0],h=o[1]-e[1];let f=Math.sqrt(c*c+h*h);if(0===f&&(f=1),f{const r=e[n][0]-e[o][0],i=e[n][1]-e[o][1],a=Math.sqrt(r*r+i*i);let s=i/a,u=-r/a;const c=Math.sqrt(t.x*t.x+t.y*t.y);let h=Math.acos((s*t.x+u*t.y)/c);h>Math.PI/2&&(h-=Math.PI/2,s*=-1,u*=-1);const f=Math.cos(h)*c;t.x=s*f,t.y=u*f}),e.forEach((t,e)=>{r[e].dx*=i/n,r[e].dy*=i/n});const s=t.radii;e.forEach((u,c)=>{if(c===o)return;const h=Math.sqrt(r[c].x*r[c].x+r[c].y*r[c].y);if(h>0&&c!==o){const f=Math.min(t.maxDisplace*(i/n),h);if(u[0]+=r[c].x/h*f,u[1]+=r[c].y/h*f,a){let t=u[0]-e[o][0],n=u[1]-e[o][1];const r=Math.sqrt(t*t+n*n);t=t/r*s[c],n=n/r*s[c],u[0]=e[o][0]+t,u[1]=e[o][1]+n}}})}}t.exports=r},5492:function(t,e,n){var r=n("32b3"),i=n("d70d");function a(t,e){return i(t||[],e||[],r)}t.exports=a},"54eb":function(t,e,n){var r=n("8eeb"),i=n("32f4");function a(t,e){return r(t,i(t),e)}t.exports=a},"55a3":function(t,e){function n(t){return this.__data__.has(t)}t.exports=n},"576cf":function(t,e,n){const r=n("1bb5"),i=n("8d21"),a={source:"start",target:"end"},o="Node",s="Point",u="Anchor";class c extends i{getDefaultCfg(){return{type:"edge",sourceNode:null,targetNode:null,startPoint:null,endPoint:null,linkCenter:!1}}init(){super.init(),this.setSource(this.get("source")),this.setTarget(this.get("target"))}setSource(t){this._setEnd("source",t),this.set("source",t)}setTarget(t){this._setEnd("target",t),this.set("target",t)}getSource(){return this.get("source")}getTarget(){return this.get("target")}update(t){const e=this.get("model");r.mix(e,t),this.updateShape(),this.afterUpdate(),this.clearCache()}updatePosition(){}_setEnd(t,e){const n=a[t]+s,i=t+o,u=this.get(i);u&&u.removeEdge(this),r.isPlainObject(e)?(this.set(n,e),this.set(i,null)):(e.addEdge(this),this.set(i,e),this.set(n,null))}_getLinkPoint(t,e,n){const i=a[t]+s,c=t+o;let h=this.get(i);if(!h){const i=this.get(c),a=t+u,o=this._getPrePoint(t,n),s=e[a];r.isNil(s)||(h=i.getLinkPointByAnchor(s)),h=h||i.getLinkPoint(o),r.isNil(h.index)||this.set(t+"AnchorIndex",h.index)}return h}_getPrePoint(t,e){if(e&&e.length){const n="source"===t?0:e.length-1;return e[n]}const n="source"===t?"target":"source";return this._getEndPoint(n)}_getControlPointsByCenter(t){const e=this._getEndPoint("source"),n=this._getEndPoint("target"),r=this.get("shapeFactory");return r.getControlPoints(t.shape,{startPoint:e,endPoint:n})}_getEndPoint(t){const e=t+o,n=a[t]+s,r=this.get(e);return r?r.get("model"):this.get(n)}_getEndCenter(t){const e=t+o,n=a[t]+s,r=this.get(e);if(r){const t=r.getBBox();return{x:t.centerX,y:t.centerY}}return this.get(n)}getShapeCfg(t){const e=this,n=e.get("linkCenter"),r=super.getShapeCfg(t);if(n)r.startPoint=e._getEndCenter("source"),r.endPoint=e._getEndCenter("target");else{const n=r.controlPoints||e._getControlPointsByCenter(r);r.startPoint=e._getLinkPoint("source",t,n),r.endPoint=e._getLinkPoint("target",t,n)}return r.sourceNode=e.get("sourceNode"),r.targetNode=e.get("targetNode"),r}getModel(){const t=this.get("model"),e=r.mix({},t),n=this.get("source"+o),i=this.get("target"+o);return n?(e.source=n.get("id"),delete e["source"+o]):e.source=this.get("start"+s),i?(e.target=i.get("id"),delete e["target"+o]):e.target=this.get("end"+s),e}destroy(){const t=this.get("source"+o),e=this.get("target"+o);t&&!t.destroyed&&t.removeEdge(this),e&&!e.destroyed&&e.removeEdge(this),super.destroy()}}t.exports=c},"57a5":function(t,e,n){var r=n("91e9"),i=r(Object.keys,Object);t.exports=i},"57dc":function(t,e){function n(t,e){return t>e}t.exports=n},5830:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.sqrDist=e.dist=e.div=e.mul=e.sub=e.len=void 0,e.create=o,e.clone=s,e.fromValues=u,e.copy=c,e.set=h,e.add=f,e.subtract=l,e.multiply=d,e.divide=p,e.ceil=g,e.floor=v,e.min=m,e.max=y,e.round=x,e.scale=b,e.scaleAndAdd=w,e.distance=_,e.squaredDistance=M,e.length=S,e.squaredLength=k,e.negate=A,e.inverse=P,e.normalize=C,e.dot=E,e.cross=I,e.lerp=O,e.random=T,e.transformMat2=N,e.transformMat2d=j,e.transformMat3=B,e.transformMat4=L,e.rotate=D,e.angle=R,e.str=F,e.exactEquals=Y,e.equals=q;var r=n("8d60"),i=a(r);function a(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function o(){var t=new i.ARRAY_TYPE(2);return i.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0),t}function s(t){var e=new i.ARRAY_TYPE(2);return e[0]=t[0],e[1]=t[1],e}function u(t,e){var n=new i.ARRAY_TYPE(2);return n[0]=t,n[1]=e,n}function c(t,e){return t[0]=e[0],t[1]=e[1],t}function h(t,e,n){return t[0]=e,t[1]=n,t}function f(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function l(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function d(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t}function p(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t}function g(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function v(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function m(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function y(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}function x(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function b(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function w(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t}function _(t,e){var n=e[0]-t[0],r=e[1]-t[1];return Math.sqrt(n*n+r*r)}function M(t,e){var n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function S(t){var e=t[0],n=t[1];return Math.sqrt(e*e+n*n)}function k(t){var e=t[0],n=t[1];return e*e+n*n}function A(t,e){return t[0]=-e[0],t[1]=-e[1],t}function P(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function C(t,e){var n=e[0],r=e[1],i=n*n+r*r;return i>0&&(i=1/Math.sqrt(i),t[0]=e[0]*i,t[1]=e[1]*i),t}function E(t,e){return t[0]*e[0]+t[1]*e[1]}function I(t,e,n){var r=e[0]*n[1]-e[1]*n[0];return t[0]=t[1]=0,t[2]=r,t}function O(t,e,n,r){var i=e[0],a=e[1];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t}function T(t,e){e=e||1;var n=2*i.RANDOM()*Math.PI;return t[0]=Math.cos(n)*e,t[1]=Math.sin(n)*e,t}function N(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i,t[1]=n[1]*r+n[3]*i,t}function j(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i+n[4],t[1]=n[1]*r+n[3]*i+n[5],t}function B(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[3]*i+n[6],t[1]=n[1]*r+n[4]*i+n[7],t}function L(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[4]*i+n[12],t[1]=n[1]*r+n[5]*i+n[13],t}function D(t,e,n,r){var i=e[0]-n[0],a=e[1]-n[1],o=Math.sin(r),s=Math.cos(r);return t[0]=i*s-a*o+n[0],t[1]=i*o+a*s+n[1],t}function R(t,e){var n=t[0],r=t[1],i=e[0],a=e[1],o=n*n+r*r;o>0&&(o=1/Math.sqrt(o));var s=i*i+a*a;s>0&&(s=1/Math.sqrt(s));var u=(n*i+r*a)*o*s;return u>1?0:u<-1?Math.PI:Math.acos(u)}function F(t){return"vec2("+t[0]+", "+t[1]+")"}function Y(t,e){return t[0]===e[0]&&t[1]===e[1]}function q(t,e){var n=t[0],r=t[1],a=e[0],o=e[1];return Math.abs(n-a)<=i.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(r-o)<=i.EPSILON*Math.max(1,Math.abs(r),Math.abs(o))}e.len=S,e.sub=l,e.mul=d,e.div=p,e.dist=_,e.sqrDist=M,e.sqrLen=k,e.forEach=function(){var t=o();return function(e,n,r,i,a,o){var s=void 0,u=void 0;for(n||(n=2),r||(r=0),u=i?Math.min(i*n+r,e.length):e.length,s=r;s=0;i--){var a=t[i];if(a._cfg.visible&&a._cfg.capture&&(a.isGroup?r=a.getShape(e,n):a.isHit(e,n)&&(r=a)),r)break}return r}function f(t){for(var e=[],n=0;n=2)this.contain(t)&&t.remove(e);else{if(1===arguments.length){if(!r.isBoolean(t))return this.contain(t)&&t.remove(!0),this;e=t}0===arguments.length&&(e=!0),l.superclass.remove.call(this,e)}return this},add:function(t){var e=this,n=e.get("children");if(r.isArray(t))r.each(t,(function(t){var n=t.get("parent");n&&n.removeChild(t,!1),e._setCfgProperty(t)})),e._cfg.children=n.concat(t);else{var i=t,a=i.get("parent");a&&a.removeChild(i,!1),e._setCfgProperty(i),n.push(i)}return e},_setCfgProperty:function(t){var e=this._cfg;t.set("parent",this),t.set("canvas",e.canvas),e.timeline&&t.set("timeline",e.timeline)},contain:function(t){var e=this.get("children");return e.indexOf(t)>-1},getChildByIndex:function(t){var e=this.get("children");return e[t]},getFirst:function(){return this.getChildByIndex(0)},getLast:function(){var t=this.get("children").length-1;return this.getChildByIndex(t)},getBBox:function(){var t=this,e=1/0,n=-1/0,i=1/0,a=-1/0,o=t.get("children");o.length>0?r.each(o,(function(t){if(t.get("visible")){if(t.isGroup&&0===t.get("children").length)return;var r=t.getBBox();if(!r)return!0;var o=[r.minX,r.minY,1],s=[r.minX,r.maxY,1],u=[r.maxX,r.minY,1],c=[r.maxX,r.maxY,1];t.apply(o),t.apply(s),t.apply(u),t.apply(c);var h=Math.min(o[0],s[0],u[0],c[0]),f=Math.max(o[0],s[0],u[0],c[0]),l=Math.min(o[1],s[1],u[1],c[1]),d=Math.max(o[1],s[1],u[1],c[1]);hn&&(n=f),la&&(a=d)}})):(e=0,n=0,i=0,a=0);var s={minX:e,minY:i,maxX:n,maxY:a};return s.x=s.minX,s.y=s.minY,s.width=s.maxX-s.minX,s.height=s.maxY-s.minY,s},getCount:function(){return this.get("children").length},sort:function(){var t=this.get("children");return r.each(t,(function(t,e){return t[s]=e,t})),t.sort(c((function(t,e){return t.get("zIndex")-e.get("zIndex")}))),this},findById:function(t){return this.find((function(e){return e.get("id")===t}))},find:function(t){if(r.isString(t))return this.findById(t);var e=this.get("children"),n=null;return r.each(e,(function(e){if(t(e)?n=e:e.find&&(n=e.find(t)),n)return!1})),n},findAll:function(t){var e=this.get("children"),n=[],i=[];return r.each(e,(function(e){t(e)&&n.push(e),e.findAllBy&&(i=e.findAllBy(t),n=n.concat(i))})),n},findBy:function(t){var e=this.get("children"),n=null;return r.each(e,(function(e){if(t(e)?n=e:e.findBy&&(n=e.findBy(t)),n)return!1})),n},findAllBy:function(t){var e=this.get("children"),n=[],i=[];return r.each(e,(function(e){t(e)&&n.push(e),e.findAllBy&&(i=e.findAllBy(t),n=n.concat(i))})),n},getShape:function(t,e){var n,r=this,i=r._attrs.clip,a=r._cfg.children;if(i){var o=[t,e,1];i.invert(o,r.get("canvas")),i.isPointInPath(o[0],o[1])&&(n=h(a,t,e))}else n=h(a,t,e);return n},clearTotalMatrix:function(){var t=this.get("totalMatrix");if(t){this.setSilent("totalMatrix",null);for(var e=this._cfg.children,n=0;n=0;n--)e[n].remove(!0,t);return this._cfg.children=[],this}},destroy:function(){this.get("destroyed")||(this.clear(),l.superclass.destroy.call(this))},clone:function(){var t=this,e=t._cfg.children,n=t._attrs,i={};r.each(n,(function(t,e){i[e]="matrix"===e?f(n[e]):n[e]}));var a=new l({attrs:i,canvas:t.get("canvas")});return r.each(e,(function(t){a.add(t.clone())})),r.each(u,(function(e){a._cfg[e]=t._cfg[e]})),a}}),t.exports=l},"58f7":function(t,e){function n(t,e,n,r,i){return i(t,(function(t,i,a){n=r?(r=!1,t):e(n,t,i,a)})),n}t.exports=n},"594f":function(t,e,n){const r=n("1bb5"),i=Math.abs,a=10,o=document.body,s=[16,17,18];t.exports={getDefaultCfg(){return{direction:"both"}},getEvents(){return{"canvas:mousedown":"onMouseDown","canvas:mousemove":"onMouseMove","canvas:mouseup":"onMouseUp","canvas:click":"onMouseUp","canvas:mouseleave":"onOutOfRange",keyup:"onKeyUp",keydown:"onKeyDown"}},updateViewport(t){const e=this.origin,n=+t.clientX,r=+t.clientY;if(isNaN(n)||isNaN(r))return;let i=n-e.x,a=r-e.y;"x"===this.get("direction")?a=0:"y"===this.get("direction")&&(i=0),this.origin={x:n,y:r},this.graph.translate(i,a),this.graph.paint()},onMouseDown(t){this.keydown||(this.origin={x:t.clientX,y:t.clientY},this.dragging=!1)},onMouseMove(t){if(this.keydown)return;t=r.cloneEvent(t);const e=this.graph;if(this.origin){if(this.origin&&!this.dragging){if(i(this.origin.x-t.clientX)+i(this.origin.y-t.clientY){r.target!==n&&e.onMouseUp(t)};this.fn=r,o.addEventListener("mouseup",r,!1)}},onKeyDown(t){const e=t.keyCode||t.which;s.indexOf(e)>-1?this.keydown=!0:this.keydown=!1},onKeyUp(){this.keydown=!1}}},"59ca":function(t,e,n){const r=n("1bb5"),i=n("9ceb");t.exports=r.mix({getDefaultCfg(){return{item:"node",formatText(t){return t.label}}},getEvents(){return{"node:mouseenter":"onMouseEnter","node:mouseleave":"onMouseLeave","node:mousemove":"onMouseMove"}}},i)},"5a21":function(t,e,n){var r=n("1c6a"),i=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,a=function(){function t(t){var e=document.createElementNS("http://www.w3.org/2000/svg","pattern");e.setAttribute("patternUnits","userSpaceOnUse");var n=document.createElementNS("http://www.w3.org/2000/svg","image");e.appendChild(n);var a=r.uniqueId("pattern_");e.id=a,this.el=e,this.id=a,this.cfg=t;var o=i.exec(t),s=o[2];n.setAttribute("href",s);var u=new Image;function c(){e.setAttribute("width",u.width),e.setAttribute("height",u.height)}return s.match(/^data:/i)||(u.crossOrigin="Anonymous"),u.src=s,u.complete?c():(u.onload=c,u.src=u.src),this}var e=t.prototype;return e.match=function(t,e){return this.cfg===e},t}();t.exports=a},"5a3a":function(t,e,n){var r=n("1cba"),i=r();t.exports=i},"5b01":function(t,e,n){var r=n("8eeb"),i=n("ec69");function a(t,e){return t&&r(e,i(e),t)}t.exports=a},"5b70":function(t,e,n){const r=n("e34f"),i=n("4651"),a=n("3a21");i.registerLayout("dagre",{getDefaultCfg(){return{rankdir:"TB",align:void 0,nodeSize:void 0,nodesepFunc(){return 50},ranksepFunc(){return 50},nodesep:50,ranksep:50,controlPoints:!0}},execute(){const t=this,e=t.nodes,n=t.edges,i=new r.graphlib.Graph,o=t.nodeSize;let s;s=o?a(o)?()=>o:()=>[o,o]:t=>t.size?a(t.size)?t.size:[t.size,t.size]:[40,40];let u=t.nodesep;t.nodesepFunc&&(u=t.nodesepFunc);let c=t.ranksep;t.ranksepFunc&&(c=t.ranksepFunc);const h=t.rankdir;let f;"LR"!==h&&"RL"!==h||(u=t.ranksep,t.ranksepFunc&&(u=t.ranksepFunc),c=t.nodesep,t.nodesepFunc&&(c=t.nodesepFunc)),i.setDefaultEdgeLabel((function(){return{}})),i.setGraph(t),e.forEach(t=>{const e=s(t),n=u(t),r=c(t),a=e[0]+2*n,o=e[1]+2*r;i.setNode(t.id,{width:a,height:o})}),n.forEach(t=>{i.setEdge(t.source,t.target)}),r.layout(i),i.nodes().forEach((t,n)=>{f=i.node(t),e[n].x=f.x,e[n].y=f.y}),i.edges().forEach((e,r)=>{f=i.edge(e),n[r].startPoint=f.points[0],n[r].endPoint=f.points[f.points.length-1],t.controlPoints&&(n[r].controlPoints=f.points.slice(1,f.points.length-1))})}})},"5c69":function(t,e,n){var r=n("087d"),i=n("0621");function a(t,e,n,o,s){var u=-1,c=t.length;n||(n=i),s||(s=[]);while(++u0&&n(h)?e>1?a(h,e-1,n,o,s):r(s,h):o||(s[s.length]=h)}return s}t.exports=a},"5ca00":function(t,e,n){var r=n("badf"),i=n("30c9"),a=n("ec69");function o(t){return function(e,n,o){var s=Object(e);if(!i(e)){var u=r(n,3);e=a(e),n=function(t){return u(s[t],t,s)}}var c=t(e,n,o);return c>-1?s[u?e[c]:c]:void 0}}t.exports=o},"5cce":function(t,e,n){t.exports={painter:n("fdbc")}},"5d89":function(t,e,n){var r=n("f8af");function i(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}t.exports=i},"5d9e":function(t,e,n){var r=n("00d0"),i=function(t){return r(t,"Number")};t.exports=i},"5e2e":function(t,e,n){var r=n("28c9"),i=n("69d5"),a=n("b4c0"),o=n("fba5"),s=n("67ca");function u(t){var e=-1,n=null==t?0:t.length;this.clear();while(++e0){if(n=u.removeMin(),r.has(s,n))o.setEdge(n,s[n]);else{if(h)throw new Error("Input graph is not connected: "+t);h=!0}t.nodeEdges(n).forEach(c)}return o}t.exports=o},"642a":function(t,e,n){var r=n("966f"),i=n("3bb4"),a=n("20ec");function o(t){var e=i(t);return 1==e.length&&e[0][2]?a(e[0][0],e[0][1]):function(n){return n===t||r(n,t,e)}}t.exports=o},6560:function(t,e,n){var r=n("1c6a");function i(t,e,n,r){return{x:Math.cos(r)*n+t,y:Math.sin(r)*n+e}}function a(t,e,n,r){var i,a;return r?tn&&(i=2*Math.PI-t+e,a=t-n):(i=t-e,a=n-t),i>a?n:e}function o(t,e,n,i){var o=0;return n-e>=2*Math.PI&&(o=2*Math.PI),e=r.mod(e,2*Math.PI),n=r.mod(n,2*Math.PI)+o,t=r.mod(t,2*Math.PI),i?e>=n?t>n&&tn?t:a(t,e,n):e<=n?ee||tt.x&&(g=t.x),vt.y&&(m=t.y),y'})),n}function u(t,e){var n,a,o=i.exec(t),u=r.mod(r.toRadian(parseFloat(o[1])),2*Math.PI),c=o[2];u>=0&&u<.5*Math.PI?(n={x:0,y:0},a={x:1,y:1}):.5*Math.PI<=u&&u{r[e.get(t.source)]+=1,r[e.get(t.target)]+=1}),r}function a(t,e,n,r){t.forEach((e,n)=>{t[n].children=[],t[n].parent=[]}),r?e.forEach(e=>{const r=n.get(e.source),i=n.get(e.target);t[r].children.push(t[i]),t[i].parent.push(t[r])}):e.forEach(e=>{const r=n.get(e.source),i=n.get(e.target);t[r].children.push(t[i]),t[i].children.push(t[r])})}function o(t,e,n){const r=n.length;for(let i=0;ie.degree?1:0}r.registerLayout("circular",{getDefaultCfg(){return{center:[0,0],radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1}},execute(){const t=this,e=t.nodes,n=t.edges,r=e.length,a=t.center;if(0===r)return;if(1===r)return e[0].x=a[0],void(e[0].y=a[1]);let o=t.radius,s=t.startRadius,u=t.endRadius;const c=t.divisions,h=t.startAngle,f=t.endAngle,l=(f-h)/r,d=new Map;e.forEach((t,e)=>{d.set(t.id,e)}),t.nodeMap=d;const p=i(e.length,d,n);t.degrees=p;let g=t.width;g||"undefined"===typeof window||(g=window.innerWidth);let v=t.height;v||"undefined"===typeof v||(v=window.innerHeight),o||s||u?!s&&u?s=u:s&&!u&&(u=s):o=v>g?g/2:v/2;const m=t.angleRatio,y=l*m;t.astep=y;const x=t.ordering;let b=[];b="topology"===x?t.topologyOrdering():"degree"===x?t.degreeOrdering():e;const w=t.clockwise,_=Math.ceil(r/c);for(let i=0;i{if(0!==a)if(a!==c-1&&e[a]===e[a+1]&&!o(s[h],t,n)||!0===u[a]){const t=s[h].children;let n=!1;for(let c=0;c{t.degree=r[e],n.push(t)}),n.sort(s),n}})},"72fb":function(t,e,n){var r=n("d285"),i=n("3a21"),a=function(t,e){if(t){var n=void 0;if(i(t)){for(var a=0,o=t.length;au.lim&&(c=u,h=!0);var f=r.filter(e.edges(),(function(e){return h===w(t,t.node(e.v),c)&&h!==w(t,t.node(e.w),c)}));return r.minBy(f,(function(t){return a(e,t)}))}function y(t,e,n,r){var i=n.v,a=n.w;t.removeEdge(i,a),t.setEdge(r.v,r.w,{}),p(t),f(t,e),x(t,e)}function x(t,e){var n=r.find(t.nodes(),(function(t){return!e.node(t).parent})),i=s(t,n);i=i.slice(1),r.forEach(i,(function(n){var r=t.node(n).parent,i=e.edge(n,r),a=!1;i||(i=e.edge(r,n),a=!0),e.node(n).rank=e.node(r).rank+(a?i.minlen:-i.minlen)}))}function b(t,e,n){return t.hasEdge(e,n)}function w(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}t.exports=h,h.initLowLimValues=p,h.initCutValues=f,h.calcCutValue=d,h.leaveEdge=v,h.enterEdge=m,h.exchangeEdges=y},"74f4":function(t,e,n){"use strict";n.d(e,"b",(function(){return p})),n.d(e,"a",(function(){return v})),n.d(e,"c",(function(){return m})),n.d(e,"d",(function(){return y}));var r,i,a=0,o=0,s=0,u=1e3,c=0,h=0,f=0,l="object"===typeof performance&&performance.now?performance:Date,d="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function p(){return h||(d(g),h=l.now()+f)}function g(){h=0}function v(){this._call=this._time=this._next=null}function m(t,e,n){var r=new v;return r.restart(t,e,n),r}function y(){p(),++a;var t,e=r;while(e)(t=h-e._time)>=0&&e._call.call(null,t),e=e._next;--a}function x(){h=(c=l.now())+f,a=o=0;try{y()}finally{a=0,w(),h=0}}function b(){var t=l.now(),e=t-c;e>u&&(f-=e,c=t)}function w(){var t,e,n=r,a=1/0;while(n)n._call?(a>n._time&&(a=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:r=e);i=t,_(a)}function _(t){if(!a){o&&(o=clearTimeout(o));var e=t-h;e>24?(t<1/0&&(o=setTimeout(x,t-l.now()-f)),s&&(s=clearInterval(s))):(s||(c=l.now(),s=setInterval(b,u)),a=1,d(x))}}v.prototype=m.prototype={constructor:v,restart:function(t,e,n){if("function"!==typeof t)throw new TypeError("callback is not a function");n=(null==n?p():+n)+(null==e?0:+e),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=t,this._time=n,_()},stop:function(){this._call&&(this._call=null,this._time=1/0,_())}}},"750a":function(t,e,n){var r=n("c869"),i=n("bcdf"),a=n("ac41"),o=1/0,s=r&&1/a(new r([,-0]))[1]==o?function(t){return new r(t)}:i;t.exports=s},7514:function(t,e,n){"use strict";var r=n("5ca1"),i=n("0a49")(5),a="find",o=!0;a in[]&&Array(1)[a]((function(){o=!1})),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")(a)},7530:function(t,e,n){var r=n("1a8c"),i=Object.create,a=function(){function t(){}return function(e){if(!r(e))return{};if(i)return i(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=a},7582:function(t,e,n){const{cloneDeep:r,groupBy:i,merge:a}=n("2ef0");t.exports={groupMapNodes:{},nodeArr:[],flatToTree(t,e="id",n="parentId"){const r="children",i=[],a=[],{groups:o}=t;return o.forEach(t=>{i[t[e]]=t}),o.forEach(t=>{const e=i[t[n]];e?(!e[r]&&(e[r]=[]),e[r].push(t)):a.push(t)}),a},addNodesToParentNode(t,e){const n=t=>{if(t.forEach(t=>{t.children?(this.nodeArr.push({id:t.id,parentId:t.parentId}),this.addNodesToParentNode(t.children,e)):this.nodeArr.push({id:t.id,parentId:t.parentId})}),this.nodeArr.length>0){const t=e=>{if(0===e.length)return;const n=e.shift(),i=r(e);this.groupMapNodes[n.id]=i,t(e)};t(this.nodeArr)}this.nodeArr.length=0};return n(t),this.groupMapNodes},getAllNodeInGroups(t){const e=i(t.groups,"id"),n=i(t.groups,"parentId"),r={};for(const i in n){if(!i)continue;const t=n[i],a=e[i];if(a&&t){const e=[...t,...a];r[i]=e}else t&&(r[i]=t)}const o=a({},e,r),s={};for(const i in o){if(!i||"undefined"===i)continue;const t=o[i].map(t=>t.id);s[i]=t}const u={};for(const i in s){if(!i||"undefined"===i)continue;const e=s[i],n=[];for(const t of e){const e=o[t].map(t=>t.id);n.push(...e)}const r=t.nodes.filter(t=>n.indexOf(t.groupId)>-1).map(t=>t.id);u[i]=r}return u}}},"758e":function(t,e){t.exports=function(t,e){if(t)for(var n in e)e.hasOwnProperty(n)&&(t.style[n]=e[n]);return t}},"76dd":function(t,e,n){var r=n("ce86");function i(t){return null==t?"":r(t)}t.exports=i},"76e9":function(t,e,n){var r=n("ffd6");function i(t,e,n){var i=-1,a=t.length;while(++i1){var i=e[0].charAt(0);e.splice(1,0,e[0].substr(1)),e[0]=i}r.each(e,(function(t,n){isNaN(t)||(e[n]=+t)})),t[n]=e})),t):void 0}}},"78ea":function(t,e,n){var r=n("1c6a"),i=n("02db"),a=n("ad2d"),o=n("cba2"),s=n("fd07"),u=function(t){this._cfg={zIndex:0,capture:!0,visible:!0,destroyed:!1},r.assign(this._cfg,this.getDefaultCfg(),t),this.initAttrs(this._cfg.attrs),this._cfg.attrs={},this.initTransform(),this.init()};u.CFG={id:null,zIndex:0,canvas:null,parent:null,capture:!0,context:null,visible:!0,destroyed:!1},r.augment(u,i,a,s,o,{init:function(){this.setSilent("animable",!0),this.setSilent("animating",!1)},getParent:function(){return this._cfg.parent},getDefaultCfg:function(){return{}},set:function(t,e){return"zIndex"===t&&this._beforeSetZIndex&&this._beforeSetZIndex(e),"loading"===t&&this._beforeSetLoading&&this._beforeSetLoading(e),this._cfg[t]=e,this},setSilent:function(t,e){this._cfg[t]=e},get:function(t){return this._cfg[t]},show:function(){return this._cfg.visible=!0,this},hide:function(){return this._cfg.visible=!1,this},remove:function(t,e){var n=this._cfg,i=n.parent,a=n.el;return i&&r.remove(i.get("children"),this),a&&(e?i&&i._cfg.tobeRemoved.push(a):a.parentNode.removeChild(a)),(t||void 0===t)&&this.destroy(),this},destroy:function(){var t=this.get("destroyed");t||(this._attrs=null,this.removeEvent(),this._cfg={destroyed:!0})},toFront:function(){var t=this._cfg,e=t.parent;if(e){var n=e._cfg.children,r=t.el,i=n.indexOf(this);n.splice(i,1),n.push(this),r&&(r.parentNode.removeChild(r),t.el=null)}},toBack:function(){var t=this._cfg,e=t.parent;if(e){var n=e._cfg.children,r=t.el,i=n.indexOf(this);if(n.splice(i,1),n.unshift(this),r){var a=r.parentNode;a.removeChild(r),a.insertBefore(r,a.firstChild)}}},_beforeSetZIndex:function(t){var e=this._cfg.parent;this._cfg.zIndex=t,r.isNil(e)||e.sort();var n=this._cfg.el;if(n){var i=e._cfg.children,a=i.indexOf(this),o=n.parentNode;o.removeChild(n),a===i.length-1?o.appendChild(n):o.insertBefore(n,o.childNodes[a])}return t},_setAttrs:function(t){return this.attr(t),t},setZIndex:function(t){return this._cfg.zIndex=t,this._beforeSetZIndex(t)},clone:function(){return r.clone(this)},getBBox:function(){}}),t.exports=u},7948:function(t,e){function n(t,e){var n=-1,r=null==t?0:t.length,i=Array(r);while(++n{const e=t.get("id");return o===e});0===s.length?this.target=e:a.length>1?a.forEach(t=>{const e=t.hasLocked();e||this.targets.push(t)}):this.targets.push(e),this.origin={x:t.x,y:t.y},this.point={},this.originPoint={}},onDrag(t){if(!this.origin)return;if(!this.get("shouldUpdate").call(this,t))return;const e=this.graph,n=e.get("autoPaint");e.setAutoPaint(!1),this.targets.length>0?this.enableDelegate?this._updateDelegate(t):this.targets.forEach(e=>{this._update(e,t,this.enableDelegate)}):this._update(this.target,t,this.enableDelegate),e.paint(),e.setAutoPaint(n)},onDragEnd(t){if(!this.origin||!this.shouldEnd.call(this,t))return;const e=this.graph,n=e.get("autoPaint");if(e.setAutoPaint(!1),this.shape&&(this.shape.remove(),this.shape=null),this.target){const t=this.target.get("delegateShape");t&&(t.remove(),this.target.set("delegateShape",null))}this.targets.length>0?this.targets.forEach(e=>this._update(e,t)):this.target&&this._update(this.target,t),this.point={},this.origin=null,this.originPoint={},this.targets.length=0,this.target=null;const r=this.fn;r&&(o.removeEventListener("mouseup",r,!1),this.fn=null),e.paint(),e.setAutoPaint(n)},onOutOfRange(t){const e=this;if(this.origin){const n=e.graph.get("canvas").get("el"),r=r=>{r.target!==n&&e.onDragEnd(t)};this.fn=r,o.addEventListener("mouseup",r,!1)}},_update(t,e,n){const r=this.origin,i=t.get("model"),a=t.get("id");this.point[a]||(this.point[a]={x:i.x,y:i.y});const o=e.x-r.x+this.point[a].x,s=e.y-r.y+this.point[a].y;if(n)return void this._updateDelegate(e,o,s);const u={x:o,y:s};this.get("updateEdge")?this.graph.updateItem(t,u):t.updatePosition(u)},_updateDelegate(t,e,n){const r=t.item.get("keyShape").getBBox();if(this.shape)if(this.targets.length>0){const e=t.x-this.origin.x+this.originPoint.minX,n=t.y-this.origin.y+this.originPoint.minY;this.shape.attr({x:e,y:n})}else this.target&&this.shape.attr({x:e+r.x,y:n+r.y});else{const t=this.graph.get("group"),o=i({},a,this.delegateStyle);if(this.targets.length>0){const{x:e,y:n,width:r,height:i,minX:a,minY:s}=this.calculationGroupPosition();this.originPoint={x:e,y:n,width:r,height:i,minX:a,minY:s},this.shape=t.addShape("rect",{attrs:{width:r,height:i,x:e,y:n,...o}})}else this.target&&(this.shape=t.addShape("rect",{attrs:{width:r.width,height:r.height,x:e+r.x,y:n+r.y,...o}}),this.target.set("delegateShape",this.shape));this.shape.set("capture",!1)}},calculationGroupPosition(){const t=this.graph,e=t.findAllByState("node","selected");let n=1/0,i=-1/0,a=1/0,o=-1/0;for(const f of e){const e=r(f)?t.findById(f):f,s=e.getBBox(),{minX:u,minY:c,maxX:h,maxY:l}=s;ui&&(i=h),l>o&&(o=l)}const s=Math.floor(n)-20,u=Math.floor(a)+10,c=Math.ceil(i)-s,h=Math.ceil(o)-u;return{x:s,y:u,width:c,height:h,minX:n,minY:a}}}},"7d1f":function(t,e,n){var r=n("087d"),i=n("6747");function a(t,e,n){var a=e(t);return i(t)?a:r(a,n(t))}t.exports=a},"7dec":function(t,e,n){var r=n("1c6a"),i=r.vec2;function a(t,e,n,r,i){var a=1-i;return a*a*(a*r+3*i*n)+i*i*(i*t+3*a*e)}function o(t,e,n,r,i){var a=1-i;return 3*(((e-t)*a+2*(n-e)*i)*a+(r-n)*i*i)}function s(t,e,n,r,o,s,u,c,h,f,l){var d,p,g,v,m,y,x,b,w=.005,_=1/0,M=1e-4,S=[h,f];for(p=0;p<1;p+=.05)g=[a(t,n,o,u,p),a(e,r,s,c,p)],v=i.squaredDistance(S,g),v<_&&(d=p,_=v);_=1/0;for(var k=0;k<32;k++){if(w=0&&v<_?(d=x,_=v):(y=[a(t,n,o,u,b),a(e,r,s,c,b)],m=i.squaredDistance(S,y),b<=1&&m<_?(d=b,_=m):w*=.5)}return l&&(l.x=a(t,n,o,u,d),l.y=a(e,r,s,c,d)),Math.sqrt(_)}function u(t,e,n,i){var a,o,s,u=3*t-9*e+9*n-3*i,c=6*e-12*n+6*i,h=3*n-3*i,f=[];if(r.isNumberEqual(u,0))r.isNumberEqual(c,0)||(a=-h/c,a>=0&&a<=1&&f.push(a));else{var l=c*c-4*u*h;r.isNumberEqual(l,0)?f.push(-c/(2*u)):l>0&&(s=Math.sqrt(l),a=(-c+s)/(2*u),o=(-c-s)/(2*u),a>=0&&a<=1&&f.push(a),o>=0&&o<=1&&f.push(o))}return f}function c(t,e,n,r,i){var a=-3*e+9*n-9*r+3*i,o=t*a+6*e-12*n+6*r;return t*o-3*e+3*n}function h(t,e,n,i,a,o,s,u,h){r.isNil(h)&&(h=1),h=h>1?1:h<0?0:h;for(var f=h/2,l=12,d=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],p=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],g=0,v=0;v{e[n].x=t[0]+r[0],e[n].y=t[1]+r[1]})},runMDS(){const t=this,e=2,n=t.scaledDistances,r=a.mul(-.5,a.pow(n,2));function i(t){return a.div(a.add.apply(null,t),t.length)}const o=i(r),s=i(a.transpose(r)),u=i(o);for(let a=0;a{t.forEach(t=>{t!==1/0&&e{n.forEach((n,i)=>{n===1/0&&(t[r][i]=e)})})}})},"82bd":function(t,e){t.exports=function(t){var e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(t){return setTimeout(t,16)};return e(t)}},"830e":function(t,e,n){var r=n("5830"),i=n("51207");r.angle=function(t,e){var n=r.dot(t,e)/(r.length(t)*r.length(e));return Math.acos(i(n,-1,1))},r.direction=function(t,e){return t[0]*e[1]-e[0]*t[1]},r.angleTo=function(t,e,n){var i=r.angle(t,e),a=r.direction(t,e)>=0;return n?a?2*Math.PI-i:i:a?i:2*Math.PI-i},r.vertical=function(t,e,n){return n?(t[0]=e[1],t[1]=-1*e[0]):(t[0]=-1*e[1],t[1]=e[0]),t},t.exports=r},8327:function(t,e,n){var r=n("1c6a"),i=n("78af"),a=i.parseRadius,o=n("188c"),s=n("bfa1"),u={rect:"path",circle:"circle",line:"line",path:"path",marker:"path",text:"text",polygon:"polygon",image:"image",ellipse:"ellipse",dom:"foreignObject",fan:"path",group:"g"},c=.3,h={opacity:"opacity",fillStyle:"fill",strokeOpacity:"stroke-opacity",fillOpacity:"fill-opacity",strokeStyle:"stroke",x:"x",y:"y",r:"r",rx:"rx",ry:"ry",width:"width",height:"height",x1:"x1",x2:"x2",y1:"y1",y2:"y2",lineCap:"stroke-linecap",lineJoin:"stroke-linejoin",lineWidth:"stroke-width",lineDash:"stroke-dasharray",lineDashOffset:"stroke-dashoffset",miterLimit:"stroke-miterlimit",font:"font",fontSize:"font-size",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",fontFamily:"font-family",startArrow:"marker-start",endArrow:"marker-end",path:"d",class:"class",id:"id",style:"style",preserveAspectRatio:"preserveAspectRatio"},f={top:"before-edge",middle:"central",bottom:"after-edge",alphabetic:"baseline",hanging:"hanging"},l={left:"left",start:"left",center:"middle",right:"end",end:"end"},d=function(){function t(t){if(!t)return null;var e=r.uniqueId("canvas_"),n=r.createDom('');return t.appendChild(n),this.type="svg",this.canvas=n,this.context=new s(n),this.toDraw=!1,this}var e=t.prototype;return e.draw=function(t){var e=this;function n(){e.animateHandler=r.requestAnimationFrame((function(){e.animateHandler=void 0,e.toDraw&&n()}));try{e._drawChildren(t)}catch(i){console.warn("error in draw canvas, detail as:"),console.warn(i)}finally{e.toDraw=!1}}e.animateHandler?e.toDraw=!0:n()},e.drawSync=function(t){this._drawChildren(t)},e._drawGroup=function(t,e){var n=t._cfg;n.removed||n.destroyed||(n.tobeRemoved&&(r.each(n.tobeRemoved,(function(t){t.parentNode&&t.parentNode.removeChild(t)})),n.tobeRemoved=[]),this._drawShape(t,e),n.children&&n.children.length>0&&this._drawChildren(t))},e._drawChildren=function(t){var e,n=this,r=t._cfg.children;if(r)for(var i=0;is?1:0,l=Math.abs(u-s)>Math.PI?1:0,d=n.rs,p=n.re,g=e(s,n.rs,a),v=e(u,n.rs,a);n.rs>0?(o.push("M "+h.x+","+h.y),o.push("L "+v.x+","+v.y),o.push("A "+d+","+d+",0,"+l+","+(1===f?0:1)+","+g.x+","+g.y),o.push("L "+c.x+" "+c.y)):(o.push("M "+a.x+","+a.y),o.push("L "+c.x+","+c.y)),o.push("A "+p+","+p+",0,"+l+","+f+","+h.x+","+h.y),n.rs>0?o.push("L "+v.x+","+v.y):o.push("Z"),i.el.setAttribute("d",o.join(" "))},e._updateText=function(t){var e=this,n=t._attrs,r=t._cfg.attrs,i=t._cfg.el;for(var a in this._setFont(t),n)if(n[a]!==r[a]){if("text"===a){e._setText(t,""+n[a]);continue}if("fillStyle"===a||"strokeStyle"===a){this._setColor(t,a,n[a]);continue}if("matrix"===a){this._setTransform(t);continue}h[a]&&i.setAttribute(h[a],n[a])}t._cfg.attrs=Object.assign({},t._attrs),t._cfg.hasUpdate=!1},e._setFont=function(t){var e=t.get("el"),n=t._attrs,r=n.fontSize;e.setAttribute("alignment-baseline",f[n.textBaseline]||"baseline"),e.setAttribute("text-anchor",l[n.textAlign]||"left"),r&&+r<12&&(n.matrix=[1,0,0,0,1,0,0,0,1],t.transform([["t",-n.x,-n.y],["s",+r/12,+r/12],["t",n.x,n.y]]))},e._setText=function(t,e){var n=t._cfg.el,i=t._attrs.textBaseline||"bottom";if(e)if(~e.indexOf("\n")){var a=t._attrs.x,o=e.split("\n"),s=o.length-1,u="";r.each(o,(function(t,e){0===e?"alphabetic"===i?u+=''+t+"":"top"===i?u+=''+t+"":"middle"===i?u+=''+t+"":"bottom"===i?u+=''+t+"":"hanging"===i&&(u+=''+t+""):u+=''+t+""})),n.innerHTML=u}else n.innerHTML=e;else n.innerHTML=""},e._setClip=function(t,e){var n=t._cfg.el;if(e)if(n.hasAttribute("clip-path"))e._cfg.hasUpdate&&this._updateShape(e);else{this._createDom(e),this._updateShape(e);var r=this.context.addClip(e);n.setAttribute("clip-path","url(#"+r+")")}else n.removeAttribute("clip-path")},e._setColor=function(t,e,n){var r=t._cfg.el,i=this.context;if(n)if(n=n.trim(),/^[r,R,L,l]{1}[\s]*\(/.test(n)){var a=i.find("gradient",n);a||(a=i.addGradient(n)),r.setAttribute(h[e],"url(#"+a+")")}else if(/^[p,P]{1}[\s]*\(/.test(n)){var o=i.find("pattern",n);o||(o=i.addPattern(n)),r.setAttribute(h[e],"url(#"+o+")")}else r.setAttribute(h[e],n);else r.setAttribute(h[e],"none")},e._setShadow=function(t){var e=t._cfg.el,n=t._attrs,r={dx:n.shadowOffsetX,dy:n.shadowOffsetY,blur:n.shadowBlur,color:n.shadowColor};if(r.dx||r.dy||r.blur||r.color){var i=this.context.find("filter",r);i||(i=this.context.addShadow(r,this)),e.setAttribute("filter","url(#"+i+")")}else e.removeAttribute("filter")},t}();t.exports=d},8563:function(t,e,n){var r=n("1c6a"),i=n("adff"),a=n("6560"),o=n("5134");function s(t,e,n){return t+e*Math.cos(n)}function u(t,e,n){return t+e*Math.sin(n)}var c=function t(e){t.superclass.constructor.call(this,e)};c.ATTRS={x:0,y:0,r:0,startAngle:0,endAngle:0,clockwise:!1,lineWidth:1,startArrow:!1,endArrow:!1},r.extend(c,i),r.augment(c,{canStroke:!0,type:"arc",getDefaultAttrs:function(){return{x:0,y:0,r:0,startAngle:0,endAngle:0,clockwise:!1,lineWidth:1,startArrow:!1,endArrow:!1}},calculateBox:function(){var t=this._attrs,e=t.x,n=t.y,r=t.r,i=t.startAngle,o=t.endAngle,s=t.clockwise,u=this.getHitLineWidth(),c=u/2,h=a.box(e,n,r,i,o,s);return h.minX-=c,h.minY-=c,h.maxX+=c,h.maxY+=c,h},getStartTangent:function(){var t=this._attrs,e=t.x,n=t.y,r=t.startAngle,i=t.r,a=t.clockwise,o=Math.PI/180;a&&(o*=-1);var c=[],h=s(e,i,r+o),f=u(n,i,r+o),l=s(e,i,r),d=u(n,i,r);return c.push([h,f]),c.push([l,d]),c},getEndTangent:function(){var t=this._attrs,e=t.x,n=t.y,r=t.endAngle,i=t.r,a=t.clockwise,o=Math.PI/180,c=[];a&&(o*=-1);var h=s(e,i,r+o),f=u(n,i,r+o),l=s(e,i,r),d=u(n,i,r);return c.push([l,d]),c.push([h,f]),c},createPath:function(t){var e=this._attrs,n=e.x,r=e.y,i=e.r,a=e.startAngle,o=e.endAngle,s=e.clockwise;t=t||self.get("context"),t.beginPath(),t.arc(n,r,i,a,o,s)},afterPath:function(t){var e=this._attrs;if(t=t||this.get("context"),e.startArrow){var n=this.getStartTangent();o.addStartArrow(t,e,n[0][0],n[0][1],n[1][0],n[1][1])}if(e.endArrow){var r=this.getEndTangent();o.addEndArrow(t,e,r[0][0],r[0][1],r[1][0],r[1][1])}}}),t.exports=c},"85e3":function(t,e){function n(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}t.exports=n},8604:function(t,e,n){var r=n("26e8"),i=n("e2c0");function a(t,e){return null!=t&&i(t,e,r)}t.exports=a},"872a":function(t,e,n){var r=n("3b4a");function i(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}t.exports=i},8817:function(t,e,n){var r=n("6f9c"),i=n("17d5").Graph;function a(t,e,n){var a=o(t),s=new i({compound:!0}).setGraph({root:a}).setDefaultNodeLabel((function(e){return t.node(e)}));return r.forEach(t.nodes(),(function(i){var o=t.node(i),u=t.parent(i);(o.rank===e||o.minRank<=e&&e<=o.maxRank)&&(s.setNode(i),s.setParent(i,u||a),r.forEach(t[n](i),(function(e){var n=e.v===i?e.w:e.v,a=s.edge(n,i),o=r.isUndefined(a)?0:a.weight;s.setEdge(n,i,{weight:t.edge(e).weight+o})})),r.has(o,"minRank")&&s.setNode(i,{borderLeft:o.borderLeft[e],borderRight:o.borderRight[e]}))})),s}function o(t){var e;while(t.hasNode(e=r.uniqueId("_root")));return e}t.exports=a},"89d9":function(t,e,n){var r=n("656b"),i=n("159a"),a=n("e2e4");function o(t,e,n){var o=-1,s=e.length,u={};while(++o{t&&t(),a.refreshPositions()};c.tick=e;const n=c.onLayoutEnd;c.onLayoutEnd=()=>{n&&n(),a.emit("afterlayout")}}try{h=new r[n](c)}catch(f){return console.warn("The layout method: "+c+" does not exist! Please specify it first."),!1}return h.init(e.data),a.emit("beforelayout"),h.execute(),e.layoutMethod=h,"force"!==n&&(a.emit("afterlayout"),e.refreshLayout()),!1}_layoutWithWorker(t,e){const{nodes:n,edges:r}=t,{layoutCfg:i,graph:a}=this,o=this._getWorker(),{workerData:u}=this;if(!o)return!1;u.requestId=null,u.requestId2=null,u.currentTick=null,u.currentTickData=null,a.emit("beforelayout");const c=f(i,t=>"function"!==typeof t);return o.postMessage({type:s.RUN,nodes:n,edges:r,layoutCfg:c}),o.onmessage=n=>{this._handleWorkerMessage(n,t,e)},!0}_handleWorkerMessage(t,e,n){const{graph:r,workerData:i,layoutCfg:a}=this,o=t.data,{type:c}=o,f=()=>{a.onTick&&a.onTick()},l=()=>{a.onLayoutEnd&&a.onLayoutEnd(),r.emit("afterlayout")};switch(c){case s.TICK:i.currentTick=o.currentTick,i.currentTickData=o,i.requestId||(i.requestId=u.requestAnimationFrame((function(){h(e,o),r.refreshPositions(),f(),1===o.currentTick&&n&&n(),o.currentTick===o.totalTicks?l():i.currentTick===o.totalTicks&&(i.requestId2=u.requestAnimationFrame((function(){h(e,i.currentTickData),r.refreshPositions(),i.requestId2=null,f(),l()}))),i.requestId=null})));break;case s.END:null==i.currentTick&&(h(e,o),this.refreshLayout(),n&&n(),r.emit("afterlayout"));break;case s.ERROR:break;default:break}}refreshLayout(){const t=this,e=t.graph;e.get("animate")?e.positionsAnimate():e.refreshPositions()}updateLayoutCfg(t){const e=this,n=e.graph;e.layoutType=t.type;const r=e.layoutMethod;e.data=e.setDataFromGraph(),this._stopWorker(),t.workerEnabled&&this._layoutWithWorker(e.data,null)||(r.init(e.data),r.updateCfg(t),n.emit("beforelayout"),r.execute(),"force"!==e.layoutType&&n.emit("afterlayout"),e.refreshLayout())}changeLayout(t){const e=this;e.layoutType=t,e.layoutCfg=e.graph.get("layout")||{},e.layoutCfg.type=t;const n=e.layoutMethod;n&&n.destroy(),e.layout()}changeData(){const t=this,e=t.layoutMethod;e&&e.destroy(),t.layout()}setDataFromGraph(){const t=this,e=[],n=[],r=t.graph.getNodes(),i=t.graph.getEdges();r.forEach(t=>{const n=t.getModel();e.push(n)}),i.forEach(t=>{const e=t.getModel();n.push(e)});const a={nodes:e,edges:n};return"fruchtermanGroup"===t.layoutType&&(a.graph=t.graph),a}relayout(){const t=this,e=t.graph,n=t.layoutMethod;"force"===t.layoutType&&(n.ticking=!1,n.forceSimulation.stop()),e.emit("beforelayout"),n.execute(),"force"!==t.layoutType&&e.emit("afterlayout"),t.refreshLayout()}layoutAnimate(){}_getLayout(){}moveToZero(){const t=this,e=t.graph,n=e.get("data"),r=n.nodes;if(void 0===r[0].x||null===r[0].x||isNaN(r[0].x))return;const i=[0,0];r.forEach(t=>{i[0]+=t.x,i[1]+=t.y}),i[0]/=r.length,i[1]/=r.length,r.forEach(t=>{t.x-=i[0],t.y-=i[1]})}initPositions(t,e){e&&e.forEach(e=>{e.x=t[0]+Math.random(),e.y=t[1]+Math.random()})}destroy(){const t=this;t.graph=null;const e=t.layoutMethod;e&&e.destroy();const{worker:n}=this;n&&(n.terminate(),this.worker=null),t.destroyed=!0}}function h(t,e){const{nodes:n}=t,{nodes:r}=e;n.forEach((t,e)=>{t.x=r[e].x,t.y=r[e].y})}function f(t,e){const n={};if(t&&"object"===typeof t){for(const r in t)t.hasOwnProperty(r)&&e(t[r])&&(n[r]=t[r]);return n}return t}t.exports=c},"8c55":function(t,e,n){"use strict";var r=n("6f9c"),i=n("17d5").Graph,a=n("b50e");function o(t,e){var n={};function i(e,i){var a=0,o=0,s=e.length,h=r.last(i);return r.forEach(i,(function(e,f){var l=u(t,e),d=l?t.node(l).order:s;(l||e===h)&&(r.forEach(i.slice(o,f+1),(function(e){r.forEach(t.predecessors(e),(function(r){var i=t.node(r),o=i.order;!(os)&&c(n,e,u)}))}))}function a(e,n){var a,o=-1,s=0;return r.forEach(n,(function(r,u){if("border"===t.node(r).dummy){var c=t.predecessors(r);c.length&&(a=t.node(c[0]).order,i(n,s,u,o,a),s=u,o=a)}i(n,s,n.length,a,e.length)})),n}return r.reduce(e,a),n}function u(t,e){if(t.node(e).dummy)return r.find(t.predecessors(e),(function(e){return t.node(e).dummy}))}function c(t,e,n){if(e>n){var r=e;e=n,n=r}var i=t[e];i||(t[e]=i={}),i[n]=!0}function h(t,e,n){if(e>n){var i=e;e=n,n=i}return r.has(t[e],n)}function f(t,e,n,i){var a={},o={},s={};return r.forEach(e,(function(t){r.forEach(t,(function(t,e){a[t]=t,o[t]=t,s[t]=e}))})),r.forEach(e,(function(t){var e=-1;r.forEach(t,(function(t){var u=i(t);if(u.length){u=r.sortBy(u,(function(t){return s[t]}));for(var c=(u.length-1)/2,f=Math.floor(c),l=Math.ceil(c);f<=l;++f){var d=u[f];o[t]===t&&e{c.indexOf(n)<0&&(e[n]=t)}),e}}_resetStates(t,e){const n=this,i=n.get("states");r.each(i,r=>{t.setState(e,r,!0,n)})}getStates(){return this.get("states")}hasState(t){return this.get("states").indexOf(t)>=0}getStateStyle(t){const e=this,n=a[e.getType()+s][t],i=this.get("styles"),o=i&&i[t],c=t+u;return r.mix({},n,o,e.get(c))}getOriginStyle(){return this.get("originStyle")}getCurrentStatesStyle(){const t=this,e=r.mix({},t.getOriginStyle());return r.each(t.getStates(),n=>{r.mix(e,t.getStateStyle(n))}),e}setState(t,e){const n=this.get("states"),r=this.get("shapeFactory"),i=n.indexOf(t);if(e){if(i>-1)return;n.push(t)}else i>-1&&n.splice(i,1);if(r){const n=this.get("model");r.setState(n.shape,t,e,this)}}clearStates(t){const e=this,n=e.getStates(),i=e.get("shapeFactory"),a=e.get("model").shape;if(!t)return e.set("states",[]),void i.setState(a,n[0],!1,e);r.isString(t)&&(t=[t]);const o=n.filter(n=>(i.setState(a,n,!1,e),!(t.indexOf(n)>=0)));e.set("states",o)}getContainer(){return this.get("group")}getKeyShape(){return this.get("keyShape")}getModel(){return this.get("model")}getType(){return this.get("type")}beforeDraw(){}afterDraw(){}getShapeCfg(t){const e=this.get("styles");if(e&&e.default){const n=r.mix({},t);return n.style=r.mix({},e.default,t.style),n}return t}refresh(){const t=this.get("model");this.updatePosition(t),this.updateShape(),this.afterUpdate(),this.clearCache()}update(t){const e=this.get("model"),n={x:e.x,y:e.y};r.mix(e,t);const i=this._isOnlyMove(t);i?this.updatePosition(e):(n.x===e.x&&n.y===e.y||this.updatePosition(e),this.updateShape()),this.afterUpdate(),this.clearCache()}updateShape(){const t=this.get("shapeFactory"),e=this.get("model"),n=e.shape;if(t.shouldUpdate(n)&&n===this.get("currentShape")){const r=this.getShapeCfg(e);t.update(n,r,this)}else this.draw();this.set("originStyle",this.getKeyShapeStyle()),this._resetStates(t,n)}updatePosition(t){const e=this.get("model"),n=r.isNil(t.x)?e.x:t.x,i=r.isNil(t.y)?e.y:t.y,a=this.get("group");r.isNil(n)||r.isNil(i)||(a.resetMatrix(),a.translate(n,i),e.x=n,e.y=i,this.clearCache())}afterUpdate(){}clearCache(){this.set(o,null)}draw(){this.beforeDraw(),this._drawInner(),this.afterDraw()}getBBox(){let t=this.get(o);return t||(t=this._calculateBBox(),this.set(o,t)),t}toFront(){this.get("group").toFront()}toBack(){this.get("group").toBack()}show(){this.changeVisibility(!0)}hide(){this.changeVisibility(!1)}changeVisibility(t){const e=this.get("group");t?e.show():e.hide(),this.set("visible",t)}enableCapture(t){const e=this.get("group");e&&e.attr("capture",t)}isVisible(){return this.get("visible")}destroy(){if(!this.destroyed){const t=this.get("animate"),e=this.get("group");t&&e.stopAnimate(),e.remove(),this._cfg=null,this.destroyed=!0}}}t.exports=h},"8d60":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=i,e.toRadian=o,e.equals=s;var r=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!==typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;function i(t){e.ARRAY_TYPE=t}var a=Math.PI/180;function o(t){return t*a}function s(t,e){return Math.abs(t-e)<=r*Math.max(1,Math.abs(t),Math.abs(e))}},"8d88":function(t,e,n){var r=n("06bb"),i=n("61e7"),a=n("503e"),o=function(t){for(var e=i(arguments),n=1;n-1}t.exports=i},"8de2":function(t,e,n){var r=n("8eeb"),i=n("9934");function a(t){return r(t,i(t))}t.exports=a},"8eeb":function(t,e,n){var r=n("32b3"),i=n("872a");function a(t,e,n,a){var o=!n;n||(n={});var s=-1,u=e.length;while(++s0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a),t}function E(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function I(t,e,n){var r=e[0],i=e[1],a=e[2],o=n[0],s=n[1],u=n[2];return t[0]=i*u-a*s,t[1]=a*o-r*u,t[2]=r*s-i*o,t}function O(t,e,n,r){var i=e[0],a=e[1],o=e[2];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t[2]=o+r*(n[2]-o),t}function T(t,e,n,r,i,a){var o=a*a,s=o*(2*a-3)+1,u=o*(a-2)+a,c=o*(a-1),h=o*(3-2*a);return t[0]=e[0]*s+n[0]*u+r[0]*c+i[0]*h,t[1]=e[1]*s+n[1]*u+r[1]*c+i[1]*h,t[2]=e[2]*s+n[2]*u+r[2]*c+i[2]*h,t}function N(t,e,n,r,i,a){var o=1-a,s=o*o,u=a*a,c=s*o,h=3*a*s,f=3*u*o,l=u*a;return t[0]=e[0]*c+n[0]*h+r[0]*f+i[0]*l,t[1]=e[1]*c+n[1]*h+r[1]*f+i[1]*l,t[2]=e[2]*c+n[2]*h+r[2]*f+i[2]*l,t}function j(t,e){e=e||1;var n=2*i.RANDOM()*Math.PI,r=2*i.RANDOM()-1,a=Math.sqrt(1-r*r)*e;return t[0]=Math.cos(n)*a,t[1]=Math.sin(n)*a,t[2]=r*e,t}function B(t,e,n){var r=e[0],i=e[1],a=e[2],o=n[3]*r+n[7]*i+n[11]*a+n[15];return o=o||1,t[0]=(n[0]*r+n[4]*i+n[8]*a+n[12])/o,t[1]=(n[1]*r+n[5]*i+n[9]*a+n[13])/o,t[2]=(n[2]*r+n[6]*i+n[10]*a+n[14])/o,t}function L(t,e,n){var r=e[0],i=e[1],a=e[2];return t[0]=r*n[0]+i*n[3]+a*n[6],t[1]=r*n[1]+i*n[4]+a*n[7],t[2]=r*n[2]+i*n[5]+a*n[8],t}function D(t,e,n){var r=n[0],i=n[1],a=n[2],o=n[3],s=e[0],u=e[1],c=e[2],h=i*c-a*u,f=a*s-r*c,l=r*u-i*s,d=i*l-a*f,p=a*h-r*l,g=r*f-i*h,v=2*o;return h*=v,f*=v,l*=v,d*=2,p*=2,g*=2,t[0]=s+h+d,t[1]=u+f+p,t[2]=c+l+g,t}function R(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t}function F(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t}function Y(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t}function q(t,e){var n=c(t[0],t[1],t[2]),r=c(e[0],e[1],e[2]);C(n,n),C(r,r);var i=E(n,r);return i>1?0:i<-1?Math.PI:Math.acos(i)}function z(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function X(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function G(t,e){var n=t[0],r=t[1],a=t[2],o=e[0],s=e[1],u=e[2];return Math.abs(n-o)<=i.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-s)<=i.EPSILON*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(a-u)<=i.EPSILON*Math.max(1,Math.abs(a),Math.abs(u))}e.sub=d,e.mul=p,e.div=g,e.dist=M,e.sqrDist=S,e.len=u,e.sqrLen=k,e.forEach=function(){var t=o();return function(e,n,r,i,a,o){var s=void 0,u=void 0;for(n||(n=3),r||(r=0),u=i?Math.min(i*n+r,e.length):e.length,s=r;s2?e[2]:void 0;c&&a(e[0],e[1],c)&&(r=1);while(++nu){var c=s;s=u,u=c}return s+o+u+o+(r.isUndefined(a)?i:a)}function f(t,e,n,r){var i=""+e,a=""+n;if(!t&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function l(t,e){return h(t,e.v,e.w,e.name)}s.prototype._nodeCount=0,s.prototype._edgeCount=0,s.prototype.isDirected=function(){return this._isDirected},s.prototype.isMultigraph=function(){return this._isMultigraph},s.prototype.isCompound=function(){return this._isCompound},s.prototype.setGraph=function(t){return this._label=t,this},s.prototype.graph=function(){return this._label},s.prototype.setDefaultNodeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultNodeLabelFn=t,this},s.prototype.nodeCount=function(){return this._nodeCount},s.prototype.nodes=function(){return r.keys(this._nodes)},s.prototype.sources=function(){var t=this;return r.filter(this.nodes(),(function(e){return r.isEmpty(t._in[e])}))},s.prototype.sinks=function(){var t=this;return r.filter(this.nodes(),(function(e){return r.isEmpty(t._out[e])}))},s.prototype.setNodes=function(t,e){var n=arguments,i=this;return r.each(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this},s.prototype.setNode=function(t,e){return r.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=a,this._children[t]={},this._children[a][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},s.prototype.node=function(t){return this._nodes[t]},s.prototype.hasNode=function(t){return r.has(this._nodes,t)},s.prototype.removeNode=function(t){var e=this;if(r.has(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],r.each(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),r.each(r.keys(this._in[t]),n),delete this._in[t],delete this._preds[t],r.each(r.keys(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},s.prototype.setParent=function(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(r.isUndefined(e))e=a;else{e+="";for(var n=e;!r.isUndefined(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this},s.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},s.prototype.parent=function(t){if(this._isCompound){var e=this._parent[t];if(e!==a)return e}},s.prototype.children=function(t){if(r.isUndefined(t)&&(t=a),this._isCompound){var e=this._children[t];if(e)return r.keys(e)}else{if(t===a)return this.nodes();if(this.hasNode(t))return[]}},s.prototype.predecessors=function(t){var e=this._preds[t];if(e)return r.keys(e)},s.prototype.successors=function(t){var e=this._sucs[t];if(e)return r.keys(e)},s.prototype.neighbors=function(t){var e=this.predecessors(t);if(e)return r.union(e,this.successors(t))},s.prototype.isLeaf=function(t){var e;return e=this.isDirected()?this.successors(t):this.neighbors(t),0===e.length},s.prototype.filterNodes=function(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;r.each(this._nodes,(function(n,r){t(r)&&e.setNode(r,n)})),r.each(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};function a(t){var r=n.parent(t);return void 0===r||e.hasNode(r)?(i[t]=r,r):r in i?i[r]:a(r)}return this._isCompound&&r.each(e.nodes(),(function(t){e.setParent(t,a(t))})),e},s.prototype.setDefaultEdgeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultEdgeLabelFn=t,this},s.prototype.edgeCount=function(){return this._edgeCount},s.prototype.edges=function(){return r.values(this._edgeObjs)},s.prototype.setPath=function(t,e){var n=this,i=arguments;return r.reduce(t,(function(t,r){return i.length>1?n.setEdge(t,r,e):n.setEdge(t,r),r})),this},s.prototype.setEdge=function(){var t,e,n,i,a=!1,o=arguments[0];"object"===typeof o&&null!==o&&"v"in o?(t=o.v,e=o.w,n=o.name,2===arguments.length&&(i=arguments[1],a=!0)):(t=o,e=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,e=""+e,r.isUndefined(n)||(n=""+n);var s=h(this._isDirected,t,e,n);if(r.has(this._edgeLabels,s))return a&&(this._edgeLabels[s]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(t,e,n);var c=f(this._isDirected,t,e,n);return t=c.v,e=c.w,Object.freeze(c),this._edgeObjs[s]=c,u(this._preds[e],t),u(this._sucs[t],e),this._in[e][s]=c,this._out[t][s]=c,this._edgeCount++,this},s.prototype.edge=function(t,e,n){var r=1===arguments.length?l(this._isDirected,arguments[0]):h(this._isDirected,t,e,n);return this._edgeLabels[r]},s.prototype.hasEdge=function(t,e,n){var i=1===arguments.length?l(this._isDirected,arguments[0]):h(this._isDirected,t,e,n);return r.has(this._edgeLabels,i)},s.prototype.removeEdge=function(t,e,n){var r=1===arguments.length?l(this._isDirected,arguments[0]):h(this._isDirected,t,e,n),i=this._edgeObjs[r];return i&&(t=i.v,e=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],c(this._preds[e],t),c(this._sucs[t],e),delete this._in[e][r],delete this._out[t][r],this._edgeCount--),this},s.prototype.inEdges=function(t,e){var n=this._in[t];if(n){var i=r.values(n);return e?r.filter(i,(function(t){return t.v===e})):i}},s.prototype.outEdges=function(t,e){var n=this._out[t];if(n){var i=r.values(n);return e?r.filter(i,(function(t){return t.w===e})):i}},s.prototype.nodeEdges=function(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}},"96f3":function(t,e){var n=Object.prototype,r=n.hasOwnProperty;function i(t,e){return null!=t&&r.call(t,e)}t.exports=i},9719:function(t,e,n){var r=n("d63e"),i=Array.prototype.splice,a=function(t,e){if(!r(t))return[];var n=t?e.length:0,a=n-1;while(n--){var o=void 0,s=e[n];n!==a&&s===o||(o=s,i.call(t,s,1))}return t};t.exports=a},"97d3":function(t,e,n){var r=n("48a0"),i=n("30c9");function a(t,e){var n=-1,a=i(t)?Array(t.length):[];return r(t,(function(t,r,i){a[++n]=e(t,r,i)})),a}t.exports=a},"98dc":function(t,e,n){var r=n("76dd"),i=0;function a(t){var e=++i;return r(t)+e}t.exports=a},9934:function(t,e,n){var r=n("6fcd"),i=n("41c3"),a=n("30c9");function o(t){return a(t)?r(t,!0):i(t)}t.exports=o},9948:function(t,e,n){var r=n("72af"),i=n("1304"),a=n("9934");function o(t,e){return null==t?t:r(t,i(e),a)}t.exports=o},"99cd":function(t,e){function n(t){return function(e,n,r){var i=-1,a=Object(e),o=r(e),s=o.length;while(s--){var u=o[t?s:++i];if(!1===n(a[u],u,a))break}return e}}t.exports=n},"99d3":function(t,e,n){(function(t){var r=n("585a"),i=e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i,s=o&&r.process,u=function(){try{var t=a&&a.require&&a.require("util").types;return t||s&&s.binding&&s.binding("util")}catch(e){}}();t.exports=u}).call(this,n("62e4")(t))},"9aa7":function(t,e,n){const r=n("4651"),i=n("36e0"),a=n("5378"),o=n("9021"),s=n("3a21"),u=n("5d9e");function c(t){const e=t.length,n=t[0].length,r=[];for(let i=0;i{t.id!==e||(n=r)}),n}r.registerLayout("radial",{getDefaultCfg(){return{center:[0,0],maxIteration:1e3,focusNode:null,unitRadius:null,linkDistance:50,preventOverlap:!1,nodeSize:void 0,nodeSpacing:void 0,strictRadial:!0,maxPreventOverlapIteration:200}},execute(){const t=this,e=t.nodes,n=t.edges,r=t.center;if(0===e.length)return;if(1===e.length)return e[0].x=r[0],void(e[0].y=r[1]);const f=t.linkDistance;let l=t.focusNode;if(i.isString(l)){let n=!1;for(let r=0;rr[0]?r[0]:y-r[0],w=x-r[1]>r[1]?r[1]:x-r[1];0===b&&(b=y/2),0===w&&(w=x/2);const _=w>b?b:w,M=Math.max(...m),S=[];m.forEach((e,n)=>{t.unitRadius||(t.unitRadius=_/M),S[n]=e*t.unitRadius}),t.radii=S;const k=t.eIdealDisMatrix(g,f,S);t.eIdealDistances=k;const A=c(k);t.weights=A;const P=new o({distances:k,linkDistance:f,dimension:2});let C=P.layout();C.forEach(t=>{isNaN(t[0])&&(t[0]=Math.random()*f),isNaN(t[1])&&(t[1]=Math.random()*f)}),t.positions=C,C.forEach((t,n)=>{e[n].x=t[0]+r[0],e[n].y=t[1]+r[1]}),C.forEach(t=>{t[0]-=C[d][0],t[1]-=C[d][1]}),t.run();const E=t.preventOverlap,I=t.nodeSize;let O;const T=t.strictRadial;if(E){const n=t.nodeSpacing;let r;r=u(n)?()=>n:"function"===typeof n?n:()=>0,O=I?s(I)?t=>{const e=I[0]>I[1]?I[0]:I[1];return e+r(t)}:t=>I+r(t):t=>{if(t.size){if(s(t.size)){const e=t.size[0]>t.size[1]?t.size[0]:t.size[1];return e+r(t)}return t.size+r(t)}return 10+r(t)};const i=new a({nodeSizeFunc:O,adjMatrix:p,positions:C,radii:S,height:x,width:y,strictRadial:T,focusID:d,iterations:t.maxPreventOverlapIteration||200,k:C.length/4.5,nodes:e});C=i.layout()}C.forEach((t,n)=>{e[n].x=t[0]+r[0],e[n].y=t[1]+r[1]})},run(){const t=this,e=t.maxIteration,n=t.positions,r=t.weights,i=t.eIdealDistances,a=t.radii;for(let o=0;o<=e;o++){const s=o/e;t.oneIteration(s,n,a,i,r)}},oneIteration(t,e,n,r,a){const o=this,s=1-t,u=o.focusIndex;e.forEach((o,c)=>{const h=i.getEDistance(o,[0,0]),f=0===h?0:1/h;if(c===u)return;let l=0,d=0,p=0;e.forEach((t,e)=>{if(c===e)return;const n=i.getEDistance(o,t),s=0===n?0:1/n,u=r[e][c];p+=a[c][e],l+=a[c][e]*(t[0]+u*(o[0]-t[0])*s),d+=a[c][e]*(t[1]+u*(o[1]-t[1])*s)});const g=0===n[c]?0:1/n[c];p*=s,p+=t*Math.pow(g,2),l*=s,l+=t*g*o[0]*f,o[0]=l/p,d*=s,d+=t*g*o[1]*f,o[1]=d/p})},eIdealDisMatrix(){const t=this,e=t.distances,n=t.linkDistance,r=t.radii,i=t.unitRadius,a=[];return e.forEach((t,e)=>{const o=[];t.forEach((t,a)=>{if(e===a)o.push(0);else if(r[e]===r[a])o.push(t*n/(r[e]/i));else{const e=(n+i)/2;o.push(t*e)}}),a.push(o)}),a},handleAbnormalMatrix(t,e){const n=t.length;for(let r=0;rn?t[e][r]:n);return n}})},"9aa8":function(t,e,n){var r=n("1c6a"),i=n("4875"),a={arc:n("6560"),ellipse:n("4590"),line:n("c4bc")},o=r.createDom(''),s=o.getContext("2d");function u(t,e,n){return n.createPath(s),s.isPointInPath(t,e)}var c=function(t,e){var n=this._attrs,r=n.x,a=n.y,o=n.r,s=n.startAngle,u=n.endAngle,c=n.clockwise,h=this.getHitLineWidth();return!!this.hasStroke()&&i.arcline(r,a,o,s,u,c,h,t,e)},h=function(t,e){var n=this._attrs,r=n.x,a=n.y,o=n.r,s=this.getHitLineWidth(),u=this.hasFill(),c=this.hasStroke();return u&&c?i.circle(r,a,o,t,e)||i.arcline(r,a,o,0,2*Math.PI,!1,s,t,e):u?i.circle(r,a,o,t,e):!!c&&i.arcline(r,a,o,0,2*Math.PI,!1,s,t,e)},f=function(t,e){var n=this._attrs,a=this.hasFill(),o=this.hasStroke(),s=n.x,u=n.y,c=n.rx,h=n.ry,f=this.getHitLineWidth(),l=c>h?c:h,d=c>h?1:c/h,p=c>h?h/c:1,g=[t,e,1],v=[1,0,0,0,1,0,0,0,1];r.mat3.scale(v,v,[d,p]),r.mat3.translate(v,v,[s,u]);var m=r.mat3.invert([],v);return r.vec3.transformMat3(g,g,m),a&&o?i.circle(0,0,l,g[0],g[1])||i.arcline(0,0,l,0,2*Math.PI,!1,f,g[0],g[1]):a?i.circle(0,0,l,g[0],g[1]):!!o&&i.arcline(0,0,l,0,2*Math.PI,!1,f,g[0],g[1])},l=function(t,e){var n=this,o=n.hasFill(),s=n.hasStroke(),u=n._attrs,c=u.x,h=u.y,f=u.rs,l=u.re,d=u.startAngle,p=u.endAngle,g=u.clockwise,v=[1,0],m=[t-c,e-h],y=r.vec2.angleTo(v,m);function x(){var t=a.arc.nearAngle(y,d,p,g);if(r.isNumberEqual(y,t)){var e=r.vec2.squaredLength(m);if(f*f<=e&&e<=l*l)return!0}return!1}function b(){var r=n.getHitLineWidth(),a={x:Math.cos(d)*f+c,y:Math.sin(d)*f+h},o={x:Math.cos(d)*l+c,y:Math.sin(d)*l+h},s={x:Math.cos(p)*f+c,y:Math.sin(p)*f+h},u={x:Math.cos(p)*l+c,y:Math.sin(p)*l+h};return!!i.line(a.x,a.y,o.x,o.y,r,t,e)||(!!i.line(s.x,s.y,u.x,u.y,r,t,e)||(!!i.arcline(c,h,f,d,p,g,r,t,e)||!!i.arcline(c,h,l,d,p,g,r,t,e)))}return o&&s?x()||b():o?x():!!s&&b()},d=function(t,e){var n=this._attrs;if(this.get("toDraw")||!n.img)return!1;this._cfg.attrs&&this._cfg.attrs.img===n.img||this._setAttrImg();var r=n.x,a=n.y,o=n.width,s=n.height;return i.rect(r,a,o,s,t,e)},p=function(t,e){var n=this._attrs,r=n.x1,a=n.y1,o=n.x2,s=n.y2,u=this.getHitLineWidth();return!!this.hasStroke()&&i.line(r,a,o,s,u,t,e)},g=function(t,e){var n=this,i=n.get("segments"),a=n.hasFill(),o=n.hasStroke();function s(){if(!r.isEmpty(i)){for(var a=n.getHitLineWidth(),o=0,s=i.length;o=3&&s.push(a[0]),i.polyline(s,o,t,e)}return r&&a?u(t,e,n)||o():r?u(t,e,n):!!a&&o()},m=function(t,e){var n=this._attrs,r=n.x,a=n.y,o=n.radius||n.r,s=this.getHitLineWidth();return i.circle(r,a,o+s/2,t,e)},y=function(t,e){var n=this,r=n._attrs;if(n.hasStroke()){var a=r.points;if(a.length<2)return!1;var o=r.lineWidth;return i.polyline(a,o,t,e)}return!1},x=function(t,e){var n=this,r=n.hasFill(),a=n.hasStroke();function o(){var r=n._attrs,a=r.x,o=r.y,s=r.width,u=r.height,c=r.radius,h=n.getHitLineWidth();if(0===c){var f=h/2;return i.line(a-f,o,a+s+f,o,h,t,e)||i.line(a+s,o-f,a+s,o+u+f,h,t,e)||i.line(a+s+f,o+u,a-f,o+u,h,t,e)||i.line(a,o+u+f,a,o-f,h,t,e)}return i.line(a+c,o,a+s-c,o,h,t,e)||i.line(a+s,o+c,a+s,o+u-c,h,t,e)||i.line(a+s-c,o+u,a+c,o+u,h,t,e)||i.line(a,o+u-c,a,o+c,h,t,e)||i.arcline(a+s-c,o+c,c,1.5*Math.PI,2*Math.PI,!1,h,t,e)||i.arcline(a+s-c,o+u-c,c,0,.5*Math.PI,!1,h,t,e)||i.arcline(a+c,o+u-c,c,.5*Math.PI,Math.PI,!1,h,t,e)||i.arcline(a+c,o+c,c,Math.PI,1.5*Math.PI,!1,h,t,e)}return r&&a?u(t,e,n)||o():r?u(t,e,n):!!a&&o()},b=function(t,e){var n=this,r=n.getBBox();if(n.hasFill()||n.hasStroke())return i.box(r.minX,r.maxX,r.minY,r.maxY,t,e)},w=function(t,e){if(!this._cfg.el)return!1;var n=this._cfg.el.getBBox();return i.box(n.x,n.x+n.width,n.y,n.y+n.height,t,e)},_={arc:c,circle:h,dom:w,ellipse:f,fan:l,image:d,line:p,path:g,marker:m,polygon:v,polyline:y,rect:x,text:b};t.exports={isPointInPath:function(t,e){var n=_[this.type];return!!n&&n.call(this,t,e)}}},"9aff":function(t,e,n){var r=n("9638"),i=n("30c9"),a=n("c0983"),o=n("1a8c");function s(t,e,n){if(!o(n))return!1;var s=typeof e;return!!("number"==s?i(n)&&a(e,n.length):"string"==s&&e in n)&&r(n[e],t)}t.exports=s},"9b02":function(t,e,n){var r=n("656b");function i(t,e,n){var i=null==t?void 0:r(t,e);return void 0===i?n:i}t.exports=i},"9ceb":function(t,e,n){const r=n("1bb5"),i=12;t.exports={onMouseEnter(t){const e=this;if(!e.shouldBegin(t))return;const n=t.item;e.currentTarget=n,e.showTooltip(t),e.graph.emit("tooltipchange",{item:t.item,action:"show"})},onMouseMove(t){this.shouldUpdate(t)?this.currentTarget&&t.item===this.currentTarget&&this.updatePosition(t):this.hideTooltip()},onMouseLeave(t){this.shouldEnd(t)&&(this.hideTooltip(),this.graph.emit("tooltipchange",{item:this.currentTarget,action:"hide"}),this.currentTarget=null)},showTooltip(t){const e=this;if(!t.item)return;let n=e.container;n||(n=e._createTooltip(e.graph.get("canvas")),e.container=n);const i=e.formatText(t.item.get("model"),t);n.innerHTML=i,this.updatePosition(t),r.modifyCSS(this.container,{visibility:"visible"})},hideTooltip(){r.modifyCSS(this.container,{visibility:"hidden"})},updatePosition(t){const e=this.width,n=this.height,a=this.container;let o=t.canvasX,s=t.canvasY;const u=a.getBoundingClientRect();o>e/2?o-=u.width:o+=i,s>n/2?s-=u.height:s+=i;const c=o+"px",h=s+"px";r.modifyCSS(this.container,{left:c,top:h,visibility:"visible"})},_createTooltip(t){const e=t.get("el");e.style.position="relative";const n=r.createDom('
');return e.parentNode.appendChild(n),r.modifyCSS(n,{position:"absolute",visibility:"visible"}),this.width=t.get("width"),this.height=t.get("height"),this.container=n,n}}},"9d1d":function(t,e,n){const r=n("1249"),i=n("1b95"),a=n("9ed2");r.registerNode("star",{options:{size:60,style:{stroke:a.defaultShapeStrokeColor,fill:a.defaultShapeFillColor,lineWidth:1},labelCfg:{style:{fill:"#595959"},offset:0},stateStyles:{hover:{fillOpacity:.8},selected:{lineWidth:3}},linkPoints:{top:!1,right:!1,left:!1,leftBottom:!1,rightBottom:!1,size:3,lineWidth:1,fill:"#fff",stroke:"#72CC4A"},icon:{show:!1,img:"https://gw.alipayobjects.com/zos/basement_prod/012bcf4f-423b-4922-8c24-32a89f8c41ce.svg",width:16,height:16}},shapeType:"star",labelPosition:"center",drawShape(t,e){const n=this.getCustomConfig(t)||{},{icon:r}=this.options,{icon:a}=n,o=this.getShapeStyle(t),s=i({},r,a,t.icon),u=e.addShape("path",{attrs:o}),{width:c,height:h,show:f}=s;if(f){const t=e.addShape("image",{attrs:{x:-c/2,y:-h/2,...s},className:"star-icon"});t.set("capture",!1)}return this.drawLinkPoints(t,e),u},drawLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r}=this.options,{linkPoints:a}=n,o=i({},r,a,t.linkPoints),{top:s,left:u,right:c,leftBottom:h,rightBottom:f,size:l,...d}=o,p=this.getSize(t),g=p[0];if(c){const t=Math.cos(.1*Math.PI)*g,n=Math.sin(.1*Math.PI)*g;e.addShape("circle",{attrs:{...d,x:t,y:-n,r:l},className:"star-mark-right"})}if(s){const t=Math.cos(.5*Math.PI)*g,n=Math.sin(.5*Math.PI)*g;e.addShape("circle",{attrs:{...d,x:t,y:-n,r:l},className:"star-mark-top"})}if(u){const t=Math.cos(.9*Math.PI)*g,n=Math.sin(.9*Math.PI)*g;e.addShape("circle",{attrs:{...d,x:t,y:-n,r:l},className:"star-mark-left"})}if(h){const t=Math.cos(1.3*Math.PI)*g,n=Math.sin(1.3*Math.PI)*g;e.addShape("circle",{attrs:{...d,x:t,y:-n,r:l},className:"star-mark-left-bottom"})}if(f){const t=Math.cos(1.7*Math.PI)*g,n=Math.sin(1.7*Math.PI)*g;e.addShape("circle",{attrs:{...d,x:t,y:-n,r:l},className:"star-mark-right-bottom"})}},getPath(t){const e=this.getCustomConfig(t)||{},{innerR:n}=e,r=this.getSize(t),i=r[0],a=3*i/8,o=t.innerR||n||a,s=[];for(let u=0;u<5;u++){const t=Math.cos((18+72*u)/180*Math.PI)*i,e=Math.sin((18+72*u)/180*Math.PI)*i,n=Math.cos((54+72*u)/180*Math.PI)*o,r=Math.sin((54+72*u)/180*Math.PI)*o;0===u?s.push(["M",t,-e]):s.push(["L",t,-e]),s.push(["L",n,-r])}return s.push(["Z"]),s},getShapeStyle(t){const e=this.getCustomConfig(t)||{},{style:n}=this.options,{style:r}=e,a={stroke:t.color},o=i({},n,r,a,t.style),s=this.getPath(t),u={path:s,...o};return u},update(t,e){const n=e.getContainer(),r=this.getCustomConfig(t)||{},{style:a,icon:o,labelCfg:s}=this.options,{style:u,icon:c,labelCfg:h}=r,f=i({},a,u,t.style),l=i({},o,c,t.icon),d=e.get("keyShape"),p=this.getPath(t);d.attr({path:p,...f});const g=i({},s,h,t.labelCfg),v=this.getLabelStyle(t,g,n),m=n.findByClassName("node-label");m&&m.attr({...v});const y=n.findByClassName("star-icon");if(y){const{width:t,height:e}=l;y.attr({x:-t/2,y:-e/2,...l})}this.updateLinkPoints(t,n)},updateLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r}=this.options,{linkPoints:a}=n,o=i({},r,a,t.linkPoints),{size:s,...u}=o,c=this.getSize(t),h=c[0],f=e.findByClassName("star-mark-right");if(f){const t=Math.cos(.1*Math.PI)*h,e=Math.sin(.1*Math.PI)*h;f.attr({...u,x:t,y:-e,r:s})}const l=e.findByClassName("star-mark-top");if(l){const t=Math.cos(.5*Math.PI)*h,e=Math.sin(.5*Math.PI)*h;l.attr({...u,x:t,y:-e,r:s})}const d=e.findByClassName("star-mark-left");if(d){const t=Math.cos(.9*Math.PI)*h,e=Math.sin(.9*Math.PI)*h;d.attr({...u,x:t,y:-e,r:s})}const p=e.findByClassName("star-mark-left-bottom");if(p){const t=Math.cos(1.3*Math.PI)*h,e=Math.sin(1.3*Math.PI)*h;p.attr({...u,x:t,y:-e,r:s})}const g=e.findByClassName("star-mark-right-bottom");if(g){const t=Math.cos(1.7*Math.PI)*h,e=Math.sin(1.7*Math.PI)*h;g.attr({...u,x:t,y:-e,r:s})}}},"single-shape")},"9d67":function(t,e,n){const r=n("9ed2"),i=n("b0b3"),a=n("bcd0"),o=n("e00d"),s=n("3b0b"),u={Graph:n("c02a"),TreeGraph:n("3501"),Util:n("1bb5"),G:i,Global:r,Shape:a,Layout:o,registerNode:a.registerNode,registerEdge:a.registerEdge,registerBehavior:s.registerBehavior,registerLayout:o.registerLayout,version:r.version};t.exports=u},"9dfc":function(t,e,n){const r=n("1249"),i=n("1bb5"),a=n("9ed2"),o=n("15e8");r.registerFactory("node",{defaultShapeType:"circle"});const s=i.mix({},o,{itemType:"node",shapeType:"",labelPosition:"center",getSize(t){const e=this.getCustomConfig(t)||{};let n=t.size||e.size||this.options.size||a.defaultNode.size;return i.isArray(n)||(n=[n,n]),n},getLabelStyleByPosition(t,e){const n=e.position||this.labelPosition;if("center"===n)return{x:0,y:0};let r=e.offset;i.isNil(r)&&(r=a.nodeLabel.offset);const o=this.getSize(t),s=o[0],u=o[1];let c;switch(n){case"top":c={x:0,y:0-u/2-r,textBaseline:"bottom"};break;case"bottom":c={x:0,y:u/2+r,textBaseline:"top"};break;case"left":c={x:0-s/2-r,y:0,textAlign:"right"};break;default:c={x:s/2+r,y:0,textAlign:"left"};break}return c},drawShape(t,e){const n=this.shapeType,r=this.getShapeStyle(t),i=e.addShape(n,{attrs:r});return i}});r.registerNode("single-shape",s)},"9e86":function(t,e,n){var r=n("872a"),i=n("242e"),a=n("badf");function o(t,e){var n={};return e=a(e,3),i(t,(function(t,i,a){r(n,i,e(t,i,a))})),n}t.exports=o},"9ed2":function(t,e){t.exports={version:"3.1.10",rootContainerClassName:"root-container",nodeContainerClassName:"node-container",edgeContainerClassName:"edge-container",customGroupContainerClassName:"custom-group-container",delegateContainerClassName:"delegate-container",defaultShapeFillColor:"#91d5ff",defaultShapeStrokeColor:"#91d5ff",defaultNode:{shape:"circle",style:{fill:"#fff"},size:40,color:"#333"},defaultEdge:{shape:"line",style:{},size:1,color:"#333"},nodeLabel:{style:{fill:"#595959",textAlign:"center",textBaseline:"middle"},offset:5},edgeLabel:{style:{fill:"#595959",textAlign:"center",textBaseline:"middle"}},nodeStateStyle:{active:{fillOpacity:.8},selected:{lineWidth:2}},edgeStateStyle:{active:{strokeOpacity:.8},selected:{lineWidth:2}},loopPosition:"top",delegateStyle:{fill:"#F3F9FF",fillOpacity:.5,stroke:"#1890FF",strokeOpacity:.9,lineDash:[5,5]}}},"9edc":function(t,e,n){var r=n("1c6a"),i=function(){function t(t){this.type="clip";var e=document.createElementNS("http://www.w3.org/2000/svg","clipPath");this.el=e,this.id=r.uniqueId("clip_"),e.id=this.id;var n=t._cfg.el;return e.appendChild(n.cloneNode(!0)),this.cfg=t,this}var e=t.prototype;return e.match=function(){return!1},e.remove=function(){var t=this.el;t.parentNode.removeChild(t)},t}();t.exports=i},"9f57":function(t,e,n){var r=n("1c6a"),i=function(t,e,n,r){this.type=t,this.target=null,this.currentTarget=null,this.bubbles=n,this.cancelable=r,this.timeStamp=(new Date).getTime(),this.defaultPrevented=!1,this.propagationStopped=!1,this.removed=!1,this.event=e};r.augment(i,{preventDefault:function(){this.defaultPrevented=this.cancelable&&!0},stopPropagation:function(){this.propagationStopped=!0},remove:function(){this.remove=!0},clone:function(){return r.clone(this)},toString:function(){return"[Event (type="+this.type+")]"}}),t.exports=i},"9f74":function(t,e,n){var r=n("48a0");function i(t,e){var n=[];return r(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}t.exports=i},a029:function(t,e,n){var r=n("087d"),i=n("2dcb"),a=n("32f4"),o=n("d327"),s=Object.getOwnPropertySymbols,u=s?function(t){var e=[];while(t)r(e,a(t)),t=i(t);return e}:o;t.exports=u},a1b0:function(t,e,n){const r=n("1bb5"),i=16;let a=null;class o{constructor(t){this.graph=t,this.cachedStates={enabled:{},disabled:{}}}updateState(t,e,n){if(t.destroyed)return;const r=this,o=r.cachedStates,s=o.enabled,u=o.disabled;n?(r._checkCache(t,e,u),r._cacheState(t,e,s)):(r._checkCache(t,e,s),r._cacheState(t,e,u)),a&&clearTimeout(a),a=setTimeout(()=>{a=null,r.updateGraphStates()},i)}updateStates(t,e,n){const i=this;r.isString(e)?i.updateState(t,e,n):e.forEach(e=>{i.updateState(t,e,n)})}_checkCache(t,e,n){if(!n[e])return;const r=n[e].indexOf(t);r>=0&&n[e].splice(r,1)}_cacheState(t,e,n){n[e]||(n[e]=[]),n[e].push(t)}updateGraphStates(){const t=this.graph.get("states"),e=this.cachedStates;r.each(e.disabled,(e,n)=>{t[n]&&(t[n]=t[n].filter(t=>e.indexOf(t)<0&&!e.destroyed))}),r.each(e.enabled,(e,n)=>{if(t[n]){const r={};t[n].forEach(t=>{t.destroyed||(r[t.get("id")]=!0)}),e.forEach(e=>{if(!e.destroyed){const i=e.get("id");r[i]||(r[i]=!0,t[n].push(e))}})}else t[n]=e}),this.graph.emit("graphstatechange",{states:t}),this.cachedStates={enabled:{},disabled:{}}}destroy(){this.graph=null,this.cachedStates=null,a&&clearTimeout(a),a=null,this.destroyed=!0}}t.exports=o},a2be:function(t,e,n){var r=n("d612"),i=n("4284"),a=n("c584"),o=1,s=2;function u(t,e,n,u,c,h){var f=n&o,l=t.length,d=e.length;if(l!=d&&!(f&&d>l))return!1;var p=h.get(t);if(p&&h.get(e))return p==e;var g=-1,v=!0,m=n&s?new r:void 0;h.set(t,e),h.set(e,t);while(++g0){if(a=u.removeMin(),o=s[a],o.distance===Number.POSITIVE_INFINITY)break;r(a).forEach(c)}return s}},a524:function(t,e,n){var r=n("4245");function i(t){return r(this,t).has(t)}t.exports=i},a560:function(t,e,n){const r=n("1bb5"),i="shift",a=["shift","ctrl","alt"];t.exports={getDefaultCfg(){return{multiple:!0,trigger:i}},getEvents(){return this.multiple?{"node:click":"onClick","canvas:click":"onCanvasClick",keyup:"onKeyUp",keydown:"onKeyDown"}:{"node:click":"onClick","canvas:click":"onCanvasClick"}},onClick(t){const e=this,n=t.item,i=e.graph,a=i.get("autoPaint");if(i.setAutoPaint(!1),!e.keydown||!e.multiple){const t=i.findAllByState("node","selected");r.each(t,t=>{t!==n&&i.setItemState(t,"selected",!1)})}n.hasState("selected")?(e.shouldUpdate.call(e,t)&&i.setItemState(n,"selected",!1),i.emit("nodeselectchange",{target:n,select:!1})):(e.shouldUpdate.call(e,t)&&i.setItemState(n,"selected",!0),i.emit("nodeselectchange",{target:n,select:!0})),i.setAutoPaint(a),i.paint()},onCanvasClick(){const t=this.graph,e=t.get("autoPaint");t.setAutoPaint(!1);const n=t.findAllByState("node","selected");r.each(n,e=>{t.setItemState(e,"selected",!1)});const i=t.findAllByState("edge","selected");r.each(i,e=>t.setItemState(e,"selected",!1)),t.paint(),t.setAutoPaint(e)},onKeyDown(t){const e=t.key;a.indexOf(e.toLowerCase()>-1)?this.keydown=!0:this.keydown=!1},onKeyUp(){this.keydown=!1}}},a5d3:function(t,e){const n=Math.min,r=Math.max,i=Math.abs,a="shift",o=["drag","shift","ctrl","alt","control"];t.exports={getDefaultCfg(){return{brushStyle:{fill:"#EEF6FF",fillOpacity:.4,stroke:"#DDEEFE",lineWidth:1},onSelect(){},onDeselect(){},selectedState:"selected",trigger:a,includeEdges:!0,selectedEdges:[],selectedNodes:[]}},getEvents(){let t;return o.indexOf(this.trigger.toLowerCase())>-1?t=this.trigger:(t=a,console.warn("Behavior brush-select的trigger参数不合法,请输入drag、shift、ctrl或alt")),"drag"===t?{mousedown:"onMouseDown",mousemove:"onMouseMove",mouseup:"onMouseUp","canvas:click":"clearStates"}:{mousedown:"onMouseDown",mousemove:"onMouseMove",mouseup:"onMouseUp","canvas:click":"clearStates",keyup:"onKeyUp",keydown:"onKeyDown"}},onMouseDown(t){const{item:e}=t;if(e)return;if("drag"!==this.trigger&&!this.keydown)return;this.selectedNodes&&0!==this.selectedNodes.length&&this.clearStates();let n=this.brush;n||(n=this._createBrush()),this.originPoint={x:t.canvasX,y:t.canvasY},n.attr({width:0,height:0}),n.show(),this.dragging=!0},onMouseMove(t){this.dragging&&("drag"===this.trigger||this.keydown)&&(this._updateBrush(t),this.graph.paint())},onMouseUp(t){if(!this.brush&&!this.dragging)return;if("drag"!==this.trigger&&!this.keydown)return;const e=this.graph,n=e.get("autoPaint");e.setAutoPaint(!1),this.brush.destroy(),this.brush=null,this._getSelectedNodes(t),this.dragging=!1,this.graph.paint(),e.setAutoPaint(n)},clearStates(){const t=this.graph,e=t.get("autoPaint");t.setAutoPaint(!1);const n=this.selectedState,r=t.findAllByState("node",n),i=t.findAllByState("edge",n);r.forEach(e=>t.setItemState(e,n,!1)),i.forEach(e=>t.setItemState(e,n,!1)),this.selectedNodes=[],this.selectedEdges=[],this.onDeselect&&this.onDeselect(this.selectedNodes,this.selectedEdges),t.emit("nodeselectchange",{targets:{nodes:[],edges:[]},select:!1}),t.paint(),t.setAutoPaint(e)},_getSelectedNodes(t){const e=this.graph,i=this.selectedState,a=this.originPoint,o={x:t.x,y:t.y},s=e.getPointByCanvas(a.x,a.y),u=n(o.x,s.x),c=r(o.x,s.x),h=n(o.y,s.y),f=r(o.y,s.y),l=[],d=this.shouldUpdate,p=[];e.getNodes().forEach(t=>{const n=t.getBBox();if(n.centerX>=u&&n.centerX<=c&&n.centerY>=h&&n.centerY<=f&&d(t,"select")){l.push(t);const n=t.getModel();p.push(n.id),e.setItemState(t,i,!0)}});const g=[];this.includeEdges&&l.forEach(t=>{const n=t.getEdges();n.forEach(t=>{const n=t.getModel(),{source:r,target:i}=n;p.includes(r)&&p.includes(i)&&d(t,"select")&&(g.push(t),e.setItemState(t,this.selectedState,!0))})}),this.selectedEdges=g,this.selectedNodes=l,this.onSelect&&this.onSelect(l,g),e.emit("nodeselectchange",{targets:{nodes:l,edges:g},select:!0})},_createBrush(){const t=this,e=t.graph.get("canvas").addShape("rect",{attrs:t.brushStyle,capture:!1});return this.brush=e,e},_updateBrush(t){const e=this.originPoint;this.brush.attr({width:i(t.canvasX-e.x),height:i(t.canvasY-e.y),x:n(t.canvasX,e.x),y:n(t.canvasY,e.y)})},onKeyDown(t){const e=t.key;e&&e.toLowerCase()===this.trigger.toLowerCase()||"control"===e.toLowerCase()?this.keydown=!0:this.keydown=!1},onKeyUp(){this.brush&&(this.brush.destroy(),this.brush=null,this.dragging=!1),this.keydown=!1}}},a69f:function(t,e,n){const r=n("1bb5"),i=n("3b0b");function a(t,e){return r.each(e,e=>{t.indexOf(e)<0&&(r.isString(e)&&(e={type:e}),t.push(e))}),t}function o(t,e){const n=[];return t.forEach(t=>{e.indexOf(t.type)<0&&n.push(t)}),n}class s{constructor(t){this.graph=t,this.modes=t.get("modes")||{default:[]},this._formatModes(),this.mode=t.get("defaultMode")||"default",this.currentBehaves=[],this.setMode(this.mode)}_formatModes(){const t=this.modes;r.each(t,t=>{r.each(t,(e,n)=>{r.isString(e)&&(t[n]={type:e})})})}setMode(t){const e=this.modes,n=this.graph,i=e[t];if(i)return n.emit("beforemodechange",{mode:t}),r.each(this.currentBehaves,t=>{t.unbind(n)}),this._setBehaviors(t),n.emit("aftermodechange",{mode:t}),this.mode=t,this}manipulateBehaviors(t,e,n){const i=this;return r.isArray(t)||(t=[t]),r.isArray(e)?(r.each(e,e=>{i.modes[e]?i.modes[e]=n?a(i.modes[e],t):o(i.modes[e],t):n&&(i.modes[e]=[].concat(t))}),this):(e||(e=this.mode),i.modes[e]=n?a(i.modes[e],t):o(i.modes[e],t),i.setMode(this.mode),this)}_setBehaviors(t){const e=this.graph,n=this.modes[t],a=[];let o;r.each(n,t=>{i.getBehavior(t.type)&&(o=new(i.getBehavior(t.type))(t),o&&o.bind(e),a.push(o))}),this.currentBehaves=a}destroy(){this.graph=null,this.modes=null,this.currentBehaves=null,this.destroyed=!0}}t.exports=s},a6d1:function(t,e,n){"use strict";var r=n("6f9c"),i=n("299f");function a(t){var e="greedy"===t.graph().acyclicer?i(t,n(t)):o(t);function n(t){return function(e){return t.edge(e).weight}}r.forEach(e,(function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,r.uniqueId("rev"))}))}function o(t){var e=[],n={},i={};function a(o){r.has(i,o)||(i[o]=!0,n[o]=!0,r.forEach(t.outEdges(o),(function(t){r.has(n,t.w)?e.push(t):a(t.w)})),delete n[o])}return r.forEach(t.nodes(),a),e}function s(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}}))}t.exports={run:a,undo:s}},a70c:function(t,e,n){var r=n("1c6a"),i=n("adff"),a=n("5134"),o=n("c4bc"),s=function t(e){t.superclass.constructor.call(this,e)};s.ATTRS={x1:0,y1:0,x2:0,y2:0,lineWidth:1,startArrow:!1,endArrow:!1},r.extend(s,i),r.augment(s,{canStroke:!0,type:"line",getDefaultAttrs:function(){return{lineWidth:1,startArrow:!1,endArrow:!1}},calculateBox:function(){var t=this._attrs,e=t.x1,n=t.y1,r=t.x2,i=t.y2,a=this.getHitLineWidth();return o.box(e,n,r,i,a)},createPath:function(t){var e=this,n=this._attrs,r=n.x1,i=n.y1,o=n.x2,s=n.y2;if(n.startArrow&&n.startArrow.d){var u=a.getShortenOffset(r,i,o,s,n.startArrow.d);r+=u.dx,i+=u.dy}if(n.endArrow&&n.endArrow.d){var c=a.getShortenOffset(r,i,o,s,n.endArrow.d);o-=c.dx,s-=c.dy}t=t||e.get("context"),t.beginPath(),t.moveTo(r,i),t.lineTo(o,s)},afterPath:function(t){var e=this,n=e._attrs,r=n.x1,i=n.y1,o=n.x2,s=n.y2;t=t||e.get("context"),n.startArrow&&a.addStartArrow(t,n,o,s,r,i),n.endArrow&&a.addEndArrow(t,n,r,i,o,s)},getPoint:function(t){var e=this._attrs;return{x:o.at(e.x1,e.x2,t),y:o.at(e.y1,e.y2,t)}}}),t.exports=s},a7b2:function(t,e,n){const r=n("1249"),i=n("1bb5"),a=n("9ed2"),o=n("15e8"),s="edge-shape";function u(t){let e=t;return"start"===t?e="end":"end"===t&&(e="start"),e}r.registerFactory("edge",{defaultShapeType:"line"});const c=i.mix({},o,{itemType:"edge",labelPosition:"center",labelAutoRotate:!1,getPath(t){const e=[];return i.each(t,(t,n)=>{0===n?e.push(["M",t.x,t.y]):e.push(["L",t.x,t.y])}),e},getShapeStyle(t){const e=this.getCustomConfig(t)||{},{style:n}=this.options,{style:r}=e,o={stroke:t.color},s=i.deepMix({},n,r,o,t.style),u=t.size||a.defaultEdge.size;t=this.getPathPoints(t);const c=t.startPoint,h=t.endPoint,f=this.getControlPoints(t);let l=[c];f&&(l=l.concat(f)),l.push(h);const d=this.getPath(l),p=i.mix({},a.defaultEdge.style,{stroke:a.defaultEdge.color,lineWidth:u,path:d},s);return p},getLabelStyleByPosition(t,e,n){const r=e.position||this.labelPosition,a={},o=n.findByClassName(s);let u;u="start"===r?0:"end"===r?1:.5;const{refX:c,refY:h}=e;if(t.startPoint.x===t.endPoint.x&&t.startPoint.y===t.endPoint.y)return a.x=t.startPoint.x+c?c:0,a.y=t.endPoint.y+h?h:0,a;const f=i.isNil(e.autoRotate)?this.labelAutoRotate:e.autoRotate,l=i.getLabelPosition(o,u,c,h,f);return a.x=l.x,a.y=l.y,a.rotate=l.rotate,a.textAlign=this._getTextAlign(r,l.angle),a},_getTextAlign(t,e){let n="center";return e?(e%=2*Math.PI,"center"!==t&&(n=e>=0&&e<=Math.PI/2||e>=1.5*Math.PI&&e<2*Math.PI?t:u(t)),n):t},getControlPoints(t){return t.controlPoints},getPathPoints(t){return t},drawShape(t,e){const n=this.getShapeStyle(t),r=e.addShape("path",{className:s,attrs:n});return r},drawLabel(t,e){const n=this.getCustomConfig(t)||{},r=n.default||{},a=i.deepMix({},this.options.labelCfg,r.labelCfg,t.labelCfg),o=this.getLabelStyle(t,a,e),s=e.addShape("text",{attrs:o});return s}});r.registerEdge("single-line",c),r.registerEdge("line",{getControlPoints(){return[]}},"single-line"),r.registerEdge("spline",{getPath(t){const e=i.getSpline(t);return e}},"single-line"),r.registerEdge("arc",{curveOffset:20,clockwise:1,getControlPoints(t){const e=t.startPoint,n=t.endPoint,r={x:(e.x+n.x)/2,y:(e.y+n.y)/2};let a,o;if(void 0!==t.controlPoints){if(o=t.controlPoints[0],a=i.getCircleCenterByPoints(e,o,n),e.x<=n.x&&e.y>n.y?this.clockwise=a.x>r.x?1:0:e.x<=n.x&&e.yr.x?0:1:(e.x>n.x&&(e.y,n.y),this.clockwise=a.yp.length?(d=i.parsePathString(o[l]),p=i.parsePathString(s[l]),p=i.fillPathByDiff(p,d),p=i.formatPath(p,d),e.fromAttrs.path=p,e.toAttrs.path=d):e.pathFormatted||(d=i.parsePathString(o[l]),p=i.parsePathString(s[l]),p=i.formatPath(p,d),e.fromAttrs.path=p,e.toAttrs.path=d,e.pathFormatted=!0),a[l]=[];for(var g=0;g0){for(var s=r._animators.length-1;s>=0;s--)if(t=r._animators[s],t.get("destroyed"))i.removeAnimator(s);else{if(!t.get("pause").isPaused){e=t.get("animators");for(var u=e.length-1;u>=0;u--)n=e[u],o=l(t,n,a),o&&(e.splice(u,1),o=!1,n.callback&&n.callback())}0===e.length&&i.removeAnimator(s)}r.canvas.draw()}}))},addAnimator:function(t){this._animators.push(t)},removeAnimator:function(t){this._animators.splice(t,1)},isAnimating:function(){return!!this._animators.length},stop:function(){this._timer&&this._timer.stop()},stopAllAnimations:function(){this._animators.forEach((function(t){t.stopAnimate()})),this._animators=[],this.canvas.draw()},getTime:function(){return this._current}}),t.exports=h},ace3:function(t,e,n){const r=n("4651"),i=n("3421");function a(t,e,n){const r=[];for(let i=0;i{r[e.get(t.source)]+=1,r[e.get(t.target)]+=1}),r}r.registerLayout("concentric",{getDefaultCfg(){return{center:[0,0],nodeSize:30,minNodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:1.5*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"}},execute(){const t=this,e=t.nodes,n=t.edges,r=e.length,o=t.center;if(0===r)return;if(1===r)return e[0].x=o[0],void(e[0].y=o[1]);const s=[];let u;u=isNaN(t.nodeSize)?Math.max(t.nodeSize[0],t.nodeSize[1]):t.nodeSize,e.forEach(t=>{let e;s.push(t),e=isNaN(t.size)?Math.max(t.size[0],t.size[1]):t.size,u=Math.max(u,e)});let c=t.width;c||"undefined"===typeof window||(c=window.innerWidth);let h=t.height;h||"undefined"===typeof h||(h=window.innerHeight),t.clockwise=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise;const f=new Map,l=new Map;if(s.forEach((t,e)=>{f.set(t.id,t),l.set(t.id,e)}),t.nodeMap=f,("degree"===t.sortBy||!i(t.sortBy)||void 0===s[0][t.sortBy])&&(t.sortBy="degree",isNaN(e[0].degree))){const t=a(e.length,l,n);s.forEach((e,n)=>{e.degree=t[n]})}s.sort((e,n)=>n[t.sortBy]-e[t.sortBy]),t.maxValueNode=s[0],t.maxLevelDiff=t.maxLevelDiff||t.maxValueNode[t.sortBy]/4;const d=[[]];let p=d[0];s.forEach(e=>{if(p.length>0){const n=Math.abs(p[0][t.sortBy]-e[t.sortBy]);n>=t.maxLevelDiff&&(p=[],d.push(p))}p.push(e)});let g=u+t.minNodeSpacing;if(!t.preventOverlap){const e=d.length>0&&d[0].length>1,n=Math.min(t.width,t.height)/2-g,r=n/(d.length+e?1:0);g=Math.min(g,r)}let v=0;if(d.forEach(e=>{const n=void 0===t.sweep?2*Math.PI-2*Math.PI/e.length:t.sweep,r=e.dTheta=n/Math.max(1,e.length-1);if(e.length>1&&t.preventOverlap){const t=Math.cos(r)-Math.cos(0),e=Math.sin(r)-Math.sin(0),n=Math.sqrt(g*g/(t*t+e*e));v=Math.max(n,v)}e.r=v,v+=g}),t.equidistant){let t=0,e=0;for(let n=0;n{0===r&&(e=n.r),n.r=e,e+=t})}d.forEach(e=>{const n=e.dTheta,r=e.r;e.forEach((e,i)=>{const a=t.startAngle+(t.clockwise?1:-1)*n*i;e.x=o[0]+r*Math.cos(a),e.y=o[1]+r*Math.sin(a)})})}})},ad2d:function(t,e,n){var r=n("1c6a");function i(t){return 1===t[0]&&0===t[1]&&0===t[3]&&1===t[4]&&0===t[6]&&0===t[7]}function a(t){return 0===t[1]&&0===t[3]&&0===t[6]&&0===t[7]}function o(t,e){i(e)||(a(e)?(t[0]*=e[0],t[4]*=e[4]):r.mat3.multiply(t,t,e))}t.exports={initTransform:function(){},resetMatrix:function(){this.attr("matrix",[1,0,0,0,1,0,0,0,1])},translate:function(t,e){var n=this._attrs.matrix;return r.mat3.translate(n,n,[t,e]),this.clearTotalMatrix(),this.attr("matrix",n),this},rotate:function(t){var e=this._attrs.matrix;return r.mat3.rotate(e,e,t),this.clearTotalMatrix(),this.attr("matrix",e),this},scale:function(t,e){var n=this._attrs.matrix;return r.mat3.scale(n,n,[t,e]),this.clearTotalMatrix(),this.attr("matrix",n),this},rotateAtStart:function(t){var e=this._attrs.x||this._cfg.attrs.x,n=this._attrs.y||this._cfg.attrs.y;return Math.abs(t)>2*Math.PI&&(t=t/180*Math.PI),this.transform([["t",-e,-n],["r",t],["t",e,n]])},move:function(t,e){var n=this.get("x")||0,r=this.get("y")||0;return this.translate(t-n,e-r),this.set("x",t),this.set("y",e),this},transform:function(t){var e=this,n=this._attrs.matrix;return r.each(t,(function(t){switch(t[0]){case"t":e.translate(t[1],t[2]);break;case"s":e.scale(t[1],t[2]);break;case"r":e.rotate(t[1]);break;case"m":e.attr("matrix",r.mat3.multiply([],n,t[1])),e.clearTotalMatrix();break;default:break}})),e},setTransform:function(t){return this.attr("matrix",[1,0,0,0,1,0,0,0,1]),this.transform(t)},getMatrix:function(){return this.attr("matrix")},setMatrix:function(t){return this.attr("matrix",t),this.clearTotalMatrix(),this},apply:function(t,e){var n;return n=e?this._getMatrixByRoot(e):this.attr("matrix"),r.vec3.transformMat3(t,t,n),this},_getMatrixByRoot:function(t){var e=this;t=t||e;var n=e,i=[];while(n!==t)i.unshift(n),n=n.get("parent");i.unshift(n);var a=[1,0,0,0,1,0,0,0,1];return r.each(i,(function(t){r.mat3.multiply(a,t.attr("matrix"),a)})),a},getTotalMatrix:function(){var t=this._cfg.totalMatrix;if(!t){t=[1,0,0,0,1,0,0,0,1];var e=this._cfg.parent;if(e){var n=e.getTotalMatrix();o(t,n)}o(t,this.attr("matrix")),this._cfg.totalMatrix=t}return t},clearTotalMatrix:function(){},invert:function(t){var e=this.getTotalMatrix();if(a(e))t[0]/=e[0],t[1]/=e[4];else{var n=r.mat3.invert([],e);n&&r.vec3.transformMat3(t,t,n)}return this},resetTransform:function(t){var e=this.attr("matrix");i(e)||t.transform(e[0],e[1],e[3],e[4],e[6],e[7])}}},adff:function(t,e,n){var r=n("1c6a"),i=n("9aa8"),a=n("78ea"),o=n("4875"),s=["zIndex","capture","visible"],u=function t(e){t.superclass.constructor.call(this,e)};u.ATTRS={},r.extend(u,a);var c={matrix:"matrix",path:"path",points:"points",lineDash:"lineDash"};function h(t){for(var e=[],n=0;n0){var s=n.strokeOpacity;r.isNil(s)||1===s||(t.globalAlpha=s),t.stroke()}}e.afterPath(t)},afterPath:function(){},isHitBox:function(){return!0},isHit:function(t,e){var n=this,r=[t,e,1];if(n.invert(r),n.isHitBox()){var i=n.getBBox();if(i&&!o.box(i.minX,i.maxX,i.minY,i.maxY,r[0],r[1]))return!1}var a=n._attrs.clip;return a?(a.invert(r,n.get("canvas")),!!a.isPointInPath(r[0],r[1])&&n.isPointInPath(r[0],r[1])):n.isPointInPath(r[0],r[1])},calculateBox:function(){return null},getHitLineWidth:function(){var t=this._attrs,e=t.lineAppendWidth||0,n=t.lineWidth||0;return n+e},clearTotalMatrix:function(){this._cfg.totalMatrix=null,this._cfg.region=null},clearBBox:function(){this._cfg.box=null,this._cfg.region=null},getBBox:function(){var t=this._cfg.box;return t||(t=this.calculateBox(),t&&(t.x=t.minX,t.y=t.minY,t.width=t.maxX-t.minX,t.height=t.maxY-t.minY),this._cfg.box=t),t},clone:function(){var t=this,e=null,n=t._attrs,i={};return r.each(n,(function(t,e){c[e]&&r.isArray(n[e])?i[e]=h(n[e]):i[e]=n[e]})),e=new t.constructor({attrs:i}),r.each(s,(function(n){e._cfg[n]=t._cfg[n]})),e}}),t.exports=u},b047:function(t,e){function n(t){return function(e){return t(e)}}t.exports=n},b0b3:function(t,e,n){t.exports={Canvas:n("7c2e"),Group:n("5869"),Shape:n("adff"),Arc:n("8563"),Circle:n("24db"),Dom:n("ba6c"),Ellipse:n("b5c7"),Fan:n("964f"),Image:n("c67d"),Line:n("a70c"),Marker:n("188c"),Path:n("d213"),Polygon:n("4ef2"),Polyline:n("321c"),Rect:n("0528"),Text:n("3cbc"),PathSegment:n("4980"),PathUtil:n("4a80"),Event:n("9f57"),EventEmitter:n("51ad"),version:"3.4.10"}},b0b4:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n("85f2"),i=n.n(r);function a(t,e){for(var n=0;n-1&&t%1==0&&t<=n}t.exports=r},b4c0:function(t,e,n){var r=n("cb5a");function i(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}t.exports=i},b50e:function(t,e,n){"use strict";var r=n("6f9c"),i=n("17d5").Graph;function a(t,e,n,i){var a;do{a=r.uniqueId(i)}while(t.hasNode(a));return n.dummy=e,t.setNode(a,n),a}function o(t){var e=(new i).setGraph(t.graph());return r.forEach(t.nodes(),(function(n){e.setNode(n,t.node(n))})),r.forEach(t.edges(),(function(n){var r=e.edge(n.v,n.w)||{weight:0,minlen:1},i=t.edge(n);e.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})})),e}function s(t){var e=new i({multigraph:t.isMultigraph()}).setGraph(t.graph());return r.forEach(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),r.forEach(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e}function u(t){var e=r.map(t.nodes(),(function(e){var n={};return r.forEach(t.outEdges(e),(function(e){n[e.w]=(n[e.w]||0)+t.edge(e).weight})),n}));return r.zipObject(t.nodes(),e)}function c(t){var e=r.map(t.nodes(),(function(e){var n={};return r.forEach(t.inEdges(e),(function(e){n[e.v]=(n[e.v]||0)+t.edge(e).weight})),n}));return r.zipObject(t.nodes(),e)}function h(t,e){var n,r,i=t.x,a=t.y,o=e.x-i,s=e.y-a,u=t.width/2,c=t.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*u>Math.abs(o)*c?(s<0&&(c=-c),n=c*o/s,r=c):(o<0&&(u=-u),n=u,r=u*s/o),{x:i+n,y:a+r}}function f(t){var e=r.map(r.range(g(t)+1),(function(){return[]}));return r.forEach(t.nodes(),(function(n){var i=t.node(n),a=i.rank;r.isUndefined(a)||(e[a][i.order]=n)})),e}function l(t){var e=r.min(r.map(t.nodes(),(function(e){return t.node(e).rank})));r.forEach(t.nodes(),(function(n){var i=t.node(n);r.has(i,"rank")&&(i.rank-=e)}))}function d(t){var e=r.min(r.map(t.nodes(),(function(e){return t.node(e).rank}))),n=[];r.forEach(t.nodes(),(function(r){var i=t.node(r).rank-e;n[i]||(n[i]=[]),n[i].push(r)}));var i=0,a=t.graph().nodeRankFactor;r.forEach(n,(function(e,n){r.isUndefined(e)&&n%a!==0?--i:i&&r.forEach(e,(function(e){t.node(e).rank+=i}))}))}function p(t,e,n,r){var i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),a(t,"border",i,e)}function g(t){return r.max(r.map(t.nodes(),(function(e){var n=t.node(e).rank;if(!r.isUndefined(n))return n})))}function v(t,e){var n={lhs:[],rhs:[]};return r.forEach(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n}function m(t,e){var n=r.now();try{return e()}finally{console.log(t+" time: "+(r.now()-n)+"ms")}}function y(t,e){return e()}t.exports={addDummyNode:a,simplify:o,asNonCompoundGraph:s,successorWeights:u,predecessorWeights:c,intersectRect:h,buildLayerMatrix:f,normalizeRanks:l,removeEmptyRanks:d,addBorderNode:p,maxRank:g,partition:v,time:m,notime:y}},b5a7:function(t,e,n){var r=n("0b07"),i=n("2b3e"),a=r(i,"DataView");t.exports=a},b5ae:function(t,e,n){"use strict";n.r(e);var r=n("74f4"),i=function(t,e,n){var i=new r["a"];return e=null==e?0:+e,i.restart((function(n){i.stop(),t(n+e)}),e,n),i},a=function(t,e,n){var i=new r["a"],a=e;return null==e?(i.restart(t,e,n),i):(e=+e,n=null==n?Object(r["b"])():+n,i.restart((function r(o){o+=a,i.restart(r,a+=e,n),t(o)}),e,n),i)};n.d(e,"now",(function(){return r["b"]})),n.d(e,"timer",(function(){return r["c"]})),n.d(e,"timerFlush",(function(){return r["d"]})),n.d(e,"timeout",(function(){return i})),n.d(e,"interval",(function(){return a}))},b5c7:function(t,e,n){var r=n("1c6a"),i=n("adff"),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={x:0,y:0,rx:1,ry:1,lineWidth:1},r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"ellipse",getDefaultAttrs:function(){return{lineWidth:1}},calculateBox:function(){var t=this._attrs,e=t.x,n=t.y,r=t.rx,i=t.ry,a=this.getHitLineWidth(),o=r+a/2,s=i+a/2;return{minX:e-o,minY:n-s,maxX:e+o,maxY:n+s}},createPath:function(t){var e=this._attrs,n=e.x,i=e.y,a=e.rx,o=e.ry;t=t||self.get("context");var s=a>o?a:o,u=a>o?1:a/o,c=a>o?o/a:1,h=[1,0,0,0,1,0,0,0,1];r.mat3.scale(h,h,[u,c]),r.mat3.translate(h,h,[n,i]),t.beginPath(),t.save(),t.transform(h[0],h[1],h[3],h[4],h[6],h[7]),t.arc(0,0,s,0,2*Math.PI),t.restore(),t.closePath()}}),t.exports=a},b760:function(t,e,n){var r=n("872a"),i=n("9638");function a(t,e,n){(void 0!==n&&!i(t[e],n)||void 0===n&&!(e in t))&&r(t,e,n)}t.exports=a},b8bd:function(t,e){var n={}.toString,r=function(t){return n.call(t).replace(/^\[object /,"").replace(/\]$/,"")};t.exports=r},b8ce:function(t,e,n){var r=n("3818"),i=4;function a(t){return r(t,i)}t.exports=a},b951:function(t,e,n){const r=n("e00d"),i=n("2599"),{LAYOUT_MESSAGE:a}=i;function o(t){const{type:e}=t.data;return e===a.RUN}function s(t){const{type:e}=t.data;switch(e){case a.RUN:{const{nodes:e,edges:n,layoutCfg:i={}}=t.data,{type:o}=i,s=r[o];if(!s){postMessage({type:a.ERROR,message:`layout ${o} not found`});break}const u=new s(i);u.init({nodes:e,edges:n}),u.execute(),postMessage({type:a.END,nodes:e}),u.destroy();break}default:break}}self.onmessage=t=>{o(t)&&s(t)}},ba03:function(t,e,n){var r=n("1c6a"),i=function(){function t(t,e){var n=document.createElementNS("http://www.w3.org/2000/svg","marker"),i=r.uniqueId("marker_");n.setAttribute("id",i);var a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("stroke","none"),a.setAttribute("fill",t.stroke||"#000"),n.appendChild(a),n.setAttribute("overflow","visible"),n.setAttribute("orient","auto-start-reverse"),this.el=n,this.child=a,this.id=i,this.cfg=t["marker-start"===e?"startArrow":"endArrow"],this.stroke=t.stroke||"#000",!0===this.cfg?this._setDefaultPath(e,a):this._setMarker(t.lineWidth,a),this}var e=t.prototype;return e.match=function(){return!1},e._setDefaultPath=function(t,e){var n=this.el;e.setAttribute("d","M0,0 L6,3 L0,6 L3,3Z"),n.setAttribute("refX",3),n.setAttribute("refY",3)},e._setMarker=function(t,e){var n=this.el,i=this.cfg.path,a=this.cfg.d;r.isArray(i)&&(i=i.map((function(t){return t.join(" ")})).join("")),e.setAttribute("d",i),n.appendChild(e),a&&n.setAttribute("refX",a/t)},e.update=function(t){var e=this.child;e.attr?e.attr("fill",t):e.setAttribute("fill",t)},t}();t.exports=i},ba6c:function(t,e,n){var r=n("1c6a"),i=n("adff"),a=function t(e){t.superclass.constructor.call(this,e)};r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"dom",calculateBox:function(){var t=this,e=t._attrs,n=e.x,r=e.y,i=e.width,a=e.height,o=this.getHitLineWidth(),s=o/2;return{minX:n-s,minY:r-s,maxX:n+i+s,maxY:r+a+s}}}),t.exports=a},badf:function(t,e,n){var r=n("642a"),i=n("1838"),a=n("cd9d"),o=n("6747"),s=n("f9ce");function u(t){return"function"==typeof t?t:null==t?a:"object"==typeof t?o(t)?i(t[0],t[1]):r(t):s(t)}t.exports=u},bbc0:function(t,e,n){var r=n("6044"),i="__lodash_hash_undefined__",a=Object.prototype,o=a.hasOwnProperty;function s(t){var e=this.__data__;if(r){var n=e[t];return n===i?void 0:n}return o.call(e,t)?e[t]:void 0}t.exports=s},bcd0:function(t,e,n){const r=n("1249");n("9dfc"),n("a7b2"),n("bcd6"),n("0e3c"),t.exports=r},bcd6:function(t,e,n){n("4883"),n("27998"),n("3494"),n("fc14"),n("3a95"),n("7493"),n("9d1d"),n("ec19")},bda5:function(t,e){var n=180/Math.PI,r=function(t){return n*t};t.exports=r},bfa1:function(t,e,n){var r=n("1c6a"),i=n("6ad1"),a=n("0eee"),o=n("ba03"),s=n("9edc"),u=n("5a21"),c=function(){function t(t){var e=document.createElementNS("http://www.w3.org/2000/svg","defs"),n=r.uniqueId("defs_");e.id=n,t.appendChild(e),this.children=[],this.defaultArrow={},this.el=e,this.canvas=t}var e=t.prototype;return e.find=function(t,e){for(var n=this.children,r=null,i=0;i{!e.destroyed&&e.initPlugin&&e.initPlugin(t)})}get(t){return this._cfg[t]}set(t,e){return s.isPlainObject(t)?this._cfg=s.mix({},this._cfg,t):this._cfg[t]=e,this}update(t,e){this.updateItem(t,e)}updateItem(t,e){this.get("itemController").updateItem(t,e)}setItemState(t,e,n){s.isString(t)&&(t=this.findById(t)),this.get("itemController").setItemState(t,e,n),this.get("stateController").updateState(t,e,n)}clearItemStates(t,e){s.isString(t)&&(t=this.findById(t)),this.get("itemController").clearItemStates(t,e),e||(e=t.get("states")),this.get("stateController").updateStates(t,e,!1)}add(t,e){return this.addItem(t,e)}addItem(t,e){if("group"===t){const{groupId:t,nodes:n,type:r,zIndex:a,title:o}=e;let s=o;return i(o)&&(s={text:o}),this.get("customGroupControll").create(t,n,r,a,!0,s)}return this.get("itemController").addItem(t,e)}remove(t){this.removeItem(t)}removeItem(t){let e=null;s.isString(t)&&(e=this.findById(t)),!e&&s.isString(t)?this.get("customGroupControll").remove(t):this.get("itemController").removeItem(t)}data(t){this.set("data",t)}node(t){"function"===typeof t&&this.set("nodeMapper",t)}edge(t){"function"===typeof t&&this.set("edgeMapper",t)}refreshItem(t){this.get("itemController").refreshItem(t)}refresh(){const t=this,e=t.get("autoPaint");if(t.setAutoPaint(!1),t.emit("beforegraphrefresh"),t.get("animate"))t.positionsAnimate();else{const e=t.get("nodes"),n=t.get("edges");s.each(e,t=>{t.refresh()}),s.each(n,t=>{t.refresh()})}t.setAutoPaint(e),t.emit("aftergraphrefresh"),t.autoPaint()}refreshPositions(){const t=this;t.emit("beforegraphrefreshposition");const e=t.get("nodes"),n=t.get("edges");let r;s.each(e,t=>{r=t.getModel(),t.updatePosition(r)}),s.each(n,t=>{t.refresh()}),t.emit("aftergraphrefreshposition"),t.autoPaint()}render(){const t=this,e=this.get("data");if(!e)throw new Error("data must be defined first");this.clear(),this.emit("beforerender");const n=this.get("autoPaint");if(this.setAutoPaint(!1),s.each(e.nodes,e=>{t.add(h,e)}),s.each(e.edges,e=>{t.add(f,e)}),e.nodes){const n=e.nodes.filter(t=>t.groupId);if(n.length>0){const n=t.get("groupType");this.renderCustomGroup(e,n)}}if(!this.get("groupByTypes"))if(e.nodes.length{t.toFront()})}else{const t=this.getEdges();t.forEach(t=>{t.toBack()})}const r=t.get("layoutController");function i(){t.get("fitView")&&t.get("viewController")._fitView(),t.paint(),t.setAutoPaint(n),t.emit("afterrender")}r.layout(i)||i()}renderCustomGroup(t,e){const{groups:n,nodes:i}=t;let a=10;if(n){this.set({groups:n});const r=s.getAllNodeInGroups(t);for(const t in r){const n=r[t];this.get("customGroupControll").create(t,n,e,a),a--}const i=this.get("customGroup");i.sort()}else{const t=i.filter(t=>t.groupId),n=[],o=r(t,"groupId");for(const r in o){const t=o[r].map(t=>t.id);this.get("customGroupControll").create(r,t,e,a),a--,n.find(t=>t.id===r)||n.push({id:r})}this.set({groups:n})}}read(t){this.data(t),this.render()}changeData(t){const e=this;if(!t)return this;e.get("data")||(e.data(t),e.render());const n=this.get("autoPaint"),r=this.get("itemMap"),i={nodes:[],edges:[]};this.setAutoPaint(!1),this._diffItems(h,i,t.nodes),this._diffItems(f,i,t.edges),s.each(r,(t,n)=>{i.nodes.indexOf(t)<0&&i.edges.indexOf(t)<0&&(delete r[n],e.remove(t))}),this.set({nodes:i.nodes,edges:i.edges});const a=this.get("layoutController");return a.changeData(),this.setAutoPaint(n),this}_diffItems(t,e,n){const r=this;let i;const a=this.get("itemMap");s.each(n,n=>{if(i=a[n.id],i){if(r.get("animate")&&t===h){const t=i.getContainer().getMatrix();i.set("originAttrs",{x:t[6],y:t[7]})}r.updateItem(i,n)}else i=r.addItem(t,n);e[t+"s"].push(i)})}paint(){this.emit("beforepaint"),this.get("canvas").draw(),this.emit("afterpaint")}autoPaint(){this.get("autoPaint")&&this.paint()}save(){const t=[],e=[];return s.each(this.get("nodes"),e=>{t.push(e.getModel())}),s.each(this.get("edges"),t=>{e.push(t.getModel())}),{nodes:t,edges:e,groups:this.get("groups")}}changeSize(t,e){return this.get("viewController").changeSize(t,e),this.autoPaint(),this}translate(t,e){const n=this.get("group");n.translate(t,e),this.emit("viewportchange",{action:"translate",matrix:n.getMatrix()}),this.autoPaint()}moveTo(t,e){const n=this.get("group");n.move(t,e),this.emit("viewportchange",{action:"move",matrix:n.getMatrix()}),this.autoPaint()}fitView(t){t&&this.set("fitViewPadding",t),this.get("viewController")._fitView(),this.paint()}addBehaviors(t,e){return this.get("modeController").manipulateBehaviors(t,e,!0),this}removeBehaviors(t,e){return this.get("modeController").manipulateBehaviors(t,e,!1),this}setMode(t){return this.set("mode",t),this.get("modeController").setMode(t),this}getCurrentMode(){return this.get("mode")}getZoom(){return this.get("group").getMatrix()[0]}getNodes(){return this.get("nodes")}getEdges(){return this.get("edges")}zoom(t,e){const n=s.clone(this.get("group").getMatrix()),r=this.get("minZoom"),i=this.get("maxZoom");e?(s.mat3.translate(n,n,[-e.x,-e.y]),s.mat3.scale(n,n,[t,t]),s.mat3.translate(n,n,[e.x,e.y])):s.mat3.scale(n,n,[t,t]),r&&n[0]i||(this.get("group").setMatrix(n),this.emit("viewportchange",{action:"zoom",matrix:n}),this.autoPaint())}zoomTo(t,e){const n=t/this.getZoom();this.zoom(n,e)}positionsAnimate(){const t=this;t.emit("beforeanimate");const e=t.get("animateCfg"),n=e.onFrame,r=t.getNodes(),i=r.map(t=>{const e=t.getModel();return{id:e.id,x:e.x,y:e.y}});t.isAnimating()&&t.stopAnimate(),t.get("canvas").animate({onFrame(e){s.each(i,r=>{const i=t.findById(r.id);if(!i||i.destroyed)return;let a=i.get("originAttrs");const o=i.get("model");if(!a){const t=i.getContainer().getMatrix();a={x:t[6],y:t[7]},i.set("originAttrs",a)}if(n){const t=n(i,e,r,a);i.set("model",s.mix(o,t))}else o.x=a.x+(r.x-a.x)*e,o.y=a.y+(r.y-a.y)*e}),t.refreshPositions()}},e.duration,e.easing,()=>{s.each(r,t=>{t.set("originAttrs",null)}),e.callback&&e.callback(),t.emit("afteranimate"),t.animating=!1})}stopAnimate(){this.get("canvas").stopAnimate()}isAnimating(){return this.animating}focusItem(t){this.get("viewController").focus(t),this.autoPaint()}getPointByClient(t,e){return this.get("viewController").getPointByClient(t,e)}getClientByPoint(t,e){return this.get("viewController").getClientByPoint(t,e)}getPointByCanvas(t,e){return this.get("viewController").getPointByCanvas(t,e)}getCanvasByPoint(t,e){return this.get("viewController").getCanvasByPoint(t,e)}showItem(t){this.get("itemController").changeItemVisibility(t,!0)}hideItem(t){this.get("itemController").changeItemVisibility(t,!1)}findById(t){return this.get("itemMap")[t]}find(t,e){let n;const r=this.get(t+"s");return s.each(r,(t,r)=>{if(e(t,r))return n=t,!1}),n}findAll(t,e){const n=[];return s.each(this.get(t+"s"),(t,r)=>{e(t,r)&&n.push(t)}),n}findAllByState(t,e){return this.findAll(t,t=>t.hasState(e))}setAutoPaint(t){this.set("autoPaint",t)}toDataURL(){const t=this.get("canvas"),e=t.getRenderer(),n=t.get("el");let r="";if("svg"===e){const t=n.cloneNode(!0),e=document.implementation.createDocumentType("svg","-//W3C//DTD SVG 1.1//EN","http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"),i=document.implementation.createDocument("http://www.w3.org/2000/svg","svg",e);i.replaceChild(t,i.documentElement);const a=(new XMLSerializer).serializeToString(i);r="data:image/svg+xml;charset=utf8,"+encodeURIComponent(a)}else"canvas"===e&&(r=n.toDataURL("image/png"));return r}downloadImage(t){const e=this;e.isAnimating()&&e.stopAnimate();const n=e.get("canvas"),r=n.getRenderer(),i=(t||"graph")+("svg"===r?".svg":".png"),a=document.createElement("a");setTimeout(()=>{const t=e.toDataURL();if("undefined"!==typeof window)if(window.Blob&&window.URL&&"svg"!==r){const e=t.split(","),n=e[0].match(/:(.*?);/)[1],r=atob(e[1]);let o=r.length;const s=new Uint8Array(o);while(o--)s[o]=r.charCodeAt(o);const u=new Blob([s],{type:n});window.navigator.msSaveBlob?window.navigator.msSaveBlob(u,i):a.addEventListener("click",(function(){a.download=i,a.href=window.URL.createObjectURL(u)}))}else a.addEventListener("click",(function(){a.download=i,a.href=t}));const n=document.createEvent("MouseEvents");n.initEvent("click",!1,!1),a.dispatchEvent(n)},16)}addPlugin(t){const e=this;t.destroyed||(e.get("plugins").push(t),t.initPlugin(e))}removePlugin(t){const e=this.get("plugins"),n=e.indexOf(t);n>=0&&(t.destroyPlugin(),e.splice(n,1))}updateLayout(t){const e=this.get("layoutController");let n;s.isString(t)?(n=t,t={type:n}):n=t.type;const r=this.get("layout"),i=r?r.type:void 0;if(n&&i!==n)this.set("layout",t),e.changeLayout(n);else{const n={};s.mix(n,r,t),n.type=i||"random",this.set("layout",n),e.updateLayoutCfg(n)}}layout(){const t=this.get("layoutController"),e=this.get("layout");e.workerEnabled?t.layout():t.layoutMethod?t.relayout():t.layout()}clear(){const t=this.get("canvas");return t.clear(),this._initGroups(),this.set({itemMap:{},nodes:[],edges:[],groups:[]}),this}destroy(){this.clear(),s.each(this.get("plugins"),t=>{t.destroyPlugin()}),this.get("eventController").destroy(),this.get("itemController").destroy(),this.get("modeController").destroy(),this.get("viewController").destroy(),this.get("stateController").destroy(),this.get("layoutController").destroy(),this.get("customGroupControll").destroy(),this.get("canvas").destroy(),this._cfg=null,this.destroyed=!0}collapseGroup(t){this.get("customGroupControll").collapseGroup(t)}expandGroup(t){this.get("customGroupControll").expandGroup(t)}}t.exports=l},c05f:function(t,e,n){var r=n("7b97"),i=n("1310");function a(t,e,n,o,s){return t===e||(null==t||null==e||!i(t)&&!i(e)?t!==t&&e!==e:r(t,e,n,o,a,s))}t.exports=a},c077:function(t,e,n){const r=n("4651");r.registerLayout("random",{getDefaultCfg(){return{center:[0,0],height:300,width:300}},execute(){const t=this,e=t.nodes,n=.9,r=t.center;let i=t.width;i||"undefined"===typeof window||(i=window.innerWidth);let a=t.height;a||"undefined"===typeof a||(a=window.innerHeight),e.forEach(t=>{t.x=(Math.random()-.5)*n*i+r[0],t.y=(Math.random()-.5)*n*a+r[1]})}})},c0983:function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;function i(t,e){var i=typeof t;return e=null==e?n:e,!!e&&("number"==i||"symbol"!=i&&r.test(t))&&t>-1&&t%1==0&&t=e&&t<=n},getLineIntersect(t,e,n,r){const o={x:n.x-t.x,y:n.y-t.y},s={x:e.x-t.x,y:e.y-t.y},u={x:r.x-n.x,y:r.y-n.y},c=s.x*u.y-s.y*u.x,h=c*c,f=s.x*s.x+s.y*s.y,l=u.x*u.x+u.y*u.y;let d=null;if(h>i*f*l){const e=(o.x*u.y-o.y*u.x)/c,n=(o.x*s.y-o.y*s.x)/c;a.isBetween(e,0,1)&&a.isBetween(n,0,1)&&(d={x:t.x+e*s.x,y:t.y+e*s.y})}return d},getRectIntersectByPoint(t,e){const{x:n,y:r,width:i,height:o}=t,s=n+i/2,u=r+o/2,c=[],h={x:s,y:u};c.push({x:n,y:r}),c.push({x:n+i,y:r}),c.push({x:n+i,y:r+o}),c.push({x:n,y:r+o}),c.push({x:n,y:r});let f=null;for(let l=1;l0)for(let e=0;ec&&(h=c),e.zoom(h,o)}focusPoint(t){const e=this._getViewCenter(),n=this.getPointByCanvas(e.x,e.y),r=this.graph.get("group").getMatrix();this.graph.translate((n.x-t.x)*r[0],(n.y-t.y)*r[4])}getPointByClient(t,e){const n=this.graph.get("canvas"),r=n.get("pixelRatio"),i=n.getPointByClient(t,e);return this.getPointByCanvas(i.x/r,i.y/r)}getClientByPoint(t,e){const n=this.graph.get("canvas"),r=this.getCanvasByPoint(t,e),i=n.get("pixelRatio"),a=n.getClientByPoint(r.x*i,r.y*i);return{x:a.clientX,y:a.clientY}}getPointByCanvas(t,e){const n=this.graph.get("group").getMatrix(),i=r.invertMatrix({x:t,y:e},n);return i}getCanvasByPoint(t,e){const n=this.graph.get("group").getMatrix();return r.applyMatrix({x:t,y:e},n)}focus(t){if(r.isString(t)&&(t=this.graph.findById(t)),t){const e=t.get("group").getMatrix();this.focusPoint({x:e[6],y:e[7]})}}changeSize(t,e){if(!r.isNumber(t)||!r.isNumber(e))throw Error("invalid canvas width & height");const n=this.graph;n.set({width:t,height:e});const i=this.graph.get("canvas");i.changeSize(t,e)}_getViewCenter(){const t=this.getFormatPadding(),e=this.graph,n=this.graph.get("width"),r=e.get("height");return{x:(n-t[2]-t[3])/2+t[3],y:(r-t[0]-t[2])/2+t[0]}}destroy(){this.graph=null,this.destroyed=!0}}t.exports=i},c3cd:function(t,e){t.exports="2.1.8"},c3fc:function(t,e,n){var r=n("42a2"),i=n("1310"),a="[object Set]";function o(t){return i(t)&&r(t)==a}t.exports=o},c424:function(t,e,n){const r=n("1bb5"),i={registerBehavior:function(t,e){if(!e)throw new Error("please specify handler for this behavior:"+t);const n=function(t){const e=this;r.mix(e,e.getDefaultCfg(),t);const n=e.getEvents();if(n){const t={};r.each(n,(n,i)=>{t[i]=r.wrapBehavior(e,n)}),this._events=t}};r.augment(n,{shouldBegin(){return!0},shouldUpdate(){return!0},shouldEnd(){return!0},getEvents(){},bind(t){const e=this._events;this.graph=t,r.each(e,(e,n)=>{t.on(n,e)})},unbind(t){const e=this._events;r.each(e,(e,n)=>{t.off(n,e)})},get(t){return this[t]},set(t,e){return this[t]=e,this},getDefaultCfg(){}},e),i[t]=n},hasBehavior:function(t){return!!i[t]},getBehavior:function(t){return i[t]}};t.exports=i},c4bc:function(t,e,n){var r=n("1c6a").vec2;t.exports={at:function(t,e,n){return(e-t)*n+t},pointDistance:function(t,e,n,i,a,o){var s=[n-t,i-e];if(r.exactEquals(s,[0,0]))return NaN;var u=[-s[1],s[0]];r.normalize(u,u);var c=[a-t,o-e];return Math.abs(r.dot(c,u))},box:function(t,e,n,r,i){var a=i/2,o=Math.min(t,n),s=Math.max(t,n),u=Math.min(e,r),c=Math.max(e,r);return{minX:o-a,minY:u-a,maxX:s+a,maxY:c+a}},len:function(t,e,n,r){return Math.sqrt((n-t)*(n-t)+(r-e)*(r-e))}}},c4be:function(t,e){var n=1e-5;t.exports=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n;return Math.abs(t-e)1&&o(t,e[0],e[1])?e=[]:n>2&&o(e[0],e[1],e[2])&&(e=[e[0]]),i(t,r(e,1),[])}));t.exports=s},c869:function(t,e,n){var r=n("0b07"),i=n("2b3e"),a=r(i,"Set");t.exports=a},c87c:function(t,e){var n=Object.prototype,r=n.hasOwnProperty;function i(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&r.call(t,"index")&&(n.index=t.index,n.input=t.input),n}t.exports=i},c8fe:function(t,e,n){var r=n("f8af");function i(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}t.exports=i},c9ca:function(t,e,n){var r=n("ef5d"),i=r("length");t.exports=i},ca88:function(t,e){var n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(t){return"object"===("undefined"===typeof t?"undefined":n(t))&&null!==t};t.exports=r},cae7:function(t,e,n){var r=n("ffd6");function i(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t===t,o=r(t),s=void 0!==e,u=null===e,c=e===e,h=r(e);if(!u&&!h&&!o&&t>e||o&&s&&c&&!u&&!h||i&&s&&c||!n&&c||!a)return 1;if(!i&&!o&&!h&&t0?l=u(l,d):f.addAnimator(h),l.push(d),h.setSilent("animators",l),h.setSilent("pause",{isPaused:!1})},stopAnimate:function(){var t=this,e=this.get("animators");i.each(e,(function(e){t.attr(e.toAttrs||e.onFrame(1)),e.toMatrix&&t.attr("matrix",e.toMatrix),e.callback&&e.callback()})),this.setSilent("animating",!1),this.setSilent("animators",[])},pauseAnimate:function(){var t=this,e=t.get("timeline");return t.setSilent("pause",{isPaused:!0,pauseTime:e.getTime()}),t},resumeAnimate:function(){var t=this,e=t.get("timeline"),n=e.getTime(),r=t.get("animators"),a=t.get("pause").pauseTime;return i.each(r,(function(t){t.startTime=t.startTime+(n-a),t._paused=!1,t._pauseTime=null})),t.setSilent("pause",{isPaused:!1}),t.setSilent("animators",r),t}}},cc45:function(t,e,n){var r=n("1a2d"),i=n("b047"),a=n("99d3"),o=a&&a.isMap,s=o?i(o):r;t.exports=s},ce86:function(t,e,n){var r=n("9e69"),i=n("7948"),a=n("6747"),o=n("ffd6"),s=1/0,u=r?r.prototype:void 0,c=u?u.toString:void 0;function h(t){if("string"==typeof t)return t;if(a(t))return i(t,h)+"";if(o(t))return c?c.call(t):"";var e=t+"";return"0"==e&&1/t==-s?"-0":e}t.exports=h},cfa7:function(t,e,n){var r=n("33de");function i(t){var e=0,n=[],i={},a=[];function o(s){var u=i[s]={onStack:!0,lowlink:e,index:e++};if(n.push(s),t.successors(s).forEach((function(t){r.has(i,t)?i[t].onStack&&(u.lowlink=Math.min(u.lowlink,i[t].index)):(o(t),u.lowlink=Math.min(u.lowlink,i[t].lowlink))})),u.lowlink===u.index){var c,h=[];do{c=n.pop(),i[c].onStack=!1,h.push(c)}while(s!==c);a.push(h)}}return t.nodes().forEach((function(t){r.has(i,t)||o(t)})),a}t.exports=i},d02c:function(t,e,n){var r=n("5e2e"),i=n("79bc"),a=n("7b83"),o=200;function s(t,e){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.lengtha&&(a=e.maxX),e.minYs&&(s=e.maxY))})),i===1/0||o===1/0?{minX:0,minY:0,maxX:0,maxY:0}:{minX:i,minY:o,maxX:a,maxY:s}},_setTcache:function(){var t,e,n,i,a=0,o=0,s=[],u=this._cfg.curve;u&&(r.each(u,(function(t,e){n=u[e+1],i=t.length,n&&(a+=c.len(t[i-2],t[i-1],n[1],n[2],n[3],n[4],n[5],n[6]))})),this._cfg.totalLength=a,0!==a?(r.each(u,(function(r,h){n=u[h+1],i=r.length,n&&(t=[],t[0]=o/a,e=c.len(r[i-2],r[i-1],n[1],n[2],n[3],n[4],n[5],n[6]),o+=e,t[1]=o/a,s.push(t))})),this._cfg.tCache=s):this._cfg.tCache=[])},getTotalLength:function(){var t=this.get("totalLength");return r.isNil(t)?(this._calculateCurve(),this._setTcache(),this.get("totalLength")):t},_calculateCurve:function(){var t=this,e=t._attrs,n=e.path;this._cfg.curve=u.pathTocurve(n)},getStartTangent:function(){var t,e,n,i,a=this.get("segments");if(a.length>1)if(t=a[0].endPoint,e=a[1].endPoint,n=a[1].startTangent,i=[],r.isFunction(n)){var o=n();i.push([t.x-o[0],t.y-o[1]]),i.push([t.x,t.y])}else i.push([e.x,e.y]),i.push([t.x,t.y]);return i},getEndTangent:function(){var t,e,n,i,a=this.get("segments"),o=a.length;if(o>1)if(t=a[o-2].endPoint,e=a[o-1].endPoint,n=a[o-1].endTangent,i=[],r.isFunction(n)){var s=n();i.push([e.x-s[0],e.y-s[1]]),i.push([e.x,e.y])}else i.push([t.x,t.y]),i.push([e.x,e.y]);return i},getPoint:function(t){var e,n,i=this._cfg.tCache;i||(this._calculateCurve(),this._setTcache(),i=this._cfg.tCache);var a=this._cfg.curve;if(!i||0===i.length)return a?{x:a[0][1],y:a[0][2]}:null;r.each(i,(function(r,i){t>=r[0]&&t<=r[1]&&(e=(t-r[0])/(r[1]-r[0]),n=i)}));var o=a[n];if(r.isNil(o)||r.isNil(n))return null;var s=o.length,u=a[n+1];return{x:c.at(o[s-2],u[1],u[3],u[5],1-e),y:c.at(o[s-1],u[2],u[4],u[6],1-e)}},createPath:function(t){var e=this,n=e._attrs,i=e.get("segments");if(r.isArray(i)){var a=i.length;if(0!==a){if(t=t||e.get("context"),t.beginPath(),n.startArrow&&n.startArrow.d){var o=e.getStartTangent(),u=s.getShortenOffset(o[0][0],o[0][1],o[1][0],o[1][1],n.startArrow.d);i[0].shortenDraw(t,u.dx,u.dy)}else i[0].draw(t);for(var c=1;c2&&i[a-2].draw(t),l.shortenDraw(t,f.dx,f.dy))}else i[a-2]&&i[a-2].draw(t),i[a-1].draw(t)}}},afterPath:function(t){var e=this,n=e._attrs,i=e.get("segments"),a=n.path;if(t=t||e.get("context"),r.isArray(i)&&1!==i.length&&(n.startArrow||n.endArrow)&&"z"!==a[a.length-1]&&"Z"!==a[a.length-1]&&!n.fill){var o=e.getStartTangent();s.addStartArrow(t,n,o[0][0],o[0][1],o[1][0],o[1][1]);var u=e.getEndTangent();s.addEndArrow(t,n,u[0][0],u[0][1],u[1][0],u[1][1])}}}),t.exports=h},d225:function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,"a",(function(){return r}))},d285:function(t,e){var n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(t){var e="undefined"===typeof t?"undefined":n(t);return null!==t&&"object"===e||"function"===e};t.exports=r},d312:function(t,e,n){var r=n("a473"),i=n("33de");function a(t,e,n){return i.transform(t.nodes(),(function(i,a){i[a]=r(t,a,e,n)}),{})}t.exports=a},d327:function(t,e){function n(){return[]}t.exports=n},d33f:function(t,e,n){const r=n("1249"),i=n("1bb5"),a=n("0acb"),o=n("9ed2"),s="-shape",u="-label";r.registerEdge("polyline",{options:{color:"#999",style:{stroke:"#333",lineWidth:1,radius:0,offset:5,x:0,y:0},labelCfg:{style:{fill:"#595959"}},stateStyles:{hover:{lineWidth:3},selected:{lineWidth:5}}},shapeType:"polyline",labelPosition:"center",drawShape(t,e){const n=this.getShapeStyle(t),r=e.addShape("path",{className:"edge-shape",attrs:n});return r},getShapeStyle(t){const e=this.getCustomConfig(t)||{},{style:n}=this.options,{style:r}=e,a={stroke:t.color},s=i.deepMix({},n,r,a,t.style);t=this.getPathPoints(t),this.radius=s.radius,this.offset=s.offset;const u=t.startPoint,c=t.endPoint,h=this.getControlPoints(t);let f=[u];h&&(f=f.concat(h)),f.push(c);const l=t.sourceNode,d=t.targetNode;let p={radius:s.radius};h||(p={source:l,target:d,offset:s.offset,radius:s.radius});const g=this.getPath(f,p),v=i.deepMix({},o.defaultEdge.style,s,{lineWidth:t.size},{path:g});return v},getPath(t,e){const{source:n,target:r,offset:o,radius:s}=e;if(!o){let e=[];return s?e=a.getPathWithBorderRadiusByPolyline(t,s):i.each(t,(t,n)=>{0===n?e.push(["M",t.x,t.y]):e.push(["L",t.x,t.y])}),e}if(s){const e=a.simplifyPolyline(a.getPolylinePoints(t[0],t[t.length-1],n,r,o));return a.getPathWithBorderRadiusByPolyline(e,s)}const u=a.getPolylinePoints(t[0],t[t.length-1],n,r,o);return i.pointsToPolygon(u)},update(t,e){const n=e.getContainer(),r=this.itemType+s,a=n.findByClassName(r);t.style||(t.style={});const o=a.attr();t.style.radius=t.style.radius||o.radius,t.style.offset=t.style.offset||o.offset;const c=this.getShapeStyle(t);a.attr(c);const h=this.itemType+u,f=n.findByClassName(h);if(t.label)if(f){const{labelCfg:e}=this.options,{labelCfg:r}=this.getCustomConfig(t)||{},a=i.deepMix({},e,r,t.labelCfg),o=this.getLabelStyle(t,a,n);f.resetMatrix(),f.attr(o)}else{const e=this.drawLabel(t,n);e.set("className",h)}else f&&f.remove()}},"single-line")},d370:function(t,e,n){var r=n("253c"),i=n("1310"),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(t){return i(t)&&o.call(t,"callee")&&!s.call(t,"callee")};t.exports=u},d4b2:function(t,e){function n(t,e){var n=t.length;t.sort(e);while(n--)t[n]=t[n].value;return t}t.exports=n},d4f3:function(t,e,n){var r=n("6f9c");function i(t,e,n){var i,a={};r.forEach(n,(function(n){var r,o,s=t.parent(n);while(s){if(r=t.parent(s),r?(o=a[r],a[r]=s):(o=i,i=s),o&&o!==s)return void e.setEdge(o,s);s=r}}))}t.exports=i},d612:function(t,e,n){var r=n("7b83"),i=n("7ed2"),a=n("dc0f");function o(t){var e=-1,n=null==t?0:t.length;this.__data__=new r;while(++e0)e%2&&(n+=u[e+1]),e=e-1>>1,u[e]+=t.weight;c+=t.weight*n}))),c}t.exports=i},d7ee:function(t,e,n){var r=n("c3fc"),i=n("b047"),a=n("99d3"),o=a&&a.isSet,s=o?i(o):r;t.exports=s},d89f:function(t,e,n){t.exports={components:n("e44a"),dijkstra:n("a473"),dijkstraAll:n("d312"),findCycles:n("ddac"),floydWarshall:n("6736"),isAcyclic:n("43e8"),postorder:n("4f17"),preorder:n("aaf9"),prim:n("61e9"),tarjan:n("cfa7"),topsort:n("8185")}},d9a8:function(t,e){function n(t){return t!==t}t.exports=n},d9f3:function(t,e,n){"use strict";var r=n("6f9c");function i(t,e){var n={};r.forEach(t,(function(t,e){var i=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};r.isUndefined(t.barycenter)||(i.barycenter=t.barycenter,i.weight=t.weight)})),r.forEach(e.edges(),(function(t){var e=n[t.v],i=n[t.w];r.isUndefined(e)||r.isUndefined(i)||(i.indegree++,e.out.push(n[t.w]))}));var i=r.filter(n,(function(t){return!t.indegree}));return a(i)}function a(t){var e=[];function n(t){return function(e){e.merged||(r.isUndefined(e.barycenter)||r.isUndefined(t.barycenter)||e.barycenter>=t.barycenter)&&o(t,e)}}function i(e){return function(n){n["in"].push(e),0===--n.indegree&&t.push(n)}}while(t.length){var a=t.pop();e.push(a),r.forEach(a["in"].reverse(),n(a)),r.forEach(a.out,i(a))}return r.map(r.filter(e,(function(t){return!t.merged})),(function(t){return r.pick(t,["vs","i","barycenter","weight"])}))}function o(t,e){var n=0,r=0;t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=n/r,t.weight=r,t.i=Math.min(e.i,t.i),e.merged=!0}t.exports=i},da03:function(t,e,n){var r=n("2b3e"),i=r["__core-js_shared__"];t.exports=i},da0a:function(t,e){function n(t,e,n){var r=void 0,i=void 0,a=void 0,o=void 0,s=0;n||(n={});var u=function(){s=!1===n.leading?0:Date.now(),r=null,o=t.apply(i,a),r||(i=a=null)},c=function(){var c=Date.now();s||!1!==n.leading||(s=c);var h=e-(c-s);return i=this,a=arguments,h<=0||h>e?(r&&(clearTimeout(r),r=null),s=c,o=t.apply(i,a),r||(i=a=null)):r||!1===n.trailing||(r=setTimeout(u,h)),o};return c.cancel=function(){clearTimeout(r),s=0,r=i=a=null},c}t.exports=n},dc0f:function(t,e){function n(t){return this.__data__.has(t)}t.exports=n},dc57:function(t,e){var n=Function.prototype,r=n.toString;function i(t){if(null!=t){try{return r.call(t)}catch(e){}try{return t+""}catch(e){}}return""}t.exports=i},dcbe:function(t,e,n){var r=n("30c9"),i=n("1310");function a(t){return i(t)&&r(t)}t.exports=a},dd61:function(t,e,n){var r=n("7948"),i=n("badf"),a=n("97d3"),o=n("6747");function s(t,e){var n=o(t)?r:a;return n(t,i(e,3))}t.exports=s},dd6d:function(t,e,n){var r=n("739e"),i=function(t){var e=r(t);return e.charAt(0).toUpperCase()+e.substring(1)};t.exports=i},ddac:function(t,e,n){var r=n("33de"),i=n("cfa7");function a(t){return r.filter(i(t),(function(e){return e.length>1||1===e.length&&t.hasEdge(e[0],e[0])}))}t.exports=a},df2e:function(t,e,n){var r=n("33de");function i(t,e,n){r.isArray(e)||(e=[e]);var i=(t.isDirected()?t.successors:t.neighbors).bind(t),o=[],s={};return r.each(e,(function(e){if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);a(t,e,"post"===n,s,i,o)})),o}function a(t,e,n,i,o,s){r.has(i,e)||(i[e]=!0,n||s.push(e),r.each(o(e),(function(e){a(t,e,n,i,o,s)})),n&&s.push(e))}t.exports=i},e008:function(t,e,n){var r=n("01ce");t.exports={Graph:r.Graph,json:n("19b2"),alg:n("d89f"),version:r.version}},e00c:function(t,e,n){(function(e,n){t.exports=n()})(0,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=62)}([function(t,e,n){var r=n(12),i={};r.merge(i,r,{isColorProp:function(t){return["fill","stroke","fillStyle","strokeStyle"].includes(t)},isGradientColor:function(t){return/^[r,R,L,l]{1}[\s]*\(/.test(t)},mixin:function(t,e){var n=t.CFG?"CFG":"ATTRS";if(t&&e){t._mixins=e,t[n]=t[n]||{};var r={};i.each(e,(function(e){i.augment(t,e);var a=e[n];a&&i.merge(r,a)})),t[n]=i.merge(r,t[n])}}}),t.exports=i},function(t,e,n){var r=n(0),i=n(98),a=n(38),o=n(19),s=["zIndex","capture","visible"],u=function t(e){t.superclass.constructor.call(this,e)};u.ATTRS={},r.extend(u,a);var c={matrix:"matrix",path:"path",points:"points",lineDash:"lineDash"};function h(t){for(var e=[],n=0;n0){var s=n.strokeOpacity;r.isNil(s)||1===s||(t.globalAlpha=s),t.stroke()}}e.afterPath(t)},afterPath:function(){},isHitBox:function(){return!0},isHit:function(t,e){var n=this,r=[t,e,1];if(n.invert(r),n.isHitBox()){var i=n.getBBox();if(i&&!o.box(i.minX,i.maxX,i.minY,i.maxY,r[0],r[1]))return!1}var a=n._attrs.clip;return a?(a.invert(r,n.get("canvas")),!!a.isPointInPath(r[0],r[1])&&n.isPointInPath(r[0],r[1])):n.isPointInPath(r[0],r[1])},calculateBox:function(){return null},getHitLineWidth:function(){var t=this._attrs,e=t.lineAppendWidth||0,n=t.lineWidth||0;return n+e},clearTotalMatrix:function(){this._cfg.totalMatrix=null,this._cfg.region=null},clearBBox:function(){this._cfg.box=null,this._cfg.region=null},getBBox:function(){var t=this._cfg.box;return t||(t=this.calculateBox(),t&&(t.x=t.minX,t.y=t.minY,t.width=t.maxX-t.minX,t.height=t.maxY-t.minY),this._cfg.box=t),t},clone:function(){var t=this,e=null,n=t._attrs,i={};return r.each(n,(function(t,e){c[e]&&r.isArray(n[e])?i[e]=h(n[e]):i[e]=n[e]})),e=new t.constructor({attrs:i}),r.each(s,(function(n){e._cfg[n]=t._cfg[n]})),e}}),t.exports=u},function(t,e){var n={}.toString,r=function(t,e){return n.call(t)==="[object "+e+"]"};t.exports=r},function(t,e,n){"use strict";var r=n(25);n.d(e,"a",(function(){return r["e"]})),n.d(e,"f",(function(){return r["g"]})),n.d(e,"d",(function(){return r["f"]}));var i=n(115);n.d(e,"e",(function(){return i["a"]})),n.d(e,"c",(function(){return i["b"]}));var a=n(116);n.d(e,"b",(function(){return a["a"]}))},function(t,e,n){var r=n(0),i=/[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/gi,a=/[^\s\,]+/gi;t.exports={parseRadius:function(t){var e=0,n=0,i=0,a=0;return r.isArray(t)?1===t.length?e=n=i=a=t[0]:2===t.length?(e=i=t[0],n=a=t[1]):3===t.length?(e=t[0],n=a=t[1],i=t[2]):(e=t[0],n=t[1],i=t[2],a=t[3]):e=n=i=a=t,{r1:e,r2:n,r3:i,r4:a}},parsePath:function(t){return t=t||[],r.isArray(t)?t:r.isString(t)?(t=t.match(i),r.each(t,(function(e,n){if(e=e.match(a),e[0].length>1){var i=e[0].charAt(0);e.splice(1,0,e[0].substr(1)),e[0]=i}r.each(e,(function(t,n){isNaN(t)||(e[n]=+t)})),t[n]=e})),t):void 0}}},function(t,e,n){"use strict";e["c"]=o,e["b"]=s,e["a"]=u;var r=n(57);function i(t,e){return function(n){return t+n*e}}function a(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function o(t,e){var n=e-t;return n?i(t,n>180||n<-180?n-360*Math.round(n/360):n):Object(r["a"])(isNaN(t)?e:t)}function s(t){return 1===(t=+t)?u:function(e,n){return n-e?a(e,n,t):Object(r["a"])(isNaN(e)?n:e)}}function u(t,e){var n=e-t;return n?i(t,n):Object(r["a"])(isNaN(t)?e:t)}},function(t,e,n){var r=n(2),i=Array.isArray?Array.isArray:function(t){return r(t,"Array")};t.exports=i},function(t,e,n){var r=n(0).vec2;t.exports={at:function(t,e,n){return(e-t)*n+t},pointDistance:function(t,e,n,i,a,o){var s=[n-t,i-e];if(r.exactEquals(s,[0,0]))return NaN;var u=[-s[1],s[0]];r.normalize(u,u);var c=[a-t,o-e];return Math.abs(r.dot(c,u))},box:function(t,e,n,r,i){var a=i/2,o=Math.min(t,n),s=Math.max(t,n),u=Math.min(e,r),c=Math.max(e,r);return{minX:o-a,minY:u-a,maxX:s+a,maxY:c+a}},len:function(t,e,n,r){return Math.sqrt((n-t)*(n-t)+(r-e)*(r-e))}}},function(t,e,n){var r=n(0);function i(t,e,n,r){return{x:Math.cos(r)*n+t,y:Math.sin(r)*n+e}}function a(t,e,n,r){var i,a;return r?tn&&(i=2*Math.PI-t+e,a=t-n):(i=t-e,a=n-t),i>a?n:e}function o(t,e,n,i){var o=0;return n-e>=2*Math.PI&&(o=2*Math.PI),e=r.mod(e,2*Math.PI),n=r.mod(n,2*Math.PI)+o,t=r.mod(t,2*Math.PI),i?e>=n?t>n&&tn?t:a(t,e,n):e<=n?ee||tt.x&&(g=t.x),vt.y&&(m=t.y),y1&&(a*=Math.sqrt(m),o*=Math.sqrt(m));var y=a*a*(v*v)+o*o*(d*d),x=Math.sqrt((a*a*(o*o)-y)/y);n===i&&(x*=-1),isNaN(x)&&(x=0);var b=x*a*v/o,w=x*-o*d/a,_=(c+f)/2+Math.cos(u)*b-Math.sin(u)*w,M=(h+l)/2+Math.sin(u)*b+Math.cos(u)*w,S=g([1,0],[(d-b)/a,(v-w)/o]),k=[(d-b)/a,(v-w)/o],A=[(-1*d-b)/a,(-1*v-w)/o],P=g(k,A);return p(k,A)<=-1&&(P=Math.PI),p(k,A)>=1&&(P=0),0===i&&P>0&&(P-=2*Math.PI),1===i&&P<0&&(P+=2*Math.PI),[t,_,M,a,o,S,P,u,i]}var m=function(t,e,n){this.preSegment=e,this.isLast=n,this.init(t,e)};r.augment(m,{init:function(t,e){var n=t[0];e=e||{endPoint:{x:0,y:0}};var i,a,o,s,u=h.indexOf(n)>=0,c=u?n.toUpperCase():n,d=t,p=e.endPoint,g=d[1],m=d[2];switch(c){default:break;case"M":s=u?f(g,m,p):{x:g,y:m},this.command="M",this.params=[p,s],this.subStart=s,this.endPoint=s;break;case"L":s=u?f(g,m,p):{x:g,y:m},this.command="L",this.params=[p,s],this.subStart=e.subStart,this.endPoint=s,this.endTangent=function(){return[s.x-p.x,s.y-p.y]},this.startTangent=function(){return[p.x-s.x,p.y-s.y]};break;case"H":s=u?f(g,0,p):{x:g,y:p.y},this.command="L",this.params=[p,s],this.subStart=e.subStart,this.endPoint=s,this.endTangent=function(){return[s.x-p.x,s.y-p.y]},this.startTangent=function(){return[p.x-s.x,p.y-s.y]};break;case"V":s=u?f(0,g,p):{x:p.x,y:g},this.command="L",this.params=[p,s],this.subStart=e.subStart,this.endPoint=s,this.endTangent=function(){return[s.x-p.x,s.y-p.y]},this.startTangent=function(){return[p.x-s.x,p.y-s.y]};break;case"Q":u?(i=f(g,m,p),a=f(d[3],d[4],p)):(i={x:g,y:m},a={x:d[3],y:d[4]}),this.command="Q",this.params=[p,i,a],this.subStart=e.subStart,this.endPoint=a,this.endTangent=function(){return[a.x-i.x,a.y-i.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]};break;case"T":a=u?f(g,m,p):{x:g,y:m},"Q"===e.command?(i=l(e.params[1],p),this.command="Q",this.params=[p,i,a],this.subStart=e.subStart,this.endPoint=a,this.endTangent=function(){return[a.x-i.x,a.y-i.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]}):(this.command="TL",this.params=[p,a],this.subStart=e.subStart,this.endPoint=a,this.endTangent=function(){return[a.x-p.x,a.y-p.y]},this.startTangent=function(){return[p.x-a.x,p.y-a.y]});break;case"C":u?(i=f(g,m,p),a=f(d[3],d[4],p),o=f(d[5],d[6],p)):(i={x:g,y:m},a={x:d[3],y:d[4]},o={x:d[5],y:d[6]}),this.command="C",this.params=[p,i,a,o],this.subStart=e.subStart,this.endPoint=o,this.endTangent=function(){return[o.x-a.x,o.y-a.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]};break;case"S":u?(a=f(g,m,p),o=f(d[3],d[4],p)):(a={x:g,y:m},o={x:d[3],y:d[4]}),"C"===e.command?(i=l(e.params[2],p),this.command="C",this.params=[p,i,a,o],this.subStart=e.subStart,this.endPoint=o,this.endTangent=function(){return[o.x-a.x,o.y-a.y]},this.startTangent=function(){return[p.x-i.x,p.y-i.y]}):(this.command="SQ",this.params=[p,a,o],this.subStart=e.subStart,this.endPoint=o,this.endTangent=function(){return[o.x-a.x,o.y-a.y]},this.startTangent=function(){return[p.x-a.x,p.y-a.y]});break;case"A":var y=g,x=m,b=d[3],w=d[4],_=d[5];s=u?f(d[6],d[7],p):{x:d[6],y:d[7]},this.command="A";var M=v(p,s,w,_,y,x,b);this.params=M;var S=e.subStart;this.subStart=S,this.endPoint=s;var k=M[5]%(2*Math.PI);r.isNumberEqual(k,2*Math.PI)&&(k=0);var A=M[6]%(2*Math.PI);r.isNumberEqual(A,2*Math.PI)&&(A=0);var P=.001;this.startTangent=function(){0===_&&(P*=-1);var t=M[3]*Math.cos(k-P)+M[1],e=M[4]*Math.sin(k-P)+M[2];return[t-S.x,e-S.y]},this.endTangent=function(){var t=M[6];t-2*Math.PI<1e-4&&(t=0);var e=M[3]*Math.cos(k+t+P)+M[1],n=M[4]*Math.sin(k+t-P)+M[2];return[p.x-e,p.y-n]};break;case"Z":this.command="Z",this.params=[p,e.subStart],this.subStart=e.subStart,this.endPoint=e.subStart}},isInside:function(t,e,n){var r=this,a=r.command,o=r.params,s=r.box;if(s&&!i.box(s.minX,s.maxX,s.minY,s.maxY,t,e))return!1;switch(a){default:break;case"M":return!1;case"TL":case"L":case"Z":return i.line(o[0].x,o[0].y,o[1].x,o[1].y,n,t,e);case"SQ":case"Q":return i.quadraticline(o[0].x,o[0].y,o[1].x,o[1].y,o[2].x,o[2].y,n,t,e);case"C":return i.cubicline(o[0].x,o[0].y,o[1].x,o[1].y,o[2].x,o[2].y,o[3].x,o[3].y,n,t,e);case"A":var h=o,f=h[1],l=h[2],d=h[3],p=h[4],g=h[5],v=h[6],m=h[7],y=h[8],x=d>p?d:p,b=d>p?1:d/p,w=d>p?p/d:1;h=[t,e,1];var _=[1,0,0,0,1,0,0,0,1];return c.translate(_,_,[-f,-l]),c.rotate(_,_,-m),c.scale(_,_,[1/b,1/w]),u.transformMat3(h,h,_),i.arcline(0,0,x,g,g+v,1-y,n,h[0],h[1])}return!1},draw:function(t){var e,n,r,i=this.command,a=this.params;switch(i){default:break;case"M":t.moveTo(a[1].x,a[1].y);break;case"TL":case"L":t.lineTo(a[1].x,a[1].y);break;case"SQ":case"Q":e=a[1],n=a[2],t.quadraticCurveTo(e.x,e.y,n.x,n.y);break;case"C":e=a[1],n=a[2],r=a[3],t.bezierCurveTo(e.x,e.y,n.x,n.y,r.x,r.y);break;case"A":var o=a,s=o[1],u=o[2],c=s,h=u,f=o[3],l=o[4],d=o[5],p=o[6],g=o[7],v=o[8],m=f>l?f:l,y=f>l?1:f/l,x=f>l?l/f:1;t.translate(c,h),t.rotate(g),t.scale(y,x),t.arc(0,0,m,d,d+p,1-v),t.scale(1/y,1/x),t.rotate(-g),t.translate(-c,-h);break;case"Z":t.closePath();break}},shortenDraw:function(t,e,n){var r,i,a,o=this.command,s=this.params;switch(o){default:break;case"M":t.moveTo(s[1].x-e,s[1].y-n);break;case"TL":case"L":t.lineTo(s[1].x-e,s[1].y-n);break;case"SQ":case"Q":r=s[1],i=s[2],t.quadraticCurveTo(r.x,r.y,i.x-e,i.y-n);break;case"C":r=s[1],i=s[2],a=s[3],t.bezierCurveTo(r.x,r.y,i.x,i.y,a.x-e,a.y-n);break;case"A":var u=s,c=u[1],h=u[2],f=c,l=h,d=u[3],p=u[4],g=u[5],v=u[6],m=u[7],y=u[8],x=d>p?d:p,b=d>p?1:d/p,w=d>p?p/d:1;t.translate(f,l),t.rotate(m),t.scale(b,w),t.arc(0,0,x,g,g+v,1-y),t.scale(1/b,1/w),t.rotate(-m),t.translate(-f,-l);break;case"Z":t.closePath();break}},getBBox:function(t){var e,n,r,i,u=t/2,c=this.params;switch(this.command){default:case"M":case"Z":break;case"TL":case"L":this.box={minX:Math.min(c[0].x,c[1].x)-u,maxX:Math.max(c[0].x,c[1].x)+u,minY:Math.min(c[0].y,c[1].y)-u,maxY:Math.max(c[0].y,c[1].y)+u};break;case"SQ":case"Q":for(n=o.extrema(c[0].x,c[1].x,c[2].x),r=0,i=n.length;rM&&(M=A)}var P=s.yExtrema(m,d,p),C=1/0,E=-1/0,I=[x,b];for(r=2*-Math.PI;r<=2*Math.PI;r+=Math.PI){var O=P+r;1===y?xE&&(E=T)}this.box={minX:_-u,maxX:M+u,minY:C-u,maxY:E+u};break}}}),t.exports=m},function(t,e,n){"use strict";e["a"]=function(t,e){return t=+t,e-=t,function(n){return t+e*n}}},function(t,e,n){t.exports={isFunction:n(13),isObject:n(28),isBoolean:n(66),isNil:n(14),isString:n(29),isArray:n(6),isNumber:n(67),isEmpty:n(68),uniqueId:n(71),clone:n(30),deepMix:n(31),assign:n(16),merge:n(31),upperFirst:n(73),each:n(33),isEqual:n(75),toArray:n(34),extend:n(76),augment:n(77),remove:n(78),isNumberEqual:n(79),toRadian:n(80),toDegree:n(81),mod:n(82),clamp:n(35),createDom:n(83),modifyCSS:n(84),requestAnimationFrame:n(85),getRatio:function(){return window.devicePixelRatio?window.devicePixelRatio:2},mat3:n(36),vec2:n(87),vec3:n(89),transform:n(91)}},function(t,e,n){var r=n(2),i=function(t){return r(t,"Function")};t.exports=i},function(t,e){var n=function(t){return null===t||void 0===t};t.exports=n},function(t,e){var n=function(t){return null!==t&&"function"!==typeof t&&isFinite(t.length)};t.exports=n},function(t,e){function n(t,e){for(var n in e)e.hasOwnProperty(n)&&"constructor"!==n&&void 0!==e[n]&&(t[n]=e[n])}var r=function(t,e,r,i){return e&&n(t,e),r&&n(t,r),i&&n(t,i),t};t.exports=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=i,e.toRadian=o,e.equals=s;var r=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!==typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;function i(t){e.ARRAY_TYPE=t}var a=Math.PI/180;function o(t){return t*a}function s(t,e){return Math.abs(t-e)<=r*Math.max(1,Math.abs(t),Math.abs(e))}},function(t,e,n){var r=n(0),i=function(t,e,n,r){this.type=t,this.target=null,this.currentTarget=null,this.bubbles=n,this.cancelable=r,this.timeStamp=(new Date).getTime(),this.defaultPrevented=!1,this.propagationStopped=!1,this.removed=!1,this.event=e};r.augment(i,{preventDefault:function(){this.defaultPrevented=this.cancelable&&!0},stopPropagation:function(){this.propagationStopped=!0},remove:function(){this.remove=!0},clone:function(){return r.clone(this)},toString:function(){return"[Event (type="+this.type+")]"}}),t.exports=i},function(t,e,n){var r=n(7),i=n(40),a=n(20),o=n(8);t.exports={line:function(t,e,n,i,a,o,s){var u=r.box(t,e,n,i,a);if(!this.box(u.minX,u.maxX,u.minY,u.maxY,o,s))return!1;var c=r.pointDistance(t,e,n,i,o,s);return!isNaN(c)&&c<=a/2},polyline:function(t,e,n,r){var i=t.length-1;if(i<1)return!1;for(var a=0;a=0&&v<_?(d=x,_=v):(y=[a(t,n,o,u,b),a(e,r,s,c,b)],m=i.squaredDistance(S,y),b<=1&&m<_?(d=b,_=m):w*=.5)}return l&&(l.x=a(t,n,o,u,d),l.y=a(e,r,s,c,d)),Math.sqrt(_)}function u(t,e,n,i){var a,o,s,u=3*t-9*e+9*n-3*i,c=6*e-12*n+6*i,h=3*n-3*i,f=[];if(r.isNumberEqual(u,0))r.isNumberEqual(c,0)||(a=-h/c,a>=0&&a<=1&&f.push(a));else{var l=c*c-4*u*h;r.isNumberEqual(l,0)?f.push(-c/(2*u)):l>0&&(s=Math.sqrt(l),a=(-c+s)/(2*u),o=(-c-s)/(2*u),a>=0&&a<=1&&f.push(a),o>=0&&o<=1&&f.push(o))}return f}function c(t,e,n,r,i){var a=-3*e+9*n-9*r+3*i,o=t*a+6*e-12*n+6*r;return t*o-3*e+3*n}function h(t,e,n,i,a,o,s,u,h){r.isNil(h)&&(h=1),h=h>1?1:h<0?0:h;for(var f=h/2,l=12,d=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],p=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],g=0,v=0;v2&&(n.push([r].concat(a.splice(0,2))),s="l",r="m"===r?"l":"L"),"o"===s&&1===a.length&&n.push([r,a[0]]),"r"===s)n.push([r].concat(a));else while(a.length>=e[s])if(n.push([r].concat(a.splice(0,e[s]))),!e[s])break})),n},u=function(t,e){for(var n=[],r=0,i=t.length;i-2*!e>r;r+=2){var a=[{x:+t[r-2],y:+t[r-1]},{x:+t[r],y:+t[r+1]},{x:+t[r+2],y:+t[r+3]},{x:+t[r+4],y:+t[r+5]}];e?r?i-4===r?a[3]={x:+t[0],y:+t[1]}:i-2===r&&(a[2]={x:+t[0],y:+t[1]},a[3]={x:+t[2],y:+t[3]}):a[0]={x:+t[i-2],y:+t[i-1]}:i-4===r?a[3]=a[2]:r||(a[0]={x:+t[r],y:+t[r+1]}),n.push(["C",(-a[0].x+6*a[1].x+a[2].x)/6,(-a[0].y+6*a[1].y+a[2].y)/6,(a[1].x+6*a[2].x-a[3].x)/6,(a[1].y+6*a[2].y-a[3].y)/6,a[2].x,a[2].y])}return n},c=function(t,e,n,r,i){var a=[];if(null===i&&null===r&&(r=n),t=+t,e=+e,n=+n,r=+r,null!==i){var o=Math.PI/180,s=t+n*Math.cos(-r*o),u=t+n*Math.cos(-i*o),c=e+n*Math.sin(-r*o),h=e+n*Math.sin(-i*o);a=[["M",s,c],["A",n,n,0,+(i-r>180),0,u,h]]}else a=[["M",t,e],["m",0,-r],["a",n,r,0,1,1,0,2*r],["a",n,r,0,1,1,0,-2*r],["z"]];return a},h=function(t){if(t=s(t),!t||!t.length)return[["M",0,0]];var e,n,r=[],i=0,a=0,o=0,h=0,f=0;"M"===t[0][0]&&(i=+t[0][1],a=+t[0][2],o=i,h=a,f++,r[0]=["M",i,a]);for(var l,d,p=3===t.length&&"M"===t[0][0]&&"R"===t[1][0].toUpperCase()&&"Z"===t[2][0].toUpperCase(),g=f,v=t.length;g1&&(_=Math.sqrt(_),r*=_,i*=_);var M=r*r,S=i*i,k=(o===s?-1:1)*Math.sqrt(Math.abs((M*S-M*w*w-S*b*b)/(M*w*w+S*b*b)));p=k*r*w/i+(e+u)/2,g=k*-i*b/r+(n+c)/2,l=Math.asin(((n-g)/i).toFixed(9)),d=Math.asin(((c-g)/i).toFixed(9)),l=ed&&(l-=2*Math.PI),!s&&d>l&&(d-=2*Math.PI)}var A=d-l;if(Math.abs(A)>v){var P=d,C=u,E=c;d=l+v*(s&&d>l?1:-1),u=p+r*Math.cos(d),c=g+i*Math.sin(d),y=t(u,c,r,i,a,0,s,C,E,[d,P,p,g])}A=d-l;var I=Math.cos(l),O=Math.sin(l),T=Math.cos(d),N=Math.sin(d),j=Math.tan(A/4),B=4/3*r*j,L=4/3*i*j,D=[e,n],R=[e+B*O,n-L*I],F=[u+B*N,c-L*T],Y=[u,c];if(R[0]=2*D[0]-R[0],R[1]=2*D[1]-R[1],h)return[R,F,Y].concat(y);y=[R,F,Y].concat(y).join().split(",");for(var q=[],z=0,X=y.length;z7){t[e].shift();var a=t[e];while(a.length)s[e]="A",i&&(u[e]="A"),t.splice(e++,0,["C"].concat(a.splice(0,6)));t.splice(e,1),n=Math.max(r.length,i&&i.length||0)}},m=function(t,e,a,o,s){t&&e&&"M"===t[s][0]&&"M"!==e[s][0]&&(e.splice(s,0,["M",o.x,o.y]),a.bx=0,a.by=0,a.x=t[s][1],a.y=t[s][2],n=Math.max(r.length,i&&i.length||0))};n=Math.max(r.length,i&&i.length||0);for(var y=0;y1?1:u<0?0:u;for(var c=u/2,h=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],l=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,p=0;p0&&f<1&&l.push(f)}else{var g=c*c-4*h*u,v=Math.sqrt(g);if(!(g<0)){var m=(-c+v)/(2*u);m>0&&m<1&&l.push(m);var y=(-c-v)/(2*u);y>0&&y<1&&l.push(y)}}var x,b=l.length,w=b;while(b--)f=l[b],x=1-f,d[0][b]=x*x*x*t+3*x*x*f*n+3*x*f*f*i+f*f*f*o,d[1][b]=x*x*x*e+3*x*x*f*r+3*x*f*f*a+f*f*f*s;return d[0][w]=t,d[1][w]=e,d[0][w+1]=o,d[1][w+1]=s,d[0].length=d[1].length=w+2,{min:{x:Math.min.apply(0,d[0]),y:Math.min.apply(0,d[1])},max:{x:Math.max.apply(0,d[0]),y:Math.max.apply(0,d[1])}}},b=function(t,e,n,r,i,a,o,s){if(!(Math.max(t,n)Math.max(i,o)||Math.max(e,r)Math.max(a,s))){var u=(t*r-e*n)*(i-o)-(t-n)*(i*s-a*o),c=(t*r-e*n)*(a-s)-(e-r)*(i*s-a*o),h=(t-n)*(a-s)-(e-r)*(i-o);if(h){var f=u/h,l=c/h,d=+f.toFixed(2),p=+l.toFixed(2);if(!(d<+Math.min(t,n).toFixed(2)||d>+Math.max(t,n).toFixed(2)||d<+Math.min(i,o).toFixed(2)||d>+Math.max(i,o).toFixed(2)||p<+Math.min(e,r).toFixed(2)||p>+Math.max(e,r).toFixed(2)||p<+Math.min(a,s).toFixed(2)||p>+Math.max(a,s).toFixed(2)))return{x:f,y:l}}}},w=function(t,e,n){return e>=t.x&&e<=t.x+t.width&&n>=t.y&&n<=t.y+t.height},_=function(t,e,n,r,i){if(i)return[["M",+t+ +i,e],["l",n-2*i,0],["a",i,i,0,0,1,i,i],["l",0,r-2*i],["a",i,i,0,0,1,-i,i],["l",2*i-n,0],["a",i,i,0,0,1,-i,-i],["l",0,2*i-r],["a",i,i,0,0,1,i,-i],["z"]];var a=[["M",t,e],["l",n,0],["l",0,r],["l",-n,0],["z"]];return a.parsePathArray=v,a},M=function(t,e,n,r){return null===t&&(t=e=n=r=0),null===e&&(e=t.y,n=t.width,r=t.height,t=t.x),{x:t,y:e,width:n,w:n,height:r,h:r,x2:t+n,y2:e+r,cx:t+n/2,cy:e+r/2,r1:Math.min(n,r)/2,r2:Math.max(n,r)/2,r0:Math.sqrt(n*n+r*r)/2,path:_(t,e,n,r),vb:[t,e,n,r].join(" ")}},S=function(t,e){return t=M(t),e=M(e),w(e,t.x,t.y)||w(e,t.x2,t.y)||w(e,t.x,t.y2)||w(e,t.x2,t.y2)||w(t,e.x,e.y)||w(t,e.x2,e.y)||w(t,e.x,e.y2)||w(t,e.x2,e.y2)||(t.xe.x||e.xt.x)&&(t.ye.y||e.yt.y)},k=function(t,e,n,i,a,o,s,u){r.isArray(t)||(t=[t,e,n,i,a,o,s,u]);var c=x.apply(null,t);return M(c.min.x,c.min.y,c.max.x-c.min.x,c.max.y-c.min.y)},A=function(t,e,n,r,i,a,o,s,u){var c=1-u,h=Math.pow(c,3),f=Math.pow(c,2),l=u*u,d=l*u,p=h*t+3*f*u*n+3*c*u*u*i+d*o,g=h*e+3*f*u*r+3*c*u*u*a+d*s,v=t+2*u*(n-t)+l*(i-2*n+t),m=e+2*u*(r-e)+l*(a-2*r+e),y=n+2*u*(i-n)+l*(o-2*i+n),x=r+2*u*(a-r)+l*(s-2*a+r),b=c*t+u*n,w=c*e+u*r,_=c*i+u*o,M=c*a+u*s,S=90-180*Math.atan2(v-y,m-x)/Math.PI;return{x:p,y:g,m:{x:v,y:m},n:{x:y,y:x},start:{x:b,y:w},end:{x:_,y:M},alpha:S}},P=function(t,e,n){var r=k(t),i=k(e);if(!S(r,i))return n?0:[];for(var a=y.apply(0,t),o=y.apply(0,e),s=~~(a/8),u=~~(o/8),c=[],h=[],f={},l=n?0:[],d=0;d=0&&O<=1&&T>=0&&T<=1&&(n?l++:l.push({x:I.x,y:I.y,t1:O,t2:T}))}}return l},C=function(t,e,n){var r,i,a,o,s,u,c,h,f,l;t=p(t),e=p(e);for(var d=n?0:[],g=0,v=t.length;g=3&&(3===t.length&&e.push("Q"),e=e.concat(t[1])),2===t.length&&e.push("L"),e=e.concat(t[t.length-1]),e}));return h}var T=function(t,e,n){if(1===n)return[[].concat(t)];var r=[];if("L"===e[0]||"C"===e[0]||"Q"===e[0])r=r.concat(O(t,e,n));else{var i=[].concat(t);"M"===i[0]&&(i[0]="L");for(var a=0;a<=n-1;a++)r.push(i)}return r},N=function(t,e){if(1===t.length)return t;var n=t.length-1,r=e.length-1,i=n/r,a=[];if(1===t.length&&"M"===t[0][0]){for(var o=0;o=0;f--)o=a[f].index,"add"===a[f].type?t.splice(o,0,[].concat(t[o])):t.splice(o,1)}r=t.length;var l=i-r;if(r0)){t[r]=e[r];break}n=R(n,t[r-1],1)}t[r]=["Q"].concat(n.reduce((function(t,e){return t.concat(e)}),[]));break;case"T":t[r]=["T"].concat(n[0]);break;case"C":if(n.length<3){if(!(r>0)){t[r]=e[r];break}n=R(n,t[r-1],2)}t[r]=["C"].concat(n.reduce((function(t,e){return t.concat(e)}),[]));break;case"S":if(n.length<2){if(!(r>0)){t[r]=e[r];break}n=R(n,t[r-1],1)}t[r]=["S"].concat(n.reduce((function(t,e){return t.concat(e)}),[]));break;default:t[r]=e[r]}return t};t.exports={parsePathString:s,parsePathArray:v,pathTocurve:p,pathToAbsolute:h,catmullRomToBezier:u,rectPath:_,fillPath:N,fillPathByDiff:D,formatPath:Y,intersection:E}},function(t,e,n){"use strict";e["b"]=p,e["a"]=v,e["c"]=m,e["d"]=y;var r,i,a=0,o=0,s=0,u=1e3,c=0,h=0,f=0,l="object"===typeof performance&&performance.now?performance:Date,d="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function p(){return h||(d(g),h=l.now()+f)}function g(){h=0}function v(){this._call=this._time=this._next=null}function m(t,e,n){var r=new v;return r.restart(t,e,n),r}function y(){p(),++a;var t,e=r;while(e)(t=h-e._time)>=0&&e._call.call(null,t),e=e._next;--a}function x(){h=(c=l.now())+f,a=o=0;try{y()}finally{a=0,w(),h=0}}function b(){var t=l.now(),e=t-c;e>u&&(f-=e,c=t)}function w(){var t,e,n=r,a=1/0;while(n)n._call?(a>n._time&&(a=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:r=e);i=t,_(a)}function _(t){if(!a){o&&(o=clearTimeout(o));var e=t-h;e>24?(t<1/0&&(o=setTimeout(x,t-l.now()-f)),s&&(s=clearInterval(s))):(s||(c=l.now(),s=setInterval(b,u)),a=1,d(x))}}v.prototype=m.prototype={constructor:v,restart:function(t,e,n){if("function"!==typeof t)throw new TypeError("callback is not a function");n=(null==n?p():+n)+(null==e?0:+e),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=t,this._time=n,_()},stop:function(){this._call&&(this._call=null,this._time=1/0,_())}}},function(t,e,n){"use strict";var r=n(3),i=n(55),a=n(58),o=n(59),s=n(11),u=n(60),c=n(61),h=n(57);e["a"]=function(t,e){var n,f=typeof e;return null==e||"boolean"===f?Object(h["a"])(e):("number"===f?s["a"]:"string"===f?(n=Object(r["a"])(e))?(e=n,i["a"]):c["a"]:e instanceof r["a"]?i["a"]:e instanceof Date?o["a"]:Array.isArray(e)?a["a"]:"function"!==typeof e.valueOf&&"function"!==typeof e.toString||isNaN(e)?u["a"]:s["a"])(t,e)}},function(t,e,n){"use strict";e["a"]=i,n.d(e,"d",(function(){return a})),n.d(e,"c",(function(){return o})),e["e"]=w,e["h"]=S,e["g"]=k,e["b"]=A,e["f"]=T;var r=n(26);function i(){}var a=.7,o=1/a,s="\\s*([+-]?\\d+)\\s*",u="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",c="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",h=/^#([0-9a-f]{3,8})$/,f=new RegExp("^rgb\\("+[s,s,s]+"\\)$"),l=new RegExp("^rgb\\("+[c,c,c]+"\\)$"),d=new RegExp("^rgba\\("+[s,s,s,u]+"\\)$"),p=new RegExp("^rgba\\("+[c,c,c,u]+"\\)$"),g=new RegExp("^hsl\\("+[u,c,c]+"\\)$"),v=new RegExp("^hsla\\("+[u,c,c,u]+"\\)$"),m={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function y(){return this.rgb().formatHex()}function x(){return O(this).formatHsl()}function b(){return this.rgb().formatRgb()}function w(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=h.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?_(e):3===n?new A(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?M(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?M(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=f.exec(t))?new A(e[1],e[2],e[3],1):(e=l.exec(t))?new A(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=d.exec(t))?M(e[1],e[2],e[3],e[4]):(e=p.exec(t))?M(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=g.exec(t))?I(e[1],e[2]/100,e[3]/100,1):(e=v.exec(t))?I(e[1],e[2]/100,e[3]/100,e[4]):m.hasOwnProperty(t)?_(m[t]):"transparent"===t?new A(NaN,NaN,NaN,0):null}function _(t){return new A(t>>16&255,t>>8&255,255&t,1)}function M(t,e,n,r){return r<=0&&(t=e=n=NaN),new A(t,e,n,r)}function S(t){return t instanceof i||(t=w(t)),t?(t=t.rgb(),new A(t.r,t.g,t.b,t.opacity)):new A}function k(t,e,n,r){return 1===arguments.length?S(t):new A(t,e,n,null==r?1:r)}function A(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function P(){return"#"+E(this.r)+E(this.g)+E(this.b)}function C(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function E(t){return t=Math.max(0,Math.min(255,Math.round(t)||0)),(t<16?"0":"")+t.toString(16)}function I(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new N(t,e,n,r)}function O(t){if(t instanceof N)return new N(t.h,t.s,t.l,t.opacity);if(t instanceof i||(t=w(t)),!t)return new N;if(t instanceof N)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),o=Math.max(e,n,r),s=NaN,u=o-a,c=(o+a)/2;return u?(s=e===o?(n-r)/u+6*(n0&&c<1?0:s,new N(s,u,c,t.opacity)}function T(t,e,n,r){return 1===arguments.length?O(t):new N(t,e,n,null==r?1:r)}function N(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function j(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Object(r["a"])(i,w,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:y,formatHex:y,formatHsl:x,formatRgb:b,toString:b}),Object(r["a"])(A,k,Object(r["b"])(i,{brighter:function(t){return t=null==t?o:Math.pow(o,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?a:Math.pow(a,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:P,formatHex:P,formatRgb:C,toString:C})),Object(r["a"])(N,T,Object(r["b"])(i,{brighter:function(t){return t=null==t?o:Math.pow(o,t),new N(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?a:Math.pow(a,t),new N(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new A(j(t>=240?t-240:t+120,i,r),j(t,i,r),j(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}))},function(t,e,n){"use strict";function r(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}e["b"]=r,e["a"]=function(t,e,n){t.prototype=e.prototype=n,n.constructor=t}},function(t,e,n){"use strict";function r(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}e["a"]=r,e["b"]=function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],s=i>0?t[i-1]:2*a-o,u=in?n:t};t.exports=n},function(t,e,n){var r=n(86);r.translate=function(t,e,n){var i=new Array(9);return r.fromTranslation(i,n),r.multiply(t,i,e)},r.rotate=function(t,e,n){var i=new Array(9);return r.fromRotation(i,n),r.multiply(t,i,e)},r.scale=function(t,e,n){var i=new Array(9);return r.fromScaling(i,n),r.multiply(t,i,e)},t.exports=r},function(t,e,n){var r=n(0),i=n(38),a=n(97),o={},s="_INDEX",u=["zIndex","capture","visible"];function c(t){return function(e,n){var r=t(e,n);return 0===r?e[s]-n[s]:r}}function h(t,e,n){for(var r,i=t.length-1;i>=0;i--){var a=t[i];if(a._cfg.visible&&a._cfg.capture&&(a.isGroup?r=a.getShape(e,n):a.isHit(e,n)&&(r=a)),r)break}return r}function f(t){for(var e=[],n=0;n=2)this.contain(t)&&t.remove(e);else{if(1===arguments.length){if(!r.isBoolean(t))return this.contain(t)&&t.remove(!0),this;e=t}0===arguments.length&&(e=!0),l.superclass.remove.call(this,e)}return this},add:function(t){var e=this,n=e.get("children");if(r.isArray(t))r.each(t,(function(t){var n=t.get("parent");n&&n.removeChild(t,!1),e._setCfgProperty(t)})),e._cfg.children=n.concat(t);else{var i=t,a=i.get("parent");a&&a.removeChild(i,!1),e._setCfgProperty(i),n.push(i)}return e},_setCfgProperty:function(t){var e=this._cfg;t.set("parent",this),t.set("canvas",e.canvas),e.timeline&&t.set("timeline",e.timeline)},contain:function(t){var e=this.get("children");return e.indexOf(t)>-1},getChildByIndex:function(t){var e=this.get("children");return e[t]},getFirst:function(){return this.getChildByIndex(0)},getLast:function(){var t=this.get("children").length-1;return this.getChildByIndex(t)},getBBox:function(){var t=this,e=1/0,n=-1/0,i=1/0,a=-1/0,o=t.get("children");o.length>0?r.each(o,(function(t){if(t.get("visible")){if(t.isGroup&&0===t.get("children").length)return;var r=t.getBBox();if(!r)return!0;var o=[r.minX,r.minY,1],s=[r.minX,r.maxY,1],u=[r.maxX,r.minY,1],c=[r.maxX,r.maxY,1];t.apply(o),t.apply(s),t.apply(u),t.apply(c);var h=Math.min(o[0],s[0],u[0],c[0]),f=Math.max(o[0],s[0],u[0],c[0]),l=Math.min(o[1],s[1],u[1],c[1]),d=Math.max(o[1],s[1],u[1],c[1]);hn&&(n=f),la&&(a=d)}})):(e=0,n=0,i=0,a=0);var s={minX:e,minY:i,maxX:n,maxY:a};return s.x=s.minX,s.y=s.minY,s.width=s.maxX-s.minX,s.height=s.maxY-s.minY,s},getCount:function(){return this.get("children").length},sort:function(){var t=this.get("children");return r.each(t,(function(t,e){return t[s]=e,t})),t.sort(c((function(t,e){return t.get("zIndex")-e.get("zIndex")}))),this},findById:function(t){return this.find((function(e){return e.get("id")===t}))},find:function(t){if(r.isString(t))return this.findById(t);var e=this.get("children"),n=null;return r.each(e,(function(e){if(t(e)?n=e:e.find&&(n=e.find(t)),n)return!1})),n},findAll:function(t){var e=this.get("children"),n=[],i=[];return r.each(e,(function(e){t(e)&&n.push(e),e.findAllBy&&(i=e.findAllBy(t),n=n.concat(i))})),n},findBy:function(t){var e=this.get("children"),n=null;return r.each(e,(function(e){if(t(e)?n=e:e.findBy&&(n=e.findBy(t)),n)return!1})),n},findAllBy:function(t){var e=this.get("children"),n=[],i=[];return r.each(e,(function(e){t(e)&&n.push(e),e.findAllBy&&(i=e.findAllBy(t),n=n.concat(i))})),n},getShape:function(t,e){var n,r=this,i=r._attrs.clip,a=r._cfg.children;if(i){var o=[t,e,1];i.invert(o,r.get("canvas")),i.isPointInPath(o[0],o[1])&&(n=h(a,t,e))}else n=h(a,t,e);return n},clearTotalMatrix:function(){var t=this.get("totalMatrix");if(t){this.setSilent("totalMatrix",null);for(var e=this._cfg.children,n=0;n=0;n--)e[n].remove(!0,t);return this._cfg.children=[],this}},destroy:function(){this.get("destroyed")||(this.clear(),l.superclass.destroy.call(this))},clone:function(){var t=this,e=t._cfg.children,n=t._attrs,i={};r.each(n,(function(t,e){i[e]="matrix"===e?f(n[e]):n[e]}));var a=new l({attrs:i,canvas:t.get("canvas")});return r.each(e,(function(t){a.add(t.clone())})),r.each(u,(function(e){a._cfg[e]=t._cfg[e]})),a}}),t.exports=l},function(t,e,n){var r=n(0),i=n(93),a=n(94),o=n(95),s=n(96),u=function(t){this._cfg={zIndex:0,capture:!0,visible:!0,destroyed:!1},r.assign(this._cfg,this.getDefaultCfg(),t),this.initAttrs(this._cfg.attrs),this._cfg.attrs={},this.initTransform(),this.init()};u.CFG={id:null,zIndex:0,canvas:null,parent:null,capture:!0,context:null,visible:!0,destroyed:!1},r.augment(u,i,a,s,o,{init:function(){this.setSilent("animable",!0),this.setSilent("animating",!1)},getParent:function(){return this._cfg.parent},getDefaultCfg:function(){return{}},set:function(t,e){return"zIndex"===t&&this._beforeSetZIndex&&this._beforeSetZIndex(e),"loading"===t&&this._beforeSetLoading&&this._beforeSetLoading(e),this._cfg[t]=e,this},setSilent:function(t,e){this._cfg[t]=e},get:function(t){return this._cfg[t]},show:function(){return this._cfg.visible=!0,this},hide:function(){return this._cfg.visible=!1,this},remove:function(t,e){var n=this._cfg,i=n.parent,a=n.el;return i&&r.remove(i.get("children"),this),a&&(e?i&&i._cfg.tobeRemoved.push(a):a.parentNode.removeChild(a)),(t||void 0===t)&&this.destroy(),this},destroy:function(){var t=this.get("destroyed");t||(this._attrs=null,this.removeEvent(),this._cfg={destroyed:!0})},toFront:function(){var t=this._cfg,e=t.parent;if(e){var n=e._cfg.children,r=t.el,i=n.indexOf(this);n.splice(i,1),n.push(this),r&&(r.parentNode.removeChild(r),t.el=null)}},toBack:function(){var t=this._cfg,e=t.parent;if(e){var n=e._cfg.children,r=t.el,i=n.indexOf(this);if(n.splice(i,1),n.unshift(this),r){var a=r.parentNode;a.removeChild(r),a.insertBefore(r,a.firstChild)}}},_beforeSetZIndex:function(t){var e=this._cfg.parent;this._cfg.zIndex=t,r.isNil(e)||e.sort();var n=this._cfg.el;if(n){var i=e._cfg.children,a=i.indexOf(this),o=n.parentNode;o.removeChild(n),a===i.length-1?o.appendChild(n):o.insertBefore(n,o.childNodes[a])}return t},_setAttrs:function(t){return this.attr(t),t},setZIndex:function(t){return this._cfg.zIndex=t,this._beforeSetZIndex(t)},clone:function(){return r.clone(this)},getBBox:function(){}}),t.exports=u},function(t,e,n){var r=n(12),i=Array.prototype.slice;function a(t,e){var n=t.length;while(n--)if(t[n].callback===e)return n;return-1}var o=function(){};r.augment(o,{on:function(t,e,n){var i=this;if(!r.isFunction(e))throw new TypeError("listener should be a function");return i._cfg._events||(i._cfg._events={}),i._cfg._events[t]||(i._cfg._events[t]=[]),i._cfg._events[t].push({callback:e,one:n}),this},one:function(t,e){return this.on(t,e,!0),this},emit:function(t){if(!this.get("destroyed")&&this._cfg._events&&!r.isEmpty(this._cfg._events)){var e=this._cfg._events[t];if(!r.isEmpty(e))for(var n=arguments,a=i.call(n,1),o=e.length,s=0;s=0&&n[t].splice(i,1),0===n[t].length&&delete n[t]}}},removeEvent:function(t){return"undefined"===typeof t?this._cfg._events={}:delete this._cfg._events[t],this},_getEvents:function(){return this._cfg._events||{}}}),t.exports=o},function(t,e,n){var r=n(0),i=r.vec2;function a(t,e,n,r){var i=1-r;return i*(i*t+2*r*e)+r*r*n}function o(t,e,n,r,o,s,u,c,h){var f,l,d,p,g,v,m,y=.005,x=1/0,b=1e-4,w=[u,c];for(g=0;g<1;g+=.05)d=[a(t,n,o,g),a(e,r,s,g)],l=i.squaredDistance(w,d),l=0&&l=0?[a]:[]}t.exports={at:a,projectPoint:function(t,e,n,r,i,a,s,u){var c={};return o(t,e,n,r,i,a,s,u,c),c},pointDistance:o,extrema:s}},function(t,e){t.exports={xAt:function(t,e,n,r,i){return e*Math.cos(t)*Math.cos(i)-n*Math.sin(t)*Math.sin(i)+r},yAt:function(t,e,n,r,i){return e*Math.sin(t)*Math.cos(i)+n*Math.cos(t)*Math.sin(i)+r},xExtrema:function(t,e,n){return Math.atan(-n/e*Math.tan(t))},yExtrema:function(t,e,n){return Math.atan(n/(e*Math.tan(t)))}}},function(t,e,n){var r=n(0),i=n(1),a=n(8),o=n(9);function s(t,e,n){return t+e*Math.cos(n)}function u(t,e,n){return t+e*Math.sin(n)}var c=function t(e){t.superclass.constructor.call(this,e)};c.ATTRS={x:0,y:0,r:0,startAngle:0,endAngle:0,clockwise:!1,lineWidth:1,startArrow:!1,endArrow:!1},r.extend(c,i),r.augment(c,{canStroke:!0,type:"arc",getDefaultAttrs:function(){return{x:0,y:0,r:0,startAngle:0,endAngle:0,clockwise:!1,lineWidth:1,startArrow:!1,endArrow:!1}},calculateBox:function(){var t=this._attrs,e=t.x,n=t.y,r=t.r,i=t.startAngle,o=t.endAngle,s=t.clockwise,u=this.getHitLineWidth(),c=u/2,h=a.box(e,n,r,i,o,s);return h.minX-=c,h.minY-=c,h.maxX+=c,h.maxY+=c,h},getStartTangent:function(){var t=this._attrs,e=t.x,n=t.y,r=t.startAngle,i=t.r,a=t.clockwise,o=Math.PI/180;a&&(o*=-1);var c=[],h=s(e,i,r+o),f=u(n,i,r+o),l=s(e,i,r),d=u(n,i,r);return c.push([h,f]),c.push([l,d]),c},getEndTangent:function(){var t=this._attrs,e=t.x,n=t.y,r=t.endAngle,i=t.r,a=t.clockwise,o=Math.PI/180,c=[];a&&(o*=-1);var h=s(e,i,r+o),f=u(n,i,r+o),l=s(e,i,r),d=u(n,i,r);return c.push([l,d]),c.push([h,f]),c},createPath:function(t){var e=this._attrs,n=e.x,r=e.y,i=e.r,a=e.startAngle,o=e.endAngle,s=e.clockwise;t=t||self.get("context"),t.beginPath(),t.arc(n,r,i,a,o,s)},afterPath:function(t){var e=this._attrs;if(t=t||this.get("context"),e.startArrow){var n=this.getStartTangent();o.addStartArrow(t,e,n[0][0],n[0][1],n[1][0],n[1][1])}if(e.endArrow){var r=this.getEndTangent();o.addEndArrow(t,e,r[0][0],r[0][1],r[1][0],r[1][1])}}}),t.exports=c},function(t,e,n){var r=n(0),i=n(1),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={x:0,y:0,r:0,lineWidth:1},r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"circle",getDefaultAttrs:function(){return{lineWidth:1}},calculateBox:function(){var t=this._attrs,e=t.x,n=t.y,r=t.r,i=this.getHitLineWidth(),a=i/2+r;return{minX:e-a,minY:n-a,maxX:e+a,maxY:n+a}},createPath:function(t){var e=this._attrs,n=e.x,r=e.y,i=e.r;t.beginPath(),t.arc(n,r,i,0,2*Math.PI,!1),t.closePath()}}),t.exports=a},function(t,e,n){var r=n(0),i=n(1),a=function t(e){t.superclass.constructor.call(this,e)};r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"dom",calculateBox:function(){var t=this,e=t._attrs,n=e.x,r=e.y,i=e.width,a=e.height,o=this.getHitLineWidth(),s=o/2;return{minX:n-s,minY:r-s,maxX:n+i+s,maxY:r+a+s}}}),t.exports=a},function(t,e,n){var r=n(0),i=n(1),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={x:0,y:0,rx:1,ry:1,lineWidth:1},r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"ellipse",getDefaultAttrs:function(){return{lineWidth:1}},calculateBox:function(){var t=this._attrs,e=t.x,n=t.y,r=t.rx,i=t.ry,a=this.getHitLineWidth(),o=r+a/2,s=i+a/2;return{minX:e-o,minY:n-s,maxX:e+o,maxY:n+s}},createPath:function(t){var e=this._attrs,n=e.x,i=e.y,a=e.rx,o=e.ry;t=t||self.get("context");var s=a>o?a:o,u=a>o?1:a/o,c=a>o?o/a:1,h=[1,0,0,0,1,0,0,0,1];r.mat3.scale(h,h,[u,c]),r.mat3.translate(h,h,[n,i]),t.beginPath(),t.save(),t.transform(h[0],h[1],h[3],h[4],h[6],h[7]),t.arc(0,0,s,0,2*Math.PI),t.restore(),t.closePath()}}),t.exports=a},function(t,e,n){var r=n(0),i=n(1),a=n(8),o=function t(e){t.superclass.constructor.call(this,e)};o.ATTRS={x:0,y:0,rs:0,re:0,startAngle:0,endAngle:0,clockwise:!1,lineWidth:1},r.extend(o,i),r.augment(o,{canFill:!0,canStroke:!0,type:"fan",getDefaultAttrs:function(){return{clockwise:!1,lineWidth:1,rs:0,re:0}},calculateBox:function(){var t=this,e=t._attrs,n=e.x,r=e.y,i=e.rs,o=e.re,s=e.startAngle,u=e.endAngle,c=e.clockwise,h=this.getHitLineWidth(),f=a.box(n,r,i,s,u,c),l=a.box(n,r,o,s,u,c),d=Math.min(f.minX,l.minX),p=Math.min(f.minY,l.minY),g=Math.max(f.maxX,l.maxX),v=Math.max(f.maxY,l.maxY),m=h/2;return{minX:d-m,minY:p-m,maxX:g+m,maxY:v+m}},createPath:function(t){var e=this._attrs,n=e.x,r=e.y,i=e.rs,a=e.re,o=e.startAngle,s=e.endAngle,u=e.clockwise,c={x:Math.cos(o)*i+n,y:Math.sin(o)*i+r},h={x:Math.cos(o)*a+n,y:Math.sin(o)*a+r},f={x:Math.cos(s)*i+n,y:Math.sin(s)*i+r};t=t||self.get("context"),t.beginPath(),t.moveTo(c.x,c.y),t.lineTo(h.x,h.y),t.arc(n,r,a,o,s,u),t.lineTo(f.x,f.y),t.arc(n,r,i,s,o,!u),t.closePath()}}),t.exports=o},function(t,e,n){var r=n(0),i=n(1),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={x:0,y:0,img:void 0,width:0,height:0,sx:null,sy:null,swidth:null,sheight:null},r.extend(a,i),r.augment(a,{type:"image",isHitBox:function(){return!1},calculateBox:function(){var t=this._attrs;this._cfg.attrs&&this._cfg.attrs.img===t.img||this._setAttrImg();var e=t.x,n=t.y,r=t.width,i=t.height;return{minX:e,minY:n,maxX:e+r,maxY:n+i}},_beforeSetLoading:function(t){var e=this.get("canvas");return!1===t&&!0===this.get("toDraw")&&(this._cfg.loading=!1,e.draw()),t},_setAttrImg:function(){var t=this,e=t._attrs,n=e.img;if(!r.isString(n))return n instanceof Image?(e.width||t.attr("width",n.width),e.height||t.attr("height",n.height),n):n instanceof HTMLElement&&r.isString(n.nodeName)&&"CANVAS"===n.nodeName.toUpperCase()?(e.width||t.attr("width",Number(n.getAttribute("width"))),e.height||t.attr("height",Number(n.getAttribute("height"))),n):n instanceof ImageData?(e.width||t.attr("width",n.width),e.height||t.attr("height",n.height),n):null;var i=new Image;i.onload=function(){if(t.get("destroyed"))return!1;t.attr("imgSrc",n),t.attr("img",i);var e=t.get("callback");e&&e.call(t),t.set("loading",!1)},i.src=n,i.crossOrigin="Anonymous",t.set("loading",!0)},drawInner:function(t){this._cfg.hasUpdate&&this._setAttrImg(),this.get("loading")?this.set("toDraw",!0):(this._drawImage(t),this._cfg.hasUpdate=!1)},_drawImage:function(t){var e=this._attrs,n=e.x,i=e.y,a=e.img,o=e.width,s=e.height,u=e.sx,c=e.sy,h=e.swidth,f=e.sheight;this.set("toDraw",!1);var l=a;if(l instanceof ImageData&&(l=new Image,l.src=a),l instanceof Image||l instanceof HTMLElement&&r.isString(l.nodeName)&&"CANVAS"===l.nodeName.toUpperCase()){if(r.isNil(u)||r.isNil(c)||r.isNil(h)||r.isNil(f))return void t.drawImage(l,n,i,o,s);if(!r.isNil(u)&&!r.isNil(c)&&!r.isNil(h)&&!r.isNil(f))return void t.drawImage(l,u,c,h,f,n,i,o,s)}}}),t.exports=a},function(t,e,n){var r=n(0),i=n(1),a=n(9),o=n(7),s=function t(e){t.superclass.constructor.call(this,e)};s.ATTRS={x1:0,y1:0,x2:0,y2:0,lineWidth:1,startArrow:!1,endArrow:!1},r.extend(s,i),r.augment(s,{canStroke:!0,type:"line",getDefaultAttrs:function(){return{lineWidth:1,startArrow:!1,endArrow:!1}},calculateBox:function(){var t=this._attrs,e=t.x1,n=t.y1,r=t.x2,i=t.y2,a=this.getHitLineWidth();return o.box(e,n,r,i,a)},createPath:function(t){var e=this,n=this._attrs,r=n.x1,i=n.y1,o=n.x2,s=n.y2;if(n.startArrow&&n.startArrow.d){var u=a.getShortenOffset(r,i,o,s,n.startArrow.d);r+=u.dx,i+=u.dy}if(n.endArrow&&n.endArrow.d){var c=a.getShortenOffset(r,i,o,s,n.endArrow.d);o-=c.dx,s-=c.dy}t=t||e.get("context"),t.beginPath(),t.moveTo(r,i),t.lineTo(o,s)},afterPath:function(t){var e=this,n=e._attrs,r=n.x1,i=n.y1,o=n.x2,s=n.y2;t=t||e.get("context"),n.startArrow&&a.addStartArrow(t,n,o,s,r,i),n.endArrow&&a.addEndArrow(t,n,r,i,o,s)},getPoint:function(t){var e=this._attrs;return{x:o.at(e.x1,e.x2,t),y:o.at(e.y1,e.y2,t)}}}),t.exports=s},function(t,e,n){var r=n(0),i=n(1),a=n(10),o=n(4),s=n(9),u=n(22),c=n(20),h=function t(e){t.superclass.constructor.call(this,e)};h.ATTRS={path:null,lineWidth:1,startArrow:!1,endArrow:!1},r.extend(h,i),r.augment(h,{canFill:!0,canStroke:!0,type:"path",getDefaultAttrs:function(){return{lineWidth:1,startArrow:!1,endArrow:!1}},_afterSetAttrPath:function(t){var e=this;if(r.isNil(t))return e.setSilent("segments",null),void e.setSilent("box",void 0);var n,i=o.parsePath(t),s=[];if(r.isArray(i)&&0!==i.length&&("M"===i[0][0]||"m"===i[0][0])){for(var u=i.length,c=0;ca&&(a=e.maxX),e.minYs&&(s=e.maxY))})),i===1/0||o===1/0?{minX:0,minY:0,maxX:0,maxY:0}:{minX:i,minY:o,maxX:a,maxY:s}},_setTcache:function(){var t,e,n,i,a=0,o=0,s=[],u=this._cfg.curve;u&&(r.each(u,(function(t,e){n=u[e+1],i=t.length,n&&(a+=c.len(t[i-2],t[i-1],n[1],n[2],n[3],n[4],n[5],n[6]))})),this._cfg.totalLength=a,0!==a?(r.each(u,(function(r,h){n=u[h+1],i=r.length,n&&(t=[],t[0]=o/a,e=c.len(r[i-2],r[i-1],n[1],n[2],n[3],n[4],n[5],n[6]),o+=e,t[1]=o/a,s.push(t))})),this._cfg.tCache=s):this._cfg.tCache=[])},getTotalLength:function(){var t=this.get("totalLength");return r.isNil(t)?(this._calculateCurve(),this._setTcache(),this.get("totalLength")):t},_calculateCurve:function(){var t=this,e=t._attrs,n=e.path;this._cfg.curve=u.pathTocurve(n)},getStartTangent:function(){var t,e,n,i,a=this.get("segments");if(a.length>1)if(t=a[0].endPoint,e=a[1].endPoint,n=a[1].startTangent,i=[],r.isFunction(n)){var o=n();i.push([t.x-o[0],t.y-o[1]]),i.push([t.x,t.y])}else i.push([e.x,e.y]),i.push([t.x,t.y]);return i},getEndTangent:function(){var t,e,n,i,a=this.get("segments"),o=a.length;if(o>1)if(t=a[o-2].endPoint,e=a[o-1].endPoint,n=a[o-1].endTangent,i=[],r.isFunction(n)){var s=n();i.push([e.x-s[0],e.y-s[1]]),i.push([e.x,e.y])}else i.push([t.x,t.y]),i.push([e.x,e.y]);return i},getPoint:function(t){var e,n,i=this._cfg.tCache;i||(this._calculateCurve(),this._setTcache(),i=this._cfg.tCache);var a=this._cfg.curve;if(!i||0===i.length)return a?{x:a[0][1],y:a[0][2]}:null;r.each(i,(function(r,i){t>=r[0]&&t<=r[1]&&(e=(t-r[0])/(r[1]-r[0]),n=i)}));var o=a[n];if(r.isNil(o)||r.isNil(n))return null;var s=o.length,u=a[n+1];return{x:c.at(o[s-2],u[1],u[3],u[5],1-e),y:c.at(o[s-1],u[2],u[4],u[6],1-e)}},createPath:function(t){var e=this,n=e._attrs,i=e.get("segments");if(r.isArray(i)){var a=i.length;if(0!==a){if(t=t||e.get("context"),t.beginPath(),n.startArrow&&n.startArrow.d){var o=e.getStartTangent(),u=s.getShortenOffset(o[0][0],o[0][1],o[1][0],o[1][1],n.startArrow.d);i[0].shortenDraw(t,u.dx,u.dy)}else i[0].draw(t);for(var c=1;c2&&i[a-2].draw(t),l.shortenDraw(t,f.dx,f.dy))}else i[a-2]&&i[a-2].draw(t),i[a-1].draw(t)}}},afterPath:function(t){var e=this,n=e._attrs,i=e.get("segments"),a=n.path;if(t=t||e.get("context"),r.isArray(i)&&1!==i.length&&(n.startArrow||n.endArrow)&&"z"!==a[a.length-1]&&"Z"!==a[a.length-1]&&!n.fill){var o=e.getStartTangent();s.addStartArrow(t,n,o[0][0],o[0][1],o[1][0],o[1][1]);var u=e.getEndTangent();s.addEndArrow(t,n,u[0][0],u[0][1],u[1][0],u[1][1])}}}),t.exports=h},function(t,e,n){var r=n(0),i=n(1),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={points:null,lineWidth:1},r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"polygon",getDefaultAttrs:function(){return{lineWidth:1}},calculateBox:function(){var t=this,e=t._attrs,n=e.points,i=this.getHitLineWidth();if(!n||0===n.length)return null;var a=1/0,o=1/0,s=-1/0,u=-1/0;r.each(n,(function(t){var e=t[0],n=t[1];es&&(s=e),nu&&(u=n)}));var c=i/2;return{minX:a-c,minY:o-c,maxX:s+c,maxY:u+c}},createPath:function(t){var e=this,n=e._attrs,i=n.points;i.length<2||(t=t||e.get("context"),t.beginPath(),r.each(i,(function(e,n){0===n?t.moveTo(e[0],e[1]):t.lineTo(e[0],e[1])})),t.closePath())}}),t.exports=a},function(t,e,n){var r=n(0),i=n(1),a=n(9),o=n(7),s=function t(e){t.superclass.constructor.call(this,e)};s.ATTRS={points:null,lineWidth:1,startArrow:!1,endArrow:!1,tCache:null},r.extend(s,i),r.augment(s,{canStroke:!0,type:"polyline",tCache:null,getDefaultAttrs:function(){return{lineWidth:1,startArrow:!1,endArrow:!1}},calculateBox:function(){var t=this,e=t._attrs,n=this.getHitLineWidth(),i=e.points;if(!i||0===i.length)return null;var a=1/0,o=1/0,s=-1/0,u=-1/0;r.each(i,(function(t){var e=t[0],n=t[1];es&&(s=e),nu&&(u=n)}));var c=n/2;return{minX:a-c,minY:o-c,maxX:s+c,maxY:u+c}},_setTcache:function(){var t,e,n=this,i=n._attrs,a=i.points,s=0,u=0,c=[];a&&0!==a.length&&(r.each(a,(function(t,e){a[e+1]&&(s+=o.len(t[0],t[1],a[e+1][0],a[e+1][1]))})),s<=0||(r.each(a,(function(n,r){a[r+1]&&(t=[],t[0]=u/s,e=o.len(n[0],n[1],a[r+1][0],a[r+1][1]),u+=e,t[1]=u/s,c.push(t))})),this.tCache=c))},createPath:function(t){var e,n=this,r=n._attrs,i=r.points;if(!(i.length<2)){var o=i.length-1,s=i[0][0],u=i[0][1],c=i[o][0],h=i[o][1];if(r.startArrow&&r.startArrow.d){var f=a.getShortenOffset(i[0][0],i[0][1],i[1][0],i[1][1],r.startArrow.d);s+=f.dx,u+=f.dy}if(r.endArrow&&r.endArrow.d){var l=a.getShortenOffset(i[o-1][0],i[o-1][1],i[o][0],i[o][1],r.endArrow.d);c-=l.dx,h-=l.dy}for(t=t||n.get("context"),t.beginPath(),t.moveTo(s,u),e=1;e=r[0]&&t<=r[1]&&(e=(t-r[0])/(r[1]-r[0]),n=i)})),{x:o.at(a[n][0],a[n+1][0],e),y:o.at(a[n][1],a[n+1][1],e)}}}),t.exports=s},function(t,e,n){var r=n(0),i=n(4),a=i.parseRadius,o=n(1),s=function t(e){t.superclass.constructor.call(this,e)};s.ATTRS={x:0,y:0,width:0,height:0,radius:0,lineWidth:1},r.extend(s,o),r.augment(s,{canFill:!0,canStroke:!0,type:"rect",getDefaultAttrs:function(){return{lineWidth:1,radius:0}},calculateBox:function(){var t=this,e=t._attrs,n=e.x,r=e.y,i=e.width,a=e.height,o=this.getHitLineWidth(),s=o/2;return{minX:n-s,minY:r-s,maxX:n+i+s,maxY:r+a+s}},createPath:function(t){var e=this,n=e._attrs,r=n.x,i=n.y,o=n.width,s=n.height,u=n.radius;if(t=t||e.get("context"),t.beginPath(),0===u)t.rect(r,i,o,s);else{var c=a(u);t.moveTo(r+c.r1,i),t.lineTo(r+o-c.r2,i),0!==c.r2&&t.arc(r+o-c.r2,i+c.r2,c.r2,-Math.PI/2,0),t.lineTo(r+o,i+s-c.r3),0!==c.r3&&t.arc(r+o-c.r3,i+s-c.r3,c.r3,0,Math.PI/2),t.lineTo(r+c.r4,i+s),0!==c.r4&&t.arc(r+c.r4,i+s-c.r4,c.r4,Math.PI/2,Math.PI),t.lineTo(r,i+c.r1),0!==c.r1&&t.arc(r+c.r1,i+c.r1,c.r1,Math.PI,1.5*Math.PI),t.closePath()}}}),t.exports=s},function(t,e,n){var r=n(0),i=n(1),a=function t(e){t.superclass.constructor.call(this,e)};a.ATTRS={x:0,y:0,text:null,fontSize:12,fontFamily:"sans-serif",fontStyle:"normal",fontWeight:"normal",fontVariant:"normal",textAlign:"start",textBaseline:"bottom",lineHeight:null,textArr:null},r.extend(a,i),r.augment(a,{canFill:!0,canStroke:!0,type:"text",getDefaultAttrs:function(){return{lineWidth:1,lineCount:1,fontSize:12,fontFamily:"sans-serif",fontStyle:"normal",fontWeight:"normal",fontVariant:"normal",textAlign:"start",textBaseline:"bottom"}},initTransform:function(){var t=this._attrs.fontSize;t&&+t<12&&this.transform([["t",-1*this._attrs.x,-1*this._attrs.y],["s",+t/12,+t/12],["t",this._attrs.x,this._attrs.y]])},_assembleFont:function(){var t=this._attrs,e=t.fontSize,n=t.fontFamily,r=t.fontWeight,i=t.fontStyle,a=t.fontVariant;t.font=[i,a,r,e+"px",n].join(" ")},_setAttrText:function(){var t=this._attrs,e=t.text,n=null;if(r.isString(e))if(-1!==e.indexOf("\n")){n=e.split("\n");var i=n.length;t.lineCount=i}else t.lineCount=1;t.textArr=n},_getTextHeight:function(){var t=this._attrs,e=t.lineCount,n=1*t.fontSize;if(e>1){var r=this._getSpaceingY();return n*e+r*(e-1)}return n},isHitBox:function(){return!1},calculateBox:function(){var t=this,e=t._attrs,n=this._cfg;n.attrs&&!n.hasUpdate||(this._assembleFont(),this._setAttrText()),e.textArr||this._setAttrText();var r=e.x,i=e.y,a=t.measureText();if(!a)return{minX:r,minY:i,maxX:r,maxY:i};var o=t._getTextHeight(),s=e.textAlign,u=e.textBaseline,c=t.getHitLineWidth(),h={x:r,y:i-o};s&&("end"===s||"right"===s?h.x-=a:"center"===s&&(h.x-=a/2)),u&&("top"===u?h.y+=o:"middle"===u&&(h.y+=o/2)),this.set("startPoint",h);var f=c/2;return{minX:h.x-f,minY:h.y-f,maxX:h.x+a+f,maxY:h.y+o+f}},_getSpaceingY:function(){var t=this._attrs,e=t.lineHeight,n=1*t.fontSize;return e?e-n:.14*n},drawInner:function(t){var e=this,n=e._attrs,i=this._cfg;i.attrs&&!i.hasUpdate||(this._assembleFont(),this._setAttrText()),t.font=n.font;var a=n.text;if(a){var o=n.textArr,s=n.x,u=n.y;if(t.beginPath(),e.hasStroke()){var c=n.strokeOpacity;r.isNil(c)||1===c||(t.globalAlpha=c),o?e._drawTextArr(t,!1):t.strokeText(a,s,u),t.globalAlpha=1}if(e.hasFill()){var h=n.fillOpacity;r.isNil(h)||1===h||(t.globalAlpha=h),o?e._drawTextArr(t,!0):t.fillText(a,s,u)}i.hasUpdate=!1}},_drawTextArr:function(t,e){var n,i=this._attrs.textArr,a=this._attrs.textBaseline,o=1*this._attrs.fontSize,s=this._getSpaceingY(),u=this._attrs.x,c=this._attrs.y,h=this.getBBox(),f=h.maxY-h.minY;r.each(i,(function(r,i){n=c+i*(s+o)-f+o,"middle"===a&&(n+=f-o-(f-o)/2),"top"===a&&(n+=f-o),e?t.fillText(r,u,n):t.strokeText(r,u,n)}))},measureText:function(){var t,e=this,n=e._attrs,i=n.text,a=n.font,o=n.textArr,s=0;if(!r.isNil(i)){var u=document.createElement("canvas").getContext("2d");return u.save(),u.font=a,o?r.each(o,(function(e){t=u.measureText(e).width,sh&&(c=e.slice(h,c),l[f]?l[f]+=c:l[++f]=c),(n=n[0])===(u=u[0])?l[f]?l[f]+=u:l[++f]=u:(l[++f]=null,d.push({i:f,x:Object(r["a"])(n,u)})),h=a.lastIndex;return h1)for(var n=1;n-1)r.call(t,s,1)}return t};t.exports=o},function(t,e){var n=1e-5;t.exports=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n;return Math.abs(t-e)]*>/,a={tr:document.createElement("tbody"),tbody:n,thead:n,tfoot:n,td:r,th:r,"*":document.createElement("div")};t.exports=function(t){var e=i.test(t)&&RegExp.$1;e in a||(e="*");var n=a[e];t=t.replace(/(^\s*)|(\s*$)/g,""),n.innerHTML=""+t;var r=n.childNodes[0];return n.removeChild(r),r}},function(t,e){t.exports=function(t,e){if(t)for(var n in e)e.hasOwnProperty(n)&&(t.style[n]=e[n]);return t}},function(t,e){t.exports=function(t){var e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(t){return setTimeout(t,16)};return e(t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=o,e.fromMat4=s,e.clone=u,e.copy=c,e.fromValues=h,e.set=f,e.identity=l,e.transpose=d,e.invert=p,e.adjoint=g,e.determinant=v,e.multiply=m,e.translate=y,e.rotate=x,e.scale=b,e.fromTranslation=w,e.fromRotation=_,e.fromScaling=M,e.fromMat2d=S,e.fromQuat=k,e.normalFromMat4=A,e.projection=P,e.str=C,e.frob=E,e.add=I,e.subtract=O,e.multiplyScalar=T,e.multiplyScalarAndAdd=N,e.exactEquals=j,e.equals=B;var r=n(17),i=a(r);function a(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function o(){var t=new i.ARRAY_TYPE(9);return i.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function s(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t}function u(t){var e=new i.ARRAY_TYPE(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function c(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function h(t,e,n,r,a,o,s,u,c){var h=new i.ARRAY_TYPE(9);return h[0]=t,h[1]=e,h[2]=n,h[3]=r,h[4]=a,h[5]=o,h[6]=s,h[7]=u,h[8]=c,h}function f(t,e,n,r,i,a,o,s,u,c){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=u,t[8]=c,t}function l(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function d(t,e){if(t===e){var n=e[1],r=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=n,t[5]=e[7],t[6]=r,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function p(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],c=e[7],h=e[8],f=h*o-s*c,l=-h*a+s*u,d=c*a-o*u,p=n*f+r*l+i*d;return p?(p=1/p,t[0]=f*p,t[1]=(-h*r+i*c)*p,t[2]=(s*r-i*o)*p,t[3]=l*p,t[4]=(h*n-i*u)*p,t[5]=(-s*n+i*a)*p,t[6]=d*p,t[7]=(-c*n+r*u)*p,t[8]=(o*n-r*a)*p,t):null}function g(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],c=e[7],h=e[8];return t[0]=o*h-s*c,t[1]=i*c-r*h,t[2]=r*s-i*o,t[3]=s*u-a*h,t[4]=n*h-i*u,t[5]=i*a-n*s,t[6]=a*c-o*u,t[7]=r*u-n*c,t[8]=n*o-r*a,t}function v(t){var e=t[0],n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],u=t[7],c=t[8];return e*(c*a-o*u)+n*(-c*i+o*s)+r*(u*i-a*s)}function m(t,e,n){var r=e[0],i=e[1],a=e[2],o=e[3],s=e[4],u=e[5],c=e[6],h=e[7],f=e[8],l=n[0],d=n[1],p=n[2],g=n[3],v=n[4],m=n[5],y=n[6],x=n[7],b=n[8];return t[0]=l*r+d*o+p*c,t[1]=l*i+d*s+p*h,t[2]=l*a+d*u+p*f,t[3]=g*r+v*o+m*c,t[4]=g*i+v*s+m*h,t[5]=g*a+v*u+m*f,t[6]=y*r+x*o+b*c,t[7]=y*i+x*s+b*h,t[8]=y*a+x*u+b*f,t}function y(t,e,n){var r=e[0],i=e[1],a=e[2],o=e[3],s=e[4],u=e[5],c=e[6],h=e[7],f=e[8],l=n[0],d=n[1];return t[0]=r,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=u,t[6]=l*r+d*o+c,t[7]=l*i+d*s+h,t[8]=l*a+d*u+f,t}function x(t,e,n){var r=e[0],i=e[1],a=e[2],o=e[3],s=e[4],u=e[5],c=e[6],h=e[7],f=e[8],l=Math.sin(n),d=Math.cos(n);return t[0]=d*r+l*o,t[1]=d*i+l*s,t[2]=d*a+l*u,t[3]=d*o-l*r,t[4]=d*s-l*i,t[5]=d*u-l*a,t[6]=c,t[7]=h,t[8]=f,t}function b(t,e,n){var r=n[0],i=n[1];return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function w(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t}function _(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=-n,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function M(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t}function k(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],o=n+n,s=r+r,u=i+i,c=n*o,h=r*o,f=r*s,l=i*o,d=i*s,p=i*u,g=a*o,v=a*s,m=a*u;return t[0]=1-f-p,t[3]=h-m,t[6]=l+v,t[1]=h+m,t[4]=1-c-p,t[7]=d-g,t[2]=l-v,t[5]=d+g,t[8]=1-c-f,t}function A(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],c=e[7],h=e[8],f=e[9],l=e[10],d=e[11],p=e[12],g=e[13],v=e[14],m=e[15],y=n*s-r*o,x=n*u-i*o,b=n*c-a*o,w=r*u-i*s,_=r*c-a*s,M=i*c-a*u,S=h*g-f*p,k=h*v-l*p,A=h*m-d*p,P=f*v-l*g,C=f*m-d*g,E=l*m-d*v,I=y*E-x*C+b*P+w*A-_*k+M*S;return I?(I=1/I,t[0]=(s*E-u*C+c*P)*I,t[1]=(u*A-o*E-c*k)*I,t[2]=(o*C-s*A+c*S)*I,t[3]=(i*C-r*E-a*P)*I,t[4]=(n*E-i*A+a*k)*I,t[5]=(r*A-n*C-a*S)*I,t[6]=(g*M-v*_+m*w)*I,t[7]=(v*b-p*M-m*x)*I,t[8]=(p*_-g*b+m*y)*I,t):null}function P(t,e,n){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/n,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t}function C(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"}function E(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2))}function I(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t[8]=e[8]+n[8],t}function O(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t[6]=e[6]-n[6],t[7]=e[7]-n[7],t[8]=e[8]-n[8],t}function T(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t}function N(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t}function j(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]}function B(t,e){var n=t[0],r=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=t[6],h=t[7],f=t[8],l=e[0],d=e[1],p=e[2],g=e[3],v=e[4],m=e[5],y=e[6],x=e[7],b=e[8];return Math.abs(n-l)<=i.EPSILON*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(r-d)<=i.EPSILON*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(a-p)<=i.EPSILON*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(o-g)<=i.EPSILON*Math.max(1,Math.abs(o),Math.abs(g))&&Math.abs(s-v)<=i.EPSILON*Math.max(1,Math.abs(s),Math.abs(v))&&Math.abs(u-m)<=i.EPSILON*Math.max(1,Math.abs(u),Math.abs(m))&&Math.abs(c-y)<=i.EPSILON*Math.max(1,Math.abs(c),Math.abs(y))&&Math.abs(h-x)<=i.EPSILON*Math.max(1,Math.abs(h),Math.abs(x))&&Math.abs(f-b)<=i.EPSILON*Math.max(1,Math.abs(f),Math.abs(b))}e.mul=m,e.sub=O},function(t,e,n){var r=n(88),i=n(35);r.angle=function(t,e){var n=r.dot(t,e)/(r.length(t)*r.length(e));return Math.acos(i(n,-1,1))},r.direction=function(t,e){return t[0]*e[1]-e[0]*t[1]},r.angleTo=function(t,e,n){var i=r.angle(t,e),a=r.direction(t,e)>=0;return n?a?2*Math.PI-i:i:a?i:2*Math.PI-i},r.vertical=function(t,e,n){return n?(t[0]=e[1],t[1]=-1*e[0]):(t[0]=-1*e[1],t[1]=e[0]),t},t.exports=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.sqrDist=e.dist=e.div=e.mul=e.sub=e.len=void 0,e.create=o,e.clone=s,e.fromValues=u,e.copy=c,e.set=h,e.add=f,e.subtract=l,e.multiply=d,e.divide=p,e.ceil=g,e.floor=v,e.min=m,e.max=y,e.round=x,e.scale=b,e.scaleAndAdd=w,e.distance=_,e.squaredDistance=M,e.length=S,e.squaredLength=k,e.negate=A,e.inverse=P,e.normalize=C,e.dot=E,e.cross=I,e.lerp=O,e.random=T,e.transformMat2=N,e.transformMat2d=j,e.transformMat3=B,e.transformMat4=L,e.rotate=D,e.angle=R,e.str=F,e.exactEquals=Y,e.equals=q;var r=n(17),i=a(r);function a(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function o(){var t=new i.ARRAY_TYPE(2);return i.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0),t}function s(t){var e=new i.ARRAY_TYPE(2);return e[0]=t[0],e[1]=t[1],e}function u(t,e){var n=new i.ARRAY_TYPE(2);return n[0]=t,n[1]=e,n}function c(t,e){return t[0]=e[0],t[1]=e[1],t}function h(t,e,n){return t[0]=e,t[1]=n,t}function f(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function l(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function d(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t}function p(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t}function g(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function v(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function m(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function y(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}function x(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function b(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function w(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t}function _(t,e){var n=e[0]-t[0],r=e[1]-t[1];return Math.sqrt(n*n+r*r)}function M(t,e){var n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function S(t){var e=t[0],n=t[1];return Math.sqrt(e*e+n*n)}function k(t){var e=t[0],n=t[1];return e*e+n*n}function A(t,e){return t[0]=-e[0],t[1]=-e[1],t}function P(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function C(t,e){var n=e[0],r=e[1],i=n*n+r*r;return i>0&&(i=1/Math.sqrt(i),t[0]=e[0]*i,t[1]=e[1]*i),t}function E(t,e){return t[0]*e[0]+t[1]*e[1]}function I(t,e,n){var r=e[0]*n[1]-e[1]*n[0];return t[0]=t[1]=0,t[2]=r,t}function O(t,e,n,r){var i=e[0],a=e[1];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t}function T(t,e){e=e||1;var n=2*i.RANDOM()*Math.PI;return t[0]=Math.cos(n)*e,t[1]=Math.sin(n)*e,t}function N(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i,t[1]=n[1]*r+n[3]*i,t}function j(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i+n[4],t[1]=n[1]*r+n[3]*i+n[5],t}function B(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[3]*i+n[6],t[1]=n[1]*r+n[4]*i+n[7],t}function L(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[4]*i+n[12],t[1]=n[1]*r+n[5]*i+n[13],t}function D(t,e,n,r){var i=e[0]-n[0],a=e[1]-n[1],o=Math.sin(r),s=Math.cos(r);return t[0]=i*s-a*o+n[0],t[1]=i*o+a*s+n[1],t}function R(t,e){var n=t[0],r=t[1],i=e[0],a=e[1],o=n*n+r*r;o>0&&(o=1/Math.sqrt(o));var s=i*i+a*a;s>0&&(s=1/Math.sqrt(s));var u=(n*i+r*a)*o*s;return u>1?0:u<-1?Math.PI:Math.acos(u)}function F(t){return"vec2("+t[0]+", "+t[1]+")"}function Y(t,e){return t[0]===e[0]&&t[1]===e[1]}function q(t,e){var n=t[0],r=t[1],a=e[0],o=e[1];return Math.abs(n-a)<=i.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(r-o)<=i.EPSILON*Math.max(1,Math.abs(r),Math.abs(o))}e.len=S,e.sub=l,e.mul=d,e.div=p,e.dist=_,e.sqrDist=M,e.sqrLen=k,e.forEach=function(){var t=o();return function(e,n,r,i,a,o){var s=void 0,u=void 0;for(n||(n=2),r||(r=0),u=i?Math.min(i*n+r,e.length):e.length,s=r;s0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a),t}function E(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function I(t,e,n){var r=e[0],i=e[1],a=e[2],o=n[0],s=n[1],u=n[2];return t[0]=i*u-a*s,t[1]=a*o-r*u,t[2]=r*s-i*o,t}function O(t,e,n,r){var i=e[0],a=e[1],o=e[2];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t[2]=o+r*(n[2]-o),t}function T(t,e,n,r,i,a){var o=a*a,s=o*(2*a-3)+1,u=o*(a-2)+a,c=o*(a-1),h=o*(3-2*a);return t[0]=e[0]*s+n[0]*u+r[0]*c+i[0]*h,t[1]=e[1]*s+n[1]*u+r[1]*c+i[1]*h,t[2]=e[2]*s+n[2]*u+r[2]*c+i[2]*h,t}function N(t,e,n,r,i,a){var o=1-a,s=o*o,u=a*a,c=s*o,h=3*a*s,f=3*u*o,l=u*a;return t[0]=e[0]*c+n[0]*h+r[0]*f+i[0]*l,t[1]=e[1]*c+n[1]*h+r[1]*f+i[1]*l,t[2]=e[2]*c+n[2]*h+r[2]*f+i[2]*l,t}function j(t,e){e=e||1;var n=2*i.RANDOM()*Math.PI,r=2*i.RANDOM()-1,a=Math.sqrt(1-r*r)*e;return t[0]=Math.cos(n)*a,t[1]=Math.sin(n)*a,t[2]=r*e,t}function B(t,e,n){var r=e[0],i=e[1],a=e[2],o=n[3]*r+n[7]*i+n[11]*a+n[15];return o=o||1,t[0]=(n[0]*r+n[4]*i+n[8]*a+n[12])/o,t[1]=(n[1]*r+n[5]*i+n[9]*a+n[13])/o,t[2]=(n[2]*r+n[6]*i+n[10]*a+n[14])/o,t}function L(t,e,n){var r=e[0],i=e[1],a=e[2];return t[0]=r*n[0]+i*n[3]+a*n[6],t[1]=r*n[1]+i*n[4]+a*n[7],t[2]=r*n[2]+i*n[5]+a*n[8],t}function D(t,e,n){var r=n[0],i=n[1],a=n[2],o=n[3],s=e[0],u=e[1],c=e[2],h=i*c-a*u,f=a*s-r*c,l=r*u-i*s,d=i*l-a*f,p=a*h-r*l,g=r*f-i*h,v=2*o;return h*=v,f*=v,l*=v,d*=2,p*=2,g*=2,t[0]=s+h+d,t[1]=u+f+p,t[2]=c+l+g,t}function R(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t}function F(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t}function Y(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t}function q(t,e){var n=c(t[0],t[1],t[2]),r=c(e[0],e[1],e[2]);C(n,n),C(r,r);var i=E(n,r);return i>1?0:i<-1?Math.PI:Math.acos(i)}function z(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function X(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function G(t,e){var n=t[0],r=t[1],a=t[2],o=e[0],s=e[1],u=e[2];return Math.abs(n-o)<=i.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-s)<=i.EPSILON*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(a-u)<=i.EPSILON*Math.max(1,Math.abs(a),Math.abs(u))}e.sub=d,e.mul=p,e.div=g,e.dist=M,e.sqrDist=S,e.len=u,e.sqrLen=k,e.forEach=function(){var t=o();return function(e,n,r,i,a,o){var s=void 0,u=void 0;for(n||(n=3),r||(r=0),u=i?Math.min(i*n+r,e.length):e.length,s=r;s120||y>s?(l=i,h=null,this._emitEvent("dragstart",e,r,i)):n._emitEvent("mousemove",e,r,i)}else n._emitEvent("mousemove",e,r,i);c!==i&&(n._emitEvent("mouseenter",e,r,i),n._emitEvent("mouseover",e,r,i),l&&n._emitEvent("dragenter",e,r,i))}else{var x=n._getEventObj("mousemove",e,r,n);n.emit("mousemove",x)}c=i}else if(this._emitEvent(t,e,r,i||this),l||"mousedown"!==t||e.button!==u||(h=i,f={x:e.clientX,y:e.clientY},d=o()),"mouseup"===t&&e.button===u){var b=f.x-e.clientX,w=f.y-e.clientY,_=b*b+w*w,M=o(),S=M-d;(_2*Math.PI&&(t=t/180*Math.PI),this.transform([["t",-e,-n],["r",t],["t",e,n]])},move:function(t,e){var n=this.get("x")||0,r=this.get("y")||0;return this.translate(t-n,e-r),this.set("x",t),this.set("y",e),this},transform:function(t){var e=this,n=this._attrs.matrix;return r.each(t,(function(t){switch(t[0]){case"t":e.translate(t[1],t[2]);break;case"s":e.scale(t[1],t[2]);break;case"r":e.rotate(t[1]);break;case"m":e.attr("matrix",r.mat3.multiply([],n,t[1])),e.clearTotalMatrix();break;default:break}})),e},setTransform:function(t){return this.attr("matrix",[1,0,0,0,1,0,0,0,1]),this.transform(t)},getMatrix:function(){return this.attr("matrix")},setMatrix:function(t){return this.attr("matrix",t),this.clearTotalMatrix(),this},apply:function(t,e){var n;return n=e?this._getMatrixByRoot(e):this.attr("matrix"),r.vec3.transformMat3(t,t,n),this},_getMatrixByRoot:function(t){var e=this;t=t||e;var n=e,i=[];while(n!==t)i.unshift(n),n=n.get("parent");i.unshift(n);var a=[1,0,0,0,1,0,0,0,1];return r.each(i,(function(t){r.mat3.multiply(a,t.attr("matrix"),a)})),a},getTotalMatrix:function(){var t=this._cfg.totalMatrix;if(!t){t=[1,0,0,0,1,0,0,0,1];var e=this._cfg.parent;if(e){var n=e.getTotalMatrix();o(t,n)}o(t,this.attr("matrix")),this._cfg.totalMatrix=t}return t},clearTotalMatrix:function(){},invert:function(t){var e=this.getTotalMatrix();if(a(e))t[0]/=e[0],t[1]/=e[4];else{var n=r.mat3.invert([],e);n&&r.vec3.transformMat3(t,t,n)}return this},resetTransform:function(t){var e=this.attr("matrix");i(e)||t.transform(e[0],e[1],e[3],e[4],e[6],e[7])}}},function(t,e,n){function r(){return r=Object.assign||function(t){for(var e=1;e0?l=u(l,d):f.addAnimator(h),l.push(d),h.setSilent("animators",l),h.setSilent("pause",{isPaused:!1})},stopAnimate:function(){var t=this,e=this.get("animators");i.each(e,(function(e){t.attr(e.toAttrs||e.onFrame(1)),e.toMatrix&&t.attr("matrix",e.toMatrix),e.callback&&e.callback()})),this.setSilent("animating",!1),this.setSilent("animators",[])},pauseAnimate:function(){var t=this,e=t.get("timeline");return t.setSilent("pause",{isPaused:!0,pauseTime:e.getTime()}),t},resumeAnimate:function(){var t=this,e=t.get("timeline"),n=e.getTime(),r=t.get("animators"),a=t.get("pause").pauseTime;return i.each(r,(function(t){t.startTime=t.startTime+(n-a),t._paused=!1,t._pauseTime=null})),t.setSilent("pause",{isPaused:!1}),t.setSilent("animators",r),t}}},function(t,e,n){var r=n(0),i=n(18),a=n(39),o=["click","mousedown","mouseup","dblclick","contextmenu","mouseout","mouseover","mousemove","dragstart","drag","dragend","dragenter","dragleave","drop"],s=function(){};r.augment(s,a,{emit:function(t,e){var n=arguments;if(a.prototype.emit.apply(this,n),!(n.length>=2&&n[1]instanceof i&&n[1].propagationStopped)&&o.indexOf(t)>=0&&e.target===this){var r=this._cfg.parent;while(r&&!r.get("destroyed"))r.emit.apply(r,n),r=r._cfg.parent}}}),t.exports=s},function(t,e,n){var r=n(1);r.Arc=n(42),r.Circle=n(43),r.Dom=n(44),r.Ellipse=n(45),r.Fan=n(46),r.Image=n(47),r.Line=n(48),r.Marker=n(21),r.Path=n(49),r.Polygon=n(50),r.Polyline=n(51),r.Rect=n(52),r.Text=n(53),t.exports=r},function(t,e,n){var r=n(0),i=n(19),a={arc:n(8),ellipse:n(41),line:n(7)},o=r.createDom(''),s=o.getContext("2d");function u(t,e,n){return n.createPath(s),s.isPointInPath(t,e)}var c=function(t,e){var n=this._attrs,r=n.x,a=n.y,o=n.r,s=n.startAngle,u=n.endAngle,c=n.clockwise,h=this.getHitLineWidth();return!!this.hasStroke()&&i.arcline(r,a,o,s,u,c,h,t,e)},h=function(t,e){var n=this._attrs,r=n.x,a=n.y,o=n.r,s=this.getHitLineWidth(),u=this.hasFill(),c=this.hasStroke();return u&&c?i.circle(r,a,o,t,e)||i.arcline(r,a,o,0,2*Math.PI,!1,s,t,e):u?i.circle(r,a,o,t,e):!!c&&i.arcline(r,a,o,0,2*Math.PI,!1,s,t,e)},f=function(t,e){var n=this._attrs,a=this.hasFill(),o=this.hasStroke(),s=n.x,u=n.y,c=n.rx,h=n.ry,f=this.getHitLineWidth(),l=c>h?c:h,d=c>h?1:c/h,p=c>h?h/c:1,g=[t,e,1],v=[1,0,0,0,1,0,0,0,1];r.mat3.scale(v,v,[d,p]),r.mat3.translate(v,v,[s,u]);var m=r.mat3.invert([],v);return r.vec3.transformMat3(g,g,m),a&&o?i.circle(0,0,l,g[0],g[1])||i.arcline(0,0,l,0,2*Math.PI,!1,f,g[0],g[1]):a?i.circle(0,0,l,g[0],g[1]):!!o&&i.arcline(0,0,l,0,2*Math.PI,!1,f,g[0],g[1])},l=function(t,e){var n=this,o=n.hasFill(),s=n.hasStroke(),u=n._attrs,c=u.x,h=u.y,f=u.rs,l=u.re,d=u.startAngle,p=u.endAngle,g=u.clockwise,v=[1,0],m=[t-c,e-h],y=r.vec2.angleTo(v,m);function x(){var t=a.arc.nearAngle(y,d,p,g);if(r.isNumberEqual(y,t)){var e=r.vec2.squaredLength(m);if(f*f<=e&&e<=l*l)return!0}return!1}function b(){var r=n.getHitLineWidth(),a={x:Math.cos(d)*f+c,y:Math.sin(d)*f+h},o={x:Math.cos(d)*l+c,y:Math.sin(d)*l+h},s={x:Math.cos(p)*f+c,y:Math.sin(p)*f+h},u={x:Math.cos(p)*l+c,y:Math.sin(p)*l+h};return!!i.line(a.x,a.y,o.x,o.y,r,t,e)||(!!i.line(s.x,s.y,u.x,u.y,r,t,e)||(!!i.arcline(c,h,f,d,p,g,r,t,e)||!!i.arcline(c,h,l,d,p,g,r,t,e)))}return o&&s?x()||b():o?x():!!s&&b()},d=function(t,e){var n=this._attrs;if(this.get("toDraw")||!n.img)return!1;this._cfg.attrs&&this._cfg.attrs.img===n.img||this._setAttrImg();var r=n.x,a=n.y,o=n.width,s=n.height;return i.rect(r,a,o,s,t,e)},p=function(t,e){var n=this._attrs,r=n.x1,a=n.y1,o=n.x2,s=n.y2,u=this.getHitLineWidth();return!!this.hasStroke()&&i.line(r,a,o,s,u,t,e)},g=function(t,e){var n=this,i=n.get("segments"),a=n.hasFill(),o=n.hasStroke();function s(){if(!r.isEmpty(i)){for(var a=n.getHitLineWidth(),o=0,s=i.length;o=3&&s.push(a[0]),i.polyline(s,o,t,e)}return r&&a?u(t,e,n)||o():r?u(t,e,n):!!a&&o()},m=function(t,e){var n=this._attrs,r=n.x,a=n.y,o=n.radius||n.r,s=this.getHitLineWidth();return i.circle(r,a,o+s/2,t,e)},y=function(t,e){var n=this,r=n._attrs;if(n.hasStroke()){var a=r.points;if(a.length<2)return!1;var o=r.lineWidth;return i.polyline(a,o,t,e)}return!1},x=function(t,e){var n=this,r=n.hasFill(),a=n.hasStroke();function o(){var r=n._attrs,a=r.x,o=r.y,s=r.width,u=r.height,c=r.radius,h=n.getHitLineWidth();if(0===c){var f=h/2;return i.line(a-f,o,a+s+f,o,h,t,e)||i.line(a+s,o-f,a+s,o+u+f,h,t,e)||i.line(a+s+f,o+u,a-f,o+u,h,t,e)||i.line(a,o+u+f,a,o-f,h,t,e)}return i.line(a+c,o,a+s-c,o,h,t,e)||i.line(a+s,o+c,a+s,o+u-c,h,t,e)||i.line(a+s-c,o+u,a+c,o+u,h,t,e)||i.line(a,o+u-c,a,o+c,h,t,e)||i.arcline(a+s-c,o+c,c,1.5*Math.PI,2*Math.PI,!1,h,t,e)||i.arcline(a+s-c,o+u-c,c,0,.5*Math.PI,!1,h,t,e)||i.arcline(a+c,o+u-c,c,.5*Math.PI,Math.PI,!1,h,t,e)||i.arcline(a+c,o+c,c,Math.PI,1.5*Math.PI,!1,h,t,e)}return r&&a?u(t,e,n)||o():r?u(t,e,n):!!a&&o()},b=function(t,e){var n=this,r=n.getBBox();if(n.hasFill()||n.hasStroke())return i.box(r.minX,r.maxX,r.minY,r.maxY,t,e)},w=function(t,e){if(!this._cfg.el)return!1;var n=this._cfg.el.getBBox();return i.box(n.x,n.x+n.width,n.y,n.y+n.height,t,e)},_={arc:c,circle:h,dom:w,ellipse:f,fan:l,image:d,line:p,path:g,marker:m,polygon:v,polyline:y,rect:x,text:b};t.exports={isPointInPath:function(t,e){var n=_[this.type];return!!n&&n.call(this,t,e)}}},function(t,e,n){var r=n(0),i=n(22),a=n(100),o=n(103),s=n(114),u=s.interpolate,c=s.interpolateArray,h=function(t){this._animators=[],this._current=0,this._timer=null,this.canvas=t};function f(t,e,n){var a={},o=e.toAttrs,s=e.fromAttrs,h=e.toMatrix;if(!t.get("destroyed")){var f;for(var l in o)if(!r.isEqual(s[l],o[l]))if("path"===l){var d=o[l],p=s[l];d.length>p.length?(d=i.parsePathString(o[l]),p=i.parsePathString(s[l]),p=i.fillPathByDiff(p,d),p=i.formatPath(p,d),e.fromAttrs.path=p,e.toAttrs.path=d):e.pathFormatted||(d=i.parsePathString(o[l]),p=i.parsePathString(s[l]),p=i.formatPath(p,d),e.fromAttrs.path=p,e.toAttrs.path=d,e.pathFormatted=!0),a[l]=[];for(var g=0;g0){for(var s=r._animators.length-1;s>=0;s--)if(t=r._animators[s],t.get("destroyed"))i.removeAnimator(s);else{if(!t.get("pause").isPaused){e=t.get("animators");for(var u=e.length-1;u>=0;u--)n=e[u],o=l(t,n,a),o&&(e.splice(u,1),o=!1,n.callback&&n.callback())}0===e.length&&i.removeAnimator(s)}r.canvas.draw()}}))},addAnimator:function(t){this._animators.push(t)},removeAnimator:function(t){this._animators.splice(t,1)},isAnimating:function(){return!!this._animators.length},stop:function(){this._timer&&this._timer.stop()},stopAllAnimations:function(){this._animators.forEach((function(t){t.stopAnimate()})),this._animators=[],this.canvas.draw()},getTime:function(){return this._current}}),t.exports=h},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(23);n.d(e,"now",(function(){return r["b"]})),n.d(e,"timer",(function(){return r["c"]})),n.d(e,"timerFlush",(function(){return r["d"]}));var i=n(101);n.d(e,"timeout",(function(){return i["a"]}));var a=n(102);n.d(e,"interval",(function(){return a["a"]}))},function(t,e,n){"use strict";var r=n(23);e["a"]=function(t,e,n){var i=new r["a"];return e=null==e?0:+e,i.restart((function(n){i.stop(),t(n+e)}),e,n),i}},function(t,e,n){"use strict";var r=n(23);e["a"]=function(t,e,n){var i=new r["a"],a=e;return null==e?(i.restart(t,e,n),i):(e=+e,n=null==n?Object(r["b"])():+n,i.restart((function r(o){o+=a,i.restart(r,a+=e,n),t(o)}),e,n),i)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(104);n.d(e,"easeLinear",(function(){return r["a"]}));var i=n(105);n.d(e,"easeQuad",(function(){return i["b"]})),n.d(e,"easeQuadIn",(function(){return i["a"]})),n.d(e,"easeQuadOut",(function(){return i["c"]})),n.d(e,"easeQuadInOut",(function(){return i["b"]}));var a=n(106);n.d(e,"easeCubic",(function(){return a["b"]})),n.d(e,"easeCubicIn",(function(){return a["a"]})),n.d(e,"easeCubicOut",(function(){return a["c"]})),n.d(e,"easeCubicInOut",(function(){return a["b"]}));var o=n(107);n.d(e,"easePoly",(function(){return o["b"]})),n.d(e,"easePolyIn",(function(){return o["a"]})),n.d(e,"easePolyOut",(function(){return o["c"]})),n.d(e,"easePolyInOut",(function(){return o["b"]}));var s=n(108);n.d(e,"easeSin",(function(){return s["b"]})),n.d(e,"easeSinIn",(function(){return s["a"]})),n.d(e,"easeSinOut",(function(){return s["c"]})),n.d(e,"easeSinInOut",(function(){return s["b"]}));var u=n(109);n.d(e,"easeExp",(function(){return u["b"]})),n.d(e,"easeExpIn",(function(){return u["a"]})),n.d(e,"easeExpOut",(function(){return u["c"]})),n.d(e,"easeExpInOut",(function(){return u["b"]}));var c=n(110);n.d(e,"easeCircle",(function(){return c["b"]})),n.d(e,"easeCircleIn",(function(){return c["a"]})),n.d(e,"easeCircleOut",(function(){return c["c"]})),n.d(e,"easeCircleInOut",(function(){return c["b"]}));var h=n(111);n.d(e,"easeBounce",(function(){return h["c"]})),n.d(e,"easeBounceIn",(function(){return h["a"]})),n.d(e,"easeBounceOut",(function(){return h["c"]})),n.d(e,"easeBounceInOut",(function(){return h["b"]}));var f=n(112);n.d(e,"easeBack",(function(){return f["b"]})),n.d(e,"easeBackIn",(function(){return f["a"]})),n.d(e,"easeBackOut",(function(){return f["c"]})),n.d(e,"easeBackInOut",(function(){return f["b"]}));var l=n(113);n.d(e,"easeElastic",(function(){return l["c"]})),n.d(e,"easeElasticIn",(function(){return l["a"]})),n.d(e,"easeElasticOut",(function(){return l["c"]})),n.d(e,"easeElasticInOut",(function(){return l["b"]}))},function(t,e,n){"use strict";function r(t){return+t}e["a"]=r},function(t,e,n){"use strict";function r(t){return t*t}function i(t){return t*(2-t)}function a(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}e["a"]=r,e["c"]=i,e["b"]=a},function(t,e,n){"use strict";function r(t){return t*t*t}function i(t){return--t*t*t+1}function a(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}e["a"]=r,e["c"]=i,e["b"]=a},function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return o}));var r=3,i=function t(e){function n(t){return Math.pow(t,e)}return e=+e,n.exponent=t,n}(r),a=function t(e){function n(t){return 1-Math.pow(1-t,e)}return e=+e,n.exponent=t,n}(r),o=function t(e){function n(t){return((t*=2)<=1?Math.pow(t,e):2-Math.pow(2-t,e))/2}return e=+e,n.exponent=t,n}(r)},function(t,e,n){"use strict";e["a"]=a,e["c"]=o,e["b"]=s;var r=Math.PI,i=r/2;function a(t){return 1-Math.cos(t*i)}function o(t){return Math.sin(t*i)}function s(t){return(1-Math.cos(r*t))/2}},function(t,e,n){"use strict";function r(t){return Math.pow(2,10*t-10)}function i(t){return 1-Math.pow(2,-10*t)}function a(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}e["a"]=r,e["c"]=i,e["b"]=a},function(t,e,n){"use strict";function r(t){return 1-Math.sqrt(1-t*t)}function i(t){return Math.sqrt(1- --t*t)}function a(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}e["a"]=r,e["c"]=i,e["b"]=a},function(t,e,n){"use strict";e["a"]=d,e["c"]=p,e["b"]=g;var r=4/11,i=6/11,a=8/11,o=3/4,s=9/11,u=10/11,c=15/16,h=21/22,f=63/64,l=1/r/r;function d(t){return 1-p(1-t)}function p(t){return(t=+t)d?Math.pow(t,1/3):t/l+h}function y(t){return t>f?t*t*t:l*(t-h)}function x(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function b(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function w(t){if(t instanceof M)return new M(t.h,t.c,t.l,t.opacity);if(t instanceof v||(t=p(t)),0===t.a&&0===t.b)return new M(NaN,0180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(a(n)+"rotate(",null,i)-2,x:Object(r["a"])(t,e)})):e&&n.push(a(n)+"rotate("+e+i)}function u(t,e,n,o){t!==e?o.push({i:n.push(a(n)+"skewX(",null,i)-2,x:Object(r["a"])(t,e)}):e&&n.push(a(n)+"skewX("+e+i)}function c(t,e,n,i,o,s){if(t!==n||e!==i){var u=o.push(a(o)+"scale(",null,",",null,")");s.push({i:u-4,x:Object(r["a"])(t,n)},{i:u-2,x:Object(r["a"])(e,i)})}else 1===n&&1===i||o.push(a(o)+"scale("+n+","+i+")")}return function(e,n){var r=[],i=[];return e=t(e),n=t(n),o(e.translateX,e.translateY,n.translateX,n.translateY,r,i),s(e.rotate,n.rotate,r,i),u(e.skewX,n.skewX,r,i),c(e.scaleX,e.scaleY,n.scaleX,n.scaleY,r,i),e=n=null,function(t){var e,n=-1,a=i.length;while(++n');return t.appendChild(n),this.type="canvas",this.canvas=n,this.context=n.getContext("2d"),this.toDraw=!1,this}var e=t.prototype;return e.beforeDraw=function(){var t=this.canvas;this.context&&this.context.clearRect(0,0,t.width,t.height)},e.draw=function(t){var e=this;function n(){e.animateHandler=r.requestAnimationFrame((function(){e.animateHandler=void 0,e.toDraw&&n()})),e.beforeDraw();try{e._drawGroup(t)}catch(i){console.warn("error in draw canvas, detail as:"),console.warn(i)}finally{e.toDraw=!1}}e.animateHandler?e.toDraw=!0:n()},e.drawSync=function(t){this.beforeDraw(),this._drawGroup(t)},e._drawGroup=function(t){if(!t._cfg.removed&&!t._cfg.destroyed&&t._cfg.visible){var e=this,n=t._cfg.children,r=null;this.setContext(t);for(var i=0;i-1){var s=n[o];"fillStyle"===o&&(s=i.parseStyle(s,t,e)),"strokeStyle"===o&&(s=i.parseStyle(s,t,e)),"lineDash"===o&&e.setLineDash?r.isArray(s)?e.setLineDash(s):r.isString(s)&&e.setLineDash(s.split(" ")):e[o]=s}},t}();t.exports=o},function(t,e,n){var r=n(0),i=/[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/gi,a=/[^\s\,]+/gi,o=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,s=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,u=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,c=/[\d.]+:(#[^\s]+|[^\)]+\))/gi;function h(t,e){var n=t.match(c);r.each(n,(function(t){t=t.split(":"),e.addColorStop(t[0],t[1])}))}function f(t,e,n){var i,a,s=o.exec(t),u=r.mod(r.toRadian(parseFloat(s[1])),2*Math.PI),c=s[2],f=e.getBBox();u>=0&&u<.5*Math.PI?(i={x:f.minX,y:f.minY},a={x:f.maxX,y:f.maxY}):.5*Math.PI<=u&&u1){var i=e[0].charAt(0);e.splice(1,0,e[0].substr(1)),e[0]=i}r.each(e,(function(t,n){isNaN(t)||(e[n]=+t)})),t[n]=e})),t):void 0},parseStyle:function(t,e,n){if(r.isString(t)){if("("===t[1]||"("===t[2]){if("l"===t[0])return f(t,e,n);if("r"===t[0])return l(t,e,n);if("p"===t[0])return d(t,e,n)}return t}}}},function(t,e,n){t.exports={painter:n(132),getShape:n(139)}},function(t,e,n){var r=n(0),i=n(4),a=i.parseRadius,o=n(21),s=n(133),u={rect:"path",circle:"circle",line:"line",path:"path",marker:"path",text:"text",polygon:"polygon",image:"image",ellipse:"ellipse",dom:"foreignObject",fan:"path",group:"g"},c=.3,h={opacity:"opacity",fillStyle:"fill",strokeOpacity:"stroke-opacity",fillOpacity:"fill-opacity",strokeStyle:"stroke",x:"x",y:"y",r:"r",rx:"rx",ry:"ry",width:"width",height:"height",x1:"x1",x2:"x2",y1:"y1",y2:"y2",lineCap:"stroke-linecap",lineJoin:"stroke-linejoin",lineWidth:"stroke-width",lineDash:"stroke-dasharray",lineDashOffset:"stroke-dashoffset",miterLimit:"stroke-miterlimit",font:"font",fontSize:"font-size",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",fontFamily:"font-family",startArrow:"marker-start",endArrow:"marker-end",path:"d",class:"class",id:"id",style:"style",preserveAspectRatio:"preserveAspectRatio"},f={top:"before-edge",middle:"central",bottom:"after-edge",alphabetic:"baseline",hanging:"hanging"},l={left:"left",start:"left",center:"middle",right:"end",end:"end"},d=function(){function t(t){if(!t)return null;var e=r.uniqueId("canvas_"),n=r.createDom('');return t.appendChild(n),this.type="svg",this.canvas=n,this.context=new s(n),this.toDraw=!1,this}var e=t.prototype;return e.draw=function(t){var e=this;function n(){e.animateHandler=r.requestAnimationFrame((function(){e.animateHandler=void 0,e.toDraw&&n()}));try{e._drawChildren(t)}catch(i){console.warn("error in draw canvas, detail as:"),console.warn(i)}finally{e.toDraw=!1}}e.animateHandler?e.toDraw=!0:n()},e.drawSync=function(t){this._drawChildren(t)},e._drawGroup=function(t,e){var n=t._cfg;n.removed||n.destroyed||(n.tobeRemoved&&(r.each(n.tobeRemoved,(function(t){t.parentNode&&t.parentNode.removeChild(t)})),n.tobeRemoved=[]),this._drawShape(t,e),n.children&&n.children.length>0&&this._drawChildren(t))},e._drawChildren=function(t){var e,n=this,r=t._cfg.children;if(r)for(var i=0;is?1:0,l=Math.abs(u-s)>Math.PI?1:0,d=n.rs,p=n.re,g=e(s,n.rs,a),v=e(u,n.rs,a);n.rs>0?(o.push("M "+h.x+","+h.y),o.push("L "+v.x+","+v.y),o.push("A "+d+","+d+",0,"+l+","+(1===f?0:1)+","+g.x+","+g.y),o.push("L "+c.x+" "+c.y)):(o.push("M "+a.x+","+a.y),o.push("L "+c.x+","+c.y)),o.push("A "+p+","+p+",0,"+l+","+f+","+h.x+","+h.y),n.rs>0?o.push("L "+v.x+","+v.y):o.push("Z"),i.el.setAttribute("d",o.join(" "))},e._updateText=function(t){var e=this,n=t._attrs,r=t._cfg.attrs,i=t._cfg.el;for(var a in this._setFont(t),n)if(n[a]!==r[a]){if("text"===a){e._setText(t,""+n[a]);continue}if("fillStyle"===a||"strokeStyle"===a){this._setColor(t,a,n[a]);continue}if("matrix"===a){this._setTransform(t);continue}h[a]&&i.setAttribute(h[a],n[a])}t._cfg.attrs=Object.assign({},t._attrs),t._cfg.hasUpdate=!1},e._setFont=function(t){var e=t.get("el"),n=t._attrs,r=n.fontSize;e.setAttribute("alignment-baseline",f[n.textBaseline]||"baseline"),e.setAttribute("text-anchor",l[n.textAlign]||"left"),r&&+r<12&&(n.matrix=[1,0,0,0,1,0,0,0,1],t.transform([["t",-n.x,-n.y],["s",+r/12,+r/12],["t",n.x,n.y]]))},e._setText=function(t,e){var n=t._cfg.el,i=t._attrs.textBaseline||"bottom";if(e)if(~e.indexOf("\n")){var a=t._attrs.x,o=e.split("\n"),s=o.length-1,u="";r.each(o,(function(t,e){0===e?"alphabetic"===i?u+=''+t+"":"top"===i?u+=''+t+"":"middle"===i?u+=''+t+"":"bottom"===i?u+=''+t+"":"hanging"===i&&(u+=''+t+""):u+=''+t+""})),n.innerHTML=u}else n.innerHTML=e;else n.innerHTML=""},e._setClip=function(t,e){var n=t._cfg.el;if(e)if(n.hasAttribute("clip-path"))e._cfg.hasUpdate&&this._updateShape(e);else{this._createDom(e),this._updateShape(e);var r=this.context.addClip(e);n.setAttribute("clip-path","url(#"+r+")")}else n.removeAttribute("clip-path")},e._setColor=function(t,e,n){var r=t._cfg.el,i=this.context;if(n)if(n=n.trim(),/^[r,R,L,l]{1}[\s]*\(/.test(n)){var a=i.find("gradient",n);a||(a=i.addGradient(n)),r.setAttribute(h[e],"url(#"+a+")")}else if(/^[p,P]{1}[\s]*\(/.test(n)){var o=i.find("pattern",n);o||(o=i.addPattern(n)),r.setAttribute(h[e],"url(#"+o+")")}else r.setAttribute(h[e],n);else r.setAttribute(h[e],"none")},e._setShadow=function(t){var e=t._cfg.el,n=t._attrs,r={dx:n.shadowOffsetX,dy:n.shadowOffsetY,blur:n.shadowBlur,color:n.shadowColor};if(r.dx||r.dy||r.blur||r.color){var i=this.context.find("filter",r);i||(i=this.context.addShadow(r,this)),e.setAttribute("filter","url(#"+i+")")}else e.removeAttribute("filter")},t}();t.exports=d},function(t,e,n){var r=n(0),i=n(134),a=n(135),o=n(136),s=n(137),u=n(138),c=function(){function t(t){var e=document.createElementNS("http://www.w3.org/2000/svg","defs"),n=r.uniqueId("defs_");e.id=n,t.appendChild(e),this.children=[],this.defaultArrow={},this.el=e,this.canvas=t}var e=t.prototype;return e.find=function(t,e){for(var n=this.children,r=null,i=0;i'})),n}function u(t,e){var n,a,o=i.exec(t),u=r.mod(r.toRadian(parseFloat(o[1])),2*Math.PI),c=o[2];u>=0&&u<.5*Math.PI?(n={x:0,y:0},a={x:1,y:1}):.5*Math.PI<=u&&u';e.innerHTML=n},t}();t.exports=o},function(t,e,n){var r=n(0),i=function(){function t(t,e){var n=document.createElementNS("http://www.w3.org/2000/svg","marker"),i=r.uniqueId("marker_");n.setAttribute("id",i);var a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("stroke","none"),a.setAttribute("fill",t.stroke||"#000"),n.appendChild(a),n.setAttribute("overflow","visible"),n.setAttribute("orient","auto-start-reverse"),this.el=n,this.child=a,this.id=i,this.cfg=t["marker-start"===e?"startArrow":"endArrow"],this.stroke=t.stroke||"#000",!0===this.cfg?this._setDefaultPath(e,a):this._setMarker(t.lineWidth,a),this}var e=t.prototype;return e.match=function(){return!1},e._setDefaultPath=function(t,e){var n=this.el;e.setAttribute("d","M0,0 L6,3 L0,6 L3,3Z"),n.setAttribute("refX",3),n.setAttribute("refY",3)},e._setMarker=function(t,e){var n=this.el,i=this.cfg.path,a=this.cfg.d;r.isArray(i)&&(i=i.map((function(t){return t.join(" ")})).join("")),e.setAttribute("d",i),n.appendChild(e),a&&n.setAttribute("refX",a/t)},e.update=function(t){var e=this.child;e.attr?e.attr("fill",t):e.setAttribute("fill",t)},t}();t.exports=i},function(t,e,n){var r=n(0),i=function(){function t(t){this.type="clip";var e=document.createElementNS("http://www.w3.org/2000/svg","clipPath");this.el=e,this.id=r.uniqueId("clip_"),e.id=this.id;var n=t._cfg.el;return e.appendChild(n.cloneNode(!0)),this.cfg=t,this}var e=t.prototype;return e.match=function(){return!1},e.remove=function(){var t=this.el;t.parentNode.removeChild(t)},t}();t.exports=i},function(t,e,n){var r=n(0),i=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,a=function(){function t(t){var e=document.createElementNS("http://www.w3.org/2000/svg","pattern");e.setAttribute("patternUnits","userSpaceOnUse");var n=document.createElementNS("http://www.w3.org/2000/svg","image");e.appendChild(n);var a=r.uniqueId("pattern_");e.id=a,this.el=e,this.id=a,this.cfg=t;var o=i.exec(t),s=o[2];n.setAttribute("href",s);var u=new Image;function c(){e.setAttribute("width",u.width),e.setAttribute("height",u.height)}return s.match(/^data:/i)||(u.crossOrigin="Anonymous"),u.src=s,u.complete?c():(u.onload=c,u.src=u.src),this}var e=t.prototype;return e.match=function(t,e){return this.cfg===e},t}();t.exports=a},function(t,e){var n={svg:"svg",circle:"circle",rect:"rect",text:"text",path:"path",foreignObject:"foreignObject",polygon:"polygon",ellipse:"ellipse",image:"image"};t.exports=function(t,e,r){var i=r.target||r.srcElement;if(!n[i.tagName]){var a=i.parentNode;while(a&&!n[a.tagName])a=a.parentNode;i=a}return this._cfg.el===i?this:this.find((function(t){return t._cfg&&t._cfg.el===i}))}}])}))},e00d:function(t,e,n){const r=n("4651");t.exports={Random:n("c077"),Mds:n("8223"),Circular:n("72c2"),Fruchterman:n("4fef"),Radial:n("9aa7"),Force:n("e293"),Dagre:n("5b70"),Concentric:n("ace3"),Grid:n("eaab"),FruchtermanGroup:n("0031")},t.exports=r},e090:function(t,e,n){var r=n("6f9c"),i=n("b50e"),a=n("17d5").Graph;function o(t){var e=i.buildLayerMatrix(t),n=new a({compound:!0,multigraph:!0}).setGraph({});return r.forEach(t.nodes(),(function(e){n.setNode(e,{label:e}),n.setParent(e,"layer"+t.node(e).rank)})),r.forEach(t.edges(),(function(t){n.setEdge(t.v,t.w,{},t.name)})),r.forEach(e,(function(t,e){var i="layer"+e;n.setNode(i,{rank:"same"}),r.reduce(t,(function(t,e){return n.setEdge(t,e,{style:"invis"}),e}))})),n}t.exports={debugOrdering:o}},e0bf:function(t,e,n){var r=n("e6d6"),i=n("d63e"),a=n("b8bd"),o=n("5ece"),s=Object.prototype.hasOwnProperty;function u(t){if(r(t))return!0;if(i(t))return!t.length;var e=a(t);if("Map"===e||"Set"===e)return!t.size;if(o(t))return!Object.keys(t).length;for(var n in t)if(s.call(t,n))return!1;return!0}t.exports=u},e0ef:function(t,e,n){var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n("3a21"),a=function t(e){if("object"!==("undefined"===typeof e?"undefined":r(e))||null===e)return e;var n=void 0;if(i(e)){n=[];for(var a=0,o=e.length;a({id:t.id,source:t.source,target:t.target})),a=r.forceLink().id((function(t){return t.id})).links(e);t.edgeStrength&&a.strength(t.edgeStrength),t.linkDistance&&a.distance(t.linkDistance),i.force("link",a)}if(t.workerEnabled&&!l()&&(t.workerEnabled=!1,console.warn("workerEnabled option is only supported when running in web worker.")),t.workerEnabled){i.stop();const n=f(i);for(let t=1;t<=n;t++)i.tick(),postMessage({type:h.TICK,currentTick:t,totalTicks:n,nodes:e});t.ticking=!1}else i.on("tick",()=>{t.tick()}).on("end",()=>{t.ticking=!1,t.onLayoutEnd&&t.onLayoutEnd()}),t.ticking=!0;t.forceSimulation=i}catch(u){t.ticking=!1,console.warn(u)}},overlapProcess(t){const e=this,n=e.nodeSize;let s;const u=e.nodeSpacing;let c;const h=e.collideStrength;if(c=a(u)?()=>u:"function"===typeof u?u:()=>0,n)if(o(n))s=n;else if(isNaN(n)){if(i(n)){const t=n[0]>n[1]?n[0]:n[1],e=t/2;s=t=>e+c(t)}}else{const t=n/2;s=e=>t+c(e)}else s=t=>{if(t.size){if(i(t.size)){const e=t.size[0]>t.size[1]?t.size[0]:t.size[1];return e/2+c(t)}return t.size/2+c(t)}return 10+c(t)};t.force("collisionForce",r.forceCollide(s).strength(h))},updateCfg(t){const e=this;e.ticking&&(e.forceSimulation.stop(),e.ticking=!1),e.forceSimulation=null,u.mix(e,t)},destroy(){const t=this;t.ticking&&(t.forceSimulation.stop(),t.ticking=!1),t.nodes=null,t.edges=null,t.destroyed=!0}})},e29d:function(module,exports,__webpack_require__){"use strict";(function(global){var numeric=exports;"undefined"!==typeof global&&(global.numeric=numeric),numeric.version="1.2.6",numeric.bench=function(t,e){var n,r,i,a;"undefined"===typeof e&&(e=15),i=.5,n=new Date;while(1){for(i*=2,a=i;a>3;a-=4)t(),t(),t(),t();while(a>0)t(),a--;if(r=new Date,r-n>e)break}for(a=i;a>3;a-=4)t(),t(),t(),t();while(a>0)t(),a--;return r=new Date,1e3*(3*i-1)/(r-n)},numeric._myIndexOf=function(t){var e,n=this.length;for(e=0;enumeric.largeArray)return n.push("...Large Array..."),!0;c=!1;for(n.push("["),i=0;i0&&(n.push(","),c&&n.push("\n ")),c=r(t[i]);return n.push("]"),!0}n.push("{");c=!1;for(i in t)t.hasOwnProperty(i)&&(c&&n.push(",\n"),c=!0,n.push(i),n.push(": \n"),r(t[i]));return n.push("}"),!0}return r(t),n.join("")},numeric.parseDate=function(t){function e(t){if("string"===typeof t)return Date.parse(t.replace(/-/g,"/"));if(!(t instanceof Array))throw new Error("parseDate: parameter must be arrays of strings");var n,r=[];for(n=0;n0){for(i[u]=[],e=0;e>2,o=((3&n)<<4)+(r>>4),s=((15&r)<<2)+(i>>6),u=63&i,e+1>=c?s=u=64:e+2>=c&&(u=64),f+=h.charAt(a)+h.charAt(o)+h.charAt(s)+h.charAt(u);return f}function n(t,e,n){"undefined"===typeof e&&(e=0),"undefined"===typeof n&&(n=t.length);var r,i=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],a=-1,o=0;t.length;for(r=e;r>>8^i[o];return-1^a}var r,i,a,o,s,u,c,h,f,l,d=t[0].length,p=t[0][0].length,g=[137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,p>>24&255,p>>16&255,p>>8&255,255&p,d>>24&255,d>>16&255,d>>8&255,255&d,8,2,0,0,0,-1,-2,-3,-4,-5,-6,-7,-8,73,68,65,84,8,29];for(l=n(g,12,29),g[29]=l>>24&255,g[30]=l>>16&255,g[31]=l>>8&255,g[32]=255&l,r=1,i=0,c=0;c>8&255,g.push(s),g.push(u),g.push(255&~s),g.push(255&~u),0===c&&g.push(0),h=0;h255?255:s<0?0:Math.round(s),r=(r+s)%65521,i=(i+r)%65521,g.push(s);g.push(0)}return f=(i<<16)+r,g.push(f>>24&255),g.push(f>>16&255),g.push(f>>8&255),g.push(255&f),o=g.length-41,g[33]=o>>24&255,g[34]=o>>16&255,g[35]=o>>8&255,g[36]=255&o,l=n(g,37),g.push(l>>24&255),g.push(l>>16&255),g.push(l>>8&255),g.push(255&l),g.push(0),g.push(0),g.push(0),g.push(0),g.push(73),g.push(69),g.push(78),g.push(68),g.push(174),g.push(66),g.push(96),g.push(130),"data:image/png;base64,"+e(g)},numeric._dim=function(t){var e=[];while("object"===typeof t)e.push(t.length),t=t[0];return e},numeric.dim=function(t){var e,n;return"object"===typeof t?(e=t[0],"object"===typeof e?(n=e[0],"object"===typeof n?numeric._dim(t):[t.length,e.length]):[t.length]):[]},numeric.mapreduce=function(t,e){return Function("x","accum","_s","_k",'if(typeof accum === "undefined") accum = '+e+';\nif(typeof x === "number") { var xi = x; '+t+'; return accum; }\nif(typeof _s === "undefined") _s = numeric.dim(x);\nif(typeof _k === "undefined") _k = 0;\nvar _n = _s[_k];\nvar i,xi;\nif(_k < _s.length-1) {\n for(i=_n-1;i>=0;i--) {\n accum = arguments.callee(x[i],accum,_s,_k+1);\n } return accum;\n}\nfor(i=_n-1;i>=1;i-=2) { \n xi = x[i];\n '+t+";\n xi = x[i-1];\n "+t+";\n}\nif(i === 0) {\n xi = x[i];\n "+t+"\n}\nreturn accum;")},numeric.mapreduce2=function(t,e){return Function("x","var n = x.length;\nvar i,xi;\n"+e+";\nfor(i=n-1;i!==-1;--i) { \n xi = x[i];\n "+t+";\n}\nreturn accum;")},numeric.same=function t(e,n){var r,i;if(!(e instanceof Array)||!(n instanceof Array))return!1;if(i=e.length,i!==n.length)return!1;for(r=0;r=0;r-=2)a[r+1]=e,a[r]=e;return-1===r&&(a[0]=e),a}for(r=i-1;r>=0;r--)a[r]=numeric.rep(t,e,n+1);return a},numeric.dotMMsmall=function(t,e){var n,r,i,a,o,s,u,c,h,f,l;for(a=t.length,o=e.length,s=e[0].length,u=Array(a),n=a-1;n>=0;n--){for(c=Array(s),h=t[n],i=s-1;i>=0;i--){for(f=h[o-1]*e[o-1][i],r=o-2;r>=1;r-=2)l=r-1,f+=h[r]*e[r][i]+h[l]*e[l][i];0===r&&(f+=h[0]*e[0][i]),c[i]=f}u[n]=c}return u},numeric._getCol=function(t,e,n){var r,i=t.length;for(r=i-1;r>0;--r)n[r]=t[r][e],--r,n[r]=t[r][e];0===r&&(n[0]=t[0][e])},numeric.dotMMbig=function(t,e){var n,r,i,a=numeric._getCol,o=e.length,s=Array(o),u=t.length,c=e[0].length,h=new Array(u),f=numeric.dotVV;for(--o,--u,r=u;-1!==r;--r)h[r]=Array(c);for(--c,r=c;-1!==r;--r)for(a(e,r,s),i=u;-1!==i;--i)0,n=t[i],h[i][r]=f(n,s);return h},numeric.dotMV=function(t,e){var n,r=t.length,i=(e.length,Array(r)),a=numeric.dotVV;for(n=r-1;n>=0;n--)i[n]=a(t[n],e);return i},numeric.dotVM=function(t,e){var n,r,i,a,o,s,u;for(i=t.length,a=e[0].length,o=Array(a),r=a-1;r>=0;r--){for(s=t[i-1]*e[i-1][r],n=i-2;n>=1;n-=2)u=n-1,s+=t[n]*e[n][r]+t[u]*e[u][r];0===n&&(s+=t[0]*e[0][r]),o[r]=s}return o},numeric.dotVV=function(t,e){var n,r,i=t.length,a=t[i-1]*e[i-1];for(n=i-2;n>=1;n-=2)r=n-1,a+=t[n]*e[n]+t[r]*e[r];return 0===n&&(a+=t[0]*e[0]),a},numeric.dot=function(t,e){var n=numeric.dim;switch(1e3*n(t).length+n(e).length){case 2002:return e.length<10?numeric.dotMMsmall(t,e):numeric.dotMMbig(t,e);case 2001:return numeric.dotMV(t,e);case 1002:return numeric.dotVM(t,e);case 1001:return numeric.dotVV(t,e);case 1e3:return numeric.mulVS(t,e);case 1:return numeric.mulSV(t,e);case 0:return t*e;default:throw new Error("numeric.dot only works on vectors and matrices")}},numeric.diag=function(t){var e,n,r,i,a=t.length,o=Array(a);for(e=a-1;e>=0;e--){for(i=Array(a),n=e+2,r=a-1;r>=n;r-=2)i[r]=0,i[r-1]=0;for(r>e&&(i[r]=0),i[e]=t[e],r=e-1;r>=1;r-=2)i[r]=0,i[r-1]=0;0===r&&(i[0]=0),o[e]=i}return o},numeric.getDiag=function(t){var e,n=Math.min(t.length,t[0].length),r=Array(n);for(e=n-1;e>=1;--e)r[e]=t[e][e],--e,r[e]=t[e][e];return 0===e&&(r[0]=t[0][0]),r},numeric.identity=function(t){return numeric.diag(numeric.rep([t],1))},numeric.pointwise=function(t,e,n){"undefined"===typeof n&&(n="");var r,i,a=[],o=/\[i\]$/,s="",u=!1;for(r=0;r=0;i--) ret[i] = arguments.callee("+t.join(",")+",_s,_k+1);\n return ret;\n}\n"+n+"\nfor(i=_n-1;i!==-1;--i) {\n "+e+"\n}\nreturn ret;",Function.apply(null,a)},numeric.pointwise2=function(t,e,n){"undefined"===typeof n&&(n="");var r,i,a=[],o=/\[i\]$/,s="",u=!1;for(r=0;r=0;o--)t("object"===typeof e?e[o]:e,"object"===typeof n?n[o]:n,r,i+1,a)}else a(e,n)},numeric._biforeach2=function t(e,n,r,i,a){if(i===r.length-1)return a(e,n);var o,s=r[i],u=Array(s);for(o=s-1;o>=0;--o)u[o]=t("object"===typeof e?e[o]:e,"object"===typeof n?n[o]:n,r,i+1,a);return u},numeric._foreach=function t(e,n,r,i){if(r!==n.length-1){var a,o=n[r];for(a=o-1;a>=0;a--)t(e[a],n,r+1,i)}else i(e)},numeric._foreach2=function t(e,n,r,i){if(r===n.length-1)return i(e);var a,o=n[r],s=Array(o);for(a=o-1;a>=0;a--)s[a]=t(e[a],n,r+1,i);return s},numeric.ops2={add:"+",sub:"-",mul:"*",div:"/",mod:"%",and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">=",band:"&",bor:"|",bxor:"^",lshift:"<<",rshift:">>",rrshift:">>>"},numeric.opseq={addeq:"+=",subeq:"-=",muleq:"*=",diveq:"/=",modeq:"%=",lshifteq:"<<=",rshifteq:">>=",rrshifteq:">>>=",bandeq:"&=",boreq:"|=",bxoreq:"^="},numeric.mathfuns=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan","isNaN","isFinite"],numeric.mathfuns2=["atan2","pow","max","min"],numeric.ops1={neg:"-",not:"!",bnot:"~",clone:""},numeric.mapreducers={any:["if(xi) return true;","var accum = false;"],all:["if(!xi) return false;","var accum = true;"],sum:["accum += xi;","var accum = 0;"],prod:["accum *= xi;","var accum = 1;"],norm2Squared:["accum += xi*xi;","var accum = 0;"],norminf:["accum = max(accum,abs(xi));","var accum = 0, max = Math.max, abs = Math.abs;"],norm1:["accum += abs(xi)","var accum = 0, abs = Math.abs;"],sup:["accum = max(accum,xi);","var accum = -Infinity, max = Math.max;"],inf:["accum = min(accum,xi);","var accum = Infinity, min = Math.min;"]},function(){var t,e;for(t=0;tg&&(p=a,g=s);for(n=l[p],l[p]=l[o],l[o]=n,i=d[p],d[p]=d[o],d[o]=i,t=n[o],s=o;s!==f;++s)n[s]/=t;for(s=f-1;-1!==s;--s)i[s]/=t;for(a=h-1;-1!==a;--a)if(a!==o){for(e=l[a],r=d[a],t=e[o],s=o+1;s!==f;++s)e[s]-=n[s]*t;for(s=f-1;s>0;--s)r[s]-=i[s]*t,--s,r[s]-=i[s]*t;0===s&&(r[0]-=i[0]*t)}}return d},numeric.det=function(t){var e=numeric.dim(t);if(2!==e.length||e[0]!==e[1])throw new Error("numeric: det() only works on square matrices");var n,r,i,a,o,s,u,c,h=e[0],f=1,l=numeric.clone(t);for(r=0;rMath.abs(l[i][r])&&(i=n);for(i!==r&&(u=l[i],l[i]=l[r],l[r]=u,f*=-1),a=l[r],n=r+1;n=1;e-=2){for(i=t[e],r=t[e-1],n=s-1;n>=1;--n)a=u[n],a[e]=i[n],a[e-1]=r[n],--n,a=u[n],a[e]=i[n],a[e-1]=r[n];0===n&&(a=u[0],a[e]=i[0],a[e-1]=r[0])}if(0===e){for(r=t[0],n=s-1;n>=1;--n)u[n][0]=r[n],--n,u[n][0]=r[n];0===n&&(u[0][0]=r[0])}return u},numeric.negtranspose=function(t){var e,n,r,i,a,o=t.length,s=t[0].length,u=Array(s);for(n=0;n=1;e-=2){for(i=t[e],r=t[e-1],n=s-1;n>=1;--n)a=u[n],a[e]=-i[n],a[e-1]=-r[n],--n,a=u[n],a[e]=-i[n],a[e-1]=-r[n];0===n&&(a=u[0],a[e]=-i[0],a[e-1]=-r[0])}if(0===e){for(r=t[0],n=s-1;n>=1;--n)u[n][0]=-r[n],--n,u[n][0]=-r[n];0===n&&(u[0][0]=-r[0])}return u},numeric._random=function t(e,n){var r,i,a=e[n],o=Array(a);if(n===e.length-1){for(i=Math.random,r=a-1;r>=1;r-=2)o[r]=i(),o[r-1]=i();return 0===r&&(o[0]=i()),o}for(r=a-1;r>=0;r--)o[r]=t(e,n+1);return o},numeric.random=function(t){return numeric._random(t,0)},numeric.norm2=function(t){return Math.sqrt(numeric.norm2Squared(t))},numeric.linspace=function(t,e,n){if("undefined"===typeof n&&(n=Math.max(Math.round(e-t)+1,1)),n<2)return 1===n?[t]:[];var r,i=Array(n);for(n--,r=n;r>=0;r--)i[r]=(r*e+(n-r)*t)/n;return i},numeric.getBlock=function(t,e,n){var r=numeric.dim(t);function i(t,a){var o,s=e[a],u=n[a]-s,c=Array(u);if(a===r.length-1){for(o=u;o>=0;o--)c[o]=t[o+s];return c}for(o=u;o>=0;o--)c[o]=i(t[o+s],a+1);return c}return i(t,0)},numeric.setBlock=function(t,e,n,r){var i=numeric.dim(t);function a(t,r,o){var s,u=e[o],c=n[o]-u;if(o===i.length-1)for(s=c;s>=0;s--)t[s+u]=r[s];for(s=c;s>=0;s--)a(t[s+u],r[s],o+1)}return a(t,r,0),t},numeric.getRange=function(t,e,n){var r,i,a,o,s=e.length,u=n.length,c=Array(s);for(r=s-1;-1!==r;--r)for(c[r]=Array(u),a=c[r],o=t[e[r]],i=u-1;-1!==i;--i)a[i]=o[n[i]];return c},numeric.blockMatrix=function(t){var e=numeric.dim(t);if(e.length<4)return numeric.blockMatrix([t]);var n,r,i,a,o,s=e[0],u=e[1];for(n=0,r=0,i=0;i=0;a--){for(i=Array(c),s=t[a],o=c-1;o>=3;--o)i[o]=s*e[o],--o,i[o]=s*e[o],--o,i[o]=s*e[o],--o,i[o]=s*e[o];while(o>=0)i[o]=s*e[o],--o;h[a]=i}return h},numeric.T=function(t,e){this.x=t,this.y=e},numeric.t=function(t,e){return new numeric.T(t,e)},numeric.Tbinop=function(t,e,n,r,i){var a;numeric.indexOf;if("string"!==typeof i)for(a in i="",numeric)numeric.hasOwnProperty(a)&&(t.indexOf(a)>=0||e.indexOf(a)>=0||n.indexOf(a)>=0||r.indexOf(a)>=0)&&a.length>1&&(i+="var "+a+" = numeric."+a+";\n");return Function(["y"],"var x = this;\nif(!(y instanceof numeric.T)) { y = new numeric.T(y); }\n"+i+"\nif(x.y) { if(y.y) { return new numeric.T("+r+");\n }\n return new numeric.T("+n+");\n}\nif(y.y) {\n return new numeric.T("+e+");\n}\nreturn new numeric.T("+t+");\n")},numeric.T.prototype.add=numeric.Tbinop("add(x.x,y.x)","add(x.x,y.x),y.y","add(x.x,y.x),x.y","add(x.x,y.x),add(x.y,y.y)"),numeric.T.prototype.sub=numeric.Tbinop("sub(x.x,y.x)","sub(x.x,y.x),neg(y.y)","sub(x.x,y.x),x.y","sub(x.x,y.x),sub(x.y,y.y)"),numeric.T.prototype.mul=numeric.Tbinop("mul(x.x,y.x)","mul(x.x,y.x),mul(x.x,y.y)","mul(x.x,y.x),mul(x.y,y.x)","sub(mul(x.x,y.x),mul(x.y,y.y)),add(mul(x.x,y.y),mul(x.y,y.x))"),numeric.T.prototype.reciprocal=function(){var t=numeric.mul,e=numeric.div;if(this.y){var n=numeric.add(t(this.x,this.x),t(this.y,this.y));return new numeric.T(e(this.x,n),e(numeric.neg(this.y),n))}return new T(e(1,this.x))},numeric.T.prototype.div=function(t){if(t instanceof numeric.T||(t=new numeric.T(t)),t.y)return this.mul(t.reciprocal());var e=numeric.div;return this.y?new numeric.T(e(this.x,t.x),e(this.y,t.x)):new numeric.T(e(this.x,t.x))},numeric.T.prototype.dot=numeric.Tbinop("dot(x.x,y.x)","dot(x.x,y.x),dot(x.x,y.y)","dot(x.x,y.x),dot(x.y,y.x)","sub(dot(x.x,y.x),dot(x.y,y.y)),add(dot(x.x,y.y),dot(x.y,y.x))"),numeric.T.prototype.transpose=function(){var t=numeric.transpose,e=this.x,n=this.y;return n?new numeric.T(t(e),t(n)):new numeric.T(t(e))},numeric.T.prototype.transjugate=function(){var t=numeric.transpose,e=this.x,n=this.y;return n?new numeric.T(t(e),numeric.negtranspose(n)):new numeric.T(t(e))},numeric.Tunop=function(t,e,n){return"string"!==typeof n&&(n=""),Function("var x = this;\n"+n+"\nif(x.y) { "+e+";\n}\n"+t+";\n")},numeric.T.prototype.exp=numeric.Tunop("return new numeric.T(ex)","return new numeric.T(mul(cos(x.y),ex),mul(sin(x.y),ex))","var ex = numeric.exp(x.x), cos = numeric.cos, sin = numeric.sin, mul = numeric.mul;"),numeric.T.prototype.conj=numeric.Tunop("return new numeric.T(x.x);","return new numeric.T(x.x,numeric.neg(x.y));"),numeric.T.prototype.neg=numeric.Tunop("return new numeric.T(neg(x.x));","return new numeric.T(neg(x.x),neg(x.y));","var neg = numeric.neg;"),numeric.T.prototype.sin=numeric.Tunop("return new numeric.T(numeric.sin(x.x))","return x.exp().sub(x.neg().exp()).div(new numeric.T(0,2));"),numeric.T.prototype.cos=numeric.Tunop("return new numeric.T(numeric.cos(x.x))","return x.exp().add(x.neg().exp()).div(2);"),numeric.T.prototype.abs=numeric.Tunop("return new numeric.T(numeric.abs(x.x));","return new numeric.T(numeric.sqrt(numeric.add(mul(x.x,x.x),mul(x.y,x.y))));","var mul = numeric.mul;"),numeric.T.prototype.log=numeric.Tunop("return new numeric.T(numeric.log(x.x));","var theta = new numeric.T(numeric.atan2(x.y,x.x)), r = x.abs();\nreturn new numeric.T(numeric.log(r.x),theta.x);"),numeric.T.prototype.norm2=numeric.Tunop("return numeric.norm2(x.x);","var f = numeric.norm2Squared;\nreturn Math.sqrt(f(x.x)+f(x.y));"),numeric.T.prototype.inv=function(){var t=this;if("undefined"===typeof t.y)return new numeric.T(numeric.inv(t.x));var e,n,r,i,a,o,s,u,c,h,f,l,d,p,g,v,m,y,x=t.x.length,b=numeric.identity(x),w=numeric.rep([x,x],0),_=numeric.clone(t.x),M=numeric.clone(t.y);for(c=0;cl&&(f=h,l=d);for(f!==c&&(y=_[c],_[c]=_[f],_[f]=y,y=M[c],M[c]=M[f],M[f]=y,y=b[c],b[c]=b[f],b[f]=y,y=w[c],w[c]=w[f],w[f]=y),e=_[c],n=M[c],a=b[c],o=w[c],p=e[c],g=n[c],h=c+1;h0;c--)for(a=b[c],o=w[c],h=c-1;h>=0;h--)for(s=b[h],u=w[h],p=_[h][c],g=M[h][c],f=x-1;f>=0;f--)v=a[f],m=o[f],s[f]-=p*v-g*m,u[f]-=p*m+g*v;return new numeric.T(b,w)},numeric.T.prototype.get=function(t){var e,n=this.x,r=this.y,i=0,a=t.length;if(r){while(i=0?1:-1,r=n*numeric.norm2(t);e[0]+=r;var i=numeric.norm2(e);if(0===i)throw new Error("eig: internal error");return numeric.div(e,i)},numeric.toUpperHessenberg=function(t){var e=numeric.dim(t);if(2!==e.length||e[0]!==e[1])throw new Error("numeric: toUpperHessenberg() only works on square matrices");var n,r,i,a,o,s,u,c,h,f,l=e[0],d=numeric.clone(t),p=numeric.identity(l);for(r=0;r0){for(o=numeric.house(a),s=numeric.getBlock(d,[r+1,r],[l-1,l-1]),u=numeric.tensor(o,numeric.dot(o,s)),n=r+1;n=4*u)A=.5*(c+Math.sqrt(c*c-4*u)),P=.5*(c-Math.sqrt(c*c-4*u)),h=numeric.add(numeric.sub(numeric.dot(h,h),numeric.mul(h,A+P)),numeric.diag(numeric.rep([3],A*P)));else h=numeric.add(numeric.sub(numeric.dot(h,h),numeric.mul(h,c)),numeric.diag(numeric.rep([3],u)));for(n=[h[0][0],h[1][0],h[2][0]],r=numeric.house(n),d=[t[0],t[1],t[2]],p=numeric.tensor(r,numeric.dot(r,d)),v=0;v<3;v++)for(l=t[v],g=p[v],y=0;y=0?(d=h<0?-.5*(h-P(l)):-.5*(h+P(l)),m=(o-d)*(o-d)+s*s,y=u*u+(c-d)*(c-d),m>y?(m=P(m),g=(o-d)/m,v=s/m):(y=P(y),g=u/y,v=(c-d)/y),i=new w([[v,-g],[g,v]]),k.setRows(n,a,i.dot(k.getRows(n,a)))):(d=-.5*h,p=.5*P(-l),m=(o-d)*(o-d)+s*s,y=u*u+(c-d)*(c-d),m>y?(m=P(m+p*p),g=(o-d)/m,v=s/m,d=0,p/=m):(y=P(y+p*p),g=u/y,v=(c-d)/y,d=p/y,p=0),i=new w([[v,-g],[g,v]],[[d,p],[p,-d]]),k.setRows(n,a,i.dot(k.getRows(n,a))))}var C=k.dot(t).dot(k.transjugate()),E=(_=t.length,numeric.T.identity(_));for(a=0;a<_;a++)if(a>0)for(r=a-1;r>=0;r--){var I=C.get([r,r]),O=C.get([a,a]);numeric.neq(I.x,O.x)||numeric.neq(I.y,O.y)?(d=C.getRow(r).getBlock([r],[a-1]),p=E.getRow(a).getBlock([r],[a-1]),E.set([a,r],C.get([r,a]).neg().sub(d.dot(p)).div(I.sub(O)))):E.setRow(a,E.getRow(r))}for(a=0;a<_;a++)d=E.getRow(a),E.setRow(a,d.div(d.norm2()));return E=E.transpose(),E=k.transjugate().dot(E),{lambda:C.getDiag(),E:E}},numeric.ccsSparse=function(t){var e,n,r,i=t.length,a=[];for(n=i-1;-1!==n;--n)for(r in e=t[n],e){r=parseInt(r);while(r>=a.length)a[a.length]=0;0!==e[r]&&a[r]++}var o=a.length,s=Array(o+1);for(s[0]=0,n=0;n=u){if(i[h]=d[c],0===c)return;++h,--c,s=f[c],u=l[c]}else o=a[n[s]],0===r[o]?(r[o]=1,f[c]=s,++c,d[c]=o,s=e[o],l[c]=u=e[o+1]):++s}},numeric.ccsLPSolve=function(t,e,n,r,i,a,o){var s,u,c,h,f,l,d,p,g,v=t[0],m=t[1],y=t[2],x=(v.length,e[0]),b=e[1],w=e[2];for(u=x[i],c=x[i+1],r.length=0,s=u;sa&&(o=i,a=s));for(w(y[n])=c){if(i[f]=a[p[h]],0===h)return;++f,--h,u=l[h],c=d[h]}else s=n[u],0===r[s]?(r[s]=1,l[h]=u,++h,p[h]=s,s=a[s],u=e[s],d[h]=c=e[s+1]):++u}}},numeric.ccsLPSolve0=function(t,e,n,r,i,a,o,s){var u,c,h,f,l,d,p,g,v,m=t[0],y=t[1],x=t[2],b=(m.length,e[0]),w=e[1],_=e[2];for(c=b[i],h=b[i+1],r.length=0,u=c;ua&&(o=i,a=s));for(w(y[_[n]])n[r]&&(n[r]=e.length),e)e.hasOwnProperty(i)&&t(e[i],n,r+1);return n},numeric.sclone=function t(e,n,r){"undefined"===typeof n&&(n=0),"undefined"===typeof r&&(r=numeric.sdim(e).length);var i,a=Array(e.length);if(n===r-1){for(i in e)e.hasOwnProperty(i)&&(a[i]=e[i]);return a}for(i in e)e.hasOwnProperty(i)&&(a[i]=t(e[i],n+1,r));return a},numeric.sdiag=function(t){var e,n,r=t.length,i=Array(r);for(e=r-1;e>=1;e-=2)n=e-1,i[e]=[],i[e][e]=t[e],i[n]=[],i[n][n]=t[n];return 0===e&&(i[0]=[],i[0][0]=t[e]),i},numeric.sidentity=function(t){return numeric.sdiag(numeric.rep([t],1))},numeric.stranspose=function(t){var e,n,r,i=[];t.length;for(e in t)if(t.hasOwnProperty(e))for(n in r=t[e],r)r.hasOwnProperty(n)&&("object"!==typeof i[n]&&(i[n]=[]),i[n][e]=r[n]);return i},numeric.sLUP=function(t,e){throw new Error("The function numeric.sLUP had a bug in it and has been removed. Please use the new numeric.ccsLUP function instead.")},numeric.sdotMM=function(t,e){var n,r,i,a,o,s,u,c=t.length,h=(e.length,numeric.stranspose(e)),f=h.length,l=Array(c);for(i=c-1;i>=0;i--){for(u=[],n=t[i],o=f-1;o>=0;o--){for(a in s=0,r=h[o],n)n.hasOwnProperty(a)&&a in r&&(s+=n[a]*r[a]);s&&(u[o]=s)}l[i]=u}return l},numeric.sdotMV=function(t,e){var n,r,i,a,o=t.length,s=Array(o);for(r=o-1;r>=0;r--){for(i in n=t[r],a=0,n)n.hasOwnProperty(i)&&e[i]&&(a+=n[i]*e[i]);a&&(s[r]=a)}return s},numeric.sdotVM=function(t,e){var n,r,i,a,o=[];for(n in t)if(t.hasOwnProperty(n))for(r in i=e[n],a=t[n],i)i.hasOwnProperty(r)&&(o[r]||(o[r]=0),o[r]+=a*i[r]);return o},numeric.sdotVV=function(t,e){var n,r=0;for(n in t)t[n]&&e[n]&&(r+=t[n]*e[n]);return r},numeric.sdot=function(t,e){var n=numeric.sdim(t).length,r=numeric.sdim(e).length,i=1e3*n+r;switch(i){case 0:return t*e;case 1001:return numeric.sdotVV(t,e);case 2001:return numeric.sdotMV(t,e);case 1002:return numeric.sdotVM(t,e);case 2002:return numeric.sdotMM(t,e);default:throw new Error("numeric.sdot not implemented for tensors of order "+n+" and "+r)}},numeric.sscatter=function(t){var e,n,r,i,a=t[0].length,o=t.length,s=[];for(n=a-1;n>=0;--n)if(t[o-1][n]){for(i=s,r=0;r=0;--a)n[a]=[];for(a=i;a>=0;--a)n[a].push(r[a]);n[i+1].push(o)}}else t(o,n,r);return r.length>i&&r.pop(),n},numeric.cLU=function(t){var e,n,r,i,a,o,s=t[0],u=t[1],c=t[2],h=s.length,f=0;for(e=0;ef&&(f=s[e]);f++;var l,d=Array(f),p=Array(f),g=numeric.rep([f],1/0),v=numeric.rep([f],-1/0);for(r=0;rv[e]&&(v[e]=n);for(e=0;ev[e+1]&&(v[e+1]=v[e]);for(e=f-1;e>=1;e--)g[e]=0;n--){while(f[r]>n)o[n]-=l[r]*o[f[r]],r--;o[n]/=l[r],r--}return o},numeric.cgrid=function(t,e){"number"===typeof t&&(t=[t,t]);var n,r,i,a=numeric.rep(t,-1);if("function"!==typeof e)switch(e){case"L":e=function(e,n){return e>=t[0]/2||ni&&(i=a[r]);for(i++,n=numeric.rep([i],0),r=0;r1)r=o((e+n)/2),i[r]<=t?e=r:n=r;return this._at(t,e)}a=t.length;var s,u=Array(a);for(s=a-1;-1!==s;--s)u[s]=this.at(t[s]);return u},numeric.Spline.prototype.diff=function(){var t,e,n,r=this.x,i=this.yl,a=this.yr,o=this.kl,s=this.kr,u=i.length,c=o,h=s,f=Array(u),l=Array(u),d=numeric.add,p=numeric.mul,g=numeric.div,v=numeric.sub;for(t=u-1;-1!==t;--t)e=r[t+1]-r[t],n=v(a[t+1],i[t]),f[t]=g(d(p(n,6),p(o[t],-4*e),p(s[t+1],-2*e)),e*e),l[t+1]=g(d(p(n,-6),p(o[t],2*e),p(s[t+1],4*e)),e*e);return new numeric.Spline(r,c,h,f,l)},numeric.Spline.prototype.roots=function(){function t(t){return t*t}var e=[],n=this.x,r=this.yl,i=this.yr,a=this.kl,o=this.kr;"number"===typeof r[0]&&(r=[r],i=[i],a=[a],o=[o]);var s,u,c,h,f,l,d,p,g,v,m,y,x,b,w,_,M,S,k,A,P,C,E,I=r.length,O=n.length-1,T=(e=Array(I),Math.sqrt);for(s=0;s!==I;++s){for(h=r[s],f=i[s],l=a[s],d=o[s],p=[],u=0;u!==O;u++){for(u>0&&f[u]*h[u]<0&&p.push(n[u]),_=n[u+1]-n[u],n[u],m=h[u],y=f[u+1],g=l[u]/_,v=d[u+1]/_,w=t(g-v+3*(m-y))+12*v*m,x=v+3*m+2*g-3*y,b=3*(v+g+2*(m-y)),w<=0?(S=x/b,M=S>n[u]&&Sn[u]&&Sn[u]&&k0)P=C,S=k;else{var N=0;while(1){if(E=(S*C-k*P)/(S-k),E<=P||E>=C)break;if(A=this._at(E,u),A*k>0)C=E,k=A,-1===N&&(S*=.5),N=-1;else{if(!(A*S>0))break;P=E,S=A,1===N&&(k*=.5),N=1}}p.push(E),P=M[c+1],S=this._at(P,u)}else p.push(P),P=C,S=k;0===k&&p.push(C)}e[s]=p}return"number"===typeof this.yl[0]?e[0]:e},numeric.spline=function(t,e,n,r){var i,a=t.length,o=[],s=[],u=[],c=numeric.sub,h=numeric.mul,f=numeric.add;for(i=a-2;i>=0;i--)s[i]=t[i+1]-t[i],u[i]=c(e[i+1],e[i]);"string"!==typeof n&&"string"!==typeof r||(n=r="periodic");var l=[[],[],[]];switch(typeof n){case"undefined":o[0]=h(3/(s[0]*s[0]),u[0]),l[0].push(0,0),l[1].push(0,1),l[2].push(2/s[0],1/s[0]);break;case"string":o[0]=f(h(3/(s[a-2]*s[a-2]),u[a-2]),h(3/(s[0]*s[0]),u[0])),l[0].push(0,0,0),l[1].push(a-2,0,1),l[2].push(1/s[a-2],2/s[a-2]+2/s[0],1/s[0]);break;default:o[0]=n,l[0].push(0),l[1].push(0),l[2].push(1);break}for(i=1;i20)throw new Error("Numerical gradient fails");if(g[i]=e[i]+w,a=t(g),g[i]=e[i]-w,o=t(g),g[i]=e[i],isNaN(a)||isNaN(o))w/=16;else{if(v[i]=(a-o)/(2*w),u=e[i]-w,c=e[i],h=e[i]+w,f=(a-r)/w,l=(r-o)/w,d=p(y(v[i]),y(r),y(a),y(o),y(u),y(c),y(h),1e-8),s=x(p(y(f-v[i]),y(l-v[i]),y(f-l))/d,w/d),!(s>m))break;w/=16}}}return v},numeric.uncmin=function(t,e,n,r,i,a,o){var s=numeric.gradient;"undefined"===typeof o&&(o={}),"undefined"===typeof n&&(n=1e-8),"undefined"===typeof r&&(r=function(e){return s(t,e)}),"undefined"===typeof i&&(i=1e3),e=numeric.clone(e);var u,c,h=e.length,f=t(e);if(isNaN(f))throw new Error("uncmin: f(x0) is a NaN!");var l=Math.max,d=numeric.norm2;n=l(n,numeric.epsilon);var p,g,v,m,y,x,b,w,_,M,S=o.Hinv||numeric.identity(h),k=numeric.dot,A=(numeric.inv,numeric.sub),P=numeric.add,C=numeric.tensor,E=numeric.div,I=numeric.mul,O=numeric.all,T=numeric.isFinite,N=numeric.neg,j=0,B="";g=r(e);while(j=.1*_*c||isNaN(u)))break;_*=.5,++j}if(_*M1)r=i(.5*(e+n)),s[r]<=t?e=r:n=r;return this._at(t,e)},numeric.dopri=function(t,e,n,r,i,a,o){"undefined"===typeof i&&(i=1e-6),"undefined"===typeof a&&(a=1e3);var s,u,c,h,f,l,d,p,g,v,m,y,x,b=[t],w=[n],_=[r(t,n)],M=[],S=.2,k=[3/40,9/40],A=[44/45,-56/15,32/9],P=[19372/6561,-25360/2187,64448/6561,-212/729],C=[9017/3168,-355/33,46732/5247,49/176,-5103/18656],E=[35/384,0,500/1113,125/192,-2187/6784,11/84],I=[.10013431883002395,0,.3918321794184259,-.02982460176594817,.05893268337240795,-.04497888809104361,5618549.5/235043384],O=[.2,.3,.8,8/9,1,1],T=[-71/57600,0,71/16695,-71/1920,17253/339200,-22/525,1/40],N=0,j=(e-t)/10,B=0,L=numeric.add,D=numeric.mul,R=(Math.max,Math.min),F=Math.abs,Y=numeric.norminf,q=Math.pow,z=numeric.any,X=numeric.lt,G=numeric.and,W=(numeric.sub,new numeric.Dopri(b,w,_,M,-1,""));"function"===typeof o&&(m=o(t,n));while(te&&(j=e-t),s=r(t+O[0]*j,L(n,D(S*j,_[N]))),u=r(t+O[1]*j,L(L(n,D(k[0]*j,_[N])),D(k[1]*j,s))),c=r(t+O[2]*j,L(L(L(n,D(A[0]*j,_[N])),D(A[1]*j,s)),D(A[2]*j,u))),h=r(t+O[3]*j,L(L(L(L(n,D(P[0]*j,_[N])),D(P[1]*j,s)),D(P[2]*j,u)),D(P[3]*j,c))),f=r(t+O[4]*j,L(L(L(L(L(n,D(C[0]*j,_[N])),D(C[1]*j,s)),D(C[2]*j,u)),D(C[3]*j,c)),D(C[4]*j,h))),g=L(L(L(L(L(n,D(_[N],j*E[0])),D(u,j*E[2])),D(c,j*E[3])),D(h,j*E[4])),D(f,j*E[5])),l=r(t+j,g),d=L(L(L(L(L(D(_[N],j*T[0]),D(u,j*T[2])),D(c,j*T[3])),D(h,j*T[4])),D(f,j*T[5])),D(l,j*T[6])),v="number"===typeof d?F(d):Y(d),v>i){if(j=.2*j*q(i/v,.25),t+j===t){W.msg="Step size became too small";break}}else{if(M[N]=L(L(L(L(L(L(n,D(_[N],j*I[0])),D(u,j*I[2])),D(c,j*I[3])),D(h,j*I[4])),D(f,j*I[5])),D(l,j*I[6])),++N,b[N]=t+j,w[N]=g,_[N]=l,"function"===typeof o){var U,V,H=t,Z=t+.5*j;if(y=o(Z,M[N-1]),x=G(X(m,0),X(0,y)),z(x)||(H=Z,Z=t+j,m=y,y=o(Z,g),x=G(X(m,0),X(0,y))),z(x)){var $,Q,K=0,J=1,tt=1;while(1){if("number"===typeof m)V=(tt*y*H-J*m*Z)/(tt*y-J*m);else for(V=Z,p=m.length-1;-1!==p;--p)m[p]<0&&y[p]>0&&(V=R(V,(tt*y[p]*H-J*m[p]*Z)/(tt*y[p]-J*m[p])));if(V<=H||V>=Z)break;U=W._at(V,N-1),Q=o(V,U),$=G(X(m,0),X(0,Q)),z($)?(Z=V,y=Q,x=$,tt=1,-1===K?J*=.5:J=1,K=-1):(H=V,m=Q,J=1,1===K?tt*=.5:tt=1,K=1)}return g=W._at(.5*(t+V),N-1),W.f[N]=r(V,U),W.x[N]=V,W.y[N]=U,W.ymid[N-1]=g,W.events=x,W.iterations=B,W}}t+=j,n=g,m=y,j=R(.8*j*q(i/v,.25),4*j)}return W.iterations=B,W},numeric.LU=function(t,e){e=e||!1;var n,r,i,a,o,s,u,c,h,f=Math.abs,l=t.length,d=l-1,p=new Array(l);for(e||(t=numeric.clone(t)),i=0;i=0;--n){for(a=s[n],r=n+1;rL)&&(w=L),h=v(t,l(w,C)),u=p(B,E),N=m-1;-1!==N;--N)u[N][N]+=1;j=I(u,g(h,w),!0);var D=g(O,p(e,j)),R=1;for(N=y-1;-1!==N;--N)D[N]<0&&(R=k(R,-.999*D[N]));if(s=d(a,l(j,R)),O=d(n,p(e,s)),!A(P(O,0)))return{solution:a,message:"",iterations:c};if(a=s,w=0);if(x)return{solution:s,message:"Unbounded",iterations:c}}return{solution:a,message:"maximum iteration count exceeded",iterations:c}},numeric._solveLP=function(t,e,n,r,i){var a=t.length,o=n.length,s=(numeric.sum,numeric.log,numeric.mul,numeric.sub),u=numeric.dot,c=(numeric.div,numeric.add,numeric.rep([a],0).concat([1])),h=numeric.rep([o,1],-1),f=numeric.blockMatrix([[e,h]]),l=n,d=numeric.rep([a],0).concat(Math.max(0,numeric.sup(numeric.neg(n)))+1),p=numeric.__solveLP(c,f,l,r,i,d,!1),g=numeric.clone(p.solution);g.length=a;var v=numeric.inf(s(n,u(e,g)));if(v<0)return{solution:NaN,message:"Infeasible",iterations:p.iterations};var m=numeric.__solveLP(t,e,n,r,i-p.iterations,g,!0);return m.iterations+=p.iterations,m},numeric.solveLP=function(t,e,n,r,i,a,o){if("undefined"===typeof o&&(o=1e3),"undefined"===typeof a&&(a=numeric.epsilon),"undefined"===typeof r)return numeric._solveLP(t,e,n,a,o);var s,u=r.length,c=r[0].length,h=e.length,f=numeric.echelonize(r),l=numeric.rep([c],0),d=f.P,p=[];for(s=d.length-1;-1!==s;--s)l[d[s]]=1;for(s=c-1;-1!==s;--s)0===l[s]&&p.push(s);var g=numeric.getRange,v=numeric.linspace(0,u-1),m=numeric.linspace(0,h-1),y=g(r,v,p),x=g(e,m,d),b=g(e,m,p),w=numeric.dot,_=numeric.sub,M=w(x,f.I),S=_(b,w(M,y)),k=_(n,w(M,i)),A=Array(d.length),P=Array(p.length);for(s=d.length-1;-1!==s;--s)A[s]=t[d[s]];for(s=p.length-1;-1!==s;--s)P[s]=t[p[s]];var C=_(P,w(A,w(f.I,y))),E=numeric._solveLP(C,S,k,a,o),I=E.solution;if(I!==I)return E;var O=w(f.I,_(i,w(y,I))),T=Array(t.length);for(s=d.length-1;-1!==s;--s)T[d[s]]=O[s];for(s=p.length-1;-1!==s;--s)T[p[s]]=I[s];return{solution:T,message:E.message,iterations:E.iterations}},numeric.MPStoLP=function(t){t instanceof String&&t.split("\n");var e,n,r,i,a=0,o=["Initial state","NAME","ROWS","COLUMNS","RHS","BOUNDS","ENDATA"],s=t.length,u=0,c={},h=[],f=0,l={},d=0,p=[],g=[],v=[];function m(n){throw new Error("MPStoLP: "+n+"\nLine "+e+": "+t[e]+"\nCurrent state: "+o[a]+"\n")}for(e=0;e=a)t/=2,e/=2,s>>>=1;return(t+s)/e},h},o=e.pow(n,r),i=e.pow(2,i),a=2*i,c(e.random(),t)}([],numeric.seedrandom,256,6,52),function(t){function e(t){if("object"!==typeof t)return t;var n,r=[],i=t.length;for(n=0;nd)m[w]=j;else if(m[w]=-Math.abs(j),j>0){for(b=1;b<=o;b+=1)c[b][x]=-c[b][x];h[x]=-h[x]}}for(x=1;x<=g;x+=1)m[C+p[x]]=0;for(I=0,N=0,x=1;x<=l;x+=1)m[C+x]=1;x-=1){for(j=m[x],w=P+x*(x+3)/2,_=w-x,b=x+1;b<=g;b+=1)j-=m[w]*m[A+b],w+=b;if(j/=m[_],m[A+x]=j,p[x]d)m[C+I]=j;else if(m[C+I]=-Math.abs(j),j>0){for(b=1;b<=o;b+=1)c[b][I]=-c[b][I];h[I]=-h[I]}return 700}for(g+=1,p[g]=I,w=P+(g-1)*g/2+1,x=1;x<=g-1;x+=1)m[w]=m[x],w+=1;if(g===o)m[w]=m[o];else{for(x=o;x>=g+1;x-=1){if(0===m[x])break;if(D=Math.max(Math.abs(m[x-1]),Math.abs(m[x])),R=Math.min(Math.abs(m[x-1]),Math.abs(m[x])),N=m[x-1]>=0?Math.abs(D*Math.sqrt(1+R*R/(D*D))):-Math.abs(D*Math.sqrt(1+R*R/(D*D))),D=m[x-1]/N,R=m[x]/N,1===D)break;if(0===D)for(m[x-1]=R*N,b=1;b<=o;b+=1)N=t[b][x-1],t[b][x-1]=t[b][x],t[b][x]=N;else for(m[x-1]=N,F=R/(1+D),b=1;b<=o;b+=1)N=D*t[b][x-1]+R*t[b][x],t[b][x]=F*(t[b][x-1]+N)-t[b][x],t[b][x-1]=N}m[w]=m[g]}return 0}function H(){if(w=P+S*(S+1)/2+1,_=w+S,0===m[_])return 798;if(D=Math.max(Math.abs(m[_-1]),Math.abs(m[_])),R=Math.min(Math.abs(m[_-1]),Math.abs(m[_])),N=m[_-1]>=0?Math.abs(D*Math.sqrt(1+R*R/(D*D))):-Math.abs(D*Math.sqrt(1+R*R/(D*D))),D=m[_-1]/N,R=m[_]/N,1===D)return 798;if(0===D){for(x=S+1;x<=g;x+=1)N=m[_-1],m[_-1]=m[_],m[_]=N,_+=x;for(x=1;x<=o;x+=1)N=t[x][S],t[x][S]=t[x][S+1],t[x][S+1]=N}else{for(F=R/(1+D),x=S+1;x<=g;x+=1)N=D*m[_-1]+R*m[_],m[_]=F*(m[_-1]+N)-m[_],m[_-1]=N,_+=x;for(x=1;x<=o;x+=1)N=D*t[x][S]+R*t[x][S+1],t[x][S+1]=F*(t[x][S]+N)-t[x][S+1],t[x][S]=N}return 0}function Z(){for(_=w-S,x=1;x<=S;x+=1)m[_]=m[w],w+=1,_+=1;return m[E+S]=m[E+S+1],p[S]=p[S+1],S+=1,Se?t*Math.sqrt(1+e*e/t/t):0==e?t:e*Math.sqrt(1+t*t/e/e)}var m=0,y=0,x=0,b=0,w=0,_=0,M=0;for(o=0;o=0&&(y=-y),x=m*y-M,h[o][o]=m-y,s=c;s=0&&(y=-y),x=m*y-M,h[o][o+1]=m-y,s=c;sb&&(b=w)}for(o=l-1;-1!=o;o+=-1){if(0!=y){for(x=y*h[o][o+1],s=c;s=i-1)throw"Error: no convergence.";for(b=p[c],w=p[u-1],y=d[u-1],x=d[u],m=((w-_)*(w+_)+(y-x)*(y+x))/(2*x*w),y=v(m,1),m=m<0?((b-_)*(b+_)+x*(w/(m-y)-x))/b:((b-_)*(b+_)+x*(w/(m+y)-x))/b,a=1,M=1,o=c+1;o=0;s--)if(p[s]f?s/2:f/2;u=i.addShape("circle",{attrs:{x:n,y:o,r:c,...r({},a,this.delegateStyle)}}),e.shapeOrigin={x:n,y:o}}else u=i.addShape("rect",{attrs:p}),e.shapeOrigin={x:p.x,y:p.y};e.delegateShapes[n]=u,e.delegateShapeBBoxs[n]=u.getBBox()}o.paint(),o.setAutoPaint(s)},onOutOfRange(t){const e=this;if(this.origin){const n=e.graph.get("canvas").get("el"),r=r=>{r.target!==n&&e.onDragEnd(t)};this.fn=r,i.addEventListener("mouseup",r,!1)}}}},e34f:function(t,e,n){t.exports={graphlib:n("17d5"),layout:n("7a9c"),debug:n("e090"),util:{time:n("b50e").time,notime:n("b50e").notime},version:n("9214")}},e380:function(t,e,n){var r=n("7b83"),i="Expected a function";function a(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(i);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,t.exports=a},e3f8:function(t,e,n){var r=n("656b");function i(t){return function(e){return r(e,t)}}t.exports=i},e44a:function(t,e,n){var r=n("33de");function i(t){var e,n={},i=[];function a(i){r.has(n,i)||(n[i]=!0,e.push(i),r.each(t.successors(i),a),r.each(t.predecessors(i),a))}return r.each(t.nodes(),(function(t){e=[],a(t),e.length&&i.push(e)})),i}t.exports=i},e538:function(t,e,n){(function(t){var r=n("2b3e"),i=e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i,s=o?r.Buffer:void 0,u=s?s.allocUnsafe:void 0;function c(t,e){if(e)return t.slice();var n=t.length,r=u?u(n):new t.constructor(n);return t.copy(r),r}t.exports=c}).call(this,n("62e4")(t))},e632:function(t,e,n){"use strict";var r=n("6f9c");function i(t){var e={},n=r.filter(t.nodes(),(function(e){return!t.children(e).length})),i=r.max(r.map(n,(function(e){return t.node(e).rank}))),a=r.map(r.range(i+1),(function(){return[]}));function o(n){if(!r.has(e,n)){e[n]=!0;var i=t.node(n);a[i.rank].push(n),r.forEach(t.successors(n),o)}}var s=r.sortBy(n,(function(e){return t.node(e).rank}));return r.forEach(s,o),a}t.exports=i},e6d6:function(t,e){var n=function(t){return null===t||void 0===t};t.exports=n},e849:function(t,e,n){"use strict";var r=n("6f9c");function i(t){var e={};function n(i){var a=t.node(i);if(r.has(e,i))return a.rank;e[i]=!0;var o=r.min(r.map(t.outEdges(i),(function(e){return n(e.w)-t.edge(e).minlen})));return o!==Number.POSITIVE_INFINITY&&void 0!==o&&null!==o||(o=0),a.rank=o}r.forEach(t.sources(),n)}function a(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}t.exports={longestPath:i,slack:a}},e877:function(t,e,n){const r=n("9f57"),i={deepMix:n("1b95"),mix:n("503e"),debounce:n("6023"),each:n("72fb"),throttle:n("da0a"),mat3:n("6dcf"),vec2:n("830e"),vec3:n("f98b"),transform:n("3b54"),clone:n("e0ef"),upperFirst:n("dd6d"),isNil:n("e6d6"),isArray:n("3a21"),createDom:n("158c"),modifyCSS:n("758e"),isObject:n("d285"),isPlainObject:n("7bf3"),isNumber:n("5d9e"),isString:n("3421"),uniqueId:n("339d"),addEventListener:n("0e151"),wrapBehavior:n("14c8"),extend:n("26bf"),augment:n("8d88"),remove:n("4edf"),formatPadding(t){let e=0,n=0,r=0,a=0;return i.isNumber(t)||i.isString(t)?e=n=r=a=t:i.isArray(t)&&(e=t[0],r=i.isNil(t[1])?t[0]:t[1],a=i.isNil(t[2])?t[0]:t[2],n=i.isNil(t[3])?r:t[3]),[e,r,a,n]},cloneEvent(t){const e=new r(t.type,t,!0,!0);return e.clientX=t.clientX,e.clientY=t.clientY,e.x=t.x,e.y=t.y,e.target=t.target,e.currentTarget=t.currentTarget,e.item=t.item,e}};t.exports=i},e916:function(t,e){const n=.05;t.exports={getDefaultCfg(){return{sensitivity:2,minZoom:.1,maxZoom:10}},getEvents(){return{wheel:"onWheel"}},onWheel(t){if(t.preventDefault(),!this.shouldUpdate.call(this,t))return;const e=this.graph,r=e.get("canvas"),i=r.getPointByClient(t.clientX,t.clientY),a=r.get("pixelRatio"),o=this.get("sensitivity");let s=e.getZoom();s=t.wheelDelta<0?1-n*o:1+n*o;const u=s*e.getZoom();u>this.get("maxZoom")||u{r[e.get(t.source)]+=1,r[e.get(t.target)]+=1}),r}r.registerLayout("grid",{getDefaultCfg(){return{begin:[0,0],preventOverlap:!0,preventOverlapPadding:10,condense:!1,rows:void 0,cols:void 0,position(){},sortBy:"degree",nodeSize:30}},execute(){const t=this,e=t.nodes,n=e.length,r=t.center;if(0===n)return;if(1===n)return e[0].x=r[0],void(e[0].y=r[1]);const o=t.edges,s=[];e.forEach(t=>{s.push(t)});const u=new Map;if(s.forEach((t,e)=>{u.set(t.id,e)}),("degree"===t.sortBy||!i(t.sortBy)||void 0===s[0][t.sortBy])&&(t.sortBy="degree",isNaN(e[0].degree))){const t=a(s.length,u,o);s.forEach((e,n)=>{e.degree=t[n]})}s.sort((e,n)=>n[t.sortBy]-e[t.sortBy]);let c=t.width;c||"undefined"===typeof window||(c=window.innerWidth);let h=t.height;h||"undefined"===typeof h||(h=window.innerHeight),t.cells=n,t.splits=Math.sqrt(t.cells*t.height/t.width),t.rows=Math.round(t.splits),t.cols=Math.round(t.width/t.height*t.splits);const f=t.rows,l=null!=t.cols?t.cols:t.columns;if(null!=f&&null!=l)t.rows=f,t.cols=l;else if(null!=f&&null==l)t.rows=f,t.cols=Math.ceil(t.cells/t.rows);else if(null==f&&null!=l)t.cols=l,t.rows=Math.ceil(t.cells/t.cols);else if(t.cols*t.rows>t.cells){const e=t.small(),n=t.large();(e-1)*n>=t.cells?t.small(e-1):(n-1)*e>=t.cells&&t.large(n-1)}else while(t.cols*t.rows=t.cells?t.large(n+1):t.small(e+1)}t.cellWidth=t.width/t.cols,t.cellHeight=t.height/t.rows,t.condense&&(t.cellWidth=0,t.cellHeight=0),t.preventOverlap&&s.forEach(e=>{let n,r;null!=e.x&&null!=e.y||(e.x=0,e.y=0),isNaN(e.size)?(n=e.size[0],r=e.size[1]):(n=e.size,r=e.size),(isNaN(n)||isNaN(r))&&(isNaN(t.nodeSize)?(n=t.nodeSize[0],r=t.nodeSize[1]):(n=t.nodeSize,r=t.nodeSize));const i=t.preventOverlapPadding,a=n+i,o=r+i;t.cellWidth=Math.max(t.cellWidth,a),t.cellHeight=Math.max(t.cellHeight,o)}),t.cellUsed={},t.row=0,t.col=0,t.id2manPos={};for(let i=0;i=t.cols&&(t.col=0,t.row++)},getPos(t){const e=this,n=e.begin,r=e.cellWidth,i=e.cellHeight;let a,o;const s=e.id2manPos[t.id];if(s)a=s.col*r+r/2+n[0],o=s.row*i+i/2+n[1];else{while(e.used(e.row,e.col))e.moveToNextCell();a=e.col*r+r/2+n[0],o=e.row*i+i/2+n[1],e.use(e.row,e.col),e.moveToNextCell()}t.x=a,t.y=o}})},eac5:function(t,e){var n=Object.prototype;function r(t){var e=t&&t.constructor,r="function"==typeof e&&e.prototype||n;return t===r}t.exports=r},ec19:function(t,e,n){const r=n("1249"),i=n("1bb5"),a=n("e00c");r.registerNode("image",{options:{img:"https://img2.bosszhipin.com/boss/avatar/avatar_13.png",size:200,clipCfg:{show:!1,type:"circle",r:50,rx:50,ry:35,width:50,height:35,points:[[30,12],[12,30],[30,48],[48,30]],path:[["M",25,25],["L",50,25],["A",12.5,12.5,0,1,1,50,50],["A",12.5,12.5,0,1,0,50,50],["L",25,75],["Z"]],x:0,y:0,style:{lineWidth:1}}},shapeType:"image",labelPosition:"bottom",drawShape(t,e){const n=this.shapeType,r=this.getShapeStyle(t),i=e.addShape(n,{attrs:r});return this.drawClip(t,i),i},drawClip(t,e){const n=i.mix({},this.options.clipCfg,t.clipCfg);if(!n.show)return;const{type:r,x:o,y:s,style:u}=n;let c=null;if("circle"===r){const{r:t}=n;c=new a.Circle({attrs:{r:t,x:o,y:s,...u}})}else if("rect"===r){const{width:t,height:e}=n;c=new a.Rect({attrs:{x:o,y:s,width:t,height:e,...u}})}else if("ellipse"===r){const{rx:t,ry:e}=n;c=new a.Ellipse({attrs:{x:o,y:s,rx:t,ry:e,...u}})}else if("polygon"===r){const{points:t}=n;c=new a.Polygon({attrs:{points:t,...u}})}else if("path"===r){const{path:t}=n;c=new a.Path({attrs:{path:t,...u}})}c&&e.attr("clip",c)},getShapeStyle(t){const e=this.getSize(t),n=t.img||this.options.img,r=e[0],a=e[1],o=i.mix({},{x:0-r/2,y:0-a/2,width:r,height:a,img:n},t.style);return o}},"single-shape")},ec69:function(t,e,n){var r=n("6fcd"),i=n("03dd"),a=n("30c9");function o(t){return a(t)?r(t):i(t)}t.exports=o},ec8c:function(t,e){function n(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}t.exports=n},edb2:function(t,e,n){t.exports={painter:n("8327"),getShape:n("5e5e")}},edfa:function(t,e){function n(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}t.exports=n},ee9f:function(t,e,n){"use strict";n.r(e);var r=function(t,e,n){t.prototype=e.prototype=n,n.constructor=t};function i(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function a(){}var o=.7,s=1/o,u="\\s*([+-]?\\d+)\\s*",c="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",h="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",f=/^#([0-9a-f]{3,8})$/,l=new RegExp("^rgb\\("+[u,u,u]+"\\)$"),d=new RegExp("^rgb\\("+[h,h,h]+"\\)$"),p=new RegExp("^rgba\\("+[u,u,u,c]+"\\)$"),g=new RegExp("^rgba\\("+[h,h,h,c]+"\\)$"),v=new RegExp("^hsl\\("+[c,h,h]+"\\)$"),m=new RegExp("^hsla\\("+[c,h,h,c]+"\\)$"),y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function x(){return this.rgb().formatHex()}function b(){return T(this).formatHsl()}function w(){return this.rgb().formatRgb()}function _(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=f.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?M(e):3===n?new P(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?S(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?S(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=l.exec(t))?new P(e[1],e[2],e[3],1):(e=d.exec(t))?new P(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=p.exec(t))?S(e[1],e[2],e[3],e[4]):(e=g.exec(t))?S(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=v.exec(t))?O(e[1],e[2]/100,e[3]/100,1):(e=m.exec(t))?O(e[1],e[2]/100,e[3]/100,e[4]):y.hasOwnProperty(t)?M(y[t]):"transparent"===t?new P(NaN,NaN,NaN,0):null}function M(t){return new P(t>>16&255,t>>8&255,255&t,1)}function S(t,e,n,r){return r<=0&&(t=e=n=NaN),new P(t,e,n,r)}function k(t){return t instanceof a||(t=_(t)),t?(t=t.rgb(),new P(t.r,t.g,t.b,t.opacity)):new P}function A(t,e,n,r){return 1===arguments.length?k(t):new P(t,e,n,null==r?1:r)}function P(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function C(){return"#"+I(this.r)+I(this.g)+I(this.b)}function E(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function I(t){return t=Math.max(0,Math.min(255,Math.round(t)||0)),(t<16?"0":"")+t.toString(16)}function O(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new j(t,e,n,r)}function T(t){if(t instanceof j)return new j(t.h,t.s,t.l,t.opacity);if(t instanceof a||(t=_(t)),!t)return new j;if(t instanceof j)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),s=NaN,u=o-i,c=(o+i)/2;return u?(s=e===o?(n-r)/u+6*(n0&&c<1?0:s,new j(s,u,c,t.opacity)}function N(t,e,n,r){return 1===arguments.length?T(t):new j(t,e,n,null==r?1:r)}function j(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function B(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function L(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}r(a,_,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:x,formatHex:x,formatHsl:b,formatRgb:w,toString:w}),r(P,A,i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new P(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new P(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:C,formatHex:C,formatRgb:E,toString:E})),r(j,N,i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new j(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new j(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new P(B(t>=240?t-240:t+120,i,r),B(t,i,r),B(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var D=function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r180||n<-180?n-360*Math.round(n/360):n):F(isNaN(t)?e:t)}function X(t){return 1===(t=+t)?G:function(e,n){return n-e?q(e,n,t):F(isNaN(e)?n:e)}}function G(t,e){var n=e-t;return n?Y(t,n):F(isNaN(t)?e:t)}var W=function t(e){var n=X(e);function r(t,e){var r=n((t=A(t)).r,(e=A(e)).r),i=n(t.g,e.g),a=n(t.b,e.b),o=G(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return r.gamma=t,r}(1);function U(t){return function(e){var n,r,i=e.length,a=new Array(i),o=new Array(i),s=new Array(i);for(n=0;na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,u.push({i:o,x:Q(n,r)})),a=tt.lastIndex;return a180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:Q(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}function s(t,e,n,a){t!==e?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:Q(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}function u(t,e,n,r,a,o){if(t!==n||e!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:Q(t,n)},{i:s-2,x:Q(e,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}return function(e,n){var r=[],i=[];return e=t(e),n=t(n),a(e.translateX,e.translateY,n.translateX,n.translateY,r,i),o(e.rotate,n.rotate,r,i),s(e.skewX,n.skewX,r,i),u(e.scaleX,e.scaleY,n.scaleX,n.scaleY,r,i),e=n=null,function(t){var e,n=-1,a=i.length;while(++nRt?Math.pow(t,1/3):t/Dt+Bt}function Xt(t){return t>Lt?t*t*t:Dt*(t-Bt)}function Gt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Wt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ut(t){if(t instanceof Ht)return new Ht(t.h,t.c,t.l,t.opacity);if(t instanceof qt||(t=Ft(t)),0===t.a&&0===t.b)return new Ht(NaN,0u||c>e[i].lim));a=i,i=r;while((i=t.parent(i))!==a)s.push(i);return{path:o.concat(s.reverse()),lca:a}}function o(t){var e={},n=0;function i(a){var o=n;r.forEach(t.children(a),i),e[a]={low:o,lim:n++}}return r.forEach(t.children(),i),e}t.exports=i},f352:function(t,e,n){var r=n("6f9c"),i=n("b50e");function a(t,e){var n=i.partition(t,(function(t){return r.has(t,"barycenter")})),a=n.lhs,u=r.sortBy(n.rhs,(function(t){return-t.i})),c=[],h=0,f=0,l=0;a.sort(s(!!e)),l=o(c,u,l),r.forEach(a,(function(t){l+=t.vs.length,c.push(t.vs),h+=t.barycenter*t.weight,f+=t.weight,l=o(c,u,l)}));var d={vs:r.flatten(c,!0)};return f&&(d.barycenter=h/f,d.weight=f),d}function o(t,e,n){var i;while(e.length&&(i=r.last(e)).i<=n)e.pop(),t.push(i.vs),n++;return n}function s(t){return function(e,n){return e.barycentern.barycenter?1:t?n.i-e.i:e.i-n.i}}t.exports=a},f3c1:function(t,e){var n=800,r=16,i=Date.now;function a(t){var e=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++e>=n)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}t.exports=a},f4c8:function(t,e){const n="dblclick",r=["click","dblclick"];t.exports={getDefaultCfg(){return{trigger:n}},getEvents(){let t;return r.includes(this.trigger)?t=this.trigger:(t=n,console.warn("Behavior collapse-expand-group的trigger参数不合法,请输入click或dblclick")),{[""+t]:"onGroupClick"}},onGroupClick(t){const{target:e}=t,n=e.get("groupId");if(!n)return!1;const r=this.graph,i=r.get("customGroupControll");i.collapseExpandGroup(n)}}},f4d6:function(t,e,n){var r=n("ffd6"),i=1/0;function a(t){if("string"==typeof t||r(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}t.exports=a},f608:function(t,e,n){var r=n("6747"),i=n("ffd6"),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;function s(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||(o.test(t)||!a.test(t)||null!=e&&t in Object(e))}t.exports=s},f8af:function(t,e,n){var r=n("2474");function i(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}t.exports=i},f909:function(t,e,n){var r=n("7e64"),i=n("b760"),a=n("72af"),o=n("4f50"),s=n("1a8c"),u=n("9934"),c=n("8adb");function h(t,e,n,f,l){t!==e&&a(e,(function(a,u){if(l||(l=new r),s(a))o(t,e,u,n,h,f,l);else{var d=f?f(c(t,u),a,u+"",t,e,l):void 0;void 0===d&&(d=a),i(t,u,d)}}),u)}t.exports=h},f98b:function(t,e,n){var r=n("9272");t.exports=r},f9ce:function(t,e,n){var r=n("ef5d"),i=n("e3f8"),a=n("f608"),o=n("f4d6");function s(t){return a(t)?r(o(t)):i(t)}t.exports=s},fa21:function(t,e,n){var r=n("7530"),i=n("2dcb"),a=n("eac5");function o(t){return"function"!=typeof t.constructor||a(t)?{}:r(i(t))}t.exports=o},fb06:function(t,e,n){const r=n("1bb5"),i=n("8d21"),a="anchorPointsCache",o="bboxCache";function s(t,e){let n=0,r=t[0],i=u(t[0],e);for(let a=0;ae.get("target")===t)}getOutEdges(){const t=this;return this.get("edges").filter(e=>e.get("source")===t)}getLinkPointByAnchor(t){const e=this.getAnchorPoints();return e[t]}getLinkPoint(t){const e=this.get("keyShape"),n=e.get("type"),i=this.getBBox(),{centerX:a,centerY:o}=i,u=this.getAnchorPoints();let c;switch(n){case"circle":c=r.getCircleIntersectByPoint({x:a,y:o,r:i.width/2},t);break;case"ellipse":c=r.getEllispeIntersectByPoint({x:a,y:o,rx:i.width/2,ry:i.height/2},t);break;default:c=r.getRectIntersectByPoint(i,t)}let h=c;return u.length&&(h||(h=t),h=s(u,h)),h||(h={x:a,y:o}),h}lock(){this.set("locked",!0)}unlock(){this.set("locked",!1)}hasLocked(){return this.get("locked")}addEdge(t){this.get("edges").push(t)}removeEdge(t){const e=this.getEdges(),n=e.indexOf(t);n>-1&&e.splice(n,1)}clearCache(){this.set(o,null),this.set(a,null)}_isOnlyMove(t){if(!t)return!1;const e=!r.isNil(t.x),n=!r.isNil(t.y),i=Object.keys(t);return 1===i.length&&(e||n)||2===i.length&&e&&n}getAnchorPoints(){let t=this.get(a);if(!t){t=[];const e=this.get("shapeFactory"),n=this.getBBox(),i=this.get("model"),o=this.getShapeCfg(i),s=e.getAnchorPoints(i.shape,o)||[];r.each(s,(e,i)=>{const a=r.mix({x:n.minX+e[0]*n.width,y:n.minY+e[1]*n.height},e[2],{index:i});t.push(a)}),this.set(a,t)}return t}}t.exports=c},fb77:function(t,e,n){"use strict";function r(t){return+t}function i(t){return t*t}function a(t){return t*(2-t)}function o(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function s(t){return t*t*t}function u(t){return--t*t*t+1}function c(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}n.r(e);var h=3,f=function t(e){function n(t){return Math.pow(t,e)}return e=+e,n.exponent=t,n}(h),l=function t(e){function n(t){return 1-Math.pow(1-t,e)}return e=+e,n.exponent=t,n}(h),d=function t(e){function n(t){return((t*=2)<=1?Math.pow(t,e):2-Math.pow(2-t,e))/2}return e=+e,n.exponent=t,n}(h),p=Math.PI,g=p/2;function v(t){return 1-Math.cos(t*g)}function m(t){return Math.sin(t*g)}function y(t){return(1-Math.cos(p*t))/2}function x(t){return Math.pow(2,10*t-10)}function b(t){return 1-Math.pow(2,-10*t)}function w(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function _(t){return 1-Math.sqrt(1-t*t)}function M(t){return Math.sqrt(1- --t*t)}function S(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var k=4/11,A=6/11,P=8/11,C=3/4,E=9/11,I=10/11,O=15/16,T=21/22,N=63/64,j=1/k/k;function B(t){return 1-L(1-t)}function L(t){return(t=+t)-1}t.exports=i},fc14:function(t,e,n){const r=n("1249"),i=n("1b95"),a=n("9ed2");r.registerNode("diamond",{options:{size:[100,100],style:{stroke:a.defaultShapeStrokeColor,fill:a.defaultShapeFillColor,lineWidth:1},labelCfg:{style:{fill:"#595959"}},stateStyles:{hover:{fillOpacity:.8},selected:{lineWidth:3}},linkPoints:{top:!1,right:!1,bottom:!1,left:!1,size:3,lineWidth:1,fill:"#72CC4A",stroke:"#72CC4A"},icon:{show:!1,img:"https://gw.alipayobjects.com/zos/basement_prod/012bcf4f-423b-4922-8c24-32a89f8c41ce.svg",width:16,height:16}},shapeType:"circle",labelPosition:"center",drawShape(t,e){const n=this.getCustomConfig(t)||{},{icon:r}=this.options,{icon:a}=n,o=this.getShapeStyle(t),s=i({},r,a,t.icon),u=e.addShape("path",{attrs:o}),{width:c,height:h,show:f}=s;if(f){const t=e.addShape("image",{attrs:{x:-c/2,y:-h/2,...s},className:"diamond-icon"});t.set("capture",!1)}return this.drawLinkPoints(t,e),u},drawLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r}=this.options,{linkPoints:a}=n,o=i({},r,a,t.linkPoints),{top:s,left:u,right:c,bottom:h,size:f,...l}=o,d=this.getSize(t),p=d[0],g=d[1];u&&e.addShape("circle",{attrs:{...l,x:-p/2,y:0,r:f},className:"diamond-mark-left",isAnchorPoint:!0}),c&&e.addShape("circle",{attrs:{...l,x:p/2,y:0,r:f},className:"diamond-mark-right",isAnchorPoint:!0}),s&&e.addShape("circle",{attrs:{...l,x:0,y:-g/2,r:f},className:"diamond-mark-top",isAnchorPoint:!0}),h&&e.addShape("circle",{attrs:{...l,x:0,y:g/2,r:f},className:"diamond-mark-bottom",isAnchorPoint:!0})},getPath(t){const e=this.getSize(t),n=e[0],r=e[1],i=[["M",0,-r/2],["L",n/2,0],["L",0,r/2],["L",-n/2,0],["Z"]];return i},getShapeStyle(t){const e=this.getCustomConfig(t)||{},{style:n}=this.options,{style:r}=e,a={stroke:t.color},o=i({},n,r,a,t.style),s=this.getPath(t),u={path:s,...o};return u},update(t,e){const n=e.getContainer(),r=this.getCustomConfig(t)||{},{style:a,icon:o,labelCfg:s}=this.options,{style:u,icon:c,labelCfg:h}=r,f=i({},a,u,t.style),l=i({},o,c,t.icon),d=e.get("keyShape"),p=this.getPath(t);d.attr({path:p,...f});const g=i({},s,h,t.labelCfg),v=this.getLabelStyle(t,g,n),m=n.findByClassName("node-label");m&&m.attr({...v});const y=n.findByClassName("diamond-icon");if(y){const{width:t,height:e}=l;y.attr({x:-t/2,y:-e/2,...l})}this.updateLinkPoints(t,n)},updateLinkPoints(t,e){const n=this.getCustomConfig(t)||{},{linkPoints:r}=this.options,{linkPoints:a}=n,o=i({},r,a,t.linkPoints),{size:s,fill:u,stroke:c,lineWidth:h}=o,f=this.getSize(t),l=f[0],d=f[1],p=e.findByClassName("diamond-mark-left");p&&p.attr({x:-l/2,y:0,r:s,fill:u,stroke:c,lineWidth:h});const g=e.findByClassName("diamond-mark-right");g&&g.attr({x:l/2,y:0,r:s,fill:u,stroke:c,lineWidth:h});const v=e.findByClassName("diamond-mark-top");v&&v.attr({x:0,y:-d/2,r:s,fill:u,stroke:c,lineWidth:h});const m=e.findByClassName("diamond-mark-bottom");m&&m.attr({x:0,y:d/2,r:s,fill:u,stroke:c,lineWidth:h})}},"single-shape")},fd07:function(t,e,n){var r=n("1c6a"),i=n("9f57"),a=n("51ad"),o=["click","mousedown","mouseup","dblclick","contextmenu","mouseout","mouseover","mousemove","dragstart","drag","dragend","dragenter","dragleave","drop"],s=function(){};r.augment(s,a,{emit:function(t,e){var n=arguments;if(a.prototype.emit.apply(this,n),!(n.length>=2&&n[1]instanceof i&&n[1].propagationStopped)&&o.indexOf(t)>=0&&e.target===this){var r=this._cfg.parent;while(r&&!r.get("destroyed"))r.emit.apply(r,n),r=r._cfg.parent}}}),t.exports=s},fdbc:function(t,e,n){var r=n("1c6a"),i=n("2172"),a=["fillStyle","font","globalAlpha","lineCap","lineWidth","lineJoin","miterLimit","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","strokeStyle","textAlign","textBaseline","lineDash","lineDashOffset"],o=function(){function t(t){if(!t)return null;var e=r.uniqueId("canvas_"),n=r.createDom('');return t.appendChild(n),this.type="canvas",this.canvas=n,this.context=n.getContext("2d"),this.toDraw=!1,this}var e=t.prototype;return e.beforeDraw=function(){var t=this.canvas;this.context&&this.context.clearRect(0,0,t.width,t.height)},e.draw=function(t){var e=this;function n(){e.animateHandler=r.requestAnimationFrame((function(){e.animateHandler=void 0,e.toDraw&&n()})),e.beforeDraw();try{e._drawGroup(t)}catch(i){console.warn("error in draw canvas, detail as:"),console.warn(i)}finally{e.toDraw=!1}}e.animateHandler?e.toDraw=!0:n()},e.drawSync=function(t){this.beforeDraw(),this._drawGroup(t)},e._drawGroup=function(t){if(!t._cfg.removed&&!t._cfg.destroyed&&t._cfg.visible){var e=this,n=t._cfg.children,r=null;this.setContext(t);for(var i=0;i-1){var s=n[o];"fillStyle"===o&&(s=i.parseStyle(s,t,e)),"strokeStyle"===o&&(s=i.parseStyle(s,t,e)),"lineDash"===o&&e.setLineDash?r.isArray(s)?e.setLineDash(s):r.isString(s)&&e.setLineDash(s.split(" ")):e[o]=s}},t}();t.exports=o},fe39:function(t,e,n){const r=n("b0b3"),i=n("e877"),a=i.vec2;function o(t,e){return t&&e?t.replace(/\\?\{([^{}]+)\}/g,(function(t,n){return"\\"===t.charAt(0)?t.slice(1):void 0===e[n]?"":e[n]})):t}t.exports={getSpline(t){const e=[];for(let r=0;r{const e=t.get("id");return i===e});if(0===a.length){this.target=e;const t=e.getModel(),{groupId:r}=t;if(r){const t=n.get("customGroupControll"),e=t.getDeletageGroupById(r);if(e){const{nodeGroup:n}=e,i=n.get("keyShape");t.setGroupStyle(i,"hover"),this.inGroupId=r}}}else r.length>1?r.forEach(t=>{this.targets.push(t)}):this.targets.push(e);this.origin={x:t.x,y:t.y},this.point={},this.originPoint={}},onDrag(t){if(this.origin&&this.get("shouldUpdate").call(this,t))if(this.targets.length>0)this._updateDelegate(t);else{this._update(this.target,t,!0);const{item:e}=t,n=this.graph,r=e.getModel(),{groupId:i}=r;if(i){const t=n.get("customGroupControll"),e=t.getDeletageGroupById(i);if(e){const{nodeGroup:n}=e,r=n.get("keyShape");this.inGroupId!==i?t.setGroupStyle(r,"default"):t.setGroupStyle(r,"hover")}}}},onDragEnd(t){if(!this.origin||!this.shouldEnd.call(this,t))return;if(this.shape&&(this.shape.remove(),this.shape=null),this.target){const t=this.target.get("delegateShape");t&&(t.remove(),this.target.set("delegateShape",null))}this.targets.length>0?this.targets.forEach(e=>this._update(e,t)):this.target&&this._update(this.target,t),this.point={},this.origin=null,this.originPoint={},this.targets.length=0,this.target=null;const e=this.fn;e&&(a.removeEventListener("mouseup",e,!1),this.fn=null),this.setCurrentGroupStyle(t)},setCurrentGroupStyle(t){const{item:e}=t,n=this.graph,r=n.get("autoPaint");n.setAutoPaint(!1);const i=e.getModel(),{groupId:a,id:o}=i,s=n.get("customGroupControll"),u=s.customGroup,c=n.get("groupNodes");if(this.inGroupId&&a){const n=u[a].nodeGroup,r=n.get("keyShape"),h=e.getBBox(),f=r.getBBox(),{x:l,y:d}=h,{minX:p,minY:g,maxX:v,maxY:m}=f;if(!(lp*this.minMultiple&&dg*this.minMultiple)||this.inGroupId!==a){const e=c[a];c[a]=e.filter(t=>t!==o),s.dynamicChangeGroupSize(t,n,r),delete i.groupId}if(this.inGroupId!==a){const e=u[this.inGroupId].nodeGroup,n=e.get("keyShape");-1===c[this.inGroupId].indexOf(o)&&c[this.inGroupId].push(o),i.groupId=this.inGroupId,s.dynamicChangeGroupSize(t,e,n)}s.setGroupStyle(r,"default")}else if(this.inGroupId&&!a){const e=u[this.inGroupId].nodeGroup,n=e.get("keyShape");-1===c[this.inGroupId].indexOf(o)&&c[this.inGroupId].push(o),i.groupId=this.inGroupId,s.dynamicChangeGroupSize(t,e,n)}else if(!this.inGroupId&&a){for(const t in c){const e=c[t];c[t]=e.filter(t=>t!==o)}const e=u[a].nodeGroup,n=e.get("keyShape");s.dynamicChangeGroupSize(t,e,n),delete i.groupId}this.inGroupId=null,n.paint(),n.setAutoPaint(r)},onOutOfRange(t){const e=this;if(this.origin){const n=e.graph.get("canvas").get("el"),r=r=>{r.target!==n&&e.onDragEnd(t)};this.fn=r,a.addEventListener("mouseup",r,!1)}},_update(t,e,n){const r=this.origin,i=t.get("model"),a=t.get("id");this.point[a]||(this.point[a]={x:i.x,y:i.y});const o=e.x-r.x+this.point[a].x,s=e.y-r.y+this.point[a].y;if(n)return void this._updateDelegate(e,o,s);const u={x:o,y:s};this.get("updateEdge")?this.graph.updateItem(t,u):(t.updatePosition(u),this.graph.paint())},_updateDelegate(t,e,n){const{item:a}=t,o=this.graph,s=o.get("groupType"),u=a.get("keyShape").getBBox();if(!this.shape){const t=o.get("group"),s=r({},i,this.delegateStyle);if(this.targets.length>0){const e=o.findAllByState("node","selected");0===e.length&&e.push(a);const n=o.get("customGroupControll"),{x:r,y:i,width:u,height:c}=n.calculationGroupPosition(e);this.originPoint={x:r,y:i,width:u,height:c},this.shape=t.addShape("rect",{attrs:{width:u,height:c,x:r,y:i,...s}})}else this.target&&(this.shape=t.addShape("rect",{attrs:{width:u.width,height:u.height,x:e-u.width/2,y:n-u.height/2,...s}}),this.target.set("delegateShape",this.shape));this.shape.set("capture",!1)}if(this.targets.length>0){const e=t.x-this.origin.x+this.originPoint.minX,n=t.y-this.origin.y+this.originPoint.minY;this.shape.attr({x:e,y:n})}else this.target&&("circle"===s?this.shape.attr({x:e-u.width/2,y:n-u.height/2}):"rect"===s&&this.shape.attr({x:e,y:n}));this.graph.paint()}}}}]); \ No newline at end of file diff --git a/static/web/js/chunk-4bef97e6.435d3ab1.js b/static/web/js/chunk-4bef97e6.435d3ab1.js new file mode 100644 index 0000000..ec1c7e9 --- /dev/null +++ b/static/web/js/chunk-4bef97e6.435d3ab1.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4bef97e6"],{"0636":function(e,t,a){e.exports=a.p+"static/web/img/receive-task.e1131038.svg"},"11fe":function(e,t,a){e.exports=a.p+"static/web/img/icon_receive.a6c46918.svg"},1492:function(e,t,a){},"1bb8":function(e,t,a){e.exports=a.p+"static/web/img/user-task.90bd34cf.svg"},2463:function(e,t,a){"use strict";var n=a("d76d"),i=a.n(n);i.a},"2a9f4":function(e,t,a){e.exports=a.p+"static/web/img/parallel-gateway.dfb4ebaf.svg"},"2d36":function(e,t,a){e.exports=a.p+"static/web/img/icon_script.07c7423e.svg"},"2f27":function(e,t,a){e.exports=a.p+"static/web/img/exclusive-gateway.56b82dfd.svg"},"31ac":function(e,t,a){e.exports=a.p+"static/web/img/icon_signal.0e96b3b6.svg"},"429a":function(e,t,a){"use strict";var n=a("1492"),i=a.n(n);i.a},"5ae6":function(e,t,a){},"8ee1":function(e,t,a){"use strict";var n=a("cae3"),i=a.n(n);i.a},"974b":function(e,t,a){e.exports=a.p+"static/web/img/end.9687f898.svg"},b2a8:function(e,t,a){},ba02:function(e,t,a){e.exports=a.p+"static/web/img/icon_message.01031aed.svg"},bd84:function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"root"},[e.isView?e._e():a("ToolbarPanel",{ref:"toolbar"}),e._v(" "),a("div",{staticStyle:{display:"flex"}},[e.isView?e._e():a("ItemPanel",{ref:"addItemPanel",attrs:{height:e.height}}),e._v(" "),a("div",{ref:"canvas",staticClass:"canvasPanel",style:{height:e.height+"px",width:e.isView?"100%":"70%","border-bottom":e.isView?0:null}}),e._v(" "),e.isView?e._e():a("DetailPanel",{ref:"detailPanel",attrs:{height:e.height,model:e.selectedModel,"read-only":"edit"!==e.mode,users:e.users,groups:e.groups,departments:e.departments,tasks:e.tasks,templates:e.templates,"templates-base":e.templatesBase,"signal-defs":e.processModel.signalDefs,"message-defs":e.processModel.messageDefs,"on-change":function(t,a){e.onItemCfgChange(t,a)}}})],1)],1)},i=[],o=a("bd86"),s=(a("55dd"),a("db72")),r=(a("ac6a"),a("c5f6"),a("9d67")),l=a.n(r);function c(e){switch(e){case"start":return"start-node";case"end":return"end-node";case"gateway":return"gateway-node";case"exclusiveGateway":return"exclusive-gateway-node";case"parallelGateway":return"parallel-gateway-node";case"inclusiveGateway":return"inclusive-gateway-node";case"timerStart":return"timer-start-node";case"messageStart":return"message-start-node";case"signalStart":return"signal-start-node";case"userTask":return"user-task-node";case"scriptTask":return"script-task-node";case"mailTask":return"mail-task-node";case"javaTask":return"java-task-node";case"receiveTask":return"receive-task-node";case"timerCatch":return"timer-catch-node";case"messageCatch":return"message-catch-node";case"signalCatch":return"signal-catch-node";default:return"task-node"}}a("7f7f");var d=a("d225"),u=a("b0b4"),h=a("503e"),p=a("e0ef"),g=a("3421"),m=function(){function e(){Object(d["a"])(this,e)}return Object(u["a"])(e,[{key:"getDefaultCfg",value:function(){return{_command:{zoomDelta:.1,queue:[],current:0,clipboard:[]}}}},{key:"get",value:function(e){return this._cfgs[e]}},{key:"set",value:function(e,t){this._cfgs[e]=t}},{key:"initPlugin",value:function(e){var t=this;this._cfgs=this.getDefaultCfg(),this.list=[],this.queue=[],this.initCommands(),e.getCommands=function(){return t.get("_command").queue},e.getCurrentCommand=function(){var e=t.get("_command");return e.queue[e.current-1]},e.executeCommand=function(a,n){t.execute(a,e,n)},e.commandEnable=function(a){return t.enable(a,e)}}},{key:"registerCommand",value:function(e,t){if(this[e])h(this[e],t);else{var a=h({},{name:e,shortcutCodes:[],queue:!0,executeTimes:1,init:function(){},enable:function(){return!0},execute:function(e){this.snapShot=e.save(),this.selectedItems=e.get("selectedItems"),this.method&&(g(this.method)?e[this.method]():this.method(e))},back:function(e){e.read(this.snapShot),e.set("selectedItems",this.selectedItems)}},t);this[e]=a,this.list.push(a)}}},{key:"execute",value:function(e,t,a){var n=h({},this[e],a),i=this.get("_command");return n.enable(t)&&(n.init(),n.queue&&(i.queue.splice(i.current,i.queue.length-i.current,n),i.current++)),t.emit("beforecommandexecute",{command:n}),n.execute(t),t.emit("aftercommandexecute",{command:n}),n}},{key:"enable",value:function(e,t){return this[e].enable(t)}},{key:"destroyPlugin",value:function(){this._events=null,this._cfgs=null,this.list=[],this.queue=[],this.destroyed=!0}},{key:"initCommands",value:function(){var e=this;e.registerCommand("add",{enable:function(){return this.type&&this.addModel},execute:function(e){var t=e.add(this.type,this.addModel);1===this.executeTimes&&(this.addId=t.get("id"))},back:function(e){e.remove(this.addId)}}),e.registerCommand("update",{enable:function(){return this.itemId&&this.updateModel},execute:function(e){var t=e.findById(this.itemId);t&&(1===this.executeTimes&&(this.originModel=h({},t.getModel())),e.update(t,this.updateModel))},back:function(e){var t=e.findById(this.itemId);e.update(t,this.originModel)}}),e.registerCommand("delete",{enable:function(e){var t=e.getCurrentMode(),a=e.get("selectedItems");return"edit"===t&&a&&a.length>0},method:function(e){var t=e.get("selectedItems");e.emit("beforedelete",{items:t}),t&&t.length>0&&t.forEach((function(t){return e.remove(t)})),e.emit("afterdelete",{items:t})},shortcutCodes:["Delete","Backspace"]}),e.registerCommand("redo",{queue:!1,enable:function(t){var a=t.getCurrentMode(),n=e.get("_command");return"edit"===a&&n.current0},execute:function(t){var a=e.get("_command"),n=a.queue[a.current-1];n&&(n.executeTimes++,n.back(t)),a.current--},shortcutCodes:[["metaKey","z"],["ctrlKey","z"]]}),e.registerCommand("copy",{queue:!1,enable:function(e){var t=e.getCurrentMode(),a=e.get("selectedItems");return"edit"===t&&a&&a.length>0},method:function(t){var a=e.get("_command");a.clipboard=[];var n=t.get("selectedItems");if(n&&n.length>0){var i=t.findById(n[0]);i&&a.clipboard.push({type:i.get("type"),model:i.getModel()})}}}),e.registerCommand("paste",{enable:function(t){var a=t.getCurrentMode();return"edit"===a&&e.get("_command").clipboard.length>0},method:function(t){var a=e.get("_command");this.pasteData=p(a.clipboard[0]);var n=this.pasteData.model;n.x&&(n.x+=10),n.y&&(n.y+=10);var i=n.clazz,o=void 0===i?"userTask":i,s=(new Date).getTime(),r=o+s;n.id=r;var l=t.add(this.pasteData.type,n);l.toFront()}}),e.registerCommand("zoomIn",{queue:!1,enable:function(e){var t=e.getZoom(),a=e.get("maxZoom"),n=e.get("minZoom");return t<=a&&t>=n},execute:function(t){var a=e.get("_command"),n=t.get("maxZoom"),i=t.getZoom();this.originZoom=i;var o=i+a.zoomDelta;o>n&&(o=n),t.zoomTo(o)},back:function(e){e.zoomTo(this.originZoom)},shortcutCodes:[["metaKey","="],["ctrlKey","="]]}),e.registerCommand("zoomOut",{queue:!1,enable:function(e){var t=e.getZoom(),a=e.get("maxZoom"),n=e.get("minZoom");return t<=a&&t>=n},execute:function(t){var a=e.get("_command"),n=t.get("minZoom"),i=t.getZoom();this.originZoom=i;var o=i-a.zoomDelta;o0},execute:function(e){var t=e.get("selectedItems");if(t&&t.length>0){var a=e.findById(t[0]);a.toFront(),e.paint()}},back:function(e){}}),e.registerCommand("toBack",{queue:!1,enable:function(e){var t=e.get("selectedItems");return t&&t.length>0},execute:function(e){var t=e.get("selectedItems");if(t&&t.length>0){var a=e.findById(t[0]);a.toBack(),e.paint()}},back:function(e){}})}}]),e}(),f=m,v=a("1b95"),y=a("72fb"),b=a("14c8"),x=a("758e"),k=function(){function e(t){Object(d["a"])(this,e),this._cfgs=v(this.getDefaultCfg(),t)}return Object(u["a"])(e,[{key:"getDefaultCfg",value:function(){return{container:null}}},{key:"get",value:function(e){return this._cfgs[e]}},{key:"set",value:function(e,t){this._cfgs[e]=t}},{key:"initPlugin",value:function(e){var t=this;this.set("graph",e);var a=t.getEvents(),n={};y(a,(function(a,i){var o=b(t,a);n[i]=o,e.on(i,o)})),this._events=n,this.initEvents(),this.updateToolbar()}},{key:"getEvents",value:function(){return{afteritemselected:"updateToolbar",aftercommandexecute:"updateToolbar"}}},{key:"initEvents",value:function(){var e=this.get("graph"),t=this.get("container"),a=t.querySelectorAll("div > span[data-command]");y(a,(function(t,a){var n=t.getAttribute("data-command");t.addEventListener("click",(function(t){e.commandEnable(n)&&e.executeCommand(n)}))}))}},{key:"updateToolbar",value:function(){var e=this.get("graph"),t=this.get("container"),a=t.querySelectorAll("div > span[data-command]");y(a,(function(t,a){var n=t.getAttribute("data-command");e.commandEnable(n)?(x(t,{cursor:"pointer"}),x(t.children[0],{color:"#666"}),t.children[0].setAttribute("color","#666")):(x(t,{cursor:"default"}),x(t.children[0],{color:"#bfbfbf"}),t.children[0].setAttribute("color","#bfbfbf"))}))}},{key:"destroyPlugin",value:function(){this.get("canvas").destroy();var e=this.get("container");e.parentNode.removeChild(e)}}]),e}(),w=k,_=a("1b95"),C=a("72fb"),S=a("158c"),T=function(){function e(t){Object(d["a"])(this,e),this._cfgs=_(this.getDefaultCfg(),t)}return Object(u["a"])(e,[{key:"getDefaultCfg",value:function(){return{container:null}}},{key:"get",value:function(e){return this._cfgs[e]}},{key:"set",value:function(e,t){this._cfgs[e]=t}},{key:"initPlugin",value:function(e){var t=this.get("container"),a=S(''),n=t.querySelectorAll("div > .el-collapse-item > .el-collapse-item__wrap > .el-collapse-item__content > img[data-item]");C(n,(function(t,n){var i=new Function("return "+t.getAttribute("data-item"))();t.addEventListener("dragstart",(function(t){t.dataTransfer.setDragImage(a,0,0),e.set("onDragAddNode",!0),e.set("addModel",i)})),t.addEventListener("dragend",(function(t){e.emit("canvas:mouseup",t),e.set("onDragAddNode",!1),e.set("addModel",null)}))}))}},{key:"destroy",value:function(){this.get("canvas").destroy();var e=this.get("container");e.parentNode.removeChild(e)}}]),e}(),D=T,E=a("1b95"),A=function(){function e(t){Object(d["a"])(this,e),this._cfgs=E(this.getDefaultCfg(),t)}return Object(u["a"])(e,[{key:"getDefaultCfg",value:function(){return{container:null}}},{key:"get",value:function(e){return this._cfgs[e]}},{key:"set",value:function(e,t){this._cfgs[e]=t}},{key:"initPlugin",value:function(e){var t=this.get("container");t.addEventListener("dragover",(function(t){e.emit("canvas:mousemove",t)})),t.addEventListener("dragleave",(function(t){e.emit("canvas:mouseleave",t)}))}},{key:"destroy",value:function(){this.get("canvas").destroy();var e=this.get("container");e.parentNode.removeChild(e)}}]),e}(),O=A,z=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"toolbar"},[a("el-tooltip",{attrs:{content:e.i18n["tooltip.undo"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"undo"}},[a("span",{staticClass:"iconfont icon-undo"})])]),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.redo"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"redo"}},[a("span",{staticClass:"iconfont icon-redo"})])]),e._v(" "),a("span",{staticClass:"separator"}),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.copy"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"copy"}},[a("span",{staticClass:"iconfont icon-copy-o"})])]),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.paste"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"paste"}},[a("span",{staticClass:"iconfont icon-paster-o"})])]),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.delete"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"delete"}},[a("span",{staticClass:"iconfont icon-delete-o"})])]),e._v(" "),a("span",{staticClass:"separator"}),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.zoomIn"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"zoomIn"}},[a("span",{staticClass:"iconfont icon-zoom-in-o"})])]),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.zoomOut"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"zoomOut"}},[a("span",{staticClass:"iconfont icon-zoom-out-o"})])]),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.zoomReset"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"resetZoom"}},[a("span",{staticClass:"iconfont icon-actual-size-o"})])]),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.autoFit"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"autoFit"}},[a("span",{staticClass:"iconfont icon-fit"})])]),e._v(" "),a("span",{staticClass:"separator"}),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.toFront"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"toFront"}},[a("span",{staticClass:"iconfont icon-to-front"})])]),e._v(" "),a("el-tooltip",{attrs:{content:e.i18n["tooltip.toBack"],placement:"bottom"}},[a("span",{staticClass:"command",attrs:{"data-command":"toBack"}},[a("span",{staticClass:"iconfont icon-to-back"})])])],1)},B=[],F={inject:["i18n"]},N=F,j=(a("e4c5"),a("2877")),P=Object(j["a"])(N,z,B,!1,null,"12b37731",null),M=P.exports,I=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"itemPanel",style:{height:e.height+"px"}},[n("el-collapse",{model:{value:e.activeNames,callback:function(t){e.activeNames=t},expression:"activeNames"}},[n("el-collapse-item",{attrs:{title:e.i18n["conventional"],name:"1"}},[n("img",{staticStyle:{width:"42px",height:"42px","margin-top":"10px"},attrs:{"data-item":"{clazz:'start',size:'30*30',label:''}",src:a("c5d6")}}),e._v(" "),n("div",[e._v(e._s(e.i18n["startEvent"]))]),e._v(" "),n("img",{staticStyle:{width:"80px",height:"44px","margin-top":"10px"},attrs:{"data-item":e.userTaskData,src:a("1bb8")}}),e._v(" "),n("div",[e._v(e._s(e.i18n["userTask"]))]),e._v(" "),n("img",{staticStyle:{width:"80px",height:"44px","margin-top":"10px"},attrs:{"data-item":e.handleNodeData,src:a("0636")}}),e._v(" "),n("div",[e._v(e._s(e.i18n["handleNode"]))]),e._v(" "),n("img",{staticStyle:{width:"42px",height:"42px","margin-top":"10px"},attrs:{"data-item":"{clazz:'end',size:'30*30',label:''}",src:a("974b")}}),e._v(" "),n("div",[e._v(e._s(e.i18n["endEvent"]))])]),e._v(" "),n("el-collapse-item",{attrs:{title:e.i18n["gateway"],name:"3"}},[n("img",{staticStyle:{width:"48px",height:"48px","margin-top":"10px"},attrs:{"data-item":"{clazz:'exclusiveGateway',size:'40*40',label:''}",src:a("2f27")}}),e._v(" "),n("div",[e._v(e._s(e.i18n["exclusiveGateway"]))]),e._v(" "),n("img",{staticStyle:{width:"48px",height:"48px","margin-top":"10px"},attrs:{"data-item":"{clazz:'parallelGateway',size:'40*40',label:''}",src:a("2a9f4")}}),e._v(" "),n("div",[e._v(e._s(e.i18n["parallelGateway"]))])])],1)],1)},L=[],X={inject:["i18n"],props:{height:{type:Number,default:800}},data:function(){return{activeNames:["1","3"],userTaskData:"{clazz:'userTask',size:'80*44',label:'"+this.i18n["userTask"]+"'}",javaTaskData:"{clazz:'javaTask',size:'80*44',label:'"+this.i18n["javaTask"]+"'}",mailTaskData:"{clazz:'mailTask',size:'80*44',label:'"+this.i18n["mailTask"]+"'}",handleNodeData:"{clazz:'receiveTask',size:'80*44',label:'"+this.i18n["handleNode"]+"'}"}}},V=X,Y=(a("c142"),Object(j["a"])(V,I,L,!1,null,null,null)),R=Y.exports,G=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"detailPanel",style:{height:e.height+"px"}},["userTask"===e.model.clazz?a("UserTaskDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,users:e.users,groups:e.groups,departments:e.departments,tasks:e.tasks,templates:e.templates,"templates-base":e.templatesBase}}):"scriptTask"===e.model.clazz?a("ScriptTaskDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,tasks:e.tasks}}):"receiveTask"===e.model.clazz?a("HandleNodeDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,users:e.users,groups:e.groups,departments:e.departments,tasks:e.tasks,templates:e.templates,"templates-base":e.templatesBase}}):"gateway"===e.model.clazz||"exclusiveGateway"===e.model.clazz||"parallelGateway"===e.model.clazz||"inclusiveGateway"===e.model.clazz?a("GatewayDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}):"start"===e.model.clazz?a("StartEventDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,tasks:e.tasks,templates:e.templates,"templates-base":e.templatesBase}}):"end"===e.model.clazz?a("EndEventDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,tasks:e.tasks,templates:e.templates,"templates-base":e.templatesBase}}):"flow"===e.model.clazz?a("FlowDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}):e._e()],1)},q=[],Z=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{"data-clazz":e.model.clazz}},[a("div",{staticClass:"panelTitle"},[e._v(e._s(e.i18n["userTask"]))]),e._v(" "),a("div",{staticClass:"panelBody"},[a("DefaultDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[e._v("之后任务:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择任务",disabled:e.readOnly,value:e.model.task,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("task",t)}}},e._l(e.tasks,(function(e,t){return a("el-option",{key:t,attrs:{label:e.name,value:e.full_name}})})),1)],1),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["userTask.assignType"])+":")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:e.i18n["userTask.assignType.placeholder"],value:e.model.assignType,disabled:e.readOnly},on:{change:function(t){e.onChange("assignValue",[]),e.onChange("assignType",t)}}},[a("el-option",{key:"person",attrs:{value:"person",label:e.i18n["userTask.assignType.person"]}}),e._v(" "),a("el-option",{key:"variable",attrs:{value:"variable",label:e.i18n["userTask.assignType.variable"]}})],1)],1),e._v(" "),"person"===e.model.assignType?a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["userTask.assignType.person.title"])+":")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:e.i18n["userTask.assignType.person.placeholder"],disabled:e.readOnly,value:e.model.assignValue,multiple:!0,filterable:!0},on:{change:function(t){e.onChange("assignValue",t),e.getPersons(t)}}},e._l(e.users,(function(e){return a("el-option",{key:e.userId,attrs:{label:""===e.nickName?e.username:e.nickName,value:e.userId}})})),1)],1):"variable"===e.model.assignType?a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["userTask.assignType.variable.title"])+":")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:e.i18n["userTask.assignType.variable.placeholder"],disabled:e.readOnly,multiple:!0},on:{change:function(t){e.onChange("assignValue",t),e.getPersons(t)}},model:{value:e.model.assignValue,callback:function(t){e.$set(e.model,"assignValue",e._n(t))},expression:"model.assignValue"}},e._l(e.variableOptions,(function(e,t){return a("el-option",{key:t,attrs:{label:e.label,value:e.value}})})),1)],1):e._e(),e._v(" "),a("div",{staticClass:"panelRow"},[a("el-checkbox",{attrs:{disabled:void 0===e.model.assignValue||null===e.model.assignValue||e.model.assignValue.length<=1||e.model.activeOrder||e.readOnly,value:e.model.isCounterSign},on:{change:function(t){return e.onChange("isCounterSign",t)}}},[e._v(e._s(e.i18n["userTask.counterSign"]))]),e._v(" "),a("el-checkbox",{attrs:{disabled:void 0===e.model.assignValue||null===e.model.assignValue||e.model.assignValue.length<=1||e.model.isCounterSign||e.readOnly,value:e.model.activeOrder},on:{change:function(t){return e.onChange("activeOrder",t)}}},[e._v(e._s(e.i18n["userTask.activeOrder"]))])],1),e._v(" "),a("NodeDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,templates:e.templates,"templates-base":e.templatesBase,"readonly-preview":!1}})],1)])},W=[],$=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["label"])+":")]),e._v(" "),a("el-input",{staticStyle:{width:"90%","font-size":"12px"},attrs:{disabled:e.readOnly,value:e.model.label},on:{input:function(t){e.onChange("label",t)}}})],1),e._v(" "),a("div",{staticClass:"panelRow"},[e._m(0),e._v(" "),a("el-input",{staticStyle:{width:"90%","font-size":"12px"},attrs:{disabled:e.readOnly,value:e.model.sort},on:{input:function(t){e.onChange("sort",t)}}})],1),e._v(" "),a("div",{staticClass:"panelRow"},[a("el-checkbox",{attrs:{disabled:e.readOnly,value:!!e.model.isHideNode},on:{change:function(t){return e.onChange("isHideNode",t)}}},[e._v("隐藏节点")]),e._v(" "),a("el-checkbox",{attrs:{disabled:e.readOnly,value:!!e.model.hideIcon},on:{change:function(t){return e.onChange("hideIcon",t)}}},[e._v(e._s(e.i18n["hideIcon"]))])],1)])},H=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" 顺序:")])}],U={inject:["i18n"],props:{model:{type:Object,default:function(){return{}}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1}}},K=U,Q=Object(j["a"])(K,$,H,!1,null,null,null),J=Q.exports,ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e.writePreview?a("div",{staticClass:"panelRow"},[a("div",[e._v("可写模版:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择模版",disabled:e.readOnly,value:e.model.writeTpls,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("writeTpls",t)}}},[e._l(e.templatesBase,(function(t,n){return[-1!==e.templates.indexOf(t.id)?a("el-option",{key:n,attrs:{label:t.name,value:t.id}}):e._e()]}))],2)],1):e._e(),e._v(" "),e.readonlyPreview?a("div",{staticClass:"panelRow"},[a("div",[e._v("只读模版:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择模版",disabled:e.readOnly,value:e.model.readonlyTpls,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("readonlyTpls",t)}}},[e._l(e.templatesBase,(function(t,n){return[-1!==e.templates.indexOf(t.id)?a("el-option",{key:n,attrs:{label:t.name,value:t.id}}):e._e()]}))],2)],1):e._e(),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[e._v("隐藏模版:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择模版",disabled:e.readOnly,value:e.model.hideTpls,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("hideTpls",t)}}},[e._l(e.templatesBase,(function(t,n){return[-1!==e.templates.indexOf(t.id)?a("el-option",{key:n,attrs:{label:t.name,value:t.id}}):e._e()]}))],2)],1)])},te=[],ae={inject:["i18n"],props:{model:{type:Object,default:function(){return{}}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1},templates:{type:Array,default:function(){return[]}},templatesBase:{type:Array,default:function(){return[]}},writePreview:{type:Boolean,default:!0},readonlyPreview:{type:Boolean,default:!0}}},ne=ae,ie=Object(j["a"])(ne,ee,te,!1,null,null,null),oe=ie.exports,se={inject:["i18n"],components:{DefaultDetail:J,NodeDetail:oe},props:{model:{type:Object,default:function(){return{}}},users:{type:Array,default:function(){return[]}},groups:{type:Array,default:function(){return[]}},departments:{type:Array,default:function(){return[]}},tasks:{type:Array,default:function(){return[]}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1},templates:{type:Array,default:function(){return[]}},templatesBase:{type:Array,default:function(){return[]}}},data:function(){return{variableOptions:[{value:1,label:"创建者"},{value:2,label:"创建者负责人"}]}},methods:{getPersons:function(e){(void 0===e||null===e||e.length<=1)&&(this.onChange("activeOrder",!1),this.onChange("isCounterSign",!1))}}},re=se,le=Object(j["a"])(re,Z,W,!1,null,null,null),ce=le.exports,de=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{"data-clazz":e.model.clazz}},[a("div",{staticClass:"panelTitle"},[e._v(e._s(e.i18n["scriptTask"]))]),e._v(" "),a("div",{staticClass:"panelBody"},[a("DefaultDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[e._v("类型:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择任务类型",disabled:e.readOnly,value:e.model.taskType},on:{change:function(t){return e.onChange("taskType",t)}}},[a("el-option",{attrs:{label:"任务",value:"task"}}),e._v(" "),a("el-option",{attrs:{label:"脚本",value:"script"}})],1)],1),e._v(" "),"script"===e.model.taskType?a("div",{staticClass:"panelRow"},[a("div",[e._v(e._s(e.i18n["scriptTask.script"])+":")]),e._v(" "),a("el-input",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"输入脚本",type:"textarea",rows:4,disabled:e.readOnly,value:e.model.script},on:{input:function(t){e.onChange("script",t)}}})],1):e._e(),e._v(" "),"task"===e.model.taskType?a("div",{staticClass:"panelRow"},[a("div",[e._v("任务:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择任务",disabled:e.readOnly,value:e.model.task,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("task",t)}}},e._l(e.tasks,(function(e,t){return a("el-option",{key:t,attrs:{label:e.name,value:e.full_name}})})),1)],1):e._e()],1)])},ue=[],he={inject:["i18n"],components:{DefaultDetail:J},props:{model:{type:Object,default:function(){return{}}},onChange:{type:Function,default:function(){}},tasks:{type:Array,default:function(){return[]}},readOnly:{type:Boolean,default:!1}}},pe=he,ge=Object(j["a"])(pe,de,ue,!1,null,null,null),me=ge.exports,fe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{"data-clazz":e.model.clazz}},[a("div",{staticClass:"panelTitle"},[e._v(e._s(e.i18n["handleNode"]))]),e._v(" "),a("div",{staticClass:"panelBody"},[a("DefaultDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[e._v("之后任务:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择任务",disabled:e.readOnly,value:e.model.task,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("task",t)}}},e._l(e.tasks,(function(e,t){return a("el-option",{key:t,attrs:{label:e.name,value:e.full_name}})})),1)],1),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["handleNode.assignType"])+":")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:e.i18n["handleNode.assignType.placeholder"],value:e.model.assignType,disabled:e.readOnly},on:{change:function(t){e.onChange("assignValue",[]),e.onChange("assignType",t)}}},[a("el-option",{key:"person",attrs:{value:"person",label:e.i18n["handleNode.assignType.person"]}}),e._v(" "),a("el-option",{key:"variable",attrs:{value:"variable",label:e.i18n["handleNode.assignType.variable"]}})],1)],1),e._v(" "),"person"===e.model.assignType?a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["handleNode.assignType.person.title"])+":")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:e.i18n["handleNode.assignType.person.placeholder"],disabled:e.readOnly,value:e.model.assignValue,multiple:!0,filterable:!0},on:{change:function(t){e.onChange("assignValue",t),e.getPersons(t)}}},e._l(e.users,(function(e){return a("el-option",{key:e.userId,attrs:{label:""===e.nickName?e.username:e.nickName,value:e.userId}})})),1)],1):"department"===e.model.assignType?a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["handleNode.assignType.department.title"])+":")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:e.i18n["handleNode.assignType.department.placeholder"],value:e.model.assignValue,disabled:e.readOnly,multiple:!0,filterable:!0},on:{change:function(t){e.onChange("assignValue",t),e.getPersons(t)}}},e._l(e.departments,(function(e){return a("el-option",{key:e.id,attrs:{label:""===e.name?e.nickname:e.name,value:e.id}})})),1)],1):"variable"===e.model.assignType?a("div",{staticClass:"panelRow"},[a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" "+e._s(e.i18n["handleNode.assignType.variable.title"])+":")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:e.i18n["handleNode.assignType.variable.placeholder"],disabled:e.readOnly,multiple:!0,filterable:!0},on:{change:function(t){e.onChange("assignValue",t),e.getPersons(t)}},model:{value:e.model.assignValue,callback:function(t){e.$set(e.model,"assignValue",e._n(t))},expression:"model.assignValue"}},e._l(e.variableOptions,(function(e,t){return a("el-option",{key:t,attrs:{label:e.label,value:e.value}})})),1)],1):e._e(),e._v(" "),a("div",{staticClass:"panelRow"},[a("el-checkbox",{attrs:{disabled:void 0===e.model.assignValue||null===e.model.assignValue||e.model.assignValue.length<=1||e.model.activeOrder||e.readOnly,value:!!e.model.isCounterSign},on:{change:function(t){return e.onChange("isCounterSign",t)}}},[e._v(e._s(e.i18n["handleNode.counterSign"]))]),e._v(" "),a("el-checkbox",{attrs:{disabled:void 0===e.model.assignValue||null===e.model.assignValue||e.model.assignValue.length<=1||e.model.isCounterSign||e.readOnly,value:!!e.model.activeOrder},on:{change:function(t){return e.onChange("activeOrder",t)}}},[e._v(e._s(e.i18n["handleNode.activeOrder"]))])],1),e._v(" "),a("NodeDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,templates:e.templates,"templates-base":e.templatesBase,"readonly-preview":!1}})],1)])},ve=[],ye={inject:["i18n"],components:{DefaultDetail:J,NodeDetail:oe},props:{model:{type:Object,default:function(){return{}}},users:{type:Array,default:function(){return[]}},groups:{type:Array,default:function(){return[]}},departments:{type:Array,default:function(){return[]}},tasks:{type:Array,default:function(){return[]}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1},templates:{type:Array,default:function(){return[]}},templatesBase:{type:Array,default:function(){return[]}}},data:function(){return{variableOptions:[{value:1,label:"创建者"},{value:2,label:"创建者负责人"}]}},methods:{getPersons:function(e){(void 0===e||null===e||e.length<=1)&&(this.onChange("activeOrder",!1),this.onChange("isCounterSign",!1))}}},be=ye,xe=Object(j["a"])(be,fe,ve,!1,null,null,null),ke=xe.exports,we=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{"data-clazz":e.model.clazz}},[a("div",{staticClass:"panelTitle"},[e._v(e._s("exclusiveGateway"===e.model.clazz||"gateway"===e.model.clazz?e.i18n["exclusiveGateway"]:"parallelGateway"===e.model.clazz?e.i18n["parallelGateway"]:e.i18n["inclusiveGateway"]))]),e._v(" "),a("div",{staticClass:"panelBody"},[a("DefaultDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}})],1)])},_e=[],Ce={inject:["i18n"],components:{DefaultDetail:J},props:{model:{type:Object,default:function(){return{}}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1}}},Se=Ce,Te=Object(j["a"])(Se,we,_e,!1,null,null,null),De=Te.exports,Ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{"data-clazz":e.model.clazz}},[a("div",{staticClass:"panelTitle"},[e._v(e._s(e.i18n["startEvent"]))]),e._v(" "),a("div",{staticClass:"panelBody"},[a("DefaultDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[e._v("之后任务:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择任务",disabled:e.readOnly,value:e.model.task,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("task",t)}}},e._l(e.tasks,(function(e,t){return a("el-option",{key:t,attrs:{label:e.name,value:e.full_name}})})),1)],1),e._v(" "),a("NodeDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,templates:e.templates,"templates-base":e.templatesBase,"write-preview":!1}})],1)])},Ae=[],Oe={inject:["i18n"],components:{DefaultDetail:J,NodeDetail:oe},props:{model:{type:Object,default:function(){return{}}},tasks:{type:Array,default:function(){return[]}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1},templates:{type:Array,default:function(){return[]}},templatesBase:{type:Array,default:function(){return[]}}}},ze=Oe,Be=Object(j["a"])(ze,Ee,Ae,!1,null,null,null),Fe=Be.exports,Ne=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{"data-clazz":e.model.clazz}},[a("div",{staticClass:"panelTitle"},[e._v(e._s(e.i18n["endEvent"]))]),e._v(" "),a("div",{staticClass:"panelBody"},[a("DefaultDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[e._v("之后任务:")]),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择任务",disabled:e.readOnly,value:e.model.task,multiple:!0,filterable:!0},on:{change:function(t){return e.onChange("task",t)}}},e._l(e.tasks,(function(e,t){return a("el-option",{key:t,attrs:{label:e.name,value:e.full_name}})})),1)],1),e._v(" "),a("NodeDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly,templates:e.templates,"templates-base":e.templatesBase,"write-preview":!1,"readonly-preview":!1}})],1)])},je=[],Pe={inject:["i18n"],components:{DefaultDetail:J,NodeDetail:oe},props:{model:{type:Object,default:function(){return{}}},tasks:{type:Array,default:function(){return[]}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1},templates:{type:Array,default:function(){return[]}},templatesBase:{type:Array,default:function(){return[]}}}},Me=Pe,Ie=Object(j["a"])(Me,Ne,je,!1,null,null,null),Le=Ie.exports,Xe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{"data-clazz":e.model.clazz}},[a("div",{staticClass:"panelTitle"},[e._v(e._s(e.i18n["sequenceFlow"]))]),e._v(" "),a("div",{staticClass:"panelBody"},[a("DefaultDetail",{attrs:{model:e.model,"on-change":e.onChange,"read-only":e.readOnly}}),e._v(" "),a("div",{staticClass:"panelRow"},[e._m(0),e._v(" "),a("el-select",{staticStyle:{width:"90%","font-size":"12px"},attrs:{placeholder:"选择流转属性",disabled:e.readOnly,value:e.model.flowProperties},on:{change:function(t){return e.onChange("flowProperties",t)}}},[a("el-option",{attrs:{label:"同意",value:"1"}}),e._v(" "),a("el-option",{attrs:{label:"拒绝",value:"0"}}),e._v(" "),a("el-option",{attrs:{label:"其他",value:"2"}})],1)],1),e._v(" "),a("div",{staticClass:"panelRow"},[a("div",[e._v(e._s(e.i18n["sequenceFlow.expression"])+":")]),e._v(" "),a("el-input",{staticStyle:{width:"90%","font-size":"12px"},attrs:{type:"textarea",rows:4,disabled:e.readOnly,value:e.model.conditionExpression},on:{input:function(t){e.onChange("conditionExpression",t)}}})],1)],1)])},Ve=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("span",{staticStyle:{color:"red"}},[e._v("*")]),e._v(" 属性:")])}],Ye={inject:["i18n"],components:{DefaultDetail:J},props:{model:{type:Object,default:function(){return{}}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1}}},Re=Ye,Ge=Object(j["a"])(Re,Xe,Ve,!1,null,null,null),qe=Ge.exports,Ze={inject:["i18n"],components:{UserTaskDetail:ce,ScriptTaskDetail:me,HandleNodeDetail:ke,GatewayDetail:De,StartEventDetail:Fe,EndEventDetail:Le,FlowDetail:qe},props:{height:{type:Number,default:800},model:{type:Object,default:function(){return{}}},signalDefs:{type:Array,default:function(){return[]}},messageDefs:{type:Array,default:function(){return[]}},onChange:{type:Function,default:function(){}},readOnly:{type:Boolean,default:!1},users:{type:Array,default:function(){return[]}},groups:{type:Array,default:function(){return[]}},departments:{type:Array,default:function(){return[]}},tasks:{type:Array,default:function(){return[]}},templates:{type:Array,default:function(){return[]}},templatesBase:{type:Array,default:function(){return[]}}}},We=Ze,$e=(a("2463"),Object(j["a"])(We,G,q,!1,null,null,null)),He=$e.exports,Ue={label:"Label",hideIcon:"Hide Icon",userTask:"User Task","userTask.assignType":"Assign Type","userTask.assignType.placeholder":"Select a assign type","userTask.assignType.person":"Person","userTask.assignType.person.title":"Assign Person","userTask.assignType.person.placeholder":"Select assign person","userTask.assignType.persongroup":"Person Group","userTask.assignType.persongroup.title":"Assign Person Group","userTask.assignType.persongroup.placeholder":"Select assign person group","userTask.assignType.custom":"Custom Java Class","userTask.assignType.custom.title":"Java Class Name","userTask.dueDate":"Due Date","userTask.dueDate.placeholder":"Select date","userTask.counterSign":"CounterSign",scriptTask:"Script Task","scriptTask.script":"Script",javaTask:"Java Task","javaTask.javaClass":"Java Class Name",mailTask:"Mail Task","mailTask.to":"To","mailTask.subject":"Subject","mailTask.content":"Content",receiveTask:"Receive Task","receiveTask.waitState":"Wait State","receiveTask.stateValue":"State Value",timerEvent:"Timer Event","timerEvent.cycle":"Cycle","timerEvent.cycle.placeholder":"Select time","timerEvent.duration":"Duration",messageEvent:"Message Event","messageEvent.message":"Message",signalEvent:"Signal Event","signalEvent.signal":"Signal",sequenceFlow:"Sequence Flow","sequenceFlow.expression":"Expression","sequenceFlow.seq":"Sequence","sequenceFlow.reverse":"Reverse",startEvent:"Start Event",endEvent:"End Event",start:"Start Events",end:"End Events",gateway:"Gateway",exclusiveGateway:"Exclusive Gateway",parallelGateway:"Parallel Gateway",inclusiveGateway:"Inclusive Gateway",task:"Task",catch:"Catching Event","tooltip.undo":"Undo","tooltip.redo":"Redo","tooltip.copy":"Copy","tooltip.paste":"Paste","tooltip.delete":"Delete","tooltip.zoomIn":"Zoom In","tooltip.zoomOut":"Zoom Out","tooltip.zoomReset":"Zoom Reset","tooltip.autoFit":"Auto Fit","tooltip.toFront":"To Front Layer","tooltip.toBack":"To Back Layer","tooltip.edit":"Edit",process:"Workflow","process.id":"Workflow ID","process.name":"Workflow Name","process.dataObjs":"Data Objects","process.signalDefs":"Signal Defs","process.messageDefs":"Message Defs","process.dataObjs.id":"Id","process.dataObjs.name":"Name","process.dataObjs.type":"Type","process.dataObjs.defaultValue":"DefaultValue","process.signalDef.scope":"Scope"},Ke={label:"标题",hideIcon:"隐藏图标",userTask:"审批节点","userTask.assignType":"指派类型","userTask.assignType.placeholder":"选择一个类型","userTask.assignType.person":"人员","userTask.assignType.person.title":"审批人","userTask.assignType.person.placeholder":"选择审批人","userTask.assignType.persongroup":"人员组","userTask.assignType.persongroup.title":"审批组","userTask.assignType.persongroup.placeholder":"选择审批组","userTask.assignType.custom":"自定义类","userTask.assignType.custom.title":"类名","userTask.assignType.department":"部门","userTask.assignType.department.title":"审批部门","userTask.assignType.department.placeholder":"选择审批部门","userTask.assignType.variable":"变量","userTask.assignType.variable.title":"审批变量","userTask.assignType.variable.placeholder":"选择审批变量","userTask.dueDate":"到期时间","userTask.dueDate.placeholder":"请选择日期","userTask.counterSign":"会签","userTask.activeOrder":"主动接单","userTask.endorsement":"加签",conventional:"常规节点",handleNode:"处理节点","handleNode.assignType":"指派类型","handleNode.assignType.placeholder":"选择一个类型","handleNode.assignType.person":"人员","handleNode.assignType.person.title":"审批人","handleNode.assignType.person.placeholder":"选择审批人","handleNode.assignType.persongroup":"人员组","handleNode.assignType.persongroup.title":"审批组","handleNode.assignType.persongroup.placeholder":"选择审批组","handleNode.assignType.custom":"自定义类","handleNode.assignType.custom.title":"类名","handleNode.assignType.department":"部门","handleNode.assignType.department.title":"审批部门","handleNode.assignType.department.placeholder":"选择审批部门","handleNode.assignType.variable":"变量","handleNode.assignType.variable.title":"审批变量","handleNode.assignType.variable.placeholder":"选择审批变量","handleNode.dueDate":"到期时间","handleNode.dueDate.placeholder":"请选择日期","handleNode.counterSign":"会签","handleNode.endorsement":"加签","handleNode.activeOrder":"主动接单",scriptTask:"任务节点","scriptTask.script":"脚本",javaTask:"自定义类节点","javaTask.javaClass":"类名",mailTask:"邮件节点","mailTask.to":"收件人","mailTask.subject":"标题","mailTask.content":"内容",receiveTask:"接收节点","receiveTask.waitState":"等待属性","receiveTask.stateValue":"等待值",timerEvent:"定时节点","timerEvent.cycle":"循环时间","timerEvent.cycle.placeholder":"请选择时间","timerEvent.duration":"持续时间",messageEvent:"消息节点","messageEvent.message":"消息名",signalEvent:"信号节点","signalEvent.signal":"信号名",sequenceFlow:"连接线","sequenceFlow.expression":"条件表达式","sequenceFlow.seq":"序号","sequenceFlow.reverse":"反向",startEvent:"开始节点",endEvent:"结束节点",start:"开始事件",end:"结束事件",gateway:"网关",exclusiveGateway:"排他网关",parallelGateway:"并行网关",inclusiveGateway:"包容网关",task:"活动",catch:"捕获事件","tooltip.undo":"撤销","tooltip.redo":"重复","tooltip.copy":"复制","tooltip.paste":"粘贴","tooltip.delete":"删除","tooltip.zoomIn":"缩小","tooltip.zoomOut":"放大","tooltip.zoomReset":"实际大小","tooltip.autoFit":"适应屏幕","tooltip.toFront":"移到上一层","tooltip.toBack":"移到下一层","tooltip.edit":"编辑",process:"流程","process.id":"流程标识","process.name":"流程名称","process.dataObjs":"数据对象","process.signalDefs":"信号定义","process.messageDefs":"消息定义","process.dataObjs.id":"Id","process.dataObjs.name":"名称","process.dataObjs.type":"类型","process.dataObjs.defaultValue":"默认值","process.signalDef.scope":"作用域"},Qe={en:Ue,zh:Ke},Je=a("75fc");function et(e){return Object(Je["a"])(Array(e)).map((function(e){return" "})).join("")}function tt(e,t){var a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=t.id||"flow",i=t.name||"flow",o="";t.dataObjs.forEach((function(e){o+="".concat(et(4),'\n')}));var s="";t.signalDefs.forEach((function(e){s+="".concat(et(2),'\n')}));var r="";t.messageDefs.forEach((function(e){r+="".concat(et(2),'\n')}));var l="",c="",d="".concat(et(2),'\n');d+=o,e.nodes.forEach((function(e){switch(l+="".concat(et(6),'\n')+"".concat(et(8),'\n')+"".concat(et(6),"\n"),e.clazz){case"start":d+="".concat(et(4),'\n');break;case"end":d+="".concat(et(4),'\n');break;case"userTask":var t="";e.assignValue&&e.assignValue.length>0&&("person"===e.assignType?t+='flowable:candidateUsers="'.concat(e.assignValue.join(","),'"'):"persongroup"===e.assignType&&(t+='flowable:candidateGroups="'.concat(e.assignValue.join(","),'"'))),d+="".concat(et(4),'\n");break;case"javaTask":var a="";e.javaClass&&(a='flowable:class="'.concat(e.javaClass,'"')),d+="".concat(et(4),'\n");break;case"scriptTask":var n="";e.script&&(n="".concat(et(6)," \ No newline at end of file From ea3769142ef12abf9dde7a88e3c2029cb3a8a192 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 28 Oct 2020 10:11:34 +0800 Subject: [PATCH 49/88] fix: fix bug. --- apis/public/file.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apis/public/file.go b/apis/public/file.go index b3b9e3c..f123682 100644 --- a/apis/public/file.go +++ b/apis/public/file.go @@ -33,6 +33,7 @@ func UploadFile(c *gin.Context) { saveFilePath string err error protocol string = "http" + requestHost string ) tag, _ = c.GetPostForm("type") fileType = c.DefaultQuery("file_type", "images") @@ -46,8 +47,15 @@ func UploadFile(c *gin.Context) { protocol = "https" } + requestHostList := strings.Split(c.Request.Host, ":") + if len(requestHostList) > 0 && requestHostList[1] == "80" { + requestHost = requestHostList[0] + } else { + requestHost = c.Request.Host + } + if viper.GetBool("settings.domain.getHost") { - urlPrefix = fmt.Sprintf("%s://%s/", protocol, c.Request.Host) + urlPrefix = fmt.Sprintf("%s://%s/", protocol, requestHost) } else { if strings.HasSuffix(viper.GetString("settings.domain.url"), "/") { urlPrefix = viper.GetString("settings.domain.url") From fea43a65ea31a5ab176f7d1de120a17cb15e4294 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 28 Oct 2020 10:51:35 +0800 Subject: [PATCH 50/88] fix: fix bug. --- apis/public/file.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apis/public/file.go b/apis/public/file.go index f123682..ad3321f 100644 --- a/apis/public/file.go +++ b/apis/public/file.go @@ -57,10 +57,9 @@ func UploadFile(c *gin.Context) { if viper.GetBool("settings.domain.getHost") { urlPrefix = fmt.Sprintf("%s://%s/", protocol, requestHost) } else { - if strings.HasSuffix(viper.GetString("settings.domain.url"), "/") { - urlPrefix = viper.GetString("settings.domain.url") - } else { - urlPrefix = fmt.Sprintf("%s://%s/", protocol, viper.GetString("settings.domain.url")) + urlPrefix = fmt.Sprintf("%s://%s", protocol, viper.GetString("settings.domain.url")) + if !strings.HasSuffix(viper.GetString("settings.domain.url"), "/") { + urlPrefix = urlPrefix + "/" } } From 0523e6777d7115432376aefeb96238589d62e610 Mon Sep 17 00:00:00 2001 From: aleiphoenix Date: Tue, 3 Nov 2020 12:36:34 +0800 Subject: [PATCH 51/88] use DialTLS instead of StartTLS on ldap.Conn --- pkg/ldap/connection.go | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/pkg/ldap/connection.go b/pkg/ldap/connection.go index f449225..36810b3 100644 --- a/pkg/ldap/connection.go +++ b/pkg/ldap/connection.go @@ -22,27 +22,20 @@ var conn *ldap.Conn func ldapConnection() (err error) { var ldapConn = fmt.Sprintf("%v:%v", viper.GetString("settings.ldap.host"), viper.GetString("settings.ldap.port")) - conn, err = ldap.Dial( - "tcp", - ldapConn, - ) + if viper.GetBool("settings.ldap.tls") { + tlsconf := &tls.Config{ + InsecureSkipVerify: true, + } + conn, err = ldap.DialTLS("tcp", ldapConn, tlsconf) + } else { + conn, err = ldap.Dial("tcp", ldapConn) + } if err != nil { err = errors.New(fmt.Sprintf("无法连接到ldap服务器,%v", err)) logger.Error(err) return } - if viper.GetBool("settings.ldap.tls") { - err = conn.StartTLS(&tls.Config{ - InsecureSkipVerify: true, - }) - if err != nil { - err = errors.New(fmt.Sprintf("升级到加密方式失败,%v", err)) - logger.Error(err) - return - } - } - //设置超时时间 conn.SetTimeout(5 * time.Second) From 7133e91552d04026f1a3261662f2adaeeb998604 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 4 Nov 2020 00:48:04 +0800 Subject: [PATCH 52/88] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BC=9A?= =?UTF-8?q?=E7=AD=BEbug=EF=BC=8Cfix=20#82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/handle.go | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/pkg/service/handle.go b/pkg/service/handle.go index f1297c1..139d4ab 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -101,6 +101,17 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { if err != nil { return } + + // 如果是跳转到结束节点,则需要修改节点状态 + if h.targetStateValue["clazz"] == "end" { + err = h.tx.Model(&process.WorkOrderInfo{}). + Where("id = ?", h.workOrderId). + Update("is_end", 1).Error + if err != nil { + h.tx.Rollback() + return + } + } } return } @@ -619,16 +630,8 @@ func (h *Handle) HandleWorkOrder( stateValue["processor"] = []int{} stateValue["process_method"] = "" h.updateValue["state"] = []map[string]interface{}{stateValue} - err = h.circulation() + err = h.commonProcessing(c) if err != nil { - h.tx.Rollback() - return - } - err = h.tx.Model(&process.WorkOrderInfo{}). - Where("id = ?", h.workOrderId). - Update("is_end", 1).Error - if err != nil { - h.tx.Rollback() return } } @@ -656,13 +659,17 @@ func (h *Handle) HandleWorkOrder( if writeTplId == t["tplId"] { // 可写 // 是否隐藏,隐藏的模版无法修改数据 if hideTplList, hideOK := h.stateValue["hideTpls"]; hideOK { - for _, hideTplId := range hideTplList.([]interface{}) { - if hideTplId == t["tplId"] { // 隐藏的 - updateStatus = false - break tplListTag - } else { - updateStatus = true + if hideTplList != nil && len(hideTplList.([]interface{})) > 0 { + for _, hideTplId := range hideTplList.([]interface{}) { + if hideTplId == t["tplId"] { // 隐藏的 + updateStatus = false + break tplListTag + } else { + updateStatus = true + } } + } else { + updateStatus = true } } else { updateStatus = true From 6b80768e5e51153d45dbe7f2182b563640c6bc46 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 4 Nov 2020 13:39:22 +0800 Subject: [PATCH 53/88] =?UTF-8?q?fix:=20=E5=AE=8C=E5=96=84ldap=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/settings.dev.yml | 4 ++-- pkg/ldap/connection.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/settings.dev.yml b/config/settings.dev.yml index d1cfa88..cda76c8 100644 --- a/config/settings.dev.yml +++ b/config/settings.dev.yml @@ -37,7 +37,7 @@ settings: anonymousquery: 0 basedn: dc=fdevops,dc=com bindpwd: 123456 - binduserdn: admin + binduserdn: cn=admin,dc=fdevops,dc=com host: localhost port: 389 tls: 0 @@ -53,7 +53,7 @@ settings: maxsize: 10240 path: ./logs/ferry.log redis: - url: redis://ferry123456@127.0.0.1:6379 + url: redis://127.0.0.1:6379 ssl: key: keystring pem: temp/pem.pem diff --git a/pkg/ldap/connection.go b/pkg/ldap/connection.go index 36810b3..27a3706 100644 --- a/pkg/ldap/connection.go +++ b/pkg/ldap/connection.go @@ -23,10 +23,10 @@ func ldapConnection() (err error) { var ldapConn = fmt.Sprintf("%v:%v", viper.GetString("settings.ldap.host"), viper.GetString("settings.ldap.port")) if viper.GetBool("settings.ldap.tls") { - tlsconf := &tls.Config{ + tlsConf := &tls.Config{ InsecureSkipVerify: true, } - conn, err = ldap.DialTLS("tcp", ldapConn, tlsconf) + conn, err = ldap.DialTLS("tcp", ldapConn, tlsConf) } else { conn, err = ldap.Dial("tcp", ldapConn) } From 7506bca2adf6fec9dbb47703157ce6cb4115efea Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 4 Nov 2020 16:25:24 +0800 Subject: [PATCH 54/88] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=96=87=E4=BB=B6=E6=97=B6=EF=BC=8Crequest=20host?= =?UTF-8?q?=E8=B6=8A=E7=95=8C=E9=97=AE=E9=A2=98=E3=80=82fix=20#86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/public/file.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apis/public/file.go b/apis/public/file.go index ad3321f..e8b0a43 100644 --- a/apis/public/file.go +++ b/apis/public/file.go @@ -48,7 +48,7 @@ func UploadFile(c *gin.Context) { } requestHostList := strings.Split(c.Request.Host, ":") - if len(requestHostList) > 0 && requestHostList[1] == "80" { + if len(requestHostList) > 1 && requestHostList[1] == "80" { requestHost = requestHostList[0] } else { requestHost = c.Request.Host From 066432d538193bfd902dd836bfa55faf384fb70f Mon Sep 17 00:00:00 2001 From: wei <503945930@qq.com> Date: Thu, 5 Nov 2020 11:25:07 +0800 Subject: [PATCH 55/88] Update go.mod update gopsutil v3.20.10+incompatible --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 9266531..99a5042 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.0 github.com/satori/go.uuid v1.2.0 - github.com/shirou/gopsutil v2.20.3+incompatible + github.com/shirou/gopsutil v3.20.10+incompatible github.com/spf13/cobra v1.0.0 github.com/spf13/viper v1.6.2 github.com/swaggo/gin-swagger v1.2.0 From 7bdcd9a79f78efee41d9673a97e1bf14a8c987c6 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 5 Nov 2020 16:52:21 +0800 Subject: [PATCH 56/88] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=9B=E5=BB=BA=E7=9A=84=E6=96=87=E4=BB=B6=E6=9D=83?= =?UTF-8?q?=E9=99=90=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/task.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apis/process/task.go b/apis/process/task.go index 07ab537..3dd3b03 100644 --- a/apis/process/task.go +++ b/apis/process/task.go @@ -129,7 +129,7 @@ func CreateTask(c *gin.Context) { fileName = fileName + ".sh" } - err = ioutil.WriteFile(fileName, []byte(taskValue.Content), 0666) + err = ioutil.WriteFile(fileName, []byte(taskValue.Content), 0755) if err != nil { app.Error(c, -1, err, fmt.Sprintf("创建任务脚本失败: %v", err.Error())) return From fd0661dd8d21b0401e8f76a005f0699d835c1d8c Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 11 Nov 2020 08:54:47 +0800 Subject: [PATCH 57/88] feat: add Dockerfile. --- Dockerfile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..76ecb18 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM golang:1.14 + +MAINTAINER lanyulei "fdevops@163.com" + +WORKDIR /opt/ferry + +COPY . . + +ENV GOPROXY="https://goproxy.cn" + +RUN go mod download +RUN go build -o ferry . +RUN ./ferry init -c=/opt/ferry/config/settings.yml + +EXPOSE 8002 + +CMD ["./ferry server -c=/opt/ferry/config/settings.yml"] \ No newline at end of file From 3f3db768e752c0a2b90cec7a89670f0991f5d446 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Wed, 11 Nov 2020 17:26:39 +0800 Subject: [PATCH 58/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0docker-compose.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- Dockerfile | 5 +- docker-compose.yml | 55 ++ docker/mysql/config/my.cnf | 36 + docker/mysql/init_sql/init.sql | 1 + docker/redis/config/redis.conf | 1373 ++++++++++++++++++++++++++++++++ 6 files changed, 1469 insertions(+), 5 deletions(-) create mode 100644 docker-compose.yml create mode 100644 docker/mysql/config/my.cnf create mode 100644 docker/mysql/init_sql/init.sql create mode 100644 docker/redis/config/redis.conf diff --git a/.gitignore b/.gitignore index 1a3ca58..8b3ade6 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ temp/ vendor tmp/ config/settings.dev.yml -logs \ No newline at end of file +logs +mysql/data +redis/data \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 76ecb18..8c7c1af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,8 +10,5 @@ ENV GOPROXY="https://goproxy.cn" RUN go mod download RUN go build -o ferry . -RUN ./ferry init -c=/opt/ferry/config/settings.yml -EXPOSE 8002 - -CMD ["./ferry server -c=/opt/ferry/config/settings.yml"] \ No newline at end of file +EXPOSE 8002 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8e758c2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,55 @@ +version: "3" +services: + ferry: + image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.0 + container_name: ferry + depends_on: + - db + - redis + links: + - db:ferry_mysql + - redis:ferry_redis + ports: + - 8002:8002 + volumes: + - ./config:/opt/ferry/config + - ./static:/opt/ferry/static + - ./template:/opt/ferry/template + - ./logs:/opt/ferry/logs + environment: + - TZ=Asia/Shanghai + restart: always + command: ./ferry server -c=/opt/ferry/config/settings.yml + + db: + hostname: mysql + container_name: ferry_mysql + image: mysql:5.7.31 + restart: always + environment: + - TZ=Asia/Shanghai + - MYSQL_ROOT_PASSWORD=123456 + volumes: + - ./docker/mysql/data:/var/lib/mysql/data # 映射数据库保存目录到宿主机,防止数据丢失 + - ./docker/mysql/config/my.cnf:/etc/mysql/my.cnf # 映射数据库配置文件 + - ./docker/mysql/init_sql:/docker-entrypoint-initdb.d + ports: + - 13306:3306 + command: [ + '--character-set-server=utf8mb4', + '--collation-server=utf8mb4_unicode_ci' + ] + + redis: + hostname: redis + image: redis:5.0.4 + container_name: ferry_redis + restart: always + command: redis-server /etc/redis.conf # 启动redis命令 + environment: + - TZ=Asia/Shanghai + volumes: + - ./redis/data:/var/lib/redis/data + - ./redis/config/redis.conf:/etc/redis.conf + ports: + - 16379:6379 \ No newline at end of file diff --git a/docker/mysql/config/my.cnf b/docker/mysql/config/my.cnf new file mode 100644 index 0000000..8a6ac0b --- /dev/null +++ b/docker/mysql/config/my.cnf @@ -0,0 +1,36 @@ +[client] +port = 3306 +socket = /var/lib/mysql/data/mysql.sock +[mysqld] +# 针对5.7版本执行group by字句出错问题解决 +sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' +# 一般配置选项 +basedir = /var/lib/mysql +datadir = /var/lib/mysql/data +port = 3306 +socket = /var/lib/mysql/data/mysql.sock +lc-messages-dir = /usr/share/mysql # 务必配置此项,否则执行sql出错时,只能显示错误代码而不显示具体错误消息 +character-set-server=utf8 +back_log = 300 +max_connections = 3000 +max_connect_errors = 50 +table_open_cache = 4096 +max_allowed_packet = 32M +#binlog_cache_size = 4M +max_heap_table_size = 128M +read_rnd_buffer_size = 16M +sort_buffer_size = 16M +join_buffer_size = 16M +thread_cache_size = 16 +query_cache_size = 64M +query_cache_limit = 4M +ft_min_word_len = 8 +thread_stack = 512K +transaction_isolation = REPEATABLE-READ +tmp_table_size = 64M +#log-bin=mysql-bin +long_query_time = 6 +server_id=1 +innodb_buffer_pool_size = 256M +innodb_thread_concurrency = 16 +innodb_log_buffer_size = 16M \ No newline at end of file diff --git a/docker/mysql/init_sql/init.sql b/docker/mysql/init_sql/init.sql new file mode 100644 index 0000000..f78aaa1 --- /dev/null +++ b/docker/mysql/init_sql/init.sql @@ -0,0 +1 @@ +create database if not exists ferry; \ No newline at end of file diff --git a/docker/redis/config/redis.conf b/docker/redis/config/redis.conf new file mode 100644 index 0000000..a643358 --- /dev/null +++ b/docker/redis/config/redis.conf @@ -0,0 +1,1373 @@ +# Redis configuration file example. +# +# Note that in order to read the configuration file, Redis must be +# started with the file path as first argument: +# +# ./redis-server /path/to/redis.conf + +# Note on units: when memory size is needed, it is possible to specify +# it in the usual form of 1k 5GB 4M and so forth: +# +# 1k => 1000 bytes +# 1kb => 1024 bytes +# 1m => 1000000 bytes +# 1mb => 1024*1024 bytes +# 1g => 1000000000 bytes +# 1gb => 1024*1024*1024 bytes +# +# units are case insensitive so 1GB 1Gb 1gB are all the same. + +################################## INCLUDES ################################### + +# Include one or more other config files here. This is useful if you +# have a standard template that goes to all Redis servers but also need +# to customize a few per-server settings. Include files can include +# other files, so use this wisely. +# +# Notice option "include" won't be rewritten by command "CONFIG REWRITE" +# from admin or Redis Sentinel. Since Redis always uses the last processed +# line as value of a configuration directive, you'd better put includes +# at the beginning of this file to avoid overwriting config change at runtime. +# +# If instead you are interested in using includes to override configuration +# options, it is better to use include as the last line. +# +# include /path/to/local.conf +# include /path/to/other.conf + +################################## MODULES ##################################### + +# Load modules at startup. If the server is not able to load modules +# it will abort. It is possible to use multiple loadmodule directives. +# +# loadmodule /path/to/my_module.so +# loadmodule /path/to/other_module.so + +################################## NETWORK ##################################### + +# By default, if no "bind" configuration directive is specified, Redis listens +# for connections from all the network interfaces available on the server. +# It is possible to listen to just one or multiple selected interfaces using +# the "bind" configuration directive, followed by one or more IP addresses. +# +# Examples: +# +# bind 192.168.1.100 10.0.0.1 +# bind 127.0.0.1 ::1 +# +# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the +# internet, binding to all the interfaces is dangerous and will expose the +# instance to everybody on the internet. So by default we uncomment the +# following bind directive, that will force Redis to listen only into +# the IPv4 loopback interface address (this means Redis will be able to +# accept connections only from clients running into the same computer it +# is running). +# +# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES +# JUST COMMENT THE FOLLOWING LINE. +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +bind 0.0.0.0 +//bind 127.0.0.1 ::1 + +# Protected mode is a layer of security protection, in order to avoid that +# Redis instances left open on the internet are accessed and exploited. +# +# When protected mode is on and if: +# +# 1) The server is not binding explicitly to a set of addresses using the +# "bind" directive. +# 2) No password is configured. +# +# The server only accepts connections from clients connecting from the +# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain +# sockets. +# +# By default protected mode is enabled. You should disable it only if +# you are sure you want clients from other hosts to connect to Redis +# even if no authentication is configured, nor a specific set of interfaces +# are explicitly listed using the "bind" directive. +protected-mode yes + +# Accept connections on the specified port, default is 6379 (IANA #815344). +# If port 0 is specified Redis will not listen on a TCP socket. +port 6379 + +# TCP listen() backlog. +# +# In high requests-per-second environments you need an high backlog in order +# to avoid slow clients connections issues. Note that the Linux kernel +# will silently truncate it to the value of /proc/sys/net/core/somaxconn so +# make sure to raise both the value of somaxconn and tcp_max_syn_backlog +# in order to get the desired effect. +tcp-backlog 511 + +# Unix socket. +# +# Specify the path for the Unix socket that will be used to listen for +# incoming connections. There is no default, so Redis will not listen +# on a unix socket when not specified. +# +# unixsocket /tmp/redis.sock +# unixsocketperm 700 + +# Close the connection after a client is idle for N seconds (0 to disable) +timeout 0 + +# TCP keepalive. +# +# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence +# of communication. This is useful for two reasons: +# +# 1) Detect dead peers. +# 2) Take the connection alive from the point of view of network +# equipment in the middle. +# +# On Linux, the specified value (in seconds) is the period used to send ACKs. +# Note that to close the connection the double of the time is needed. +# On other kernels the period depends on the kernel configuration. +# +# A reasonable value for this option is 300 seconds, which is the new +# Redis default starting with Redis 3.2.1. +tcp-keepalive 300 + +################################# GENERAL ##################################### + +# By default Redis does not run as a daemon. Use 'yes' if you need it. +# Note that Redis will write a pid file in /usr/local/var/run/redis.pid when daemonized. +daemonize yes + +# If you run Redis from upstart or systemd, Redis can interact with your +# supervision tree. Options: +# supervised no - no supervision interaction +# supervised upstart - signal upstart by putting Redis into SIGSTOP mode +# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET +# supervised auto - detect upstart or systemd method based on +# UPSTART_JOB or NOTIFY_SOCKET environment variables +# Note: these supervision methods only signal "process is ready." +# They do not enable continuous liveness pings back to your supervisor. +supervised no + +# If a pid file is specified, Redis writes it where specified at startup +# and removes it at exit. +# +# When the server runs non daemonized, no pid file is created if none is +# specified in the configuration. When the server is daemonized, the pid file +# is used even if not specified, defaulting to "/usr/local/var/run/redis.pid". +# +# Creating a pid file is best effort: if Redis is not able to create it +# nothing bad happens, the server will start and run normally. +pidfile /var/run/redis_6379.pid + +# Specify the server verbosity level. +# This can be one of: +# debug (a lot of information, useful for development/testing) +# verbose (many rarely useful info, but not a mess like the debug level) +# notice (moderately verbose, what you want in production probably) +# warning (only very important / critical messages are logged) +loglevel notice + +# Specify the log file name. Also the empty string can be used to force +# Redis to log on the standard output. Note that if you use standard +# output for logging but daemonize, logs will be sent to /dev/null +logfile "" + +# To enable logging to the system logger, just set 'syslog-enabled' to yes, +# and optionally update the other syslog parameters to suit your needs. +# syslog-enabled no + +# Specify the syslog identity. +# syslog-ident redis + +# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. +# syslog-facility local0 + +# Set the number of databases. The default database is DB 0, you can select +# a different one on a per-connection basis using SELECT where +# dbid is a number between 0 and 'databases'-1 +databases 16 + +# By default Redis shows an ASCII art logo only when started to log to the +# standard output and if the standard output is a TTY. Basically this means +# that normally a logo is displayed only in interactive sessions. +# +# However it is possible to force the pre-4.0 behavior and always show a +# ASCII art logo in startup logs by setting the following option to yes. +always-show-logo yes + +################################ SNAPSHOTTING ################################ +# +# Save the DB on disk: +# +# save +# +# Will save the DB if both the given number of seconds and the given +# number of write operations against the DB occurred. +# +# In the example below the behaviour will be to save: +# after 900 sec (15 min) if at least 1 key changed +# after 300 sec (5 min) if at least 10 keys changed +# after 60 sec if at least 10000 keys changed +# +# Note: you can disable saving completely by commenting out all "save" lines. +# +# It is also possible to remove all the previously configured save +# points by adding a save directive with a single empty string argument +# like in the following example: +# +# save "" + +save 900 1 +save 300 10 +save 60 10000 + +# By default Redis will stop accepting writes if RDB snapshots are enabled +# (at least one save point) and the latest background save failed. +# This will make the user aware (in a hard way) that data is not persisting +# on disk properly, otherwise chances are that no one will notice and some +# disaster will happen. +# +# If the background saving process will start working again Redis will +# automatically allow writes again. +# +# However if you have setup your proper monitoring of the Redis server +# and persistence, you may want to disable this feature so that Redis will +# continue to work as usual even if there are problems with disk, +# permissions, and so forth. +stop-writes-on-bgsave-error yes + +# Compress string objects using LZF when dump .rdb databases? +# For default that's set to 'yes' as it's almost always a win. +# If you want to save some CPU in the saving child set it to 'no' but +# the dataset will likely be bigger if you have compressible values or keys. +rdbcompression yes + +# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. +# This makes the format more resistant to corruption but there is a performance +# hit to pay (around 10%) when saving and loading RDB files, so you can disable it +# for maximum performances. +# +# RDB files created with checksum disabled have a checksum of zero that will +# tell the loading code to skip the check. +rdbchecksum yes + +# The filename where to dump the DB +dbfilename dump.rdb + +# The working directory. +# +# The DB will be written inside this directory, with the filename specified +# above using the 'dbfilename' configuration directive. +# +# The Append Only File will also be created inside this directory. +# +# Note that you must specify a directory here, not a file name. +dir /usr/local/var/db/redis/ + +################################# REPLICATION ################################# + +# Master-Replica replication. Use replicaof to make a Redis instance a copy of +# another Redis server. A few things to understand ASAP about Redis replication. +# +# +------------------+ +---------------+ +# | Master | ---> | Replica | +# | (receive writes) | | (exact copy) | +# +------------------+ +---------------+ +# +# 1) Redis replication is asynchronous, but you can configure a master to +# stop accepting writes if it appears to be not connected with at least +# a given number of replicas. +# 2) Redis replicas are able to perform a partial resynchronization with the +# master if the replication link is lost for a relatively small amount of +# time. You may want to configure the replication backlog size (see the next +# sections of this file) with a sensible value depending on your needs. +# 3) Replication is automatic and does not need user intervention. After a +# network partition replicas automatically try to reconnect to masters +# and resynchronize with them. +# +# replicaof + +# If the master is password protected (using the "requirepass" configuration +# directive below) it is possible to tell the replica to authenticate before +# starting the replication synchronization process, otherwise the master will +# refuse the replica request. +# +# masterauth + +# When a replica loses its connection with the master, or when the replication +# is still in progress, the replica can act in two different ways: +# +# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will +# still reply to client requests, possibly with out of date data, or the +# data set may just be empty if this is the first synchronization. +# +# 2) if replica-serve-stale-data is set to 'no' the replica will reply with +# an error "SYNC with master in progress" to all the kind of commands +# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, +# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, +# COMMAND, POST, HOST: and LATENCY. +# +replica-serve-stale-data yes + +# You can configure a replica instance to accept writes or not. Writing against +# a replica instance may be useful to store some ephemeral data (because data +# written on a replica will be easily deleted after resync with the master) but +# may also cause problems if clients are writing to it because of a +# misconfiguration. +# +# Since Redis 2.6 by default replicas are read-only. +# +# Note: read only replicas are not designed to be exposed to untrusted clients +# on the internet. It's just a protection layer against misuse of the instance. +# Still a read only replica exports by default all the administrative commands +# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve +# security of read only replicas using 'rename-command' to shadow all the +# administrative / dangerous commands. +replica-read-only yes + +# Replication SYNC strategy: disk or socket. +# +# ------------------------------------------------------- +# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY +# ------------------------------------------------------- +# +# New replicas and reconnecting replicas that are not able to continue the replication +# process just receiving differences, need to do what is called a "full +# synchronization". An RDB file is transmitted from the master to the replicas. +# The transmission can happen in two different ways: +# +# 1) Disk-backed: The Redis master creates a new process that writes the RDB +# file on disk. Later the file is transferred by the parent +# process to the replicas incrementally. +# 2) Diskless: The Redis master creates a new process that directly writes the +# RDB file to replica sockets, without touching the disk at all. +# +# With disk-backed replication, while the RDB file is generated, more replicas +# can be queued and served with the RDB file as soon as the current child producing +# the RDB file finishes its work. With diskless replication instead once +# the transfer starts, new replicas arriving will be queued and a new transfer +# will start when the current one terminates. +# +# When diskless replication is used, the master waits a configurable amount of +# time (in seconds) before starting the transfer in the hope that multiple replicas +# will arrive and the transfer can be parallelized. +# +# With slow disks and fast (large bandwidth) networks, diskless replication +# works better. +repl-diskless-sync no + +# When diskless replication is enabled, it is possible to configure the delay +# the server waits in order to spawn the child that transfers the RDB via socket +# to the replicas. +# +# This is important since once the transfer starts, it is not possible to serve +# new replicas arriving, that will be queued for the next RDB transfer, so the server +# waits a delay in order to let more replicas arrive. +# +# The delay is specified in seconds, and by default is 5 seconds. To disable +# it entirely just set it to 0 seconds and the transfer will start ASAP. +repl-diskless-sync-delay 5 + +# Replicas send PINGs to server in a predefined interval. It's possible to change +# this interval with the repl_ping_replica_period option. The default value is 10 +# seconds. +# +# repl-ping-replica-period 10 + +# The following option sets the replication timeout for: +# +# 1) Bulk transfer I/O during SYNC, from the point of view of replica. +# 2) Master timeout from the point of view of replicas (data, pings). +# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). +# +# It is important to make sure that this value is greater than the value +# specified for repl-ping-replica-period otherwise a timeout will be detected +# every time there is low traffic between the master and the replica. +# +# repl-timeout 60 + +# Disable TCP_NODELAY on the replica socket after SYNC? +# +# If you select "yes" Redis will use a smaller number of TCP packets and +# less bandwidth to send data to replicas. But this can add a delay for +# the data to appear on the replica side, up to 40 milliseconds with +# Linux kernels using a default configuration. +# +# If you select "no" the delay for data to appear on the replica side will +# be reduced but more bandwidth will be used for replication. +# +# By default we optimize for low latency, but in very high traffic conditions +# or when the master and replicas are many hops away, turning this to "yes" may +# be a good idea. +repl-disable-tcp-nodelay no + +# Set the replication backlog size. The backlog is a buffer that accumulates +# replica data when replicas are disconnected for some time, so that when a replica +# wants to reconnect again, often a full resync is not needed, but a partial +# resync is enough, just passing the portion of data the replica missed while +# disconnected. +# +# The bigger the replication backlog, the longer the time the replica can be +# disconnected and later be able to perform a partial resynchronization. +# +# The backlog is only allocated once there is at least a replica connected. +# +# repl-backlog-size 1mb + +# After a master has no longer connected replicas for some time, the backlog +# will be freed. The following option configures the amount of seconds that +# need to elapse, starting from the time the last replica disconnected, for +# the backlog buffer to be freed. +# +# Note that replicas never free the backlog for timeout, since they may be +# promoted to masters later, and should be able to correctly "partially +# resynchronize" with the replicas: hence they should always accumulate backlog. +# +# A value of 0 means to never release the backlog. +# +# repl-backlog-ttl 3600 + +# The replica priority is an integer number published by Redis in the INFO output. +# It is used by Redis Sentinel in order to select a replica to promote into a +# master if the master is no longer working correctly. +# +# A replica with a low priority number is considered better for promotion, so +# for instance if there are three replicas with priority 10, 100, 25 Sentinel will +# pick the one with priority 10, that is the lowest. +# +# However a special priority of 0 marks the replica as not able to perform the +# role of master, so a replica with priority of 0 will never be selected by +# Redis Sentinel for promotion. +# +# By default the priority is 100. +replica-priority 100 + +# It is possible for a master to stop accepting writes if there are less than +# N replicas connected, having a lag less or equal than M seconds. +# +# The N replicas need to be in "online" state. +# +# The lag in seconds, that must be <= the specified value, is calculated from +# the last ping received from the replica, that is usually sent every second. +# +# This option does not GUARANTEE that N replicas will accept the write, but +# will limit the window of exposure for lost writes in case not enough replicas +# are available, to the specified number of seconds. +# +# For example to require at least 3 replicas with a lag <= 10 seconds use: +# +# min-replicas-to-write 3 +# min-replicas-max-lag 10 +# +# Setting one or the other to 0 disables the feature. +# +# By default min-replicas-to-write is set to 0 (feature disabled) and +# min-replicas-max-lag is set to 10. + +# A Redis master is able to list the address and port of the attached +# replicas in different ways. For example the "INFO replication" section +# offers this information, which is used, among other tools, by +# Redis Sentinel in order to discover replica instances. +# Another place where this info is available is in the output of the +# "ROLE" command of a master. +# +# The listed IP and address normally reported by a replica is obtained +# in the following way: +# +# IP: The address is auto detected by checking the peer address +# of the socket used by the replica to connect with the master. +# +# Port: The port is communicated by the replica during the replication +# handshake, and is normally the port that the replica is using to +# listen for connections. +# +# However when port forwarding or Network Address Translation (NAT) is +# used, the replica may be actually reachable via different IP and port +# pairs. The following two options can be used by a replica in order to +# report to its master a specific set of IP and port, so that both INFO +# and ROLE will report those values. +# +# There is no need to use both the options if you need to override just +# the port or the IP address. +# +# replica-announce-ip 5.5.5.5 +# replica-announce-port 1234 + +################################## SECURITY ################################### + +# Require clients to issue AUTH before processing any other +# commands. This might be useful in environments in which you do not trust +# others with access to the host running redis-server. +# +# This should stay commented out for backward compatibility and because most +# people do not need auth (e.g. they run their own servers). +# +# Warning: since Redis is pretty fast an outside user can try up to +# 150k passwords per second against a good box. This means that you should +# use a very strong password otherwise it will be very easy to break. +# +# requirepass foobared + +# Command renaming. +# +# It is possible to change the name of dangerous commands in a shared +# environment. For instance the CONFIG command may be renamed into something +# hard to guess so that it will still be available for internal-use tools +# but not available for general clients. +# +# Example: +# +# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 +# +# It is also possible to completely kill a command by renaming it into +# an empty string: +# +# rename-command CONFIG "" +# +# Please note that changing the name of commands that are logged into the +# AOF file or transmitted to replicas may cause problems. + +################################### CLIENTS #################################### + +# Set the max number of connected clients at the same time. By default +# this limit is set to 10000 clients, however if the Redis server is not +# able to configure the process file limit to allow for the specified limit +# the max number of allowed clients is set to the current file limit +# minus 32 (as Redis reserves a few file descriptors for internal uses). +# +# Once the limit is reached Redis will close all the new connections sending +# an error 'max number of clients reached'. +# +# maxclients 10000 + +############################## MEMORY MANAGEMENT ################################ + +# Set a memory usage limit to the specified amount of bytes. +# When the memory limit is reached Redis will try to remove keys +# according to the eviction policy selected (see maxmemory-policy). +# +# If Redis can't remove keys according to the policy, or if the policy is +# set to 'noeviction', Redis will start to reply with errors to commands +# that would use more memory, like SET, LPUSH, and so on, and will continue +# to reply to read-only commands like GET. +# +# This option is usually useful when using Redis as an LRU or LFU cache, or to +# set a hard memory limit for an instance (using the 'noeviction' policy). +# +# WARNING: If you have replicas attached to an instance with maxmemory on, +# the size of the output buffers needed to feed the replicas are subtracted +# from the used memory count, so that network problems / resyncs will +# not trigger a loop where keys are evicted, and in turn the output +# buffer of replicas is full with DELs of keys evicted triggering the deletion +# of more keys, and so forth until the database is completely emptied. +# +# In short... if you have replicas attached it is suggested that you set a lower +# limit for maxmemory so that there is some free RAM on the system for replica +# output buffers (but this is not needed if the policy is 'noeviction'). +# +# maxmemory + +# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory +# is reached. You can select among five behaviors: +# +# volatile-lru -> Evict using approximated LRU among the keys with an expire set. +# allkeys-lru -> Evict any key using approximated LRU. +# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. +# allkeys-lfu -> Evict any key using approximated LFU. +# volatile-random -> Remove a random key among the ones with an expire set. +# allkeys-random -> Remove a random key, any key. +# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) +# noeviction -> Don't evict anything, just return an error on write operations. +# +# LRU means Least Recently Used +# LFU means Least Frequently Used +# +# Both LRU, LFU and volatile-ttl are implemented using approximated +# randomized algorithms. +# +# Note: with any of the above policies, Redis will return an error on write +# operations, when there are no suitable keys for eviction. +# +# At the date of writing these commands are: set setnx setex append +# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd +# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby +# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby +# getset mset msetnx exec sort +# +# The default is: +# +# maxmemory-policy noeviction + +# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated +# algorithms (in order to save memory), so you can tune it for speed or +# accuracy. For default Redis will check five keys and pick the one that was +# used less recently, you can change the sample size using the following +# configuration directive. +# +# The default of 5 produces good enough results. 10 Approximates very closely +# true LRU but costs more CPU. 3 is faster but not very accurate. +# +# maxmemory-samples 5 + +# Starting from Redis 5, by default a replica will ignore its maxmemory setting +# (unless it is promoted to master after a failover or manually). It means +# that the eviction of keys will be just handled by the master, sending the +# DEL commands to the replica as keys evict in the master side. +# +# This behavior ensures that masters and replicas stay consistent, and is usually +# what you want, however if your replica is writable, or you want the replica to have +# a different memory setting, and you are sure all the writes performed to the +# replica are idempotent, then you may change this default (but be sure to understand +# what you are doing). +# +# Note that since the replica by default does not evict, it may end using more +# memory than the one set via maxmemory (there are certain buffers that may +# be larger on the replica, or data structures may sometimes take more memory and so +# forth). So make sure you monitor your replicas and make sure they have enough +# memory to never hit a real out-of-memory condition before the master hits +# the configured maxmemory setting. +# +# replica-ignore-maxmemory yes + +############################# LAZY FREEING #################################### + +# Redis has two primitives to delete keys. One is called DEL and is a blocking +# deletion of the object. It means that the server stops processing new commands +# in order to reclaim all the memory associated with an object in a synchronous +# way. If the key deleted is associated with a small object, the time needed +# in order to execute the DEL command is very small and comparable to most other +# O(1) or O(log_N) commands in Redis. However if the key is associated with an +# aggregated value containing millions of elements, the server can block for +# a long time (even seconds) in order to complete the operation. +# +# For the above reasons Redis also offers non blocking deletion primitives +# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and +# FLUSHDB commands, in order to reclaim memory in background. Those commands +# are executed in constant time. Another thread will incrementally free the +# object in the background as fast as possible. +# +# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. +# It's up to the design of the application to understand when it is a good +# idea to use one or the other. However the Redis server sometimes has to +# delete keys or flush the whole database as a side effect of other operations. +# Specifically Redis deletes objects independently of a user call in the +# following scenarios: +# +# 1) On eviction, because of the maxmemory and maxmemory policy configurations, +# in order to make room for new data, without going over the specified +# memory limit. +# 2) Because of expire: when a key with an associated time to live (see the +# EXPIRE command) must be deleted from memory. +# 3) Because of a side effect of a command that stores data on a key that may +# already exist. For example the RENAME command may delete the old key +# content when it is replaced with another one. Similarly SUNIONSTORE +# or SORT with STORE option may delete existing keys. The SET command +# itself removes any old content of the specified key in order to replace +# it with the specified string. +# 4) During replication, when a replica performs a full resynchronization with +# its master, the content of the whole database is removed in order to +# load the RDB file just transferred. +# +# In all the above cases the default is to delete objects in a blocking way, +# like if DEL was called. However you can configure each case specifically +# in order to instead release memory in a non-blocking way like if UNLINK +# was called, using the following configuration directives: + +lazyfree-lazy-eviction no +lazyfree-lazy-expire no +lazyfree-lazy-server-del no +replica-lazy-flush no + +############################## APPEND ONLY MODE ############################### + +# By default Redis asynchronously dumps the dataset on disk. This mode is +# good enough in many applications, but an issue with the Redis process or +# a power outage may result into a few minutes of writes lost (depending on +# the configured save points). +# +# The Append Only File is an alternative persistence mode that provides +# much better durability. For instance using the default data fsync policy +# (see later in the config file) Redis can lose just one second of writes in a +# dramatic event like a server power outage, or a single write if something +# wrong with the Redis process itself happens, but the operating system is +# still running correctly. +# +# AOF and RDB persistence can be enabled at the same time without problems. +# If the AOF is enabled on startup Redis will load the AOF, that is the file +# with the better durability guarantees. +# +# Please check http://redis.io/topics/persistence for more information. + +appendonly no + +# The name of the append only file (default: "appendonly.aof") + +appendfilename "appendonly.aof" + +# The fsync() call tells the Operating System to actually write data on disk +# instead of waiting for more data in the output buffer. Some OS will really flush +# data on disk, some other OS will just try to do it ASAP. +# +# Redis supports three different modes: +# +# no: don't fsync, just let the OS flush the data when it wants. Faster. +# always: fsync after every write to the append only log. Slow, Safest. +# everysec: fsync only one time every second. Compromise. +# +# The default is "everysec", as that's usually the right compromise between +# speed and data safety. It's up to you to understand if you can relax this to +# "no" that will let the operating system flush the output buffer when +# it wants, for better performances (but if you can live with the idea of +# some data loss consider the default persistence mode that's snapshotting), +# or on the contrary, use "always" that's very slow but a bit safer than +# everysec. +# +# More details please check the following article: +# http://antirez.com/post/redis-persistence-demystified.html +# +# If unsure, use "everysec". + +# appendfsync always +appendfsync everysec +# appendfsync no + +# When the AOF fsync policy is set to always or everysec, and a background +# saving process (a background save or AOF log background rewriting) is +# performing a lot of I/O against the disk, in some Linux configurations +# Redis may block too long on the fsync() call. Note that there is no fix for +# this currently, as even performing fsync in a different thread will block +# our synchronous write(2) call. +# +# In order to mitigate this problem it's possible to use the following option +# that will prevent fsync() from being called in the main process while a +# BGSAVE or BGREWRITEAOF is in progress. +# +# This means that while another child is saving, the durability of Redis is +# the same as "appendfsync none". In practical terms, this means that it is +# possible to lose up to 30 seconds of log in the worst scenario (with the +# default Linux settings). +# +# If you have latency problems turn this to "yes". Otherwise leave it as +# "no" that is the safest pick from the point of view of durability. + +no-appendfsync-on-rewrite no + +# Automatic rewrite of the append only file. +# Redis is able to automatically rewrite the log file implicitly calling +# BGREWRITEAOF when the AOF log size grows by the specified percentage. +# +# This is how it works: Redis remembers the size of the AOF file after the +# latest rewrite (if no rewrite has happened since the restart, the size of +# the AOF at startup is used). +# +# This base size is compared to the current size. If the current size is +# bigger than the specified percentage, the rewrite is triggered. Also +# you need to specify a minimal size for the AOF file to be rewritten, this +# is useful to avoid rewriting the AOF file even if the percentage increase +# is reached but it is still pretty small. +# +# Specify a percentage of zero in order to disable the automatic AOF +# rewrite feature. + +auto-aof-rewrite-percentage 100 +auto-aof-rewrite-min-size 64mb + +# An AOF file may be found to be truncated at the end during the Redis +# startup process, when the AOF data gets loaded back into memory. +# This may happen when the system where Redis is running +# crashes, especially when an ext4 filesystem is mounted without the +# data=ordered option (however this can't happen when Redis itself +# crashes or aborts but the operating system still works correctly). +# +# Redis can either exit with an error when this happens, or load as much +# data as possible (the default now) and start if the AOF file is found +# to be truncated at the end. The following option controls this behavior. +# +# If aof-load-truncated is set to yes, a truncated AOF file is loaded and +# the Redis server starts emitting a log to inform the user of the event. +# Otherwise if the option is set to no, the server aborts with an error +# and refuses to start. When the option is set to no, the user requires +# to fix the AOF file using the "redis-check-aof" utility before to restart +# the server. +# +# Note that if the AOF file will be found to be corrupted in the middle +# the server will still exit with an error. This option only applies when +# Redis will try to read more data from the AOF file but not enough bytes +# will be found. +aof-load-truncated yes + +# When rewriting the AOF file, Redis is able to use an RDB preamble in the +# AOF file for faster rewrites and recoveries. When this option is turned +# on the rewritten AOF file is composed of two different stanzas: +# +# [RDB file][AOF tail] +# +# When loading Redis recognizes that the AOF file starts with the "REDIS" +# string and loads the prefixed RDB file, and continues loading the AOF +# tail. +aof-use-rdb-preamble yes + +################################ LUA SCRIPTING ############################### + +# Max execution time of a Lua script in milliseconds. +# +# If the maximum execution time is reached Redis will log that a script is +# still in execution after the maximum allowed time and will start to +# reply to queries with an error. +# +# When a long running script exceeds the maximum execution time only the +# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be +# used to stop a script that did not yet called write commands. The second +# is the only way to shut down the server in the case a write command was +# already issued by the script but the user doesn't want to wait for the natural +# termination of the script. +# +# Set it to 0 or a negative value for unlimited execution without warnings. +lua-time-limit 5000 + +################################ REDIS CLUSTER ############################### + +# Normal Redis instances can't be part of a Redis Cluster; only nodes that are +# started as cluster nodes can. In order to start a Redis instance as a +# cluster node enable the cluster support uncommenting the following: +# +# cluster-enabled yes + +# Every cluster node has a cluster configuration file. This file is not +# intended to be edited by hand. It is created and updated by Redis nodes. +# Every Redis Cluster node requires a different cluster configuration file. +# Make sure that instances running in the same system do not have +# overlapping cluster configuration file names. +# +# cluster-config-file nodes-6379.conf + +# Cluster node timeout is the amount of milliseconds a node must be unreachable +# for it to be considered in failure state. +# Most other internal time limits are multiple of the node timeout. +# +# cluster-node-timeout 15000 + +# A replica of a failing master will avoid to start a failover if its data +# looks too old. +# +# There is no simple way for a replica to actually have an exact measure of +# its "data age", so the following two checks are performed: +# +# 1) If there are multiple replicas able to failover, they exchange messages +# in order to try to give an advantage to the replica with the best +# replication offset (more data from the master processed). +# Replicas will try to get their rank by offset, and apply to the start +# of the failover a delay proportional to their rank. +# +# 2) Every single replica computes the time of the last interaction with +# its master. This can be the last ping or command received (if the master +# is still in the "connected" state), or the time that elapsed since the +# disconnection with the master (if the replication link is currently down). +# If the last interaction is too old, the replica will not try to failover +# at all. +# +# The point "2" can be tuned by user. Specifically a replica will not perform +# the failover if, since the last interaction with the master, the time +# elapsed is greater than: +# +# (node-timeout * replica-validity-factor) + repl-ping-replica-period +# +# So for example if node-timeout is 30 seconds, and the replica-validity-factor +# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the +# replica will not try to failover if it was not able to talk with the master +# for longer than 310 seconds. +# +# A large replica-validity-factor may allow replicas with too old data to failover +# a master, while a too small value may prevent the cluster from being able to +# elect a replica at all. +# +# For maximum availability, it is possible to set the replica-validity-factor +# to a value of 0, which means, that replicas will always try to failover the +# master regardless of the last time they interacted with the master. +# (However they'll always try to apply a delay proportional to their +# offset rank). +# +# Zero is the only value able to guarantee that when all the partitions heal +# the cluster will always be able to continue. +# +# cluster-replica-validity-factor 10 + +# Cluster replicas are able to migrate to orphaned masters, that are masters +# that are left without working replicas. This improves the cluster ability +# to resist to failures as otherwise an orphaned master can't be failed over +# in case of failure if it has no working replicas. +# +# Replicas migrate to orphaned masters only if there are still at least a +# given number of other working replicas for their old master. This number +# is the "migration barrier". A migration barrier of 1 means that a replica +# will migrate only if there is at least 1 other working replica for its master +# and so forth. It usually reflects the number of replicas you want for every +# master in your cluster. +# +# Default is 1 (replicas migrate only if their masters remain with at least +# one replica). To disable migration just set it to a very large value. +# A value of 0 can be set but is useful only for debugging and dangerous +# in production. +# +# cluster-migration-barrier 1 + +# By default Redis Cluster nodes stop accepting queries if they detect there +# is at least an hash slot uncovered (no available node is serving it). +# This way if the cluster is partially down (for example a range of hash slots +# are no longer covered) all the cluster becomes, eventually, unavailable. +# It automatically returns available as soon as all the slots are covered again. +# +# However sometimes you want the subset of the cluster which is working, +# to continue to accept queries for the part of the key space that is still +# covered. In order to do so, just set the cluster-require-full-coverage +# option to no. +# +# cluster-require-full-coverage yes + +# This option, when set to yes, prevents replicas from trying to failover its +# master during master failures. However the master can still perform a +# manual failover, if forced to do so. +# +# This is useful in different scenarios, especially in the case of multiple +# data center operations, where we want one side to never be promoted if not +# in the case of a total DC failure. +# +# cluster-replica-no-failover no + +# In order to setup your cluster make sure to read the documentation +# available at http://redis.io web site. + +########################## CLUSTER DOCKER/NAT support ######################## + +# In certain deployments, Redis Cluster nodes address discovery fails, because +# addresses are NAT-ted or because ports are forwarded (the typical case is +# Docker and other containers). +# +# In order to make Redis Cluster working in such environments, a static +# configuration where each node knows its public address is needed. The +# following two options are used for this scope, and are: +# +# * cluster-announce-ip +# * cluster-announce-port +# * cluster-announce-bus-port +# +# Each instruct the node about its address, client port, and cluster message +# bus port. The information is then published in the header of the bus packets +# so that other nodes will be able to correctly map the address of the node +# publishing the information. +# +# If the above options are not used, the normal Redis Cluster auto-detection +# will be used instead. +# +# Note that when remapped, the bus port may not be at the fixed offset of +# clients port + 10000, so you can specify any port and bus-port depending +# on how they get remapped. If the bus-port is not set, a fixed offset of +# 10000 will be used as usually. +# +# Example: +# +# cluster-announce-ip 10.1.1.5 +# cluster-announce-port 6379 +# cluster-announce-bus-port 6380 + +################################## SLOW LOG ################################### + +# The Redis Slow Log is a system to log queries that exceeded a specified +# execution time. The execution time does not include the I/O operations +# like talking with the client, sending the reply and so forth, +# but just the time needed to actually execute the command (this is the only +# stage of command execution where the thread is blocked and can not serve +# other requests in the meantime). +# +# You can configure the slow log with two parameters: one tells Redis +# what is the execution time, in microseconds, to exceed in order for the +# command to get logged, and the other parameter is the length of the +# slow log. When a new command is logged the oldest one is removed from the +# queue of logged commands. + +# The following time is expressed in microseconds, so 1000000 is equivalent +# to one second. Note that a negative number disables the slow log, while +# a value of zero forces the logging of every command. +slowlog-log-slower-than 10000 + +# There is no limit to this length. Just be aware that it will consume memory. +# You can reclaim memory used by the slow log with SLOWLOG RESET. +slowlog-max-len 128 + +################################ LATENCY MONITOR ############################## + +# The Redis latency monitoring subsystem samples different operations +# at runtime in order to collect data related to possible sources of +# latency of a Redis instance. +# +# Via the LATENCY command this information is available to the user that can +# print graphs and obtain reports. +# +# The system only logs operations that were performed in a time equal or +# greater than the amount of milliseconds specified via the +# latency-monitor-threshold configuration directive. When its value is set +# to zero, the latency monitor is turned off. +# +# By default latency monitoring is disabled since it is mostly not needed +# if you don't have latency issues, and collecting data has a performance +# impact, that while very small, can be measured under big load. Latency +# monitoring can easily be enabled at runtime using the command +# "CONFIG SET latency-monitor-threshold " if needed. +latency-monitor-threshold 0 + +############################# EVENT NOTIFICATION ############################## + +# Redis can notify Pub/Sub clients about events happening in the key space. +# This feature is documented at http://redis.io/topics/notifications +# +# For instance if keyspace events notification is enabled, and a client +# performs a DEL operation on key "foo" stored in the Database 0, two +# messages will be published via Pub/Sub: +# +# PUBLISH __keyspace@0__:foo del +# PUBLISH __keyevent@0__:del foo +# +# It is possible to select the events that Redis will notify among a set +# of classes. Every class is identified by a single character: +# +# K Keyspace events, published with __keyspace@__ prefix. +# E Keyevent events, published with __keyevent@__ prefix. +# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... +# $ String commands +# l List commands +# s Set commands +# h Hash commands +# z Sorted set commands +# x Expired events (events generated every time a key expires) +# e Evicted events (events generated when a key is evicted for maxmemory) +# A Alias for g$lshzxe, so that the "AKE" string means all the events. +# +# The "notify-keyspace-events" takes as argument a string that is composed +# of zero or multiple characters. The empty string means that notifications +# are disabled. +# +# Example: to enable list and generic events, from the point of view of the +# event name, use: +# +# notify-keyspace-events Elg +# +# Example 2: to get the stream of the expired keys subscribing to channel +# name __keyevent@0__:expired use: +# +# notify-keyspace-events Ex +# +# By default all notifications are disabled because most users don't need +# this feature and the feature has some overhead. Note that if you don't +# specify at least one of K or E, no events will be delivered. +notify-keyspace-events "" + +############################### ADVANCED CONFIG ############################### + +# Hashes are encoded using a memory efficient data structure when they have a +# small number of entries, and the biggest entry does not exceed a given +# threshold. These thresholds can be configured using the following directives. +hash-max-ziplist-entries 512 +hash-max-ziplist-value 64 + +# Lists are also encoded in a special way to save a lot of space. +# The number of entries allowed per internal list node can be specified +# as a fixed maximum size or a maximum number of elements. +# For a fixed maximum size, use -5 through -1, meaning: +# -5: max size: 64 Kb <-- not recommended for normal workloads +# -4: max size: 32 Kb <-- not recommended +# -3: max size: 16 Kb <-- probably not recommended +# -2: max size: 8 Kb <-- good +# -1: max size: 4 Kb <-- good +# Positive numbers mean store up to _exactly_ that number of elements +# per list node. +# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), +# but if your use case is unique, adjust the settings as necessary. +list-max-ziplist-size -2 + +# Lists may also be compressed. +# Compress depth is the number of quicklist ziplist nodes from *each* side of +# the list to *exclude* from compression. The head and tail of the list +# are always uncompressed for fast push/pop operations. Settings are: +# 0: disable all list compression +# 1: depth 1 means "don't start compressing until after 1 node into the list, +# going from either the head or tail" +# So: [head]->node->node->...->node->[tail] +# [head], [tail] will always be uncompressed; inner nodes will compress. +# 2: [head]->[next]->node->node->...->node->[prev]->[tail] +# 2 here means: don't compress head or head->next or tail->prev or tail, +# but compress all nodes between them. +# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] +# etc. +list-compress-depth 0 + +# Sets have a special encoding in just one case: when a set is composed +# of just strings that happen to be integers in radix 10 in the range +# of 64 bit signed integers. +# The following configuration setting sets the limit in the size of the +# set in order to use this special memory saving encoding. +set-max-intset-entries 512 + +# Similarly to hashes and lists, sorted sets are also specially encoded in +# order to save a lot of space. This encoding is only used when the length and +# elements of a sorted set are below the following limits: +zset-max-ziplist-entries 128 +zset-max-ziplist-value 64 + +# HyperLogLog sparse representation bytes limit. The limit includes the +# 16 bytes header. When an HyperLogLog using the sparse representation crosses +# this limit, it is converted into the dense representation. +# +# A value greater than 16000 is totally useless, since at that point the +# dense representation is more memory efficient. +# +# The suggested value is ~ 3000 in order to have the benefits of +# the space efficient encoding without slowing down too much PFADD, +# which is O(N) with the sparse encoding. The value can be raised to +# ~ 10000 when CPU is not a concern, but space is, and the data set is +# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. +hll-sparse-max-bytes 3000 + +# Streams macro node max size / items. The stream data structure is a radix +# tree of big nodes that encode multiple items inside. Using this configuration +# it is possible to configure how big a single node can be in bytes, and the +# maximum number of items it may contain before switching to a new node when +# appending new stream entries. If any of the following settings are set to +# zero, the limit is ignored, so for instance it is possible to set just a +# max entires limit by setting max-bytes to 0 and max-entries to the desired +# value. +stream-node-max-bytes 4096 +stream-node-max-entries 100 + +# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in +# order to help rehashing the main Redis hash table (the one mapping top-level +# keys to values). The hash table implementation Redis uses (see dict.c) +# performs a lazy rehashing: the more operation you run into a hash table +# that is rehashing, the more rehashing "steps" are performed, so if the +# server is idle the rehashing is never complete and some more memory is used +# by the hash table. +# +# The default is to use this millisecond 10 times every second in order to +# actively rehash the main dictionaries, freeing memory when possible. +# +# If unsure: +# use "activerehashing no" if you have hard latency requirements and it is +# not a good thing in your environment that Redis can reply from time to time +# to queries with 2 milliseconds delay. +# +# use "activerehashing yes" if you don't have such hard requirements but +# want to free memory asap when possible. +activerehashing yes + +# The client output buffer limits can be used to force disconnection of clients +# that are not reading data from the server fast enough for some reason (a +# common reason is that a Pub/Sub client can't consume messages as fast as the +# publisher can produce them). +# +# The limit can be set differently for the three different classes of clients: +# +# normal -> normal clients including MONITOR clients +# replica -> replica clients +# pubsub -> clients subscribed to at least one pubsub channel or pattern +# +# The syntax of every client-output-buffer-limit directive is the following: +# +# client-output-buffer-limit +# +# A client is immediately disconnected once the hard limit is reached, or if +# the soft limit is reached and remains reached for the specified number of +# seconds (continuously). +# So for instance if the hard limit is 32 megabytes and the soft limit is +# 16 megabytes / 10 seconds, the client will get disconnected immediately +# if the size of the output buffers reach 32 megabytes, but will also get +# disconnected if the client reaches 16 megabytes and continuously overcomes +# the limit for 10 seconds. +# +# By default normal clients are not limited because they don't receive data +# without asking (in a push way), but just after a request, so only +# asynchronous clients may create a scenario where data is requested faster +# than it can read. +# +# Instead there is a default limit for pubsub and replica clients, since +# subscribers and replicas receive data in a push fashion. +# +# Both the hard or the soft limit can be disabled by setting them to zero. +client-output-buffer-limit normal 0 0 0 +client-output-buffer-limit replica 256mb 64mb 60 +client-output-buffer-limit pubsub 32mb 8mb 60 + +# Client query buffers accumulate new commands. They are limited to a fixed +# amount by default in order to avoid that a protocol desynchronization (for +# instance due to a bug in the client) will lead to unbound memory usage in +# the query buffer. However you can configure it here if you have very special +# needs, such us huge multi/exec requests or alike. +# +# client-query-buffer-limit 1gb + +# In the Redis protocol, bulk requests, that are, elements representing single +# strings, are normally limited ot 512 mb. However you can change this limit +# here. +# +# proto-max-bulk-len 512mb + +# Redis calls an internal function to perform many background tasks, like +# closing connections of clients in timeout, purging expired keys that are +# never requested, and so forth. +# +# Not all tasks are performed with the same frequency, but Redis checks for +# tasks to perform according to the specified "hz" value. +# +# By default "hz" is set to 10. Raising the value will use more CPU when +# Redis is idle, but at the same time will make Redis more responsive when +# there are many keys expiring at the same time, and timeouts may be +# handled with more precision. +# +# The range is between 1 and 500, however a value over 100 is usually not +# a good idea. Most users should use the default of 10 and raise this up to +# 100 only in environments where very low latency is required. +hz 10 + +# Normally it is useful to have an HZ value which is proportional to the +# number of clients connected. This is useful in order, for instance, to +# avoid too many clients are processed for each background task invocation +# in order to avoid latency spikes. +# +# Since the default HZ value by default is conservatively set to 10, Redis +# offers, and enables by default, the ability to use an adaptive HZ value +# which will temporary raise when there are many connected clients. +# +# When dynamic HZ is enabled, the actual configured HZ will be used as +# as a baseline, but multiples of the configured HZ value will be actually +# used as needed once more clients are connected. In this way an idle +# instance will use very little CPU time while a busy instance will be +# more responsive. +dynamic-hz yes + +# When a child rewrites the AOF file, if the following option is enabled +# the file will be fsync-ed every 32 MB of data generated. This is useful +# in order to commit the file to the disk more incrementally and avoid +# big latency spikes. +aof-rewrite-incremental-fsync yes + +# When redis saves RDB file, if the following option is enabled +# the file will be fsync-ed every 32 MB of data generated. This is useful +# in order to commit the file to the disk more incrementally and avoid +# big latency spikes. +rdb-save-incremental-fsync yes + +# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good +# idea to start with the default settings and only change them after investigating +# how to improve the performances and how the keys LFU change over time, which +# is possible to inspect via the OBJECT FREQ command. +# +# There are two tunable parameters in the Redis LFU implementation: the +# counter logarithm factor and the counter decay time. It is important to +# understand what the two parameters mean before changing them. +# +# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis +# uses a probabilistic increment with logarithmic behavior. Given the value +# of the old counter, when a key is accessed, the counter is incremented in +# this way: +# +# 1. A random number R between 0 and 1 is extracted. +# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). +# 3. The counter is incremented only if R < P. +# +# The default lfu-log-factor is 10. This is a table of how the frequency +# counter changes with a different number of accesses with different +# logarithmic factors: +# +# +--------+------------+------------+------------+------------+------------+ +# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | +# +--------+------------+------------+------------+------------+------------+ +# | 0 | 104 | 255 | 255 | 255 | 255 | +# +--------+------------+------------+------------+------------+------------+ +# | 1 | 18 | 49 | 255 | 255 | 255 | +# +--------+------------+------------+------------+------------+------------+ +# | 10 | 10 | 18 | 142 | 255 | 255 | +# +--------+------------+------------+------------+------------+------------+ +# | 100 | 8 | 11 | 49 | 143 | 255 | +# +--------+------------+------------+------------+------------+------------+ +# +# NOTE: The above table was obtained by running the following commands: +# +# redis-benchmark -n 1000000 incr foo +# redis-cli object freq foo +# +# NOTE 2: The counter initial value is 5 in order to give new objects a chance +# to accumulate hits. +# +# The counter decay time is the time, in minutes, that must elapse in order +# for the key counter to be divided by two (or decremented if it has a value +# less <= 10). +# +# The default value for the lfu-decay-time is 1. A Special value of 0 means to +# decay the counter every time it happens to be scanned. +# +# lfu-log-factor 10 +# lfu-decay-time 1 + +########################### ACTIVE DEFRAGMENTATION ####################### +# +# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested +# even in production and manually tested by multiple engineers for some +# time. +# +# What is active defragmentation? +# ------------------------------- +# +# Active (online) defragmentation allows a Redis server to compact the +# spaces left between small allocations and deallocations of data in memory, +# thus allowing to reclaim back memory. +# +# Fragmentation is a natural process that happens with every allocator (but +# less so with Jemalloc, fortunately) and certain workloads. Normally a server +# restart is needed in order to lower the fragmentation, or at least to flush +# away all the data and create it again. However thanks to this feature +# implemented by Oran Agra for Redis 4.0 this process can happen at runtime +# in an "hot" way, while the server is running. +# +# Basically when the fragmentation is over a certain level (see the +# configuration options below) Redis will start to create new copies of the +# values in contiguous memory regions by exploiting certain specific Jemalloc +# features (in order to understand if an allocation is causing fragmentation +# and to allocate it in a better place), and at the same time, will release the +# old copies of the data. This process, repeated incrementally for all the keys +# will cause the fragmentation to drop back to normal values. +# +# Important things to understand: +# +# 1. This feature is disabled by default, and only works if you compiled Redis +# to use the copy of Jemalloc we ship with the source code of Redis. +# This is the default with Linux builds. +# +# 2. You never need to enable this feature if you don't have fragmentation +# issues. +# +# 3. Once you experience fragmentation, you can enable this feature when +# needed with the command "CONFIG SET activedefrag yes". +# +# The configuration parameters are able to fine tune the behavior of the +# defragmentation process. If you are not sure about what they mean it is +# a good idea to leave the defaults untouched. + +# Enabled active defragmentation +# activedefrag yes + +# Minimum amount of fragmentation waste to start active defrag +# active-defrag-ignore-bytes 100mb + +# Minimum percentage of fragmentation to start active defrag +# active-defrag-threshold-lower 10 + +# Maximum percentage of fragmentation at which we use maximum effort +# active-defrag-threshold-upper 100 + +# Minimal effort for defrag in CPU percentage +# active-defrag-cycle-min 5 + +# Maximal effort for defrag in CPU percentage +# active-defrag-cycle-max 75 + +# Maximum number of set/hash/zset/list fields that will be processed from +# the main dictionary scan +# active-defrag-max-scan-fields 1000 + From 5785a609b4d6d83e26fb01179c2aa3f18d7246c9 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Thu, 12 Nov 2020 01:29:46 +0800 Subject: [PATCH 59/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0docker-compost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 - docker-compose.yml | 59 +++++++++------ docker/nginx/config/nginx.conf | 126 +++++++++++++++++++++++++++++++++ 3 files changed, 163 insertions(+), 24 deletions(-) create mode 100644 docker/nginx/config/nginx.conf diff --git a/Dockerfile b/Dockerfile index 8c7c1af..ea6a772 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,5 @@ FROM golang:1.14 -MAINTAINER lanyulei "fdevops@163.com" - WORKDIR /opt/ferry COPY . . diff --git a/docker-compose.yml b/docker-compose.yml index 8e758c2..45e88de 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,26 +1,5 @@ version: "3" services: - ferry: - image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.0 - container_name: ferry - depends_on: - - db - - redis - links: - - db:ferry_mysql - - redis:ferry_redis - ports: - - 8002:8002 - volumes: - - ./config:/opt/ferry/config - - ./static:/opt/ferry/static - - ./template:/opt/ferry/template - - ./logs:/opt/ferry/logs - environment: - - TZ=Asia/Shanghai - restart: always - command: ./ferry server -c=/opt/ferry/config/settings.yml - db: hostname: mysql container_name: ferry_mysql @@ -52,4 +31,40 @@ services: - ./redis/data:/var/lib/redis/data - ./redis/config/redis.conf:/etc/redis.conf ports: - - 16379:6379 \ No newline at end of file + - 16379:6379 + + ferry: + hostname: ferry + image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.0 + container_name: ferry + depends_on: + - db + - redis + links: + - db:ferry_mysql + - redis:ferry_redis + ports: + - 8002:8002 + volumes: + - ./config:/opt/ferry/config + - ./static:/opt/ferry/static + - ./template:/opt/ferry/template + - ./logs:/opt/ferry/logs + environment: + - TZ=Asia/Shanghai + restart: always + command: ./ferry server -c=/opt/ferry/config/settings.yml + + ferry_web: + hostname: ferry_web + container_name: ferry_web + image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry_web:v1.0.0 + links: + - ferry:ferry_host + ports: + - 8001:8001 + volumes: + - ./docker/nginx/config/nginx.conf:/usr/local/etc/nginx/nginx.conf + environment: + - TZ=Asia/Shanghai + restart: always \ No newline at end of file diff --git a/docker/nginx/config/nginx.conf b/docker/nginx/config/nginx.conf new file mode 100644 index 0000000..b81930e --- /dev/null +++ b/docker/nginx/config/nginx.conf @@ -0,0 +1,126 @@ +user www www; +worker_processes auto; + +error_log /data/wwwlogs/error_nginx.log crit; +pid /var/run/nginx.pid; +worker_rlimit_nofile 51200; + +events { + use epoll; + worker_connections 51200; + multi_accept on; +} + +http { + include mime.types; + default_type application/octet-stream; + server_names_hash_bucket_size 128; + client_header_buffer_size 32k; + large_client_header_buffers 4 32k; + client_max_body_size 1024m; + client_body_buffer_size 10m; + sendfile on; + tcp_nopush on; + keepalive_timeout 120; + server_tokens off; + tcp_nodelay on; + + fastcgi_connect_timeout 300; + fastcgi_send_timeout 300; + fastcgi_read_timeout 300; + fastcgi_buffer_size 64k; + fastcgi_buffers 4 64k; + fastcgi_busy_buffers_size 128k; + fastcgi_temp_file_write_size 128k; + fastcgi_intercept_errors on; + + #Gzip Compression + gzip on; + gzip_buffers 16 8k; + gzip_comp_level 6; + gzip_http_version 1.1; + gzip_min_length 256; + gzip_proxied any; + gzip_vary on; + gzip_types + text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml + text/javascript application/javascript application/x-javascript + text/x-json application/json application/x-web-app-manifest+json + text/css text/plain text/x-component + font/opentype application/x-font-ttf application/vnd.ms-fontobject + image/x-icon; + gzip_disable "MSIE [1-6]\.(?!.*SV1)"; + + proxy_ignore_client_abort on; + + server { + listen 8001; # 监听端口 + # server_name -; # 域名可以有多个,用空格隔开 + + #charset koi8-r; + + #access_log logs/host.access.log main; + location / { + root /opt/web; + index index.html index.htm; #目录内的默认打开文件,如果没有匹配到index.html,则搜索index.htm,依次类推 + } + + #ssl配置省略 + location /api { + # rewrite ^.+api/?(.*)$ /$1 break; + proxy_pass http://ferry_host:8002; #node api server 即需要代理的IP地址 + proxy_redirect off; + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 登陆 + location /login { + proxy_pass http://ferry_host:8002; #node api server 即需要代理的IP地址 + proxy_redirect off; + proxy_ignore_client_abort on; + proxy_max_temp_file_size 256m; + proxy_connect_timeout 90; + proxy_send_timeout 90; + proxy_read_timeout 90; + proxy_buffer_size 4k; + proxy_buffers 4 32k; + proxy_busy_buffers_size 32k; + proxy_temp_file_write_size 64k; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 刷新token + location /refresh_token { + proxy_pass http://ferry_host:8002; #node api server 即需要代理的IP地址 + proxy_set_header Host $host:$server_port; + } + + # 接口地址 + location /swagger { + proxy_pass http://ferry_host:8002; #node api server 即需要代理的IP地址 + proxy_set_header Host $host:$server_port; + } + + # 后端静态文件路径 + location /static/uploadfile { + proxy_pass http://ferry_host:8002; #node api server 即需要代理的IP地址 + proxy_set_header Host $host:$server_port; + } + + #error_page 404 /404.html; #对错误页面404.html 做了定向配置 + + # redirect server error pages to the static page /50x.html + #将服务器错误页面重定向到静态页面/50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root html; + } + } +} \ No newline at end of file From 642904c2b48adae71f9f2bc45412f9f6b273dcae Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 12 Nov 2020 12:07:07 +0800 Subject: [PATCH 60/88] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84docker-compost?= =?UTF-8?q?=20yml=E6=96=87=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 45e88de..316e9bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,4 +67,6 @@ services: - ./docker/nginx/config/nginx.conf:/usr/local/etc/nginx/nginx.conf environment: - TZ=Asia/Shanghai + - VUE_APP_BASE_API=http://127.0.0.1:8002 + - ENV=production restart: always \ No newline at end of file From 05bd2702efdba3f3de05006a32615e18a7427205 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 12 Nov 2020 14:48:27 +0800 Subject: [PATCH 61/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E8=8E=B7=E5=8F=96=E5=9C=B0=E7=90=86=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E7=9A=84=E5=BC=80=E5=85=B3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/settings.dev.yml | 2 ++ config/settings.yml | 2 ++ tools/ip.go | 44 ++++++++++++++++++++++------------------- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/config/settings.dev.yml b/config/settings.dev.yml index cda76c8..33179a1 100644 --- a/config/settings.dev.yml +++ b/config/settings.dev.yml @@ -57,3 +57,5 @@ settings: ssl: key: keystring pem: temp/pem.pem + public: + isLocation: 0 diff --git a/config/settings.yml b/config/settings.yml index efe29b6..0d9fe38 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -57,3 +57,5 @@ settings: ssl: key: keystring pem: temp/pem.pem + public: + isLocation: 0 diff --git a/tools/ip.go b/tools/ip.go index a07287c..64a11cd 100644 --- a/tools/ip.go +++ b/tools/ip.go @@ -5,29 +5,33 @@ import ( "fmt" "io/ioutil" "net/http" + + "github.com/spf13/viper" ) func GetLocation(ip string) string { - if ip == "127.0.0.1" || ip == "localhost" { - return "内部IP" - } - resp, err := http.Get("https://restapi.amap.com/v3/ip?ip=" + ip + "&key=3fabc36c20379fbb9300c79b19d5d05e") - if err != nil { - panic(err) + var address = "已关闭位置获取" + if viper.GetBool("settings.public.isLocation") { + if ip == "127.0.0.1" || ip == "localhost" { + return "内部IP" + } + resp, err := http.Get("https://restapi.amap.com/v3/ip?ip=" + ip + "&key=3fabc36c20379fbb9300c79b19d5d05e") + if err != nil { + panic(err) + } + defer resp.Body.Close() + s, err := ioutil.ReadAll(resp.Body) - } - defer resp.Body.Close() - s, err := ioutil.ReadAll(resp.Body) - fmt.Printf(string(s)) + m := make(map[string]string) - m := make(map[string]string) - - err = json.Unmarshal(s, &m) - if err != nil { - fmt.Println("Umarshal failed:", err) + err = json.Unmarshal(s, &m) + if err != nil { + fmt.Println("Umarshal failed:", err) + } + if m["province"] == "" { + return "未知位置" + } + address = m["province"] + "-" + m["city"] } - if m["province"] == "" { - return "未知位置" - } - return m["province"] + "-" + m["city"] -} \ No newline at end of file + return address +} From 46ef2ae3822c5f2ac0cd71c3619f519eed666d54 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 12 Nov 2020 15:13:34 +0800 Subject: [PATCH 62/88] fix: update docker-compose --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 316e9bf..c65aea7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,5 +68,4 @@ services: environment: - TZ=Asia/Shanghai - VUE_APP_BASE_API=http://127.0.0.1:8002 - - ENV=production restart: always \ No newline at end of file From da1cbfd7fa35770e8a3154db7b0e0a9ebfea3b13 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Fri, 13 Nov 2020 17:41:21 +0800 Subject: [PATCH 63/88] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4nginx=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 +- docker/nginx/config/nginx.conf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c65aea7..e80866d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -64,7 +64,7 @@ services: ports: - 8001:8001 volumes: - - ./docker/nginx/config/nginx.conf:/usr/local/etc/nginx/nginx.conf + - ./docker/nginx/config/nginx.conf:/etc/nginx/nginx.conf environment: - TZ=Asia/Shanghai - VUE_APP_BASE_API=http://127.0.0.1:8002 diff --git a/docker/nginx/config/nginx.conf b/docker/nginx/config/nginx.conf index b81930e..858fc35 100644 --- a/docker/nginx/config/nginx.conf +++ b/docker/nginx/config/nginx.conf @@ -1,7 +1,7 @@ -user www www; +user nginx; worker_processes auto; -error_log /data/wwwlogs/error_nginx.log crit; +error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_rlimit_nofile 51200; From 2e8eb41434b36bf9d21d01194914e0eb5d62ad23 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Fri, 13 Nov 2020 23:35:30 +0800 Subject: [PATCH 64/88] fix: update go.mod. --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 99a5042..9266531 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.0 github.com/satori/go.uuid v1.2.0 - github.com/shirou/gopsutil v3.20.10+incompatible + github.com/shirou/gopsutil v2.20.3+incompatible github.com/spf13/cobra v1.0.0 github.com/spf13/viper v1.6.2 github.com/swaggo/gin-swagger v1.2.0 From 5d7ca470a155d9966366590c59c73886e6cf6efe Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 15 Nov 2020 14:52:09 +0800 Subject: [PATCH 65/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E5=A4=84=E7=90=86=E4=BA=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/pagination/pagination.go | 1 - pkg/service/getPrincipal.go | 7 +++ pkg/service/handle.go | 91 ++++++++++++++++++++++++++++++------ pkg/service/userAuthority.go | 37 +++++++++++++-- pkg/service/workOrderList.go | 27 ++--------- 5 files changed, 121 insertions(+), 42 deletions(-) diff --git a/pkg/pagination/pagination.go b/pkg/pagination/pagination.go index 865c9fc..02a3070 100644 --- a/pkg/pagination/pagination.go +++ b/pkg/pagination/pagination.go @@ -93,7 +93,6 @@ func Paging(p *Param, result interface{}, args ...interface{}) (*Paginator, erro } else { offset = (param.Page - 1) * param.PerPage } - err := db.Limit(param.PerPage).Offset(offset).Scan(result).Error if err != nil { logger.Errorf("数据查询失败,错误:%v", err) diff --git a/pkg/service/getPrincipal.go b/pkg/service/getPrincipal.go index a478552..cb050ba 100644 --- a/pkg/service/getPrincipal.go +++ b/pkg/service/getPrincipal.go @@ -29,6 +29,13 @@ func GetPrincipal(processor []int, processMethod string) (principals string, err if err != nil { return } + case "role": + err = orm.Eloquent.Model(&system.SysRole{}). + Where("role_id in (?)", processor). + Pluck("role_name", &principalList).Error + if err != nil { + return + } //case "department": // err = orm.Eloquent.Model(&user.Dept{}).Where("id in (?)", processor).Pluck("nickname", &principalList).Error // if err != nil { diff --git a/pkg/service/handle.go b/pkg/service/handle.go index 139d4ab..ddece2a 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -65,10 +65,12 @@ func fmtDuration(d time.Duration) string { // 会签 func (h *Handle) Countersign(c *gin.Context) (err error) { var ( - stateList []map[string]interface{} - stateIdMap map[string]interface{} - currentState map[string]interface{} - cirHistoryCount int + stateList []map[string]interface{} + stateIdMap map[string]interface{} + currentState map[string]interface{} + cirHistoryCount int + roleUserInfo []system.SysUser + circulationStatus bool ) err = json.Unmarshal(h.workOrderDetails.State, &stateList) @@ -83,19 +85,82 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { currentState = v } } + roleStatusCount := 0 + circulationStatus = false for _, cirHistoryValue := range h.cirHistoryList { - if _, ok := stateIdMap[cirHistoryValue.Source]; !ok { - break + if len(currentState["processor"].([]interface{})) > 1 { + if _, ok := stateIdMap[cirHistoryValue.Source]; !ok { + break + } } - for _, processor := range currentState["processor"].([]interface{}) { - if cirHistoryValue.ProcessorId != tools.GetUserId(c) && - cirHistoryValue.Source == currentState["id"].(string) && - cirHistoryValue.ProcessorId == int(processor.(float64)) { - cirHistoryCount += 1 + + if currentState["process_method"].(string) == "person" { + // 用户会签 + for _, processor := range currentState["processor"].([]interface{}) { + if cirHistoryValue.ProcessorId != tools.GetUserId(c) && + cirHistoryValue.Source == currentState["id"].(string) && + cirHistoryValue.ProcessorId == int(processor.(float64)) { + cirHistoryCount += 1 + } + } + if cirHistoryCount == len(currentState["processor"].([]interface{}))-1 { + circulationStatus = true + break + } + } else if currentState["process_method"].(string) == "role" { + // 全员处理 + var tmpUserList []system.SysUser + if h.stateValue["fullHandle"].(bool) { + err = orm.Eloquent.Model(&system.SysUser{}). + Where("role_id in (?)", currentState["processor"].([]interface{})). + Find(&roleUserInfo).Error + if err != nil { + return + } + temp := map[string]struct{}{} + for _, user := range roleUserInfo { + if _, ok := temp[user.Username]; !ok { + temp[user.Username] = struct{}{} + tmpUserList = append(tmpUserList, user) + } + } + for _, user := range tmpUserList { + if cirHistoryValue.Source == currentState["id"].(string) && + cirHistoryValue.ProcessorId != tools.GetUserId(c) && + cirHistoryValue.ProcessorId == user.UserId { + roleStatusCount += 1 + break + } + } + } else { + // 普通会签 + for _, processor := range currentState["processor"].([]interface{}) { + err = orm.Eloquent.Model(&system.SysUser{}).Where("role_id = ?", processor).Find(&roleUserInfo).Error + if err != nil { + return + } + for _, user := range roleUserInfo { + if user.UserId != tools.GetUserId(c) && + cirHistoryValue.Source == currentState["id"].(string) && + cirHistoryValue.ProcessorId == user.UserId { + roleStatusCount += 1 + break + } + } + } + } + if h.stateValue["fullHandle"].(bool) { + if roleStatusCount == len(tmpUserList)-1 { + circulationStatus = true + } + } else { + if roleStatusCount == len(currentState["processor"].([]interface{}))-1 { + circulationStatus = true + } } } } - if cirHistoryCount == len(currentState["processor"].([]interface{}))-1 { + if circulationStatus { h.endHistory = true err = h.circulation() if err != nil { @@ -298,7 +363,7 @@ func (h *Handle) commonProcessing(c *gin.Context) (err error) { } // 会签 - if h.stateValue["assignValue"] != nil && len(h.stateValue["assignValue"].([]interface{})) > 1 { + if h.stateValue["assignValue"] != nil && len(h.stateValue["assignValue"].([]interface{})) > 0 { if isCounterSign, ok := h.stateValue["isCounterSign"]; ok { if isCounterSign.(bool) { h.endHistory = false diff --git a/pkg/service/userAuthority.go b/pkg/service/userAuthority.go index d336f2b..68e8a09 100644 --- a/pkg/service/userAuthority.go +++ b/pkg/service/userAuthority.go @@ -69,7 +69,7 @@ func JudgeUserAuthority(c *gin.Context, workOrderId int, currentState string) (s } // 会签 - if currentStateValue["processor"] != nil && len(currentStateValue["processor"].([]interface{})) > 1 { + if currentStateValue["processor"] != nil && len(currentStateValue["processor"].([]interface{})) >= 1 { if isCounterSign, ok := stateValue["isCounterSign"]; ok { if isCounterSign.(bool) { err = orm.Eloquent.Model(&process.CirculationHistory{}). @@ -82,9 +82,32 @@ func JudgeUserAuthority(c *gin.Context, workOrderId int, currentState string) (s for _, cirHistoryValue := range cirHistoryList { if cirHistoryValue.Source != stateValue["id"] { break - } - if cirHistoryValue.Source == stateValue["id"] && cirHistoryValue.ProcessorId == tools.GetUserId(c) { - return + } else if cirHistoryValue.Source == stateValue["id"] { + if currentStateValue["process_method"].(string) == "person" { + // 验证个人会签 + if cirHistoryValue.ProcessorId == tools.GetUserId(c) { + return + } + } else if currentStateValue["process_method"].(string) == "role" { + // 验证角色会签 + if stateValue["fullHandle"].(bool) { + if cirHistoryValue.ProcessorId == tools.GetUserId(c) { + return + } + } else { + var roleUserInfo system.SysUser + err = orm.Eloquent.Model(&roleUserInfo). + Where("user_id = ?", cirHistoryValue.ProcessorId). + Find(&roleUserInfo). + Error + if err != nil { + return + } + if roleUserInfo.RoleId == tools.GetRoleId(c) { + return + } + } + } } } } @@ -98,6 +121,12 @@ func JudgeUserAuthority(c *gin.Context, workOrderId int, currentState string) (s status = true } } + case "role": + for _, processorValue := range currentStateValue["processor"].([]interface{}) { + if int(processorValue.(float64)) == tools.GetRoleId(c) { + status = true + } + } //case "persongroup": // var persongroupCount int // err = orm.Eloquent.Model(&user.UserGroup{}). diff --git a/pkg/service/workOrderList.go b/pkg/service/workOrderList.go index bfda1da..a62b2ba 100644 --- a/pkg/service/workOrderList.go +++ b/pkg/service/workOrderList.go @@ -43,36 +43,15 @@ func (w *WorkOrder) PureWorkOrderList() (result interface{}, err error) { // 1. 个人 personSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'person')))", tools.GetUserId(w.GinObj)) - // 2. 小组 - //groupList := make([]int, 0) - //err = orm.Eloquent.Model(&user.UserGroup{}). - // Where("user = ?", tools.GetUserId(c)). - // Pluck("`group`", &groupList).Error - //if err != nil { - // return - //} - //groupSqlList := make([]string, 0) - //if len(groupList) > 0 { - // for _, group := range groupList { - // groupSqlList = append(groupSqlList, fmt.Sprintf("JSON_CONTAINS(state, JSON_OBJECT('processor', %v))", group)) - // } - //} else { - // groupSqlList = append(groupSqlList, fmt.Sprintf("JSON_CONTAINS(state, JSON_OBJECT('processor', 0))")) - //} - // - //personGroupSelect := fmt.Sprintf( - // "((%v) and %v)", - // strings.Join(groupSqlList, " or "), - // "JSON_CONTAINS(state, JSON_OBJECT('process_method', 'persongroup'))", - //) + // 2. 角色 + roleSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'role')))", tools.GetRoleId(w.GinObj)) // 3. 部门 //departmentSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'department')))", userInfo.Dept) // 4. 变量会转成个人数据 - //db = db.Where(fmt.Sprintf("(%v or %v or %v or %v) and is_end = 0", personSelect, personGroupSelect, departmentSelect, variableSelect)) - db = db.Where(fmt.Sprintf("(%v) and is_end = 0", personSelect)) + db = db.Where(fmt.Sprintf("(%v or %v) and is_end = 0", personSelect, roleSelect)) case 2: // 我创建的 db = db.Where("creator = ?", tools.GetUserId(w.GinObj)) From ba74c8c748c565cd1c8cf924327a4bc3c7744836 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 15 Nov 2020 20:13:17 +0800 Subject: [PATCH 66/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E5=A4=84=E7=90=86=E4=BA=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/system/dept.go | 18 ++++++++++- pkg/service/getPrincipal.go | 12 +++++--- pkg/service/handle.go | 36 ++++++++++++++-------- pkg/service/userAuthority.go | 60 +++++++++++++++++++++++------------- pkg/service/workOrderList.go | 22 ++++++++----- router/system/sys_router.go | 4 +-- 6 files changed, 102 insertions(+), 50 deletions(-) diff --git a/apis/system/dept.go b/apis/system/dept.go index 0c950f9..b3a90e3 100644 --- a/apis/system/dept.go +++ b/apis/system/dept.go @@ -1,6 +1,7 @@ package system import ( + "ferry/global/orm" "ferry/models/system" "ferry/tools" "ferry/tools/app" @@ -46,6 +47,21 @@ func GetDeptList(c *gin.Context) { app.OK(c, result, "") } +func GetOrdinaryDeptList(c *gin.Context) { + var ( + err error + deptList []system.Dept + ) + + err = orm.Eloquent.Model(&system.Dept{}).Find(&deptList).Error + if err != nil { + app.Error(c, -1, err, "") + return + } + + app.OK(c, deptList, "") +} + func GetDeptTree(c *gin.Context) { var ( Dept system.Dept @@ -158,7 +174,7 @@ func DeleteDept(c *gin.Context) { app.OK(c, "", msg.DeletedSuccess) } -func GetDeptTreeRoleselect(c *gin.Context) { +func GetDeptTreeRoleSelect(c *gin.Context) { var Dept system.Dept var SysRole system.SysRole id, _ := tools.StringToInt(c.Param("roleId")) diff --git a/pkg/service/getPrincipal.go b/pkg/service/getPrincipal.go index cb050ba..0c73416 100644 --- a/pkg/service/getPrincipal.go +++ b/pkg/service/getPrincipal.go @@ -36,11 +36,13 @@ func GetPrincipal(processor []int, processMethod string) (principals string, err if err != nil { return } - //case "department": - // err = orm.Eloquent.Model(&user.Dept{}).Where("id in (?)", processor).Pluck("nickname", &principalList).Error - // if err != nil { - // return - // } + case "department": + err = orm.Eloquent.Model(&system.Dept{}). + Where("dept_id in (?)", processor). + Pluck("dept_name", &principalList).Error + if err != nil { + return + } case "variable": for _, p := range processor { switch p { diff --git a/pkg/service/handle.go b/pkg/service/handle.go index ddece2a..c4b6205 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -69,7 +69,7 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { stateIdMap map[string]interface{} currentState map[string]interface{} cirHistoryCount int - roleUserInfo []system.SysUser + userInfoList []system.SysUser circulationStatus bool ) @@ -85,7 +85,7 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { currentState = v } } - roleStatusCount := 0 + userStatusCount := 0 circulationStatus = false for _, cirHistoryValue := range h.cirHistoryList { if len(currentState["processor"].([]interface{})) > 1 { @@ -107,18 +107,22 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { circulationStatus = true break } - } else if currentState["process_method"].(string) == "role" { + } else if currentState["process_method"].(string) == "role" || currentState["process_method"].(string) == "department" { // 全员处理 var tmpUserList []system.SysUser if h.stateValue["fullHandle"].(bool) { - err = orm.Eloquent.Model(&system.SysUser{}). - Where("role_id in (?)", currentState["processor"].([]interface{})). - Find(&roleUserInfo).Error + db := orm.Eloquent.Model(&system.SysUser{}) + if currentState["process_method"].(string) == "role" { + db = db.Where("role_id in (?)", currentState["processor"].([]interface{})) + } else if currentState["process_method"].(string) == "department" { + db = db.Where("dept_id in (?)", currentState["processor"].([]interface{})) + } + err = db.Find(&userInfoList).Error if err != nil { return } temp := map[string]struct{}{} - for _, user := range roleUserInfo { + for _, user := range userInfoList { if _, ok := temp[user.Username]; !ok { temp[user.Username] = struct{}{} tmpUserList = append(tmpUserList, user) @@ -128,33 +132,39 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { if cirHistoryValue.Source == currentState["id"].(string) && cirHistoryValue.ProcessorId != tools.GetUserId(c) && cirHistoryValue.ProcessorId == user.UserId { - roleStatusCount += 1 + userStatusCount += 1 break } } } else { // 普通会签 for _, processor := range currentState["processor"].([]interface{}) { - err = orm.Eloquent.Model(&system.SysUser{}).Where("role_id = ?", processor).Find(&roleUserInfo).Error + db := orm.Eloquent.Model(&system.SysUser{}) + if currentState["process_method"].(string) == "role" { + db = db.Where("role_id = ?", processor) + } else if currentState["process_method"].(string) == "department" { + db = db.Where("dept_id = ?", processor) + } + err = db.Find(&userInfoList).Error if err != nil { return } - for _, user := range roleUserInfo { + for _, user := range userInfoList { if user.UserId != tools.GetUserId(c) && cirHistoryValue.Source == currentState["id"].(string) && cirHistoryValue.ProcessorId == user.UserId { - roleStatusCount += 1 + userStatusCount += 1 break } } } } if h.stateValue["fullHandle"].(bool) { - if roleStatusCount == len(tmpUserList)-1 { + if userStatusCount == len(tmpUserList)-1 { circulationStatus = true } } else { - if roleStatusCount == len(currentState["processor"].([]interface{}))-1 { + if userStatusCount == len(currentState["processor"].([]interface{}))-1 { circulationStatus = true } } diff --git a/pkg/service/userAuthority.go b/pkg/service/userAuthority.go index 68e8a09..26c7334 100644 --- a/pkg/service/userAuthority.go +++ b/pkg/service/userAuthority.go @@ -32,6 +32,7 @@ func JudgeUserAuthority(c *gin.Context, workOrderId int, currentState string) (s processState ProcessState currentStateList []map[string]interface{} currentStateValue map[string]interface{} + currentUserInfo system.SysUser ) // 获取工单信息 err = orm.Eloquent.Model(&workOrderInfo). @@ -68,6 +69,15 @@ func JudgeUserAuthority(c *gin.Context, workOrderId int, currentState string) (s } } + // 获取当前用户信息 + err = orm.Eloquent.Model(¤tUserInfo). + Where("user_id = ?", tools.GetUserId(c)). + Find(¤tUserInfo). + Error + if err != nil { + return + } + // 会签 if currentStateValue["processor"] != nil && len(currentStateValue["processor"].([]interface{})) >= 1 { if isCounterSign, ok := stateValue["isCounterSign"]; ok { @@ -107,6 +117,28 @@ func JudgeUserAuthority(c *gin.Context, workOrderId int, currentState string) (s return } } + } else if currentStateValue["process_method"].(string) == "department" { + // 部门会签 + if stateValue["fullHandle"].(bool) { + if cirHistoryValue.ProcessorId == tools.GetUserId(c) { + return + } + } else { + var ( + deptUserInfo system.SysUser + ) + err = orm.Eloquent.Model(&deptUserInfo). + Where("user_id = ?", cirHistoryValue.ProcessorId). + Find(&deptUserInfo). + Error + if err != nil { + return + } + + if deptUserInfo.DeptId == currentUserInfo.DeptId { + return + } + } } } } @@ -127,28 +159,12 @@ func JudgeUserAuthority(c *gin.Context, workOrderId int, currentState string) (s status = true } } - //case "persongroup": - // var persongroupCount int - // err = orm.Eloquent.Model(&user.UserGroup{}). - // Where("group in (?) and user = ?", currentStateValue["processor"].([]interface{}), tools.GetUserId(c)). - // Count(&persongroupCount).Error - // if err != nil { - // return - // } - // if persongroupCount > 0 { - // status = true - // } - //case "department": - // var departmentCount int - // err = orm.Eloquent.Model(&system.SysUser{}). - // Where("dept in (?) and id = ?", currentStateValue["processor"].([]interface{}), tools.GetUserId(c)). - // Count(&departmentCount).Error - // if err != nil { - // return - // } - // if departmentCount > 0 { - // status = true - // } + case "department": + for _, processorValue := range currentStateValue["processor"].([]interface{}) { + if int(processorValue.(float64)) == currentUserInfo.DeptId { + status = true + } + } case "variable": for _, p := range currentStateValue["processor"].([]interface{}) { switch int(p.(float64)) { diff --git a/pkg/service/workOrderList.go b/pkg/service/workOrderList.go index a62b2ba..71f6ca2 100644 --- a/pkg/service/workOrderList.go +++ b/pkg/service/workOrderList.go @@ -4,6 +4,7 @@ import ( "encoding/json" "ferry/global/orm" "ferry/models/process" + "ferry/models/system" "ferry/pkg/pagination" "ferry/tools" "fmt" @@ -47,11 +48,18 @@ func (w *WorkOrder) PureWorkOrderList() (result interface{}, err error) { roleSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'role')))", tools.GetRoleId(w.GinObj)) // 3. 部门 - //departmentSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'department')))", userInfo.Dept) + var userInfo system.SysUser + err = orm.Eloquent.Model(&system.SysUser{}). + Where("user_id = ?", tools.GetUserId(w.GinObj)). + Find(&userInfo).Error + if err != nil { + return + } + departmentSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'department')))", userInfo.DeptId) // 4. 变量会转成个人数据 //db = db.Where(fmt.Sprintf("(%v or %v or %v or %v) and is_end = 0", personSelect, personGroupSelect, departmentSelect, variableSelect)) - db = db.Where(fmt.Sprintf("(%v or %v) and is_end = 0", personSelect, roleSelect)) + db = db.Where(fmt.Sprintf("(%v or %v or %v) and is_end = 0", personSelect, roleSelect, departmentSelect)) case 2: // 我创建的 db = db.Where("creator = ?", tools.GetUserId(w.GinObj)) @@ -90,16 +98,16 @@ func (w *WorkOrder) WorkOrderList() (result interface{}, err error) { } for i, v := range *result.(*pagination.Paginator).Data.(*[]workOrderInfo) { - err = json.Unmarshal(v.State, &StateList) - if err != nil { - err = fmt.Errorf("json反序列化失败,%v", err.Error()) - return - } var ( stateName string structResult map[string]interface{} authStatus bool ) + err = json.Unmarshal(v.State, &StateList) + if err != nil { + err = fmt.Errorf("json反序列化失败,%v", err.Error()) + return + } if len(StateList) != 0 { // 仅待办工单需要验证 // todo:还需要找最优解决方案 diff --git a/router/system/sys_router.go b/router/system/sys_router.go index 23bf18c..eb5d1a3 100644 --- a/router/system/sys_router.go +++ b/router/system/sys_router.go @@ -35,8 +35,7 @@ func RegisterBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlewar v1auth.GET("/getinfo", system.GetInfo) v1auth.GET("/menurole", system.GetMenuRole) v1auth.GET("/roleMenuTreeselect/:roleId", system.GetMenuTreeRoleselect) - v1auth.GET("/roleDeptTreeselect/:roleId", system.GetDeptTreeRoleselect) - + v1auth.GET("/roleDeptTreeselect/:roleId", system.GetDeptTreeRoleSelect) v1auth.POST("/logout", handler.LogOut) v1auth.GET("/menuids", system.GetMenuIDS) } @@ -46,6 +45,7 @@ func RegisterPageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlewar v1auth := v1.Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { v1auth.GET("/deptList", system.GetDeptList) + v1auth.GET("/ordinaryDeptList", system.GetOrdinaryDeptList) v1auth.GET("/deptTree", system.GetDeptTree) v1auth.GET("/sysUserList", system.GetSysUserList) v1auth.GET("/rolelist", system.GetRoleList) From ceefb1d7919e606efb4c2a26cb7350eef5546245 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Mon, 16 Nov 2020 18:46:45 +0800 Subject: [PATCH 67/88] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4docker-compose?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 1 + docker/nginx/entrypoint/docker-entrypoint.sh | 42 ++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 docker/nginx/entrypoint/docker-entrypoint.sh diff --git a/docker-compose.yml b/docker-compose.yml index e80866d..bda7f02 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -65,6 +65,7 @@ services: - 8001:8001 volumes: - ./docker/nginx/config/nginx.conf:/etc/nginx/nginx.conf + - ./docker/nginx/entrypoint/docker-entrypoint.sh:/docker-entrypoint.sh environment: - TZ=Asia/Shanghai - VUE_APP_BASE_API=http://127.0.0.1:8002 diff --git a/docker/nginx/entrypoint/docker-entrypoint.sh b/docker/nginx/entrypoint/docker-entrypoint.sh new file mode 100755 index 0000000..0d601c2 --- /dev/null +++ b/docker/nginx/entrypoint/docker-entrypoint.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# vim:sw=4:ts=4:et + +grep -r -o "http://localhost:8002" /opt/web |awk -F ':' '{print $1}' | xargs sed -i s'#http://localhost:8002#http://192.168.1.1:8001#g' +grep -r -o "VUE_APP_BASE_API" /opt/web |awk -F ':' '{print $1}' | xargs sed -i s'#VUE_APP_BASE_API#http://192.168.1.1:8001#g' +grep -r -o "localhost" /opt/web/static/web/js |awk -F ':' '{print $1}' | xargs sed -i s'#localhost#192.168.1.1#g' + +set -e + +if [ -z "${NGINX_ENTRYPOINT_QUIET_LOGS:-}" ]; then + exec 3>&1 +else + exec 3>/dev/null +fi + +if [ "$1" = "nginx" -o "$1" = "nginx-debug" ]; then + if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then + echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration" + + echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/" + find "/docker-entrypoint.d/" -follow -type f -print | sort -n | while read -r f; do + case "$f" in + *.sh) + if [ -x "$f" ]; then + echo >&3 "$0: Launching $f"; + "$f" + else + # warn on shell scripts without exec bit + echo >&3 "$0: Ignoring $f, not executable"; + fi + ;; + *) echo >&3 "$0: Ignoring $f";; + esac + done + + echo >&3 "$0: Configuration complete; ready for start up" + else + echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration" + fi +fi + +exec "$@" \ No newline at end of file From 988c36823c6593acf6973b5cd4f2bb365d417f03 Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Mon, 16 Nov 2020 18:49:46 +0800 Subject: [PATCH 68/88] fix: fix bug. --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index bda7f02..701240c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,5 +68,4 @@ services: - ./docker/nginx/entrypoint/docker-entrypoint.sh:/docker-entrypoint.sh environment: - TZ=Asia/Shanghai - - VUE_APP_BASE_API=http://127.0.0.1:8002 restart: always \ No newline at end of file From 41bf960051ab50631b1025e774b1f296e2faaa3c Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Tue, 17 Nov 2020 22:57:01 +0800 Subject: [PATCH 69/88] fix: update db.sql --- config/db.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/config/db.sql b/config/db.sql index 70ea872..6aa8e53 100644 --- a/config/db.sql +++ b/config/db.sql @@ -272,6 +272,7 @@ INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (361, '', '主动接单', '', '', '/0/268/329/361', 'F', '', 'process:list:handle:active', 329, '0', '', '', 0, '0', '1', '', 1, '2020-09-01 19:03:52', '2020-09-01 19:03:52', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (363, '', '删除工单', 'bug', '/api/v1/work-order/delete/:id', '/0/63/281/333/363', 'A', 'DELETE', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-09-27 22:50:52', '2020-09-27 22:50:52', NULL); INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (364, '', '删除工单', '', '', '/0/268/273/364', 'F', '', 'process:list:all:delete', 273, '0', '', '', 0, '0', '1', '', 1, '2020-09-27 22:51:38', '2020-09-27 22:51:38', NULL); +INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (365, '', '部门列表', 'bug', '/api/v1/ordinaryDeptList', '/0/63/280/203/365', 'A', 'GET', '', 203, '0', '', '', 0, '1', '1', '', 1, '2020-11-15 18:34:14', '2020-11-15 18:34:14', NULL); COMMIT; BEGIN; From 3d22547f1dd90b0cc05a47a49345eb946699e4c8 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 18 Nov 2020 21:24:20 +0800 Subject: [PATCH 70/88] fix: update settings.dev.yml --- config/settings.dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/settings.dev.yml b/config/settings.dev.yml index 33179a1..58f610c 100644 --- a/config/settings.dev.yml +++ b/config/settings.dev.yml @@ -52,10 +52,10 @@ settings: maxbackups: 300 maxsize: 10240 path: ./logs/ferry.log + public: + islocation: 0 redis: url: redis://127.0.0.1:6379 ssl: key: keystring pem: temp/pem.pem - public: - isLocation: 0 From 0219221d92d9824d6ede253d12e68fbe8ca623c7 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 18 Nov 2020 21:55:21 +0800 Subject: [PATCH 71/88] fix: update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 701240c..8adefc1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,7 +35,7 @@ services: ferry: hostname: ferry - image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.0 + image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.1 container_name: ferry depends_on: - db From 5165de48689c00da1129b76f19f19af355d31d51 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Thu, 19 Nov 2020 21:07:29 +0800 Subject: [PATCH 72/88] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E9=80=9A=E7=9F=A5=E8=A7=92=E8=89=B2=E5=92=8C=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=9A=84bug.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/getPrincipal.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkg/service/getPrincipal.go b/pkg/service/getPrincipal.go index 0c73416..f4c58e6 100644 --- a/pkg/service/getPrincipal.go +++ b/pkg/service/getPrincipal.go @@ -94,6 +94,22 @@ func GetPrincipalUserInfo(stateList []interface{}, creator int) (userInfoList [] return } userInfoList = append(userInfoList, userInfoListTmp...) + case "role": + err = orm.Eloquent.Model(&system.SysUser{}). + Where("role_id in (?)", processorList). + Find(&userInfoListTmp).Error + if err != nil { + return + } + userInfoList = append(userInfoList, userInfoListTmp...) + case "department": + err = orm.Eloquent.Model(&system.SysUser{}). + Where("dept_id in (?)", processorList). + Find(&userInfoListTmp).Error + if err != nil { + return + } + userInfoList = append(userInfoList, userInfoListTmp...) case "variable": // 变量 for _, processor := range processorList { if int(processor.(float64)) == 1 { From b790b96ded411cbe59eb4c19bca5493b675be58a Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 22 Nov 2020 16:46:16 +0800 Subject: [PATCH 73/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/system/sysuser.go | 1 + models/system/sysuser.go | 5 ++++ pkg/service/workOrderList.go | 44 ++++++++++++++++++++++++++++++++---- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/apis/system/sysuser.go b/apis/system/sysuser.go index 2ab37a6..2e641bd 100644 --- a/apis/system/sysuser.go +++ b/apis/system/sysuser.go @@ -43,6 +43,7 @@ func GetSysUserList(c *gin.Context) { } data.Username = c.Request.FormValue("username") + data.NickName = c.Request.FormValue("nickName") data.Status = c.Request.FormValue("status") data.Phone = c.Request.FormValue("phone") diff --git a/models/system/sysuser.go b/models/system/sysuser.go index 1ed6732..fa4801e 100644 --- a/models/system/sysuser.go +++ b/models/system/sysuser.go @@ -208,6 +208,11 @@ func (e *SysUser) GetPage(pageSize int, pageIndex int) ([]SysUserPage, int, erro if e.Username != "" { table = table.Where("sys_user.username like ?", "%"+e.Username+"%") } + + if e.NickName != "" { + table = table.Where("sys_user.nick_name like ?", "%"+e.NickName+"%") + } + if e.Status != "" { table = table.Where("sys_user.status = ?", e.Status) } diff --git a/pkg/service/workOrderList.go b/pkg/service/workOrderList.go index 71f6ca2..1e91916 100644 --- a/pkg/service/workOrderList.go +++ b/pkg/service/workOrderList.go @@ -32,20 +32,56 @@ type workOrderInfo struct { func (w *WorkOrder) PureWorkOrderList() (result interface{}, err error) { var ( workOrderInfoList []workOrderInfo + processorInfo system.SysUser ) + personSelectValue := "(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'person')))" + roleSelectValue := "(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'role')))" + departmentSelectValue := "(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'department')))" + title := w.GinObj.DefaultQuery("title", "") - db := orm.Eloquent.Model(&process.WorkOrderInfo{}).Where("title like ?", fmt.Sprintf("%%%v%%", title)) + startTime := w.GinObj.DefaultQuery("startTime", "") + endTime := w.GinObj.DefaultQuery("endTime", "") + isEnd := w.GinObj.DefaultQuery("isEnd", "") + processor := w.GinObj.DefaultQuery("processor", "") + priority := w.GinObj.DefaultQuery("priority", "") + db := orm.Eloquent.Model(&process.WorkOrderInfo{}). + Where("title like ?", fmt.Sprintf("%%%v%%", title)) + if startTime != "" { + db = db.Where("create_time >= ?", startTime) + } + if endTime != "" { + db = db.Where("create_time <= ?", endTime) + } + if isEnd != "" { + db = db.Where("is_end = ?", isEnd) + } + if processor != "" && w.Classify != 1 { + err = orm.Eloquent.Model(&processorInfo). + Where("user_id = ?", processor). + Find(&processorInfo).Error + if err != nil { + return + } + db = db.Where(fmt.Sprintf("(%v or %v or %v) and is_end = 0", + fmt.Sprintf(personSelectValue, processorInfo.UserId), + fmt.Sprintf(roleSelectValue, processorInfo.RoleId), + fmt.Sprintf(departmentSelectValue, processorInfo.DeptId), + )) + } + if priority != "" { + db = db.Where("priority = ?", priority) + } // 获取当前用户信息 switch w.Classify { case 1: // 待办工单 // 1. 个人 - personSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'person')))", tools.GetUserId(w.GinObj)) + personSelect := fmt.Sprintf(personSelectValue, tools.GetUserId(w.GinObj)) // 2. 角色 - roleSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'role')))", tools.GetRoleId(w.GinObj)) + roleSelect := fmt.Sprintf(roleSelectValue, tools.GetRoleId(w.GinObj)) // 3. 部门 var userInfo system.SysUser @@ -55,7 +91,7 @@ func (w *WorkOrder) PureWorkOrderList() (result interface{}, err error) { if err != nil { return } - departmentSelect := fmt.Sprintf("(JSON_CONTAINS(state, JSON_OBJECT('processor', %v)) and JSON_CONTAINS(state, JSON_OBJECT('process_method', 'department')))", userInfo.DeptId) + departmentSelect := fmt.Sprintf(departmentSelectValue, userInfo.DeptId) // 4. 变量会转成个人数据 //db = db.Where(fmt.Sprintf("(%v or %v or %v or %v) and is_end = 0", personSelect, personGroupSelect, departmentSelect, variableSelect)) From f02e0a10fa6364e2b0cd6b37c9273f23ff4155ac Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 22 Nov 2020 17:15:11 +0800 Subject: [PATCH 74/88] fix: delete sqlite.sql --- config/sqlite.sql | 659 ---------------------------------------------- 1 file changed, 659 deletions(-) delete mode 100755 config/sqlite.sql diff --git a/config/sqlite.sql b/config/sqlite.sql deleted file mode 100755 index 10940ea..0000000 --- a/config/sqlite.sql +++ /dev/null @@ -1,659 +0,0 @@ -PRAGMA synchronous = OFF; -PRAGMA journal_mode = MEMORY; -BEGIN TRANSACTION; -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/calendar', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/calendar', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/calendar/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/calendar/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/config', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/config/', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/config/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/config/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/configKey/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/configList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dept', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dept', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dept/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dept/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/deptList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/data', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/data/', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/data/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/data/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/databytype/', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/databytype/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/datalist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/type', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/type', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/type/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/type/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/dict/typelist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/doctor', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/doctor', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/doctor/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/doctor/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/doctor/pic/', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/getinfo', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/loginlog/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/loginloglist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/member', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/member', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/member/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/member/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menu/', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menu/', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menu/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menu/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menuids', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menulist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menurole', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/menuTreeselect', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/operloglist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/orders', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/orders', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/orders/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/orders/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/orders/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/post', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/post', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/post/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/post/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/postlist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/role', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/role', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/role/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/role/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/rolelist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/rolemenu', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/rolemenu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/rolemenu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/roleMenuTreeselect/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/sysUser/', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/sysUser/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/sysUserList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'common', '/api/v1/user/profile', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/calendar', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/calendar', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/calendar/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/calendar/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/config', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/config', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/config/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/config/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/configKey/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/configList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dept', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dept', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dept/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dept/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/deptList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/deptTree', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/data', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/data/', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/data/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/data/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/databytype/', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/databytype/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/datalist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/type', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/type', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/type/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/type/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/typelist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/dict/typeoptionselect', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/doctor', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/doctor', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/doctor/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/doctor/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/doctor/pic/', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/getinfo', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/loginlog/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/loginloglist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/logout', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/member', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/member', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/member/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/member/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menu', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menu/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menuids', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menulist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menurole', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/menuTreeselect', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/operloglist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/orders', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/orders', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/orders/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/orders/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/orders/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/post', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/post', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/post/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/post/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/postlist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/role', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/role', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/role/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/role/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/roleDeptTreeselect/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/rolelist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/rolemenu', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/rolemenu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/rolemenu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/roleMenuTreeselect/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/user/avatar', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'Tester', '/api/v1/user/pwd', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/sysUserList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menulist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/databytype/', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menu', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/sysUserList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/sysUser/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/sysUser/', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/sysUser', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/sysUser', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/sysUser/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/user/profile', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/rolelist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/role/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/role', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/role', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/role/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/configList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/config/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/configKey/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/config', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/config', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/config/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menurole', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/roleMenuTreeselect/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menuTreeselect', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/rolemenu', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/rolemenu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/rolemenu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/doctor', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/doctor', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/doctor/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/doctor/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/doctor/pic/', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/deptList', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dept/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dept', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dept', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dept/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/datalist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/data/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/databytype/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/data', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/data/', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/data/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/typelist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/type/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/type', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/type', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/type/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/postlist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/post/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/post', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/post', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/post/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/calendar', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/calendar', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/calendar/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/calendar/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/member', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/member', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/member/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/member/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/orders', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/orders/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/orders', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/orders/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/orders/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menulist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menu/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menu', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menu/:id', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/menuids', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/loginloglist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/loginlog/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/operloglist', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/getinfo', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/roleDeptTreeselect/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/deptTree', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/configKey/:id', 'GET', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/logout', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/user/avatar', 'POST', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/user/pwd', 'PUT', NULL, NULL, NULL); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/api/v1/dict/typeoptionselect', 'GET', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (341, 20, 'table_id', '表编码', 'int(11)', 'int64', 'TableId', 'tableId', '1', '', '1', '1', '', '', '', 'EQ', 'input', '', 1, '', '1', '1', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (342, 20, 'table_name', '表名称', 'varchar(255)', 'string', 'TableName', 'tableName', '0', '', '0', '1', '', '1', '1', 'EQ', 'input', '', 2, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (343, 20, 'table_comment', '表备注', 'varchar(255)', 'string', 'TableComment', 'tableComment', '0', '', '0', '1', '', '1', '1', 'EQ', 'input', '', 3, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (344, 20, 'class_name', '类名', 'varchar(255)', 'string', 'ClassName', 'className', '0', '', '0', '1', '', '1', '1', 'EQ', 'input', '', 4, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (345, 20, 'tpl_category', '模板类型', 'varchar(255)', 'string', 'TplCategory', 'tplCategory', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 5, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (346, 20, 'package_name', '包名', 'varchar(255)', 'string', 'PackageName', 'packageName', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 6, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (347, 20, 'module_name', '模块名', 'varchar(255)', 'string', 'ModuleName', 'moduleName', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 7, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (348, 20, 'business_name', '业务名', 'varchar(255)', 'string', 'BusinessName', 'businessName', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 8, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (349, 20, 'function_name', '功能名称', 'varchar(255)', 'string', 'FunctionName', 'functionName', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 9, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (350, 20, 'function_author', '功能作者', 'varchar(255)', 'string', 'FunctionAuthor', 'functionAuthor', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 10, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (351, 20, 'pk_column', '主键列名', 'varchar(255)', 'string', 'PkColumn', 'pkColumn', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 11, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (352, 20, 'pk_go_field', '主键go类型名', 'varchar(255)', 'string', 'PkGoField', 'pkGoField', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 12, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (353, 20, 'pk_json_field', '主键json名', 'varchar(255)', 'string', 'PkJsonField', 'pkJsonField', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 13, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (354, 20, 'options', '', 'varchar(255)', 'string', 'Options', 'options', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 14, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (355, 20, 'tree_code', '树编码', 'varchar(255)', 'string', 'TreeCode', 'treeCode', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 15, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (356, 20, 'tree_parent_code', '树上级编码', 'varchar(255)', 'string', 'TreeParentCode', 'treeParentCode', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 16, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (357, 20, 'tree_name', '树显示名', 'varchar(255)', 'string', 'TreeName', 'treeName', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 17, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (358, 20, 'tree', '是否是树', 'char(1)', 'string', 'Tree', 'tree', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 18, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (359, 20, 'crud', '是否crud', 'char(1)', 'string', 'Crud', 'crud', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 19, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (360, 20, 'remark', '备注', 'varchar(255)', 'string', 'Remark', 'remark', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 20, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (361, 20, 'create_by', '', 'varchar(128)', 'string', 'CreateBy', 'createBy', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 21, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (362, 20, 'create_time', '', 'datetime', 'string', 'CreateTime', 'createTime', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 22, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (363, 20, 'update_by', '', 'varchar(128)', 'string', 'UpdateBy', 'updateBy', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 23, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (364, 20, 'update_time', '', 'datetime', 'string', 'UpdateTime', 'updateTime', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 24, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (365, 20, 'is_logical_delete', '是否逻辑删除', 'char(4)', 'string', 'IsLogicalDelete', 'isLogicalDelete', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 25, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (366, 20, 'logical_delete_column', '逻辑删除字段', 'varchar(128)', 'string', 'LogicalDeleteColumn', 'logicalDeleteColumn', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 26, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_columns` VALUES (367, 20, 'logical_delete', '', 'char(1)', 'string', 'LogicalDelete', 'logicalDelete', '0', '', '0', '1', '', '', '', 'EQ', 'input', '', 27, '', '0', '0', '0', '0', '0', '1', '0', '0', '', '', '', NULL, NULL, NULL); -INSERT INTO `sys_config` VALUES (1, '主框架页-默认皮肤样式名称', 'sys_index_skinName', 'skin-blue', 'Y', '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', '1', '1', '2020-02-29 10:37:48', '2020-04-08 13:03:21', NULL); -INSERT INTO `sys_config` VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', '初始化密码 123456', '1', '1', '2020-02-29 10:38:23', '2020-03-11 00:35:28', NULL); -INSERT INTO `sys_config` VALUES (3, '主框架页-侧边栏主题', 'sys_index_sideTheme', 'theme-dark', 'Y', '深色主题theme-dark,浅色主题theme-light', '1', '1', '2020-02-29 10:39:01', '2020-04-07 23:21:50', NULL); -INSERT INTO `sys_dept` VALUES (1, 0, '/0/1', '爱拓科技', 0, 'aituo', '13782218188', 'atuo@aituo.com', 0, '1', '1', '2020-02-27 15:30:19', '2020-03-10 21:09:21', NULL); -INSERT INTO `sys_dept` VALUES (7, 1, '/0/1/7', '研发部', 1, '', '', '', 0, '1', '1', '2020-03-08 23:10:59', '2020-04-08 13:00:03', NULL); -INSERT INTO `sys_dept` VALUES (8, 1, '/0/1/8', '运维部', 0, '', '', '', 0, '1', NULL, '2020-03-08 23:11:08', '2020-03-10 16:50:27', NULL); -INSERT INTO `sys_dept` VALUES (9, 1, '/0/1/9', '客服部', 0, '', '', '', 0, '1', NULL, '2020-03-08 23:11:15', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dept` VALUES (10, 1, '/0/1/10', '人力资源', 3, '张三', '', '', 1, '1', '1', '2020-04-07 23:48:38', '2020-04-07 23:48:46', NULL); -INSERT INTO `sys_dict_data` VALUES (1, 0, '正常', '0', 'sys_normal_disable', '', '', '', 0, '', '1', '', '系统正常', '2020-02-28 20:55:34', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (2, 0, '停用', '1', 'sys_normal_disable', '', '', '', 0, '', '1', '', '系统停用', '2020-02-28 21:10:41', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (3, 0, '男', '0', 'sys_user_sex', '', '', '', 0, '', '1', '', '性别男', '2020-02-28 21:37:28', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (4, 0, '女', '1', 'sys_user_sex', '', '', '', 0, '', '1', '', '性别女', '2020-02-28 21:37:40', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (5, 0, '未知', '2', 'sys_user_sex', '', '', '', 0, '', '1', '', '性别未知', '2020-02-28 21:38:05', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (6, 0, '显示', '0', 'sys_show_hide', '', '', '', 0, '', '1', '', '显示菜单', '2020-02-28 21:38:36', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (7, 0, '隐藏', '1', 'sys_show_hide', '', '', '', 0, '', '1', '', '隐藏菜单', '2020-02-28 21:38:50', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (8, 0, '是', 'Y', 'sys_yes_no', '', '', '', 0, '', '1', '', '系统默认是', '2020-02-28 21:39:40', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (9, 0, '否', 'N', 'sys_yes_no', '', '', '', 0, '', '1', '', '系统默认否', '2020-02-28 21:40:06', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (10, 0, '正常', '0', 'sys_job_status', '', '', '', 0, '', '1', '', '正常状态', '2020-02-28 21:41:02', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (11, 0, '停用', '1', 'sys_job_status', '', '', '', 0, '', '1', '', '停用状态', '2020-02-28 21:41:15', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (12, 0, '默认', 'DEFAULT', 'sys_job_group', '', '', '', 0, '', '1', '', '默认分组', '2020-02-28 21:41:48', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (13, 0, '系统', 'SYSTEM', 'sys_job_group', '', '', '', 0, '', '1', '', '系统分组', '2020-02-28 21:42:02', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (14, 0, '通知', '1', 'sys_notice_type', '', '', '', 0, '', '1', '', '通知', '2020-02-28 21:42:43', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (15, 0, '公告', '2', 'sys_notice_type', '', '', '', 0, '', '1', '', '公告', '2020-02-28 21:42:53', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (16, 0, '正常', '0', 'sys_common_status', '', '', '', 0, '', '1', '', '正常状态', '2020-02-28 21:43:21', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (17, 0, '关闭', '1', 'sys_common_status', '', '', '', 0, '', '1', '', '关闭状态', '2020-02-28 21:43:31', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (18, 0, '新增', '1', 'sys_oper_type', '', '', '', 0, '', '1', '', '新增操作', '2020-02-28 21:44:14', '2020-02-28 22:00:22', NULL); -INSERT INTO `sys_dict_data` VALUES (19, 0, '修改', '2', 'sys_oper_type', '', '', '', 0, '', '1', '', '修改操作', '2020-02-28 21:44:34', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (20, 0, '删除', '3', 'sys_oper_type', '', '', '', 0, '', '1', '', '删除操作', '2020-02-28 21:44:52', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (21, 0, '授权', '4', 'sys_oper_type', '', '', '', 0, '', '1', '', '授权操作', '2020-02-28 21:45:18', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (22, 0, '导出', '5', 'sys_oper_type', '', '', '', 0, '', '1', '', '导出操作', '2020-02-28 21:45:44', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (23, 0, '导入', '6', 'sys_oper_type', '', '', '', 0, '', '1', '', '导入操作', '2020-02-28 21:46:02', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (24, 0, '强退', '7', 'sys_oper_type', '', '', '', 0, '', '1', '', '强退操作', '2020-02-28 21:46:25', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (25, 0, '生成代码', '8', 'sys_oper_type', '', '', '', 0, '', '1', '', '生成操作', '2020-02-28 21:46:53', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (26, 0, '清空数据', '9', 'sys_oper_type', '', '', '', 0, '', '1', '', '清空操作', '2020-02-28 21:47:15', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (27, 0, '成功', '0', 'sys_notice_status', '', '', '', 0, '', '1', '', '成功状态', '2020-02-28 22:03:24', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (28, 0, '失败', '1', 'sys_notice_status', '', '', '', 0, '', '1', '', '失败状态', '2020-02-28 22:03:39', '2020-03-08 23:11:15', NULL); -INSERT INTO `sys_dict_data` VALUES (29, 0, '登录', '10', 'sys_oper_type', '', '', '', 0, '', '1', '1', '登录操作', '2020-03-15 18:35:23', '2020-03-15 18:39:30', NULL); -INSERT INTO `sys_dict_data` VALUES (30, 0, '退出', '11', 'sys_oper_type', '', '', '', 0, '', '1', '', '', '2020-03-15 18:35:39', '2020-03-15 18:35:39', NULL); -INSERT INTO `sys_dict_data` VALUES (31, 0, '获取验证码', '12', 'sys_oper_type', '', '', '', 0, '', '1', '', '获取验证码', '2020-03-15 18:38:42', '2020-03-15 18:35:39', NULL); -INSERT INTO `sys_dict_type` VALUES (1, '系统开关', 'sys_normal_disable', 0, '1', '1', '系统开关列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (2, '用户性别', 'sys_user_sex', 0, '1', '', '用户性别列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (3, '菜单状态', 'sys_show_hide', 0, '1', '', '菜单状态列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (4, '系统是否', 'sys_yes_no', 0, '1', '', '系统是否列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (5, '任务状态', 'sys_job_status', 0, '1', '', '任务状态列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (6, '任务分组', 'sys_job_group', 0, '1', '', '任务分组列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', 0, '1', '', '通知类型列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (8, '系统状态', 'sys_common_status', 0, '1', '', '登录状态列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', 0, '1', '', '操作类型列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (10, '通知状态', 'sys_notice_status', 0, '1', '', '通知状态列表', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_dict_type` VALUES (11, '1', '1', 1, '1', '1', '1', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (2, 'Upms', '系统管理', 'example', '/upms', '/0/2', 'M', '无', '', 0, '1', '', 'Layout', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (3, 'Sysuser', '用户管理', 'user', 'sysuser', '/0/2/3', 'C', '无', 'system:sysuser:list', 2, NULL, NULL, '/sysuser/index', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:10:42', NULL); -INSERT INTO `sys_menu` VALUES (43, NULL, '新增用户', NULL, '/api/v1/sysuser', '/0/2/3/43', 'F', 'POST', 'system:sysuser:add', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (44, NULL, '查询用户', NULL, '/api/v1/sysuser', '/0/2/3/44', 'F', 'GET', 'system:sysuser:query', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (45, NULL, '修改用户', NULL, '/api/v1/sysuser/', '/0/2/3/45', 'F', 'PUT', 'system:sysuser:edit', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (46, NULL, '删除用户', NULL, '/api/v1/sysuser/', '/0/2/3/46', 'F', 'DELETE', 'system:sysuser:remove', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 15:32:45', NULL); -INSERT INTO `sys_menu` VALUES (50, 'Mangent', '基础信息', 'network', '/mangent', '/0/50', 'M', '无', '', 0, '1', '', 'Layout', 2, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (51, 'Menu', '菜单管理', 'tree-table', 'menu', '/0/2/51', 'C', '无', 'system:sysmenu:list', 2, '1', '', '/menu/index', 3, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:16:30', NULL); -INSERT INTO `sys_menu` VALUES (52, 'Role', '角色管理', 'peoples', 'role', '/0/2/52', 'C', '无', 'system:sysrole:list', 2, '1', '', '/role/index', 2, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:16:19', NULL); -INSERT INTO `sys_menu` VALUES (53, 'Doctor', '医生管理', 'pass', 'doctor', '/0/50/53', 'C', '无', '', 50, '1', '', '/doctor/index', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (54, 'Calendar', '排班管理', 'calendar', 'calendar', '/0/50/54', 'C', '无', '', 50, '1', '', '/calendar/index', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (55, 'Menber', '会员管理', 'vip', 'member', '/0/50/55', 'C', '无', '', 50, '1', '', '/member/index', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (56, 'Dept', '部门管理', 'tree', 'dept', '/0/2/56', 'C', '无', 'system:sysdept:list', 2, '0', '', '/dept/index', 4, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:16:47', NULL); -INSERT INTO `sys_menu` VALUES (57, 'post', '岗位管理', 'pass', 'post', '/0/2/57', 'C', '无', 'system:syspost:list', 2, '0', '', '/post/index', 5, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:16:53', NULL); -INSERT INTO `sys_menu` VALUES (58, 'Dict', '字典管理', 'education', 'dict', '/0/2/58', 'C', '无', 'system:sysdicttype:list', 2, '0', '', '/dict/index', 6, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:17:04', NULL); -INSERT INTO `sys_menu` VALUES (59, 'DictData', '字典数据', 'education', 'dict/data/:dictId', '/0/2/59', 'C', '无', 'system:sysdictdata:list', 2, '0', '', '/dict/data', 100, '1', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:17:25', NULL); -INSERT INTO `sys_menu` VALUES (60, 'Tools', '系统工具', 'component', '/tools', '/0/60', 'M', '无', '', 0, '0', '', 'Layout', 3, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (61, 'Swagger', '系统接口', 'guide', 'swagger', '/0/60/61', 'C', '无', '', 60, '0', '', '/tools/swagger/index', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (62, 'Config', '参数设置', 'list', '/config', '/0/2/62', 'C', '无', 'system:sysconfig:list', 2, '0', '', '/config/index', 7, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:17:16', NULL); -INSERT INTO `sys_menu` VALUES (63, '', '接口权限', 'bug', '', '/0/63', 'M', '', '', 0, '0', '', '', 99, '1', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 16:39:32', NULL); -INSERT INTO `sys_menu` VALUES (64, '', '用户管理', 'user', '', '/0/63/64', 'M', '', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (65, NULL, '用户列表', NULL, '/api/v1/sysUserList', '', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (66, '', '菜单管理', 'tree-table', '', '/0/63/66', 'C', '', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (67, '', '菜单列表', 'tree-table', '/api/v1/menulist', '/0/63/66/67', 'A', 'GET', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (68, '', '新建菜单', 'tree', '/api/v1/menu', '/0/63/66/68', 'A', 'POST', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (69, '', '字典', 'dict', '', '/0/63/69', 'M', '', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (70, '', '类型', 'dict', '', '/0/63/69/70', 'C', '', '', 69, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (71, '', '字典类型获取', 'tree', '/api/v1/dict/databytype/', '/0/63/256/71', 'A', 'GET', '', 256, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (72, '', '修改菜单', 'bug', '/api/v1/menu', '/0/63/66/72', 'A', 'PUT', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (73, '', '删除菜单', 'bug', '/api/v1/menu/:id', '/0/63/66/73', 'A', 'DELETE', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (74, NULL, '管理员列表', 'bug', '/api/v1/sysUserList', '/0/63/64/74', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (75, NULL, '根据id获取管理员', 'bug', '/api/v1/sysUser/:id', '/0/63/64/75', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (76, NULL, '获取管理员', 'bug', '/api/v1/sysUser/', '/0/63/64/76', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (77, NULL, '创建管理员', 'bug', '/api/v1/sysUser', '/0/63/64/77', 'A', 'POST', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (78, NULL, '修改管理员', 'bug', '/api/v1/sysUser', '/0/63/64/78', 'A', 'PUT', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (79, NULL, '删除管理员', 'bug', '/api/v1/sysUser/:id', '/0/63/64/79', 'A', 'DELETE', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (80, NULL, '当前用户个人信息', 'bug', '/api/v1/user/profile', '/0/63/64/80', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (81, NULL, '角色列表', 'bug', '/api/v1/rolelist', '/0/63/201/81', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (82, NULL, '获取角色信息', 'bug', '/api/v1/role/:id', '/0/63/201/82', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (83, NULL, '创建角色', 'bug', '/api/v1/role', '/0/63/201/83', 'A', 'POST', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (84, NULL, '修改角色', 'bug', '/api/v1/role', '/0/63/201/84', 'A', 'PUT', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (85, NULL, '删除角色', 'bug', '/api/v1/role/:id', '/0/63/201/85', 'A', 'DELETE', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (86, NULL, '参数列表', 'bug', '/api/v1/configList', '/0/63/202/86', 'A', 'GET', NULL, 202, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (87, NULL, '根据id获取参数', 'bug', '/api/v1/config/:id', '/0/63/202/87', 'A', 'GET', NULL, 202, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (88, NULL, '根据key获取参数', 'bug', '/api/v1/configKey/:id', '/0/63/202/88', 'A', 'GET', NULL, 202, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (89, NULL, '创建参数', 'bug', '/api/v1/config', '/0/63/202/89', 'A', 'POST', NULL, 202, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (90, NULL, '修改参数', 'bug', '/api/v1/config', '/0/63/202/90', 'A', 'PUT', NULL, 202, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (91, NULL, '删除参数', 'bug', '/api/v1/config/:id', '/0/63/202/91', 'A', 'DELETE', NULL, 202, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (92, NULL, '获取角色菜单', 'bug', '/api/v1/menurole', '/0/63/201/92', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (93, NULL, '根据角色id获取角色', 'bug', '/api/v1/roleMenuTreeselect/:id', '/0/63/201/93', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (94, NULL, '获取菜单树', 'bug', '/api/v1/menuTreeselect', '/0/63/205/94', 'A', 'GET', NULL, 205, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (95, NULL, '获取角色菜单', 'bug', '/api/v1/rolemenu', '/0/63/205/95', 'A', 'GET', NULL, 205, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (96, NULL, '创建角色菜单', 'bug', '/api/v1/rolemenu', '/0/63/205/96', 'A', 'POST', NULL, 205, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (97, NULL, '删除用户菜单数据', 'bug', '/api/v1/rolemenu/:id', '/0/63/205/97', 'A', 'DELETE', NULL, 205, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (98, NULL, '医生获取', 'bug', '/api/v1/doctor', '/0/63/208/98', 'A', 'GET', NULL, 208, NULL, NULL, NULL, 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (99, NULL, '创建医生', 'bug', '/api/v1/doctor', '/0/63/208/99', 'A', 'POST', NULL, 208, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (100, NULL, '修改医生', 'bug', '/api/v1/doctor/:id', '/0/63/208/100', 'A', 'PUT', NULL, 208, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (101, NULL, '删除医生', 'bug', '/api/v1/doctor/:id', '/0/63/208/101', 'A', 'DELETE', NULL, 208, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (102, NULL, '添加医生头像', 'bug', '/api/v1/doctor/pic/', '/0/63/208/102', 'A', 'POST', NULL, 208, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (103, NULL, '部门菜单列表', 'bug', '/api/v1/deptList', '/0/63/203/103', 'A', 'GET', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (104, NULL, '根据id获取部门信息', 'bug', '/api/v1/dept/:id', '/0/63/203/104', 'A', 'GET', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (105, NULL, '创建部门', 'bug', '/api/v1/dept', '/0/63/203/105', 'A', 'POST', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (106, NULL, '修改部门', 'bug', '/api/v1/dept', '/0/63/203/106', 'A', 'PUT', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (107, NULL, '删除部门', 'bug', '/api/v1/dept/:id', '/0/63/203/107', 'A', 'DELETE', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (108, NULL, '字典数据列表', 'bug', '/api/v1/dict/datalist', '/0/63/69/206/108', 'A', 'GET', NULL, 206, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (109, NULL, '通过编码获取字典数据', 'bug', '/api/v1/dict/data/:id', '/0/63/69/206/109', 'A', 'GET', NULL, 206, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (110, NULL, '通过字典类型获取字典数据', 'bug', '/api/v1/dict/databytype/:id', '/0/63/256/110', 'A', 'GET', NULL, 256, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (111, NULL, '创建字典数据', 'bug', '/api/v1/dict/data', '/0/63/69/206/111', 'A', 'POST', NULL, 206, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (112, NULL, '修改字典数据', 'bug', '/api/v1/dict/data/', '/0/63/69/206/112', 'A', 'PUT', NULL, 206, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (113, NULL, '删除字典数据', 'bug', '/api/v1/dict/data/:id', '/0/63/69/206/113', 'A', 'DELETE', NULL, 206, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (114, NULL, '字典类型列表', 'bug', '/api/v1/dict/typelist', '/0/63/69/70/114', 'A', 'GET', NULL, 70, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (115, NULL, '通过id获取字典类型', 'bug', '/api/v1/dict/type/:id', '/0/63/69/70/115', 'A', 'GET', NULL, 70, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (116, NULL, '创建字典类型', 'bug', '/api/v1/dict/type', '/0/63/69/70/116', 'A', 'POST', NULL, 70, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (117, NULL, '修改字典类型', 'bug', '/api/v1/dict/type', '/0/63/69/70/117', 'A', 'PUT', NULL, 70, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (118, NULL, '删除字典类型', 'bug', '/api/v1/dict/type/:id', '/0/63/69/70/118', 'A', 'DELETE', NULL, 70, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (119, NULL, '获取岗位列表', 'bug', '/api/v1/postlist', '/0/63/204/119', 'A', 'GET', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (120, NULL, '通过id获取岗位信息', 'bug', '/api/v1/post/:id', '/0/63/204/120', 'A', 'GET', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (121, NULL, '创建岗位', 'bug', '/api/v1/post', '/0/63/204/121', 'A', 'POST', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (122, NULL, '修改岗位', 'bug', '/api/v1/post', '/0/63/204/122', 'A', 'PUT', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (123, NULL, '删除岗位', 'bug', '/api/v1/post/:id', '/0/63/204/123', 'A', 'DELETE', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (124, NULL, '获取排班信息', 'bug', '/api/v1/calendar', '/0/63/210/124', 'A', 'GET', NULL, 210, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (125, NULL, '创建排班', 'bug', '/api/v1/calendar', '/0/63/210/125', 'A', 'POST', NULL, 210, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (126, NULL, '修改排班', 'bug', '/api/v1/calendar/:id', '/0/63/210/126', 'A', 'PUT', NULL, 210, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (127, NULL, '删除排班', 'bug', '/api/v1/calendar/:id', '/0/63/210/127', 'A', 'DELETE', NULL, 210, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (128, NULL, '获取会员', 'bug', '/api/v1/member', '/0/63/207/128', 'A', 'GET', NULL, 207, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (129, NULL, '创建会员', 'bug', '/api/v1/member', '/0/63/207/129', 'A', 'POST', NULL, 207, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (130, NULL, '修改会员', 'bug', '/api/v1/member/:id', '/0/63/207/130', 'A', 'PUT', NULL, 207, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (131, NULL, '删除会员', 'bug', '/api/v1/member/:id', '/0/63/207/131', 'A', 'DELETE', NULL, 207, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (132, NULL, '获取订单', 'bug', '/api/v1/orders', '/0/63/209/132', 'A', 'GET', NULL, 209, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (133, NULL, '通过id获取订单', 'bug', '/api/v1/orders/:id', '/0/63/209/133', 'A', 'GET', NULL, 209, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (134, NULL, '新建订单', 'bug', '/api/v1/orders', '/0/63/209/134', 'A', 'POST', NULL, 209, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (135, NULL, '修改订单', 'bug', '/api/v1/orders/:id', '/0/63/209/135', 'A', 'PUT', NULL, 209, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (136, NULL, '删除订单', 'bug', '/api/v1/orders/:id', '/0/63/209/136', 'A', 'DELETE', NULL, 209, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (137, NULL, '菜单列表', 'bug', '/api/v1/menulist', '/0/63/66/137', 'A', 'GET', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (138, NULL, '获取根据id菜单信息', 'bug', '/api/v1/menu/:id', '/0/63/66/138', 'A', 'GET', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (139, NULL, '创建菜单', 'bug', '/api/v1/menu', '/0/63/66/139', 'A', 'POST', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (140, NULL, '修改菜单', 'bug', '/api/v1/menu/:id', '/0/63/66/140', 'A', 'PUT', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (141, NULL, '删除菜单', 'bug', '/api/v1/menu/:id', '', 'A', 'DELETE', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (142, NULL, '获取角色对应的菜单id数组', 'bug', '/api/v1/menuids', '/0/63/256/142', 'A', 'GET', NULL, 256, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (201, '', '角色管理', 'peoples', '', '/0/63/201', 'C', 'GET', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (202, '', '参数设置', 'list', '', '/0/63/202', 'C', 'DELETE', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (203, '', '部门管理', 'tree', '', '/0/63/203', 'C', 'POST', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (204, '', '岗位管理', 'pass', '', '/0/63/204', 'C', '', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (205, '', '角色菜单管理', 'nested', '', '/0/63/205', 'C', '', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (206, '', '数据', '', '', '/0/63/69/206', 'C', 'PUT', '', 69, '0', '', '', 2, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (207, '', '会员管理', 'vip', '', '/0/63/207', 'C', 'DELETE', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (208, '', '医生管理', 'theme', '', '/0/63/208', 'C', '', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (209, '', '订单管理', 'tab', '', '/0/63/209', 'M', '', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (210, '', '排班管理', 'calendar', '', '/0/63/210', 'C', 'DELETE', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (211, 'Log', '日志管理', 'log', '/log', '/0/2/211', 'M', '', '', 2, '0', '', '/log/index', 8, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:15:32', NULL); -INSERT INTO `sys_menu` VALUES (212, 'LoginLog', '登录日志', 'logininfor', '/loginlog', '/0/2/211/212', 'C', '', 'system:sysloginlog:list', 211, '0', '', '/loginlog/index', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (213, NULL, '获取登录日志', 'bug', '/api/v1/loginloglist', '/0/63/214/213', 'A', 'GET', NULL, 214, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (214, '', '日志管理', 'log', '', '/0/63/214', 'M', 'GET', '', 63, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (215, '', '删除日志', 'bug', '/api/v1/loginlog/:id', '/0/63/214/215', 'A', 'DELETE', '', 214, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (216, 'OperLog', '操作日志', 'skill', '/operlog', '/0/2/211/216', 'C', '', 'system:sysoperlog:list', 211, '0', '', '/operlog/index', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (217, '', '获取操作日志', 'bug', '/api/v1/operloglist', '/0/63/214/217', 'A', 'GET', '', 214, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (218, 'Calendars', '日历', 'calendar', 'calendar', '/0/60/218', 'C', '', '', 60, '0', '', '/calendar/index', 4, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:17:58', NULL); -INSERT INTO `sys_menu` VALUES (219, 'Excel', 'Excel导入', 'excel', '/excel', '/0/50/219', 'C', '', '', 50, '0', '', '/excel/upload-excel', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (220, '', '新增菜单', '', '', '/0/2/51/220', 'F', '', 'system:sysmenu:add', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (221, '', '修改菜单', 'edit', '', '/0/2/51/221', 'F', '', 'system:sysmenu:edit', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (222, '', '查询菜单', 'search', '', '/0/2/51/222', 'F', '', 'system:sysmenu:query', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (223, '', '删除菜单', '', '', '/0/2/51/223', 'F', '', 'system:sysmenu:remove', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (224, '', '新增角色', '', '', '/0/2/52/224', 'F', '', 'system:sysrole:add', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (225, '', '查询角色', '', '', '/0/2/52/225', 'F', '', 'system:sysrole:query', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (226, '', '修改角色', '', '', '/0/2/52/226', 'F', '', 'system:sysrole:edit', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (227, '', '删除角色', '', '', '/0/2/52/227', 'F', '', 'system:sysrole:remove', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (228, '', '查询部门', '', '', '/0/2/56/228', 'F', '', 'system:sysdept:query', 56, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (229, '', '新增部门', '', '', '/0/2/56/229', 'F', '', 'system:sysdept:add', 56, '0', '', '', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (230, '', '修改部门', '', '', '/0/2/56/230', 'F', '', 'system:sysdept:edit', 56, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (231, '', '删除部门', '', '', '/0/2/56/231', 'F', '', 'system:sysdept:remove', 56, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (232, '', '查询岗位', '', '', '/0/2/57/232', 'F', '', 'system:syspost:query', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (233, '', '新增岗位', '', '', '/0/2/57/233', 'F', '', 'system:syspost:add', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (234, '', '修改岗位', '', '', '/0/2/57/234', 'F', '', 'system:syspost:edit', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (235, '', '删除岗位', '', '', '/0/2/57/235', 'F', '', 'system:syspost:remove', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (236, '', '字典查询', '', '', '/0/2/58/236', 'F', '', 'system:sysdicttype:query', 58, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (237, '', '新增类型', '', '', '/0/2/58/237', 'F', '', 'system:sysdicttype:add', 58, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (238, '', '修改类型', '', '', '/0/2/58/238', 'F', '', 'system:sysdicttype:edit', 58, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (239, '', '删除类型', '', '', '/0/2/58/239', 'F', '', 'system:sysdicttype:remove', 58, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (240, '', '查询数据', '', '', '/0/2/59/240', 'F', '', 'system:sysdictdata:query', 59, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (241, '', '新增数据', '', '', '/0/2/59/241', 'F', '', 'system:sysdictdata:add', 59, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (242, '', '修改数据', '', '', '/0/2/59/242', 'F', '', 'system:sysdictdata:edit', 59, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (243, '', '删除数据', '', '', '/0/2/59/243', 'F', '', 'system:sysdictdata:remove', 59, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (244, '', '查询参数', '', '', '/0/2/62/244', 'F', '', 'system:sysconfig:query', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (245, '', '新增参数', '', '', '/0/2/62/245', 'F', '', 'system:sysconfig:add', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (246, '', '修改参数', '', '', '/0/2/62/246', 'F', '', 'system:sysconfig:edit', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (247, '', '删除参数', '', '', '/0/2/62/247', 'F', '', 'system:sysconfig:remove', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (248, '', '查询登录日志', '', '', '/0/2/211/212/248', 'F', '', 'system:sysloginlog:query', 212, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (249, '', '删除登录日志', '', '', '/0/2/211/212/249', 'F', '', 'system:sysloginlog:remove', 212, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (250, '', '查询操作日志', '', '', '/0/2/211/216/250', 'F', '', 'system:sysoperlog:query', 216, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (251, '', '删除操作日志', '', '', '/0/2/211/216/251', 'F', '', 'system:sysoperlog:remove', 216, '0', '', '', 0, '0', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (252, '', '获取登录用户信息', '', '/api/v1/getinfo', '/0/63/256/252', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (254, '', '部门树接口【数据权限】', '', '/api/v1/roleDeptTreeselect/:id', '/0/63/256/254', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (255, '', '部门树【用户列表】', '', '/api/v1/deptTree', '/0/63/256/255', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (256, '', '必开接口', '', '', '/0/63/256', 'M', 'GET', '', 63, '0', '', '', 0, '1', '1', '', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (257, '', '通过key获取参数', 'bug', '/api/v1/configKey/:id', '/0/63/256/257', 'A', 'GET', '', 256, '0', '', '', 1, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (258, '', '退出登录', '', '/api/v1/logout', '/0/63/256/258', 'A', 'POST', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (259, '', '头像上传', '', '/api/v1/user/avatar', '/0/63/256/259', 'A', 'POST', '', 256, '0', '', '', 0, '1', '1', '', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (260, '', '修改密码', '', '/api/v1/user/pwd', '/0/63/256/260', 'A', 'PUT', '', 256, '0', '', '', 0, '1', '1', '', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (261, 'Gen', '代码生成', 'code', 'gen', '/0/60/261', 'C', '', '', 60, '0', '', '/tools/gen/index', 2, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:18:12', NULL); -INSERT INTO `sys_menu` VALUES (262, 'EditTable', '数据表修改', 'build', 'editTable', '/0/60/262', 'C', '', '', 60, '0', '', '/tools/gen/editTable', 100, '1', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:18:22', NULL); -INSERT INTO `sys_menu` VALUES (263, '', '字典类型下拉框【生成功能】', '', '/api/v1/dict/typeoptionselect', '/0/63/256/263', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '', 0, '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_menu` VALUES (264, 'Build', '表单构建', 'build', 'build', '/0/60/264', 'C', '', '', 60, '0', '', '/tools/build/index', 1, '0', '1', '1', 0, '2020-04-11 15:52:48', '2020-04-12 11:18:05', NULL); -INSERT INTO `sys_menu` VALUES (265, '', '打赏', 'heart', 'http://doc.zhangwj.com/ferry-site/donate/', '/0/265', 'M', '', '', 0, '0', '', '', 5, '0', '1', '1', 0, '2020-04-12 16:39:04', '2020-04-12 16:58:59', NULL); -INSERT INTO `sys_menu` VALUES (266, '', '文档', 'documentation', 'http://doc.zhangwj.com', '/0/266', 'M', '', '', 0, '0', '', '', 4, '0', '1', '1', 0, '2020-04-12 16:58:41', '2020-04-12 16:58:52', NULL); -INSERT INTO `sys_post` VALUES (1, '首席执行官', 'CEO', 0, 0, '首席执行官', '1', '2020-03-08 23:11:15', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_post` VALUES (2, '开发工程师', 'Development ', 2, 0, '开发工程师', '1', '1', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_post` VALUES (3, '测试工程师', 'Test', 3, 0, '测试工程师', '1', '1', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_post` VALUES (4, '产品经理', 'Product', 3, 0, '产品经理', '1', '1', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_post` VALUES (5, '运维工程师', 'Opetion&Maintenance', 4, 0, '', '1', '1', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_post` VALUES (6, '首席运营官', 'COO', 1, 0, '', '1', '1', '2020-04-11 15:52:48', NULL, NULL); -INSERT INTO `sys_role` VALUES (1, '系统管理员', 0, 'admin', 1, NULL, '1', NULL, NULL, '0', '2020-04-11 15:52:48', '2020-04-12 22:46:03', NULL); -INSERT INTO `sys_role` VALUES (2, '普通角色', 0, 'common', 2, NULL, '1', NULL, NULL, '0', '2020-04-11 15:52:48', '2020-04-12 14:10:47', NULL); -INSERT INTO `sys_role` VALUES (3, '测试角色', 0, 'Tester', 3, '', '1', '', '', '0', '2020-04-11 15:52:48', '2020-04-12 14:10:52', NULL); -INSERT INTO `sys_role_menu` VALUES (1, 2, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 3, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 43, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 44, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 45, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 46, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 50, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 51, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 52, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 56, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 57, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 58, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 59, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 60, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 61, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 62, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 63, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 64, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 65, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 66, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 67, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 68, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 69, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 70, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 71, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 72, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 73, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 74, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 75, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 76, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 77, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 78, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 79, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 80, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 81, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 82, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 83, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 84, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 85, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 86, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 87, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 88, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 89, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 90, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 91, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 92, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 93, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 94, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 95, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 96, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 97, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 98, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 99, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 100, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 101, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 102, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 103, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 104, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 105, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 106, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 107, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 108, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 109, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 110, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 111, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 112, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 113, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 114, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 115, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 116, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 117, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 118, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 119, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 120, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 121, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 122, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 123, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 124, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 125, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 126, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 127, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 128, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 129, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 130, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 131, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 132, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 133, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 134, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 135, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 136, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 137, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 138, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 139, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 140, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 141, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 142, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 201, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 202, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 203, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 204, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 205, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 206, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 207, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 208, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 209, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 210, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 211, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 212, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 213, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 214, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 215, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 216, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 217, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 218, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 219, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 220, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 221, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 222, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 223, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 224, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 225, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 226, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 227, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 228, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 229, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 230, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 231, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 232, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 233, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 234, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 235, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 236, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 237, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 238, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 239, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 240, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 241, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 242, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 243, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 244, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 245, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 246, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 247, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 248, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 249, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 250, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 251, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 252, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 253, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 254, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 255, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 256, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 257, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 258, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 259, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 260, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 261, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 262, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 263, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 264, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 265, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu` VALUES (1, 266, 'admin', NULL, NULL); -INSERT INTO `sys_tables` VALUES (23, 'sys_config', '参数表', 'SysConfig', 'crud', 'sysconfig', 'sysconfig', 'sysconfig', '参数表', 'wenjianzhang', 'config_id', 'ConfigId', 'configId', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_tables` VALUES (24, 'sys_dept', 'SysDept', 'SysDept', 'crud', 'sysdept', 'sysdept', 'sysdept', 'SysDept', 'wenjianzhang', 'dept_id', 'DeptId', 'deptId', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_tables` VALUES (25, 'sys_dict_data', 'SysDictData', 'SysDictData', 'crud', 'sysdictdata', 'sysdictdata', 'sysdictdata', 'SysDictData', 'wenjianzhang', 'dict_code', 'DictCode', 'dictCode', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_tables` VALUES (26, 'sys_dict_type', 'SysDictType', 'SysDictType', 'crud', 'sysdicttype', 'sysdicttype', 'sysdicttype', 'SysDictType', 'wenjianzhang', 'dict_id', 'DictId', 'dictId', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_tables` VALUES (27, 'sys_loginlog', 'SysLoginlog', 'SysLoginlog', 'crud', 'sysloginlog', 'sysloginlog', 'sysloginlog', 'SysLoginlog', 'wenjianzhang', 'info_id', 'InfoId', 'infoId', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_tables` VALUES (28, 'sys_menu', 'SysMenu', 'SysMenu', 'crud', 'sysmenu', 'sysmenu', 'sysmenu', 'SysMenu', 'wenjianzhang', 'menu_id', 'MenuId', 'menuId', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_tables` VALUES (29, 'sys_post', 'SysPost', 'SysPost', 'crud', 'syspost', 'syspost', 'syspost', 'SysPost', 'wenjianzhang', 'post_id', 'PostId', 'postId', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_tables` VALUES (30, 'sys_operlog', 'SysOperlog', 'SysOperlog', 'crud', 'sysoperlog', 'sysoperlog', 'sysoperlog', 'SysOperlog', 'wenjianzhang', 'oper_id', 'OperId', 'operId', '', '', '', '', '0', '1', '', '1', '1', 'is_del', '', '', NULL, NULL, NULL); -INSERT INTO `sys_user` VALUES (1, 'zhangwj', '13818888888', 1, NULL, '', '0', '1@qq.com', 1, 2, '1', '1', NULL, 0, '2019-11-10 14:05:55', '2020-03-15 19:16:02', NULL, 'admin', '$2a$10$cKFFTCzGOvaIHHJY2K45Zuwt8TD6oPzYi4s5MzYIBAWCLL6ZhouP2'); -INSERT INTO `sys_user` VALUES (2, 'zhangwj', '13211111111', 3, NULL, NULL, '0', 'q@q.com', 8, 2, '1', '1', NULL, 0, '2019-11-12 18:28:27', '2020-03-14 20:08:43', NULL, 'zhangwj', '$2a$10$CqMwHahA3cNrNv16CoSxmeD4XMPU.BiKHPEAeaG5oXMavOKrjInXi'); -INSERT INTO `sys_user` VALUES (3, '赵四', '13838385438', 2, '', '', '0', 'qq@qq.com', 7, 2, '1', '1', '', 0, '2020-04-07 22:17:38', '2020-04-07 22:17:50', NULL, 'zhaosi', '$2a$10$DejldFea5.hGZGC7/oVN9OLDrHAWgu9l29RDz9FomLnWnro4umYl2'); -INSERT INTO `sys_user` VALUES (4, '王五', '13535353535', 3, '', '', '2', 'qq@qq.com', 8, 2, '1', '1', '', 0, '2020-04-12 14:06:49', '2020-04-12 14:07:09', NULL, 'wangwu', '$2a$10$3.RT6rpXANXvvlibX6PzU.FGA2CvfDxd1UmJ2H5zTzF4sYocbvsTO'); -END TRANSACTION; From c05726579b63009e25f01ab9ebdab72935edce52 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 22 Nov 2020 18:30:55 +0800 Subject: [PATCH 75/88] fix: update docker-compose.yml --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8adefc1..8bd9dbc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,7 +35,7 @@ services: ferry: hostname: ferry - image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.1 + image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.0-1 container_name: ferry depends_on: - db @@ -58,7 +58,7 @@ services: ferry_web: hostname: ferry_web container_name: ferry_web - image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry_web:v1.0.0 + image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry_web:v1.0.0-1 links: - ferry:ferry_host ports: From 5aceacaa56ed7104242eed206370ec6df3f7362a Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Tue, 24 Nov 2020 22:56:20 +0800 Subject: [PATCH 76/88] fix: fix bug. --- docker/nginx/entrypoint/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/nginx/entrypoint/docker-entrypoint.sh b/docker/nginx/entrypoint/docker-entrypoint.sh index 0d601c2..c976a4e 100755 --- a/docker/nginx/entrypoint/docker-entrypoint.sh +++ b/docker/nginx/entrypoint/docker-entrypoint.sh @@ -1,7 +1,7 @@ #!/bin/sh # vim:sw=4:ts=4:et -grep -r -o "http://localhost:8002" /opt/web |awk -F ':' '{print $1}' | xargs sed -i s'#http://localhost:8002#http://192.168.1.1:8001#g' +grep -r -o "http://fdevops.com:8001" /opt/web |awk -F ':' '{print $1}' | xargs sed -i s'#http://fdevops.com:8001#http://192.168.1.1:8001#g' grep -r -o "VUE_APP_BASE_API" /opt/web |awk -F ':' '{print $1}' | xargs sed -i s'#VUE_APP_BASE_API#http://192.168.1.1:8001#g' grep -r -o "localhost" /opt/web/static/web/js |awk -F ':' '{print $1}' | xargs sed -i s'#localhost#192.168.1.1#g' From 3a329e64452d1dea916ed52830a3079c71e748b7 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 25 Nov 2020 16:45:08 +0800 Subject: [PATCH 77/88] =?UTF-8?q?fix:=20=E5=B7=A5=E5=8D=95=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=87=AA=E5=8A=A8=E7=BB=93=E6=9D=9F=E7=9A=84bug?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/handle.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/pkg/service/handle.go b/pkg/service/handle.go index c4b6205..3000148 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -176,17 +176,6 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { if err != nil { return } - - // 如果是跳转到结束节点,则需要修改节点状态 - if h.targetStateValue["clazz"] == "end" { - err = h.tx.Model(&process.WorkOrderInfo{}). - Where("id = ?", h.workOrderId). - Update("is_end", 1).Error - if err != nil { - h.tx.Rollback() - return - } - } } return } @@ -221,6 +210,18 @@ func (h *Handle) circulation() (err error) { h.tx.Rollback() return } + + // 如果是跳转到结束节点,则需要修改节点状态 + if h.targetStateValue["clazz"] == "end" { + err = h.tx.Model(&process.WorkOrderInfo{}). + Where("id = ?", h.workOrderId). + Update("is_end", 1).Error + if err != nil { + h.tx.Rollback() + return + } + } + return } From fe54c7d2b5a5126135f6a29289ea322ad8b52062 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 25 Nov 2020 16:49:58 +0800 Subject: [PATCH 78/88] fix: update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8bd9dbc..1aaf29a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,7 +35,7 @@ services: ferry: hostname: ferry - image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.0-1 + image: registry.cn-beijing.aliyuncs.com/lanyulei/ferry:v1.0.0-2 container_name: ferry depends_on: - db From e8bfdeb7bd37f57d6519bd677cb2d4628988ea7d Mon Sep 17 00:00:00 2001 From: YuleiLan Date: Thu, 26 Nov 2020 17:26:46 +0800 Subject: [PATCH 79/88] fix: update docker-entrypoint.sh --- docker/nginx/entrypoint/docker-entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/nginx/entrypoint/docker-entrypoint.sh b/docker/nginx/entrypoint/docker-entrypoint.sh index c976a4e..f0dad4f 100755 --- a/docker/nginx/entrypoint/docker-entrypoint.sh +++ b/docker/nginx/entrypoint/docker-entrypoint.sh @@ -4,6 +4,7 @@ grep -r -o "http://fdevops.com:8001" /opt/web |awk -F ':' '{print $1}' | xargs sed -i s'#http://fdevops.com:8001#http://192.168.1.1:8001#g' grep -r -o "VUE_APP_BASE_API" /opt/web |awk -F ':' '{print $1}' | xargs sed -i s'#VUE_APP_BASE_API#http://192.168.1.1:8001#g' grep -r -o "localhost" /opt/web/static/web/js |awk -F ':' '{print $1}' | xargs sed -i s'#localhost#192.168.1.1#g' +grep -r -o "fdevops.com" /opt/web/static/web/js |awk -F ':' '{print $1}' | xargs sed -i s'#fdevops.com#192.168.1.1#g' set -e From ef10ac19c68a3129f826a8fdda91763408e0e27e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=B4=AB=E7=B3=BB=E6=B5=81=E6=9C=88?= <1362134872@qq.com> Date: Mon, 7 Dec 2020 15:20:16 +0800 Subject: [PATCH 80/88] BindWith deprecated https://github.com/gin-gonic/gin/blob/master/deprecated.go --- apis/system/sysuser.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apis/system/sysuser.go b/apis/system/sysuser.go index 2e641bd..6c4fa89 100644 --- a/apis/system/sysuser.go +++ b/apis/system/sysuser.go @@ -190,7 +190,7 @@ func GetSysUserInit(c *gin.Context) { // @Router /api/v1/sysUser [post] func InsertSysUser(c *gin.Context) { var sysuser system.SysUser - err := c.BindWith(&sysuser, binding.JSON) + err := c.MustBindWith(&sysuser, binding.JSON) if err != nil { app.Error(c, -1, err, "") return From bd78e9c7c8ee512558989a54a1fba81dc4e84d6c Mon Sep 17 00:00:00 2001 From: Admover Date: Thu, 17 Dec 2020 10:50:00 +0800 Subject: [PATCH 81/88] =?UTF-8?q?=E5=B9=B6=E8=A1=8C=E7=BD=91=E5=85=B3?= =?UTF-8?q?=E6=9C=AA=E5=A4=84=E7=90=86=E5=AE=8C=E6=89=80=E6=9C=89=E5=B9=B6?= =?UTF-8?q?=E8=A1=8C=E4=BB=BB=E5=8A=A1=E6=97=B6=EF=BC=8C=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=A4=84=E7=90=86=E7=8A=B6=E6=80=81=EF=BC=8C=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E5=8F=91=E9=80=81=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/workOrder.go | 2 +- pkg/service/handle.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index ee97670..22a615d 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -148,7 +148,7 @@ func ProcessWorkOrder(c *gin.Context) { params.Tpls, // 工单数据更新 ) if err != nil { - app.Error(c, -1, nil, fmt.Sprintf("处理工单失败,%v", err.Error())) + app.Error(c, -1, err, fmt.Sprintf("处理工单失败,%v", err.Error())) return } diff --git a/pkg/service/handle.go b/pkg/service/handle.go index 3000148..4702a42 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -876,7 +876,7 @@ func (h *Handle) HandleWorkOrder( h.tx.Commit() // 提交事务 // 发送通知 - if len(noticeList) > 0 { + if len(noticeList) > 0 && h.updateValue["state"] != nil { stateList := make([]interface{}, 0) for _, v := range h.updateValue["state"].([]map[string]interface{}) { stateList = append(stateList, v) From 81520df35db694239c2047fdd3ba2df21027d321 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 27 Dec 2020 19:58:32 +0800 Subject: [PATCH 82/88] =?UTF-8?q?fix:=20=E8=A2=AB=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E9=99=86BUG,=20fix=20#120?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/auth.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/handler/auth.go b/handler/auth.go index fc6667e..b773fca 100644 --- a/handler/auth.go +++ b/handler/auth.go @@ -141,6 +141,11 @@ func Authenticator(c *gin.Context) (interface{}, error) { user, role, e := loginVal.GetUser() if e == nil { _, _ = loginLog.Create() + + if user.Status == "1" { + return nil, errors.New("用户已被禁用。") + } + return map[string]interface{}{"user": user, "role": role}, nil } else { loginLog.Status = "1" From 192b03bac61c018b1008623c348e20d117a6915c Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 27 Dec 2020 20:18:32 +0800 Subject: [PATCH 83/88] =?UTF-8?q?docs:=20=E5=A2=9E=E5=8A=A0=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E6=95=99=E7=A8=8B=E4=BB=8B=E7=BB=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 47 +++++------------------------------------------ 1 file changed, 5 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 222e02c..1b5f3a8 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,11 @@ 文档: [https://www.fdevops.com/docs/ferry](https://www.fdevops.com/docs/ferry-tutorial-document/introduction) +视频教程(由群内好友<稳定>提供,非常感谢。): + +* ferry工单系统需要的软件准备 https://www.bilibili.com/video/BV1sA411s7jE +* ferry源代码下载后第一次运行 https://www.bilibili.com/video/BV1oy4y1v7LR + 官网:[http://ferry.fdevops.com](http://ferry.fdevops.com) ``` @@ -111,48 +116,6 @@ QQ群:1127401830 ------------------------------- - -感谢各位的打赏,你的支持,我的动力。所有打赏将作为项目维护成本。 - -微信: - -| 昵称 | 金额 | -| :---- | :---- | -| KAKA | 100元 | -| 劉鑫 | 30元 | -| *锋 | 30元 | -| 老白@天智 | 20元 | -| J*f | 20元 | -| 吻住,我们能赢 | 10.24元 | -| LJ | 10元 | -| Super_z | 10元 | -| T*i | 10元 | -| *伟 | 10元 | -| *郎 | 8元 | -| *上 | 5元 | -| *Sam . Chai | 5元 | -| *悟 | 3元 | -| 王* | 1元 | -| p*i | 1元 | -| S*R | 1元 | - -支付宝: - -| 昵称 | 金额 | -| :---- | :---- | -|**宝 |66元| -|**英 |10元| -|**华 |5元| -|*城 |1元| - -其他: - -| 昵称 | 金额 | -| :---- | :---- | -|五色花 |20元| -|everstar_l |10元| - ## 鸣谢 特别感谢 [JetBrains](https://www.jetbrains.com/?from=ferry) 为本开源项目提供免费的 [IntelliJ GoLand](https://www.jetbrains.com/go/?from=ferry) 授权 From 785df57abfa549c8400ba3212cd340dd3a750153 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 27 Dec 2020 20:42:11 +0800 Subject: [PATCH 84/88] fix: fix bug. --- pkg/service/handle.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/service/handle.go b/pkg/service/handle.go index 4702a42..3000148 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -876,7 +876,7 @@ func (h *Handle) HandleWorkOrder( h.tx.Commit() // 提交事务 // 发送通知 - if len(noticeList) > 0 && h.updateValue["state"] != nil { + if len(noticeList) > 0 { stateList := make([]interface{}, 0) for _, v := range h.updateValue["state"].([]map[string]interface{}) { stateList = append(stateList, v) From 6849a9157c981faf14e4b8a1a468badc34c80759 Mon Sep 17 00:00:00 2001 From: huchenhao Date: Mon, 15 Feb 2021 22:50:43 +0800 Subject: [PATCH 85/88] bugfix: fix auth check return error msg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit when your browse can not use cookie and you send a request with wrong token format in header, in old code will return msg with cookie token is empty in new code will return msg with auth header is invalid it just is a small bug, and almost impossible to show up --- pkg/jwtauth/jwtauth.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/jwtauth/jwtauth.go b/pkg/jwtauth/jwtauth.go index bc43b30..d2bf9bc 100644 --- a/pkg/jwtauth/jwtauth.go +++ b/pkg/jwtauth/jwtauth.go @@ -608,7 +608,7 @@ func (mw *GinJWTMiddleware) jwtFromHeader(c *gin.Context, key string) (string, e parts := strings.SplitN(authHeader, " ", 2) if !(len(parts) == 2 && parts[0] == mw.TokenHeadName) { - return "", ErrInvalidAuthHeader + return "-", ErrInvalidAuthHeader } return parts[1], nil From 5e56e3be09216db8609968ec74993b45897b62fc Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Fri, 19 Feb 2021 23:47:34 +0800 Subject: [PATCH 86/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=A8=A1?= =?UTF-8?q?=E7=89=88=E5=8F=8A=E6=B5=81=E7=A8=8B=E7=9A=84=E5=85=8B=E9=9A=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/process.go | 37 ++ apis/process/tpl.go | 30 ++ config/db.sql | 689 +++++++++++++++++++------------------- router/process/process.go | 1 + router/process/tpl.go | 1 + 5 files changed, 417 insertions(+), 341 deletions(-) diff --git a/apis/process/process.go b/apis/process/process.go index ba5d769..4dec819 100644 --- a/apis/process/process.go +++ b/apis/process/process.go @@ -3,6 +3,7 @@ package process import ( "errors" "ferry/global/orm" + "ferry/models/process" process2 "ferry/models/process" "ferry/pkg/pagination" "ferry/tools" @@ -205,3 +206,39 @@ func ClassifyProcessList(c *gin.Context) { app.OK(c, classifyList, "成功获取数据") } + +// 克隆流程 +func CloneProcess(c *gin.Context) { + var ( + err error + id string + info process.Info + ) + + id = c.Param("id") + + err = orm.Eloquent.Find(&info, id).Error + if err != nil { + app.Error(c, -1, err, "查询流程数据失败") + return + } + + err = orm.Eloquent.Create(&process.Info{ + Name: info.Name + "-copy", + Icon: info.Icon, + Structure: info.Structure, + Classify: info.Classify, + Tpls: info.Tpls, + Task: info.Task, + SubmitCount: info.SubmitCount, + Creator: tools.GetUserId(c), + Notice: info.Notice, + Remarks: info.Remarks, + }).Error + if err != nil { + app.Error(c, -1, err, "克隆流程失败") + return + } + + app.OK(c, nil, "") +} diff --git a/apis/process/tpl.go b/apis/process/tpl.go index 2f23a16..92c8cc2 100644 --- a/apis/process/tpl.go +++ b/apis/process/tpl.go @@ -154,3 +154,33 @@ func DeleteTemplate(c *gin.Context) { app.OK(c, "", "删除模版成功") } + +// 克隆模版 +func CloneTemplate(c *gin.Context) { + var ( + err error + id string + info process.TplInfo + ) + + id = c.Param("id") + + err = orm.Eloquent.Find(&info, id).Error + if err != nil { + app.Error(c, -1, err, "查询模版数据失败") + return + } + + err = orm.Eloquent.Create(&process.TplInfo{ + Name: info.Name + "-copy", + FormStructure: info.FormStructure, + Creator: tools.GetUserId(c), + Remarks: info.Remarks, + }).Error + if err != nil { + app.Error(c, -1, err, "克隆模版失败") + return + } + + app.OK(c, nil, "") +} diff --git a/config/db.sql b/config/db.sql index 6aa8e53..e0c19ff 100644 --- a/config/db.sql +++ b/config/db.sql @@ -100,179 +100,183 @@ INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, COMMIT; BEGIN; -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (2, 'Upms', '系统管理', 'example', '/upms', '/0/2', 'M', '无', '', 0, '1', '', 'Layout', 20, '0', '1', '11', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (3, 'Sysuser', '用户管理', 'user', 'sysuser', '/0/2/3', 'C', '无', 'system:sysuser:list', 2, NULL, NULL, '/system/sysuser/index', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (43, NULL, '新增用户', NULL, '/api/v1/sysuser', '/0/2/3/43', 'F', 'POST', 'system:sysuser:add', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (44, NULL, '查询用户', NULL, '/api/v1/sysuser', '/0/2/3/44', 'F', 'GET', 'system:sysuser:query', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (45, NULL, '修改用户', NULL, '/api/v1/sysuser/', '/0/2/3/45', 'F', 'PUT', 'system:sysuser:edit', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (46, NULL, '删除用户', NULL, '/api/v1/sysuser/', '/0/2/3/46', 'F', 'DELETE', 'system:sysuser:remove', 3, NULL, NULL, NULL, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (51, 'Menu', '菜单管理', 'tree-table', 'menu', '/0/2/51', 'C', '无', 'system:sysmenu:list', 2, '1', '', '/system/menu/index', 5, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (52, 'Role', '角色管理', 'peoples', 'role', '/0/2/52', 'C', '无', 'system:sysrole:list', 2, '1', '', '/system/role/index', 2, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (56, 'Dept', '部门管理', 'tree', 'dept', '/0/2/56', 'C', '无', 'system:sysdept:list', 2, '0', '', '/system/dept/index', 4, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (57, 'post', '岗位管理', 'pass', 'post', '/0/2/57', 'C', '无', 'system:syspost:list', 2, '0', '', '/system/post/index', 3, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (63, '', '接口权限', 'bug', '', '/0/63', 'M', '', '', 0, '0', '', '', 99, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (64, '', '用户管理', 'user', '', '/0/63/280/64', 'M', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (66, '', '菜单管理', 'tree-table', '', '/0/63/280/66', 'C', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (67, '', '菜单列表', 'tree-table', '/api/v1/menulist', '/0/63/66/67', 'A', 'GET', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (68, '', '新建菜单', 'tree', '/api/v1/menu', '/0/63/66/68', 'A', 'POST', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (72, '', '修改菜单', 'bug', '/api/v1/menu', '/0/63/66/72', 'A', 'PUT', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (73, '', '删除菜单', 'bug', '/api/v1/menu/:id', '/0/63/66/73', 'A', 'DELETE', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (74, NULL, '管理员列表', 'bug', '/api/v1/sysUserList', '/0/63/64/74', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (75, NULL, '根据id获取管理员', 'bug', '/api/v1/sysUser/:id', '/0/63/64/75', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (76, NULL, '获取管理员', 'bug', '/api/v1/sysUser/', '/0/63/64/76', 'A', 'GET', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (77, NULL, '创建管理员', 'bug', '/api/v1/sysUser', '/0/63/64/77', 'A', 'POST', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (78, NULL, '修改管理员', 'bug', '/api/v1/sysUser', '/0/63/64/78', 'A', 'PUT', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (79, NULL, '删除管理员', 'bug', '/api/v1/sysUser/:id', '/0/63/64/79', 'A', 'DELETE', NULL, 64, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (80, NULL, '当前用户个人信息', 'bug', '/api/v1/user/profile', '/0/63/256/267/80', 'A', 'GET', NULL, 267, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (81, NULL, '角色列表', 'bug', '/api/v1/rolelist', '/0/63/201/81', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (82, NULL, '获取角色信息', 'bug', '/api/v1/role/:id', '/0/63/201/82', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (83, NULL, '创建角色', 'bug', '/api/v1/role', '/0/63/201/83', 'A', 'POST', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (84, NULL, '修改角色', 'bug', '/api/v1/role', '/0/63/201/84', 'A', 'PUT', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (85, NULL, '删除角色', 'bug', '/api/v1/role/:id', '/0/63/201/85', 'A', 'DELETE', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (92, NULL, '获取角色菜单', 'bug', '/api/v1/menurole', '/0/63/256/92', 'A', 'GET', NULL, 256, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-09-27 22:46:35', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (93, NULL, '根据角色id获取角色', 'bug', '/api/v1/roleMenuTreeselect/:id', '/0/63/201/93', 'A', 'GET', NULL, 201, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (94, NULL, '获取菜单树', 'bug', '/api/v1/menuTreeselect', '/0/63/256/94', 'A', 'GET', NULL, 256, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (103, NULL, '部门菜单列表', 'bug', '/api/v1/deptList', '/0/63/203/103', 'A', 'GET', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (104, NULL, '根据id获取部门信息', 'bug', '/api/v1/dept/:id', '/0/63/203/104', 'A', 'GET', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (105, NULL, '创建部门', 'bug', '/api/v1/dept', '/0/63/203/105', 'A', 'POST', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (106, NULL, '修改部门', 'bug', '/api/v1/dept', '/0/63/203/106', 'A', 'PUT', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (107, NULL, '删除部门', 'bug', '/api/v1/dept/:id', '/0/63/203/107', 'A', 'DELETE', NULL, 203, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (119, NULL, '获取岗位列表', 'bug', '/api/v1/postlist', '/0/63/204/119', 'A', 'GET', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (120, NULL, '通过id获取岗位信息', 'bug', '/api/v1/post/:id', '/0/63/204/120', 'A', 'GET', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (121, NULL, '创建岗位', 'bug', '/api/v1/post', '/0/63/204/121', 'A', 'POST', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (122, NULL, '修改岗位', 'bug', '/api/v1/post', '/0/63/204/122', 'A', 'PUT', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (123, NULL, '删除岗位', 'bug', '/api/v1/post/:id', '/0/63/204/123', 'A', 'DELETE', NULL, 204, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (137, NULL, '菜单列表', 'bug', '/api/v1/menulist', '/0/63/66/137', 'A', 'GET', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (138, NULL, '获取根据id菜单信息', 'bug', '/api/v1/menu/:id', '/0/63/66/138', 'A', 'GET', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (139, NULL, '创建菜单', 'bug', '/api/v1/menu', '/0/63/66/139', 'A', 'POST', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (140, NULL, '修改菜单', 'bug', '/api/v1/menu/:id', '/0/63/66/140', 'A', 'PUT', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (141, NULL, '删除菜单', 'bug', '/api/v1/menu/:id', '', 'A', 'DELETE', NULL, 66, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (142, NULL, '获取角色对应的菜单id数组', 'bug', '/api/v1/menuids', '/0/63/256/142', 'A', 'GET', NULL, 256, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (201, '', '角色管理', 'peoples', '', '/0/63/280/201', 'C', 'GET', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (203, '', '部门管理', 'tree', '', '/0/63/280/203', 'C', 'POST', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (204, '', '岗位管理', 'pass', '', '/0/63/280/204', 'C', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (212, 'LoginLog', '登录日志', 'logininfor', '/loginlog', '/0/2/212', 'C', '', 'system:sysloginlog:list', 2, '0', '', '/system/loginlog/index', 6, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-08-18 23:07:15', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (213, NULL, '获取登录日志', 'bug', '/api/v1/loginloglist', '/0/63/214/213', 'A', 'GET', NULL, 214, NULL, NULL, NULL, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (214, '', '日志管理', 'log', '', '/0/63/280/214', 'M', 'GET', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (215, '', '删除日志', 'bug', '/api/v1/loginlog/:id', '/0/63/214/215', 'A', 'DELETE', '', 214, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (220, '', '新增菜单', '', '', '/0/2/51/220', 'F', '', 'system:sysmenu:add', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (221, '', '修改菜单', 'edit', '', '/0/2/51/221', 'F', '', 'system:sysmenu:edit', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (222, '', '查询菜单', 'search', '', '/0/2/51/222', 'F', '', 'system:sysmenu:query', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (223, '', '删除菜单', '', '', '/0/2/51/223', 'F', '', 'system:sysmenu:remove', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (224, '', '新增角色', '', '', '/0/2/52/224', 'F', '', 'system:sysrole:add', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (225, '', '查询角色', '', '', '/0/2/52/225', 'F', '', 'system:sysrole:query', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (226, '', '修改角色', '', '', '/0/2/52/226', 'F', '', 'system:sysrole:edit', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (227, '', '删除角色', '', '', '/0/2/52/227', 'F', '', 'system:sysrole:remove', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (228, '', '查询部门', '', '', '/0/2/56/228', 'F', '', 'system:sysdept:query', 56, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (229, '', '新增部门', '', '', '/0/2/56/229', 'F', '', 'system:sysdept:add', 56, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (230, '', '修改部门', '', '', '/0/2/56/230', 'F', '', 'system:sysdept:edit', 56, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (231, '', '删除部门', '', '', '/0/2/56/231', 'F', '', 'system:sysdept:remove', 56, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (232, '', '查询岗位', '', '', '/0/2/57/232', 'F', '', 'system:syspost:query', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (233, '', '新增岗位', '', '', '/0/2/57/233', 'F', '', 'system:syspost:add', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (234, '', '修改岗位', '', '', '/0/2/57/234', 'F', '', 'system:syspost:edit', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (235, '', '删除岗位', '', '', '/0/2/57/235', 'F', '', 'system:syspost:remove', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (244, '', '查询参数', '', '', '/0/2/62/244', 'F', '', 'system:sysconfig:query', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (245, '', '新增参数', '', '', '/0/2/62/245', 'F', '', 'system:sysconfig:add', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (246, '', '修改参数', '', '', '/0/2/62/246', 'F', '', 'system:sysconfig:edit', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (247, '', '删除参数', '', '', '/0/2/62/247', 'F', '', 'system:sysconfig:remove', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (248, '', '查询登录日志', '', '', '/0/2/211/212/248', 'F', '', 'system:sysloginlog:query', 212, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (249, '', '删除登录日志', '', '', '/0/2/211/212/249', 'F', '', 'system:sysloginlog:remove', 212, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (250, '', '查询操作日志', '', '', '/0/2/211/216/250', 'F', '', 'system:sysoperlog:query', 216, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (251, '', '删除操作日志', '', '', '/0/2/211/216/251', 'F', '', 'system:sysoperlog:remove', 216, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (252, '', '获取登录用户信息', '', '/api/v1/getinfo', '/0/63/256/252', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (254, '', '部门树接口【数据权限】', '', '/api/v1/roleDeptTreeselect/:id', '/0/63/256/254', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (255, '', '部门树【用户列表】', '', '/api/v1/deptTree', '/0/63/256/255', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (256, '', '必开接口', '', '', '/0/63/256', 'M', 'GET', '', 63, '0', '', '', 0, '1', '1', '', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (258, '', '退出登录', '', '/api/v1/logout', '/0/63/256/258', 'A', 'POST', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (259, '', '头像上传', '', '/api/v1/user/avatar', '/0/63/256/267/259', 'A', 'POST', '', 267, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (260, '', '修改密码', '', '/api/v1/user/pwd', '/0/63/256/260', 'A', 'PUT', '', 256, '0', '', '', 0, '1', '1', '', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (267, '', '个人中心', '', '', '/0/63/256/267', 'M', '', '', 256, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (268, 'Process', '工单系统', 'date-range', '/process', '/0/268', 'M', '', '', 0, '0', '', 'Layout', 10, '0', '1', '11', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (269, 'ApplyProcessList', '工单申请', 'form', '/process/apply-process-list', '/0/268/269', 'C', '', 'process:list:applyProcessList', 268, '0', '', '/process/list/apply-process-list', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (270, 'ProcessUpcoming', '我的待办', 'dict', '/process/upcoming', '/0/268/270', 'C', '', 'process:list:upcoming', 268, '0', '', '/process/list/upcoming', 5, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (271, 'ProcessMyCreate', '我创建的', 'row', '/process/my-create', '/0/268/271', 'C', '', 'process:list:myCreate', 268, '0', '', '/process/list/my-create', 10, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (272, 'ProcessRelated', '我相关的', 'excel', '/process/related', '/0/268/272', 'C', '', 'process:list:related', 268, '0', '', '/process/list/related', 15, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (273, 'ProcessAll', '所有工单', 'nested', '/process/all', '/0/268/273', 'C', '', 'process:list:all', 268, '0', '', '/process/list/all', 20, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (274, 'ProcessAdmin', '后台管理', 'lock', '/process-admin', '/0/268/274', 'M', '', '', 268, '0', '', '/menu-nesting/index', 25, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (275, 'ProcessAdminClassify', '流程分类', 'clipboard', '/process/admin/classify', '/0/268/274/275', 'C', '', 'process:admin:classify', 274, '0', '', '/process/admin/classify', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (276, 'ProcessAdminTemplate', '模版管理', 'component', '/process/admin/template-manager', '/0/268/274/276', 'C', '', 'process:admin:template', 274, '0', '', '/process/admin/template-manager', 5, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (277, 'ProcessAdminManager', '流程管理', 'time-range', '/process/admin/process-manager', '/0/268/274/277', 'C', '', ':process:admin:manager', 274, '0', '', '/process/admin/process-manager', 10, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (278, 'ProcessAdminTask', '任务管理', 'checkbox', '/process/admin/task-manager', '/0/268/274/278', 'C', '', 'process:admin:task', 274, '0', '', '/process/admin/task-manager', 15, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (280, '', '系统管理', 'calendar', '', '/0/63/280', 'M', '', '', 63, '0', '', '', 10, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (281, '', '工单系统', 'date-range', '', '/0/63/281', 'M', '', '', 63, '0', '', '', 5, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (282, '', '后台管理', 'system', '', '/0/63/281/282', 'M', '', '', 281, '0', '', '', 25, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (283, '', '流程分类', 'chart', '', '/0/63/281/282/283', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (284, '', '新建分类', 'bug', '/api/v1/classify', '/0/63/281/282/283/284', 'A', 'POST', '', 283, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (285, '', '分类列表', 'bug', '/api/v1/classify', '/0/63/281/282/283/285', 'A', 'GET', '', 283, '0', '', '', 5, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (287, '', '编辑分类', 'bug', '/api/v1/classify', '/0/63/281/282/283/287', 'A', 'PUT', '', 283, '0', '', '', 10, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (288, '', '删除分类', 'bug', '/api/v1/classify', '/0/63/281/282/283/288', 'A', 'DELETE', '', 283, '0', '', '', 15, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (290, '', '查看分类', '', '', '/0/268/274/275/290', 'F', '', 'process:admin:classify:list', 275, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (291, '', '新增分类', '', '', '/0/268/274/275/291', 'F', '', 'process:admin:classify:add', 275, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (292, '', '编辑分类', '', '', '/0/268/274/275/292', 'F', '', 'process:admin:classify:edit', 275, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (293, '', '删除分类', '', '', '/0/268/274/275/293', 'F', '', 'process:admin:classify:delete', 275, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (294, '', '模版管理', 'component', '', '/0/63/281/282/294', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (295, '', '新建模版', 'bug', '/api/v1/tpl', '/0/63/281/282/294/295', 'A', 'POST', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (296, '', '模版列表', 'bug', '/api/v1/tpl', '/0/63/281/282/294/296', 'A', 'GET', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (297, '', '编辑模版', 'bug', '/api/v1/tpl', '/0/63/281/282/294/297', 'A', 'PUT', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (298, '', '删除模版', 'bug', '/api/v1/tpl', '/0/63/281/282/294/298', 'A', 'DELETE', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (299, '', '模版详情', 'bug', '/api/v1/tpl/details', '/0/63/281/282/294/299', 'A', 'GET', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (300, '', '查看模版', '', '', '/0/268/274/276/300', 'F', '', 'process:admin:template:list', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (301, '', '新建模版', '', '', '/0/268/274/276/301', 'F', '', 'process:admin:template:add', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (302, '', '编辑模版', '', '', '/0/268/274/276/302', 'F', '', 'process:admin:template:edit', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (303, '', '删除模版', '', '', '/0/268/274/276/303', 'F', '', 'process:admin:template:delete', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (304, '', '查看模版', '', '', '/0/268/274/277/304', 'F', '', 'process:admin:manager:list', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (305, '', '新建模版', '', '', '/0/268/274/277/305', 'F', '', 'process:admin:manager:add', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (306, '', '编辑模版', '', '', '/0/268/274/277/306', 'F', '', 'process:admin:manager:edit', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (307, '', '删除模版', '', '', '/0/268/274/277/307', 'F', '', 'process:admin:manager:delete', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (309, '', '流程管理', 'example', '', '/0/63/281/282/309', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (310, '', '流程列表', 'bug', '/api/v1/process', '/0/63/281/282/309/310', 'A', 'GET', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (311, '', '新建流程', 'bug', '/api/v1/process', '/0/63/281/282/309/311', 'A', 'POST', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (312, '', '编辑流程', 'bug', '/api/v1/process', '/0/63/281/282/309/312', 'A', 'PUT', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (313, '', '删除流程', 'bug', '/api/v1/process', '/0/63/281/282/309/313', 'A', 'DELETE', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (314, '', '流程详情', 'bug', '/api/v1/process/details', '/0/63/281/282/309/314', 'A', 'GET', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (315, '', '分类流程', 'bug', '/api/v1/process/classify', '/0/63/281/282/309/315', 'A', 'GET', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (316, '', '任务管理', 'checkbox', '', '/0/63/281/282/316', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (317, '', '任务列表', 'bug', '/api/v1/task', '/0/63/281/282/316/317', 'A', 'GET', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (318, '', '新建任务', 'bug', '/api/v1/task', '/0/63/281/282/316/318', 'A', 'POST', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (319, '/api/v1/task', '编辑任务', 'bug', '/api/v1/task', '/0/63/281/282/316/319', 'A', 'PUT', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (320, '', '删除任务', 'bug', '/api/v1/task', '/0/63/281/282/316/320', 'A', 'DELETE', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (321, '', '任务详情', 'bug', '/api/v1/task/details', '/0/63/281/282/316/321', 'A', 'GET', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (322, '', '查看任务', '', '', '/0/268/274/278/322', 'F', '', 'process:admin:task:list', 278, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (323, '', '新增任务', '', '', '/0/268/274/278/323', 'F', '', 'process:admin:task:add', 278, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (324, '', '编辑任务', '', '', '/0/268/274/278/324', 'F', '', 'process:admin:task:edit', 278, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (325, '', '删除任务', '', '', '/0/268/274/278/325', 'F', '', 'process:admin:task:delete', 278, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (326, '', '工单申请', 'druid', '', '/0/63/281/326', 'M', '', '', 281, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (327, '', '分类流程', 'bug', '/api/v1/process/classify', '/0/63/281/326/327', 'A', 'GET', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (328, 'ProcessListCreate', '新建工单', 'guide', '/process/create-ticket', '/0/268/328', 'C', '', 'process:menu:list:create', 268, '0', '', '/process/list/create', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (329, 'ProcessListHandle', '处理工单', 'monitor', '/process/handle-ticket', '/0/268/329', 'C', '', 'process:menu:list:handle', 268, '0', '', '/process/list/handle', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (330, '', '新建工单', 'bug', '/api/v1/work-order/create', '/0/63/281/326/330', 'A', 'POST', '', 326, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (331, '', '处理工单', 'bug', '/api/v1/work-order/handle', '/0/63/281/326/331', 'A', 'POST', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (332, '', '流程数据', 'bug', '/api/v1/work-order/process-structure', '/0/63/281/326/332', 'A', 'GET', '', 326, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (333, '', '工单列表', 'build', '', '/0/63/281/333', 'M', '', '', 281, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (334, '', '工单列表', 'bug', '/api/v1/work-order/list', '/0/63/281/333/334', 'A', 'GET', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (335, '', '结束工单', 'bug', '/api/v1/work-order/unity', '/0/63/281/333/335', 'A', 'GET', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (336, '', '转交工单', 'bug', '/api/v1/work-order/inversion', '/0/63/281/333/336', 'A', 'POST', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (337, '', '查看工单', '', '', '/0/268/273/337', 'F', '', 'process:list:all:select', 273, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (338, '', '转交工单', '', '', '/0/268/273/338', 'F', '', 'process:list:all:inversion', 273, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (339, '', '结束工单', '', '', '/0/268/273/339', 'F', '', 'process:list:all:end', 273, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (340, '', '查看工单', '', '', '/0/268/272/340', 'F', '', 'process:list:related:select', 272, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (341, '', '查看工单', '', '', '/0/268/271/341', 'F', '', 'process:list:myCreate:select', 271, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (342, '', '查看工单', '', '', '/0/268/270/342', 'F', '', 'process:list:upcoming:select', 270, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (343, '', '转交工单', '', '', '/0/268/270/343', 'F', '', 'process:list:upcoming:inversion', 270, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (344, '', '首页数据', '', '/api/v1/dashboard', '/0/63/256/344', 'A', 'GET', '', 256, '0', '', '', 0, '1', '11', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (350, '', '催办工单', '', '', '/0/268/270/350', 'F', '', 'process:list:upcoming:urge', 270, '0', '', '', 0, '0', '11', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (351, '', '催办工单', 'bug', '/api/v1/work-order/urge', '/0/63/281/333/351', 'A', 'GET', '', 333, '0', '', '', 0, '1', '11', '11', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (352, 'Settings', '系统配置', 'system', 'settings', '/0/2/352', 'C', '', 'system:settings:index', 2, '0', '', '/system/settings/index', 7, '0', '1', '1', 1, '2020-08-18 21:44:58', '2020-08-18 23:07:11', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (353, '', '系统配置', 'system', '', '/0/63/280/353', 'M', '', '', 280, '0', '', '', 2, '1', '1', '1', 0, '2020-08-19 00:40:11', '2020-08-19 00:41:32', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (354, '', '设置配置', 'bug', '/api/v1/settings', '/0/63/280/353/354', 'A', 'POST', '', 353, '0', '', '', 1, '1', '1', '1', 1, '2020-08-19 00:41:01', '2020-08-19 00:42:25', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (355, '', '获取配置', 'bug', '/api/v1/settings', '/0/63/280/353/355', 'A', 'GET', '', 353, '0', '', '', 0, '1', '1', '', 1, '2020-08-19 00:42:47', '2020-08-19 00:42:47', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (356, '', '清空登陆日志', '', '', '/0/2/212/356', 'F', '', 'system:sysloginlog:clean', 212, '0', '', '', 0, '0', '1', '', 1, '2020-08-26 21:48:59', '2020-08-26 21:48:59', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (357, '', '清空登陆日志', 'bug', '/api/v1/loginlog', '/0/63/280/214/357', 'A', 'DELETE', '', 214, '0', '', '', 0, '1', '1', '', 1, '2020-08-26 22:02:16', '2020-08-26 22:02:16', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (360, '', '主动接单', 'bug', '/api/v1/work-order/active-order/:id', '/0/63/281/326/360', 'A', 'PUT', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-09-01 19:02:01', '2020-09-01 19:02:10', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (361, '', '主动接单', '', '', '/0/268/329/361', 'F', '', 'process:list:handle:active', 329, '0', '', '', 0, '0', '1', '', 1, '2020-09-01 19:03:52', '2020-09-01 19:03:52', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (363, '', '删除工单', 'bug', '/api/v1/work-order/delete/:id', '/0/63/281/333/363', 'A', 'DELETE', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-09-27 22:50:52', '2020-09-27 22:50:52', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (364, '', '删除工单', '', '', '/0/268/273/364', 'F', '', 'process:list:all:delete', 273, '0', '', '', 0, '0', '1', '', 1, '2020-09-27 22:51:38', '2020-09-27 22:51:38', NULL); -INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `title`, `icon`, `path`, `paths`, `menu_type`, `action`, `permission`, `parent_id`, `no_cache`, `breadcrumb`, `component`, `sort`, `visible`, `create_by`, `update_by`, `is_frame`, `create_time`, `update_time`, `delete_time`) VALUES (365, '', '部门列表', 'bug', '/api/v1/ordinaryDeptList', '/0/63/280/203/365', 'A', 'GET', '', 203, '0', '', '', 0, '1', '1', '', 1, '2020-11-15 18:34:14', '2020-11-15 18:34:14', NULL); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (2, 'Upms', '系统管理', 'example', '/upms', '/0/2', 'M', '无', '', 0, '1', '', 'Layout', 20, '0', '1', '11', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (3, 'Sysuser', '用户管理', 'user', 'sysuser', '/0/2/3', 'C', '无', 'system:sysuser:list', 2, null, null, '/system/sysuser/index', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (43, null, '新增用户', null, '/api/v1/sysuser', '/0/2/3/43', 'F', 'POST', 'system:sysuser:add', 3, null, null, null, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (44, null, '查询用户', null, '/api/v1/sysuser', '/0/2/3/44', 'F', 'GET', 'system:sysuser:query', 3, null, null, null, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (45, null, '修改用户', null, '/api/v1/sysuser/', '/0/2/3/45', 'F', 'PUT', 'system:sysuser:edit', 3, null, null, null, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (46, null, '删除用户', null, '/api/v1/sysuser/', '/0/2/3/46', 'F', 'DELETE', 'system:sysuser:remove', 3, null, null, null, 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (51, 'Menu', '菜单管理', 'tree-table', 'menu', '/0/2/51', 'C', '无', 'system:sysmenu:list', 2, '1', '', '/system/menu/index', 5, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (52, 'Role', '角色管理', 'peoples', 'role', '/0/2/52', 'C', '无', 'system:sysrole:list', 2, '1', '', '/system/role/index', 2, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (56, 'Dept', '部门管理', 'tree', 'dept', '/0/2/56', 'C', '无', 'system:sysdept:list', 2, '0', '', '/system/dept/index', 4, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (57, 'post', '岗位管理', 'pass', 'post', '/0/2/57', 'C', '无', 'system:syspost:list', 2, '0', '', '/system/post/index', 3, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (63, '', '接口权限', 'bug', '', '/0/63', 'M', '', '', 0, '0', '', '', 99, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (64, '', '用户管理', 'user', '', '/0/63/280/64', 'M', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (66, '', '菜单管理', 'tree-table', '', '/0/63/280/66', 'C', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (67, '', '菜单列表', 'tree-table', '/api/v1/menulist', '/0/63/66/67', 'A', 'GET', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (68, '', '新建菜单', 'tree', '/api/v1/menu', '/0/63/66/68', 'A', 'POST', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (72, '', '修改菜单', 'bug', '/api/v1/menu', '/0/63/66/72', 'A', 'PUT', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (73, '', '删除菜单', 'bug', '/api/v1/menu/:id', '/0/63/66/73', 'A', 'DELETE', '', 66, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (74, null, '管理员列表', 'bug', '/api/v1/sysUserList', '/0/63/64/74', 'A', 'GET', null, 64, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (75, null, '根据id获取管理员', 'bug', '/api/v1/sysUser/:id', '/0/63/64/75', 'A', 'GET', null, 64, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (76, null, '获取管理员', 'bug', '/api/v1/sysUser/', '/0/63/64/76', 'A', 'GET', null, 64, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (77, null, '创建管理员', 'bug', '/api/v1/sysUser', '/0/63/64/77', 'A', 'POST', null, 64, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (78, null, '修改管理员', 'bug', '/api/v1/sysUser', '/0/63/64/78', 'A', 'PUT', null, 64, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (79, null, '删除管理员', 'bug', '/api/v1/sysUser/:id', '/0/63/64/79', 'A', 'DELETE', null, 64, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (80, null, '当前用户个人信息', 'bug', '/api/v1/user/profile', '/0/63/256/267/80', 'A', 'GET', null, 267, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (81, null, '角色列表', 'bug', '/api/v1/rolelist', '/0/63/201/81', 'A', 'GET', null, 201, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (82, null, '获取角色信息', 'bug', '/api/v1/role/:id', '/0/63/201/82', 'A', 'GET', null, 201, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (83, null, '创建角色', 'bug', '/api/v1/role', '/0/63/201/83', 'A', 'POST', null, 201, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (84, null, '修改角色', 'bug', '/api/v1/role', '/0/63/201/84', 'A', 'PUT', null, 201, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (85, null, '删除角色', 'bug', '/api/v1/role/:id', '/0/63/201/85', 'A', 'DELETE', null, 201, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (92, null, '获取角色菜单', 'bug', '/api/v1/menurole', '/0/63/256/92', 'A', 'GET', null, 256, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-09-27 22:46:35', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (93, null, '根据角色id获取角色', 'bug', '/api/v1/roleMenuTreeselect/:id', '/0/63/201/93', 'A', 'GET', null, 201, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (94, null, '获取菜单树', 'bug', '/api/v1/menuTreeselect', '/0/63/256/94', 'A', 'GET', null, 256, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (103, null, '部门菜单列表', 'bug', '/api/v1/deptList', '/0/63/203/103', 'A', 'GET', null, 203, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (104, null, '根据id获取部门信息', 'bug', '/api/v1/dept/:id', '/0/63/203/104', 'A', 'GET', null, 203, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (105, null, '创建部门', 'bug', '/api/v1/dept', '/0/63/203/105', 'A', 'POST', null, 203, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (106, null, '修改部门', 'bug', '/api/v1/dept', '/0/63/203/106', 'A', 'PUT', null, 203, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (107, null, '删除部门', 'bug', '/api/v1/dept/:id', '/0/63/203/107', 'A', 'DELETE', null, 203, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (119, null, '获取岗位列表', 'bug', '/api/v1/postlist', '/0/63/204/119', 'A', 'GET', null, 204, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (120, null, '通过id获取岗位信息', 'bug', '/api/v1/post/:id', '/0/63/204/120', 'A', 'GET', null, 204, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (121, null, '创建岗位', 'bug', '/api/v1/post', '/0/63/204/121', 'A', 'POST', null, 204, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (122, null, '修改岗位', 'bug', '/api/v1/post', '/0/63/204/122', 'A', 'PUT', null, 204, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (123, null, '删除岗位', 'bug', '/api/v1/post/:id', '/0/63/204/123', 'A', 'DELETE', null, 204, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (137, null, '菜单列表', 'bug', '/api/v1/menulist', '/0/63/66/137', 'A', 'GET', null, 66, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (138, null, '获取根据id菜单信息', 'bug', '/api/v1/menu/:id', '/0/63/66/138', 'A', 'GET', null, 66, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (139, null, '创建菜单', 'bug', '/api/v1/menu', '/0/63/66/139', 'A', 'POST', null, 66, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (140, null, '修改菜单', 'bug', '/api/v1/menu/:id', '/0/63/66/140', 'A', 'PUT', null, 66, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (141, null, '删除菜单', 'bug', '/api/v1/menu/:id', '', 'A', 'DELETE', null, 66, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (142, null, '获取角色对应的菜单id数组', 'bug', '/api/v1/menuids', '/0/63/256/142', 'A', 'GET', null, 256, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (201, '', '角色管理', 'peoples', '', '/0/63/280/201', 'C', 'GET', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (203, '', '部门管理', 'tree', '', '/0/63/280/203', 'C', 'POST', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (204, '', '岗位管理', 'pass', '', '/0/63/280/204', 'C', '', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (212, 'LoginLog', '登录日志', 'logininfor', '/loginlog', '/0/2/212', 'C', '', 'system:sysloginlog:list', 2, '0', '', '/system/loginlog/index', 6, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-08-18 23:07:15', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (213, null, '获取登录日志', 'bug', '/api/v1/loginloglist', '/0/63/214/213', 'A', 'GET', null, 214, null, null, null, 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (214, '', '日志管理', 'log', '', '/0/63/280/214', 'M', 'GET', '', 280, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (215, '', '删除日志', 'bug', '/api/v1/loginlog/:id', '/0/63/214/215', 'A', 'DELETE', '', 214, '0', '', '', 1, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (220, '', '新增菜单', '', '', '/0/2/51/220', 'F', '', 'system:sysmenu:add', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (221, '', '修改菜单', 'edit', '', '/0/2/51/221', 'F', '', 'system:sysmenu:edit', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (222, '', '查询菜单', 'search', '', '/0/2/51/222', 'F', '', 'system:sysmenu:query', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (223, '', '删除菜单', '', '', '/0/2/51/223', 'F', '', 'system:sysmenu:remove', 51, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (224, '', '新增角色', '', '', '/0/2/52/224', 'F', '', 'system:sysrole:add', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (225, '', '查询角色', '', '', '/0/2/52/225', 'F', '', 'system:sysrole:query', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (226, '', '修改角色', '', '', '/0/2/52/226', 'F', '', 'system:sysrole:edit', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (227, '', '删除角色', '', '', '/0/2/52/227', 'F', '', 'system:sysrole:remove', 52, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (228, '', '查询部门', '', '', '/0/2/56/228', 'F', '', 'system:sysdept:query', 56, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (229, '', '新增部门', '', '', '/0/2/56/229', 'F', '', 'system:sysdept:add', 56, '0', '', '', 1, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (230, '', '修改部门', '', '', '/0/2/56/230', 'F', '', 'system:sysdept:edit', 56, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (231, '', '删除部门', '', '', '/0/2/56/231', 'F', '', 'system:sysdept:remove', 56, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (232, '', '查询岗位', '', '', '/0/2/57/232', 'F', '', 'system:syspost:query', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (233, '', '新增岗位', '', '', '/0/2/57/233', 'F', '', 'system:syspost:add', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (234, '', '修改岗位', '', '', '/0/2/57/234', 'F', '', 'system:syspost:edit', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (235, '', '删除岗位', '', '', '/0/2/57/235', 'F', '', 'system:syspost:remove', 57, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (244, '', '查询参数', '', '', '/0/2/62/244', 'F', '', 'system:sysconfig:query', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (245, '', '新增参数', '', '', '/0/2/62/245', 'F', '', 'system:sysconfig:add', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (246, '', '修改参数', '', '', '/0/2/62/246', 'F', '', 'system:sysconfig:edit', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (247, '', '删除参数', '', '', '/0/2/62/247', 'F', '', 'system:sysconfig:remove', 62, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (248, '', '查询登录日志', '', '', '/0/2/211/212/248', 'F', '', 'system:sysloginlog:query', 212, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (249, '', '删除登录日志', '', '', '/0/2/211/212/249', 'F', '', 'system:sysloginlog:remove', 212, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (250, '', '查询操作日志', '', '', '/0/2/211/216/250', 'F', '', 'system:sysoperlog:query', 216, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (251, '', '删除操作日志', '', '', '/0/2/211/216/251', 'F', '', 'system:sysoperlog:remove', 216, '0', '', '', 0, '0', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (252, '', '获取登录用户信息', '', '/api/v1/getinfo', '/0/63/256/252', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (254, '', '部门树接口【数据权限】', '', '/api/v1/roleDeptTreeselect/:id', '/0/63/256/254', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (255, '', '部门树【用户列表】', '', '/api/v1/deptTree', '/0/63/256/255', 'A', 'GET', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (256, '', '必开接口', '', '', '/0/63/256', 'M', 'GET', '', 63, '0', '', '', 0, '1', '1', '', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (258, '', '退出登录', '', '/api/v1/logout', '/0/63/256/258', 'A', 'POST', '', 256, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (259, '', '头像上传', '', '/api/v1/user/avatar', '/0/63/256/267/259', 'A', 'POST', '', 267, '0', '', '', 0, '1', '1', '1', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (260, '', '修改密码', '', '/api/v1/user/pwd', '/0/63/256/260', 'A', 'PUT', '', 256, '0', '', '', 0, '1', '1', '', 0, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (267, '', '个人中心', '', '', '/0/63/256/267', 'M', '', '', 256, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (268, 'Process', '工单系统', 'date-range', '/process', '/0/268', 'M', '', '', 0, '0', '', 'Layout', 10, '0', '1', '11', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (269, 'ApplyProcessList', '工单申请', 'form', '/process/apply-process-list', '/0/268/269', 'C', '', 'process:list:applyProcessList', 268, '0', '', '/process/list/apply-process-list', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (270, 'ProcessUpcoming', '我的待办', 'dict', '/process/upcoming', '/0/268/270', 'C', '', 'process:list:upcoming', 268, '0', '', '/process/list/upcoming', 5, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (271, 'ProcessMyCreate', '我创建的', 'row', '/process/my-create', '/0/268/271', 'C', '', 'process:list:myCreate', 268, '0', '', '/process/list/my-create', 10, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (272, 'ProcessRelated', '我相关的', 'excel', '/process/related', '/0/268/272', 'C', '', 'process:list:related', 268, '0', '', '/process/list/related', 15, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (273, 'ProcessAll', '所有工单', 'nested', '/process/all', '/0/268/273', 'C', '', 'process:list:all', 268, '0', '', '/process/list/all', 20, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (274, 'ProcessAdmin', '后台管理', 'lock', '/process-admin', '/0/268/274', 'M', '', '', 268, '0', '', '/menu-nesting/index', 25, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (275, 'ProcessAdminClassify', '流程分类', 'clipboard', '/process/admin/classify', '/0/268/274/275', 'C', '', 'process:admin:classify', 274, '0', '', '/process/admin/classify', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (276, 'ProcessAdminTemplate', '模版管理', 'component', '/process/admin/template-manager', '/0/268/274/276', 'C', '', 'process:admin:template', 274, '0', '', '/process/admin/template-manager', 5, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (277, 'ProcessAdminManager', '流程管理', 'time-range', '/process/admin/process-manager', '/0/268/274/277', 'C', '', 'process:admin:manager', 274, '0', '', '/process/admin/process-manager', 10, '0', '1', '1', 1, '2020-07-26 21:51:44', '2021-02-19 23:16:33', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (278, 'ProcessAdminTask', '任务管理', 'checkbox', '/process/admin/task-manager', '/0/268/274/278', 'C', '', 'process:admin:task', 274, '0', '', '/process/admin/task-manager', 15, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (280, '', '系统管理', 'calendar', '', '/0/63/280', 'M', '', '', 63, '0', '', '', 10, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (281, '', '工单系统', 'date-range', '', '/0/63/281', 'M', '', '', 63, '0', '', '', 5, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (282, '', '后台管理', 'system', '', '/0/63/281/282', 'M', '', '', 281, '0', '', '', 25, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (283, '', '流程分类', 'chart', '', '/0/63/281/282/283', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (284, '', '新建分类', 'bug', '/api/v1/classify', '/0/63/281/282/283/284', 'A', 'POST', '', 283, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (285, '', '分类列表', 'bug', '/api/v1/classify', '/0/63/281/282/283/285', 'A', 'GET', '', 283, '0', '', '', 5, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (287, '', '编辑分类', 'bug', '/api/v1/classify', '/0/63/281/282/283/287', 'A', 'PUT', '', 283, '0', '', '', 10, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (288, '', '删除分类', 'bug', '/api/v1/classify', '/0/63/281/282/283/288', 'A', 'DELETE', '', 283, '0', '', '', 15, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (290, '', '查看分类', '', '', '/0/268/274/275/290', 'F', '', 'process:admin:classify:list', 275, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (291, '', '新增分类', '', '', '/0/268/274/275/291', 'F', '', 'process:admin:classify:add', 275, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (292, '', '编辑分类', '', '', '/0/268/274/275/292', 'F', '', 'process:admin:classify:edit', 275, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (293, '', '删除分类', '', '', '/0/268/274/275/293', 'F', '', 'process:admin:classify:delete', 275, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (294, '', '模版管理', 'component', '', '/0/63/281/282/294', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (295, '', '新建模版', 'bug', '/api/v1/tpl', '/0/63/281/282/294/295', 'A', 'POST', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (296, '', '模版列表', 'bug', '/api/v1/tpl', '/0/63/281/282/294/296', 'A', 'GET', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (297, '', '编辑模版', 'bug', '/api/v1/tpl', '/0/63/281/282/294/297', 'A', 'PUT', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (298, '', '删除模版', 'bug', '/api/v1/tpl', '/0/63/281/282/294/298', 'A', 'DELETE', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (299, '', '模版详情', 'bug', '/api/v1/tpl/details', '/0/63/281/282/294/299', 'A', 'GET', '', 294, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (300, '', '查看模版', '', '', '/0/268/274/276/300', 'F', '', 'process:admin:template:list', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (301, '', '新建模版', '', '', '/0/268/274/276/301', 'F', '', 'process:admin:template:add', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (302, '', '编辑模版', '', '', '/0/268/274/276/302', 'F', '', 'process:admin:template:edit', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (303, '', '删除模版', '', '', '/0/268/274/276/303', 'F', '', 'process:admin:template:delete', 276, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (304, '', '查看流程', '', '', '/0/268/274/277/304', 'F', '', 'process:admin:manager:list', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2021-02-19 23:36:26', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (305, '', '新建流程', '', '', '/0/268/274/277/305', 'F', '', 'process:admin:manager:add', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2021-02-19 23:36:31', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (306, '', '编辑流程', '', '', '/0/268/274/277/306', 'F', '', 'process:admin:manager:edit', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2021-02-19 23:36:37', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (307, '', '删除流程', '', '', '/0/268/274/277/307', 'F', '', 'process:admin:manager:delete', 277, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2021-02-19 23:36:41', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (309, '', '流程管理', 'example', '', '/0/63/281/282/309', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (310, '', '流程列表', 'bug', '/api/v1/process', '/0/63/281/282/309/310', 'A', 'GET', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (311, '', '新建流程', 'bug', '/api/v1/process', '/0/63/281/282/309/311', 'A', 'POST', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (312, '', '编辑流程', 'bug', '/api/v1/process', '/0/63/281/282/309/312', 'A', 'PUT', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (313, '', '删除流程', 'bug', '/api/v1/process', '/0/63/281/282/309/313', 'A', 'DELETE', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (314, '', '流程详情', 'bug', '/api/v1/process/details', '/0/63/281/282/309/314', 'A', 'GET', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (315, '', '分类流程', 'bug', '/api/v1/process/classify', '/0/63/281/282/309/315', 'A', 'GET', '', 309, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (316, '', '任务管理', 'checkbox', '', '/0/63/281/282/316', 'M', '', '', 282, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (317, '', '任务列表', 'bug', '/api/v1/task', '/0/63/281/282/316/317', 'A', 'GET', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (318, '', '新建任务', 'bug', '/api/v1/task', '/0/63/281/282/316/318', 'A', 'POST', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (319, '/api/v1/task', '编辑任务', 'bug', '/api/v1/task', '/0/63/281/282/316/319', 'A', 'PUT', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (320, '', '删除任务', 'bug', '/api/v1/task', '/0/63/281/282/316/320', 'A', 'DELETE', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (321, '', '任务详情', 'bug', '/api/v1/task/details', '/0/63/281/282/316/321', 'A', 'GET', '', 316, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (322, '', '查看任务', '', '', '/0/268/274/278/322', 'F', '', 'process:admin:task:list', 278, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (323, '', '新增任务', '', '', '/0/268/274/278/323', 'F', '', 'process:admin:task:add', 278, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (324, '', '编辑任务', '', '', '/0/268/274/278/324', 'F', '', 'process:admin:task:edit', 278, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (325, '', '删除任务', '', '', '/0/268/274/278/325', 'F', '', 'process:admin:task:delete', 278, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (326, '', '工单申请', 'druid', '', '/0/63/281/326', 'M', '', '', 281, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (327, '', '分类流程', 'bug', '/api/v1/process/classify', '/0/63/281/326/327', 'A', 'GET', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (328, 'ProcessListCreate', '新建工单', 'guide', '/process/create-ticket', '/0/268/328', 'C', '', 'process:menu:list:create', 268, '0', '', '/process/list/create', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (329, 'ProcessListHandle', '处理工单', 'monitor', '/process/handle-ticket', '/0/268/329', 'C', '', 'process:menu:list:handle', 268, '0', '', '/process/list/handle', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (330, '', '新建工单', 'bug', '/api/v1/work-order/create', '/0/63/281/326/330', 'A', 'POST', '', 326, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (331, '', '处理工单', 'bug', '/api/v1/work-order/handle', '/0/63/281/326/331', 'A', 'POST', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (332, '', '流程数据', 'bug', '/api/v1/work-order/process-structure', '/0/63/281/326/332', 'A', 'GET', '', 326, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (333, '', '工单列表', 'build', '', '/0/63/281/333', 'M', '', '', 281, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (334, '', '工单列表', 'bug', '/api/v1/work-order/list', '/0/63/281/333/334', 'A', 'GET', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (335, '', '结束工单', 'bug', '/api/v1/work-order/unity', '/0/63/281/333/335', 'A', 'GET', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (336, '', '转交工单', 'bug', '/api/v1/work-order/inversion', '/0/63/281/333/336', 'A', 'POST', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (337, '', '查看工单', '', '', '/0/268/273/337', 'F', '', 'process:list:all:select', 273, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (338, '', '转交工单', '', '', '/0/268/273/338', 'F', '', 'process:list:all:inversion', 273, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (339, '', '结束工单', '', '', '/0/268/273/339', 'F', '', 'process:list:all:end', 273, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (340, '', '查看工单', '', '', '/0/268/272/340', 'F', '', 'process:list:related:select', 272, '0', '', '', 0, '0', '1', '1', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (341, '', '查看工单', '', '', '/0/268/271/341', 'F', '', 'process:list:myCreate:select', 271, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (342, '', '查看工单', '', '', '/0/268/270/342', 'F', '', 'process:list:upcoming:select', 270, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (343, '', '转交工单', '', '', '/0/268/270/343', 'F', '', 'process:list:upcoming:inversion', 270, '0', '', '', 0, '0', '1', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (344, '', '首页数据', '', '/api/v1/dashboard', '/0/63/256/344', 'A', 'GET', '', 256, '0', '', '', 0, '1', '11', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (350, '', '催办工单', '', '', '/0/268/270/350', 'F', '', 'process:list:upcoming:urge', 270, '0', '', '', 0, '0', '11', '', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (351, '', '催办工单', 'bug', '/api/v1/work-order/urge', '/0/63/281/333/351', 'A', 'GET', '', 333, '0', '', '', 0, '1', '11', '11', 1, '2020-07-26 21:51:44', '2020-07-26 21:52:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (352, 'Settings', '系统配置', 'system', 'settings', '/0/2/352', 'C', '', 'system:settings:index', 2, '0', '', '/system/settings/index', 7, '0', '1', '1', 1, '2020-08-18 21:44:58', '2020-08-18 23:07:11', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (353, '', '系统配置', 'system', '', '/0/63/280/353', 'M', '', '', 280, '0', '', '', 2, '1', '1', '1', 0, '2020-08-19 00:40:11', '2020-08-19 00:41:32', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (354, '', '设置配置', 'bug', '/api/v1/settings', '/0/63/280/353/354', 'A', 'POST', '', 353, '0', '', '', 1, '1', '1', '1', 1, '2020-08-19 00:41:01', '2020-08-19 00:42:25', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (355, '', '获取配置', 'bug', '/api/v1/settings', '/0/63/280/353/355', 'A', 'GET', '', 353, '0', '', '', 0, '1', '1', '', 1, '2020-08-19 00:42:47', '2020-08-19 00:42:47', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (356, '', '清空登陆日志', '', '', '/0/2/212/356', 'F', '', 'system:sysloginlog:clean', 212, '0', '', '', 0, '0', '1', '', 1, '2020-08-26 21:48:59', '2020-08-26 21:48:59', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (357, '', '清空登陆日志', 'bug', '/api/v1/loginlog', '/0/63/280/214/357', 'A', 'DELETE', '', 214, '0', '', '', 0, '1', '1', '', 1, '2020-08-26 22:02:16', '2020-08-26 22:02:16', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (360, '', '主动接单', 'bug', '/api/v1/work-order/active-order/:id', '/0/63/281/326/360', 'A', 'PUT', '', 326, '0', '', '', 0, '1', '1', '1', 1, '2020-09-01 19:02:01', '2020-09-01 19:02:10', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (361, '', '主动接单', '', '', '/0/268/329/361', 'F', '', 'process:list:handle:active', 329, '0', '', '', 0, '0', '1', '', 1, '2020-09-01 19:03:52', '2020-09-01 19:03:52', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (363, '', '删除工单', 'bug', '/api/v1/work-order/delete/:id', '/0/63/281/333/363', 'A', 'DELETE', '', 333, '0', '', '', 0, '1', '1', '', 1, '2020-09-27 22:50:52', '2020-09-27 22:50:52', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (364, '', '删除工单', '', '', '/0/268/273/364', 'F', '', 'process:list:all:delete', 273, '0', '', '', 0, '0', '1', '', 1, '2020-09-27 22:51:38', '2020-09-27 22:51:38', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (365, '', '部门列表', 'bug', '/api/v1/ordinaryDeptList', '/0/63/280/203/365', 'A', 'GET', '', 203, '0', '', '', 0, '1', '1', '', 1, '2020-11-15 18:34:14', '2020-11-15 18:34:14', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (366, '', '克隆模版', '', '', '/0/268/274/276/366', 'F', '', 'process:admin:template:clone', 276, '0', '', '', 0, '0', '1', '', 1, '2021-02-19 22:43:21', '2021-02-19 22:43:21', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (367, '', '克隆模版', 'bug', '/api/v1/tpl/clone/:id', '/0/63/281/282/294/367', 'A', 'POST', '', 294, '0', '', '', 0, '1', '1', '', 1, '2021-02-19 23:00:31', '2021-02-19 23:00:31', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (368, '', '克隆流程', '', '', '/0/268/274/277/368', 'F', '', 'process:admin:manager:clone', 277, '0', '', '', 0, '0', '1', '1', 1, '2021-02-19 23:17:46', '2021-02-19 23:36:46', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (369, '', '克隆流程', 'bug', '/api/v1/process/clone/:id', '/0/63/281/282/309/369', 'A', 'POST', '', 309, '0', '', '', 0, '1', '1', '', 1, '2021-02-19 23:25:18', '2021-02-19 23:25:18', null); COMMIT; BEGIN; @@ -288,174 +292,177 @@ INSERT INTO `sys_role`(`role_id`, `role_name`, `status`, `role_key`, `role_sort` COMMIT; BEGIN; -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 2, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 3, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 43, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 44, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 45, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 46, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 51, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 52, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 56, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 57, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 63, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 64, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 66, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 67, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 68, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 72, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 73, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 74, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 75, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 76, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 77, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 78, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 79, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 80, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 81, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 82, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 83, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 84, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 85, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 92, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 93, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 94, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 95, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 96, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 97, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 103, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 104, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 105, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 106, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 107, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 119, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 120, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 121, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 122, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 123, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 137, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 138, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 139, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 140, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 141, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 142, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 201, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 203, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 204, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 205, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 212, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 213, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 214, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 215, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 220, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 221, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 222, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 223, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 224, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 225, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 226, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 227, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 228, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 229, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 230, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 231, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 232, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 233, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 234, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 235, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 248, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 249, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 252, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 254, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 255, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 256, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 258, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 259, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 260, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 267, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 268, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 269, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 270, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 271, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 272, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 273, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 274, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 275, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 276, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 277, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 278, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 280, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 281, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 282, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 283, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 284, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 285, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 287, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 288, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 290, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 291, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 292, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 293, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 294, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 295, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 296, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 297, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 298, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 299, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 300, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 301, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 302, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 303, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 304, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 305, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 306, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 307, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 309, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 310, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 311, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 312, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 313, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 314, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 315, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 316, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 317, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 318, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 319, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 320, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 321, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 322, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 323, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 324, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 325, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 326, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 327, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 328, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 329, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 330, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 331, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 332, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 333, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 334, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 335, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 336, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 337, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 338, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 339, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 340, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 341, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 342, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 343, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 344, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 350, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 351, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 352, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 353, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 354, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 355, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 356, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 357, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 358, 'admin', NULL, NULL); -INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (1, 359, 'admin', NULL, NULL); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 2, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 3, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 43, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 44, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 45, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 46, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 51, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 52, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 56, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 57, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 63, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 64, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 66, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 67, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 68, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 72, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 73, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 74, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 75, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 76, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 77, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 78, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 79, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 80, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 81, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 82, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 83, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 84, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 85, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 92, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 93, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 94, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 103, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 104, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 105, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 106, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 107, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 119, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 120, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 121, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 122, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 123, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 137, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 138, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 139, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 140, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 141, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 142, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 201, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 203, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 204, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 212, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 213, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 214, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 215, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 220, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 221, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 222, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 223, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 224, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 225, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 226, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 227, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 228, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 229, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 230, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 231, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 232, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 233, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 234, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 235, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 248, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 249, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 252, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 254, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 255, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 256, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 258, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 259, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 260, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 267, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 268, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 269, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 270, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 271, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 272, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 273, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 274, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 275, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 276, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 277, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 278, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 280, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 281, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 282, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 283, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 284, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 285, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 287, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 288, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 290, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 291, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 292, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 293, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 294, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 295, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 296, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 297, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 298, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 299, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 300, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 301, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 302, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 303, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 304, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 305, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 306, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 307, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 309, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 310, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 311, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 312, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 313, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 314, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 315, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 316, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 317, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 318, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 319, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 320, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 321, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 322, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 323, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 324, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 325, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 326, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 327, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 328, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 329, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 330, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 331, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 332, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 333, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 334, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 335, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 336, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 337, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 338, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 339, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 340, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 341, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 342, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 343, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 344, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 350, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 351, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 352, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 353, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 354, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 355, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 356, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 357, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 360, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 361, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 363, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 364, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 365, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 366, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 367, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 368, 'admin', null, null); +INSERT INTO sys_role_menu (role_id, menu_id, role_name, create_by, update_by) VALUES (1, 369, 'admin', null, null); INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (2, 63, 'common', NULL, NULL); INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (2, 80, 'common', NULL, NULL); INSERT INTO `sys_role_menu`(`role_id`, `menu_id`, `role_name`, `create_by`, `update_by`) VALUES (2, 92, 'common', NULL, NULL); diff --git a/router/process/process.go b/router/process/process.go index 120b3a2..349304f 100644 --- a/router/process/process.go +++ b/router/process/process.go @@ -21,5 +21,6 @@ func RegisterProcessRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle processRouter.PUT("", process.UpdateProcess) processRouter.DELETE("", process.DeleteProcess) processRouter.GET("/details", process.ProcessDetails) + processRouter.POST("/clone/:id", process.CloneProcess) } } diff --git a/router/process/tpl.go b/router/process/tpl.go index 6b33577..c1456ce 100644 --- a/router/process/tpl.go +++ b/router/process/tpl.go @@ -23,5 +23,6 @@ func RegisterTplRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware tplRouter.PUT("", process.UpdateTemplate) tplRouter.DELETE("", process.DeleteTemplate) tplRouter.GET("/details", process.TemplateDetails) + tplRouter.POST("/clone/:id", process.CloneTemplate) } } From 206eb8ddd98e0b963bc39b61bba338145027a20f Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 24 Feb 2021 21:41:14 +0800 Subject: [PATCH 87/88] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E6=A0=91=E5=92=8C=E8=8F=9C=E5=8D=95=E6=A0=91=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=B1=95=E7=A4=BA=E9=97=AE=E9=A2=98=EF=BC=8Cfixes=20#?= =?UTF-8?q?132?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/db.sql | 10 +++++----- models/system/dept.go | 2 ++ models/system/menu.go | 2 ++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/config/db.sql b/config/db.sql index e0c19ff..782954d 100644 --- a/config/db.sql +++ b/config/db.sql @@ -92,11 +92,11 @@ INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ( COMMIT; BEGIN; -INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`) VALUES (1, 0, '/0/1', '磊哥科技', 0, null, '', 'lanyulei@fdevops.com', 0, '1', '1'); -INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`) VALUES (7, 1, '/0/1/7', '研发部', 1, null, '', '', 0, '1', '1'); -INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`) VALUES (8, 1, '/0/1/8', '运维部', 0, null, '', '', 0, '1', NULL); -INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`) VALUES (9, 1, '/0/1/9', '客服部', 0, null, '', '', 0, '1', NULL); -INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`) VALUES (10, 1, '/0/1/10', '人力资源', 3, null, '', '', 1, '1', '1'); +INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`, `create_time`, `update_time`) VALUES (1, 0, '/0/1', '磊哥科技', 0, null, '', 'lanyulei@fdevops.com', 0, '1', '1', '2021-02-24 21:30:59', '2021-02-24 21:30:59'); +INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`, `create_time`, `update_time`) VALUES (7, 1, '/0/1/7', '研发部', 1, null, '', '', 0, '1', '1', '2021-02-24 21:30:59', '2021-02-24 21:30:59'); +INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`, `create_time`, `update_time`) VALUES (8, 1, '/0/1/8', '运维部', 0, null, '', '', 0, '1', NULL, '2021-02-24 21:30:59', '2021-02-24 21:30:59'); +INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`, `create_time`, `update_time`) VALUES (9, 1, '/0/1/9', '客服部', 0, null, '', '', 0, '1', NULL, '2021-02-24 21:30:59', '2021-02-24 21:30:59'); +INSERT INTO `sys_dept`(`dept_id`, `parent_id`, `dept_path`, `dept_name`, `sort`, `leader`, `phone`, `email`, `status`, `create_by`, `update_by`, `create_time`, `update_time`) VALUES (10, 1, '/0/1/10', '人力资源', 3, null, '', '', 1, '1', '1', '2021-02-24 21:30:59', '2021-02-24 21:30:59'); COMMIT; BEGIN; diff --git a/models/system/dept.go b/models/system/dept.go index 455f004..dde27d7 100644 --- a/models/system/dept.go +++ b/models/system/dept.go @@ -158,6 +158,8 @@ func Digui(deptlist *[]Dept, menu Dept) Dept { mi.Phone = list[j].Phone mi.Email = list[j].Email mi.Status = list[j].Status + mi.CreatedAt = list[j].CreatedAt + mi.UpdatedAt = list[j].UpdatedAt mi.Children = []Dept{} ms := Digui(deptlist, mi) min = append(min, ms) diff --git a/models/system/menu.go b/models/system/menu.go index fbb3722..495492a 100644 --- a/models/system/menu.go +++ b/models/system/menu.go @@ -130,6 +130,8 @@ func DiguiMenu(menulist *[]Menu, menu Menu) Menu { mi.Component = list[j].Component mi.Sort = list[j].Sort mi.Visible = list[j].Visible + mi.CreatedAt = list[j].CreatedAt + mi.UpdatedAt = list[j].UpdatedAt mi.Children = []Menu{} if mi.MenuType != "F" { From 29c250e5c8d05c13fffbaea9d1cc8e618b347f8d Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Wed, 3 Mar 2021 00:29:10 +0800 Subject: [PATCH 88/88] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E9=87=8D=E5=BC=80=E5=8A=9F=E8=83=BD=EF=BC=8Cfixes=20#?= =?UTF-8?q?133,=20#5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/workOrder.go | 100 ++++++++++++++++++++++++++++++++++++ config/db.sql | 8 +++ router/process/workOrder.go | 1 + 3 files changed, 109 insertions(+) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index 22a615d..f705dad 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -450,3 +450,103 @@ func DeleteWorkOrder(c *gin.Context) { app.OK(c, "", "工单已删除") } + +// 重开工单 +func ReopenWorkOrder(c *gin.Context) { + var ( + err error + id string + workOrder process.WorkOrderInfo + processInfo process.Info + structure map[string]interface{} + startId string + label string + jsonState []byte + relatedPerson []byte + newWorkOrder process.WorkOrderInfo + workOrderData []*process.TplData + ) + + id = c.Param("id") + + // 查询当前ID的工单信息 + err = orm.Eloquent.Find(&workOrder, id).Error + if err != nil { + app.Error(c, -1, err, fmt.Sprintf("查询工单信息失败, %s", err.Error())) + return + } + + // 创建新的工单 + err = orm.Eloquent.Find(&processInfo, workOrder.Process).Error + if err != nil { + app.Error(c, -1, err, fmt.Sprintf("查询流程信息失败, %s", err.Error())) + return + } + err = json.Unmarshal(processInfo.Structure, &structure) + if err != nil { + app.Error(c, -1, err, fmt.Sprintf("Json序列化失败, %s", err.Error())) + return + } + for _, node := range structure["nodes"].([]interface{}) { + if node.(map[string]interface{})["clazz"] == "start" { + startId = node.(map[string]interface{})["id"].(string) + label = node.(map[string]interface{})["label"].(string) + } + } + + state := []map[string]interface{}{ + {"id": startId, "label": label, "processor": []int{tools.GetUserId(c)}, "process_method": "person"}, + } + jsonState, err = json.Marshal(state) + if err != nil { + app.Error(c, -1, err, fmt.Sprintf("Json序列化失败, %s", err.Error())) + return + } + + relatedPerson, err = json.Marshal([]int{tools.GetUserId(c)}) + if err != nil { + app.Error(c, -1, err, fmt.Sprintf("Json序列化失败, %s", err.Error())) + return + } + + tx := orm.Eloquent.Begin() + + newWorkOrder = process.WorkOrderInfo{ + Title: workOrder.Title + "-copy", + Priority: workOrder.Priority, + Process: workOrder.Process, + Classify: workOrder.Classify, + State: jsonState, + RelatedPerson: relatedPerson, + Creator: tools.GetUserId(c), + } + err = tx.Create(&newWorkOrder).Error + if err != nil { + tx.Rollback() + app.Error(c, -1, err, fmt.Sprintf("新建工单失败, %s", err.Error())) + return + } + + // 查询工单数据 + err = orm.Eloquent.Model(&process.TplData{}).Where("work_order = ?", id).Find(&workOrderData).Error + if err != nil { + tx.Rollback() + app.Error(c, -1, err, fmt.Sprintf("查询工单数据失败, %s", err.Error())) + return + } + + for _, d := range workOrderData { + d.WorkOrder = newWorkOrder.Id + d.Id = 0 + err = tx.Create(d).Error + if err != nil { + tx.Rollback() + app.Error(c, -1, err, fmt.Sprintf("创建工单数据失败, %s", err.Error())) + return + } + } + + tx.Commit() + + app.OK(c, nil, "") +} diff --git a/config/db.sql b/config/db.sql index 782954d..a29f95c 100644 --- a/config/db.sql +++ b/config/db.sql @@ -78,6 +78,12 @@ INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ( INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/settings', 'POST', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/settings', 'GET', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'admin', '/api/v1/loginlog', 'DELETE', NULL, NULL, NULL); +INSERT INTO `casbin_rule`(p_type, v0, v1, v2, v3, v4, v5) VALUES ('p', 'admin', '/api/v1/work-order/active-order/:id', 'PUT', null, null, null); +INSERT INTO `casbin_rule`(p_type, v0, v1, v2, v3, v4, v5) VALUES ('p', 'admin', '/api/v1/work-order/delete/:id', 'DELETE', null, null, null); +INSERT INTO `casbin_rule`(p_type, v0, v1, v2, v3, v4, v5) VALUES ('p', 'admin', '/api/v1/ordinaryDeptList', 'GET', null, null, null); +INSERT INTO `casbin_rule`(p_type, v0, v1, v2, v3, v4, v5) VALUES ('p', 'admin', '/api/v1/tpl/clone/:id', 'POST', null, null, null); +INSERT INTO `casbin_rule`(p_type, v0, v1, v2, v3, v4, v5) VALUES ('p', 'admin', '/api/v1/process/clone/:id', 'POST', null, null, null); +INSERT INTO `casbin_rule`(p_type, v0, v1, v2, v3, v4, v5) VALUES ('p', 'admin', '/api/v1/work-order/reopen/:id', 'POST', null, null, null); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'common', '/api/v1/user/profile', 'GET', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'common', '/api/v1/menurole', 'GET', NULL, NULL, NULL); INSERT INTO `casbin_rule`(`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES ('p', 'common', '/api/v1/menuTreeselect', 'GET', NULL, NULL, NULL); @@ -277,6 +283,8 @@ INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, ` INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (367, '', '克隆模版', 'bug', '/api/v1/tpl/clone/:id', '/0/63/281/282/294/367', 'A', 'POST', '', 294, '0', '', '', 0, '1', '1', '', 1, '2021-02-19 23:00:31', '2021-02-19 23:00:31', null); INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (368, '', '克隆流程', '', '', '/0/268/274/277/368', 'F', '', 'process:admin:manager:clone', 277, '0', '', '', 0, '0', '1', '1', 1, '2021-02-19 23:17:46', '2021-02-19 23:36:46', null); INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, `action`, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (369, '', '克隆流程', 'bug', '/api/v1/process/clone/:id', '/0/63/281/282/309/369', 'A', 'POST', '', 309, '0', '', '', 0, '1', '1', '', 1, '2021-02-19 23:25:18', '2021-02-19 23:25:18', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, action, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (370, '', '重开工单', 'guide', '', '/0/268/271/370', 'F', '', 'process:list:myCreate:reopen', 271, '0', '', '', 0, '0', '1', '', 1, '2021-03-02 22:45:17', '2021-03-02 22:45:17', null); +INSERT INTO sys_menu (menu_id, menu_name, title, icon, path, paths, menu_type, action, permission, parent_id, no_cache, breadcrumb, component, sort, visible, create_by, update_by, is_frame, create_time, update_time, delete_time) VALUES (371, '', '重开工单', 'bug', '/api/v1/work-order/reopen/:id', '/0/63/281/333/371', 'A', 'POST', '', 333, '0', '', '', 0, '1', '1', '', 1, '2021-03-02 22:46:46', '2021-03-02 22:46:46', null); COMMIT; BEGIN; diff --git a/router/process/workOrder.go b/router/process/workOrder.go index 086bdfc..4413da2 100644 --- a/router/process/workOrder.go +++ b/router/process/workOrder.go @@ -24,5 +24,6 @@ func RegisterWorkOrderRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMidd workOrderRouter.GET("/urge", process.UrgeWorkOrder) workOrderRouter.PUT("/active-order/:id", process.ActiveOrder) workOrderRouter.DELETE("/delete/:id", process.DeleteWorkOrder) + workOrderRouter.POST("/reopen/:id", process.ReopenWorkOrder) } }

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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/static/web/fonts/iconfont.34ea3475.34ea3475.woff b/static/web/fonts/iconfont.34ea3475.34ea3475.woff new file mode 100644 index 0000000000000000000000000000000000000000..cbea263a9b7bb26e54673263c582fcb170e85f21 GIT binary patch literal 7724 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 XoIkpKkGx~g$i|r#Y$U!}WbFR{4UZfz literal 0 HcmV?d00001 diff --git a/static/web/fonts/iconfont.8efbc988.eot b/static/web/fonts/iconfont.8efbc988.eot new file mode 100644 index 0000000000000000000000000000000000000000..78f0f14b35565e04ad86a49291b805b93a7e13a3 GIT binary patch literal 12516 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 XoIkpKkGx~g$i|r#Y$U!}WbFR{4UZfz literal 0 HcmV?d00001 diff --git a/static/web/img/401.089007e7.gif b/static/web/img/401.089007e7.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd6e0d9433421b3f29d0ec0c40f755e354728000 GIT binary patch literal 164227 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⋘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 GY5fOuZZib{ literal 0 HcmV?d00001 diff --git a/static/web/img/404.a57b6f31.png b/static/web/img/404.a57b6f31.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8e2305cc973ad2121403aee4bf08728f76c461 GIT binary patch literal 98071 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 literal 0 HcmV?d00001 diff --git a/static/web/img/404_cloud.0f4bc32b.png b/static/web/img/404_cloud.0f4bc32b.png new file mode 100644 index 0000000000000000000000000000000000000000..c6281d09013e0a2c5f8e699a0a6038d9480291e5 GIT binary patch literal 4766 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 literal 0 HcmV?d00001 diff --git a/static/web/img/eiconfont.30cb46e7.svg b/static/web/img/eiconfont.30cb46e7.svg new file mode 100644 index 0000000..fb138b4 --- /dev/null +++ b/static/web/img/eiconfont.30cb46e7.svg @@ -0,0 +1,254 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/web/img/end.9687f898.svg b/static/web/img/end.9687f898.svg new file mode 100644 index 0000000..b206d8c --- /dev/null +++ b/static/web/img/end.9687f898.svg @@ -0,0 +1,19 @@ + + + + +end_1 + + + + + + + + diff --git a/static/web/img/exclusive-gateway.56b82dfd.svg b/static/web/img/exclusive-gateway.56b82dfd.svg new file mode 100644 index 0000000..7cd7381 --- /dev/null +++ b/static/web/img/exclusive-gateway.56b82dfd.svg @@ -0,0 +1,22 @@ + + + + +decision_1 + + + + + + + + + diff --git a/static/web/img/fontawesome-webfont.912ec66d.svg b/static/web/img/fontawesome-webfont.912ec66d.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/static/web/img/fontawesome-webfont.912ec66d.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/web/img/icon_java.d3cc233a.svg b/static/web/img/icon_java.d3cc233a.svg new file mode 100644 index 0000000..d8279ae --- /dev/null +++ b/static/web/img/icon_java.d3cc233a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/icon_mail.0f68d5c7.svg b/static/web/img/icon_mail.0f68d5c7.svg new file mode 100644 index 0000000..0ca241d --- /dev/null +++ b/static/web/img/icon_mail.0f68d5c7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/icon_message.01031aed.svg b/static/web/img/icon_message.01031aed.svg new file mode 100644 index 0000000..37b1fb7 --- /dev/null +++ b/static/web/img/icon_message.01031aed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/icon_receive.a6c46918.svg b/static/web/img/icon_receive.a6c46918.svg new file mode 100644 index 0000000..adea576 --- /dev/null +++ b/static/web/img/icon_receive.a6c46918.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/icon_script.07c7423e.svg b/static/web/img/icon_script.07c7423e.svg new file mode 100644 index 0000000..75824da --- /dev/null +++ b/static/web/img/icon_script.07c7423e.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/icon_signal.0e96b3b6.svg b/static/web/img/icon_signal.0e96b3b6.svg new file mode 100644 index 0000000..26238c7 --- /dev/null +++ b/static/web/img/icon_signal.0e96b3b6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/icon_timer.b4fcbba6.svg b/static/web/img/icon_timer.b4fcbba6.svg new file mode 100644 index 0000000..0b8a776 --- /dev/null +++ b/static/web/img/icon_timer.b4fcbba6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/icon_user.2b39cf22.svg b/static/web/img/icon_user.2b39cf22.svg new file mode 100644 index 0000000..0265983 --- /dev/null +++ b/static/web/img/icon_user.2b39cf22.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/web/img/iconfont.6c66fc36.svg b/static/web/img/iconfont.6c66fc36.svg new file mode 100644 index 0000000..0b323f5 --- /dev/null +++ b/static/web/img/iconfont.6c66fc36.svg @@ -0,0 +1,59 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/web/img/iconfont.f0e930ef.f0e930ef.svg b/static/web/img/iconfont.f0e930ef.f0e930ef.svg new file mode 100644 index 0000000..82b3827 --- /dev/null +++ b/static/web/img/iconfont.f0e930ef.f0e930ef.svg @@ -0,0 +1,155 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/web/img/iconfont.f0e930ef.svg b/static/web/img/iconfont.f0e930ef.svg new file mode 100644 index 0000000..82b3827 --- /dev/null +++ b/static/web/img/iconfont.f0e930ef.svg @@ -0,0 +1,155 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/web/img/login.ede1cdb8.png b/static/web/img/login.ede1cdb8.png new file mode 100644 index 0000000000000000000000000000000000000000..028aa7f4f5e1755ed2c1cf1b72858c18eb99a3f8 GIT binary patch literal 30551 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